From e177e3d904bcc4dd2c9bddab706bbee314e306e5 Mon Sep 17 00:00:00 2001 From: Pierre Gaufillet Date: Fri, 21 Dec 2018 17:53:31 +0100 Subject: [PATCH] Initial commit. --- .../.classpath | 7 + .../.gitignore | 1 + .../.project | 28 + .../META-INF/MANIFEST.MF | 17 + .../build.properties | 20 + ...Instances_ComponentDeclarationInstance.gif | Bin 0 -> 223 bytes ...nce_blockInstances_CompositionInstance.gif | Bin 0 -> 223 bytes ...ckInstances_ProcessDeclarationInstance.gif | Bin 0 -> 223 bytes ...nInstances_VariableDeclarationInstance.gif | Bin 0 -> 223 bytes ..._instance_ComponentDeclarationInstance.gif | Bin 0 -> 223 bytes ...el_instance_ProcessDeclarationInstance.gif | Bin 0 -> 223 bytes ..._statementBlocks_EnabledStatementBlock.gif | Bin 0 -> 223 bytes ...atementBlocks_ExecutableStatementBlock.gif | Bin 0 -> 223 bytes ...statementBlocks_ExecutedStatementBlock.gif | Bin 0 -> 223 bytes ...statementBlocks_FireableStatementBlock.gif | Bin 0 -> 223 bytes ...ntBlocks_InstanceEnabledStatementBlock.gif | Bin 0 -> 223 bytes ...tBlocks_InstanceExecutedStatementBlock.gif | Bin 0 -> 223 bytes ...tBlocks_InstanceFireableStatementBlock.gif | Bin 0 -> 223 bytes ...larationInstance_currentValue_Addition.gif | Bin 0 -> 223 bytes ...ionInstance_currentValue_AllExpression.gif | Bin 0 -> 223 bytes ...Instance_currentValue_AppendExpression.gif | Bin 0 -> 223 bytes ...nce_currentValue_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...nInstance_currentValue_ArrayExpression.gif | Bin 0 -> 223 bytes ...onInstance_currentValue_BooleanLiteral.gif | Bin 0 -> 223 bytes ...nInstance_currentValue_ComparisonEqual.gif | Bin 0 -> 223 bytes ...nstance_currentValue_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ce_currentValue_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...Instance_currentValue_ComparisonLesser.gif | Bin 0 -> 223 bytes ...nce_currentValue_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...stance_currentValue_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...ationInstance_currentValue_Conditional.gif | Bin 0 -> 223 bytes ...ationInstance_currentValue_Conjunction.gif | Bin 0 -> 223 bytes ...ce_currentValue_ConstructionExpression.gif | Bin 0 -> 223 bytes ...ationInstance_currentValue_Disjunction.gif | Bin 0 -> 223 bytes ...larationInstance_currentValue_Division.gif | Bin 0 -> 223 bytes ...nstance_currentValue_EnqueueExpression.gif | Bin 0 -> 223 bytes ...Instance_currentValue_ExistsExpression.gif | Bin 0 -> 223 bytes ...e_currentValue_ExplicitArrayExpression.gif | Bin 0 -> 223 bytes ...rationInstance_currentValue_Expression.gif | Bin 0 -> 223 bytes ...tionInstance_currentValue_FalseLiteral.gif | Bin 0 -> 223 bytes ...ance_currentValue_IdentifierExpression.gif | Bin 0 -> 223 bytes ...ationInstance_currentValue_Implication.gif | Bin 0 -> 223 bytes ...e_currentValue_ImplicitArrayExpression.gif | Bin 0 -> 223 bytes ...nstance_currentValue_LiteralExpression.gif | Bin 0 -> 223 bytes ...eclarationInstance_currentValue_Modulo.gif | Bin 0 -> 223 bytes ...onInstance_currentValue_Multiplication.gif | Bin 0 -> 223 bytes ...onInstance_currentValue_NaturalLiteral.gif | Bin 0 -> 223 bytes ...rationInstance_currentValue_Projection.gif | Bin 0 -> 223 bytes ...nInstance_currentValue_QueueExpression.gif | Bin 0 -> 223 bytes ...ce_currentValue_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...Instance_currentValue_RecordExpression.gif | Bin 0 -> 223 bytes ...tance_currentValue_ReferenceExpression.gif | Bin 0 -> 223 bytes ...tionInstance_currentValue_Substraction.gif | Bin 0 -> 223 bytes ...ationInstance_currentValue_TrueLiteral.gif | Bin 0 -> 223 bytes ...nce_currentValue_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ce_currentValue_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...ance_currentValue_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...ance_currentValue_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...tance_currentValue_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...nce_currentValue_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...ance_currentValue_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...e_currentValue_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...tance_currentValue_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...nInstance_currentValue_ValueExpression.gif | Bin 0 -> 223 bytes .../obj16/ComponentDeclarationInstance.gif | Bin 0 -> 129 bytes .../icons/full/obj16/CompositionInstance.gif | Bin 0 -> 129 bytes .../full/obj16/EnabledStatementBlock.gif | Bin 0 -> 129 bytes .../full/obj16/ExecutableStatementBlock.gif | Bin 0 -> 129 bytes .../full/obj16/ExecutedStatementBlock.gif | Bin 0 -> 129 bytes .../full/obj16/FireableStatementBlock.gif | Bin 0 -> 129 bytes .../obj16/InstanceEnabledStatementBlock.gif | Bin 0 -> 129 bytes .../obj16/InstanceExecutedStatementBlock.gif | Bin 0 -> 129 bytes .../obj16/InstanceFireableStatementBlock.gif | Bin 0 -> 129 bytes .../icons/full/obj16/InstanceModel.gif | Bin 0 -> 129 bytes .../full/obj16/ProcessDeclarationInstance.gif | Bin 0 -> 129 bytes .../obj16/VariableDeclarationInstance.gif | Bin 0 -> 129 bytes .../plugin.properties | 69 + .../plugin.xml | 33 + .../provider/BlockInstanceItemProvider.java | 177 + ...ponentDeclarationInstanceItemProvider.java | 134 + .../CompositionInstanceItemProvider.java | 130 + .../DeclarationInstanceItemProvider.java | 219 + .../EnabledStatementBlockItemProvider.java | 109 + .../ExecutableStatementBlockItemProvider.java | 142 + .../ExecutedStatementBlockItemProvider.java | 109 + .../provider/FiacreInstanceEditPlugin.java | 102 + ...creinstanceItemProviderAdapterFactory.java | 473 + .../FireableStatementBlockItemProvider.java | 109 + ...anceEnabledStatementBlockItemProvider.java | 109 + ...eExecutableStatementBlockItemProvider.java | 98 + ...nceExecutedStatementBlockItemProvider.java | 109 + ...nceFireableStatementBlockItemProvider.java | 109 + .../provider/InstanceModelItemProvider.java | 259 + .../InstanceStatementBlockItemProvider.java | 203 + ...rocessDeclarationInstanceItemProvider.java | 212 + .../provider/StatementBlockItemProvider.java | 180 + ...riableDeclarationInstanceItemProvider.java | 263 + .../.classpath | 7 + .../.gitignore | 1 + .../.project | 28 + .../META-INF/MANIFEST.MF | 19 + .../build.properties | 20 + .../full/obj16/FiacreinstanceModelFile.gif | Bin 0 -> 346 bytes .../icons/full/wizban/NewFiacreinstance.gif | Bin 0 -> 2462 bytes .../plugin.properties | 63 + .../plugin.xml | 47 + .../FiacreInstanceEditorPlugin.java | 104 + .../FiacreinstanceActionBarContributor.java | 433 + .../presentation/FiacreinstanceEditor.java | 1832 + .../FiacreinstanceModelWizard.java | 636 + .../.classpath | 7 + .../.gitignore | 1 + .../.project | 28 + .../META-INF/MANIFEST.MF | 17 + .../build.properties | 20 + .../model/FiacreInstance.ecore | 67 + .../model/FiacreInstance.genmodel | 60 + .../plugin.properties | 14 + .../plugin.xml | 28 + .../fiacreinstance/BlockInstance.java | 52 + .../ComponentDeclarationInstance.java | 60 + .../fiacreinstance/CompositionInstance.java | 60 + .../fiacreinstance/DeclarationInstance.java | 133 + .../fiacreinstance/EnabledStatementBlock.java | 27 + .../ExecutableStatementBlock.java | 59 + .../ExecutedStatementBlock.java | 27 + .../fiacreinstance/FiacreinstanceFactory.java | 151 + .../fiacreinstance/FiacreinstancePackage.java | 1833 + .../FireableStatementBlock.java | 27 + .../InstanceEnabledStatementBlock.java | 27 + .../InstanceExecutableStatementBlock.java | 27 + .../InstanceExecutedStatementBlock.java | 27 + .../InstanceFireableStatementBlock.java | 27 + .../fiacreinstance/InstanceModel.java | 125 + .../InstanceStatementBlock.java | 109 + .../ProcessDeclarationInstance.java | 107 + .../fiacreinstance/StatementBlock.java | 79 + .../VariableDeclarationInstance.java | 90 + .../impl/BlockInstanceImpl.java | 161 + .../ComponentDeclarationInstanceImpl.java | 167 + .../impl/CompositionInstanceImpl.java | 167 + .../impl/DeclarationInstanceImpl.java | 347 + .../impl/EnabledStatementBlockImpl.java | 47 + .../impl/ExecutableStatementBlockImpl.java | 172 + .../impl/ExecutedStatementBlockImpl.java | 47 + .../impl/FiacreinstanceFactoryImpl.java | 226 + .../impl/FiacreinstancePackageImpl.java | 775 + .../impl/FireableStatementBlockImpl.java | 47 + .../InstanceEnabledStatementBlockImpl.java | 47 + .../InstanceExecutableStatementBlockImpl.java | 47 + .../InstanceExecutedStatementBlockImpl.java | 47 + .../InstanceFireableStatementBlockImpl.java | 47 + .../impl/InstanceModelImpl.java | 331 + .../impl/InstanceStatementBlockImpl.java | 278 + .../impl/ProcessDeclarationInstanceImpl.java | 286 + .../impl/StatementBlockImpl.java | 215 + .../impl/VariableDeclarationInstanceImpl.java | 248 + .../util/FiacreinstanceAdapterFactory.java | 418 + .../util/FiacreinstanceSwitch.java | 474 + .../validation/BlockInstanceValidator.java | 31 + ...ComponentDeclarationInstanceValidator.java | 29 + .../CompositionInstanceValidator.java | 29 + .../DeclarationInstanceValidator.java | 35 + .../EnabledStatementBlockValidator.java | 27 + .../ExecutableStatementBlockValidator.java | 28 + .../ExecutedStatementBlockValidator.java | 27 + .../FireableStatementBlockValidator.java | 27 + ...nstanceEnabledStatementBlockValidator.java | 27 + ...anceExecutableStatementBlockValidator.java | 27 + ...stanceExecutedStatementBlockValidator.java | 27 + ...stanceFireableStatementBlockValidator.java | 27 + .../validation/InstanceModelValidator.java | 37 + .../InstanceStatementBlockValidator.java | 34 + .../ProcessDeclarationInstanceValidator.java | 36 + .../validation/StatementBlockValidator.java | 32 + .../VariableDeclarationInstanceValidator.java | 31 + .../text/description.txt | 63 + .../.classpath | 8 + .../.gitignore | 1 + .../.project | 34 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 19 + .../build.properties | 5 + .../plugin.xml | 36 + .../simulator/msc/generator/Activator.java | 63 + .../generator/WorkbenchPreferencePage.java | 24 + .../generator/popup/actions/GenerateMSC.java | 105 + .../popup/actions/MSCGenerator.xtend | 69 + .../msc/generator/popup/actions/.gitignore | 3 + .../.classpath | 13 + .../.gitignore | 1 + .../.project | 34 + .../META-INF/MANIFEST.MF | 47 + .../build.properties | 21 + ...iacre_platform_lingequip_xtext_2.10.target | 29 + .../icons/@eaDir/Thumbs.db@SynoEAStream | Bin 0 -> 144 bytes .../icons/Thumbs.db | Bin 0 -> 6144 bytes .../icons/arrow_right.png | Bin 0 -> 349 bytes .../icons/bomb.png | Bin 0 -> 793 bytes .../icons/brick.png | Bin 0 -> 452 bytes .../icons/brick_add.png | Bin 0 -> 729 bytes .../icons/brick_delete.png | Bin 0 -> 745 bytes .../icons/brick_go.png | Bin 0 -> 790 bytes .../icons/bricks.png | Bin 0 -> 825 bytes .../icons/bullet_disk.png | Bin 0 -> 483 bytes .../icons/bullet_pink.png | Bin 0 -> 286 bytes .../icons/database_table.png | Bin 0 -> 726 bytes .../icons/lightning.png | Bin 0 -> 634 bytes .../icons/stop.png | Bin 0 -> 700 bytes .../icons/table_multiple.png | Bin 0 -> 612 bytes .../icons/tick.png | Bin 0 -> 537 bytes .../icons/time_add.png | Bin 0 -> 827 bytes .../lib/httpclient-4.2.5.jar | Bin 0 -> 433368 bytes .../lib/httpcore-4.2.4.jar | Bin 0 -> 227275 bytes .../lib/json-simple-1.1.jar | Bin 0 -> 16046 bytes .../lib/libthrift-0.9.2-javadoc.jar | Bin 0 -> 531986 bytes .../lib/libthrift-0.9.2.jar | Bin 0 -> 227705 bytes .../plugin.xml | 265 + .../fiacre/simulator/Activator.java | 86 + .../fiacre/simulator/core/DelayEvent.java | 76 + .../simulator/core/FiacreSimulator.java | 316 + .../fiacre/simulator/core/FireEvent.java | 82 + .../fiacre/simulator/core/QuitSimulator.java | 43 + .../fiacre/simulator/core/ReadDelay.java | 115 + .../fiacre/simulator/core/Utils.java | 455 + .../marking/CountMarkersForFile.java | 56 + .../marking/CountMarkersForFiles.java | 57 + .../simulator/marking/CreateMarkerAction.java | 53 + .../simulator/marking/FileDecorator.java | 40 + .../simulator/marking/MarkerFactory.java | 117 + .../marking/MarkerPluginActivator.java | 93 + .../simulator/marking/MarkerUpdater.java | 48 + .../simulator/marking/MarkingController.java | 95 + .../PerspectiveSimulatorFactory.java | 83 + .../perspective/ViewsController.java | 1018 + .../perspective/model/ActionState.java | 46 + .../perspective/model/TreeObject.java | 38 + .../perspective/model/TreeParent.java | 36 + .../perspective/model/ValuesData.java | 49 + .../perspective/model/ValuesDataProvider.java | 44 + .../perspective/views/ExecutedActionView.java | 171 + .../perspective/views/InstancesView.java | 264 + .../perspective/views/SavedStatesView.java | 286 + .../perspective/views/TransitionsView.java | 260 + .../perspective/views/ValuesView.java | 139 + .../popup/actions/FiacreSimulationAction.java | 86 + .../fiacre/simulator/popup/actions/old.txt | 247 + .../extractor/DynamicJsonExtractor.xtend | 878 + .../extractor/StaticJsonExtractor.xtend | 209 + .../staticjson/extractor/methods.txt | 150 + .../simulator/staticjson/extractor/.gitignore | 5 + .../.classpath | 7 + .../.gitignore | 1 + .../.project | 28 + .../META-INF/MANIFEST.MF | 15 + .../build.properties | 10 + .../full/ctool16/CreateMSC_sites_Site.gif | Bin 0 -> 223 bytes .../full/ctool16/CreateMSC_steps_Step.gif | Bin 0 -> 223 bytes .../CreateStep_microSteps_EnterStateStep.gif | Bin 0 -> 223 bytes .../CreateStep_microSteps_MicroStep.gif | Bin 0 -> 223 bytes .../CreateStep_microSteps_SendStep.gif | Bin 0 -> 223 bytes ...ateStep_microSteps_SynchronisationStep.gif | Bin 0 -> 223 bytes .../icons/full/obj16/EnterStateStep.gif | Bin 0 -> 129 bytes .../icons/full/obj16/MSC.gif | Bin 0 -> 129 bytes .../icons/full/obj16/MicroStep.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SendStep.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Site.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Step.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SynchronisationStep.gif | Bin 0 -> 129 bytes .../plugin.properties | 38 + .../plugin.xml | 22 + .../provider/EnterStateStepItemProvider.java | 155 + .../msc/msc/provider/MSCEditPlugin.java | 89 + .../msc/msc/provider/MSCItemProvider.java | 175 + .../msc/provider/MicroStepItemProvider.java | 156 + .../MscItemProviderAdapterFactory.java | 319 + .../msc/provider/SendStepItemProvider.java | 145 + .../msc/msc/provider/SiteItemProvider.java | 182 + .../msc/msc/provider/StepItemProvider.java | 178 + .../SynchronisationStepItemProvider.java | 122 + .../.classpath | 7 + .../.gitignore | 1 + .../.project | 28 + .../META-INF/MANIFEST.MF | 18 + .../build.properties | 10 + .../icons/full/obj16/MscModelFile.gif | Bin 0 -> 346 bytes .../icons/full/wizban/NewMsc.gif | Bin 0 -> 2462 bytes .../plugin.properties | 53 + .../plugin.xml | 37 + .../msc/msc/presentation/MSCEditorPlugin.java | 91 + .../presentation/MscActionBarContributor.java | 423 + .../msc/msc/presentation/MscEditor.java | 1819 + .../msc/msc/presentation/MscModelWizard.java | 628 + .../.classpath | 7 + .../.gitignore | 1 + .../.project | 28 + .../META-INF/MANIFEST.MF | 15 + .../build.properties | 10 + .../model/MSC.ecore | 35 + .../model/MSC.genmodel | 36 + .../plugin.properties | 4 + .../plugin.xml | 17 + .../simulator/msc/msc/EnterStateStep.java | 76 + .../fiacre/simulator/msc/msc/MSC.java | 59 + .../fiacre/simulator/msc/msc/MicroStep.java | 50 + .../fiacre/simulator/msc/msc/MscFactory.java | 87 + .../fiacre/simulator/msc/msc/MscPackage.java | 756 + .../fiacre/simulator/msc/msc/SendStep.java | 57 + .../fiacre/simulator/msc/msc/Site.java | 77 + .../fiacre/simulator/msc/msc/Step.java | 42 + .../msc/msc/SynchronisationStep.java | 40 + .../msc/msc/impl/EnterStateStepImpl.java | 224 + .../simulator/msc/msc/impl/MSCImpl.java | 189 + .../simulator/msc/msc/impl/MicroStepImpl.java | 163 + .../msc/msc/impl/MscFactoryImpl.java | 150 + .../msc/msc/impl/MscPackageImpl.java | 416 + .../simulator/msc/msc/impl/SendStepImpl.java | 166 + .../simulator/msc/msc/impl/SiteImpl.java | 217 + .../simulator/msc/msc/impl/StepImpl.java | 152 + .../msc/msc/impl/SynchronisationStepImpl.java | 132 + .../msc/msc/util/MscAdapterFactory.java | 228 + .../simulator/msc/msc/util/MscSwitch.java | 239 + .../fr.irit.fiacre.xtext.edit/.classpath | 7 + .../fr.irit.fiacre.xtext.edit/.gitignore | 1 + .../fr.irit.fiacre.xtext.edit/.project | 28 + .../META-INF/MANIFEST.MF | 15 + .../build.properties | 20 + ...teAbsencePattern_after_EnterStateEvent.gif | Bin 0 -> 223 bytes ...teAbsencePattern_after_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_after_Observable.gif | Bin 0 -> 223 bytes ...ncePattern_after_ObservableConjunction.gif | Bin 0 -> 223 bytes ...ncePattern_after_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...teAbsencePattern_after_ObservableEvent.gif | Bin 0 -> 223 bytes ...ncePattern_after_ObservableImplication.gif | Bin 0 -> 223 bytes ...bsencePattern_after_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_after_PathEvent.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_after_StateEvent.gif | Bin 0 -> 223 bytes ...eAbsencePattern_before_EnterStateEvent.gif | Bin 0 -> 223 bytes ...eAbsencePattern_before_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...CreateAbsencePattern_before_Observable.gif | Bin 0 -> 223 bytes ...cePattern_before_ObservableConjunction.gif | Bin 0 -> 223 bytes ...cePattern_before_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...eAbsencePattern_before_ObservableEvent.gif | Bin 0 -> 223 bytes ...cePattern_before_ObservableImplication.gif | Bin 0 -> 223 bytes ...sencePattern_before_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_before_PathEvent.gif | Bin 0 -> 223 bytes ...CreateAbsencePattern_before_StateEvent.gif | Bin 0 -> 223 bytes ...AbsencePattern_lower_DecimalLowerBound.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_lower_LowerBound.gif | Bin 0 -> 223 bytes ...AbsencePattern_lower_NaturalLowerBound.gif | Bin 0 -> 223 bytes ...bsencePattern_lower_VariableLowerBound.gif | Bin 0 -> 223 bytes ...eateAbsencePattern_max_EnterStateEvent.gif | Bin 0 -> 223 bytes ...eateAbsencePattern_max_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_max_Observable.gif | Bin 0 -> 223 bytes ...sencePattern_max_ObservableConjunction.gif | Bin 0 -> 223 bytes ...sencePattern_max_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...eateAbsencePattern_max_ObservableEvent.gif | Bin 0 -> 223 bytes ...sencePattern_max_ObservableImplication.gif | Bin 0 -> 223 bytes ...eAbsencePattern_max_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_max_PathEvent.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_max_StateEvent.gif | Bin 0 -> 223 bytes ...eateAbsencePattern_min_EnterStateEvent.gif | Bin 0 -> 223 bytes ...eateAbsencePattern_min_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_min_Observable.gif | Bin 0 -> 223 bytes ...sencePattern_min_ObservableConjunction.gif | Bin 0 -> 223 bytes ...sencePattern_min_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...eateAbsencePattern_min_ObservableEvent.gif | Bin 0 -> 223 bytes ...sencePattern_min_ObservableImplication.gif | Bin 0 -> 223 bytes ...eAbsencePattern_min_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_min_PathEvent.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_min_StateEvent.gif | Bin 0 -> 223 bytes ...AbsencePattern_subject_EnterStateEvent.gif | Bin 0 -> 223 bytes ...AbsencePattern_subject_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...reateAbsencePattern_subject_Observable.gif | Bin 0 -> 223 bytes ...ePattern_subject_ObservableConjunction.gif | Bin 0 -> 223 bytes ...ePattern_subject_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...AbsencePattern_subject_ObservableEvent.gif | Bin 0 -> 223 bytes ...ePattern_subject_ObservableImplication.gif | Bin 0 -> 223 bytes ...encePattern_subject_ObservableNegation.gif | Bin 0 -> 223 bytes ...CreateAbsencePattern_subject_PathEvent.gif | Bin 0 -> 223 bytes ...reateAbsencePattern_subject_StateEvent.gif | Bin 0 -> 223 bytes ...teAbsencePattern_until_EnterStateEvent.gif | Bin 0 -> 223 bytes ...teAbsencePattern_until_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_until_Observable.gif | Bin 0 -> 223 bytes ...ncePattern_until_ObservableConjunction.gif | Bin 0 -> 223 bytes ...ncePattern_until_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...teAbsencePattern_until_ObservableEvent.gif | Bin 0 -> 223 bytes ...ncePattern_until_ObservableImplication.gif | Bin 0 -> 223 bytes ...bsencePattern_until_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_until_PathEvent.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_until_StateEvent.gif | Bin 0 -> 223 bytes ...AbsencePattern_upper_DecimalUpperBound.gif | Bin 0 -> 223 bytes ...bsencePattern_upper_InfiniteUpperBound.gif | Bin 0 -> 223 bytes ...AbsencePattern_upper_NaturalUpperBound.gif | Bin 0 -> 223 bytes .../CreateAbsencePattern_upper_UpperBound.gif | Bin 0 -> 223 bytes ...bsencePattern_upper_VariableUpperBound.gif | Bin 0 -> 223 bytes .../ctool16/CreateAddition_left_Addition.gif | Bin 0 -> 223 bytes .../CreateAddition_left_AllExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_left_AppendExpression.gif | Bin 0 -> 223 bytes ...ateAddition_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_left_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_left_BooleanLiteral.gif | Bin 0 -> 223 bytes .../CreateAddition_left_ComparisonEqual.gif | Bin 0 -> 223 bytes .../CreateAddition_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...teAddition_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes .../CreateAddition_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...ateAddition_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...CreateAddition_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateAddition_left_Conditional.gif | Bin 0 -> 223 bytes .../CreateAddition_left_Conjunction.gif | Bin 0 -> 223 bytes ...teAddition_left_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_left_Disjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreateAddition_left_Division.gif | Bin 0 -> 223 bytes .../CreateAddition_left_EnqueueExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_left_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_left_Expression.gif | Bin 0 -> 223 bytes .../CreateAddition_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...eateAddition_left_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_left_Implication.gif | Bin 0 -> 223 bytes .../CreateAddition_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateAddition_left_Modulo.gif | Bin 0 -> 223 bytes .../CreateAddition_left_Multiplication.gif | Bin 0 -> 223 bytes .../CreateAddition_left_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateAddition_left_Projection.gif | Bin 0 -> 223 bytes .../CreateAddition_left_QueueExpression.gif | Bin 0 -> 223 bytes ...teAddition_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_left_RecordExpression.gif | Bin 0 -> 223 bytes ...reateAddition_left_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_left_Substraction.gif | Bin 0 -> 223 bytes .../CreateAddition_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...ateAddition_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...teAddition_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eateAddition_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eateAddition_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...reateAddition_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...ateAddition_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eateAddition_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...eAddition_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...reateAddition_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateAddition_right_Addition.gif | Bin 0 -> 223 bytes .../CreateAddition_right_AllExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_right_AppendExpression.gif | Bin 0 -> 223 bytes ...teAddition_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_right_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_right_BooleanLiteral.gif | Bin 0 -> 223 bytes .../CreateAddition_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...CreateAddition_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...eAddition_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes .../CreateAddition_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...teAddition_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...reateAddition_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateAddition_right_Conditional.gif | Bin 0 -> 223 bytes .../CreateAddition_right_Conjunction.gif | Bin 0 -> 223 bytes ...eAddition_right_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_right_Disjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreateAddition_right_Division.gif | Bin 0 -> 223 bytes ...CreateAddition_right_EnqueueExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_right_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_right_Expression.gif | Bin 0 -> 223 bytes .../CreateAddition_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...ateAddition_right_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_right_Implication.gif | Bin 0 -> 223 bytes ...CreateAddition_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateAddition_right_Modulo.gif | Bin 0 -> 223 bytes .../CreateAddition_right_Multiplication.gif | Bin 0 -> 223 bytes .../CreateAddition_right_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateAddition_right_Projection.gif | Bin 0 -> 223 bytes .../CreateAddition_right_QueueExpression.gif | Bin 0 -> 223 bytes ...eAddition_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_right_RecordExpression.gif | Bin 0 -> 223 bytes ...eateAddition_right_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateAddition_right_Substraction.gif | Bin 0 -> 223 bytes .../CreateAddition_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...teAddition_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...eAddition_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...ateAddition_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...ateAddition_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eateAddition_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...teAddition_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...ateAddition_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...Addition_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eateAddition_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateAllExpression_child_Addition.gif | Bin 0 -> 223 bytes ...reateAllExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...teAllExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ateAllExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...eateAllExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ateAllExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eAllExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...teAllExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...AllExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateAllExpression_child_Conditional.gif | Bin 0 -> 223 bytes .../CreateAllExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateAllExpression_child_Disjunction.gif | Bin 0 -> 223 bytes .../CreateAllExpression_child_Division.gif | Bin 0 -> 223 bytes ...eAllExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...teAllExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateAllExpression_child_Expression.gif | Bin 0 -> 223 bytes ...CreateAllExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...lExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateAllExpression_child_Implication.gif | Bin 0 -> 223 bytes ...eAllExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateAllExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...eateAllExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...eateAllExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateAllExpression_child_Projection.gif | Bin 0 -> 223 bytes ...ateAllExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...teAllExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...llExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...CreateAllExpression_child_Substraction.gif | Bin 0 -> 223 bytes .../CreateAllExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...lExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...lExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...llExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...lExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...llExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...llExpression_index_VariableDeclaration.gif | Bin 0 -> 223 bytes .../CreateAllExpression_type_RangeType.gif | Bin 0 -> 223 bytes ...CreateAllProperty_child_AbsencePattern.gif | Bin 0 -> 223 bytes .../CreateAllProperty_child_AllProperty.gif | Bin 0 -> 223 bytes .../CreateAllProperty_child_AlwaysPattern.gif | Bin 0 -> 223 bytes ...eAllProperty_child_DeadlockFreePattern.gif | Bin 0 -> 223 bytes ...reateAllProperty_child_EnterStateEvent.gif | Bin 0 -> 223 bytes ...CreateAllProperty_child_ExistsProperty.gif | Bin 0 -> 223 bytes ...lProperty_child_InfinitelyOftenPattern.gif | Bin 0 -> 223 bytes .../CreateAllProperty_child_LTLPattern.gif | Bin 0 -> 223 bytes ...CreateAllProperty_child_LeadsToPattern.gif | Bin 0 -> 223 bytes ...reateAllProperty_child_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateAllProperty_child_MortalPattern.gif | Bin 0 -> 223 bytes .../CreateAllProperty_child_Observable.gif | Bin 0 -> 223 bytes ...llProperty_child_ObservableConjunction.gif | Bin 0 -> 223 bytes ...llProperty_child_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...reateAllProperty_child_ObservableEvent.gif | Bin 0 -> 223 bytes ...llProperty_child_ObservableImplication.gif | Bin 0 -> 223 bytes ...teAllProperty_child_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAllProperty_child_PathEvent.gif | Bin 0 -> 223 bytes ...reateAllProperty_child_PatternProperty.gif | Bin 0 -> 223 bytes ...reateAllProperty_child_PrecedesPattern.gif | Bin 0 -> 223 bytes ...reateAllProperty_child_PresencePattern.gif | Bin 0 -> 223 bytes .../CreateAllProperty_child_Property.gif | Bin 0 -> 223 bytes ...eAllProperty_child_PropertyConjunction.gif | Bin 0 -> 223 bytes ...eAllProperty_child_PropertyDisjunction.gif | Bin 0 -> 223 bytes ...eAllProperty_child_PropertyImplication.gif | Bin 0 -> 223 bytes ...eateAllProperty_child_PropertyNegation.gif | Bin 0 -> 223 bytes ...reateAllProperty_child_SequencePattern.gif | Bin 0 -> 223 bytes .../CreateAllProperty_child_StateEvent.gif | Bin 0 -> 223 bytes .../CreateAllProperty_type_RangeType.gif | Bin 0 -> 223 bytes ...lProperty_variable_VariableDeclaration.gif | Bin 0 -> 223 bytes ...ateAlwaysPattern_after_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ateAlwaysPattern_after_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_after_Observable.gif | Bin 0 -> 223 bytes ...aysPattern_after_ObservableConjunction.gif | Bin 0 -> 223 bytes ...aysPattern_after_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...ateAlwaysPattern_after_ObservableEvent.gif | Bin 0 -> 223 bytes ...aysPattern_after_ObservableImplication.gif | Bin 0 -> 223 bytes ...AlwaysPattern_after_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_after_PathEvent.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_after_StateEvent.gif | Bin 0 -> 223 bytes ...teAlwaysPattern_before_EnterStateEvent.gif | Bin 0 -> 223 bytes ...teAlwaysPattern_before_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_before_Observable.gif | Bin 0 -> 223 bytes ...ysPattern_before_ObservableConjunction.gif | Bin 0 -> 223 bytes ...ysPattern_before_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...teAlwaysPattern_before_ObservableEvent.gif | Bin 0 -> 223 bytes ...ysPattern_before_ObservableImplication.gif | Bin 0 -> 223 bytes ...lwaysPattern_before_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_before_PathEvent.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_before_StateEvent.gif | Bin 0 -> 223 bytes ...reateAlwaysPattern_max_EnterStateEvent.gif | Bin 0 -> 223 bytes ...reateAlwaysPattern_max_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_max_Observable.gif | Bin 0 -> 223 bytes ...lwaysPattern_max_ObservableConjunction.gif | Bin 0 -> 223 bytes ...lwaysPattern_max_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...reateAlwaysPattern_max_ObservableEvent.gif | Bin 0 -> 223 bytes ...lwaysPattern_max_ObservableImplication.gif | Bin 0 -> 223 bytes ...teAlwaysPattern_max_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_max_PathEvent.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_max_StateEvent.gif | Bin 0 -> 223 bytes ...reateAlwaysPattern_min_EnterStateEvent.gif | Bin 0 -> 223 bytes ...reateAlwaysPattern_min_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_min_Observable.gif | Bin 0 -> 223 bytes ...lwaysPattern_min_ObservableConjunction.gif | Bin 0 -> 223 bytes ...lwaysPattern_min_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...reateAlwaysPattern_min_ObservableEvent.gif | Bin 0 -> 223 bytes ...lwaysPattern_min_ObservableImplication.gif | Bin 0 -> 223 bytes ...teAlwaysPattern_min_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_min_PathEvent.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_min_StateEvent.gif | Bin 0 -> 223 bytes ...eAlwaysPattern_subject_EnterStateEvent.gif | Bin 0 -> 223 bytes ...eAlwaysPattern_subject_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...CreateAlwaysPattern_subject_Observable.gif | Bin 0 -> 223 bytes ...sPattern_subject_ObservableConjunction.gif | Bin 0 -> 223 bytes ...sPattern_subject_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...eAlwaysPattern_subject_ObservableEvent.gif | Bin 0 -> 223 bytes ...sPattern_subject_ObservableImplication.gif | Bin 0 -> 223 bytes ...waysPattern_subject_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_subject_PathEvent.gif | Bin 0 -> 223 bytes ...CreateAlwaysPattern_subject_StateEvent.gif | Bin 0 -> 223 bytes ...ateAlwaysPattern_until_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ateAlwaysPattern_until_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_until_Observable.gif | Bin 0 -> 223 bytes ...aysPattern_until_ObservableConjunction.gif | Bin 0 -> 223 bytes ...aysPattern_until_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...ateAlwaysPattern_until_ObservableEvent.gif | Bin 0 -> 223 bytes ...aysPattern_until_ObservableImplication.gif | Bin 0 -> 223 bytes ...AlwaysPattern_until_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_until_PathEvent.gif | Bin 0 -> 223 bytes .../CreateAlwaysPattern_until_StateEvent.gif | Bin 0 -> 223 bytes .../CreateAppendExpression_left_Addition.gif | Bin 0 -> 223 bytes ...ateAppendExpression_left_AllExpression.gif | Bin 0 -> 223 bytes ...AppendExpression_left_AppendExpression.gif | Bin 0 -> 223 bytes ...dExpression_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...eAppendExpression_left_ArrayExpression.gif | Bin 0 -> 223 bytes ...teAppendExpression_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eAppendExpression_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ppendExpression_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...Expression_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...AppendExpression_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...dExpression_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...pendExpression_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...reateAppendExpression_left_Conditional.gif | Bin 0 -> 223 bytes ...reateAppendExpression_left_Conjunction.gif | Bin 0 -> 223 bytes ...Expression_left_ConstructionExpression.gif | Bin 0 -> 223 bytes ...reateAppendExpression_left_Disjunction.gif | Bin 0 -> 223 bytes .../CreateAppendExpression_left_Division.gif | Bin 0 -> 223 bytes ...ppendExpression_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...AppendExpression_left_ExistsExpression.gif | Bin 0 -> 223 bytes ...CreateAppendExpression_left_Expression.gif | Bin 0 -> 223 bytes ...eateAppendExpression_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...ndExpression_left_IdentifierExpression.gif | Bin 0 -> 223 bytes ...reateAppendExpression_left_Implication.gif | Bin 0 -> 223 bytes ...ppendExpression_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateAppendExpression_left_Modulo.gif | Bin 0 -> 223 bytes ...teAppendExpression_left_Multiplication.gif | Bin 0 -> 223 bytes ...teAppendExpression_left_NaturalLiteral.gif | Bin 0 -> 223 bytes ...CreateAppendExpression_left_Projection.gif | Bin 0 -> 223 bytes ...eAppendExpression_left_QueueExpression.gif | Bin 0 -> 223 bytes ...Expression_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...AppendExpression_left_RecordExpression.gif | Bin 0 -> 223 bytes ...endExpression_left_ReferenceExpression.gif | Bin 0 -> 223 bytes ...eateAppendExpression_left_Substraction.gif | Bin 0 -> 223 bytes ...reateAppendExpression_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...dExpression_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...Expression_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...ndExpression_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...ndExpression_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...endExpression_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...dExpression_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...ndExpression_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...xpression_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...endExpression_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateAppendExpression_right_Addition.gif | Bin 0 -> 223 bytes ...teAppendExpression_right_AllExpression.gif | Bin 0 -> 223 bytes ...ppendExpression_right_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...AppendExpression_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...eAppendExpression_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...AppendExpression_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...pendExpression_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ppendExpression_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...endExpression_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eateAppendExpression_right_Conditional.gif | Bin 0 -> 223 bytes ...eateAppendExpression_right_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_right_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eateAppendExpression_right_Disjunction.gif | Bin 0 -> 223 bytes .../CreateAppendExpression_right_Division.gif | Bin 0 -> 223 bytes ...pendExpression_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ppendExpression_right_ExistsExpression.gif | Bin 0 -> 223 bytes ...reateAppendExpression_right_Expression.gif | Bin 0 -> 223 bytes ...ateAppendExpression_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...dExpression_right_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eateAppendExpression_right_Implication.gif | Bin 0 -> 223 bytes ...pendExpression_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateAppendExpression_right_Modulo.gif | Bin 0 -> 223 bytes ...eAppendExpression_right_Multiplication.gif | Bin 0 -> 223 bytes ...eAppendExpression_right_NaturalLiteral.gif | Bin 0 -> 223 bytes ...reateAppendExpression_right_Projection.gif | Bin 0 -> 223 bytes ...AppendExpression_right_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ppendExpression_right_RecordExpression.gif | Bin 0 -> 223 bytes ...ndExpression_right_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ateAppendExpression_right_Substraction.gif | Bin 0 -> 223 bytes ...eateAppendExpression_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...dExpression_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...dExpression_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ndExpression_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...dExpression_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ndExpression_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ArrayAccessExpression_indexes_Addition.gif | Bin 0 -> 223 bytes ...AccessExpression_indexes_AllExpression.gif | Bin 0 -> 223 bytes ...essExpression_indexes_AppendExpression.gif | Bin 0 -> 223 bytes ...pression_indexes_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...cessExpression_indexes_ArrayExpression.gif | Bin 0 -> 223 bytes ...ccessExpression_indexes_BooleanLiteral.gif | Bin 0 -> 223 bytes ...cessExpression_indexes_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ssExpression_indexes_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ression_indexes_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...essExpression_indexes_ComparisonLesser.gif | Bin 0 -> 223 bytes ...pression_indexes_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...sExpression_indexes_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...ayAccessExpression_indexes_Conditional.gif | Bin 0 -> 223 bytes ...ayAccessExpression_indexes_Conjunction.gif | Bin 0 -> 223 bytes ...ression_indexes_ConstructionExpression.gif | Bin 0 -> 223 bytes ...ayAccessExpression_indexes_Disjunction.gif | Bin 0 -> 223 bytes ...ArrayAccessExpression_indexes_Division.gif | Bin 0 -> 223 bytes ...ssExpression_indexes_EnqueueExpression.gif | Bin 0 -> 223 bytes ...essExpression_indexes_ExistsExpression.gif | Bin 0 -> 223 bytes ...rayAccessExpression_indexes_Expression.gif | Bin 0 -> 223 bytes ...yAccessExpression_indexes_FalseLiteral.gif | Bin 0 -> 223 bytes ...xpression_indexes_IdentifierExpression.gif | Bin 0 -> 223 bytes ...ayAccessExpression_indexes_Implication.gif | Bin 0 -> 223 bytes ...ssExpression_indexes_LiteralExpression.gif | Bin 0 -> 223 bytes ...teArrayAccessExpression_indexes_Modulo.gif | Bin 0 -> 223 bytes ...ccessExpression_indexes_Multiplication.gif | Bin 0 -> 223 bytes ...ccessExpression_indexes_NaturalLiteral.gif | Bin 0 -> 223 bytes ...rayAccessExpression_indexes_Projection.gif | Bin 0 -> 223 bytes ...cessExpression_indexes_QueueExpression.gif | Bin 0 -> 223 bytes ...ression_indexes_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...essExpression_indexes_RecordExpression.gif | Bin 0 -> 223 bytes ...Expression_indexes_ReferenceExpression.gif | Bin 0 -> 223 bytes ...yAccessExpression_indexes_Substraction.gif | Bin 0 -> 223 bytes ...ayAccessExpression_indexes_TrueLiteral.gif | Bin 0 -> 223 bytes ...pression_indexes_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ression_indexes_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...xpression_indexes_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...xpression_indexes_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...Expression_indexes_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...pression_indexes_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...xpression_indexes_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ession_indexes_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...Expression_indexes_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...reateArrayAccessPattern_index_Addition.gif | Bin 0 -> 223 bytes ...ArrayAccessPattern_index_AllExpression.gif | Bin 0 -> 223 bytes ...ayAccessPattern_index_AppendExpression.gif | Bin 0 -> 223 bytes ...essPattern_index_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...rayAccessPattern_index_ArrayExpression.gif | Bin 0 -> 223 bytes ...rrayAccessPattern_index_BooleanLiteral.gif | Bin 0 -> 223 bytes ...rayAccessPattern_index_ComparisonEqual.gif | Bin 0 -> 223 bytes ...yAccessPattern_index_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ssPattern_index_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ayAccessPattern_index_ComparisonLesser.gif | Bin 0 -> 223 bytes ...essPattern_index_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...AccessPattern_index_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...teArrayAccessPattern_index_Conditional.gif | Bin 0 -> 223 bytes ...teArrayAccessPattern_index_Conjunction.gif | Bin 0 -> 223 bytes ...ssPattern_index_ConstructionExpression.gif | Bin 0 -> 223 bytes ...teArrayAccessPattern_index_Disjunction.gif | Bin 0 -> 223 bytes ...reateArrayAccessPattern_index_Division.gif | Bin 0 -> 223 bytes ...yAccessPattern_index_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ayAccessPattern_index_ExistsExpression.gif | Bin 0 -> 223 bytes ...ateArrayAccessPattern_index_Expression.gif | Bin 0 -> 223 bytes ...eArrayAccessPattern_index_FalseLiteral.gif | Bin 0 -> 223 bytes ...cessPattern_index_IdentifierExpression.gif | Bin 0 -> 223 bytes ...teArrayAccessPattern_index_Implication.gif | Bin 0 -> 223 bytes ...yAccessPattern_index_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateArrayAccessPattern_index_Modulo.gif | Bin 0 -> 223 bytes ...rrayAccessPattern_index_Multiplication.gif | Bin 0 -> 223 bytes ...rrayAccessPattern_index_NaturalLiteral.gif | Bin 0 -> 223 bytes ...ateArrayAccessPattern_index_Projection.gif | Bin 0 -> 223 bytes ...rayAccessPattern_index_QueueExpression.gif | Bin 0 -> 223 bytes ...ssPattern_index_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ayAccessPattern_index_RecordExpression.gif | Bin 0 -> 223 bytes ...ccessPattern_index_ReferenceExpression.gif | Bin 0 -> 223 bytes ...eArrayAccessPattern_index_Substraction.gif | Bin 0 -> 223 bytes ...teArrayAccessPattern_index_TrueLiteral.gif | Bin 0 -> 223 bytes ...essPattern_index_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ssPattern_index_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...cessPattern_index_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...cessPattern_index_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ccessPattern_index_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...essPattern_index_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...cessPattern_index_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...sPattern_index_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ccessPattern_index_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...ccessPattern_source_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...ccessPattern_source_ConstructorPattern.gif | Bin 0 -> 223 bytes ...AccessPattern_source_IdentifierPattern.gif | Bin 0 -> 223 bytes ...cessPattern_source_RecordAccessPattern.gif | Bin 0 -> 223 bytes .../CreateArrayExpression_values_Addition.gif | Bin 0 -> 223 bytes ...teArrayExpression_values_AllExpression.gif | Bin 0 -> 223 bytes ...rrayExpression_values_AppendExpression.gif | Bin 0 -> 223 bytes ...xpression_values_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ArrayExpression_values_ArrayExpression.gif | Bin 0 -> 223 bytes ...eArrayExpression_values_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ArrayExpression_values_ComparisonEqual.gif | Bin 0 -> 223 bytes ...rayExpression_values_ComparisonGreater.gif | Bin 0 -> 223 bytes ...pression_values_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...rrayExpression_values_ComparisonLesser.gif | Bin 0 -> 223 bytes ...xpression_values_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ayExpression_values_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eateArrayExpression_values_Conditional.gif | Bin 0 -> 223 bytes ...eateArrayExpression_values_Conjunction.gif | Bin 0 -> 223 bytes ...pression_values_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eateArrayExpression_values_Disjunction.gif | Bin 0 -> 223 bytes .../CreateArrayExpression_values_Division.gif | Bin 0 -> 223 bytes ...rayExpression_values_EnqueueExpression.gif | Bin 0 -> 223 bytes ...rrayExpression_values_ExistsExpression.gif | Bin 0 -> 223 bytes ...reateArrayExpression_values_Expression.gif | Bin 0 -> 223 bytes ...ateArrayExpression_values_FalseLiteral.gif | Bin 0 -> 223 bytes ...Expression_values_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eateArrayExpression_values_Implication.gif | Bin 0 -> 223 bytes ...rayExpression_values_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateArrayExpression_values_Modulo.gif | Bin 0 -> 223 bytes ...eArrayExpression_values_Multiplication.gif | Bin 0 -> 223 bytes ...eArrayExpression_values_NaturalLiteral.gif | Bin 0 -> 223 bytes ...reateArrayExpression_values_Projection.gif | Bin 0 -> 223 bytes ...ArrayExpression_values_QueueExpression.gif | Bin 0 -> 223 bytes ...pression_values_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...rrayExpression_values_RecordExpression.gif | Bin 0 -> 223 bytes ...yExpression_values_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ateArrayExpression_values_Substraction.gif | Bin 0 -> 223 bytes ...eateArrayExpression_values_TrueLiteral.gif | Bin 0 -> 223 bytes ...xpression_values_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...pression_values_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...Expression_values_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...Expression_values_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...yExpression_values_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...xpression_values_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...Expression_values_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ression_values_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...yExpression_values_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateArrayType_size_Addition.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_AllExpression.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_AppendExpression.gif | Bin 0 -> 223 bytes ...teArrayType_size_ArrayAccessExpression.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_BooleanLiteral.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_ComparisonEqual.gif | Bin 0 -> 223 bytes ...CreateArrayType_size_ComparisonGreater.gif | Bin 0 -> 223 bytes ...eArrayType_size_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_ComparisonLesser.gif | Bin 0 -> 223 bytes ...teArrayType_size_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...reateArrayType_size_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_Conditional.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_Conjunction.gif | Bin 0 -> 223 bytes ...eArrayType_size_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_Disjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreateArrayType_size_Division.gif | Bin 0 -> 223 bytes ...CreateArrayType_size_EnqueueExpression.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_Expression.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_FalseLiteral.gif | Bin 0 -> 223 bytes ...ateArrayType_size_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_Implication.gif | Bin 0 -> 223 bytes ...CreateArrayType_size_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateArrayType_size_Modulo.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_Multiplication.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_Projection.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_QueueExpression.gif | Bin 0 -> 223 bytes ...eArrayType_size_RecordAccessExpression.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_RecordExpression.gif | Bin 0 -> 223 bytes ...eateArrayType_size_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_Substraction.gif | Bin 0 -> 223 bytes .../CreateArrayType_size_TrueLiteral.gif | Bin 0 -> 223 bytes ...teArrayType_size_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...eArrayType_size_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...ateArrayType_size_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...ateArrayType_size_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eateArrayType_size_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...teArrayType_size_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...ateArrayType_size_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ArrayType_size_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eateArrayType_size_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_ArrayType.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_BasicType.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_BooleanType.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_IntegerType.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_NaturalType.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_QueueType.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_RangeType.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_RecordType.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_ReferencedType.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_TupleType.gif | Bin 0 -> 223 bytes .../ctool16/CreateArrayType_type_Type.gif | Bin 0 -> 223 bytes .../CreateArrayType_type_UnionType.gif | Bin 0 -> 223 bytes .../CreateAssignAnyStatement_exp_Addition.gif | Bin 0 -> 223 bytes ...teAssignAnyStatement_exp_AllExpression.gif | Bin 0 -> 223 bytes ...ssignAnyStatement_exp_AppendExpression.gif | Bin 0 -> 223 bytes ...AnyStatement_exp_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...AssignAnyStatement_exp_ArrayExpression.gif | Bin 0 -> 223 bytes ...eAssignAnyStatement_exp_BooleanLiteral.gif | Bin 0 -> 223 bytes ...AssignAnyStatement_exp_ComparisonEqual.gif | Bin 0 -> 223 bytes ...signAnyStatement_exp_ComparisonGreater.gif | Bin 0 -> 223 bytes ...nyStatement_exp_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ssignAnyStatement_exp_ComparisonLesser.gif | Bin 0 -> 223 bytes ...AnyStatement_exp_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ignAnyStatement_exp_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eateAssignAnyStatement_exp_Conditional.gif | Bin 0 -> 223 bytes ...eateAssignAnyStatement_exp_Conjunction.gif | Bin 0 -> 223 bytes ...nyStatement_exp_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eateAssignAnyStatement_exp_Disjunction.gif | Bin 0 -> 223 bytes .../CreateAssignAnyStatement_exp_Division.gif | Bin 0 -> 223 bytes ...signAnyStatement_exp_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ssignAnyStatement_exp_ExistsExpression.gif | Bin 0 -> 223 bytes ...reateAssignAnyStatement_exp_Expression.gif | Bin 0 -> 223 bytes ...ateAssignAnyStatement_exp_FalseLiteral.gif | Bin 0 -> 223 bytes ...nAnyStatement_exp_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eateAssignAnyStatement_exp_Implication.gif | Bin 0 -> 223 bytes ...signAnyStatement_exp_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateAssignAnyStatement_exp_Modulo.gif | Bin 0 -> 223 bytes ...eAssignAnyStatement_exp_Multiplication.gif | Bin 0 -> 223 bytes ...eAssignAnyStatement_exp_NaturalLiteral.gif | Bin 0 -> 223 bytes ...reateAssignAnyStatement_exp_Projection.gif | Bin 0 -> 223 bytes ...AssignAnyStatement_exp_QueueExpression.gif | Bin 0 -> 223 bytes ...nyStatement_exp_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ssignAnyStatement_exp_RecordExpression.gif | Bin 0 -> 223 bytes ...gnAnyStatement_exp_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ateAssignAnyStatement_exp_Substraction.gif | Bin 0 -> 223 bytes ...eateAssignAnyStatement_exp_TrueLiteral.gif | Bin 0 -> 223 bytes ...AnyStatement_exp_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...nyStatement_exp_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...nAnyStatement_exp_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...nAnyStatement_exp_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...gnAnyStatement_exp_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...AnyStatement_exp_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...nAnyStatement_exp_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...yStatement_exp_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...gnAnyStatement_exp_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...AssignAnyStatement_patterns_AnyPattern.gif | Bin 0 -> 223 bytes ...yStatement_patterns_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...nAnyStatement_patterns_ConstantPattern.gif | Bin 0 -> 223 bytes ...yStatement_patterns_ConstructorPattern.gif | Bin 0 -> 223 bytes ...nyStatement_patterns_IdentifierPattern.gif | Bin 0 -> 223 bytes ...gnAnyStatement_patterns_IntegerPattern.gif | Bin 0 -> 223 bytes ...ateAssignAnyStatement_patterns_Pattern.gif | Bin 0 -> 223 bytes ...Statement_patterns_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...ateAssignStatement_patterns_AnyPattern.gif | Bin 0 -> 223 bytes ...nStatement_patterns_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...signStatement_patterns_ConstantPattern.gif | Bin 0 -> 223 bytes ...nStatement_patterns_ConstructorPattern.gif | Bin 0 -> 223 bytes ...gnStatement_patterns_IdentifierPattern.gif | Bin 0 -> 223 bytes ...ssignStatement_patterns_IntegerPattern.gif | Bin 0 -> 223 bytes ...CreateAssignStatement_patterns_Pattern.gif | Bin 0 -> 223 bytes ...Statement_patterns_RecordAccessPattern.gif | Bin 0 -> 223 bytes .../CreateAssignStatement_values_Addition.gif | Bin 0 -> 223 bytes ...teAssignStatement_values_AllExpression.gif | Bin 0 -> 223 bytes ...ssignStatement_values_AppendExpression.gif | Bin 0 -> 223 bytes ...Statement_values_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...AssignStatement_values_ArrayExpression.gif | Bin 0 -> 223 bytes ...eAssignStatement_values_BooleanLiteral.gif | Bin 0 -> 223 bytes ...AssignStatement_values_ComparisonEqual.gif | Bin 0 -> 223 bytes ...signStatement_values_ComparisonGreater.gif | Bin 0 -> 223 bytes ...tatement_values_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ssignStatement_values_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Statement_values_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ignStatement_values_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eateAssignStatement_values_Conditional.gif | Bin 0 -> 223 bytes ...eateAssignStatement_values_Conjunction.gif | Bin 0 -> 223 bytes ...tatement_values_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eateAssignStatement_values_Disjunction.gif | Bin 0 -> 223 bytes .../CreateAssignStatement_values_Division.gif | Bin 0 -> 223 bytes ...signStatement_values_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ssignStatement_values_ExistsExpression.gif | Bin 0 -> 223 bytes ...reateAssignStatement_values_Expression.gif | Bin 0 -> 223 bytes ...ateAssignStatement_values_FalseLiteral.gif | Bin 0 -> 223 bytes ...nStatement_values_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eateAssignStatement_values_Implication.gif | Bin 0 -> 223 bytes ...signStatement_values_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateAssignStatement_values_Modulo.gif | Bin 0 -> 223 bytes ...eAssignStatement_values_Multiplication.gif | Bin 0 -> 223 bytes ...eAssignStatement_values_NaturalLiteral.gif | Bin 0 -> 223 bytes ...reateAssignStatement_values_Projection.gif | Bin 0 -> 223 bytes ...AssignStatement_values_QueueExpression.gif | Bin 0 -> 223 bytes ...tatement_values_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ssignStatement_values_RecordExpression.gif | Bin 0 -> 223 bytes ...gnStatement_values_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ateAssignStatement_values_Substraction.gif | Bin 0 -> 223 bytes ...eateAssignStatement_values_TrueLiteral.gif | Bin 0 -> 223 bytes ...Statement_values_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...tatement_values_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...nStatement_values_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...nStatement_values_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...gnStatement_values_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Statement_values_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...nStatement_values_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...atement_values_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...gnStatement_values_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateBlockStatement_body_AnyPattern.gif | Bin 0 -> 223 bytes ...BlockStatement_body_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...BlockStatement_body_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...ateBlockStatement_body_AssignStatement.gif | Bin 0 -> 223 bytes ...eateBlockStatement_body_BlockStatement.gif | Bin 0 -> 223 bytes ...reateBlockStatement_body_CaseStatement.gif | Bin 0 -> 223 bytes ...ockStatement_body_ConditionalStatement.gif | Bin 0 -> 223 bytes ...ateBlockStatement_body_ConstantPattern.gif | Bin 0 -> 223 bytes ...BlockStatement_body_ConstructorPattern.gif | Bin 0 -> 223 bytes ...teBlockStatement_body_ForeachStatement.gif | Bin 0 -> 223 bytes ...eBlockStatement_body_IdentifierPattern.gif | Bin 0 -> 223 bytes ...eateBlockStatement_body_IntegerPattern.gif | Bin 0 -> 223 bytes ...reateBlockStatement_body_LoopStatement.gif | Bin 0 -> 223 bytes ...reateBlockStatement_body_NullStatement.gif | Bin 0 -> 223 bytes .../CreateBlockStatement_body_OnStatement.gif | Bin 0 -> 223 bytes .../CreateBlockStatement_body_Pattern.gif | Bin 0 -> 223 bytes ...teBlockStatement_body_PatternStatement.gif | Bin 0 -> 223 bytes ...teBlockStatement_body_ReceiveStatement.gif | Bin 0 -> 223 bytes ...lockStatement_body_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...ateBlockStatement_body_ReturnStatement.gif | Bin 0 -> 223 bytes ...ateBlockStatement_body_SelectStatement.gif | Bin 0 -> 223 bytes ...reateBlockStatement_body_SendStatement.gif | Bin 0 -> 223 bytes .../CreateBlockStatement_body_Statement.gif | Bin 0 -> 223 bytes ...ateBlockStatement_body_StatementChoice.gif | Bin 0 -> 223 bytes ...eBlockStatement_body_StatementSequence.gif | Bin 0 -> 223 bytes ...ateBlockStatement_body_TaggedStatement.gif | Bin 0 -> 223 bytes .../CreateBlockStatement_body_ToStatement.gif | Bin 0 -> 223 bytes ...ateBlockStatement_body_UnlessStatement.gif | Bin 0 -> 223 bytes ...reateBlockStatement_body_WaitStatement.gif | Bin 0 -> 223 bytes ...eateBlockStatement_body_WhileStatement.gif | Bin 0 -> 223 bytes .../ctool16/CreateBlock_local_PortSet.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_body_AnyPattern.gif | Bin 0 -> 223 bytes ...eCaseStatement_body_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...eCaseStatement_body_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...eateCaseStatement_body_AssignStatement.gif | Bin 0 -> 223 bytes ...reateCaseStatement_body_BlockStatement.gif | Bin 0 -> 223 bytes ...CreateCaseStatement_body_CaseStatement.gif | Bin 0 -> 223 bytes ...aseStatement_body_ConditionalStatement.gif | Bin 0 -> 223 bytes ...eateCaseStatement_body_ConstantPattern.gif | Bin 0 -> 223 bytes ...eCaseStatement_body_ConstructorPattern.gif | Bin 0 -> 223 bytes ...ateCaseStatement_body_ForeachStatement.gif | Bin 0 -> 223 bytes ...teCaseStatement_body_IdentifierPattern.gif | Bin 0 -> 223 bytes ...reateCaseStatement_body_IntegerPattern.gif | Bin 0 -> 223 bytes ...CreateCaseStatement_body_LoopStatement.gif | Bin 0 -> 223 bytes ...CreateCaseStatement_body_NullStatement.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_body_OnStatement.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_body_Pattern.gif | Bin 0 -> 223 bytes ...ateCaseStatement_body_PatternStatement.gif | Bin 0 -> 223 bytes ...ateCaseStatement_body_ReceiveStatement.gif | Bin 0 -> 223 bytes ...CaseStatement_body_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...eateCaseStatement_body_ReturnStatement.gif | Bin 0 -> 223 bytes ...eateCaseStatement_body_SelectStatement.gif | Bin 0 -> 223 bytes ...CreateCaseStatement_body_SendStatement.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_body_Statement.gif | Bin 0 -> 223 bytes ...eateCaseStatement_body_StatementChoice.gif | Bin 0 -> 223 bytes ...teCaseStatement_body_StatementSequence.gif | Bin 0 -> 223 bytes ...eateCaseStatement_body_TaggedStatement.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_body_ToStatement.gif | Bin 0 -> 223 bytes ...eateCaseStatement_body_UnlessStatement.gif | Bin 0 -> 223 bytes ...CreateCaseStatement_body_WaitStatement.gif | Bin 0 -> 223 bytes ...reateCaseStatement_body_WhileStatement.gif | Bin 0 -> 223 bytes ...CreateCaseStatement_pattern_AnyPattern.gif | Bin 0 -> 223 bytes ...seStatement_pattern_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...eCaseStatement_pattern_ConstantPattern.gif | Bin 0 -> 223 bytes ...seStatement_pattern_ConstructorPattern.gif | Bin 0 -> 223 bytes ...aseStatement_pattern_IdentifierPattern.gif | Bin 0 -> 223 bytes ...teCaseStatement_pattern_IntegerPattern.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_pattern_Pattern.gif | Bin 0 -> 223 bytes ...eStatement_pattern_RecordAccessPattern.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_value_Addition.gif | Bin 0 -> 223 bytes ...reateCaseStatement_value_AllExpression.gif | Bin 0 -> 223 bytes ...teCaseStatement_value_AppendExpression.gif | Bin 0 -> 223 bytes ...eStatement_value_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ateCaseStatement_value_ArrayExpression.gif | Bin 0 -> 223 bytes ...eateCaseStatement_value_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ateCaseStatement_value_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eCaseStatement_value_ComparisonGreater.gif | Bin 0 -> 223 bytes ...Statement_value_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...teCaseStatement_value_ComparisonLesser.gif | Bin 0 -> 223 bytes ...eStatement_value_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...CaseStatement_value_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_value_Conditional.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_value_Conjunction.gif | Bin 0 -> 223 bytes ...Statement_value_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_value_Disjunction.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_value_Division.gif | Bin 0 -> 223 bytes ...eCaseStatement_value_EnqueueExpression.gif | Bin 0 -> 223 bytes ...teCaseStatement_value_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_value_Expression.gif | Bin 0 -> 223 bytes ...CreateCaseStatement_value_FalseLiteral.gif | Bin 0 -> 223 bytes ...seStatement_value_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_value_Implication.gif | Bin 0 -> 223 bytes ...eCaseStatement_value_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_value_Modulo.gif | Bin 0 -> 223 bytes ...eateCaseStatement_value_Multiplication.gif | Bin 0 -> 223 bytes ...eateCaseStatement_value_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_value_Projection.gif | Bin 0 -> 223 bytes ...ateCaseStatement_value_QueueExpression.gif | Bin 0 -> 223 bytes ...Statement_value_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...teCaseStatement_value_RecordExpression.gif | Bin 0 -> 223 bytes ...aseStatement_value_ReferenceExpression.gif | Bin 0 -> 223 bytes ...CreateCaseStatement_value_Substraction.gif | Bin 0 -> 223 bytes .../CreateCaseStatement_value_TrueLiteral.gif | Bin 0 -> 223 bytes ...eStatement_value_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...Statement_value_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...seStatement_value_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...seStatement_value_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...aseStatement_value_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...eStatement_value_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...seStatement_value_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...tatement_value_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...aseStatement_value_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...teChannelDeclaration_value_ChannelType.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_Addition.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_AllExpression.gif | Bin 0 -> 223 bytes ...reateChannelType_size_AppendExpression.gif | Bin 0 -> 223 bytes ...ChannelType_size_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...CreateChannelType_size_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_BooleanLiteral.gif | Bin 0 -> 223 bytes ...CreateChannelType_size_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eateChannelType_size_ComparisonGreater.gif | Bin 0 -> 223 bytes ...hannelType_size_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...reateChannelType_size_ComparisonLesser.gif | Bin 0 -> 223 bytes ...ChannelType_size_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ateChannelType_size_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_Conditional.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_Conjunction.gif | Bin 0 -> 223 bytes ...hannelType_size_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_Disjunction.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_Division.gif | Bin 0 -> 223 bytes ...eateChannelType_size_EnqueueExpression.gif | Bin 0 -> 223 bytes ...reateChannelType_size_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_Expression.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_FalseLiteral.gif | Bin 0 -> 223 bytes ...eChannelType_size_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_Implication.gif | Bin 0 -> 223 bytes ...eateChannelType_size_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateChannelType_size_Modulo.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_Multiplication.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_Projection.gif | Bin 0 -> 223 bytes ...CreateChannelType_size_QueueExpression.gif | Bin 0 -> 223 bytes ...hannelType_size_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...reateChannelType_size_RecordExpression.gif | Bin 0 -> 223 bytes ...teChannelType_size_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_Substraction.gif | Bin 0 -> 223 bytes .../CreateChannelType_size_TrueLiteral.gif | Bin 0 -> 223 bytes ...ChannelType_size_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...hannelType_size_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eChannelType_size_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eChannelType_size_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...teChannelType_size_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...ChannelType_size_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eChannelType_size_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...annelType_size_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...teChannelType_size_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_ArrayType.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_BasicType.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_BooleanType.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_IntegerType.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_NaturalType.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_QueueType.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_RangeType.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_RecordType.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_ReferencedType.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_TupleType.gif | Bin 0 -> 223 bytes .../ctool16/CreateChannelType_type_Type.gif | Bin 0 -> 223 bytes .../CreateChannelType_type_UnionType.gif | Bin 0 -> 223 bytes .../CreateComparisonEqual_left_Addition.gif | Bin 0 -> 223 bytes ...eateComparisonEqual_left_AllExpression.gif | Bin 0 -> 223 bytes ...eComparisonEqual_left_AppendExpression.gif | Bin 0 -> 223 bytes ...arisonEqual_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...teComparisonEqual_left_ArrayExpression.gif | Bin 0 -> 223 bytes ...ateComparisonEqual_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...teComparisonEqual_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ComparisonEqual_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...risonEqual_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eComparisonEqual_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...arisonEqual_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...omparisonEqual_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...CreateComparisonEqual_left_Conditional.gif | Bin 0 -> 223 bytes ...CreateComparisonEqual_left_Conjunction.gif | Bin 0 -> 223 bytes ...risonEqual_left_ConstructionExpression.gif | Bin 0 -> 223 bytes ...CreateComparisonEqual_left_Disjunction.gif | Bin 0 -> 223 bytes .../CreateComparisonEqual_left_Division.gif | Bin 0 -> 223 bytes ...ComparisonEqual_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eComparisonEqual_left_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonEqual_left_Expression.gif | Bin 0 -> 223 bytes ...reateComparisonEqual_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...parisonEqual_left_IdentifierExpression.gif | Bin 0 -> 223 bytes ...CreateComparisonEqual_left_Implication.gif | Bin 0 -> 223 bytes ...ComparisonEqual_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonEqual_left_Modulo.gif | Bin 0 -> 223 bytes ...ateComparisonEqual_left_Multiplication.gif | Bin 0 -> 223 bytes ...ateComparisonEqual_left_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateComparisonEqual_left_Projection.gif | Bin 0 -> 223 bytes ...teComparisonEqual_left_QueueExpression.gif | Bin 0 -> 223 bytes ...risonEqual_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eComparisonEqual_left_RecordExpression.gif | Bin 0 -> 223 bytes ...mparisonEqual_left_ReferenceExpression.gif | Bin 0 -> 223 bytes ...reateComparisonEqual_left_Substraction.gif | Bin 0 -> 223 bytes ...CreateComparisonEqual_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...arisonEqual_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...risonEqual_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...parisonEqual_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...parisonEqual_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...mparisonEqual_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...arisonEqual_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...parisonEqual_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...isonEqual_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...mparisonEqual_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonEqual_right_Addition.gif | Bin 0 -> 223 bytes ...ateComparisonEqual_right_AllExpression.gif | Bin 0 -> 223 bytes ...ComparisonEqual_right_AppendExpression.gif | Bin 0 -> 223 bytes ...risonEqual_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...eComparisonEqual_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...teComparisonEqual_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eComparisonEqual_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...omparisonEqual_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...isonEqual_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ComparisonEqual_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...risonEqual_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...mparisonEqual_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...reateComparisonEqual_right_Conditional.gif | Bin 0 -> 223 bytes ...reateComparisonEqual_right_Conjunction.gif | Bin 0 -> 223 bytes ...isonEqual_right_ConstructionExpression.gif | Bin 0 -> 223 bytes ...reateComparisonEqual_right_Disjunction.gif | Bin 0 -> 223 bytes .../CreateComparisonEqual_right_Division.gif | Bin 0 -> 223 bytes ...omparisonEqual_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ComparisonEqual_right_ExistsExpression.gif | Bin 0 -> 223 bytes ...CreateComparisonEqual_right_Expression.gif | Bin 0 -> 223 bytes ...eateComparisonEqual_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...arisonEqual_right_IdentifierExpression.gif | Bin 0 -> 223 bytes ...reateComparisonEqual_right_Implication.gif | Bin 0 -> 223 bytes ...omparisonEqual_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonEqual_right_Modulo.gif | Bin 0 -> 223 bytes ...teComparisonEqual_right_Multiplication.gif | Bin 0 -> 223 bytes ...teComparisonEqual_right_NaturalLiteral.gif | Bin 0 -> 223 bytes ...CreateComparisonEqual_right_Projection.gif | Bin 0 -> 223 bytes ...eComparisonEqual_right_QueueExpression.gif | Bin 0 -> 223 bytes ...isonEqual_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ComparisonEqual_right_RecordExpression.gif | Bin 0 -> 223 bytes ...parisonEqual_right_ReferenceExpression.gif | Bin 0 -> 223 bytes ...eateComparisonEqual_right_Substraction.gif | Bin 0 -> 223 bytes ...reateComparisonEqual_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...risonEqual_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...isonEqual_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...arisonEqual_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...arisonEqual_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...parisonEqual_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...risonEqual_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...arisonEqual_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...sonEqual_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...parisonEqual_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...teComparisonGreaterEqual_left_Addition.gif | Bin 0 -> 223 bytes ...parisonGreaterEqual_left_AllExpression.gif | Bin 0 -> 223 bytes ...isonGreaterEqual_left_AppendExpression.gif | Bin 0 -> 223 bytes ...reaterEqual_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...risonGreaterEqual_left_ArrayExpression.gif | Bin 0 -> 223 bytes ...arisonGreaterEqual_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...risonGreaterEqual_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...sonGreaterEqual_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...eaterEqual_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...isonGreaterEqual_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...reaterEqual_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...onGreaterEqual_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...omparisonGreaterEqual_left_Conditional.gif | Bin 0 -> 223 bytes ...omparisonGreaterEqual_left_Conjunction.gif | Bin 0 -> 223 bytes ...eaterEqual_left_ConstructionExpression.gif | Bin 0 -> 223 bytes ...omparisonGreaterEqual_left_Disjunction.gif | Bin 0 -> 223 bytes ...teComparisonGreaterEqual_left_Division.gif | Bin 0 -> 223 bytes ...sonGreaterEqual_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...isonGreaterEqual_left_ExistsExpression.gif | Bin 0 -> 223 bytes ...ComparisonGreaterEqual_left_Expression.gif | Bin 0 -> 223 bytes ...mparisonGreaterEqual_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...GreaterEqual_left_IdentifierExpression.gif | Bin 0 -> 223 bytes ...omparisonGreaterEqual_left_Implication.gif | Bin 0 -> 223 bytes ...sonGreaterEqual_left_LiteralExpression.gif | Bin 0 -> 223 bytes ...eateComparisonGreaterEqual_left_Modulo.gif | Bin 0 -> 223 bytes ...arisonGreaterEqual_left_Multiplication.gif | Bin 0 -> 223 bytes ...arisonGreaterEqual_left_NaturalLiteral.gif | Bin 0 -> 223 bytes ...ComparisonGreaterEqual_left_Projection.gif | Bin 0 -> 223 bytes ...risonGreaterEqual_left_QueueExpression.gif | Bin 0 -> 223 bytes ...eaterEqual_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...isonGreaterEqual_left_RecordExpression.gif | Bin 0 -> 223 bytes ...nGreaterEqual_left_ReferenceExpression.gif | Bin 0 -> 223 bytes ...mparisonGreaterEqual_left_Substraction.gif | Bin 0 -> 223 bytes ...omparisonGreaterEqual_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...reaterEqual_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...eaterEqual_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...GreaterEqual_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...GreaterEqual_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...nGreaterEqual_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...reaterEqual_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...GreaterEqual_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...aterEqual_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...nGreaterEqual_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eComparisonGreaterEqual_right_Addition.gif | Bin 0 -> 223 bytes ...arisonGreaterEqual_right_AllExpression.gif | Bin 0 -> 223 bytes ...sonGreaterEqual_right_AppendExpression.gif | Bin 0 -> 223 bytes ...eaterEqual_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...isonGreaterEqual_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...risonGreaterEqual_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...isonGreaterEqual_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...onGreaterEqual_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...aterEqual_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...sonGreaterEqual_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...eaterEqual_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...nGreaterEqual_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...mparisonGreaterEqual_right_Conditional.gif | Bin 0 -> 223 bytes ...mparisonGreaterEqual_right_Conjunction.gif | Bin 0 -> 223 bytes ...aterEqual_right_ConstructionExpression.gif | Bin 0 -> 223 bytes ...mparisonGreaterEqual_right_Disjunction.gif | Bin 0 -> 223 bytes ...eComparisonGreaterEqual_right_Division.gif | Bin 0 -> 223 bytes ...onGreaterEqual_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...sonGreaterEqual_right_ExistsExpression.gif | Bin 0 -> 223 bytes ...omparisonGreaterEqual_right_Expression.gif | Bin 0 -> 223 bytes ...parisonGreaterEqual_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...reaterEqual_right_IdentifierExpression.gif | Bin 0 -> 223 bytes ...mparisonGreaterEqual_right_Implication.gif | Bin 0 -> 223 bytes ...onGreaterEqual_right_LiteralExpression.gif | Bin 0 -> 223 bytes ...ateComparisonGreaterEqual_right_Modulo.gif | Bin 0 -> 223 bytes ...risonGreaterEqual_right_Multiplication.gif | Bin 0 -> 223 bytes ...risonGreaterEqual_right_NaturalLiteral.gif | Bin 0 -> 223 bytes ...omparisonGreaterEqual_right_Projection.gif | Bin 0 -> 223 bytes ...isonGreaterEqual_right_QueueExpression.gif | Bin 0 -> 223 bytes ...aterEqual_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...sonGreaterEqual_right_RecordExpression.gif | Bin 0 -> 223 bytes ...GreaterEqual_right_ReferenceExpression.gif | Bin 0 -> 223 bytes ...parisonGreaterEqual_right_Substraction.gif | Bin 0 -> 223 bytes ...mparisonGreaterEqual_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...eaterEqual_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...aterEqual_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...reaterEqual_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...reaterEqual_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...GreaterEqual_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...eaterEqual_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...reaterEqual_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...terEqual_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...GreaterEqual_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonGreater_left_Addition.gif | Bin 0 -> 223 bytes ...teComparisonGreater_left_AllExpression.gif | Bin 0 -> 223 bytes ...omparisonGreater_left_AppendExpression.gif | Bin 0 -> 223 bytes ...isonGreater_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ComparisonGreater_left_ArrayExpression.gif | Bin 0 -> 223 bytes ...eComparisonGreater_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ComparisonGreater_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...mparisonGreater_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...sonGreater_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...omparisonGreater_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...isonGreater_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...parisonGreater_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eateComparisonGreater_left_Conditional.gif | Bin 0 -> 223 bytes ...eateComparisonGreater_left_Conjunction.gif | Bin 0 -> 223 bytes ...sonGreater_left_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eateComparisonGreater_left_Disjunction.gif | Bin 0 -> 223 bytes .../CreateComparisonGreater_left_Division.gif | Bin 0 -> 223 bytes ...mparisonGreater_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...omparisonGreater_left_ExistsExpression.gif | Bin 0 -> 223 bytes ...reateComparisonGreater_left_Expression.gif | Bin 0 -> 223 bytes ...ateComparisonGreater_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...risonGreater_left_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eateComparisonGreater_left_Implication.gif | Bin 0 -> 223 bytes ...mparisonGreater_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonGreater_left_Modulo.gif | Bin 0 -> 223 bytes ...eComparisonGreater_left_Multiplication.gif | Bin 0 -> 223 bytes ...eComparisonGreater_left_NaturalLiteral.gif | Bin 0 -> 223 bytes ...reateComparisonGreater_left_Projection.gif | Bin 0 -> 223 bytes ...ComparisonGreater_left_QueueExpression.gif | Bin 0 -> 223 bytes ...sonGreater_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...omparisonGreater_left_RecordExpression.gif | Bin 0 -> 223 bytes ...arisonGreater_left_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ateComparisonGreater_left_Substraction.gif | Bin 0 -> 223 bytes ...eateComparisonGreater_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...isonGreater_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...sonGreater_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...risonGreater_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...risonGreater_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...arisonGreater_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...isonGreater_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...risonGreater_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...onGreater_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...arisonGreater_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...CreateComparisonGreater_right_Addition.gif | Bin 0 -> 223 bytes ...eComparisonGreater_right_AllExpression.gif | Bin 0 -> 223 bytes ...mparisonGreater_right_AppendExpression.gif | Bin 0 -> 223 bytes ...sonGreater_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...omparisonGreater_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...ComparisonGreater_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...omparisonGreater_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...parisonGreater_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...onGreater_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...mparisonGreater_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...sonGreater_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...arisonGreater_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...ateComparisonGreater_right_Conditional.gif | Bin 0 -> 223 bytes ...ateComparisonGreater_right_Conjunction.gif | Bin 0 -> 223 bytes ...onGreater_right_ConstructionExpression.gif | Bin 0 -> 223 bytes ...ateComparisonGreater_right_Disjunction.gif | Bin 0 -> 223 bytes ...CreateComparisonGreater_right_Division.gif | Bin 0 -> 223 bytes ...parisonGreater_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...mparisonGreater_right_ExistsExpression.gif | Bin 0 -> 223 bytes ...eateComparisonGreater_right_Expression.gif | Bin 0 -> 223 bytes ...teComparisonGreater_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...isonGreater_right_IdentifierExpression.gif | Bin 0 -> 223 bytes ...ateComparisonGreater_right_Implication.gif | Bin 0 -> 223 bytes ...parisonGreater_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonGreater_right_Modulo.gif | Bin 0 -> 223 bytes ...ComparisonGreater_right_Multiplication.gif | Bin 0 -> 223 bytes ...ComparisonGreater_right_NaturalLiteral.gif | Bin 0 -> 223 bytes ...eateComparisonGreater_right_Projection.gif | Bin 0 -> 223 bytes ...omparisonGreater_right_QueueExpression.gif | Bin 0 -> 223 bytes ...onGreater_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...mparisonGreater_right_RecordExpression.gif | Bin 0 -> 223 bytes ...risonGreater_right_ReferenceExpression.gif | Bin 0 -> 223 bytes ...teComparisonGreater_right_Substraction.gif | Bin 0 -> 223 bytes ...ateComparisonGreater_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...sonGreater_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...onGreater_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...isonGreater_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...isonGreater_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...risonGreater_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...sonGreater_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...isonGreater_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...nGreater_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...risonGreater_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...ateComparisonLesserEqual_left_Addition.gif | Bin 0 -> 223 bytes ...mparisonLesserEqual_left_AllExpression.gif | Bin 0 -> 223 bytes ...risonLesserEqual_left_AppendExpression.gif | Bin 0 -> 223 bytes ...LesserEqual_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...arisonLesserEqual_left_ArrayExpression.gif | Bin 0 -> 223 bytes ...parisonLesserEqual_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...arisonLesserEqual_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...isonLesserEqual_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...esserEqual_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...risonLesserEqual_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...LesserEqual_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...sonLesserEqual_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...ComparisonLesserEqual_left_Conditional.gif | Bin 0 -> 223 bytes ...ComparisonLesserEqual_left_Conjunction.gif | Bin 0 -> 223 bytes ...esserEqual_left_ConstructionExpression.gif | Bin 0 -> 223 bytes ...ComparisonLesserEqual_left_Disjunction.gif | Bin 0 -> 223 bytes ...ateComparisonLesserEqual_left_Division.gif | Bin 0 -> 223 bytes ...isonLesserEqual_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...risonLesserEqual_left_ExistsExpression.gif | Bin 0 -> 223 bytes ...eComparisonLesserEqual_left_Expression.gif | Bin 0 -> 223 bytes ...omparisonLesserEqual_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...nLesserEqual_left_IdentifierExpression.gif | Bin 0 -> 223 bytes ...ComparisonLesserEqual_left_Implication.gif | Bin 0 -> 223 bytes ...isonLesserEqual_left_LiteralExpression.gif | Bin 0 -> 223 bytes ...reateComparisonLesserEqual_left_Modulo.gif | Bin 0 -> 223 bytes ...parisonLesserEqual_left_Multiplication.gif | Bin 0 -> 223 bytes ...parisonLesserEqual_left_NaturalLiteral.gif | Bin 0 -> 223 bytes ...eComparisonLesserEqual_left_Projection.gif | Bin 0 -> 223 bytes ...arisonLesserEqual_left_QueueExpression.gif | Bin 0 -> 223 bytes ...esserEqual_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...risonLesserEqual_left_RecordExpression.gif | Bin 0 -> 223 bytes ...onLesserEqual_left_ReferenceExpression.gif | Bin 0 -> 223 bytes ...omparisonLesserEqual_left_Substraction.gif | Bin 0 -> 223 bytes ...ComparisonLesserEqual_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...LesserEqual_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...esserEqual_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...nLesserEqual_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...nLesserEqual_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...onLesserEqual_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...LesserEqual_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...nLesserEqual_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...sserEqual_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...onLesserEqual_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...teComparisonLesserEqual_right_Addition.gif | Bin 0 -> 223 bytes ...parisonLesserEqual_right_AllExpression.gif | Bin 0 -> 223 bytes ...isonLesserEqual_right_AppendExpression.gif | Bin 0 -> 223 bytes ...esserEqual_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...risonLesserEqual_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...arisonLesserEqual_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...risonLesserEqual_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...sonLesserEqual_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...sserEqual_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...isonLesserEqual_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...esserEqual_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...onLesserEqual_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...omparisonLesserEqual_right_Conditional.gif | Bin 0 -> 223 bytes ...omparisonLesserEqual_right_Conjunction.gif | Bin 0 -> 223 bytes ...sserEqual_right_ConstructionExpression.gif | Bin 0 -> 223 bytes ...omparisonLesserEqual_right_Disjunction.gif | Bin 0 -> 223 bytes ...teComparisonLesserEqual_right_Division.gif | Bin 0 -> 223 bytes ...sonLesserEqual_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...isonLesserEqual_right_ExistsExpression.gif | Bin 0 -> 223 bytes ...ComparisonLesserEqual_right_Expression.gif | Bin 0 -> 223 bytes ...mparisonLesserEqual_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...LesserEqual_right_IdentifierExpression.gif | Bin 0 -> 223 bytes ...omparisonLesserEqual_right_Implication.gif | Bin 0 -> 223 bytes ...sonLesserEqual_right_LiteralExpression.gif | Bin 0 -> 223 bytes ...eateComparisonLesserEqual_right_Modulo.gif | Bin 0 -> 223 bytes ...arisonLesserEqual_right_Multiplication.gif | Bin 0 -> 223 bytes ...arisonLesserEqual_right_NaturalLiteral.gif | Bin 0 -> 223 bytes ...ComparisonLesserEqual_right_Projection.gif | Bin 0 -> 223 bytes ...risonLesserEqual_right_QueueExpression.gif | Bin 0 -> 223 bytes ...sserEqual_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...isonLesserEqual_right_RecordExpression.gif | Bin 0 -> 223 bytes ...nLesserEqual_right_ReferenceExpression.gif | Bin 0 -> 223 bytes ...mparisonLesserEqual_right_Substraction.gif | Bin 0 -> 223 bytes ...omparisonLesserEqual_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...esserEqual_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...sserEqual_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...LesserEqual_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...LesserEqual_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...nLesserEqual_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...esserEqual_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...LesserEqual_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...serEqual_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...nLesserEqual_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonLesser_left_Addition.gif | Bin 0 -> 223 bytes ...ateComparisonLesser_left_AllExpression.gif | Bin 0 -> 223 bytes ...ComparisonLesser_left_AppendExpression.gif | Bin 0 -> 223 bytes ...risonLesser_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...eComparisonLesser_left_ArrayExpression.gif | Bin 0 -> 223 bytes ...teComparisonLesser_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eComparisonLesser_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...omparisonLesser_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...isonLesser_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ComparisonLesser_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...risonLesser_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...mparisonLesser_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...reateComparisonLesser_left_Conditional.gif | Bin 0 -> 223 bytes ...reateComparisonLesser_left_Conjunction.gif | Bin 0 -> 223 bytes ...isonLesser_left_ConstructionExpression.gif | Bin 0 -> 223 bytes ...reateComparisonLesser_left_Disjunction.gif | Bin 0 -> 223 bytes .../CreateComparisonLesser_left_Division.gif | Bin 0 -> 223 bytes ...omparisonLesser_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ComparisonLesser_left_ExistsExpression.gif | Bin 0 -> 223 bytes ...CreateComparisonLesser_left_Expression.gif | Bin 0 -> 223 bytes ...eateComparisonLesser_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...arisonLesser_left_IdentifierExpression.gif | Bin 0 -> 223 bytes ...reateComparisonLesser_left_Implication.gif | Bin 0 -> 223 bytes ...omparisonLesser_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonLesser_left_Modulo.gif | Bin 0 -> 223 bytes ...teComparisonLesser_left_Multiplication.gif | Bin 0 -> 223 bytes ...teComparisonLesser_left_NaturalLiteral.gif | Bin 0 -> 223 bytes ...CreateComparisonLesser_left_Projection.gif | Bin 0 -> 223 bytes ...eComparisonLesser_left_QueueExpression.gif | Bin 0 -> 223 bytes ...isonLesser_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ComparisonLesser_left_RecordExpression.gif | Bin 0 -> 223 bytes ...parisonLesser_left_ReferenceExpression.gif | Bin 0 -> 223 bytes ...eateComparisonLesser_left_Substraction.gif | Bin 0 -> 223 bytes ...reateComparisonLesser_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...risonLesser_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...isonLesser_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...arisonLesser_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...arisonLesser_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...parisonLesser_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...risonLesser_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...arisonLesser_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...sonLesser_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...parisonLesser_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonLesser_right_Addition.gif | Bin 0 -> 223 bytes ...teComparisonLesser_right_AllExpression.gif | Bin 0 -> 223 bytes ...omparisonLesser_right_AppendExpression.gif | Bin 0 -> 223 bytes ...isonLesser_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ComparisonLesser_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...eComparisonLesser_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ComparisonLesser_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...mparisonLesser_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...sonLesser_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...omparisonLesser_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...isonLesser_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...parisonLesser_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eateComparisonLesser_right_Conditional.gif | Bin 0 -> 223 bytes ...eateComparisonLesser_right_Conjunction.gif | Bin 0 -> 223 bytes ...sonLesser_right_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eateComparisonLesser_right_Disjunction.gif | Bin 0 -> 223 bytes .../CreateComparisonLesser_right_Division.gif | Bin 0 -> 223 bytes ...mparisonLesser_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...omparisonLesser_right_ExistsExpression.gif | Bin 0 -> 223 bytes ...reateComparisonLesser_right_Expression.gif | Bin 0 -> 223 bytes ...ateComparisonLesser_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...risonLesser_right_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eateComparisonLesser_right_Implication.gif | Bin 0 -> 223 bytes ...mparisonLesser_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonLesser_right_Modulo.gif | Bin 0 -> 223 bytes ...eComparisonLesser_right_Multiplication.gif | Bin 0 -> 223 bytes ...eComparisonLesser_right_NaturalLiteral.gif | Bin 0 -> 223 bytes ...reateComparisonLesser_right_Projection.gif | Bin 0 -> 223 bytes ...ComparisonLesser_right_QueueExpression.gif | Bin 0 -> 223 bytes ...sonLesser_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...omparisonLesser_right_RecordExpression.gif | Bin 0 -> 223 bytes ...arisonLesser_right_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ateComparisonLesser_right_Substraction.gif | Bin 0 -> 223 bytes ...eateComparisonLesser_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...isonLesser_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...sonLesser_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...risonLesser_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...risonLesser_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...arisonLesser_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...isonLesser_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...risonLesser_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...onLesser_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...arisonLesser_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...CreateComparisonNotEqual_left_Addition.gif | Bin 0 -> 223 bytes ...eComparisonNotEqual_left_AllExpression.gif | Bin 0 -> 223 bytes ...mparisonNotEqual_left_AppendExpression.gif | Bin 0 -> 223 bytes ...sonNotEqual_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...omparisonNotEqual_left_ArrayExpression.gif | Bin 0 -> 223 bytes ...ComparisonNotEqual_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...omparisonNotEqual_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...parisonNotEqual_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...onNotEqual_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...mparisonNotEqual_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...sonNotEqual_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...arisonNotEqual_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...ateComparisonNotEqual_left_Conditional.gif | Bin 0 -> 223 bytes ...ateComparisonNotEqual_left_Conjunction.gif | Bin 0 -> 223 bytes ...onNotEqual_left_ConstructionExpression.gif | Bin 0 -> 223 bytes ...ateComparisonNotEqual_left_Disjunction.gif | Bin 0 -> 223 bytes ...CreateComparisonNotEqual_left_Division.gif | Bin 0 -> 223 bytes ...parisonNotEqual_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...mparisonNotEqual_left_ExistsExpression.gif | Bin 0 -> 223 bytes ...eateComparisonNotEqual_left_Expression.gif | Bin 0 -> 223 bytes ...teComparisonNotEqual_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...isonNotEqual_left_IdentifierExpression.gif | Bin 0 -> 223 bytes ...ateComparisonNotEqual_left_Implication.gif | Bin 0 -> 223 bytes ...parisonNotEqual_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonNotEqual_left_Modulo.gif | Bin 0 -> 223 bytes ...ComparisonNotEqual_left_Multiplication.gif | Bin 0 -> 223 bytes ...ComparisonNotEqual_left_NaturalLiteral.gif | Bin 0 -> 223 bytes ...eateComparisonNotEqual_left_Projection.gif | Bin 0 -> 223 bytes ...omparisonNotEqual_left_QueueExpression.gif | Bin 0 -> 223 bytes ...onNotEqual_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...mparisonNotEqual_left_RecordExpression.gif | Bin 0 -> 223 bytes ...risonNotEqual_left_ReferenceExpression.gif | Bin 0 -> 223 bytes ...teComparisonNotEqual_left_Substraction.gif | Bin 0 -> 223 bytes ...ateComparisonNotEqual_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...sonNotEqual_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...onNotEqual_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...isonNotEqual_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...isonNotEqual_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...risonNotEqual_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...sonNotEqual_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...isonNotEqual_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...nNotEqual_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...risonNotEqual_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...reateComparisonNotEqual_right_Addition.gif | Bin 0 -> 223 bytes ...ComparisonNotEqual_right_AllExpression.gif | Bin 0 -> 223 bytes ...parisonNotEqual_right_AppendExpression.gif | Bin 0 -> 223 bytes ...onNotEqual_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...mparisonNotEqual_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...omparisonNotEqual_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...mparisonNotEqual_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...arisonNotEqual_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...nNotEqual_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...parisonNotEqual_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...onNotEqual_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...risonNotEqual_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...teComparisonNotEqual_right_Conditional.gif | Bin 0 -> 223 bytes ...teComparisonNotEqual_right_Conjunction.gif | Bin 0 -> 223 bytes ...nNotEqual_right_ConstructionExpression.gif | Bin 0 -> 223 bytes ...teComparisonNotEqual_right_Disjunction.gif | Bin 0 -> 223 bytes ...reateComparisonNotEqual_right_Division.gif | Bin 0 -> 223 bytes ...arisonNotEqual_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...parisonNotEqual_right_ExistsExpression.gif | Bin 0 -> 223 bytes ...ateComparisonNotEqual_right_Expression.gif | Bin 0 -> 223 bytes ...eComparisonNotEqual_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...sonNotEqual_right_IdentifierExpression.gif | Bin 0 -> 223 bytes ...teComparisonNotEqual_right_Implication.gif | Bin 0 -> 223 bytes ...arisonNotEqual_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateComparisonNotEqual_right_Modulo.gif | Bin 0 -> 223 bytes ...omparisonNotEqual_right_Multiplication.gif | Bin 0 -> 223 bytes ...omparisonNotEqual_right_NaturalLiteral.gif | Bin 0 -> 223 bytes ...ateComparisonNotEqual_right_Projection.gif | Bin 0 -> 223 bytes ...mparisonNotEqual_right_QueueExpression.gif | Bin 0 -> 223 bytes ...nNotEqual_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...parisonNotEqual_right_RecordExpression.gif | Bin 0 -> 223 bytes ...isonNotEqual_right_ReferenceExpression.gif | Bin 0 -> 223 bytes ...eComparisonNotEqual_right_Substraction.gif | Bin 0 -> 223 bytes ...teComparisonNotEqual_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...onNotEqual_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...nNotEqual_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...sonNotEqual_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...sonNotEqual_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...isonNotEqual_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...onNotEqual_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...sonNotEqual_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...NotEqual_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...isonNotEqual_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eComponentDeclaration_body_Composition.gif | Bin 0 -> 223 bytes ...ation_localPorts_LocalPortsDeclaration.gif | Bin 0 -> 223 bytes ...nentDeclaration_ports_PortsDeclaration.gif | Bin 0 -> 223 bytes ...omponentDeclaration_prelude_AnyPattern.gif | Bin 0 -> 223 bytes ...Declaration_prelude_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...Declaration_prelude_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...entDeclaration_prelude_AssignStatement.gif | Bin 0 -> 223 bytes ...nentDeclaration_prelude_BlockStatement.gif | Bin 0 -> 223 bytes ...onentDeclaration_prelude_CaseStatement.gif | Bin 0 -> 223 bytes ...claration_prelude_ConditionalStatement.gif | Bin 0 -> 223 bytes ...entDeclaration_prelude_ConstantPattern.gif | Bin 0 -> 223 bytes ...Declaration_prelude_ConstructorPattern.gif | Bin 0 -> 223 bytes ...ntDeclaration_prelude_ForeachStatement.gif | Bin 0 -> 223 bytes ...tDeclaration_prelude_IdentifierPattern.gif | Bin 0 -> 223 bytes ...nentDeclaration_prelude_IntegerPattern.gif | Bin 0 -> 223 bytes ...onentDeclaration_prelude_LoopStatement.gif | Bin 0 -> 223 bytes ...onentDeclaration_prelude_NullStatement.gif | Bin 0 -> 223 bytes ...mponentDeclaration_prelude_OnStatement.gif | Bin 0 -> 223 bytes ...teComponentDeclaration_prelude_Pattern.gif | Bin 0 -> 223 bytes ...ntDeclaration_prelude_PatternStatement.gif | Bin 0 -> 223 bytes ...ntDeclaration_prelude_ReceiveStatement.gif | Bin 0 -> 223 bytes ...eclaration_prelude_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...entDeclaration_prelude_ReturnStatement.gif | Bin 0 -> 223 bytes ...entDeclaration_prelude_SelectStatement.gif | Bin 0 -> 223 bytes ...onentDeclaration_prelude_SendStatement.gif | Bin 0 -> 223 bytes ...ComponentDeclaration_prelude_Statement.gif | Bin 0 -> 223 bytes ...entDeclaration_prelude_StatementChoice.gif | Bin 0 -> 223 bytes ...tDeclaration_prelude_StatementSequence.gif | Bin 0 -> 223 bytes ...entDeclaration_prelude_TaggedStatement.gif | Bin 0 -> 223 bytes ...mponentDeclaration_prelude_ToStatement.gif | Bin 0 -> 223 bytes ...entDeclaration_prelude_UnlessStatement.gif | Bin 0 -> 223 bytes ...onentDeclaration_prelude_WaitStatement.gif | Bin 0 -> 223 bytes ...nentDeclaration_prelude_WhileStatement.gif | Bin 0 -> 223 bytes ...aration_priorities_PriorityDeclaration.gif | Bin 0 -> 223 bytes ...eComponentInstance_parameters_Addition.gif | Bin 0 -> 223 bytes ...onentInstance_parameters_AllExpression.gif | Bin 0 -> 223 bytes ...ntInstance_parameters_AppendExpression.gif | Bin 0 -> 223 bytes ...tance_parameters_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...entInstance_parameters_ArrayExpression.gif | Bin 0 -> 223 bytes ...nentInstance_parameters_BooleanLiteral.gif | Bin 0 -> 223 bytes ...entInstance_parameters_ComparisonEqual.gif | Bin 0 -> 223 bytes ...tInstance_parameters_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ance_parameters_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ntInstance_parameters_ComparisonLesser.gif | Bin 0 -> 223 bytes ...tance_parameters_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...Instance_parameters_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...mponentInstance_parameters_Conditional.gif | Bin 0 -> 223 bytes ...mponentInstance_parameters_Conjunction.gif | Bin 0 -> 223 bytes ...ance_parameters_ConstructionExpression.gif | Bin 0 -> 223 bytes ...mponentInstance_parameters_Disjunction.gif | Bin 0 -> 223 bytes ...eComponentInstance_parameters_Division.gif | Bin 0 -> 223 bytes ...tInstance_parameters_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ntInstance_parameters_ExistsExpression.gif | Bin 0 -> 223 bytes ...omponentInstance_parameters_Expression.gif | Bin 0 -> 223 bytes ...ponentInstance_parameters_FalseLiteral.gif | Bin 0 -> 223 bytes ...stance_parameters_IdentifierExpression.gif | Bin 0 -> 223 bytes ...mponentInstance_parameters_Implication.gif | Bin 0 -> 223 bytes ...tInstance_parameters_LiteralExpression.gif | Bin 0 -> 223 bytes ...ateComponentInstance_parameters_Modulo.gif | Bin 0 -> 223 bytes ...nentInstance_parameters_Multiplication.gif | Bin 0 -> 223 bytes ...nentInstance_parameters_NaturalLiteral.gif | Bin 0 -> 223 bytes ...omponentInstance_parameters_Projection.gif | Bin 0 -> 223 bytes ...entInstance_parameters_QueueExpression.gif | Bin 0 -> 223 bytes ...ance_parameters_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ntInstance_parameters_RecordExpression.gif | Bin 0 -> 223 bytes ...nstance_parameters_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ponentInstance_parameters_Substraction.gif | Bin 0 -> 223 bytes ...mponentInstance_parameters_TrueLiteral.gif | Bin 0 -> 223 bytes ...tance_parameters_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ance_parameters_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...stance_parameters_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...stance_parameters_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...nstance_parameters_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...tance_parameters_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...stance_parameters_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...nce_parameters_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...nstance_parameters_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...CreateComponentInstance_ports_Addition.gif | Bin 0 -> 223 bytes ...eComponentInstance_ports_AllExpression.gif | Bin 0 -> 223 bytes ...mponentInstance_ports_AppendExpression.gif | Bin 0 -> 223 bytes ...ntInstance_ports_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...omponentInstance_ports_ArrayExpression.gif | Bin 0 -> 223 bytes ...ComponentInstance_ports_BooleanLiteral.gif | Bin 0 -> 223 bytes ...omponentInstance_ports_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ponentInstance_ports_ComparisonGreater.gif | Bin 0 -> 223 bytes ...tInstance_ports_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...mponentInstance_ports_ComparisonLesser.gif | Bin 0 -> 223 bytes ...ntInstance_ports_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...onentInstance_ports_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...ateComponentInstance_ports_Conditional.gif | Bin 0 -> 223 bytes ...ateComponentInstance_ports_Conjunction.gif | Bin 0 -> 223 bytes ...tInstance_ports_ConstructionExpression.gif | Bin 0 -> 223 bytes ...ateComponentInstance_ports_Disjunction.gif | Bin 0 -> 223 bytes ...CreateComponentInstance_ports_Division.gif | Bin 0 -> 223 bytes ...ponentInstance_ports_EnqueueExpression.gif | Bin 0 -> 223 bytes ...mponentInstance_ports_ExistsExpression.gif | Bin 0 -> 223 bytes ...eateComponentInstance_ports_Expression.gif | Bin 0 -> 223 bytes ...teComponentInstance_ports_FalseLiteral.gif | Bin 0 -> 223 bytes ...entInstance_ports_IdentifierExpression.gif | Bin 0 -> 223 bytes ...ateComponentInstance_ports_Implication.gif | Bin 0 -> 223 bytes ...ponentInstance_ports_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateComponentInstance_ports_Modulo.gif | Bin 0 -> 223 bytes ...ComponentInstance_ports_Multiplication.gif | Bin 0 -> 223 bytes ...ComponentInstance_ports_NaturalLiteral.gif | Bin 0 -> 223 bytes ...eateComponentInstance_ports_Projection.gif | Bin 0 -> 223 bytes ...omponentInstance_ports_QueueExpression.gif | Bin 0 -> 223 bytes ...tInstance_ports_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...mponentInstance_ports_RecordExpression.gif | Bin 0 -> 223 bytes ...nentInstance_ports_ReferenceExpression.gif | Bin 0 -> 223 bytes ...teComponentInstance_ports_Substraction.gif | Bin 0 -> 223 bytes ...ateComponentInstance_ports_TrueLiteral.gif | Bin 0 -> 223 bytes ...ntInstance_ports_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...tInstance_ports_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...entInstance_ports_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...entInstance_ports_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...nentInstance_ports_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...ntInstance_ports_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...entInstance_ports_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...Instance_ports_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...nentInstance_ports_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...CompositeBlock_composition_Composition.gif | Bin 0 -> 223 bytes .../CreateComposition_blocks_Block.gif | Bin 0 -> 223 bytes ...reateComposition_blocks_CompositeBlock.gif | Bin 0 -> 223 bytes ...Composition_blocks_InstanceDeclaration.gif | Bin 0 -> 223 bytes .../CreateComposition_global_PortSet.gif | Bin 0 -> 223 bytes ...onditionalStatement_condition_Addition.gif | Bin 0 -> 223 bytes ...ionalStatement_condition_AllExpression.gif | Bin 0 -> 223 bytes ...alStatement_condition_AppendExpression.gif | Bin 0 -> 223 bytes ...tement_condition_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...nalStatement_condition_ArrayExpression.gif | Bin 0 -> 223 bytes ...onalStatement_condition_BooleanLiteral.gif | Bin 0 -> 223 bytes ...nalStatement_condition_ComparisonEqual.gif | Bin 0 -> 223 bytes ...lStatement_condition_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ement_condition_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...alStatement_condition_ComparisonLesser.gif | Bin 0 -> 223 bytes ...tement_condition_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...Statement_condition_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...itionalStatement_condition_Conditional.gif | Bin 0 -> 223 bytes ...itionalStatement_condition_Conjunction.gif | Bin 0 -> 223 bytes ...ement_condition_ConstructionExpression.gif | Bin 0 -> 223 bytes ...itionalStatement_condition_Disjunction.gif | Bin 0 -> 223 bytes ...onditionalStatement_condition_Division.gif | Bin 0 -> 223 bytes ...lStatement_condition_EnqueueExpression.gif | Bin 0 -> 223 bytes ...alStatement_condition_ExistsExpression.gif | Bin 0 -> 223 bytes ...ditionalStatement_condition_Expression.gif | Bin 0 -> 223 bytes ...tionalStatement_condition_FalseLiteral.gif | Bin 0 -> 223 bytes ...atement_condition_IdentifierExpression.gif | Bin 0 -> 223 bytes ...itionalStatement_condition_Implication.gif | Bin 0 -> 223 bytes ...lStatement_condition_LiteralExpression.gif | Bin 0 -> 223 bytes ...eConditionalStatement_condition_Modulo.gif | Bin 0 -> 223 bytes ...onalStatement_condition_Multiplication.gif | Bin 0 -> 223 bytes ...onalStatement_condition_NaturalLiteral.gif | Bin 0 -> 223 bytes ...ditionalStatement_condition_Projection.gif | Bin 0 -> 223 bytes ...nalStatement_condition_QueueExpression.gif | Bin 0 -> 223 bytes ...ement_condition_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...alStatement_condition_RecordExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_ReferenceExpression.gif | Bin 0 -> 223 bytes ...tionalStatement_condition_Substraction.gif | Bin 0 -> 223 bytes ...itionalStatement_condition_TrueLiteral.gif | Bin 0 -> 223 bytes ...tement_condition_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ement_condition_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...tement_condition_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ment_condition_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...teConditionalStatement_else_AnyPattern.gif | Bin 0 -> 223 bytes ...ionalStatement_else_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...ionalStatement_else_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_else_AssignStatement.gif | Bin 0 -> 223 bytes ...nditionalStatement_else_BlockStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_else_CaseStatement.gif | Bin 0 -> 223 bytes ...nalStatement_else_ConditionalStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_else_ConstantPattern.gif | Bin 0 -> 223 bytes ...ionalStatement_else_ConstructorPattern.gif | Bin 0 -> 223 bytes ...itionalStatement_else_ForeachStatement.gif | Bin 0 -> 223 bytes ...tionalStatement_else_IdentifierPattern.gif | Bin 0 -> 223 bytes ...nditionalStatement_else_IntegerPattern.gif | Bin 0 -> 223 bytes ...onditionalStatement_else_LoopStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_else_NullStatement.gif | Bin 0 -> 223 bytes ...eConditionalStatement_else_OnStatement.gif | Bin 0 -> 223 bytes ...reateConditionalStatement_else_Pattern.gif | Bin 0 -> 223 bytes ...itionalStatement_else_PatternStatement.gif | Bin 0 -> 223 bytes ...itionalStatement_else_ReceiveStatement.gif | Bin 0 -> 223 bytes ...onalStatement_else_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...ditionalStatement_else_ReturnStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_else_SelectStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_else_SendStatement.gif | Bin 0 -> 223 bytes ...ateConditionalStatement_else_Statement.gif | Bin 0 -> 223 bytes ...ditionalStatement_else_StatementChoice.gif | Bin 0 -> 223 bytes ...tionalStatement_else_StatementSequence.gif | Bin 0 -> 223 bytes ...ditionalStatement_else_TaggedStatement.gif | Bin 0 -> 223 bytes ...eConditionalStatement_else_ToStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_else_UnlessStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_else_WaitStatement.gif | Bin 0 -> 223 bytes ...nditionalStatement_else_WhileStatement.gif | Bin 0 -> 223 bytes ...nt_elseif_ExtendedConditionalStatement.gif | Bin 0 -> 223 bytes ...teConditionalStatement_then_AnyPattern.gif | Bin 0 -> 223 bytes ...ionalStatement_then_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...ionalStatement_then_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_AssignStatement.gif | Bin 0 -> 223 bytes ...nditionalStatement_then_BlockStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_then_CaseStatement.gif | Bin 0 -> 223 bytes ...nalStatement_then_ConditionalStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_ConstantPattern.gif | Bin 0 -> 223 bytes ...ionalStatement_then_ConstructorPattern.gif | Bin 0 -> 223 bytes ...itionalStatement_then_ForeachStatement.gif | Bin 0 -> 223 bytes ...tionalStatement_then_IdentifierPattern.gif | Bin 0 -> 223 bytes ...nditionalStatement_then_IntegerPattern.gif | Bin 0 -> 223 bytes ...onditionalStatement_then_LoopStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_then_NullStatement.gif | Bin 0 -> 223 bytes ...eConditionalStatement_then_OnStatement.gif | Bin 0 -> 223 bytes ...reateConditionalStatement_then_Pattern.gif | Bin 0 -> 223 bytes ...itionalStatement_then_PatternStatement.gif | Bin 0 -> 223 bytes ...itionalStatement_then_ReceiveStatement.gif | Bin 0 -> 223 bytes ...onalStatement_then_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_ReturnStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_SelectStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_then_SendStatement.gif | Bin 0 -> 223 bytes ...ateConditionalStatement_then_Statement.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_StatementChoice.gif | Bin 0 -> 223 bytes ...tionalStatement_then_StatementSequence.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_TaggedStatement.gif | Bin 0 -> 223 bytes ...eConditionalStatement_then_ToStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_UnlessStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_then_WaitStatement.gif | Bin 0 -> 223 bytes ...nditionalStatement_then_WhileStatement.gif | Bin 0 -> 223 bytes .../CreateConditional_condition_Addition.gif | Bin 0 -> 223 bytes ...ateConditional_condition_AllExpression.gif | Bin 0 -> 223 bytes ...Conditional_condition_AppendExpression.gif | Bin 0 -> 223 bytes ...tional_condition_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...eConditional_condition_ArrayExpression.gif | Bin 0 -> 223 bytes ...teConditional_condition_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eConditional_condition_ComparisonEqual.gif | Bin 0 -> 223 bytes ...onditional_condition_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ional_condition_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...Conditional_condition_ComparisonLesser.gif | Bin 0 -> 223 bytes ...tional_condition_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...nditional_condition_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...reateConditional_condition_Conditional.gif | Bin 0 -> 223 bytes ...reateConditional_condition_Conjunction.gif | Bin 0 -> 223 bytes ...ional_condition_ConstructionExpression.gif | Bin 0 -> 223 bytes ...reateConditional_condition_Disjunction.gif | Bin 0 -> 223 bytes .../CreateConditional_condition_Division.gif | Bin 0 -> 223 bytes ...onditional_condition_EnqueueExpression.gif | Bin 0 -> 223 bytes ...Conditional_condition_ExistsExpression.gif | Bin 0 -> 223 bytes ...CreateConditional_condition_Expression.gif | Bin 0 -> 223 bytes ...eateConditional_condition_FalseLiteral.gif | Bin 0 -> 223 bytes ...itional_condition_IdentifierExpression.gif | Bin 0 -> 223 bytes ...reateConditional_condition_Implication.gif | Bin 0 -> 223 bytes ...onditional_condition_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_condition_Modulo.gif | Bin 0 -> 223 bytes ...teConditional_condition_Multiplication.gif | Bin 0 -> 223 bytes ...teConditional_condition_NaturalLiteral.gif | Bin 0 -> 223 bytes ...CreateConditional_condition_Projection.gif | Bin 0 -> 223 bytes ...eConditional_condition_QueueExpression.gif | Bin 0 -> 223 bytes ...ional_condition_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...Conditional_condition_RecordExpression.gif | Bin 0 -> 223 bytes ...ditional_condition_ReferenceExpression.gif | Bin 0 -> 223 bytes ...eateConditional_condition_Substraction.gif | Bin 0 -> 223 bytes ...reateConditional_condition_TrueLiteral.gif | Bin 0 -> 223 bytes ...tional_condition_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ional_condition_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...itional_condition_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...itional_condition_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ditional_condition_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...tional_condition_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...itional_condition_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...onal_condition_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ditional_condition_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_else_Addition.gif | Bin 0 -> 223 bytes .../CreateConditional_else_AllExpression.gif | Bin 0 -> 223 bytes ...reateConditional_else_AppendExpression.gif | Bin 0 -> 223 bytes ...Conditional_else_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...CreateConditional_else_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_else_BooleanLiteral.gif | Bin 0 -> 223 bytes ...CreateConditional_else_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eateConditional_else_ComparisonGreater.gif | Bin 0 -> 223 bytes ...onditional_else_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...reateConditional_else_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Conditional_else_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ateConditional_else_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateConditional_else_Conditional.gif | Bin 0 -> 223 bytes .../CreateConditional_else_Conjunction.gif | Bin 0 -> 223 bytes ...onditional_else_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_else_Disjunction.gif | Bin 0 -> 223 bytes .../CreateConditional_else_Division.gif | Bin 0 -> 223 bytes ...eateConditional_else_EnqueueExpression.gif | Bin 0 -> 223 bytes ...reateConditional_else_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_else_Expression.gif | Bin 0 -> 223 bytes .../CreateConditional_else_FalseLiteral.gif | Bin 0 -> 223 bytes ...eConditional_else_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_else_Implication.gif | Bin 0 -> 223 bytes ...eateConditional_else_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateConditional_else_Modulo.gif | Bin 0 -> 223 bytes .../CreateConditional_else_Multiplication.gif | Bin 0 -> 223 bytes .../CreateConditional_else_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateConditional_else_Projection.gif | Bin 0 -> 223 bytes ...CreateConditional_else_QueueExpression.gif | Bin 0 -> 223 bytes ...onditional_else_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...reateConditional_else_RecordExpression.gif | Bin 0 -> 223 bytes ...teConditional_else_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_else_Substraction.gif | Bin 0 -> 223 bytes .../CreateConditional_else_TrueLiteral.gif | Bin 0 -> 223 bytes ...Conditional_else_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...onditional_else_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eConditional_else_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eConditional_else_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...teConditional_else_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Conditional_else_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eConditional_else_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...nditional_else_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...teConditional_else_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_then_Addition.gif | Bin 0 -> 223 bytes .../CreateConditional_then_AllExpression.gif | Bin 0 -> 223 bytes ...reateConditional_then_AppendExpression.gif | Bin 0 -> 223 bytes ...Conditional_then_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...CreateConditional_then_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_then_BooleanLiteral.gif | Bin 0 -> 223 bytes ...CreateConditional_then_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eateConditional_then_ComparisonGreater.gif | Bin 0 -> 223 bytes ...onditional_then_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...reateConditional_then_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Conditional_then_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ateConditional_then_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateConditional_then_Conditional.gif | Bin 0 -> 223 bytes .../CreateConditional_then_Conjunction.gif | Bin 0 -> 223 bytes ...onditional_then_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_then_Disjunction.gif | Bin 0 -> 223 bytes .../CreateConditional_then_Division.gif | Bin 0 -> 223 bytes ...eateConditional_then_EnqueueExpression.gif | Bin 0 -> 223 bytes ...reateConditional_then_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_then_Expression.gif | Bin 0 -> 223 bytes .../CreateConditional_then_FalseLiteral.gif | Bin 0 -> 223 bytes ...eConditional_then_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_then_Implication.gif | Bin 0 -> 223 bytes ...eateConditional_then_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateConditional_then_Modulo.gif | Bin 0 -> 223 bytes .../CreateConditional_then_Multiplication.gif | Bin 0 -> 223 bytes .../CreateConditional_then_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateConditional_then_Projection.gif | Bin 0 -> 223 bytes ...CreateConditional_then_QueueExpression.gif | Bin 0 -> 223 bytes ...onditional_then_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...reateConditional_then_RecordExpression.gif | Bin 0 -> 223 bytes ...teConditional_then_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateConditional_then_Substraction.gif | Bin 0 -> 223 bytes .../CreateConditional_then_TrueLiteral.gif | Bin 0 -> 223 bytes ...Conditional_then_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...onditional_then_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eConditional_then_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eConditional_then_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...teConditional_then_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Conditional_then_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eConditional_then_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...nditional_then_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...teConditional_then_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_Addition.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_AllExpression.gif | Bin 0 -> 223 bytes ...reateConjunction_left_AppendExpression.gif | Bin 0 -> 223 bytes ...Conjunction_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...CreateConjunction_left_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...CreateConjunction_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eateConjunction_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...onjunction_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...reateConjunction_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Conjunction_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ateConjunction_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_Conditional.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_Conjunction.gif | Bin 0 -> 223 bytes ...onjunction_left_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_Disjunction.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_Division.gif | Bin 0 -> 223 bytes ...eateConjunction_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...reateConjunction_left_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_Expression.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...eConjunction_left_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_Implication.gif | Bin 0 -> 223 bytes ...eateConjunction_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateConjunction_left_Modulo.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_Multiplication.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_Projection.gif | Bin 0 -> 223 bytes ...CreateConjunction_left_QueueExpression.gif | Bin 0 -> 223 bytes ...onjunction_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...reateConjunction_left_RecordExpression.gif | Bin 0 -> 223 bytes ...teConjunction_left_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_Substraction.gif | Bin 0 -> 223 bytes .../CreateConjunction_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...Conjunction_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...onjunction_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eConjunction_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eConjunction_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...teConjunction_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Conjunction_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eConjunction_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...njunction_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...teConjunction_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_Addition.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_AllExpression.gif | Bin 0 -> 223 bytes ...eateConjunction_right_AppendExpression.gif | Bin 0 -> 223 bytes ...onjunction_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...reateConjunction_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...CreateConjunction_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...reateConjunction_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ateConjunction_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...njunction_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eateConjunction_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...onjunction_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...teConjunction_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_Conditional.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_Conjunction.gif | Bin 0 -> 223 bytes ...njunction_right_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_Disjunction.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_Division.gif | Bin 0 -> 223 bytes ...ateConjunction_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eateConjunction_right_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_Expression.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...Conjunction_right_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_Implication.gif | Bin 0 -> 223 bytes ...ateConjunction_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_Modulo.gif | Bin 0 -> 223 bytes ...CreateConjunction_right_Multiplication.gif | Bin 0 -> 223 bytes ...CreateConjunction_right_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_Projection.gif | Bin 0 -> 223 bytes ...reateConjunction_right_QueueExpression.gif | Bin 0 -> 223 bytes ...njunction_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eateConjunction_right_RecordExpression.gif | Bin 0 -> 223 bytes ...eConjunction_right_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_Substraction.gif | Bin 0 -> 223 bytes .../CreateConjunction_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...onjunction_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...njunction_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...Conjunction_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...Conjunction_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eConjunction_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...onjunction_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...Conjunction_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...junction_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eConjunction_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eateConstantDeclaration_type_ArrayType.gif | Bin 0 -> 223 bytes ...eateConstantDeclaration_type_BasicType.gif | Bin 0 -> 223 bytes ...teConstantDeclaration_type_BooleanType.gif | Bin 0 -> 223 bytes ...teConstantDeclaration_type_IntegerType.gif | Bin 0 -> 223 bytes ...teConstantDeclaration_type_NaturalType.gif | Bin 0 -> 223 bytes ...eateConstantDeclaration_type_QueueType.gif | Bin 0 -> 223 bytes ...eateConstantDeclaration_type_RangeType.gif | Bin 0 -> 223 bytes ...ateConstantDeclaration_type_RecordType.gif | Bin 0 -> 223 bytes ...onstantDeclaration_type_ReferencedType.gif | Bin 0 -> 223 bytes ...eateConstantDeclaration_type_TupleType.gif | Bin 0 -> 223 bytes .../CreateConstantDeclaration_type_Type.gif | Bin 0 -> 223 bytes ...eateConstantDeclaration_type_UnionType.gif | Bin 0 -> 223 bytes ...eateConstantDeclaration_value_Addition.gif | Bin 0 -> 223 bytes ...onstantDeclaration_value_AllExpression.gif | Bin 0 -> 223 bytes ...tantDeclaration_value_AppendExpression.gif | Bin 0 -> 223 bytes ...eclaration_value_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...stantDeclaration_value_ArrayExpression.gif | Bin 0 -> 223 bytes ...nstantDeclaration_value_BooleanLiteral.gif | Bin 0 -> 223 bytes ...stantDeclaration_value_ComparisonEqual.gif | Bin 0 -> 223 bytes ...antDeclaration_value_ComparisonGreater.gif | Bin 0 -> 223 bytes ...claration_value_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...tantDeclaration_value_ComparisonLesser.gif | Bin 0 -> 223 bytes ...eclaration_value_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ntDeclaration_value_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eConstantDeclaration_value_Conditional.gif | Bin 0 -> 223 bytes ...eConstantDeclaration_value_Conjunction.gif | Bin 0 -> 223 bytes ...claration_value_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eConstantDeclaration_value_Disjunction.gif | Bin 0 -> 223 bytes ...eateConstantDeclaration_value_Division.gif | Bin 0 -> 223 bytes ...antDeclaration_value_EnqueueExpression.gif | Bin 0 -> 223 bytes ...tantDeclaration_value_ExistsExpression.gif | Bin 0 -> 223 bytes ...teConstantDeclaration_value_Expression.gif | Bin 0 -> 223 bytes ...ConstantDeclaration_value_FalseLiteral.gif | Bin 0 -> 223 bytes ...Declaration_value_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eConstantDeclaration_value_Implication.gif | Bin 0 -> 223 bytes ...antDeclaration_value_LiteralExpression.gif | Bin 0 -> 223 bytes ...CreateConstantDeclaration_value_Modulo.gif | Bin 0 -> 223 bytes ...nstantDeclaration_value_Multiplication.gif | Bin 0 -> 223 bytes ...nstantDeclaration_value_NaturalLiteral.gif | Bin 0 -> 223 bytes ...teConstantDeclaration_value_Projection.gif | Bin 0 -> 223 bytes ...stantDeclaration_value_QueueExpression.gif | Bin 0 -> 223 bytes ...claration_value_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...tantDeclaration_value_RecordExpression.gif | Bin 0 -> 223 bytes ...tDeclaration_value_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ConstantDeclaration_value_Substraction.gif | Bin 0 -> 223 bytes ...eConstantDeclaration_value_TrueLiteral.gif | Bin 0 -> 223 bytes ...eclaration_value_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...claration_value_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...Declaration_value_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...Declaration_value_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...tDeclaration_value_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...eclaration_value_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...Declaration_value_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...laration_value_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...tDeclaration_value_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...teConstantPattern_value_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eateConstantPattern_value_FalseLiteral.gif | Bin 0 -> 223 bytes ...onstantPattern_value_LiteralExpression.gif | Bin 0 -> 223 bytes ...teConstantPattern_value_NaturalLiteral.gif | Bin 0 -> 223 bytes ...reateConstantPattern_value_TrueLiteral.gif | Bin 0 -> 223 bytes ...tructionExpression_parameters_Addition.gif | Bin 0 -> 223 bytes ...ionExpression_parameters_AllExpression.gif | Bin 0 -> 223 bytes ...Expression_parameters_AppendExpression.gif | Bin 0 -> 223 bytes ...ssion_parameters_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...nExpression_parameters_ArrayExpression.gif | Bin 0 -> 223 bytes ...onExpression_parameters_BooleanLiteral.gif | Bin 0 -> 223 bytes ...nExpression_parameters_ComparisonEqual.gif | Bin 0 -> 223 bytes ...xpression_parameters_ComparisonGreater.gif | Bin 0 -> 223 bytes ...sion_parameters_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...Expression_parameters_ComparisonLesser.gif | Bin 0 -> 223 bytes ...ssion_parameters_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...pression_parameters_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...ctionExpression_parameters_Conditional.gif | Bin 0 -> 223 bytes ...ctionExpression_parameters_Conjunction.gif | Bin 0 -> 223 bytes ...sion_parameters_ConstructionExpression.gif | Bin 0 -> 223 bytes ...ctionExpression_parameters_Disjunction.gif | Bin 0 -> 223 bytes ...tructionExpression_parameters_Division.gif | Bin 0 -> 223 bytes ...xpression_parameters_EnqueueExpression.gif | Bin 0 -> 223 bytes ...Expression_parameters_ExistsExpression.gif | Bin 0 -> 223 bytes ...uctionExpression_parameters_Expression.gif | Bin 0 -> 223 bytes ...tionExpression_parameters_FalseLiteral.gif | Bin 0 -> 223 bytes ...ession_parameters_IdentifierExpression.gif | Bin 0 -> 223 bytes ...ctionExpression_parameters_Implication.gif | Bin 0 -> 223 bytes ...xpression_parameters_LiteralExpression.gif | Bin 0 -> 223 bytes ...nstructionExpression_parameters_Modulo.gif | Bin 0 -> 223 bytes ...onExpression_parameters_Multiplication.gif | Bin 0 -> 223 bytes ...onExpression_parameters_NaturalLiteral.gif | Bin 0 -> 223 bytes ...uctionExpression_parameters_Projection.gif | Bin 0 -> 223 bytes ...nExpression_parameters_QueueExpression.gif | Bin 0 -> 223 bytes ...sion_parameters_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...Expression_parameters_RecordExpression.gif | Bin 0 -> 223 bytes ...ression_parameters_ReferenceExpression.gif | Bin 0 -> 223 bytes ...tionExpression_parameters_Substraction.gif | Bin 0 -> 223 bytes ...ctionExpression_parameters_TrueLiteral.gif | Bin 0 -> 223 bytes ...ssion_parameters_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...sion_parameters_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...ession_parameters_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...ession_parameters_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ression_parameters_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...ssion_parameters_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...ession_parameters_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ion_parameters_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ression_parameters_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...nstructorPattern_parameters_AnyPattern.gif | Bin 0 -> 223 bytes ...rPattern_parameters_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...ctorPattern_parameters_ConstantPattern.gif | Bin 0 -> 223 bytes ...rPattern_parameters_ConstructorPattern.gif | Bin 0 -> 223 bytes ...orPattern_parameters_IdentifierPattern.gif | Bin 0 -> 223 bytes ...uctorPattern_parameters_IntegerPattern.gif | Bin 0 -> 223 bytes ...eConstructorPattern_parameters_Pattern.gif | Bin 0 -> 223 bytes ...Pattern_parameters_RecordAccessPattern.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_Addition.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_AllExpression.gif | Bin 0 -> 223 bytes ...reateDisjunction_left_AppendExpression.gif | Bin 0 -> 223 bytes ...Disjunction_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...CreateDisjunction_left_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...CreateDisjunction_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eateDisjunction_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...isjunction_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...reateDisjunction_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Disjunction_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ateDisjunction_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_Conditional.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_Conjunction.gif | Bin 0 -> 223 bytes ...isjunction_left_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_Disjunction.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_Division.gif | Bin 0 -> 223 bytes ...eateDisjunction_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...reateDisjunction_left_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_Expression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...eDisjunction_left_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_Implication.gif | Bin 0 -> 223 bytes ...eateDisjunction_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateDisjunction_left_Modulo.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_Multiplication.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_Projection.gif | Bin 0 -> 223 bytes ...CreateDisjunction_left_QueueExpression.gif | Bin 0 -> 223 bytes ...isjunction_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...reateDisjunction_left_RecordExpression.gif | Bin 0 -> 223 bytes ...teDisjunction_left_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_Substraction.gif | Bin 0 -> 223 bytes .../CreateDisjunction_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...Disjunction_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...isjunction_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eDisjunction_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eDisjunction_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...teDisjunction_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Disjunction_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eDisjunction_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...sjunction_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...teDisjunction_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_Addition.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_AllExpression.gif | Bin 0 -> 223 bytes ...eateDisjunction_right_AppendExpression.gif | Bin 0 -> 223 bytes ...isjunction_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...reateDisjunction_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...CreateDisjunction_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...reateDisjunction_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ateDisjunction_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...sjunction_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eateDisjunction_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...isjunction_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...teDisjunction_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_Conditional.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_Conjunction.gif | Bin 0 -> 223 bytes ...sjunction_right_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_Disjunction.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_Division.gif | Bin 0 -> 223 bytes ...ateDisjunction_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eateDisjunction_right_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_Expression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...Disjunction_right_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_Implication.gif | Bin 0 -> 223 bytes ...ateDisjunction_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_Modulo.gif | Bin 0 -> 223 bytes ...CreateDisjunction_right_Multiplication.gif | Bin 0 -> 223 bytes ...CreateDisjunction_right_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_Projection.gif | Bin 0 -> 223 bytes ...reateDisjunction_right_QueueExpression.gif | Bin 0 -> 223 bytes ...sjunction_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eateDisjunction_right_RecordExpression.gif | Bin 0 -> 223 bytes ...eDisjunction_right_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_Substraction.gif | Bin 0 -> 223 bytes .../CreateDisjunction_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...isjunction_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...sjunction_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...Disjunction_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...Disjunction_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eDisjunction_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...isjunction_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...Disjunction_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...junction_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eDisjunction_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateDivision_left_Addition.gif | Bin 0 -> 223 bytes .../CreateDivision_left_AllExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_left_AppendExpression.gif | Bin 0 -> 223 bytes ...ateDivision_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_left_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_left_BooleanLiteral.gif | Bin 0 -> 223 bytes .../CreateDivision_left_ComparisonEqual.gif | Bin 0 -> 223 bytes .../CreateDivision_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...teDivision_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes .../CreateDivision_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...ateDivision_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...CreateDivision_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateDivision_left_Conditional.gif | Bin 0 -> 223 bytes .../CreateDivision_left_Conjunction.gif | Bin 0 -> 223 bytes ...teDivision_left_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_left_Disjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreateDivision_left_Division.gif | Bin 0 -> 223 bytes .../CreateDivision_left_EnqueueExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_left_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_left_Expression.gif | Bin 0 -> 223 bytes .../CreateDivision_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...eateDivision_left_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_left_Implication.gif | Bin 0 -> 223 bytes .../CreateDivision_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateDivision_left_Modulo.gif | Bin 0 -> 223 bytes .../CreateDivision_left_Multiplication.gif | Bin 0 -> 223 bytes .../CreateDivision_left_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateDivision_left_Projection.gif | Bin 0 -> 223 bytes .../CreateDivision_left_QueueExpression.gif | Bin 0 -> 223 bytes ...teDivision_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_left_RecordExpression.gif | Bin 0 -> 223 bytes ...reateDivision_left_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_left_Substraction.gif | Bin 0 -> 223 bytes .../CreateDivision_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...ateDivision_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...teDivision_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eateDivision_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eateDivision_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...reateDivision_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...ateDivision_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eateDivision_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...eDivision_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...reateDivision_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateDivision_right_Addition.gif | Bin 0 -> 223 bytes .../CreateDivision_right_AllExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_right_AppendExpression.gif | Bin 0 -> 223 bytes ...teDivision_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_right_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_right_BooleanLiteral.gif | Bin 0 -> 223 bytes .../CreateDivision_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...CreateDivision_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...eDivision_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes .../CreateDivision_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...teDivision_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...reateDivision_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateDivision_right_Conditional.gif | Bin 0 -> 223 bytes .../CreateDivision_right_Conjunction.gif | Bin 0 -> 223 bytes ...eDivision_right_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_right_Disjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreateDivision_right_Division.gif | Bin 0 -> 223 bytes ...CreateDivision_right_EnqueueExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_right_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_right_Expression.gif | Bin 0 -> 223 bytes .../CreateDivision_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...ateDivision_right_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_right_Implication.gif | Bin 0 -> 223 bytes ...CreateDivision_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateDivision_right_Modulo.gif | Bin 0 -> 223 bytes .../CreateDivision_right_Multiplication.gif | Bin 0 -> 223 bytes .../CreateDivision_right_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateDivision_right_Projection.gif | Bin 0 -> 223 bytes .../CreateDivision_right_QueueExpression.gif | Bin 0 -> 223 bytes ...eDivision_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_right_RecordExpression.gif | Bin 0 -> 223 bytes ...eateDivision_right_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateDivision_right_Substraction.gif | Bin 0 -> 223 bytes .../CreateDivision_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...teDivision_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...eDivision_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...ateDivision_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...ateDivision_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eateDivision_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...teDivision_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...ateDivision_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...Division_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eateDivision_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eateEnqueueExpression_element_Addition.gif | Bin 0 -> 223 bytes ...nqueueExpression_element_AllExpression.gif | Bin 0 -> 223 bytes ...eueExpression_element_AppendExpression.gif | Bin 0 -> 223 bytes ...pression_element_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ueueExpression_element_ArrayExpression.gif | Bin 0 -> 223 bytes ...queueExpression_element_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ueueExpression_element_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ueExpression_element_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ression_element_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eueExpression_element_ComparisonLesser.gif | Bin 0 -> 223 bytes ...pression_element_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...eExpression_element_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eEnqueueExpression_element_Conditional.gif | Bin 0 -> 223 bytes ...eEnqueueExpression_element_Conjunction.gif | Bin 0 -> 223 bytes ...ression_element_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eEnqueueExpression_element_Disjunction.gif | Bin 0 -> 223 bytes ...eateEnqueueExpression_element_Division.gif | Bin 0 -> 223 bytes ...ueExpression_element_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eueExpression_element_ExistsExpression.gif | Bin 0 -> 223 bytes ...teEnqueueExpression_element_Expression.gif | Bin 0 -> 223 bytes ...EnqueueExpression_element_FalseLiteral.gif | Bin 0 -> 223 bytes ...xpression_element_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eEnqueueExpression_element_Implication.gif | Bin 0 -> 223 bytes ...ueExpression_element_LiteralExpression.gif | Bin 0 -> 223 bytes ...CreateEnqueueExpression_element_Modulo.gif | Bin 0 -> 223 bytes ...queueExpression_element_Multiplication.gif | Bin 0 -> 223 bytes ...queueExpression_element_NaturalLiteral.gif | Bin 0 -> 223 bytes ...teEnqueueExpression_element_Projection.gif | Bin 0 -> 223 bytes ...ueueExpression_element_QueueExpression.gif | Bin 0 -> 223 bytes ...ression_element_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eueExpression_element_RecordExpression.gif | Bin 0 -> 223 bytes ...Expression_element_ReferenceExpression.gif | Bin 0 -> 223 bytes ...EnqueueExpression_element_Substraction.gif | Bin 0 -> 223 bytes ...eEnqueueExpression_element_TrueLiteral.gif | Bin 0 -> 223 bytes ...pression_element_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ression_element_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...xpression_element_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...xpression_element_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...Expression_element_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...pression_element_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...xpression_element_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ession_element_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...Expression_element_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...CreateEnqueueExpression_queue_Addition.gif | Bin 0 -> 223 bytes ...eEnqueueExpression_queue_AllExpression.gif | Bin 0 -> 223 bytes ...queueExpression_queue_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_queue_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...nqueueExpression_queue_ArrayExpression.gif | Bin 0 -> 223 bytes ...EnqueueExpression_queue_BooleanLiteral.gif | Bin 0 -> 223 bytes ...nqueueExpression_queue_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ueueExpression_queue_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_queue_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...queueExpression_queue_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_queue_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...eueExpression_queue_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...ateEnqueueExpression_queue_Conditional.gif | Bin 0 -> 223 bytes ...ateEnqueueExpression_queue_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_queue_ConstructionExpression.gif | Bin 0 -> 223 bytes ...ateEnqueueExpression_queue_Disjunction.gif | Bin 0 -> 223 bytes ...CreateEnqueueExpression_queue_Division.gif | Bin 0 -> 223 bytes ...ueueExpression_queue_EnqueueExpression.gif | Bin 0 -> 223 bytes ...queueExpression_queue_ExistsExpression.gif | Bin 0 -> 223 bytes ...eateEnqueueExpression_queue_Expression.gif | Bin 0 -> 223 bytes ...teEnqueueExpression_queue_FalseLiteral.gif | Bin 0 -> 223 bytes ...eExpression_queue_IdentifierExpression.gif | Bin 0 -> 223 bytes ...ateEnqueueExpression_queue_Implication.gif | Bin 0 -> 223 bytes ...ueueExpression_queue_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateEnqueueExpression_queue_Modulo.gif | Bin 0 -> 223 bytes ...EnqueueExpression_queue_Multiplication.gif | Bin 0 -> 223 bytes ...EnqueueExpression_queue_NaturalLiteral.gif | Bin 0 -> 223 bytes ...eateEnqueueExpression_queue_Projection.gif | Bin 0 -> 223 bytes ...nqueueExpression_queue_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_queue_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...queueExpression_queue_RecordExpression.gif | Bin 0 -> 223 bytes ...ueExpression_queue_ReferenceExpression.gif | Bin 0 -> 223 bytes ...teEnqueueExpression_queue_Substraction.gif | Bin 0 -> 223 bytes ...ateEnqueueExpression_queue_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_queue_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_queue_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eExpression_queue_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eExpression_queue_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ueExpression_queue_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_queue_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eExpression_queue_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_queue_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ueExpression_queue_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateExistsExpression_child_Addition.gif | Bin 0 -> 223 bytes ...teExistsExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...xistsExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ExistsExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...eExistsExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ExistsExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...istsExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...xistsExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...stsExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eateExistsExpression_child_Conditional.gif | Bin 0 -> 223 bytes ...eateExistsExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eateExistsExpression_child_Disjunction.gif | Bin 0 -> 223 bytes .../CreateExistsExpression_child_Division.gif | Bin 0 -> 223 bytes ...istsExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...xistsExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes ...reateExistsExpression_child_Expression.gif | Bin 0 -> 223 bytes ...ateExistsExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...sExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eateExistsExpression_child_Implication.gif | Bin 0 -> 223 bytes ...istsExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateExistsExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...eExistsExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...eExistsExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes ...reateExistsExpression_child_Projection.gif | Bin 0 -> 223 bytes ...ExistsExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...xistsExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...tsExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ateExistsExpression_child_Substraction.gif | Bin 0 -> 223 bytes ...eateExistsExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...tsExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...tsExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...tsExpression_index_VariableDeclaration.gif | Bin 0 -> 223 bytes .../CreateExistsExpression_type_RangeType.gif | Bin 0 -> 223 bytes ...ateExistsProperty_child_AbsencePattern.gif | Bin 0 -> 223 bytes ...CreateExistsProperty_child_AllProperty.gif | Bin 0 -> 223 bytes ...eateExistsProperty_child_AlwaysPattern.gif | Bin 0 -> 223 bytes ...istsProperty_child_DeadlockFreePattern.gif | Bin 0 -> 223 bytes ...teExistsProperty_child_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ateExistsProperty_child_ExistsProperty.gif | Bin 0 -> 223 bytes ...sProperty_child_InfinitelyOftenPattern.gif | Bin 0 -> 223 bytes .../CreateExistsProperty_child_LTLPattern.gif | Bin 0 -> 223 bytes ...ateExistsProperty_child_LeadsToPattern.gif | Bin 0 -> 223 bytes ...teExistsProperty_child_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...eateExistsProperty_child_MortalPattern.gif | Bin 0 -> 223 bytes .../CreateExistsProperty_child_Observable.gif | Bin 0 -> 223 bytes ...tsProperty_child_ObservableConjunction.gif | Bin 0 -> 223 bytes ...tsProperty_child_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...teExistsProperty_child_ObservableEvent.gif | Bin 0 -> 223 bytes ...tsProperty_child_ObservableImplication.gif | Bin 0 -> 223 bytes ...xistsProperty_child_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateExistsProperty_child_PathEvent.gif | Bin 0 -> 223 bytes ...teExistsProperty_child_PatternProperty.gif | Bin 0 -> 223 bytes ...teExistsProperty_child_PrecedesPattern.gif | Bin 0 -> 223 bytes ...teExistsProperty_child_PresencePattern.gif | Bin 0 -> 223 bytes .../CreateExistsProperty_child_Property.gif | Bin 0 -> 223 bytes ...istsProperty_child_PropertyConjunction.gif | Bin 0 -> 223 bytes ...istsProperty_child_PropertyDisjunction.gif | Bin 0 -> 223 bytes ...istsProperty_child_PropertyImplication.gif | Bin 0 -> 223 bytes ...eExistsProperty_child_PropertyNegation.gif | Bin 0 -> 223 bytes ...teExistsProperty_child_SequencePattern.gif | Bin 0 -> 223 bytes .../CreateExistsProperty_child_StateEvent.gif | Bin 0 -> 223 bytes .../CreateExistsProperty_type_RangeType.gif | Bin 0 -> 223 bytes ...sProperty_variable_VariableDeclaration.gif | Bin 0 -> 223 bytes ...onditionalStatement_condition_Addition.gif | Bin 0 -> 223 bytes ...ionalStatement_condition_AllExpression.gif | Bin 0 -> 223 bytes ...alStatement_condition_AppendExpression.gif | Bin 0 -> 223 bytes ...tement_condition_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...nalStatement_condition_ArrayExpression.gif | Bin 0 -> 223 bytes ...onalStatement_condition_BooleanLiteral.gif | Bin 0 -> 223 bytes ...nalStatement_condition_ComparisonEqual.gif | Bin 0 -> 223 bytes ...lStatement_condition_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ement_condition_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...alStatement_condition_ComparisonLesser.gif | Bin 0 -> 223 bytes ...tement_condition_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...Statement_condition_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...itionalStatement_condition_Conditional.gif | Bin 0 -> 223 bytes ...itionalStatement_condition_Conjunction.gif | Bin 0 -> 223 bytes ...ement_condition_ConstructionExpression.gif | Bin 0 -> 223 bytes ...itionalStatement_condition_Disjunction.gif | Bin 0 -> 223 bytes ...onditionalStatement_condition_Division.gif | Bin 0 -> 223 bytes ...lStatement_condition_EnqueueExpression.gif | Bin 0 -> 223 bytes ...alStatement_condition_ExistsExpression.gif | Bin 0 -> 223 bytes ...ditionalStatement_condition_Expression.gif | Bin 0 -> 223 bytes ...tionalStatement_condition_FalseLiteral.gif | Bin 0 -> 223 bytes ...atement_condition_IdentifierExpression.gif | Bin 0 -> 223 bytes ...itionalStatement_condition_Implication.gif | Bin 0 -> 223 bytes ...lStatement_condition_LiteralExpression.gif | Bin 0 -> 223 bytes ...dConditionalStatement_condition_Modulo.gif | Bin 0 -> 223 bytes ...onalStatement_condition_Multiplication.gif | Bin 0 -> 223 bytes ...onalStatement_condition_NaturalLiteral.gif | Bin 0 -> 223 bytes ...ditionalStatement_condition_Projection.gif | Bin 0 -> 223 bytes ...nalStatement_condition_QueueExpression.gif | Bin 0 -> 223 bytes ...ement_condition_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...alStatement_condition_RecordExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_ReferenceExpression.gif | Bin 0 -> 223 bytes ...tionalStatement_condition_Substraction.gif | Bin 0 -> 223 bytes ...itionalStatement_condition_TrueLiteral.gif | Bin 0 -> 223 bytes ...tement_condition_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ement_condition_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...tement_condition_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ment_condition_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...edConditionalStatement_then_AnyPattern.gif | Bin 0 -> 223 bytes ...ionalStatement_then_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...ionalStatement_then_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_AssignStatement.gif | Bin 0 -> 223 bytes ...nditionalStatement_then_BlockStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_then_CaseStatement.gif | Bin 0 -> 223 bytes ...nalStatement_then_ConditionalStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_ConstantPattern.gif | Bin 0 -> 223 bytes ...ionalStatement_then_ConstructorPattern.gif | Bin 0 -> 223 bytes ...itionalStatement_then_ForeachStatement.gif | Bin 0 -> 223 bytes ...tionalStatement_then_IdentifierPattern.gif | Bin 0 -> 223 bytes ...nditionalStatement_then_IntegerPattern.gif | Bin 0 -> 223 bytes ...onditionalStatement_then_LoopStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_then_NullStatement.gif | Bin 0 -> 223 bytes ...dConditionalStatement_then_OnStatement.gif | Bin 0 -> 223 bytes ...endedConditionalStatement_then_Pattern.gif | Bin 0 -> 223 bytes ...itionalStatement_then_PatternStatement.gif | Bin 0 -> 223 bytes ...itionalStatement_then_ReceiveStatement.gif | Bin 0 -> 223 bytes ...onalStatement_then_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_ReturnStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_SelectStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_then_SendStatement.gif | Bin 0 -> 223 bytes ...dedConditionalStatement_then_Statement.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_StatementChoice.gif | Bin 0 -> 223 bytes ...tionalStatement_then_StatementSequence.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_TaggedStatement.gif | Bin 0 -> 223 bytes ...dConditionalStatement_then_ToStatement.gif | Bin 0 -> 223 bytes ...ditionalStatement_then_UnlessStatement.gif | Bin 0 -> 223 bytes ...onditionalStatement_then_WaitStatement.gif | Bin 0 -> 223 bytes ...nditionalStatement_then_WhileStatement.gif | Bin 0 -> 223 bytes .../CreateFieldExpression_value_Addition.gif | Bin 0 -> 223 bytes ...ateFieldExpression_value_AllExpression.gif | Bin 0 -> 223 bytes ...FieldExpression_value_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_value_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...eFieldExpression_value_ArrayExpression.gif | Bin 0 -> 223 bytes ...teFieldExpression_value_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eFieldExpression_value_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ieldExpression_value_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_value_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...FieldExpression_value_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_value_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...eldExpression_value_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...reateFieldExpression_value_Conditional.gif | Bin 0 -> 223 bytes ...reateFieldExpression_value_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_value_ConstructionExpression.gif | Bin 0 -> 223 bytes ...reateFieldExpression_value_Disjunction.gif | Bin 0 -> 223 bytes .../CreateFieldExpression_value_Division.gif | Bin 0 -> 223 bytes ...ieldExpression_value_EnqueueExpression.gif | Bin 0 -> 223 bytes ...FieldExpression_value_ExistsExpression.gif | Bin 0 -> 223 bytes ...CreateFieldExpression_value_Expression.gif | Bin 0 -> 223 bytes ...eateFieldExpression_value_FalseLiteral.gif | Bin 0 -> 223 bytes ...dExpression_value_IdentifierExpression.gif | Bin 0 -> 223 bytes ...reateFieldExpression_value_Implication.gif | Bin 0 -> 223 bytes ...ieldExpression_value_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateFieldExpression_value_Modulo.gif | Bin 0 -> 223 bytes ...teFieldExpression_value_Multiplication.gif | Bin 0 -> 223 bytes ...teFieldExpression_value_NaturalLiteral.gif | Bin 0 -> 223 bytes ...CreateFieldExpression_value_Projection.gif | Bin 0 -> 223 bytes ...eFieldExpression_value_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_value_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...FieldExpression_value_RecordExpression.gif | Bin 0 -> 223 bytes ...ldExpression_value_ReferenceExpression.gif | Bin 0 -> 223 bytes ...eateFieldExpression_value_Substraction.gif | Bin 0 -> 223 bytes ...reateFieldExpression_value_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_value_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_value_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...dExpression_value_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...dExpression_value_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ldExpression_value_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_value_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...dExpression_value_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_value_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ldExpression_value_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...CreateForeachStatement_body_AnyPattern.gif | Bin 0 -> 223 bytes ...reachStatement_body_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...reachStatement_body_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...eForeachStatement_body_AssignStatement.gif | Bin 0 -> 223 bytes ...teForeachStatement_body_BlockStatement.gif | Bin 0 -> 223 bytes ...ateForeachStatement_body_CaseStatement.gif | Bin 0 -> 223 bytes ...achStatement_body_ConditionalStatement.gif | Bin 0 -> 223 bytes ...eForeachStatement_body_ConstantPattern.gif | Bin 0 -> 223 bytes ...reachStatement_body_ConstructorPattern.gif | Bin 0 -> 223 bytes ...ForeachStatement_body_ForeachStatement.gif | Bin 0 -> 223 bytes ...oreachStatement_body_IdentifierPattern.gif | Bin 0 -> 223 bytes ...teForeachStatement_body_IntegerPattern.gif | Bin 0 -> 223 bytes ...ateForeachStatement_body_LoopStatement.gif | Bin 0 -> 223 bytes ...ateForeachStatement_body_NullStatement.gif | Bin 0 -> 223 bytes ...reateForeachStatement_body_OnStatement.gif | Bin 0 -> 223 bytes .../CreateForeachStatement_body_Pattern.gif | Bin 0 -> 223 bytes ...ForeachStatement_body_PatternStatement.gif | Bin 0 -> 223 bytes ...ForeachStatement_body_ReceiveStatement.gif | Bin 0 -> 223 bytes ...eachStatement_body_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...eForeachStatement_body_ReturnStatement.gif | Bin 0 -> 223 bytes ...eForeachStatement_body_SelectStatement.gif | Bin 0 -> 223 bytes ...ateForeachStatement_body_SendStatement.gif | Bin 0 -> 223 bytes .../CreateForeachStatement_body_Statement.gif | Bin 0 -> 223 bytes ...eForeachStatement_body_StatementChoice.gif | Bin 0 -> 223 bytes ...oreachStatement_body_StatementSequence.gif | Bin 0 -> 223 bytes ...eForeachStatement_body_TaggedStatement.gif | Bin 0 -> 223 bytes ...reateForeachStatement_body_ToStatement.gif | Bin 0 -> 223 bytes ...eForeachStatement_body_UnlessStatement.gif | Bin 0 -> 223 bytes ...ateForeachStatement_body_WaitStatement.gif | Bin 0 -> 223 bytes ...teForeachStatement_body_WhileStatement.gif | Bin 0 -> 223 bytes ...Statement_variable_VariableDeclaration.gif | Bin 0 -> 223 bytes ...nctionDeclaration_statement_AnyPattern.gif | Bin 0 -> 223 bytes ...claration_statement_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...claration_statement_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...nDeclaration_statement_AssignStatement.gif | Bin 0 -> 223 bytes ...onDeclaration_statement_BlockStatement.gif | Bin 0 -> 223 bytes ...ionDeclaration_statement_CaseStatement.gif | Bin 0 -> 223 bytes ...aration_statement_ConditionalStatement.gif | Bin 0 -> 223 bytes ...nDeclaration_statement_ConstantPattern.gif | Bin 0 -> 223 bytes ...claration_statement_ConstructorPattern.gif | Bin 0 -> 223 bytes ...Declaration_statement_ForeachStatement.gif | Bin 0 -> 223 bytes ...eclaration_statement_IdentifierPattern.gif | Bin 0 -> 223 bytes ...onDeclaration_statement_IntegerPattern.gif | Bin 0 -> 223 bytes ...ionDeclaration_statement_LoopStatement.gif | Bin 0 -> 223 bytes ...ionDeclaration_statement_NullStatement.gif | Bin 0 -> 223 bytes ...ctionDeclaration_statement_OnStatement.gif | Bin 0 -> 223 bytes ...eFunctionDeclaration_statement_Pattern.gif | Bin 0 -> 223 bytes ...Declaration_statement_PatternStatement.gif | Bin 0 -> 223 bytes ...Declaration_statement_ReceiveStatement.gif | Bin 0 -> 223 bytes ...laration_statement_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...nDeclaration_statement_ReturnStatement.gif | Bin 0 -> 223 bytes ...nDeclaration_statement_SelectStatement.gif | Bin 0 -> 223 bytes ...ionDeclaration_statement_SendStatement.gif | Bin 0 -> 223 bytes ...unctionDeclaration_statement_Statement.gif | Bin 0 -> 223 bytes ...nDeclaration_statement_StatementChoice.gif | Bin 0 -> 223 bytes ...eclaration_statement_StatementSequence.gif | Bin 0 -> 223 bytes ...nDeclaration_statement_TaggedStatement.gif | Bin 0 -> 223 bytes ...ctionDeclaration_statement_ToStatement.gif | Bin 0 -> 223 bytes ...nDeclaration_statement_UnlessStatement.gif | Bin 0 -> 223 bytes ...ionDeclaration_statement_WaitStatement.gif | Bin 0 -> 223 bytes ...onDeclaration_statement_WhileStatement.gif | Bin 0 -> 223 bytes ...eateFunctionDeclaration_type_ArrayType.gif | Bin 0 -> 223 bytes ...eateFunctionDeclaration_type_BasicType.gif | Bin 0 -> 223 bytes ...teFunctionDeclaration_type_BooleanType.gif | Bin 0 -> 223 bytes ...teFunctionDeclaration_type_IntegerType.gif | Bin 0 -> 223 bytes ...teFunctionDeclaration_type_NaturalType.gif | Bin 0 -> 223 bytes ...eateFunctionDeclaration_type_QueueType.gif | Bin 0 -> 223 bytes ...eateFunctionDeclaration_type_RangeType.gif | Bin 0 -> 223 bytes ...ateFunctionDeclaration_type_RecordType.gif | Bin 0 -> 223 bytes ...unctionDeclaration_type_ReferencedType.gif | Bin 0 -> 223 bytes ...eateFunctionDeclaration_type_TupleType.gif | Bin 0 -> 223 bytes .../CreateFunctionDeclaration_type_Type.gif | Bin 0 -> 223 bytes ...eateFunctionDeclaration_type_UnionType.gif | Bin 0 -> 223 bytes .../CreateImplication_left_Addition.gif | Bin 0 -> 223 bytes .../CreateImplication_left_AllExpression.gif | Bin 0 -> 223 bytes ...reateImplication_left_AppendExpression.gif | Bin 0 -> 223 bytes ...Implication_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...CreateImplication_left_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...CreateImplication_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eateImplication_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...mplication_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...reateImplication_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Implication_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ateImplication_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateImplication_left_Conditional.gif | Bin 0 -> 223 bytes .../CreateImplication_left_Conjunction.gif | Bin 0 -> 223 bytes ...mplication_left_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_left_Disjunction.gif | Bin 0 -> 223 bytes .../CreateImplication_left_Division.gif | Bin 0 -> 223 bytes ...eateImplication_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...reateImplication_left_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_left_Expression.gif | Bin 0 -> 223 bytes .../CreateImplication_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...eImplication_left_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_left_Implication.gif | Bin 0 -> 223 bytes ...eateImplication_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateImplication_left_Modulo.gif | Bin 0 -> 223 bytes .../CreateImplication_left_Multiplication.gif | Bin 0 -> 223 bytes .../CreateImplication_left_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateImplication_left_Projection.gif | Bin 0 -> 223 bytes ...CreateImplication_left_QueueExpression.gif | Bin 0 -> 223 bytes ...mplication_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...reateImplication_left_RecordExpression.gif | Bin 0 -> 223 bytes ...teImplication_left_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_left_Substraction.gif | Bin 0 -> 223 bytes .../CreateImplication_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...Implication_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...mplication_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eImplication_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eImplication_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...teImplication_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Implication_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eImplication_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...plication_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...teImplication_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_right_Addition.gif | Bin 0 -> 223 bytes .../CreateImplication_right_AllExpression.gif | Bin 0 -> 223 bytes ...eateImplication_right_AppendExpression.gif | Bin 0 -> 223 bytes ...mplication_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...reateImplication_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...CreateImplication_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...reateImplication_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ateImplication_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...plication_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eateImplication_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...mplication_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...teImplication_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateImplication_right_Conditional.gif | Bin 0 -> 223 bytes .../CreateImplication_right_Conjunction.gif | Bin 0 -> 223 bytes ...plication_right_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_right_Disjunction.gif | Bin 0 -> 223 bytes .../CreateImplication_right_Division.gif | Bin 0 -> 223 bytes ...ateImplication_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eateImplication_right_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_right_Expression.gif | Bin 0 -> 223 bytes .../CreateImplication_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...Implication_right_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_right_Implication.gif | Bin 0 -> 223 bytes ...ateImplication_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_right_Modulo.gif | Bin 0 -> 223 bytes ...CreateImplication_right_Multiplication.gif | Bin 0 -> 223 bytes ...CreateImplication_right_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateImplication_right_Projection.gif | Bin 0 -> 223 bytes ...reateImplication_right_QueueExpression.gif | Bin 0 -> 223 bytes ...plication_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eateImplication_right_RecordExpression.gif | Bin 0 -> 223 bytes ...eImplication_right_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateImplication_right_Substraction.gif | Bin 0 -> 223 bytes .../CreateImplication_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...mplication_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...plication_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...Implication_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...Implication_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eImplication_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...mplication_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...Implication_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...lication_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eImplication_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...lyOftenPattern_subject_EnterStateEvent.gif | Bin 0 -> 223 bytes ...lyOftenPattern_subject_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...initelyOftenPattern_subject_Observable.gif | Bin 0 -> 223 bytes ...nPattern_subject_ObservableConjunction.gif | Bin 0 -> 223 bytes ...nPattern_subject_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...lyOftenPattern_subject_ObservableEvent.gif | Bin 0 -> 223 bytes ...nPattern_subject_ObservableImplication.gif | Bin 0 -> 223 bytes ...ftenPattern_subject_ObservableNegation.gif | Bin 0 -> 223 bytes ...finitelyOftenPattern_subject_PathEvent.gif | Bin 0 -> 223 bytes ...initelyOftenPattern_subject_StateEvent.gif | Bin 0 -> 223 bytes ...Declaration_instance_ComponentInstance.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_EnterStateEvent.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLAll_child_LTLAll.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_LTLConjunction.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_LTLDisjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLAll_child_LTLExists.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_LTLImplication.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_LTLProperty.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLAll_child_LTLRelease.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_LTLUnaryAlways.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_LTLUnaryEventually.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_LTLUnaryNegation.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLAll_child_LTLUntil.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_LTLVariable.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLAll_child_ObservableEvent.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLAll_child_PathEvent.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLAll_child_StateEvent.gif | Bin 0 -> 223 bytes ...CreateLTLAll_index_VariableDeclaration.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLAll_type_RangeType.gif | Bin 0 -> 223 bytes ...ateLTLConjunction_left_EnterStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_left_LTLAll.gif | Bin 0 -> 223 bytes ...eateLTLConjunction_left_LTLConjunction.gif | Bin 0 -> 223 bytes ...eateLTLConjunction_left_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_left_LTLExists.gif | Bin 0 -> 223 bytes ...eateLTLConjunction_left_LTLImplication.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_left_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_left_LTLRelease.gif | Bin 0 -> 223 bytes ...eateLTLConjunction_left_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...LTLConjunction_left_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...teLTLConjunction_left_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...CreateLTLConjunction_left_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_left_LTLUntil.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_left_LTLVariable.gif | Bin 0 -> 223 bytes ...ateLTLConjunction_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ateLTLConjunction_left_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_left_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_left_StateEvent.gif | Bin 0 -> 223 bytes ...teLTLConjunction_right_EnterStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_right_LTLAll.gif | Bin 0 -> 223 bytes ...ateLTLConjunction_right_LTLConjunction.gif | Bin 0 -> 223 bytes ...ateLTLConjunction_right_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_right_LTLExists.gif | Bin 0 -> 223 bytes ...ateLTLConjunction_right_LTLImplication.gif | Bin 0 -> 223 bytes ...CreateLTLConjunction_right_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_right_LTLRelease.gif | Bin 0 -> 223 bytes ...ateLTLConjunction_right_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...TLConjunction_right_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...eLTLConjunction_right_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...reateLTLConjunction_right_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_right_LTLUntil.gif | Bin 0 -> 223 bytes ...CreateLTLConjunction_right_LTLVariable.gif | Bin 0 -> 223 bytes ...teLTLConjunction_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...teLTLConjunction_right_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_right_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLConjunction_right_StateEvent.gif | Bin 0 -> 223 bytes ...ateLTLDisjunction_left_EnterStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_left_LTLAll.gif | Bin 0 -> 223 bytes ...eateLTLDisjunction_left_LTLConjunction.gif | Bin 0 -> 223 bytes ...eateLTLDisjunction_left_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_left_LTLExists.gif | Bin 0 -> 223 bytes ...eateLTLDisjunction_left_LTLImplication.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_left_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_left_LTLRelease.gif | Bin 0 -> 223 bytes ...eateLTLDisjunction_left_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...LTLDisjunction_left_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...teLTLDisjunction_left_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...CreateLTLDisjunction_left_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_left_LTLUntil.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_left_LTLVariable.gif | Bin 0 -> 223 bytes ...ateLTLDisjunction_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ateLTLDisjunction_left_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_left_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_left_StateEvent.gif | Bin 0 -> 223 bytes ...teLTLDisjunction_right_EnterStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_right_LTLAll.gif | Bin 0 -> 223 bytes ...ateLTLDisjunction_right_LTLConjunction.gif | Bin 0 -> 223 bytes ...ateLTLDisjunction_right_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_right_LTLExists.gif | Bin 0 -> 223 bytes ...ateLTLDisjunction_right_LTLImplication.gif | Bin 0 -> 223 bytes ...CreateLTLDisjunction_right_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_right_LTLRelease.gif | Bin 0 -> 223 bytes ...ateLTLDisjunction_right_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...TLDisjunction_right_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...eLTLDisjunction_right_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...reateLTLDisjunction_right_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_right_LTLUntil.gif | Bin 0 -> 223 bytes ...CreateLTLDisjunction_right_LTLVariable.gif | Bin 0 -> 223 bytes ...teLTLDisjunction_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...teLTLDisjunction_right_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_right_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLDisjunction_right_StateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_EnterStateEvent.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLExists_child_LTLAll.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LTLConjunction.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LTLExists.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LTLImplication.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LTLRelease.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...eateLTLExists_child_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...CreateLTLExists_child_LTLUnaryNegation.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LTLUntil.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LTLVariable.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLExists_child_StateEvent.gif | Bin 0 -> 223 bytes ...ateLTLExists_index_VariableDeclaration.gif | Bin 0 -> 223 bytes .../CreateLTLExists_type_RangeType.gif | Bin 0 -> 223 bytes ...ateLTLImplication_left_EnterStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_left_LTLAll.gif | Bin 0 -> 223 bytes ...eateLTLImplication_left_LTLConjunction.gif | Bin 0 -> 223 bytes ...eateLTLImplication_left_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_left_LTLExists.gif | Bin 0 -> 223 bytes ...eateLTLImplication_left_LTLImplication.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_left_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_left_LTLRelease.gif | Bin 0 -> 223 bytes ...eateLTLImplication_left_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...LTLImplication_left_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...teLTLImplication_left_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...CreateLTLImplication_left_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_left_LTLUntil.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_left_LTLVariable.gif | Bin 0 -> 223 bytes ...ateLTLImplication_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ateLTLImplication_left_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_left_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_left_StateEvent.gif | Bin 0 -> 223 bytes ...teLTLImplication_right_EnterStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_right_LTLAll.gif | Bin 0 -> 223 bytes ...ateLTLImplication_right_LTLConjunction.gif | Bin 0 -> 223 bytes ...ateLTLImplication_right_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_right_LTLExists.gif | Bin 0 -> 223 bytes ...ateLTLImplication_right_LTLImplication.gif | Bin 0 -> 223 bytes ...CreateLTLImplication_right_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_right_LTLRelease.gif | Bin 0 -> 223 bytes ...ateLTLImplication_right_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...TLImplication_right_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...eLTLImplication_right_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...reateLTLImplication_right_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_right_LTLUntil.gif | Bin 0 -> 223 bytes ...CreateLTLImplication_right_LTLVariable.gif | Bin 0 -> 223 bytes ...teLTLImplication_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...teLTLImplication_right_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_right_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLImplication_right_StateEvent.gif | Bin 0 -> 223 bytes ...ateLTLPattern_property_EnterStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLPattern_property_LTLAll.gif | Bin 0 -> 223 bytes ...eateLTLPattern_property_LTLConjunction.gif | Bin 0 -> 223 bytes ...eateLTLPattern_property_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLPattern_property_LTLExists.gif | Bin 0 -> 223 bytes ...eateLTLPattern_property_LTLImplication.gif | Bin 0 -> 223 bytes .../CreateLTLPattern_property_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLPattern_property_LTLRelease.gif | Bin 0 -> 223 bytes ...eateLTLPattern_property_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...LTLPattern_property_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...teLTLPattern_property_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...CreateLTLPattern_property_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLPattern_property_LTLUntil.gif | Bin 0 -> 223 bytes .../CreateLTLPattern_property_LTLVariable.gif | Bin 0 -> 223 bytes ...ateLTLPattern_property_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ateLTLPattern_property_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLPattern_property_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLPattern_property_StateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_EnterStateEvent.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLRelease_left_LTLAll.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LTLConjunction.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LTLExists.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LTLImplication.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LTLRelease.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...eateLTLRelease_left_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...CreateLTLRelease_left_LTLUnaryNegation.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LTLUntil.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LTLVariable.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_left_StateEvent.gif | Bin 0 -> 223 bytes ...CreateLTLRelease_right_EnterStateEvent.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLRelease_right_LTLAll.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_LTLConjunction.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_LTLExists.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_LTLImplication.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_LTLRelease.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...ateLTLRelease_right_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...reateLTLRelease_right_LTLUnaryNegation.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_LTLUntil.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_LTLVariable.gif | Bin 0 -> 223 bytes ...CreateLTLRelease_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...CreateLTLRelease_right_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLRelease_right_StateEvent.gif | Bin 0 -> 223 bytes ...LTLUnaryAlways_operand_EnterStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUnaryAlways_operand_LTLAll.gif | Bin 0 -> 223 bytes ...eLTLUnaryAlways_operand_LTLConjunction.gif | Bin 0 -> 223 bytes ...eLTLUnaryAlways_operand_LTLDisjunction.gif | Bin 0 -> 223 bytes ...CreateLTLUnaryAlways_operand_LTLExists.gif | Bin 0 -> 223 bytes ...eLTLUnaryAlways_operand_LTLImplication.gif | Bin 0 -> 223 bytes ...eateLTLUnaryAlways_operand_LTLProperty.gif | Bin 0 -> 223 bytes ...reateLTLUnaryAlways_operand_LTLRelease.gif | Bin 0 -> 223 bytes ...eLTLUnaryAlways_operand_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...UnaryAlways_operand_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...TLUnaryAlways_operand_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...ateLTLUnaryAlways_operand_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLUnaryAlways_operand_LTLUntil.gif | Bin 0 -> 223 bytes ...eateLTLUnaryAlways_operand_LTLVariable.gif | Bin 0 -> 223 bytes ...LTLUnaryAlways_operand_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...LTLUnaryAlways_operand_ObservableEvent.gif | Bin 0 -> 223 bytes ...CreateLTLUnaryAlways_operand_PathEvent.gif | Bin 0 -> 223 bytes ...reateLTLUnaryAlways_operand_StateEvent.gif | Bin 0 -> 223 bytes ...naryEventually_operand_EnterStateEvent.gif | Bin 0 -> 223 bytes ...reateLTLUnaryEventually_operand_LTLAll.gif | Bin 0 -> 223 bytes ...UnaryEventually_operand_LTLConjunction.gif | Bin 0 -> 223 bytes ...UnaryEventually_operand_LTLDisjunction.gif | Bin 0 -> 223 bytes ...teLTLUnaryEventually_operand_LTLExists.gif | Bin 0 -> 223 bytes ...UnaryEventually_operand_LTLImplication.gif | Bin 0 -> 223 bytes ...LTLUnaryEventually_operand_LTLProperty.gif | Bin 0 -> 223 bytes ...eLTLUnaryEventually_operand_LTLRelease.gif | Bin 0 -> 223 bytes ...UnaryEventually_operand_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...yEventually_operand_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...aryEventually_operand_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...TLUnaryEventually_operand_LTLUnaryNext.gif | Bin 0 -> 223 bytes ...ateLTLUnaryEventually_operand_LTLUntil.gif | Bin 0 -> 223 bytes ...LTLUnaryEventually_operand_LTLVariable.gif | Bin 0 -> 223 bytes ...naryEventually_operand_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...naryEventually_operand_ObservableEvent.gif | Bin 0 -> 223 bytes ...teLTLUnaryEventually_operand_PathEvent.gif | Bin 0 -> 223 bytes ...eLTLUnaryEventually_operand_StateEvent.gif | Bin 0 -> 223 bytes ...LUnaryNegation_operand_EnterStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUnaryNegation_operand_LTLAll.gif | Bin 0 -> 223 bytes ...TLUnaryNegation_operand_LTLConjunction.gif | Bin 0 -> 223 bytes ...TLUnaryNegation_operand_LTLDisjunction.gif | Bin 0 -> 223 bytes ...eateLTLUnaryNegation_operand_LTLExists.gif | Bin 0 -> 223 bytes ...TLUnaryNegation_operand_LTLImplication.gif | Bin 0 -> 223 bytes ...teLTLUnaryNegation_operand_LTLProperty.gif | Bin 0 -> 223 bytes ...ateLTLUnaryNegation_operand_LTLRelease.gif | Bin 0 -> 223 bytes ...TLUnaryNegation_operand_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...aryNegation_operand_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...UnaryNegation_operand_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...eLTLUnaryNegation_operand_LTLUnaryNext.gif | Bin 0 -> 223 bytes ...reateLTLUnaryNegation_operand_LTLUntil.gif | Bin 0 -> 223 bytes ...teLTLUnaryNegation_operand_LTLVariable.gif | Bin 0 -> 223 bytes ...LUnaryNegation_operand_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...LUnaryNegation_operand_ObservableEvent.gif | Bin 0 -> 223 bytes ...eateLTLUnaryNegation_operand_PathEvent.gif | Bin 0 -> 223 bytes ...ateLTLUnaryNegation_operand_StateEvent.gif | Bin 0 -> 223 bytes ...teLTLUnaryNext_operand_EnterStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUnaryNext_operand_LTLAll.gif | Bin 0 -> 223 bytes ...ateLTLUnaryNext_operand_LTLConjunction.gif | Bin 0 -> 223 bytes ...ateLTLUnaryNext_operand_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLUnaryNext_operand_LTLExists.gif | Bin 0 -> 223 bytes ...ateLTLUnaryNext_operand_LTLImplication.gif | Bin 0 -> 223 bytes ...CreateLTLUnaryNext_operand_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLUnaryNext_operand_LTLRelease.gif | Bin 0 -> 223 bytes ...ateLTLUnaryNext_operand_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...TLUnaryNext_operand_LTLUnaryEventually.gif | Bin 0 -> 223 bytes ...eLTLUnaryNext_operand_LTLUnaryNegation.gif | Bin 0 -> 223 bytes ...reateLTLUnaryNext_operand_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../CreateLTLUnaryNext_operand_LTLUntil.gif | Bin 0 -> 223 bytes ...CreateLTLUnaryNext_operand_LTLVariable.gif | Bin 0 -> 223 bytes ...teLTLUnaryNext_operand_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...teLTLUnaryNext_operand_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUnaryNext_operand_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUnaryNext_operand_StateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_EnterStateEvent.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLUntil_left_LTLAll.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_LTLConjunction.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_LTLDisjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLUntil_left_LTLExists.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_LTLImplication.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_LTLRelease.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...CreateLTLUntil_left_LTLUnaryEventually.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_LTLUnaryNegation.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLUntil_left_LTLUntil.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_LTLVariable.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_ObservableEvent.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLUntil_left_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_left_StateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_EnterStateEvent.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLUntil_right_LTLAll.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LTLConjunction.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LTLDisjunction.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LTLExists.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LTLImplication.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LTLProperty.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LTLRelease.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LTLUnaryAlways.gif | Bin 0 -> 223 bytes ...reateLTLUntil_right_LTLUnaryEventually.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LTLUnaryNegation.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LTLUnaryNext.gif | Bin 0 -> 223 bytes .../ctool16/CreateLTLUntil_right_LTLUntil.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LTLVariable.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_ObservableEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLTLUntil_right_StateEvent.gif | Bin 0 -> 223 bytes ...teLeadsToPattern_after_EnterStateEvent.gif | Bin 0 -> 223 bytes ...teLeadsToPattern_after_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_after_Observable.gif | Bin 0 -> 223 bytes ...sToPattern_after_ObservableConjunction.gif | Bin 0 -> 223 bytes ...sToPattern_after_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...teLeadsToPattern_after_ObservableEvent.gif | Bin 0 -> 223 bytes ...sToPattern_after_ObservableImplication.gif | Bin 0 -> 223 bytes ...eadsToPattern_after_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_after_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_after_StateEvent.gif | Bin 0 -> 223 bytes ...eLeadsToPattern_before_EnterStateEvent.gif | Bin 0 -> 223 bytes ...eLeadsToPattern_before_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...CreateLeadsToPattern_before_Observable.gif | Bin 0 -> 223 bytes ...ToPattern_before_ObservableConjunction.gif | Bin 0 -> 223 bytes ...ToPattern_before_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...eLeadsToPattern_before_ObservableEvent.gif | Bin 0 -> 223 bytes ...ToPattern_before_ObservableImplication.gif | Bin 0 -> 223 bytes ...adsToPattern_before_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_before_PathEvent.gif | Bin 0 -> 223 bytes ...CreateLeadsToPattern_before_StateEvent.gif | Bin 0 -> 223 bytes ...eadsToPattern_follower_EnterStateEvent.gif | Bin 0 -> 223 bytes ...eadsToPattern_follower_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...eateLeadsToPattern_follower_Observable.gif | Bin 0 -> 223 bytes ...Pattern_follower_ObservableConjunction.gif | Bin 0 -> 223 bytes ...Pattern_follower_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...eadsToPattern_follower_ObservableEvent.gif | Bin 0 -> 223 bytes ...Pattern_follower_ObservableImplication.gif | Bin 0 -> 223 bytes ...sToPattern_follower_ObservableNegation.gif | Bin 0 -> 223 bytes ...reateLeadsToPattern_follower_PathEvent.gif | Bin 0 -> 223 bytes ...eateLeadsToPattern_follower_StateEvent.gif | Bin 0 -> 223 bytes ...LeadsToPattern_lower_DecimalLowerBound.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_lower_LowerBound.gif | Bin 0 -> 223 bytes ...LeadsToPattern_lower_NaturalLowerBound.gif | Bin 0 -> 223 bytes ...eadsToPattern_lower_VariableLowerBound.gif | Bin 0 -> 223 bytes ...eateLeadsToPattern_max_EnterStateEvent.gif | Bin 0 -> 223 bytes ...eateLeadsToPattern_max_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_max_Observable.gif | Bin 0 -> 223 bytes ...adsToPattern_max_ObservableConjunction.gif | Bin 0 -> 223 bytes ...adsToPattern_max_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...eateLeadsToPattern_max_ObservableEvent.gif | Bin 0 -> 223 bytes ...adsToPattern_max_ObservableImplication.gif | Bin 0 -> 223 bytes ...eLeadsToPattern_max_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_max_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_max_StateEvent.gif | Bin 0 -> 223 bytes ...eateLeadsToPattern_min_EnterStateEvent.gif | Bin 0 -> 223 bytes ...eateLeadsToPattern_min_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_min_Observable.gif | Bin 0 -> 223 bytes ...adsToPattern_min_ObservableConjunction.gif | Bin 0 -> 223 bytes ...adsToPattern_min_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...eateLeadsToPattern_min_ObservableEvent.gif | Bin 0 -> 223 bytes ...adsToPattern_min_ObservableImplication.gif | Bin 0 -> 223 bytes ...eLeadsToPattern_min_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_min_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_min_StateEvent.gif | Bin 0 -> 223 bytes ...LeadsToPattern_subject_EnterStateEvent.gif | Bin 0 -> 223 bytes ...LeadsToPattern_subject_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...reateLeadsToPattern_subject_Observable.gif | Bin 0 -> 223 bytes ...oPattern_subject_ObservableConjunction.gif | Bin 0 -> 223 bytes ...oPattern_subject_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...LeadsToPattern_subject_ObservableEvent.gif | Bin 0 -> 223 bytes ...oPattern_subject_ObservableImplication.gif | Bin 0 -> 223 bytes ...dsToPattern_subject_ObservableNegation.gif | Bin 0 -> 223 bytes ...CreateLeadsToPattern_subject_PathEvent.gif | Bin 0 -> 223 bytes ...reateLeadsToPattern_subject_StateEvent.gif | Bin 0 -> 223 bytes ...teLeadsToPattern_until_EnterStateEvent.gif | Bin 0 -> 223 bytes ...teLeadsToPattern_until_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_until_Observable.gif | Bin 0 -> 223 bytes ...sToPattern_until_ObservableConjunction.gif | Bin 0 -> 223 bytes ...sToPattern_until_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...teLeadsToPattern_until_ObservableEvent.gif | Bin 0 -> 223 bytes ...sToPattern_until_ObservableImplication.gif | Bin 0 -> 223 bytes ...eadsToPattern_until_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_until_PathEvent.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_until_StateEvent.gif | Bin 0 -> 223 bytes ...LeadsToPattern_upper_DecimalUpperBound.gif | Bin 0 -> 223 bytes ...eadsToPattern_upper_InfiniteUpperBound.gif | Bin 0 -> 223 bytes ...LeadsToPattern_upper_NaturalUpperBound.gif | Bin 0 -> 223 bytes .../CreateLeadsToPattern_upper_UpperBound.gif | Bin 0 -> 223 bytes ...eadsToPattern_upper_VariableUpperBound.gif | Bin 0 -> 223 bytes ...ortsDeclaration_left_DecimalLowerBound.gif | Bin 0 -> 223 bytes ...eLocalPortsDeclaration_left_LowerBound.gif | Bin 0 -> 223 bytes ...ortsDeclaration_left_NaturalLowerBound.gif | Bin 0 -> 223 bytes ...rtsDeclaration_left_VariableLowerBound.gif | Bin 0 -> 223 bytes ...PortsDeclaration_ports_PortDeclaration.gif | Bin 0 -> 223 bytes ...rtsDeclaration_right_DecimalUpperBound.gif | Bin 0 -> 223 bytes ...tsDeclaration_right_InfiniteUpperBound.gif | Bin 0 -> 223 bytes ...rtsDeclaration_right_NaturalUpperBound.gif | Bin 0 -> 223 bytes ...LocalPortsDeclaration_right_UpperBound.gif | Bin 0 -> 223 bytes ...tsDeclaration_right_VariableUpperBound.gif | Bin 0 -> 223 bytes ...LocalPortsDeclaration_type_ChannelType.gif | Bin 0 -> 223 bytes ...eModel_declarations_ChannelDeclaration.gif | Bin 0 -> 223 bytes ...odel_declarations_ComponentDeclaration.gif | Bin 0 -> 223 bytes ...Model_declarations_ConstantDeclaration.gif | Bin 0 -> 223 bytes .../CreateModel_declarations_Declaration.gif | Bin 0 -> 223 bytes ...Model_declarations_FunctionDeclaration.gif | Bin 0 -> 223 bytes ..._declarations_ParameterizedDeclaration.gif | Bin 0 -> 223 bytes ...eModel_declarations_ProcessDeclaration.gif | Bin 0 -> 223 bytes ...Model_declarations_PropertyDeclaration.gif | Bin 0 -> 223 bytes ...eateModel_declarations_TypeDeclaration.gif | Bin 0 -> 223 bytes .../CreateModel_imports_ImportDeclaration.gif | Bin 0 -> 223 bytes .../CreateModel_requirements_Requirement.gif | Bin 0 -> 223 bytes .../full/ctool16/CreateModel_root_Root.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_left_Addition.gif | Bin 0 -> 223 bytes .../CreateModulo_left_AllExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_left_AppendExpression.gif | Bin 0 -> 223 bytes ...reateModulo_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_left_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_left_BooleanLiteral.gif | Bin 0 -> 223 bytes .../CreateModulo_left_ComparisonEqual.gif | Bin 0 -> 223 bytes .../CreateModulo_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...eateModulo_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes .../CreateModulo_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...reateModulo_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes .../CreateModulo_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_left_Conditional.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_left_Conjunction.gif | Bin 0 -> 223 bytes ...eateModulo_left_ConstructionExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_left_Disjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_left_Division.gif | Bin 0 -> 223 bytes .../CreateModulo_left_EnqueueExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_left_ExistsExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_left_Expression.gif | Bin 0 -> 223 bytes .../CreateModulo_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...CreateModulo_left_IdentifierExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_left_Implication.gif | Bin 0 -> 223 bytes .../CreateModulo_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../full/ctool16/CreateModulo_left_Modulo.gif | Bin 0 -> 223 bytes .../CreateModulo_left_Multiplication.gif | Bin 0 -> 223 bytes .../CreateModulo_left_NaturalLiteral.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_left_Projection.gif | Bin 0 -> 223 bytes .../CreateModulo_left_QueueExpression.gif | Bin 0 -> 223 bytes ...eateModulo_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_left_RecordExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_left_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_left_Substraction.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...reateModulo_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...eateModulo_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...CreateModulo_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...CreateModulo_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...reateModulo_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...CreateModulo_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ateModulo_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_right_Addition.gif | Bin 0 -> 223 bytes .../CreateModulo_right_AllExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_right_AppendExpression.gif | Bin 0 -> 223 bytes ...eateModulo_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_right_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_right_BooleanLiteral.gif | Bin 0 -> 223 bytes .../CreateModulo_right_ComparisonEqual.gif | Bin 0 -> 223 bytes .../CreateModulo_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ateModulo_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes .../CreateModulo_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...eateModulo_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes .../CreateModulo_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateModulo_right_Conditional.gif | Bin 0 -> 223 bytes .../CreateModulo_right_Conjunction.gif | Bin 0 -> 223 bytes ...ateModulo_right_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_right_Disjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_right_Division.gif | Bin 0 -> 223 bytes .../CreateModulo_right_EnqueueExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_right_ExistsExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_right_Expression.gif | Bin 0 -> 223 bytes .../CreateModulo_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...reateModulo_right_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_right_Implication.gif | Bin 0 -> 223 bytes .../CreateModulo_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_right_Modulo.gif | Bin 0 -> 223 bytes .../CreateModulo_right_Multiplication.gif | Bin 0 -> 223 bytes .../CreateModulo_right_NaturalLiteral.gif | Bin 0 -> 223 bytes .../ctool16/CreateModulo_right_Projection.gif | Bin 0 -> 223 bytes .../CreateModulo_right_QueueExpression.gif | Bin 0 -> 223 bytes ...ateModulo_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_right_RecordExpression.gif | Bin 0 -> 223 bytes ...CreateModulo_right_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateModulo_right_Substraction.gif | Bin 0 -> 223 bytes .../CreateModulo_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...eateModulo_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ateModulo_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...reateModulo_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...reateModulo_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...CreateModulo_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...eateModulo_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...reateModulo_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...teModulo_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...CreateModulo_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eMortalPattern_subject_EnterStateEvent.gif | Bin 0 -> 223 bytes ...eMortalPattern_subject_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...CreateMortalPattern_subject_Observable.gif | Bin 0 -> 223 bytes ...lPattern_subject_ObservableConjunction.gif | Bin 0 -> 223 bytes ...lPattern_subject_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...eMortalPattern_subject_ObservableEvent.gif | Bin 0 -> 223 bytes ...lPattern_subject_ObservableImplication.gif | Bin 0 -> 223 bytes ...rtalPattern_subject_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateMortalPattern_subject_PathEvent.gif | Bin 0 -> 223 bytes ...CreateMortalPattern_subject_StateEvent.gif | Bin 0 -> 223 bytes .../CreateMultiplication_left_Addition.gif | Bin 0 -> 223 bytes ...reateMultiplication_left_AllExpression.gif | Bin 0 -> 223 bytes ...teMultiplication_left_AppendExpression.gif | Bin 0 -> 223 bytes ...tiplication_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ateMultiplication_left_ArrayExpression.gif | Bin 0 -> 223 bytes ...eateMultiplication_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ateMultiplication_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eMultiplication_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...iplication_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...teMultiplication_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...tiplication_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...Multiplication_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateMultiplication_left_Conditional.gif | Bin 0 -> 223 bytes .../CreateMultiplication_left_Conjunction.gif | Bin 0 -> 223 bytes ...iplication_left_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateMultiplication_left_Disjunction.gif | Bin 0 -> 223 bytes .../CreateMultiplication_left_Division.gif | Bin 0 -> 223 bytes ...eMultiplication_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...teMultiplication_left_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateMultiplication_left_Expression.gif | Bin 0 -> 223 bytes ...CreateMultiplication_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...ltiplication_left_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateMultiplication_left_Implication.gif | Bin 0 -> 223 bytes ...eMultiplication_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateMultiplication_left_Modulo.gif | Bin 0 -> 223 bytes ...eateMultiplication_left_Multiplication.gif | Bin 0 -> 223 bytes ...eateMultiplication_left_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateMultiplication_left_Projection.gif | Bin 0 -> 223 bytes ...ateMultiplication_left_QueueExpression.gif | Bin 0 -> 223 bytes ...iplication_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...teMultiplication_left_RecordExpression.gif | Bin 0 -> 223 bytes ...ultiplication_left_ReferenceExpression.gif | Bin 0 -> 223 bytes ...CreateMultiplication_left_Substraction.gif | Bin 0 -> 223 bytes .../CreateMultiplication_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...tiplication_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...iplication_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...ltiplication_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...ltiplication_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ultiplication_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...tiplication_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...ltiplication_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...plication_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ultiplication_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateMultiplication_right_Addition.gif | Bin 0 -> 223 bytes ...eateMultiplication_right_AllExpression.gif | Bin 0 -> 223 bytes ...eMultiplication_right_AppendExpression.gif | Bin 0 -> 223 bytes ...iplication_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...teMultiplication_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...ateMultiplication_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...teMultiplication_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...Multiplication_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...plication_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eMultiplication_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...iplication_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ultiplication_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...CreateMultiplication_right_Conditional.gif | Bin 0 -> 223 bytes ...CreateMultiplication_right_Conjunction.gif | Bin 0 -> 223 bytes ...plication_right_ConstructionExpression.gif | Bin 0 -> 223 bytes ...CreateMultiplication_right_Disjunction.gif | Bin 0 -> 223 bytes .../CreateMultiplication_right_Division.gif | Bin 0 -> 223 bytes ...Multiplication_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eMultiplication_right_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateMultiplication_right_Expression.gif | Bin 0 -> 223 bytes ...reateMultiplication_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...tiplication_right_IdentifierExpression.gif | Bin 0 -> 223 bytes ...CreateMultiplication_right_Implication.gif | Bin 0 -> 223 bytes ...Multiplication_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateMultiplication_right_Modulo.gif | Bin 0 -> 223 bytes ...ateMultiplication_right_Multiplication.gif | Bin 0 -> 223 bytes ...ateMultiplication_right_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateMultiplication_right_Projection.gif | Bin 0 -> 223 bytes ...teMultiplication_right_QueueExpression.gif | Bin 0 -> 223 bytes ...plication_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eMultiplication_right_RecordExpression.gif | Bin 0 -> 223 bytes ...ltiplication_right_ReferenceExpression.gif | Bin 0 -> 223 bytes ...reateMultiplication_right_Substraction.gif | Bin 0 -> 223 bytes ...CreateMultiplication_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...iplication_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...plication_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...tiplication_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...tiplication_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ltiplication_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...iplication_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...tiplication_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...lication_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ltiplication_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...rvableConjunction_left_EnterStateEvent.gif | Bin 0 -> 223 bytes ...rvableConjunction_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...eObservableConjunction_left_Observable.gif | Bin 0 -> 223 bytes ...Conjunction_left_ObservableConjunction.gif | Bin 0 -> 223 bytes ...Conjunction_left_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...rvableConjunction_left_ObservableEvent.gif | Bin 0 -> 223 bytes ...Conjunction_left_ObservableImplication.gif | Bin 0 -> 223 bytes ...bleConjunction_left_ObservableNegation.gif | Bin 0 -> 223 bytes ...teObservableConjunction_left_PathEvent.gif | Bin 0 -> 223 bytes ...eObservableConjunction_left_StateEvent.gif | Bin 0 -> 223 bytes ...vableConjunction_right_EnterStateEvent.gif | Bin 0 -> 223 bytes ...vableConjunction_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ObservableConjunction_right_Observable.gif | Bin 0 -> 223 bytes ...onjunction_right_ObservableConjunction.gif | Bin 0 -> 223 bytes ...onjunction_right_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...vableConjunction_right_ObservableEvent.gif | Bin 0 -> 223 bytes ...onjunction_right_ObservableImplication.gif | Bin 0 -> 223 bytes ...leConjunction_right_ObservableNegation.gif | Bin 0 -> 223 bytes ...eObservableConjunction_right_PathEvent.gif | Bin 0 -> 223 bytes ...ObservableConjunction_right_StateEvent.gif | Bin 0 -> 223 bytes ...rvableDisjunction_left_EnterStateEvent.gif | Bin 0 -> 223 bytes ...rvableDisjunction_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...eObservableDisjunction_left_Observable.gif | Bin 0 -> 223 bytes ...Disjunction_left_ObservableConjunction.gif | Bin 0 -> 223 bytes ...Disjunction_left_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...rvableDisjunction_left_ObservableEvent.gif | Bin 0 -> 223 bytes ...Disjunction_left_ObservableImplication.gif | Bin 0 -> 223 bytes ...bleDisjunction_left_ObservableNegation.gif | Bin 0 -> 223 bytes ...teObservableDisjunction_left_PathEvent.gif | Bin 0 -> 223 bytes ...eObservableDisjunction_left_StateEvent.gif | Bin 0 -> 223 bytes ...vableDisjunction_right_EnterStateEvent.gif | Bin 0 -> 223 bytes ...vableDisjunction_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ObservableDisjunction_right_Observable.gif | Bin 0 -> 223 bytes ...isjunction_right_ObservableConjunction.gif | Bin 0 -> 223 bytes ...isjunction_right_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...vableDisjunction_right_ObservableEvent.gif | Bin 0 -> 223 bytes ...isjunction_right_ObservableImplication.gif | Bin 0 -> 223 bytes ...leDisjunction_right_ObservableNegation.gif | Bin 0 -> 223 bytes ...eObservableDisjunction_right_PathEvent.gif | Bin 0 -> 223 bytes ...ObservableDisjunction_right_StateEvent.gif | Bin 0 -> 223 bytes ...rvableImplication_left_EnterStateEvent.gif | Bin 0 -> 223 bytes ...rvableImplication_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...eObservableImplication_left_Observable.gif | Bin 0 -> 223 bytes ...Implication_left_ObservableConjunction.gif | Bin 0 -> 223 bytes ...Implication_left_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...rvableImplication_left_ObservableEvent.gif | Bin 0 -> 223 bytes ...Implication_left_ObservableImplication.gif | Bin 0 -> 223 bytes ...bleImplication_left_ObservableNegation.gif | Bin 0 -> 223 bytes ...teObservableImplication_left_PathEvent.gif | Bin 0 -> 223 bytes ...eObservableImplication_left_StateEvent.gif | Bin 0 -> 223 bytes ...vableImplication_right_EnterStateEvent.gif | Bin 0 -> 223 bytes ...vableImplication_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ObservableImplication_right_Observable.gif | Bin 0 -> 223 bytes ...mplication_right_ObservableConjunction.gif | Bin 0 -> 223 bytes ...mplication_right_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...vableImplication_right_ObservableEvent.gif | Bin 0 -> 223 bytes ...mplication_right_ObservableImplication.gif | Bin 0 -> 223 bytes ...leImplication_right_ObservableNegation.gif | Bin 0 -> 223 bytes ...eObservableImplication_right_PathEvent.gif | Bin 0 -> 223 bytes ...ObservableImplication_right_StateEvent.gif | Bin 0 -> 223 bytes ...servableNegation_child_EnterStateEvent.gif | Bin 0 -> 223 bytes ...servableNegation_child_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ateObservableNegation_child_Observable.gif | Bin 0 -> 223 bytes ...leNegation_child_ObservableConjunction.gif | Bin 0 -> 223 bytes ...leNegation_child_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...servableNegation_child_ObservableEvent.gif | Bin 0 -> 223 bytes ...leNegation_child_ObservableImplication.gif | Bin 0 -> 223 bytes ...vableNegation_child_ObservableNegation.gif | Bin 0 -> 223 bytes ...eateObservableNegation_child_PathEvent.gif | Bin 0 -> 223 bytes ...ateObservableNegation_child_StateEvent.gif | Bin 0 -> 223 bytes .../CreateOnStatement_condition_Addition.gif | Bin 0 -> 223 bytes ...ateOnStatement_condition_AllExpression.gif | Bin 0 -> 223 bytes ...OnStatement_condition_AppendExpression.gif | Bin 0 -> 223 bytes ...tement_condition_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...eOnStatement_condition_ArrayExpression.gif | Bin 0 -> 223 bytes ...teOnStatement_condition_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eOnStatement_condition_ComparisonEqual.gif | Bin 0 -> 223 bytes ...nStatement_condition_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ement_condition_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...OnStatement_condition_ComparisonLesser.gif | Bin 0 -> 223 bytes ...tement_condition_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...Statement_condition_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...reateOnStatement_condition_Conditional.gif | Bin 0 -> 223 bytes ...reateOnStatement_condition_Conjunction.gif | Bin 0 -> 223 bytes ...ement_condition_ConstructionExpression.gif | Bin 0 -> 223 bytes ...reateOnStatement_condition_Disjunction.gif | Bin 0 -> 223 bytes .../CreateOnStatement_condition_Division.gif | Bin 0 -> 223 bytes ...nStatement_condition_EnqueueExpression.gif | Bin 0 -> 223 bytes ...OnStatement_condition_ExistsExpression.gif | Bin 0 -> 223 bytes ...CreateOnStatement_condition_Expression.gif | Bin 0 -> 223 bytes ...eateOnStatement_condition_FalseLiteral.gif | Bin 0 -> 223 bytes ...atement_condition_IdentifierExpression.gif | Bin 0 -> 223 bytes ...reateOnStatement_condition_Implication.gif | Bin 0 -> 223 bytes ...nStatement_condition_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateOnStatement_condition_Modulo.gif | Bin 0 -> 223 bytes ...teOnStatement_condition_Multiplication.gif | Bin 0 -> 223 bytes ...teOnStatement_condition_NaturalLiteral.gif | Bin 0 -> 223 bytes ...CreateOnStatement_condition_Projection.gif | Bin 0 -> 223 bytes ...eOnStatement_condition_QueueExpression.gif | Bin 0 -> 223 bytes ...ement_condition_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...OnStatement_condition_RecordExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_ReferenceExpression.gif | Bin 0 -> 223 bytes ...eateOnStatement_condition_Substraction.gif | Bin 0 -> 223 bytes ...reateOnStatement_condition_TrueLiteral.gif | Bin 0 -> 223 bytes ...tement_condition_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ement_condition_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...tement_condition_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ment_condition_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eateParameterDeclaration_size_Addition.gif | Bin 0 -> 223 bytes ...arameterDeclaration_size_AllExpression.gif | Bin 0 -> 223 bytes ...meterDeclaration_size_AppendExpression.gif | Bin 0 -> 223 bytes ...Declaration_size_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ameterDeclaration_size_ArrayExpression.gif | Bin 0 -> 223 bytes ...rameterDeclaration_size_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ameterDeclaration_size_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eterDeclaration_size_ComparisonGreater.gif | Bin 0 -> 223 bytes ...eclaration_size_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...meterDeclaration_size_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Declaration_size_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...terDeclaration_size_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eParameterDeclaration_size_Conditional.gif | Bin 0 -> 223 bytes ...eParameterDeclaration_size_Conjunction.gif | Bin 0 -> 223 bytes ...eclaration_size_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eParameterDeclaration_size_Disjunction.gif | Bin 0 -> 223 bytes ...eateParameterDeclaration_size_Division.gif | Bin 0 -> 223 bytes ...eterDeclaration_size_EnqueueExpression.gif | Bin 0 -> 223 bytes ...meterDeclaration_size_ExistsExpression.gif | Bin 0 -> 223 bytes ...teParameterDeclaration_size_Expression.gif | Bin 0 -> 223 bytes ...ParameterDeclaration_size_FalseLiteral.gif | Bin 0 -> 223 bytes ...rDeclaration_size_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eParameterDeclaration_size_Implication.gif | Bin 0 -> 223 bytes ...eterDeclaration_size_LiteralExpression.gif | Bin 0 -> 223 bytes ...CreateParameterDeclaration_size_Modulo.gif | Bin 0 -> 223 bytes ...rameterDeclaration_size_Multiplication.gif | Bin 0 -> 223 bytes ...rameterDeclaration_size_NaturalLiteral.gif | Bin 0 -> 223 bytes ...teParameterDeclaration_size_Projection.gif | Bin 0 -> 223 bytes ...ameterDeclaration_size_QueueExpression.gif | Bin 0 -> 223 bytes ...eclaration_size_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...meterDeclaration_size_RecordExpression.gif | Bin 0 -> 223 bytes ...erDeclaration_size_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ParameterDeclaration_size_Substraction.gif | Bin 0 -> 223 bytes ...eParameterDeclaration_size_TrueLiteral.gif | Bin 0 -> 223 bytes ...Declaration_size_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...eclaration_size_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...rDeclaration_size_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...rDeclaration_size_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...erDeclaration_size_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Declaration_size_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...rDeclaration_size_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...claration_size_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...erDeclaration_size_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...ation_parameters_ParametersDeclaration.gif | Bin 0 -> 223 bytes ...aration_variables_VariablesDeclaration.gif | Bin 0 -> 223 bytes ...ration_parameters_ParameterDeclaration.gif | Bin 0 -> 223 bytes ...teParametersDeclaration_type_ArrayType.gif | Bin 0 -> 223 bytes ...teParametersDeclaration_type_BasicType.gif | Bin 0 -> 223 bytes ...ParametersDeclaration_type_BooleanType.gif | Bin 0 -> 223 bytes ...ParametersDeclaration_type_IntegerType.gif | Bin 0 -> 223 bytes ...ParametersDeclaration_type_NaturalType.gif | Bin 0 -> 223 bytes ...teParametersDeclaration_type_QueueType.gif | Bin 0 -> 223 bytes ...teParametersDeclaration_type_RangeType.gif | Bin 0 -> 223 bytes ...eParametersDeclaration_type_RecordType.gif | Bin 0 -> 223 bytes ...ametersDeclaration_type_ReferencedType.gif | Bin 0 -> 223 bytes ...teParametersDeclaration_type_TupleType.gif | Bin 0 -> 223 bytes .../CreateParametersDeclaration_type_Type.gif | Bin 0 -> 223 bytes ...teParametersDeclaration_type_UnionType.gif | Bin 0 -> 223 bytes .../CreatePathEvent_item_EventSubject.gif | Bin 0 -> 223 bytes .../CreatePathEvent_item_StateSubject.gif | Bin 0 -> 223 bytes .../ctool16/CreatePathEvent_item_Subject.gif | Bin 0 -> 223 bytes .../CreatePathEvent_item_TagSubject.gif | Bin 0 -> 223 bytes .../CreatePathEvent_item_ValueSubject.gif | Bin 0 -> 223 bytes .../ctool16/CreatePathEvent_path_Path.gif | Bin 0 -> 223 bytes .../ctool16/CreatePath_items_NamedItem.gif | Bin 0 -> 223 bytes .../ctool16/CreatePath_items_NaturalItem.gif | Bin 0 -> 223 bytes .../ctool16/CreatePath_items_PathItem.gif | Bin 0 -> 223 bytes .../ctool16/CreatePortSet_ports_Addition.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_AllExpression.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_AppendExpression.gif | Bin 0 -> 223 bytes ...atePortSet_ports_ArrayAccessExpression.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_BooleanLiteral.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_ComparisonEqual.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_ComparisonGreater.gif | Bin 0 -> 223 bytes ...tePortSet_ports_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_ComparisonLesser.gif | Bin 0 -> 223 bytes ...atePortSet_ports_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...CreatePortSet_ports_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_Conditional.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_Conjunction.gif | Bin 0 -> 223 bytes ...tePortSet_ports_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_Disjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreatePortSet_ports_Division.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_EnqueueExpression.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_Expression.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_FalseLiteral.gif | Bin 0 -> 223 bytes ...eatePortSet_ports_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_Implication.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreatePortSet_ports_Modulo.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_Multiplication.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_Projection.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_QueueExpression.gif | Bin 0 -> 223 bytes ...tePortSet_ports_RecordAccessExpression.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_RecordExpression.gif | Bin 0 -> 223 bytes ...reatePortSet_ports_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_Substraction.gif | Bin 0 -> 223 bytes .../CreatePortSet_ports_TrueLiteral.gif | Bin 0 -> 223 bytes ...atePortSet_ports_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...tePortSet_ports_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eatePortSet_ports_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eatePortSet_ports_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...reatePortSet_ports_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...atePortSet_ports_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eatePortSet_ports_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ePortSet_ports_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...reatePortSet_ports_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...PortsDeclaration_ports_PortDeclaration.gif | Bin 0 -> 223 bytes ...reatePortsDeclaration_type_ChannelType.gif | Bin 0 -> 223 bytes ...ePrecedesPattern_after_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ePrecedesPattern_after_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...CreatePrecedesPattern_after_Observable.gif | Bin 0 -> 223 bytes ...desPattern_after_ObservableConjunction.gif | Bin 0 -> 223 bytes ...desPattern_after_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...ePrecedesPattern_after_ObservableEvent.gif | Bin 0 -> 223 bytes ...desPattern_after_ObservableImplication.gif | Bin 0 -> 223 bytes ...ecedesPattern_after_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreatePrecedesPattern_after_PathEvent.gif | Bin 0 -> 223 bytes ...CreatePrecedesPattern_after_StateEvent.gif | Bin 0 -> 223 bytes ...PrecedesPattern_before_EnterStateEvent.gif | Bin 0 -> 223 bytes ...PrecedesPattern_before_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...reatePrecedesPattern_before_Observable.gif | Bin 0 -> 223 bytes ...esPattern_before_ObservableConjunction.gif | Bin 0 -> 223 bytes ...esPattern_before_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...PrecedesPattern_before_ObservableEvent.gif | Bin 0 -> 223 bytes ...esPattern_before_ObservableImplication.gif | Bin 0 -> 223 bytes ...cedesPattern_before_ObservableNegation.gif | Bin 0 -> 223 bytes ...CreatePrecedesPattern_before_PathEvent.gif | Bin 0 -> 223 bytes ...reatePrecedesPattern_before_StateEvent.gif | Bin 0 -> 223 bytes ...ecedesPattern_follower_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ecedesPattern_follower_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...atePrecedesPattern_follower_Observable.gif | Bin 0 -> 223 bytes ...Pattern_follower_ObservableConjunction.gif | Bin 0 -> 223 bytes ...Pattern_follower_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...ecedesPattern_follower_ObservableEvent.gif | Bin 0 -> 223 bytes ...Pattern_follower_ObservableImplication.gif | Bin 0 -> 223 bytes ...desPattern_follower_ObservableNegation.gif | Bin 0 -> 223 bytes ...eatePrecedesPattern_follower_PathEvent.gif | Bin 0 -> 223 bytes ...atePrecedesPattern_follower_StateEvent.gif | Bin 0 -> 223 bytes ...atePrecedesPattern_max_EnterStateEvent.gif | Bin 0 -> 223 bytes ...atePrecedesPattern_max_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreatePrecedesPattern_max_Observable.gif | Bin 0 -> 223 bytes ...cedesPattern_max_ObservableConjunction.gif | Bin 0 -> 223 bytes ...cedesPattern_max_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...atePrecedesPattern_max_ObservableEvent.gif | Bin 0 -> 223 bytes ...cedesPattern_max_ObservableImplication.gif | Bin 0 -> 223 bytes ...PrecedesPattern_max_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreatePrecedesPattern_max_PathEvent.gif | Bin 0 -> 223 bytes .../CreatePrecedesPattern_max_StateEvent.gif | Bin 0 -> 223 bytes ...atePrecedesPattern_min_EnterStateEvent.gif | Bin 0 -> 223 bytes ...atePrecedesPattern_min_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreatePrecedesPattern_min_Observable.gif | Bin 0 -> 223 bytes ...cedesPattern_min_ObservableConjunction.gif | Bin 0 -> 223 bytes ...cedesPattern_min_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...atePrecedesPattern_min_ObservableEvent.gif | Bin 0 -> 223 bytes ...cedesPattern_min_ObservableImplication.gif | Bin 0 -> 223 bytes ...PrecedesPattern_min_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreatePrecedesPattern_min_PathEvent.gif | Bin 0 -> 223 bytes .../CreatePrecedesPattern_min_StateEvent.gif | Bin 0 -> 223 bytes ...recedesPattern_subject_EnterStateEvent.gif | Bin 0 -> 223 bytes ...recedesPattern_subject_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...eatePrecedesPattern_subject_Observable.gif | Bin 0 -> 223 bytes ...sPattern_subject_ObservableConjunction.gif | Bin 0 -> 223 bytes ...sPattern_subject_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...recedesPattern_subject_ObservableEvent.gif | Bin 0 -> 223 bytes ...sPattern_subject_ObservableImplication.gif | Bin 0 -> 223 bytes ...edesPattern_subject_ObservableNegation.gif | Bin 0 -> 223 bytes ...reatePrecedesPattern_subject_PathEvent.gif | Bin 0 -> 223 bytes ...eatePrecedesPattern_subject_StateEvent.gif | Bin 0 -> 223 bytes ...ePrecedesPattern_until_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ePrecedesPattern_until_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...CreatePrecedesPattern_until_Observable.gif | Bin 0 -> 223 bytes ...desPattern_until_ObservableConjunction.gif | Bin 0 -> 223 bytes ...desPattern_until_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...ePrecedesPattern_until_ObservableEvent.gif | Bin 0 -> 223 bytes ...desPattern_until_ObservableImplication.gif | Bin 0 -> 223 bytes ...ecedesPattern_until_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreatePrecedesPattern_until_PathEvent.gif | Bin 0 -> 223 bytes ...CreatePrecedesPattern_until_StateEvent.gif | Bin 0 -> 223 bytes ...ePresencePattern_after_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ePresencePattern_after_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...CreatePresencePattern_after_Observable.gif | Bin 0 -> 223 bytes ...ncePattern_after_ObservableConjunction.gif | Bin 0 -> 223 bytes ...ncePattern_after_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...ePresencePattern_after_ObservableEvent.gif | Bin 0 -> 223 bytes ...ncePattern_after_ObservableImplication.gif | Bin 0 -> 223 bytes ...esencePattern_after_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreatePresencePattern_after_PathEvent.gif | Bin 0 -> 223 bytes ...CreatePresencePattern_after_StateEvent.gif | Bin 0 -> 223 bytes ...PresencePattern_before_EnterStateEvent.gif | Bin 0 -> 223 bytes ...PresencePattern_before_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...reatePresencePattern_before_Observable.gif | Bin 0 -> 223 bytes ...cePattern_before_ObservableConjunction.gif | Bin 0 -> 223 bytes ...cePattern_before_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...PresencePattern_before_ObservableEvent.gif | Bin 0 -> 223 bytes ...cePattern_before_ObservableImplication.gif | Bin 0 -> 223 bytes ...sencePattern_before_ObservableNegation.gif | Bin 0 -> 223 bytes ...CreatePresencePattern_before_PathEvent.gif | Bin 0 -> 223 bytes ...reatePresencePattern_before_StateEvent.gif | Bin 0 -> 223 bytes ...resencePattern_lower_DecimalLowerBound.gif | Bin 0 -> 223 bytes ...CreatePresencePattern_lower_LowerBound.gif | Bin 0 -> 223 bytes ...resencePattern_lower_NaturalLowerBound.gif | Bin 0 -> 223 bytes ...esencePattern_lower_VariableLowerBound.gif | Bin 0 -> 223 bytes ...atePresencePattern_max_EnterStateEvent.gif | Bin 0 -> 223 bytes ...atePresencePattern_max_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreatePresencePattern_max_Observable.gif | Bin 0 -> 223 bytes ...sencePattern_max_ObservableConjunction.gif | Bin 0 -> 223 bytes ...sencePattern_max_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...atePresencePattern_max_ObservableEvent.gif | Bin 0 -> 223 bytes ...sencePattern_max_ObservableImplication.gif | Bin 0 -> 223 bytes ...PresencePattern_max_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreatePresencePattern_max_PathEvent.gif | Bin 0 -> 223 bytes .../CreatePresencePattern_max_StateEvent.gif | Bin 0 -> 223 bytes ...atePresencePattern_min_EnterStateEvent.gif | Bin 0 -> 223 bytes ...atePresencePattern_min_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreatePresencePattern_min_Observable.gif | Bin 0 -> 223 bytes ...sencePattern_min_ObservableConjunction.gif | Bin 0 -> 223 bytes ...sencePattern_min_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...atePresencePattern_min_ObservableEvent.gif | Bin 0 -> 223 bytes ...sencePattern_min_ObservableImplication.gif | Bin 0 -> 223 bytes ...PresencePattern_min_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreatePresencePattern_min_PathEvent.gif | Bin 0 -> 223 bytes .../CreatePresencePattern_min_StateEvent.gif | Bin 0 -> 223 bytes ...resencePattern_subject_EnterStateEvent.gif | Bin 0 -> 223 bytes ...resencePattern_subject_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...eatePresencePattern_subject_Observable.gif | Bin 0 -> 223 bytes ...ePattern_subject_ObservableConjunction.gif | Bin 0 -> 223 bytes ...ePattern_subject_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...resencePattern_subject_ObservableEvent.gif | Bin 0 -> 223 bytes ...ePattern_subject_ObservableImplication.gif | Bin 0 -> 223 bytes ...encePattern_subject_ObservableNegation.gif | Bin 0 -> 223 bytes ...reatePresencePattern_subject_PathEvent.gif | Bin 0 -> 223 bytes ...eatePresencePattern_subject_StateEvent.gif | Bin 0 -> 223 bytes ...ePresencePattern_until_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ePresencePattern_until_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...CreatePresencePattern_until_Observable.gif | Bin 0 -> 223 bytes ...ncePattern_until_ObservableConjunction.gif | Bin 0 -> 223 bytes ...ncePattern_until_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...ePresencePattern_until_ObservableEvent.gif | Bin 0 -> 223 bytes ...ncePattern_until_ObservableImplication.gif | Bin 0 -> 223 bytes ...esencePattern_until_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreatePresencePattern_until_PathEvent.gif | Bin 0 -> 223 bytes ...CreatePresencePattern_until_StateEvent.gif | Bin 0 -> 223 bytes ...resencePattern_upper_DecimalUpperBound.gif | Bin 0 -> 223 bytes ...esencePattern_upper_InfiniteUpperBound.gif | Bin 0 -> 223 bytes ...resencePattern_upper_NaturalUpperBound.gif | Bin 0 -> 223 bytes ...CreatePresencePattern_upper_UpperBound.gif | Bin 0 -> 223 bytes ...esencePattern_upper_VariableUpperBound.gif | Bin 0 -> 223 bytes ...iorityDeclaration_groups_PriorityGroup.gif | Bin 0 -> 223 bytes ...eclaration_localPorts_PortsDeclaration.gif | Bin 0 -> 223 bytes ...cessDeclaration_ports_PortsDeclaration.gif | Bin 0 -> 223 bytes ...eProcessDeclaration_prelude_AnyPattern.gif | Bin 0 -> 223 bytes ...Declaration_prelude_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...Declaration_prelude_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...essDeclaration_prelude_AssignStatement.gif | Bin 0 -> 223 bytes ...cessDeclaration_prelude_BlockStatement.gif | Bin 0 -> 223 bytes ...ocessDeclaration_prelude_CaseStatement.gif | Bin 0 -> 223 bytes ...claration_prelude_ConditionalStatement.gif | Bin 0 -> 223 bytes ...essDeclaration_prelude_ConstantPattern.gif | Bin 0 -> 223 bytes ...Declaration_prelude_ConstructorPattern.gif | Bin 0 -> 223 bytes ...ssDeclaration_prelude_ForeachStatement.gif | Bin 0 -> 223 bytes ...sDeclaration_prelude_IdentifierPattern.gif | Bin 0 -> 223 bytes ...cessDeclaration_prelude_IntegerPattern.gif | Bin 0 -> 223 bytes ...ocessDeclaration_prelude_LoopStatement.gif | Bin 0 -> 223 bytes ...ocessDeclaration_prelude_NullStatement.gif | Bin 0 -> 223 bytes ...ProcessDeclaration_prelude_OnStatement.gif | Bin 0 -> 223 bytes ...eateProcessDeclaration_prelude_Pattern.gif | Bin 0 -> 223 bytes ...ssDeclaration_prelude_PatternStatement.gif | Bin 0 -> 223 bytes ...ssDeclaration_prelude_ReceiveStatement.gif | Bin 0 -> 223 bytes ...eclaration_prelude_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...essDeclaration_prelude_ReturnStatement.gif | Bin 0 -> 223 bytes ...essDeclaration_prelude_SelectStatement.gif | Bin 0 -> 223 bytes ...ocessDeclaration_prelude_SendStatement.gif | Bin 0 -> 223 bytes ...teProcessDeclaration_prelude_Statement.gif | Bin 0 -> 223 bytes ...essDeclaration_prelude_StatementChoice.gif | Bin 0 -> 223 bytes ...sDeclaration_prelude_StatementSequence.gif | Bin 0 -> 223 bytes ...essDeclaration_prelude_TaggedStatement.gif | Bin 0 -> 223 bytes ...ProcessDeclaration_prelude_ToStatement.gif | Bin 0 -> 223 bytes ...essDeclaration_prelude_UnlessStatement.gif | Bin 0 -> 223 bytes ...ocessDeclaration_prelude_WaitStatement.gif | Bin 0 -> 223 bytes ...cessDeclaration_prelude_WhileStatement.gif | Bin 0 -> 223 bytes ...aration_priorities_PriorityDeclaration.gif | Bin 0 -> 223 bytes ...essDeclaration_states_StateDeclaration.gif | Bin 0 -> 223 bytes ...cessDeclaration_transitions_Transition.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_Addition.gif | Bin 0 -> 223 bytes ...CreateProjection_channel_AllExpression.gif | Bin 0 -> 223 bytes ...ateProjection_channel_AppendExpression.gif | Bin 0 -> 223 bytes ...ojection_channel_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...eateProjection_channel_ArrayExpression.gif | Bin 0 -> 223 bytes ...reateProjection_channel_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eateProjection_channel_ComparisonEqual.gif | Bin 0 -> 223 bytes ...teProjection_channel_ComparisonGreater.gif | Bin 0 -> 223 bytes ...jection_channel_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ateProjection_channel_ComparisonLesser.gif | Bin 0 -> 223 bytes ...ojection_channel_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...eProjection_channel_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_Conditional.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_Conjunction.gif | Bin 0 -> 223 bytes ...jection_channel_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_Disjunction.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_Division.gif | Bin 0 -> 223 bytes ...teProjection_channel_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ateProjection_channel_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_Expression.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_FalseLiteral.gif | Bin 0 -> 223 bytes ...rojection_channel_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_Implication.gif | Bin 0 -> 223 bytes ...teProjection_channel_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_Modulo.gif | Bin 0 -> 223 bytes ...reateProjection_channel_Multiplication.gif | Bin 0 -> 223 bytes ...reateProjection_channel_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_Projection.gif | Bin 0 -> 223 bytes ...eateProjection_channel_QueueExpression.gif | Bin 0 -> 223 bytes ...jection_channel_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ateProjection_channel_RecordExpression.gif | Bin 0 -> 223 bytes ...Projection_channel_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_Substraction.gif | Bin 0 -> 223 bytes .../CreateProjection_channel_TrueLiteral.gif | Bin 0 -> 223 bytes ...ojection_channel_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...jection_channel_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...rojection_channel_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...rojection_channel_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...Projection_channel_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...ojection_channel_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...rojection_channel_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ection_channel_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...Projection_channel_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_field_Addition.gif | Bin 0 -> 223 bytes .../CreateProjection_field_AllExpression.gif | Bin 0 -> 223 bytes ...reateProjection_field_AppendExpression.gif | Bin 0 -> 223 bytes ...Projection_field_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...CreateProjection_field_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_field_BooleanLiteral.gif | Bin 0 -> 223 bytes ...CreateProjection_field_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eateProjection_field_ComparisonGreater.gif | Bin 0 -> 223 bytes ...rojection_field_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...reateProjection_field_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Projection_field_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ateProjection_field_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateProjection_field_Conditional.gif | Bin 0 -> 223 bytes .../CreateProjection_field_Conjunction.gif | Bin 0 -> 223 bytes ...rojection_field_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_field_Disjunction.gif | Bin 0 -> 223 bytes .../CreateProjection_field_Division.gif | Bin 0 -> 223 bytes ...eateProjection_field_EnqueueExpression.gif | Bin 0 -> 223 bytes ...reateProjection_field_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_field_Expression.gif | Bin 0 -> 223 bytes .../CreateProjection_field_FalseLiteral.gif | Bin 0 -> 223 bytes ...eProjection_field_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_field_Implication.gif | Bin 0 -> 223 bytes ...eateProjection_field_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateProjection_field_Modulo.gif | Bin 0 -> 223 bytes .../CreateProjection_field_Multiplication.gif | Bin 0 -> 223 bytes .../CreateProjection_field_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateProjection_field_Projection.gif | Bin 0 -> 223 bytes ...CreateProjection_field_QueueExpression.gif | Bin 0 -> 223 bytes ...rojection_field_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...reateProjection_field_RecordExpression.gif | Bin 0 -> 223 bytes ...teProjection_field_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateProjection_field_Substraction.gif | Bin 0 -> 223 bytes .../CreateProjection_field_TrueLiteral.gif | Bin 0 -> 223 bytes ...Projection_field_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...rojection_field_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eProjection_field_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eProjection_field_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...teProjection_field_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Projection_field_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eProjection_field_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ojection_field_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...teProjection_field_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...ropertyConjunction_left_AbsencePattern.gif | Bin 0 -> 223 bytes ...tePropertyConjunction_left_AllProperty.gif | Bin 0 -> 223 bytes ...PropertyConjunction_left_AlwaysPattern.gif | Bin 0 -> 223 bytes ...tyConjunction_left_DeadlockFreePattern.gif | Bin 0 -> 223 bytes ...opertyConjunction_left_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ropertyConjunction_left_ExistsProperty.gif | Bin 0 -> 223 bytes ...onjunction_left_InfinitelyOftenPattern.gif | Bin 0 -> 223 bytes ...atePropertyConjunction_left_LTLPattern.gif | Bin 0 -> 223 bytes ...ropertyConjunction_left_LeadsToPattern.gif | Bin 0 -> 223 bytes ...opertyConjunction_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...PropertyConjunction_left_MortalPattern.gif | Bin 0 -> 223 bytes ...atePropertyConjunction_left_Observable.gif | Bin 0 -> 223 bytes ...Conjunction_left_ObservableConjunction.gif | Bin 0 -> 223 bytes ...Conjunction_left_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...opertyConjunction_left_ObservableEvent.gif | Bin 0 -> 223 bytes ...Conjunction_left_ObservableImplication.gif | Bin 0 -> 223 bytes ...rtyConjunction_left_ObservableNegation.gif | Bin 0 -> 223 bytes ...eatePropertyConjunction_left_PathEvent.gif | Bin 0 -> 223 bytes ...opertyConjunction_left_PatternProperty.gif | Bin 0 -> 223 bytes ...opertyConjunction_left_PrecedesPattern.gif | Bin 0 -> 223 bytes ...opertyConjunction_left_PresencePattern.gif | Bin 0 -> 223 bytes ...reatePropertyConjunction_left_Property.gif | Bin 0 -> 223 bytes ...tyConjunction_left_PropertyConjunction.gif | Bin 0 -> 223 bytes ...tyConjunction_left_PropertyDisjunction.gif | Bin 0 -> 223 bytes ...tyConjunction_left_PropertyImplication.gif | Bin 0 -> 223 bytes ...pertyConjunction_left_PropertyNegation.gif | Bin 0 -> 223 bytes ...opertyConjunction_left_SequencePattern.gif | Bin 0 -> 223 bytes ...atePropertyConjunction_left_StateEvent.gif | Bin 0 -> 223 bytes ...opertyConjunction_right_AbsencePattern.gif | Bin 0 -> 223 bytes ...ePropertyConjunction_right_AllProperty.gif | Bin 0 -> 223 bytes ...ropertyConjunction_right_AlwaysPattern.gif | Bin 0 -> 223 bytes ...yConjunction_right_DeadlockFreePattern.gif | Bin 0 -> 223 bytes ...pertyConjunction_right_EnterStateEvent.gif | Bin 0 -> 223 bytes ...opertyConjunction_right_ExistsProperty.gif | Bin 0 -> 223 bytes ...njunction_right_InfinitelyOftenPattern.gif | Bin 0 -> 223 bytes ...tePropertyConjunction_right_LTLPattern.gif | Bin 0 -> 223 bytes ...opertyConjunction_right_LeadsToPattern.gif | Bin 0 -> 223 bytes ...pertyConjunction_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ropertyConjunction_right_MortalPattern.gif | Bin 0 -> 223 bytes ...tePropertyConjunction_right_Observable.gif | Bin 0 -> 223 bytes ...onjunction_right_ObservableConjunction.gif | Bin 0 -> 223 bytes ...onjunction_right_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...pertyConjunction_right_ObservableEvent.gif | Bin 0 -> 223 bytes ...onjunction_right_ObservableImplication.gif | Bin 0 -> 223 bytes ...tyConjunction_right_ObservableNegation.gif | Bin 0 -> 223 bytes ...atePropertyConjunction_right_PathEvent.gif | Bin 0 -> 223 bytes ...pertyConjunction_right_PatternProperty.gif | Bin 0 -> 223 bytes ...pertyConjunction_right_PrecedesPattern.gif | Bin 0 -> 223 bytes ...pertyConjunction_right_PresencePattern.gif | Bin 0 -> 223 bytes ...eatePropertyConjunction_right_Property.gif | Bin 0 -> 223 bytes ...yConjunction_right_PropertyConjunction.gif | Bin 0 -> 223 bytes ...yConjunction_right_PropertyDisjunction.gif | Bin 0 -> 223 bytes ...yConjunction_right_PropertyImplication.gif | Bin 0 -> 223 bytes ...ertyConjunction_right_PropertyNegation.gif | Bin 0 -> 223 bytes ...pertyConjunction_right_SequencePattern.gif | Bin 0 -> 223 bytes ...tePropertyConjunction_right_StateEvent.gif | Bin 0 -> 223 bytes ...rtyDeclaration_property_AbsencePattern.gif | Bin 0 -> 223 bytes ...opertyDeclaration_property_AllProperty.gif | Bin 0 -> 223 bytes ...ertyDeclaration_property_AlwaysPattern.gif | Bin 0 -> 223 bytes ...claration_property_DeadlockFreePattern.gif | Bin 0 -> 223 bytes ...tyDeclaration_property_EnterStateEvent.gif | Bin 0 -> 223 bytes ...rtyDeclaration_property_ExistsProperty.gif | Bin 0 -> 223 bytes ...ration_property_InfinitelyOftenPattern.gif | Bin 0 -> 223 bytes ...ropertyDeclaration_property_LTLPattern.gif | Bin 0 -> 223 bytes ...rtyDeclaration_property_LeadsToPattern.gif | Bin 0 -> 223 bytes ...tyDeclaration_property_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ertyDeclaration_property_MortalPattern.gif | Bin 0 -> 223 bytes ...ropertyDeclaration_property_Observable.gif | Bin 0 -> 223 bytes ...aration_property_ObservableConjunction.gif | Bin 0 -> 223 bytes ...aration_property_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...tyDeclaration_property_ObservableEvent.gif | Bin 0 -> 223 bytes ...aration_property_ObservableImplication.gif | Bin 0 -> 223 bytes ...eclaration_property_ObservableNegation.gif | Bin 0 -> 223 bytes ...PropertyDeclaration_property_PathEvent.gif | Bin 0 -> 223 bytes ...tyDeclaration_property_PatternProperty.gif | Bin 0 -> 223 bytes ...tyDeclaration_property_PrecedesPattern.gif | Bin 0 -> 223 bytes ...tyDeclaration_property_PresencePattern.gif | Bin 0 -> 223 bytes ...ePropertyDeclaration_property_Property.gif | Bin 0 -> 223 bytes ...claration_property_PropertyConjunction.gif | Bin 0 -> 223 bytes ...claration_property_PropertyDisjunction.gif | Bin 0 -> 223 bytes ...claration_property_PropertyImplication.gif | Bin 0 -> 223 bytes ...yDeclaration_property_PropertyNegation.gif | Bin 0 -> 223 bytes ...tyDeclaration_property_SequencePattern.gif | Bin 0 -> 223 bytes ...ropertyDeclaration_property_StateEvent.gif | Bin 0 -> 223 bytes ...ropertyDisjunction_left_AbsencePattern.gif | Bin 0 -> 223 bytes ...tePropertyDisjunction_left_AllProperty.gif | Bin 0 -> 223 bytes ...PropertyDisjunction_left_AlwaysPattern.gif | Bin 0 -> 223 bytes ...tyDisjunction_left_DeadlockFreePattern.gif | Bin 0 -> 223 bytes ...opertyDisjunction_left_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ropertyDisjunction_left_ExistsProperty.gif | Bin 0 -> 223 bytes ...isjunction_left_InfinitelyOftenPattern.gif | Bin 0 -> 223 bytes ...atePropertyDisjunction_left_LTLPattern.gif | Bin 0 -> 223 bytes ...ropertyDisjunction_left_LeadsToPattern.gif | Bin 0 -> 223 bytes ...opertyDisjunction_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...PropertyDisjunction_left_MortalPattern.gif | Bin 0 -> 223 bytes ...atePropertyDisjunction_left_Observable.gif | Bin 0 -> 223 bytes ...Disjunction_left_ObservableConjunction.gif | Bin 0 -> 223 bytes ...Disjunction_left_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...opertyDisjunction_left_ObservableEvent.gif | Bin 0 -> 223 bytes ...Disjunction_left_ObservableImplication.gif | Bin 0 -> 223 bytes ...rtyDisjunction_left_ObservableNegation.gif | Bin 0 -> 223 bytes ...eatePropertyDisjunction_left_PathEvent.gif | Bin 0 -> 223 bytes ...opertyDisjunction_left_PatternProperty.gif | Bin 0 -> 223 bytes ...opertyDisjunction_left_PrecedesPattern.gif | Bin 0 -> 223 bytes ...opertyDisjunction_left_PresencePattern.gif | Bin 0 -> 223 bytes ...reatePropertyDisjunction_left_Property.gif | Bin 0 -> 223 bytes ...tyDisjunction_left_PropertyConjunction.gif | Bin 0 -> 223 bytes ...tyDisjunction_left_PropertyDisjunction.gif | Bin 0 -> 223 bytes ...tyDisjunction_left_PropertyImplication.gif | Bin 0 -> 223 bytes ...pertyDisjunction_left_PropertyNegation.gif | Bin 0 -> 223 bytes ...opertyDisjunction_left_SequencePattern.gif | Bin 0 -> 223 bytes ...atePropertyDisjunction_left_StateEvent.gif | Bin 0 -> 223 bytes ...opertyDisjunction_right_AbsencePattern.gif | Bin 0 -> 223 bytes ...ePropertyDisjunction_right_AllProperty.gif | Bin 0 -> 223 bytes ...ropertyDisjunction_right_AlwaysPattern.gif | Bin 0 -> 223 bytes ...yDisjunction_right_DeadlockFreePattern.gif | Bin 0 -> 223 bytes ...pertyDisjunction_right_EnterStateEvent.gif | Bin 0 -> 223 bytes ...opertyDisjunction_right_ExistsProperty.gif | Bin 0 -> 223 bytes ...sjunction_right_InfinitelyOftenPattern.gif | Bin 0 -> 223 bytes ...tePropertyDisjunction_right_LTLPattern.gif | Bin 0 -> 223 bytes ...opertyDisjunction_right_LeadsToPattern.gif | Bin 0 -> 223 bytes ...pertyDisjunction_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ropertyDisjunction_right_MortalPattern.gif | Bin 0 -> 223 bytes ...tePropertyDisjunction_right_Observable.gif | Bin 0 -> 223 bytes ...isjunction_right_ObservableConjunction.gif | Bin 0 -> 223 bytes ...isjunction_right_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...pertyDisjunction_right_ObservableEvent.gif | Bin 0 -> 223 bytes ...isjunction_right_ObservableImplication.gif | Bin 0 -> 223 bytes ...tyDisjunction_right_ObservableNegation.gif | Bin 0 -> 223 bytes ...atePropertyDisjunction_right_PathEvent.gif | Bin 0 -> 223 bytes ...pertyDisjunction_right_PatternProperty.gif | Bin 0 -> 223 bytes ...pertyDisjunction_right_PrecedesPattern.gif | Bin 0 -> 223 bytes ...pertyDisjunction_right_PresencePattern.gif | Bin 0 -> 223 bytes ...eatePropertyDisjunction_right_Property.gif | Bin 0 -> 223 bytes ...yDisjunction_right_PropertyConjunction.gif | Bin 0 -> 223 bytes ...yDisjunction_right_PropertyDisjunction.gif | Bin 0 -> 223 bytes ...yDisjunction_right_PropertyImplication.gif | Bin 0 -> 223 bytes ...ertyDisjunction_right_PropertyNegation.gif | Bin 0 -> 223 bytes ...pertyDisjunction_right_SequencePattern.gif | Bin 0 -> 223 bytes ...tePropertyDisjunction_right_StateEvent.gif | Bin 0 -> 223 bytes ...ropertyImplication_left_AbsencePattern.gif | Bin 0 -> 223 bytes ...tePropertyImplication_left_AllProperty.gif | Bin 0 -> 223 bytes ...PropertyImplication_left_AlwaysPattern.gif | Bin 0 -> 223 bytes ...tyImplication_left_DeadlockFreePattern.gif | Bin 0 -> 223 bytes ...opertyImplication_left_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ropertyImplication_left_ExistsProperty.gif | Bin 0 -> 223 bytes ...mplication_left_InfinitelyOftenPattern.gif | Bin 0 -> 223 bytes ...atePropertyImplication_left_LTLPattern.gif | Bin 0 -> 223 bytes ...ropertyImplication_left_LeadsToPattern.gif | Bin 0 -> 223 bytes ...opertyImplication_left_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...PropertyImplication_left_MortalPattern.gif | Bin 0 -> 223 bytes ...atePropertyImplication_left_Observable.gif | Bin 0 -> 223 bytes ...Implication_left_ObservableConjunction.gif | Bin 0 -> 223 bytes ...Implication_left_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...opertyImplication_left_ObservableEvent.gif | Bin 0 -> 223 bytes ...Implication_left_ObservableImplication.gif | Bin 0 -> 223 bytes ...rtyImplication_left_ObservableNegation.gif | Bin 0 -> 223 bytes ...eatePropertyImplication_left_PathEvent.gif | Bin 0 -> 223 bytes ...opertyImplication_left_PatternProperty.gif | Bin 0 -> 223 bytes ...opertyImplication_left_PrecedesPattern.gif | Bin 0 -> 223 bytes ...opertyImplication_left_PresencePattern.gif | Bin 0 -> 223 bytes ...reatePropertyImplication_left_Property.gif | Bin 0 -> 223 bytes ...tyImplication_left_PropertyConjunction.gif | Bin 0 -> 223 bytes ...tyImplication_left_PropertyDisjunction.gif | Bin 0 -> 223 bytes ...tyImplication_left_PropertyImplication.gif | Bin 0 -> 223 bytes ...pertyImplication_left_PropertyNegation.gif | Bin 0 -> 223 bytes ...opertyImplication_left_SequencePattern.gif | Bin 0 -> 223 bytes ...atePropertyImplication_left_StateEvent.gif | Bin 0 -> 223 bytes ...opertyImplication_right_AbsencePattern.gif | Bin 0 -> 223 bytes ...ePropertyImplication_right_AllProperty.gif | Bin 0 -> 223 bytes ...ropertyImplication_right_AlwaysPattern.gif | Bin 0 -> 223 bytes ...yImplication_right_DeadlockFreePattern.gif | Bin 0 -> 223 bytes ...pertyImplication_right_EnterStateEvent.gif | Bin 0 -> 223 bytes ...opertyImplication_right_ExistsProperty.gif | Bin 0 -> 223 bytes ...plication_right_InfinitelyOftenPattern.gif | Bin 0 -> 223 bytes ...tePropertyImplication_right_LTLPattern.gif | Bin 0 -> 223 bytes ...opertyImplication_right_LeadsToPattern.gif | Bin 0 -> 223 bytes ...pertyImplication_right_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...ropertyImplication_right_MortalPattern.gif | Bin 0 -> 223 bytes ...tePropertyImplication_right_Observable.gif | Bin 0 -> 223 bytes ...mplication_right_ObservableConjunction.gif | Bin 0 -> 223 bytes ...mplication_right_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...pertyImplication_right_ObservableEvent.gif | Bin 0 -> 223 bytes ...mplication_right_ObservableImplication.gif | Bin 0 -> 223 bytes ...tyImplication_right_ObservableNegation.gif | Bin 0 -> 223 bytes ...atePropertyImplication_right_PathEvent.gif | Bin 0 -> 223 bytes ...pertyImplication_right_PatternProperty.gif | Bin 0 -> 223 bytes ...pertyImplication_right_PrecedesPattern.gif | Bin 0 -> 223 bytes ...pertyImplication_right_PresencePattern.gif | Bin 0 -> 223 bytes ...eatePropertyImplication_right_Property.gif | Bin 0 -> 223 bytes ...yImplication_right_PropertyConjunction.gif | Bin 0 -> 223 bytes ...yImplication_right_PropertyDisjunction.gif | Bin 0 -> 223 bytes ...yImplication_right_PropertyImplication.gif | Bin 0 -> 223 bytes ...ertyImplication_right_PropertyNegation.gif | Bin 0 -> 223 bytes ...pertyImplication_right_SequencePattern.gif | Bin 0 -> 223 bytes ...tePropertyImplication_right_StateEvent.gif | Bin 0 -> 223 bytes ...ePropertyNegation_child_AbsencePattern.gif | Bin 0 -> 223 bytes ...eatePropertyNegation_child_AllProperty.gif | Bin 0 -> 223 bytes ...tePropertyNegation_child_AlwaysPattern.gif | Bin 0 -> 223 bytes ...ertyNegation_child_DeadlockFreePattern.gif | Bin 0 -> 223 bytes ...PropertyNegation_child_EnterStateEvent.gif | Bin 0 -> 223 bytes ...ePropertyNegation_child_ExistsProperty.gif | Bin 0 -> 223 bytes ...yNegation_child_InfinitelyOftenPattern.gif | Bin 0 -> 223 bytes ...reatePropertyNegation_child_LTLPattern.gif | Bin 0 -> 223 bytes ...ePropertyNegation_child_LeadsToPattern.gif | Bin 0 -> 223 bytes ...PropertyNegation_child_LeaveStateEvent.gif | Bin 0 -> 223 bytes ...tePropertyNegation_child_MortalPattern.gif | Bin 0 -> 223 bytes ...reatePropertyNegation_child_Observable.gif | Bin 0 -> 223 bytes ...tyNegation_child_ObservableConjunction.gif | Bin 0 -> 223 bytes ...tyNegation_child_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...PropertyNegation_child_ObservableEvent.gif | Bin 0 -> 223 bytes ...tyNegation_child_ObservableImplication.gif | Bin 0 -> 223 bytes ...pertyNegation_child_ObservableNegation.gif | Bin 0 -> 223 bytes ...CreatePropertyNegation_child_PathEvent.gif | Bin 0 -> 223 bytes ...PropertyNegation_child_PatternProperty.gif | Bin 0 -> 223 bytes ...PropertyNegation_child_PrecedesPattern.gif | Bin 0 -> 223 bytes ...PropertyNegation_child_PresencePattern.gif | Bin 0 -> 223 bytes .../CreatePropertyNegation_child_Property.gif | Bin 0 -> 223 bytes ...ertyNegation_child_PropertyConjunction.gif | Bin 0 -> 223 bytes ...ertyNegation_child_PropertyDisjunction.gif | Bin 0 -> 223 bytes ...ertyNegation_child_PropertyImplication.gif | Bin 0 -> 223 bytes ...ropertyNegation_child_PropertyNegation.gif | Bin 0 -> 223 bytes ...PropertyNegation_child_SequencePattern.gif | Bin 0 -> 223 bytes ...reatePropertyNegation_child_StateEvent.gif | Bin 0 -> 223 bytes .../CreateQueueExpression_values_Addition.gif | Bin 0 -> 223 bytes ...teQueueExpression_values_AllExpression.gif | Bin 0 -> 223 bytes ...ueueExpression_values_AppendExpression.gif | Bin 0 -> 223 bytes ...xpression_values_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...QueueExpression_values_ArrayExpression.gif | Bin 0 -> 223 bytes ...eQueueExpression_values_BooleanLiteral.gif | Bin 0 -> 223 bytes ...QueueExpression_values_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eueExpression_values_ComparisonGreater.gif | Bin 0 -> 223 bytes ...pression_values_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ueueExpression_values_ComparisonLesser.gif | Bin 0 -> 223 bytes ...xpression_values_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ueExpression_values_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eateQueueExpression_values_Conditional.gif | Bin 0 -> 223 bytes ...eateQueueExpression_values_Conjunction.gif | Bin 0 -> 223 bytes ...pression_values_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eateQueueExpression_values_Disjunction.gif | Bin 0 -> 223 bytes .../CreateQueueExpression_values_Division.gif | Bin 0 -> 223 bytes ...eueExpression_values_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ueueExpression_values_ExistsExpression.gif | Bin 0 -> 223 bytes ...reateQueueExpression_values_Expression.gif | Bin 0 -> 223 bytes ...ateQueueExpression_values_FalseLiteral.gif | Bin 0 -> 223 bytes ...Expression_values_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eateQueueExpression_values_Implication.gif | Bin 0 -> 223 bytes ...eueExpression_values_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateQueueExpression_values_Modulo.gif | Bin 0 -> 223 bytes ...eQueueExpression_values_Multiplication.gif | Bin 0 -> 223 bytes ...eQueueExpression_values_NaturalLiteral.gif | Bin 0 -> 223 bytes ...reateQueueExpression_values_Projection.gif | Bin 0 -> 223 bytes ...QueueExpression_values_QueueExpression.gif | Bin 0 -> 223 bytes ...pression_values_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ueueExpression_values_RecordExpression.gif | Bin 0 -> 223 bytes ...eExpression_values_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ateQueueExpression_values_Substraction.gif | Bin 0 -> 223 bytes ...eateQueueExpression_values_TrueLiteral.gif | Bin 0 -> 223 bytes ...xpression_values_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...pression_values_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...Expression_values_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...Expression_values_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eExpression_values_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...xpression_values_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...Expression_values_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ression_values_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eExpression_values_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateQueueType_size_Addition.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_AllExpression.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_AppendExpression.gif | Bin 0 -> 223 bytes ...teQueueType_size_ArrayAccessExpression.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_ArrayExpression.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_BooleanLiteral.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_ComparisonEqual.gif | Bin 0 -> 223 bytes ...CreateQueueType_size_ComparisonGreater.gif | Bin 0 -> 223 bytes ...eQueueType_size_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_ComparisonLesser.gif | Bin 0 -> 223 bytes ...teQueueType_size_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...reateQueueType_size_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_Conditional.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_Conjunction.gif | Bin 0 -> 223 bytes ...eQueueType_size_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_Disjunction.gif | Bin 0 -> 223 bytes .../ctool16/CreateQueueType_size_Division.gif | Bin 0 -> 223 bytes ...CreateQueueType_size_EnqueueExpression.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_Expression.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_FalseLiteral.gif | Bin 0 -> 223 bytes ...ateQueueType_size_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_Implication.gif | Bin 0 -> 223 bytes ...CreateQueueType_size_LiteralExpression.gif | Bin 0 -> 223 bytes .../ctool16/CreateQueueType_size_Modulo.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_Multiplication.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_Projection.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_QueueExpression.gif | Bin 0 -> 223 bytes ...eQueueType_size_RecordAccessExpression.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_RecordExpression.gif | Bin 0 -> 223 bytes ...eateQueueType_size_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_Substraction.gif | Bin 0 -> 223 bytes .../CreateQueueType_size_TrueLiteral.gif | Bin 0 -> 223 bytes ...teQueueType_size_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...eQueueType_size_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...ateQueueType_size_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...ateQueueType_size_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eateQueueType_size_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...teQueueType_size_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...ateQueueType_size_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...QueueType_size_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eateQueueType_size_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_ArrayType.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_BasicType.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_BooleanType.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_IntegerType.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_NaturalType.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_QueueType.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_RangeType.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_RecordType.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_ReferencedType.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_TupleType.gif | Bin 0 -> 223 bytes .../ctool16/CreateQueueType_type_Type.gif | Bin 0 -> 223 bytes .../CreateQueueType_type_UnionType.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_Addition.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_AllExpression.gif | Bin 0 -> 223 bytes ...eateRangeType_maximum_AppendExpression.gif | Bin 0 -> 223 bytes ...angeType_maximum_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...reateRangeType_maximum_ArrayExpression.gif | Bin 0 -> 223 bytes ...CreateRangeType_maximum_BooleanLiteral.gif | Bin 0 -> 223 bytes ...reateRangeType_maximum_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ateRangeType_maximum_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ngeType_maximum_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eateRangeType_maximum_ComparisonLesser.gif | Bin 0 -> 223 bytes ...angeType_maximum_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...teRangeType_maximum_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_Conditional.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_Conjunction.gif | Bin 0 -> 223 bytes ...ngeType_maximum_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_Disjunction.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_Division.gif | Bin 0 -> 223 bytes ...ateRangeType_maximum_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eateRangeType_maximum_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_Expression.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_FalseLiteral.gif | Bin 0 -> 223 bytes ...RangeType_maximum_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_Implication.gif | Bin 0 -> 223 bytes ...ateRangeType_maximum_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_Modulo.gif | Bin 0 -> 223 bytes ...CreateRangeType_maximum_Multiplication.gif | Bin 0 -> 223 bytes ...CreateRangeType_maximum_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_Projection.gif | Bin 0 -> 223 bytes ...reateRangeType_maximum_QueueExpression.gif | Bin 0 -> 223 bytes ...ngeType_maximum_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eateRangeType_maximum_RecordExpression.gif | Bin 0 -> 223 bytes ...eRangeType_maximum_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_Substraction.gif | Bin 0 -> 223 bytes .../CreateRangeType_maximum_TrueLiteral.gif | Bin 0 -> 223 bytes ...angeType_maximum_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ngeType_maximum_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...RangeType_maximum_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...RangeType_maximum_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eRangeType_maximum_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...angeType_maximum_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...RangeType_maximum_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...geType_maximum_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eRangeType_maximum_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_Addition.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_AllExpression.gif | Bin 0 -> 223 bytes ...eateRangeType_minimum_AppendExpression.gif | Bin 0 -> 223 bytes ...angeType_minimum_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...reateRangeType_minimum_ArrayExpression.gif | Bin 0 -> 223 bytes ...CreateRangeType_minimum_BooleanLiteral.gif | Bin 0 -> 223 bytes ...reateRangeType_minimum_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ateRangeType_minimum_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ngeType_minimum_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eateRangeType_minimum_ComparisonLesser.gif | Bin 0 -> 223 bytes ...angeType_minimum_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...teRangeType_minimum_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_Conditional.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_Conjunction.gif | Bin 0 -> 223 bytes ...ngeType_minimum_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_Disjunction.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_Division.gif | Bin 0 -> 223 bytes ...ateRangeType_minimum_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eateRangeType_minimum_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_Expression.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_FalseLiteral.gif | Bin 0 -> 223 bytes ...RangeType_minimum_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_Implication.gif | Bin 0 -> 223 bytes ...ateRangeType_minimum_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_Modulo.gif | Bin 0 -> 223 bytes ...CreateRangeType_minimum_Multiplication.gif | Bin 0 -> 223 bytes ...CreateRangeType_minimum_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_Projection.gif | Bin 0 -> 223 bytes ...reateRangeType_minimum_QueueExpression.gif | Bin 0 -> 223 bytes ...ngeType_minimum_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eateRangeType_minimum_RecordExpression.gif | Bin 0 -> 223 bytes ...eRangeType_minimum_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_Substraction.gif | Bin 0 -> 223 bytes .../CreateRangeType_minimum_TrueLiteral.gif | Bin 0 -> 223 bytes ...angeType_minimum_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ngeType_minimum_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...RangeType_minimum_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...RangeType_minimum_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eRangeType_minimum_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...angeType_minimum_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...RangeType_minimum_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...geType_minimum_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eRangeType_minimum_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateReceiveStatement_exp_Addition.gif | Bin 0 -> 223 bytes ...eateReceiveStatement_exp_AllExpression.gif | Bin 0 -> 223 bytes ...eReceiveStatement_exp_AppendExpression.gif | Bin 0 -> 223 bytes ...iveStatement_exp_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...teReceiveStatement_exp_ArrayExpression.gif | Bin 0 -> 223 bytes ...ateReceiveStatement_exp_BooleanLiteral.gif | Bin 0 -> 223 bytes ...teReceiveStatement_exp_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ReceiveStatement_exp_ComparisonGreater.gif | Bin 0 -> 223 bytes ...veStatement_exp_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eReceiveStatement_exp_ComparisonLesser.gif | Bin 0 -> 223 bytes ...iveStatement_exp_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...eceiveStatement_exp_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...CreateReceiveStatement_exp_Conditional.gif | Bin 0 -> 223 bytes ...CreateReceiveStatement_exp_Conjunction.gif | Bin 0 -> 223 bytes ...veStatement_exp_ConstructionExpression.gif | Bin 0 -> 223 bytes ...CreateReceiveStatement_exp_Disjunction.gif | Bin 0 -> 223 bytes .../CreateReceiveStatement_exp_Division.gif | Bin 0 -> 223 bytes ...ReceiveStatement_exp_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eReceiveStatement_exp_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateReceiveStatement_exp_Expression.gif | Bin 0 -> 223 bytes ...reateReceiveStatement_exp_FalseLiteral.gif | Bin 0 -> 223 bytes ...eiveStatement_exp_IdentifierExpression.gif | Bin 0 -> 223 bytes ...CreateReceiveStatement_exp_Implication.gif | Bin 0 -> 223 bytes ...ReceiveStatement_exp_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateReceiveStatement_exp_Modulo.gif | Bin 0 -> 223 bytes ...ateReceiveStatement_exp_Multiplication.gif | Bin 0 -> 223 bytes ...ateReceiveStatement_exp_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateReceiveStatement_exp_Projection.gif | Bin 0 -> 223 bytes ...teReceiveStatement_exp_QueueExpression.gif | Bin 0 -> 223 bytes ...veStatement_exp_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eReceiveStatement_exp_RecordExpression.gif | Bin 0 -> 223 bytes ...ceiveStatement_exp_ReferenceExpression.gif | Bin 0 -> 223 bytes ...reateReceiveStatement_exp_Substraction.gif | Bin 0 -> 223 bytes ...CreateReceiveStatement_exp_TrueLiteral.gif | Bin 0 -> 223 bytes ...iveStatement_exp_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...veStatement_exp_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eiveStatement_exp_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eiveStatement_exp_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ceiveStatement_exp_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...iveStatement_exp_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eiveStatement_exp_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...eStatement_exp_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ceiveStatement_exp_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...teReceiveStatement_patterns_AnyPattern.gif | Bin 0 -> 223 bytes ...eStatement_patterns_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...eiveStatement_patterns_ConstantPattern.gif | Bin 0 -> 223 bytes ...eStatement_patterns_ConstructorPattern.gif | Bin 0 -> 223 bytes ...veStatement_patterns_IdentifierPattern.gif | Bin 0 -> 223 bytes ...ceiveStatement_patterns_IntegerPattern.gif | Bin 0 -> 223 bytes ...reateReceiveStatement_patterns_Pattern.gif | Bin 0 -> 223 bytes ...Statement_patterns_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...CreateReceiveStatement_port_AnyPattern.gif | Bin 0 -> 223 bytes ...ceiveStatement_port_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...eReceiveStatement_port_ConstantPattern.gif | Bin 0 -> 223 bytes ...ceiveStatement_port_ConstructorPattern.gif | Bin 0 -> 223 bytes ...eceiveStatement_port_IdentifierPattern.gif | Bin 0 -> 223 bytes ...teReceiveStatement_port_IntegerPattern.gif | Bin 0 -> 223 bytes .../CreateReceiveStatement_port_Pattern.gif | Bin 0 -> 223 bytes ...eiveStatement_port_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ccessPattern_source_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...ccessPattern_source_ConstructorPattern.gif | Bin 0 -> 223 bytes ...AccessPattern_source_IdentifierPattern.gif | Bin 0 -> 223 bytes ...cessPattern_source_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...ecordExpression_fields_FieldExpression.gif | Bin 0 -> 223 bytes ...rdFields_fields_RecordFieldDeclaration.gif | Bin 0 -> 223 bytes .../CreateRecordFields_type_ArrayType.gif | Bin 0 -> 223 bytes .../CreateRecordFields_type_BasicType.gif | Bin 0 -> 223 bytes .../CreateRecordFields_type_BooleanType.gif | Bin 0 -> 223 bytes .../CreateRecordFields_type_IntegerType.gif | Bin 0 -> 223 bytes .../CreateRecordFields_type_NaturalType.gif | Bin 0 -> 223 bytes .../CreateRecordFields_type_QueueType.gif | Bin 0 -> 223 bytes .../CreateRecordFields_type_RangeType.gif | Bin 0 -> 223 bytes .../CreateRecordFields_type_RecordType.gif | Bin 0 -> 223 bytes ...CreateRecordFields_type_ReferencedType.gif | Bin 0 -> 223 bytes .../CreateRecordFields_type_TupleType.gif | Bin 0 -> 223 bytes .../ctool16/CreateRecordFields_type_Type.gif | Bin 0 -> 223 bytes .../CreateRecordFields_type_UnionType.gif | Bin 0 -> 223 bytes .../CreateRecordType_fields_RecordFields.gif | Bin 0 -> 223 bytes ...ateReturnStatement_expression_Addition.gif | Bin 0 -> 223 bytes ...turnStatement_expression_AllExpression.gif | Bin 0 -> 223 bytes ...nStatement_expression_AppendExpression.gif | Bin 0 -> 223 bytes ...ement_expression_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...rnStatement_expression_ArrayExpression.gif | Bin 0 -> 223 bytes ...urnStatement_expression_BooleanLiteral.gif | Bin 0 -> 223 bytes ...rnStatement_expression_ComparisonEqual.gif | Bin 0 -> 223 bytes ...Statement_expression_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ment_expression_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...nStatement_expression_ComparisonLesser.gif | Bin 0 -> 223 bytes ...ement_expression_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...tatement_expression_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...ReturnStatement_expression_Conditional.gif | Bin 0 -> 223 bytes ...ReturnStatement_expression_Conjunction.gif | Bin 0 -> 223 bytes ...ment_expression_ConstructionExpression.gif | Bin 0 -> 223 bytes ...ReturnStatement_expression_Disjunction.gif | Bin 0 -> 223 bytes ...ateReturnStatement_expression_Division.gif | Bin 0 -> 223 bytes ...Statement_expression_EnqueueExpression.gif | Bin 0 -> 223 bytes ...nStatement_expression_ExistsExpression.gif | Bin 0 -> 223 bytes ...eReturnStatement_expression_Expression.gif | Bin 0 -> 223 bytes ...eturnStatement_expression_FalseLiteral.gif | Bin 0 -> 223 bytes ...tement_expression_IdentifierExpression.gif | Bin 0 -> 223 bytes ...ReturnStatement_expression_Implication.gif | Bin 0 -> 223 bytes ...Statement_expression_LiteralExpression.gif | Bin 0 -> 223 bytes ...reateReturnStatement_expression_Modulo.gif | Bin 0 -> 223 bytes ...urnStatement_expression_Multiplication.gif | Bin 0 -> 223 bytes ...urnStatement_expression_NaturalLiteral.gif | Bin 0 -> 223 bytes ...eReturnStatement_expression_Projection.gif | Bin 0 -> 223 bytes ...rnStatement_expression_QueueExpression.gif | Bin 0 -> 223 bytes ...ment_expression_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...nStatement_expression_RecordExpression.gif | Bin 0 -> 223 bytes ...atement_expression_ReferenceExpression.gif | Bin 0 -> 223 bytes ...eturnStatement_expression_Substraction.gif | Bin 0 -> 223 bytes ...ReturnStatement_expression_TrueLiteral.gif | Bin 0 -> 223 bytes ...ement_expression_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ment_expression_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...tement_expression_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...tement_expression_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...atement_expression_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...ement_expression_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...tement_expression_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ent_expression_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...atement_expression_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateSelectStatement_body_AnyPattern.gif | Bin 0 -> 223 bytes ...electStatement_body_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...electStatement_body_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...teSelectStatement_body_AssignStatement.gif | Bin 0 -> 223 bytes ...ateSelectStatement_body_BlockStatement.gif | Bin 0 -> 223 bytes ...eateSelectStatement_body_CaseStatement.gif | Bin 0 -> 223 bytes ...ectStatement_body_ConditionalStatement.gif | Bin 0 -> 223 bytes ...teSelectStatement_body_ConstantPattern.gif | Bin 0 -> 223 bytes ...electStatement_body_ConstructorPattern.gif | Bin 0 -> 223 bytes ...eSelectStatement_body_ForeachStatement.gif | Bin 0 -> 223 bytes ...SelectStatement_body_IdentifierPattern.gif | Bin 0 -> 223 bytes ...ateSelectStatement_body_IntegerPattern.gif | Bin 0 -> 223 bytes ...eateSelectStatement_body_LoopStatement.gif | Bin 0 -> 223 bytes ...eateSelectStatement_body_NullStatement.gif | Bin 0 -> 223 bytes ...CreateSelectStatement_body_OnStatement.gif | Bin 0 -> 223 bytes .../CreateSelectStatement_body_Pattern.gif | Bin 0 -> 223 bytes ...eSelectStatement_body_PatternStatement.gif | Bin 0 -> 223 bytes ...eSelectStatement_body_ReceiveStatement.gif | Bin 0 -> 223 bytes ...lectStatement_body_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...teSelectStatement_body_ReturnStatement.gif | Bin 0 -> 223 bytes ...teSelectStatement_body_SelectStatement.gif | Bin 0 -> 223 bytes ...eateSelectStatement_body_SendStatement.gif | Bin 0 -> 223 bytes .../CreateSelectStatement_body_Statement.gif | Bin 0 -> 223 bytes ...teSelectStatement_body_StatementChoice.gif | Bin 0 -> 223 bytes ...SelectStatement_body_StatementSequence.gif | Bin 0 -> 223 bytes ...teSelectStatement_body_TaggedStatement.gif | Bin 0 -> 223 bytes ...CreateSelectStatement_body_ToStatement.gif | Bin 0 -> 223 bytes ...teSelectStatement_body_UnlessStatement.gif | Bin 0 -> 223 bytes ...eateSelectStatement_body_WaitStatement.gif | Bin 0 -> 223 bytes ...ateSelectStatement_body_WhileStatement.gif | Bin 0 -> 223 bytes ...ectStatement_index_VariableDeclaration.gif | Bin 0 -> 223 bytes .../CreateSelectStatement_type_RangeType.gif | Bin 0 -> 223 bytes .../CreateSendStatement_port_AnyPattern.gif | Bin 0 -> 223 bytes ...eSendStatement_port_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...eateSendStatement_port_ConstantPattern.gif | Bin 0 -> 223 bytes ...eSendStatement_port_ConstructorPattern.gif | Bin 0 -> 223 bytes ...teSendStatement_port_IdentifierPattern.gif | Bin 0 -> 223 bytes ...reateSendStatement_port_IntegerPattern.gif | Bin 0 -> 223 bytes .../CreateSendStatement_port_Pattern.gif | Bin 0 -> 223 bytes ...SendStatement_port_RecordAccessPattern.gif | Bin 0 -> 223 bytes .../CreateSendStatement_values_Addition.gif | Bin 0 -> 223 bytes ...eateSendStatement_values_AllExpression.gif | Bin 0 -> 223 bytes ...eSendStatement_values_AppendExpression.gif | Bin 0 -> 223 bytes ...Statement_values_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...teSendStatement_values_ArrayExpression.gif | Bin 0 -> 223 bytes ...ateSendStatement_values_BooleanLiteral.gif | Bin 0 -> 223 bytes ...teSendStatement_values_ComparisonEqual.gif | Bin 0 -> 223 bytes ...SendStatement_values_ComparisonGreater.gif | Bin 0 -> 223 bytes ...tatement_values_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eSendStatement_values_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Statement_values_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...endStatement_values_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...CreateSendStatement_values_Conditional.gif | Bin 0 -> 223 bytes ...CreateSendStatement_values_Conjunction.gif | Bin 0 -> 223 bytes ...tatement_values_ConstructionExpression.gif | Bin 0 -> 223 bytes ...CreateSendStatement_values_Disjunction.gif | Bin 0 -> 223 bytes .../CreateSendStatement_values_Division.gif | Bin 0 -> 223 bytes ...SendStatement_values_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eSendStatement_values_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateSendStatement_values_Expression.gif | Bin 0 -> 223 bytes ...reateSendStatement_values_FalseLiteral.gif | Bin 0 -> 223 bytes ...dStatement_values_IdentifierExpression.gif | Bin 0 -> 223 bytes ...CreateSendStatement_values_Implication.gif | Bin 0 -> 223 bytes ...SendStatement_values_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateSendStatement_values_Modulo.gif | Bin 0 -> 223 bytes ...ateSendStatement_values_Multiplication.gif | Bin 0 -> 223 bytes ...ateSendStatement_values_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateSendStatement_values_Projection.gif | Bin 0 -> 223 bytes ...teSendStatement_values_QueueExpression.gif | Bin 0 -> 223 bytes ...tatement_values_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eSendStatement_values_RecordExpression.gif | Bin 0 -> 223 bytes ...ndStatement_values_ReferenceExpression.gif | Bin 0 -> 223 bytes ...reateSendStatement_values_Substraction.gif | Bin 0 -> 223 bytes ...CreateSendStatement_values_TrueLiteral.gif | Bin 0 -> 223 bytes ...Statement_values_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...tatement_values_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...dStatement_values_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...dStatement_values_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ndStatement_values_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Statement_values_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...dStatement_values_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...atement_values_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ndStatement_values_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eateStateEvent_subject_EnterStateEvent.gif | Bin 0 -> 223 bytes ...eateStateEvent_subject_LeaveStateEvent.gif | Bin 0 -> 223 bytes .../CreateStateEvent_subject_Observable.gif | Bin 0 -> 223 bytes ...ateEvent_subject_ObservableConjunction.gif | Bin 0 -> 223 bytes ...ateEvent_subject_ObservableDisjunction.gif | Bin 0 -> 223 bytes ...eateStateEvent_subject_ObservableEvent.gif | Bin 0 -> 223 bytes ...ateEvent_subject_ObservableImplication.gif | Bin 0 -> 223 bytes ...eStateEvent_subject_ObservableNegation.gif | Bin 0 -> 223 bytes .../CreateStateEvent_subject_PathEvent.gif | Bin 0 -> 223 bytes .../CreateStateEvent_subject_StateEvent.gif | Bin 0 -> 223 bytes ...eateStatementChoice_choices_AnyPattern.gif | Bin 0 -> 223 bytes ...ementChoice_choices_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...ementChoice_choices_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...tatementChoice_choices_AssignStatement.gif | Bin 0 -> 223 bytes ...StatementChoice_choices_BlockStatement.gif | Bin 0 -> 223 bytes ...eStatementChoice_choices_CaseStatement.gif | Bin 0 -> 223 bytes ...entChoice_choices_ConditionalStatement.gif | Bin 0 -> 223 bytes ...tatementChoice_choices_ConstantPattern.gif | Bin 0 -> 223 bytes ...ementChoice_choices_ConstructorPattern.gif | Bin 0 -> 223 bytes ...atementChoice_choices_ForeachStatement.gif | Bin 0 -> 223 bytes ...tementChoice_choices_IdentifierPattern.gif | Bin 0 -> 223 bytes ...StatementChoice_choices_IntegerPattern.gif | Bin 0 -> 223 bytes ...eStatementChoice_choices_LoopStatement.gif | Bin 0 -> 223 bytes ...eStatementChoice_choices_NullStatement.gif | Bin 0 -> 223 bytes ...ateStatementChoice_choices_OnStatement.gif | Bin 0 -> 223 bytes .../CreateStatementChoice_choices_Pattern.gif | Bin 0 -> 223 bytes ...atementChoice_choices_PatternStatement.gif | Bin 0 -> 223 bytes ...atementChoice_choices_ReceiveStatement.gif | Bin 0 -> 223 bytes ...mentChoice_choices_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...tatementChoice_choices_ReturnStatement.gif | Bin 0 -> 223 bytes ...tatementChoice_choices_SelectStatement.gif | Bin 0 -> 223 bytes ...eStatementChoice_choices_SendStatement.gif | Bin 0 -> 223 bytes ...reateStatementChoice_choices_Statement.gif | Bin 0 -> 223 bytes ...tatementChoice_choices_StatementChoice.gif | Bin 0 -> 223 bytes ...tementChoice_choices_StatementSequence.gif | Bin 0 -> 223 bytes ...tatementChoice_choices_TaggedStatement.gif | Bin 0 -> 223 bytes ...ateStatementChoice_choices_ToStatement.gif | Bin 0 -> 223 bytes ...tatementChoice_choices_UnlessStatement.gif | Bin 0 -> 223 bytes ...eStatementChoice_choices_WaitStatement.gif | Bin 0 -> 223 bytes ...StatementChoice_choices_WhileStatement.gif | Bin 0 -> 223 bytes ...tatementSequence_statements_AnyPattern.gif | Bin 0 -> 223 bytes ...Sequence_statements_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...Sequence_statements_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...entSequence_statements_AssignStatement.gif | Bin 0 -> 223 bytes ...mentSequence_statements_BlockStatement.gif | Bin 0 -> 223 bytes ...ementSequence_statements_CaseStatement.gif | Bin 0 -> 223 bytes ...quence_statements_ConditionalStatement.gif | Bin 0 -> 223 bytes ...entSequence_statements_ConstantPattern.gif | Bin 0 -> 223 bytes ...Sequence_statements_ConstructorPattern.gif | Bin 0 -> 223 bytes ...ntSequence_statements_ForeachStatement.gif | Bin 0 -> 223 bytes ...tSequence_statements_IdentifierPattern.gif | Bin 0 -> 223 bytes ...mentSequence_statements_IntegerPattern.gif | Bin 0 -> 223 bytes ...ementSequence_statements_LoopStatement.gif | Bin 0 -> 223 bytes ...ementSequence_statements_NullStatement.gif | Bin 0 -> 223 bytes ...atementSequence_statements_OnStatement.gif | Bin 0 -> 223 bytes ...teStatementSequence_statements_Pattern.gif | Bin 0 -> 223 bytes ...ntSequence_statements_PatternStatement.gif | Bin 0 -> 223 bytes ...ntSequence_statements_ReceiveStatement.gif | Bin 0 -> 223 bytes ...equence_statements_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...entSequence_statements_ReturnStatement.gif | Bin 0 -> 223 bytes ...entSequence_statements_SelectStatement.gif | Bin 0 -> 223 bytes ...ementSequence_statements_SendStatement.gif | Bin 0 -> 223 bytes ...StatementSequence_statements_Statement.gif | Bin 0 -> 223 bytes ...entSequence_statements_StatementChoice.gif | Bin 0 -> 223 bytes ...tSequence_statements_StatementSequence.gif | Bin 0 -> 223 bytes ...entSequence_statements_TaggedStatement.gif | Bin 0 -> 223 bytes ...atementSequence_statements_ToStatement.gif | Bin 0 -> 223 bytes ...entSequence_statements_UnlessStatement.gif | Bin 0 -> 223 bytes ...ementSequence_statements_WaitStatement.gif | Bin 0 -> 223 bytes ...mentSequence_statements_WhileStatement.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_Addition.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_AllExpression.gif | Bin 0 -> 223 bytes ...eateSubstraction_left_AppendExpression.gif | Bin 0 -> 223 bytes ...ubstraction_left_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...reateSubstraction_left_ArrayExpression.gif | Bin 0 -> 223 bytes ...CreateSubstraction_left_BooleanLiteral.gif | Bin 0 -> 223 bytes ...reateSubstraction_left_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ateSubstraction_left_ComparisonGreater.gif | Bin 0 -> 223 bytes ...bstraction_left_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...eateSubstraction_left_ComparisonLesser.gif | Bin 0 -> 223 bytes ...ubstraction_left_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...teSubstraction_left_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_Conditional.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_Conjunction.gif | Bin 0 -> 223 bytes ...bstraction_left_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_Disjunction.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_Division.gif | Bin 0 -> 223 bytes ...ateSubstraction_left_EnqueueExpression.gif | Bin 0 -> 223 bytes ...eateSubstraction_left_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_Expression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_FalseLiteral.gif | Bin 0 -> 223 bytes ...Substraction_left_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_Implication.gif | Bin 0 -> 223 bytes ...ateSubstraction_left_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_Modulo.gif | Bin 0 -> 223 bytes ...CreateSubstraction_left_Multiplication.gif | Bin 0 -> 223 bytes ...CreateSubstraction_left_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_Projection.gif | Bin 0 -> 223 bytes ...reateSubstraction_left_QueueExpression.gif | Bin 0 -> 223 bytes ...bstraction_left_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...eateSubstraction_left_RecordExpression.gif | Bin 0 -> 223 bytes ...eSubstraction_left_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_Substraction.gif | Bin 0 -> 223 bytes .../CreateSubstraction_left_TrueLiteral.gif | Bin 0 -> 223 bytes ...ubstraction_left_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...bstraction_left_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...Substraction_left_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...Substraction_left_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...eSubstraction_left_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...ubstraction_left_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...Substraction_left_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...straction_left_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...eSubstraction_left_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_Addition.gif | Bin 0 -> 223 bytes ...CreateSubstraction_right_AllExpression.gif | Bin 0 -> 223 bytes ...ateSubstraction_right_AppendExpression.gif | Bin 0 -> 223 bytes ...bstraction_right_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...eateSubstraction_right_ArrayExpression.gif | Bin 0 -> 223 bytes ...reateSubstraction_right_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eateSubstraction_right_ComparisonEqual.gif | Bin 0 -> 223 bytes ...teSubstraction_right_ComparisonGreater.gif | Bin 0 -> 223 bytes ...straction_right_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ateSubstraction_right_ComparisonLesser.gif | Bin 0 -> 223 bytes ...bstraction_right_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...eSubstraction_right_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_Conditional.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_Conjunction.gif | Bin 0 -> 223 bytes ...straction_right_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_Disjunction.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_Division.gif | Bin 0 -> 223 bytes ...teSubstraction_right_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ateSubstraction_right_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_Expression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_FalseLiteral.gif | Bin 0 -> 223 bytes ...ubstraction_right_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_Implication.gif | Bin 0 -> 223 bytes ...teSubstraction_right_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_Modulo.gif | Bin 0 -> 223 bytes ...reateSubstraction_right_Multiplication.gif | Bin 0 -> 223 bytes ...reateSubstraction_right_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_Projection.gif | Bin 0 -> 223 bytes ...eateSubstraction_right_QueueExpression.gif | Bin 0 -> 223 bytes ...straction_right_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ateSubstraction_right_RecordExpression.gif | Bin 0 -> 223 bytes ...Substraction_right_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_Substraction.gif | Bin 0 -> 223 bytes .../CreateSubstraction_right_TrueLiteral.gif | Bin 0 -> 223 bytes ...bstraction_right_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...straction_right_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...ubstraction_right_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...ubstraction_right_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...Substraction_right_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...bstraction_right_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...ubstraction_right_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...traction_right_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...Substraction_right_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../CreateTransition_action_AnyPattern.gif | Bin 0 -> 223 bytes ...teTransition_action_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...teTransition_action_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...reateTransition_action_AssignStatement.gif | Bin 0 -> 223 bytes ...CreateTransition_action_BlockStatement.gif | Bin 0 -> 223 bytes .../CreateTransition_action_CaseStatement.gif | Bin 0 -> 223 bytes ...Transition_action_ConditionalStatement.gif | Bin 0 -> 223 bytes ...reateTransition_action_ConstantPattern.gif | Bin 0 -> 223 bytes ...teTransition_action_ConstructorPattern.gif | Bin 0 -> 223 bytes ...eateTransition_action_ForeachStatement.gif | Bin 0 -> 223 bytes ...ateTransition_action_IdentifierPattern.gif | Bin 0 -> 223 bytes ...CreateTransition_action_IntegerPattern.gif | Bin 0 -> 223 bytes .../CreateTransition_action_LoopStatement.gif | Bin 0 -> 223 bytes .../CreateTransition_action_NullStatement.gif | Bin 0 -> 223 bytes .../CreateTransition_action_OnStatement.gif | Bin 0 -> 223 bytes .../CreateTransition_action_Pattern.gif | Bin 0 -> 223 bytes ...eateTransition_action_PatternStatement.gif | Bin 0 -> 223 bytes ...eateTransition_action_ReceiveStatement.gif | Bin 0 -> 223 bytes ...eTransition_action_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...reateTransition_action_ReturnStatement.gif | Bin 0 -> 223 bytes ...reateTransition_action_SelectStatement.gif | Bin 0 -> 223 bytes .../CreateTransition_action_SendStatement.gif | Bin 0 -> 223 bytes .../CreateTransition_action_Statement.gif | Bin 0 -> 223 bytes ...reateTransition_action_StatementChoice.gif | Bin 0 -> 223 bytes ...ateTransition_action_StatementSequence.gif | Bin 0 -> 223 bytes ...reateTransition_action_TaggedStatement.gif | Bin 0 -> 223 bytes .../CreateTransition_action_ToStatement.gif | Bin 0 -> 223 bytes ...reateTransition_action_UnlessStatement.gif | Bin 0 -> 223 bytes .../CreateTransition_action_WaitStatement.gif | Bin 0 -> 223 bytes ...CreateTransition_action_WhileStatement.gif | Bin 0 -> 223 bytes ...eateTransition_source_TransitionSource.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_ArrayType.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_BasicType.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_BooleanType.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_IntegerType.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_NaturalType.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_QueueType.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_RangeType.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_RecordType.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_ReferencedType.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_TupleType.gif | Bin 0 -> 223 bytes .../ctool16/CreateTupleType_types_Type.gif | Bin 0 -> 223 bytes .../CreateTupleType_types_UnionType.gif | Bin 0 -> 223 bytes .../CreateTypeDeclaration_value_ArrayType.gif | Bin 0 -> 223 bytes .../CreateTypeDeclaration_value_BasicType.gif | Bin 0 -> 223 bytes ...reateTypeDeclaration_value_BooleanType.gif | Bin 0 -> 223 bytes ...reateTypeDeclaration_value_IntegerType.gif | Bin 0 -> 223 bytes ...reateTypeDeclaration_value_NaturalType.gif | Bin 0 -> 223 bytes .../CreateTypeDeclaration_value_QueueType.gif | Bin 0 -> 223 bytes .../CreateTypeDeclaration_value_RangeType.gif | Bin 0 -> 223 bytes ...CreateTypeDeclaration_value_RecordType.gif | Bin 0 -> 223 bytes ...teTypeDeclaration_value_ReferencedType.gif | Bin 0 -> 223 bytes .../CreateTypeDeclaration_value_TupleType.gif | Bin 0 -> 223 bytes .../CreateTypeDeclaration_value_Type.gif | Bin 0 -> 223 bytes .../CreateTypeDeclaration_value_UnionType.gif | Bin 0 -> 223 bytes ...teUnaryCoerceExpression_child_Addition.gif | Bin 0 -> 223 bytes ...ryCoerceExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...oerceExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...CoerceExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...yCoerceExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...CoerceExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...erceExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...oerceExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...rceExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...naryCoerceExpression_child_Conditional.gif | Bin 0 -> 223 bytes ...naryCoerceExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...naryCoerceExpression_child_Disjunction.gif | Bin 0 -> 223 bytes ...teUnaryCoerceExpression_child_Division.gif | Bin 0 -> 223 bytes ...erceExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...oerceExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes ...UnaryCoerceExpression_child_Expression.gif | Bin 0 -> 223 bytes ...aryCoerceExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...eExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...naryCoerceExpression_child_Implication.gif | Bin 0 -> 223 bytes ...erceExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes ...eateUnaryCoerceExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...yCoerceExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...yCoerceExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes ...UnaryCoerceExpression_child_Projection.gif | Bin 0 -> 223 bytes ...CoerceExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...oerceExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...ceExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...aryCoerceExpression_child_Substraction.gif | Bin 0 -> 223 bytes ...naryCoerceExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ceExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ceExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eUnaryDeQueueExpression_child_Addition.gif | Bin 0 -> 223 bytes ...yDeQueueExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...QueueExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...eQueueExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...DeQueueExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eQueueExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ueueExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...QueueExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...eueExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...aryDeQueueExpression_child_Conditional.gif | Bin 0 -> 223 bytes ...aryDeQueueExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...aryDeQueueExpression_child_Disjunction.gif | Bin 0 -> 223 bytes ...eUnaryDeQueueExpression_child_Division.gif | Bin 0 -> 223 bytes ...ueueExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...QueueExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes ...naryDeQueueExpression_child_Expression.gif | Bin 0 -> 223 bytes ...ryDeQueueExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...eExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...aryDeQueueExpression_child_Implication.gif | Bin 0 -> 223 bytes ...ueueExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes ...ateUnaryDeQueueExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...DeQueueExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...DeQueueExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes ...naryDeQueueExpression_child_Projection.gif | Bin 0 -> 223 bytes ...eQueueExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...QueueExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...ueExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ryDeQueueExpression_child_Substraction.gif | Bin 0 -> 223 bytes ...aryDeQueueExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...eExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...eExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ueExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...eExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ueExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...ateUnaryEmptyExpression_child_Addition.gif | Bin 0 -> 223 bytes ...aryEmptyExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...EmptyExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...yEmptyExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...ryEmptyExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...yEmptyExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...mptyExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...EmptyExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ptyExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...UnaryEmptyExpression_child_Conditional.gif | Bin 0 -> 223 bytes ...UnaryEmptyExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...UnaryEmptyExpression_child_Disjunction.gif | Bin 0 -> 223 bytes ...ateUnaryEmptyExpression_child_Division.gif | Bin 0 -> 223 bytes ...mptyExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...EmptyExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes ...eUnaryEmptyExpression_child_Expression.gif | Bin 0 -> 223 bytes ...naryEmptyExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...yExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...UnaryEmptyExpression_child_Implication.gif | Bin 0 -> 223 bytes ...mptyExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes ...reateUnaryEmptyExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...ryEmptyExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...ryEmptyExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes ...eUnaryEmptyExpression_child_Projection.gif | Bin 0 -> 223 bytes ...yEmptyExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...EmptyExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...tyExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...naryEmptyExpression_child_Substraction.gif | Bin 0 -> 223 bytes ...UnaryEmptyExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...yExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...yExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...tyExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...yExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...tyExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...ateUnaryFirstExpression_child_Addition.gif | Bin 0 -> 223 bytes ...aryFirstExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...FirstExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...yFirstExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...ryFirstExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...yFirstExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...irstExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...FirstExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...rstExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...UnaryFirstExpression_child_Conditional.gif | Bin 0 -> 223 bytes ...UnaryFirstExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...UnaryFirstExpression_child_Disjunction.gif | Bin 0 -> 223 bytes ...ateUnaryFirstExpression_child_Division.gif | Bin 0 -> 223 bytes ...irstExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...FirstExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes ...eUnaryFirstExpression_child_Expression.gif | Bin 0 -> 223 bytes ...naryFirstExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...tExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...UnaryFirstExpression_child_Implication.gif | Bin 0 -> 223 bytes ...irstExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes ...reateUnaryFirstExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...ryFirstExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...ryFirstExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes ...eUnaryFirstExpression_child_Projection.gif | Bin 0 -> 223 bytes ...yFirstExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...FirstExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...stExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...naryFirstExpression_child_Substraction.gif | Bin 0 -> 223 bytes ...UnaryFirstExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...tExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...tExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...stExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...tExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...stExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eateUnaryFullExpression_child_Addition.gif | Bin 0 -> 223 bytes ...naryFullExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...yFullExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ryFullExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...aryFullExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ryFullExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...FullExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...yFullExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ullExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eUnaryFullExpression_child_Conditional.gif | Bin 0 -> 223 bytes ...eUnaryFullExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eUnaryFullExpression_child_Disjunction.gif | Bin 0 -> 223 bytes ...eateUnaryFullExpression_child_Division.gif | Bin 0 -> 223 bytes ...FullExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...yFullExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes ...teUnaryFullExpression_child_Expression.gif | Bin 0 -> 223 bytes ...UnaryFullExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...lExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eUnaryFullExpression_child_Implication.gif | Bin 0 -> 223 bytes ...FullExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes ...CreateUnaryFullExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...aryFullExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...aryFullExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes ...teUnaryFullExpression_child_Projection.gif | Bin 0 -> 223 bytes ...ryFullExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...yFullExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...llExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...UnaryFullExpression_child_Substraction.gif | Bin 0 -> 223 bytes ...eUnaryFullExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...lExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...lExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...llExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...lExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...llExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...teUnaryLengthExpression_child_Addition.gif | Bin 0 -> 223 bytes ...ryLengthExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...engthExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...LengthExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...yLengthExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...LengthExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...ngthExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...engthExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...gthExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...naryLengthExpression_child_Conditional.gif | Bin 0 -> 223 bytes ...naryLengthExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...naryLengthExpression_child_Disjunction.gif | Bin 0 -> 223 bytes ...teUnaryLengthExpression_child_Division.gif | Bin 0 -> 223 bytes ...ngthExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...engthExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes ...UnaryLengthExpression_child_Expression.gif | Bin 0 -> 223 bytes ...aryLengthExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...hExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...naryLengthExpression_child_Implication.gif | Bin 0 -> 223 bytes ...ngthExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes ...eateUnaryLengthExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...yLengthExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...yLengthExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes ...UnaryLengthExpression_child_Projection.gif | Bin 0 -> 223 bytes ...LengthExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...engthExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...thExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...aryLengthExpression_child_Substraction.gif | Bin 0 -> 223 bytes ...naryLengthExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...hExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...hExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...thExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...hExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...thExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...ateUnaryMinusExpression_child_Addition.gif | Bin 0 -> 223 bytes ...aryMinusExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...MinusExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...yMinusExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...ryMinusExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...yMinusExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...inusExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...MinusExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...nusExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...UnaryMinusExpression_child_Conditional.gif | Bin 0 -> 223 bytes ...UnaryMinusExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...UnaryMinusExpression_child_Disjunction.gif | Bin 0 -> 223 bytes ...ateUnaryMinusExpression_child_Division.gif | Bin 0 -> 223 bytes ...inusExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...MinusExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes ...eUnaryMinusExpression_child_Expression.gif | Bin 0 -> 223 bytes ...naryMinusExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...sExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...UnaryMinusExpression_child_Implication.gif | Bin 0 -> 223 bytes ...inusExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes ...reateUnaryMinusExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...ryMinusExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...ryMinusExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes ...eUnaryMinusExpression_child_Projection.gif | Bin 0 -> 223 bytes ...yMinusExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...MinusExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...usExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...naryMinusExpression_child_Substraction.gif | Bin 0 -> 223 bytes ...UnaryMinusExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...usExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...usExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...UnaryNegationExpression_child_Addition.gif | Bin 0 -> 223 bytes ...NegationExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...ationExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...gationExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...egationExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...gationExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...tionExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ationExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...ionExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...ryNegationExpression_child_Conditional.gif | Bin 0 -> 223 bytes ...ryNegationExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...ryNegationExpression_child_Disjunction.gif | Bin 0 -> 223 bytes ...UnaryNegationExpression_child_Division.gif | Bin 0 -> 223 bytes ...tionExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ationExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes ...aryNegationExpression_child_Expression.gif | Bin 0 -> 223 bytes ...yNegationExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...nExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...ryNegationExpression_child_Implication.gif | Bin 0 -> 223 bytes ...tionExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes ...teUnaryNegationExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...egationExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...egationExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes ...aryNegationExpression_child_Projection.gif | Bin 0 -> 223 bytes ...gationExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ationExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...onExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...yNegationExpression_child_Substraction.gif | Bin 0 -> 223 bytes ...ryNegationExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...nExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...nExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...onExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...nExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...onExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eateUnaryPlusExpression_child_Addition.gif | Bin 0 -> 223 bytes ...naryPlusExpression_child_AllExpression.gif | Bin 0 -> 223 bytes ...yPlusExpression_child_AppendExpression.gif | Bin 0 -> 223 bytes ...Expression_child_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ryPlusExpression_child_ArrayExpression.gif | Bin 0 -> 223 bytes ...aryPlusExpression_child_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ryPlusExpression_child_ComparisonEqual.gif | Bin 0 -> 223 bytes ...PlusExpression_child_ComparisonGreater.gif | Bin 0 -> 223 bytes ...xpression_child_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...yPlusExpression_child_ComparisonLesser.gif | Bin 0 -> 223 bytes ...Expression_child_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...lusExpression_child_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...eUnaryPlusExpression_child_Conditional.gif | Bin 0 -> 223 bytes ...eUnaryPlusExpression_child_Conjunction.gif | Bin 0 -> 223 bytes ...xpression_child_ConstructionExpression.gif | Bin 0 -> 223 bytes ...eUnaryPlusExpression_child_Disjunction.gif | Bin 0 -> 223 bytes ...eateUnaryPlusExpression_child_Division.gif | Bin 0 -> 223 bytes ...PlusExpression_child_EnqueueExpression.gif | Bin 0 -> 223 bytes ...yPlusExpression_child_ExistsExpression.gif | Bin 0 -> 223 bytes ...teUnaryPlusExpression_child_Expression.gif | Bin 0 -> 223 bytes ...UnaryPlusExpression_child_FalseLiteral.gif | Bin 0 -> 223 bytes ...sExpression_child_IdentifierExpression.gif | Bin 0 -> 223 bytes ...eUnaryPlusExpression_child_Implication.gif | Bin 0 -> 223 bytes ...PlusExpression_child_LiteralExpression.gif | Bin 0 -> 223 bytes ...CreateUnaryPlusExpression_child_Modulo.gif | Bin 0 -> 223 bytes ...aryPlusExpression_child_Multiplication.gif | Bin 0 -> 223 bytes ...aryPlusExpression_child_NaturalLiteral.gif | Bin 0 -> 223 bytes ...teUnaryPlusExpression_child_Projection.gif | Bin 0 -> 223 bytes ...ryPlusExpression_child_QueueExpression.gif | Bin 0 -> 223 bytes ...xpression_child_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...yPlusExpression_child_RecordExpression.gif | Bin 0 -> 223 bytes ...usExpression_child_ReferenceExpression.gif | Bin 0 -> 223 bytes ...UnaryPlusExpression_child_Substraction.gif | Bin 0 -> 223 bytes ...eUnaryPlusExpression_child_TrueLiteral.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...xpression_child_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...usExpression_child_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...Expression_child_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...sExpression_child_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...pression_child_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...usExpression_child_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...eateUnionTags_tags_UnionTagDeclaration.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_ArrayType.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_BasicType.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_BooleanType.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_IntegerType.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_NaturalType.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_QueueType.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_RangeType.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_RecordType.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_ReferencedType.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_TupleType.gif | Bin 0 -> 223 bytes .../ctool16/CreateUnionTags_type_Type.gif | Bin 0 -> 223 bytes .../CreateUnionTags_type_UnionType.gif | Bin 0 -> 223 bytes .../CreateUnionType_tags_UnionTags.gif | Bin 0 -> 223 bytes ...teUnlessStatement_followers_AnyPattern.gif | Bin 0 -> 223 bytes ...Statement_followers_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...Statement_followers_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...essStatement_followers_AssignStatement.gif | Bin 0 -> 223 bytes ...lessStatement_followers_BlockStatement.gif | Bin 0 -> 223 bytes ...nlessStatement_followers_CaseStatement.gif | Bin 0 -> 223 bytes ...atement_followers_ConditionalStatement.gif | Bin 0 -> 223 bytes ...essStatement_followers_ConstantPattern.gif | Bin 0 -> 223 bytes ...Statement_followers_ConstructorPattern.gif | Bin 0 -> 223 bytes ...ssStatement_followers_ForeachStatement.gif | Bin 0 -> 223 bytes ...sStatement_followers_IdentifierPattern.gif | Bin 0 -> 223 bytes ...lessStatement_followers_IntegerPattern.gif | Bin 0 -> 223 bytes ...nlessStatement_followers_LoopStatement.gif | Bin 0 -> 223 bytes ...nlessStatement_followers_NullStatement.gif | Bin 0 -> 223 bytes ...eUnlessStatement_followers_OnStatement.gif | Bin 0 -> 223 bytes ...reateUnlessStatement_followers_Pattern.gif | Bin 0 -> 223 bytes ...ssStatement_followers_PatternStatement.gif | Bin 0 -> 223 bytes ...ssStatement_followers_ReceiveStatement.gif | Bin 0 -> 223 bytes ...tatement_followers_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...essStatement_followers_ReturnStatement.gif | Bin 0 -> 223 bytes ...essStatement_followers_SelectStatement.gif | Bin 0 -> 223 bytes ...nlessStatement_followers_SendStatement.gif | Bin 0 -> 223 bytes ...ateUnlessStatement_followers_Statement.gif | Bin 0 -> 223 bytes ...essStatement_followers_StatementChoice.gif | Bin 0 -> 223 bytes ...sStatement_followers_StatementSequence.gif | Bin 0 -> 223 bytes ...essStatement_followers_TaggedStatement.gif | Bin 0 -> 223 bytes ...eUnlessStatement_followers_ToStatement.gif | Bin 0 -> 223 bytes ...essStatement_followers_UnlessStatement.gif | Bin 0 -> 223 bytes ...nlessStatement_followers_WaitStatement.gif | Bin 0 -> 223 bytes ...lessStatement_followers_WhileStatement.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_Addition.gif | Bin 0 -> 223 bytes ...CreateValueSubject_value_AllExpression.gif | Bin 0 -> 223 bytes ...ateValueSubject_value_AppendExpression.gif | Bin 0 -> 223 bytes ...lueSubject_value_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...eateValueSubject_value_ArrayExpression.gif | Bin 0 -> 223 bytes ...reateValueSubject_value_BooleanLiteral.gif | Bin 0 -> 223 bytes ...eateValueSubject_value_ComparisonEqual.gif | Bin 0 -> 223 bytes ...teValueSubject_value_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ueSubject_value_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...ateValueSubject_value_ComparisonLesser.gif | Bin 0 -> 223 bytes ...lueSubject_value_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...eValueSubject_value_ComparisonNotEqual.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_Conditional.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_Conjunction.gif | Bin 0 -> 223 bytes ...ueSubject_value_ConstructionExpression.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_Disjunction.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_Division.gif | Bin 0 -> 223 bytes ...teValueSubject_value_EnqueueExpression.gif | Bin 0 -> 223 bytes ...ateValueSubject_value_ExistsExpression.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_Expression.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_FalseLiteral.gif | Bin 0 -> 223 bytes ...alueSubject_value_IdentifierExpression.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_Implication.gif | Bin 0 -> 223 bytes ...teValueSubject_value_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_Modulo.gif | Bin 0 -> 223 bytes ...reateValueSubject_value_Multiplication.gif | Bin 0 -> 223 bytes ...reateValueSubject_value_NaturalLiteral.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_Projection.gif | Bin 0 -> 223 bytes ...eateValueSubject_value_QueueExpression.gif | Bin 0 -> 223 bytes ...ueSubject_value_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...ateValueSubject_value_RecordExpression.gif | Bin 0 -> 223 bytes ...ValueSubject_value_ReferenceExpression.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_Substraction.gif | Bin 0 -> 223 bytes .../CreateValueSubject_value_TrueLiteral.gif | Bin 0 -> 223 bytes ...lueSubject_value_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ueSubject_value_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...alueSubject_value_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...alueSubject_value_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...ValueSubject_value_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...lueSubject_value_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...alueSubject_value_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...eSubject_value_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...ValueSubject_value_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...ateVariablesDeclaration_type_ArrayType.gif | Bin 0 -> 223 bytes ...ateVariablesDeclaration_type_BasicType.gif | Bin 0 -> 223 bytes ...eVariablesDeclaration_type_BooleanType.gif | Bin 0 -> 223 bytes ...eVariablesDeclaration_type_IntegerType.gif | Bin 0 -> 223 bytes ...eVariablesDeclaration_type_NaturalType.gif | Bin 0 -> 223 bytes ...ateVariablesDeclaration_type_QueueType.gif | Bin 0 -> 223 bytes ...ateVariablesDeclaration_type_RangeType.gif | Bin 0 -> 223 bytes ...teVariablesDeclaration_type_RecordType.gif | Bin 0 -> 223 bytes ...riablesDeclaration_type_ReferencedType.gif | Bin 0 -> 223 bytes ...ateVariablesDeclaration_type_TupleType.gif | Bin 0 -> 223 bytes .../CreateVariablesDeclaration_type_Type.gif | Bin 0 -> 223 bytes ...ateVariablesDeclaration_type_UnionType.gif | Bin 0 -> 223 bytes ...ateVariablesDeclaration_value_Addition.gif | Bin 0 -> 223 bytes ...riablesDeclaration_value_AllExpression.gif | Bin 0 -> 223 bytes ...blesDeclaration_value_AppendExpression.gif | Bin 0 -> 223 bytes ...eclaration_value_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ablesDeclaration_value_ArrayExpression.gif | Bin 0 -> 223 bytes ...iablesDeclaration_value_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ablesDeclaration_value_ComparisonEqual.gif | Bin 0 -> 223 bytes ...lesDeclaration_value_ComparisonGreater.gif | Bin 0 -> 223 bytes ...claration_value_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...blesDeclaration_value_ComparisonLesser.gif | Bin 0 -> 223 bytes ...eclaration_value_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...esDeclaration_value_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...VariablesDeclaration_value_Conditional.gif | Bin 0 -> 223 bytes ...VariablesDeclaration_value_Conjunction.gif | Bin 0 -> 223 bytes ...claration_value_ConstructionExpression.gif | Bin 0 -> 223 bytes ...VariablesDeclaration_value_Disjunction.gif | Bin 0 -> 223 bytes ...ateVariablesDeclaration_value_Division.gif | Bin 0 -> 223 bytes ...lesDeclaration_value_EnqueueExpression.gif | Bin 0 -> 223 bytes ...blesDeclaration_value_ExistsExpression.gif | Bin 0 -> 223 bytes ...eVariablesDeclaration_value_Expression.gif | Bin 0 -> 223 bytes ...ariablesDeclaration_value_FalseLiteral.gif | Bin 0 -> 223 bytes ...Declaration_value_IdentifierExpression.gif | Bin 0 -> 223 bytes ...VariablesDeclaration_value_Implication.gif | Bin 0 -> 223 bytes ...lesDeclaration_value_LiteralExpression.gif | Bin 0 -> 223 bytes ...reateVariablesDeclaration_value_Modulo.gif | Bin 0 -> 223 bytes ...iablesDeclaration_value_Multiplication.gif | Bin 0 -> 223 bytes ...iablesDeclaration_value_NaturalLiteral.gif | Bin 0 -> 223 bytes ...eVariablesDeclaration_value_Projection.gif | Bin 0 -> 223 bytes ...ablesDeclaration_value_QueueExpression.gif | Bin 0 -> 223 bytes ...claration_value_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...blesDeclaration_value_RecordExpression.gif | Bin 0 -> 223 bytes ...sDeclaration_value_ReferenceExpression.gif | Bin 0 -> 223 bytes ...ariablesDeclaration_value_Substraction.gif | Bin 0 -> 223 bytes ...VariablesDeclaration_value_TrueLiteral.gif | Bin 0 -> 223 bytes ...eclaration_value_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...claration_value_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...Declaration_value_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...Declaration_value_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...sDeclaration_value_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...eclaration_value_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...Declaration_value_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...laration_value_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...sDeclaration_value_UnaryPlusExpression.gif | Bin 0 -> 223 bytes ...laration_variables_VariableDeclaration.gif | Bin 0 -> 223 bytes ...teWaitStatement_left_DecimalLowerBound.gif | Bin 0 -> 223 bytes .../CreateWaitStatement_left_LowerBound.gif | Bin 0 -> 223 bytes ...teWaitStatement_left_NaturalLowerBound.gif | Bin 0 -> 223 bytes ...eWaitStatement_left_VariableLowerBound.gif | Bin 0 -> 223 bytes ...eWaitStatement_right_DecimalUpperBound.gif | Bin 0 -> 223 bytes ...WaitStatement_right_InfiniteUpperBound.gif | Bin 0 -> 223 bytes ...eWaitStatement_right_NaturalUpperBound.gif | Bin 0 -> 223 bytes .../CreateWaitStatement_right_UpperBound.gif | Bin 0 -> 223 bytes ...WaitStatement_right_VariableUpperBound.gif | Bin 0 -> 223 bytes .../CreateWhileStatement_body_AnyPattern.gif | Bin 0 -> 223 bytes ...WhileStatement_body_ArrayAccessPattern.gif | Bin 0 -> 223 bytes ...WhileStatement_body_AssignAnyStatement.gif | Bin 0 -> 223 bytes ...ateWhileStatement_body_AssignStatement.gif | Bin 0 -> 223 bytes ...eateWhileStatement_body_BlockStatement.gif | Bin 0 -> 223 bytes ...reateWhileStatement_body_CaseStatement.gif | Bin 0 -> 223 bytes ...ileStatement_body_ConditionalStatement.gif | Bin 0 -> 223 bytes ...ateWhileStatement_body_ConstantPattern.gif | Bin 0 -> 223 bytes ...WhileStatement_body_ConstructorPattern.gif | Bin 0 -> 223 bytes ...teWhileStatement_body_ForeachStatement.gif | Bin 0 -> 223 bytes ...eWhileStatement_body_IdentifierPattern.gif | Bin 0 -> 223 bytes ...eateWhileStatement_body_IntegerPattern.gif | Bin 0 -> 223 bytes ...reateWhileStatement_body_LoopStatement.gif | Bin 0 -> 223 bytes ...reateWhileStatement_body_NullStatement.gif | Bin 0 -> 223 bytes .../CreateWhileStatement_body_OnStatement.gif | Bin 0 -> 223 bytes .../CreateWhileStatement_body_Pattern.gif | Bin 0 -> 223 bytes ...teWhileStatement_body_PatternStatement.gif | Bin 0 -> 223 bytes ...teWhileStatement_body_ReceiveStatement.gif | Bin 0 -> 223 bytes ...hileStatement_body_RecordAccessPattern.gif | Bin 0 -> 223 bytes ...ateWhileStatement_body_ReturnStatement.gif | Bin 0 -> 223 bytes ...ateWhileStatement_body_SelectStatement.gif | Bin 0 -> 223 bytes ...reateWhileStatement_body_SendStatement.gif | Bin 0 -> 223 bytes .../CreateWhileStatement_body_Statement.gif | Bin 0 -> 223 bytes ...ateWhileStatement_body_StatementChoice.gif | Bin 0 -> 223 bytes ...eWhileStatement_body_StatementSequence.gif | Bin 0 -> 223 bytes ...ateWhileStatement_body_TaggedStatement.gif | Bin 0 -> 223 bytes .../CreateWhileStatement_body_ToStatement.gif | Bin 0 -> 223 bytes ...ateWhileStatement_body_UnlessStatement.gif | Bin 0 -> 223 bytes ...reateWhileStatement_body_WaitStatement.gif | Bin 0 -> 223 bytes ...eateWhileStatement_body_WhileStatement.gif | Bin 0 -> 223 bytes ...reateWhileStatement_condition_Addition.gif | Bin 0 -> 223 bytes ...WhileStatement_condition_AllExpression.gif | Bin 0 -> 223 bytes ...leStatement_condition_AppendExpression.gif | Bin 0 -> 223 bytes ...tement_condition_ArrayAccessExpression.gif | Bin 0 -> 223 bytes ...ileStatement_condition_ArrayExpression.gif | Bin 0 -> 223 bytes ...hileStatement_condition_BooleanLiteral.gif | Bin 0 -> 223 bytes ...ileStatement_condition_ComparisonEqual.gif | Bin 0 -> 223 bytes ...eStatement_condition_ComparisonGreater.gif | Bin 0 -> 223 bytes ...ement_condition_ComparisonGreaterEqual.gif | Bin 0 -> 223 bytes ...leStatement_condition_ComparisonLesser.gif | Bin 0 -> 223 bytes ...tement_condition_ComparisonLesserEqual.gif | Bin 0 -> 223 bytes ...Statement_condition_ComparisonNotEqual.gif | Bin 0 -> 223 bytes ...teWhileStatement_condition_Conditional.gif | Bin 0 -> 223 bytes ...teWhileStatement_condition_Conjunction.gif | Bin 0 -> 223 bytes ...ement_condition_ConstructionExpression.gif | Bin 0 -> 223 bytes ...teWhileStatement_condition_Disjunction.gif | Bin 0 -> 223 bytes ...reateWhileStatement_condition_Division.gif | Bin 0 -> 223 bytes ...eStatement_condition_EnqueueExpression.gif | Bin 0 -> 223 bytes ...leStatement_condition_ExistsExpression.gif | Bin 0 -> 223 bytes ...ateWhileStatement_condition_Expression.gif | Bin 0 -> 223 bytes ...eWhileStatement_condition_FalseLiteral.gif | Bin 0 -> 223 bytes ...atement_condition_IdentifierExpression.gif | Bin 0 -> 223 bytes ...teWhileStatement_condition_Implication.gif | Bin 0 -> 223 bytes ...eStatement_condition_LiteralExpression.gif | Bin 0 -> 223 bytes .../CreateWhileStatement_condition_Modulo.gif | Bin 0 -> 223 bytes ...hileStatement_condition_Multiplication.gif | Bin 0 -> 223 bytes ...hileStatement_condition_NaturalLiteral.gif | Bin 0 -> 223 bytes ...ateWhileStatement_condition_Projection.gif | Bin 0 -> 223 bytes ...ileStatement_condition_QueueExpression.gif | Bin 0 -> 223 bytes ...ement_condition_RecordAccessExpression.gif | Bin 0 -> 223 bytes ...leStatement_condition_RecordExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_ReferenceExpression.gif | Bin 0 -> 223 bytes ...eWhileStatement_condition_Substraction.gif | Bin 0 -> 223 bytes ...teWhileStatement_condition_TrueLiteral.gif | Bin 0 -> 223 bytes ...tement_condition_UnaryCoerceExpression.gif | Bin 0 -> 223 bytes ...ement_condition_UnaryDeQueueExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryEmptyExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryFirstExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_UnaryFullExpression.gif | Bin 0 -> 223 bytes ...tement_condition_UnaryLengthExpression.gif | Bin 0 -> 223 bytes ...atement_condition_UnaryMinusExpression.gif | Bin 0 -> 223 bytes ...ment_condition_UnaryNegationExpression.gif | Bin 0 -> 223 bytes ...tatement_condition_UnaryPlusExpression.gif | Bin 0 -> 223 bytes .../icons/full/obj16/AbsencePattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Addition.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AllExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AllProperty.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AlwaysPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AnyPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AppendExpression.gif | Bin 0 -> 129 bytes .../full/obj16/ArrayAccessExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ArrayAccessPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ArrayExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ArrayType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AssignAnyStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AssignStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/BasicType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Block.gif | Bin 0 -> 129 bytes .../icons/full/obj16/BlockStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/BooleanLiteral.gif | Bin 0 -> 129 bytes .../icons/full/obj16/BooleanType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/BoundDeclarationUse.gif | Bin 0 -> 129 bytes .../icons/full/obj16/CaseStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ChannelDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ChannelType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ComparisonEqual.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ComparisonGreater.gif | Bin 0 -> 129 bytes .../full/obj16/ComparisonGreaterEqual.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ComparisonLesser.gif | Bin 0 -> 129 bytes .../full/obj16/ComparisonLesserEqual.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ComparisonNotEqual.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ComponentDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ComponentInstance.gif | Bin 0 -> 129 bytes .../icons/full/obj16/CompositeBlock.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Composition.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Conditional.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ConditionalStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Conjunction.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ConstantDeclaration.gif | Bin 0 -> 129 bytes .../full/obj16/ConstantDeclarationUse.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ConstantPattern.gif | Bin 0 -> 129 bytes .../full/obj16/ConstructionExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ConstructorPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/DeadlockFreePattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/DecimalLowerBound.gif | Bin 0 -> 129 bytes .../icons/full/obj16/DecimalUpperBound.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Declaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Disjunction.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Division.gif | Bin 0 -> 129 bytes .../icons/full/obj16/EnqueueExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/EnterStateEvent.gif | Bin 0 -> 129 bytes .../icons/full/obj16/EventSubject.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ExistsExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ExistsProperty.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Expression.gif | Bin 0 -> 129 bytes .../full/obj16/ExpressionDeclarationUse.gif | Bin 0 -> 129 bytes .../obj16/ExtendedConditionalStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/FalseLiteral.gif | Bin 0 -> 129 bytes .../icons/full/obj16/FieldExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ForeachStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/FunctionDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IdentifierExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IdentifierPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Implication.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ImportDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/InfiniteUpperBound.gif | Bin 0 -> 129 bytes .../full/obj16/InfinitelyOftenPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/InstanceDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IntegerPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IntegerType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLAll.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLConjunction.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLDisjunction.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLExists.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLImplication.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLProperty.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLRelease.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLUnaryAlways.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLUnaryEventually.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLUnaryNegation.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLUnaryNext.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLUntil.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LTLVariable.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LeadsToPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LeaveStateEvent.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LiteralExpression.gif | Bin 0 -> 129 bytes .../full/obj16/LocalPortsDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LoopStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LowerBound.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Model.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Modulo.gif | Bin 0 -> 129 bytes .../icons/full/obj16/MortalPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Multiplication.gif | Bin 0 -> 129 bytes .../icons/full/obj16/NamedElement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/NamedItem.gif | Bin 0 -> 129 bytes .../icons/full/obj16/NaturalItem.gif | Bin 0 -> 129 bytes .../icons/full/obj16/NaturalLiteral.gif | Bin 0 -> 129 bytes .../icons/full/obj16/NaturalLowerBound.gif | Bin 0 -> 129 bytes .../icons/full/obj16/NaturalType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/NaturalUpperBound.gif | Bin 0 -> 129 bytes .../icons/full/obj16/NullStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Observable.gif | Bin 0 -> 129 bytes .../full/obj16/ObservableConjunction.gif | Bin 0 -> 129 bytes .../full/obj16/ObservableDisjunction.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ObservableEvent.gif | Bin 0 -> 129 bytes .../full/obj16/ObservableImplication.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ObservableNegation.gif | Bin 0 -> 129 bytes .../icons/full/obj16/OnStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ParameterDeclaration.gif | Bin 0 -> 129 bytes .../full/obj16/ParameterizedDeclaration.gif | Bin 0 -> 129 bytes .../full/obj16/ParametersDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Path.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PathDeclarationUse.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PathEvent.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PathItem.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Pattern.gif | Bin 0 -> 129 bytes .../full/obj16/PatternDeclarationUse.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PatternProperty.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PatternStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PortDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PortSet.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PortsDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PrecedesPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PresencePattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PriorityDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PriorityGroup.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ProcessDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Projection.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Property.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PropertyConjunction.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PropertyDeclaration.gif | Bin 0 -> 129 bytes .../full/obj16/PropertyDeclarationUse.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PropertyDisjunction.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PropertyImplication.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PropertyNegation.gif | Bin 0 -> 129 bytes .../icons/full/obj16/QueueExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/QueueType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/RangeType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ReceiveStatement.gif | Bin 0 -> 129 bytes .../full/obj16/RecordAccessExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/RecordAccessPattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/RecordExpression.gif | Bin 0 -> 129 bytes .../full/obj16/RecordFieldDeclaration.gif | Bin 0 -> 129 bytes .../full/obj16/RecordFieldDeclarationUse.gif | Bin 0 -> 129 bytes .../icons/full/obj16/RecordFields.gif | Bin 0 -> 129 bytes .../icons/full/obj16/RecordType.gif | Bin 0 -> 129 bytes .../full/obj16/ReferenceDeclarationUse.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ReferenceExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ReferencedType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Requirement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ReturnStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Root.gif | Bin 0 -> 129 bytes .../icons/full/obj16/RootDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SelectStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SendStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SequencePattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/StateDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/StateEvent.gif | Bin 0 -> 129 bytes .../icons/full/obj16/StateSubject.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Statement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/StatementChoice.gif | Bin 0 -> 129 bytes .../icons/full/obj16/StatementSequence.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Subject.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Substraction.gif | Bin 0 -> 129 bytes .../icons/full/obj16/TagSubject.gif | Bin 0 -> 129 bytes .../icons/full/obj16/TaggedStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ToStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Transition.gif | Bin 0 -> 129 bytes .../icons/full/obj16/TransitionSource.gif | Bin 0 -> 129 bytes .../icons/full/obj16/TrueLiteral.gif | Bin 0 -> 129 bytes .../icons/full/obj16/TupleType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Type.gif | Bin 0 -> 129 bytes .../icons/full/obj16/TypeDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/TypeDeclarationUse.gif | Bin 0 -> 129 bytes .../full/obj16/UnaryCoerceExpression.gif | Bin 0 -> 129 bytes .../full/obj16/UnaryDeQueueExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UnaryEmptyExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UnaryFirstExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UnaryFullExpression.gif | Bin 0 -> 129 bytes .../full/obj16/UnaryLengthExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UnaryMinusExpression.gif | Bin 0 -> 129 bytes .../full/obj16/UnaryNegationExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UnaryPlusExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UnionTagDeclaration.gif | Bin 0 -> 129 bytes .../full/obj16/UnionTagDeclarationUse.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UnionTags.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UnionType.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UnlessStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UpperBound.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ValueExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ValueSubject.gif | Bin 0 -> 129 bytes .../icons/full/obj16/VariableDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/VariableLowerBound.gif | Bin 0 -> 129 bytes .../icons/full/obj16/VariableUpperBound.gif | Bin 0 -> 129 bytes .../icons/full/obj16/VariablesDeclaration.gif | Bin 0 -> 129 bytes .../icons/full/obj16/WaitStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/WhileStatement.gif | Bin 0 -> 129 bytes .../plugin.properties | 521 + .../fr.irit.fiacre.xtext.edit/plugin.xml | 34 + .../provider/AbsencePatternItemProvider.java | 534 + .../fiacre/provider/AdditionItemProvider.java | 603 + .../provider/AllExpressionItemProvider.java | 377 + .../provider/AllPropertyItemProvider.java | 302 + .../provider/AlwaysPatternItemProvider.java | 485 + .../provider/AnyPatternItemProvider.java | 105 + .../AppendExpressionItemProvider.java | 603 + .../ArrayAccessExpressionItemProvider.java | 408 + .../ArrayAccessPatternItemProvider.java | 385 + .../provider/ArrayExpressionItemProvider.java | 363 + .../provider/ArrayTypeItemProvider.java | 425 + .../AssignAnyStatementItemProvider.java | 405 + .../provider/AssignStatementItemProvider.java | 405 + .../provider/BasicTypeItemProvider.java | 105 + .../fiacre/provider/BlockItemProvider.java | 179 + .../provider/BlockStatementItemProvider.java | 298 + .../provider/BooleanLiteralItemProvider.java | 105 + .../provider/BooleanTypeItemProvider.java | 105 + .../BoundDeclarationUseItemProvider.java | 131 + .../provider/CaseStatementItemProvider.java | 580 + .../ChannelDeclarationItemProvider.java | 184 + .../provider/ChannelTypeItemProvider.java | 504 + .../provider/ComparisonEqualItemProvider.java | 603 + .../ComparisonGreaterEqualItemProvider.java | 603 + .../ComparisonGreaterItemProvider.java | 603 + .../ComparisonLesserEqualItemProvider.java | 603 + .../ComparisonLesserItemProvider.java | 603 + .../ComparisonNotEqualItemProvider.java | 603 + .../ComponentDeclarationItemProvider.java | 371 + .../ComponentInstanceItemProvider.java | 653 + .../provider/CompositeBlockItemProvider.java | 153 + .../provider/CompositionItemProvider.java | 196 + .../provider/ConditionalItemProvider.java | 821 + .../ConditionalStatementItemProvider.java | 697 + .../provider/ConjunctionItemProvider.java | 603 + .../ConstantDeclarationItemProvider.java | 456 + .../ConstantDeclarationUseItemProvider.java | 131 + .../provider/ConstantPatternItemProvider.java | 173 + .../ConstructionExpressionItemProvider.java | 363 + .../ConstructorPatternItemProvider.java | 188 + .../DeadlockFreePatternItemProvider.java | 105 + .../DecimalLowerBoundItemProvider.java | 141 + .../DecimalUpperBoundItemProvider.java | 189 + .../provider/DeclarationItemProvider.java | 110 + .../provider/DisjunctionItemProvider.java | 603 + .../fiacre/provider/DivisionItemProvider.java | 603 + .../EnqueueExpressionItemProvider.java | 603 + .../provider/EnterStateEventItemProvider.java | 105 + .../provider/EventSubjectItemProvider.java | 143 + .../ExistsExpressionItemProvider.java | 377 + .../provider/ExistsPropertyItemProvider.java | 302 + .../ExpressionDeclarationUseItemProvider.java | 131 + .../provider/ExpressionItemProvider.java | 131 + ...endedConditionalStatementItemProvider.java | 541 + .../provider/FalseLiteralItemProvider.java | 105 + .../fiacre/provider/FiacreEditPlugin.java | 100 + .../FiacreItemProviderAdapterFactory.java | 4866 + .../provider/FieldExpressionItemProvider.java | 413 + .../ForeachStatementItemProvider.java | 305 + .../FunctionDeclarationItemProvider.java | 405 + .../IdentifierExpressionItemProvider.java | 131 + .../IdentifierPatternItemProvider.java | 131 + .../provider/ImplicationItemProvider.java | 603 + .../ImportDeclarationItemProvider.java | 169 + .../InfiniteUpperBoundItemProvider.java | 105 + .../InfinitelyOftenPatternItemProvider.java | 198 + .../InstanceDeclarationItemProvider.java | 160 + .../provider/IntegerPatternItemProvider.java | 165 + .../provider/IntegerTypeItemProvider.java | 105 + .../fiacre/provider/LTLAllItemProvider.java | 252 + .../provider/LTLConjunctionItemProvider.java | 353 + .../provider/LTLDisjunctionItemProvider.java | 353 + .../provider/LTLExistsItemProvider.java | 252 + .../provider/LTLImplicationItemProvider.java | 353 + .../provider/LTLPatternItemProvider.java | 238 + .../provider/LTLPropertyItemProvider.java | 131 + .../provider/LTLReleaseItemProvider.java | 353 + .../provider/LTLUnaryAlwaysItemProvider.java | 238 + .../LTLUnaryEventuallyItemProvider.java | 238 + .../LTLUnaryNegationItemProvider.java | 238 + .../provider/LTLUnaryNextItemProvider.java | 238 + .../fiacre/provider/LTLUntilItemProvider.java | 353 + .../provider/LTLVariableItemProvider.java | 131 + .../provider/LeadsToPatternItemProvider.java | 587 + .../provider/LeaveStateEventItemProvider.java | 105 + .../LiteralExpressionItemProvider.java | 105 + .../LocalPortsDeclarationItemProvider.java | 235 + .../provider/LoopStatementItemProvider.java | 105 + .../provider/LowerBoundItemProvider.java | 191 + .../fiacre/provider/ModelItemProvider.java | 240 + .../fiacre/provider/ModuloItemProvider.java | 603 + .../provider/MortalPatternItemProvider.java | 198 + .../provider/MultiplicationItemProvider.java | 603 + .../provider/NamedElementItemProvider.java | 169 + .../provider/NamedItemItemProvider.java | 131 + .../provider/NaturalItemItemProvider.java | 141 + .../provider/NaturalLiteralItemProvider.java | 141 + .../NaturalLowerBoundItemProvider.java | 141 + .../provider/NaturalTypeItemProvider.java | 105 + .../NaturalUpperBoundItemProvider.java | 189 + .../provider/NullStatementItemProvider.java | 105 + .../ObservableConjunctionItemProvider.java | 273 + .../ObservableDisjunctionItemProvider.java | 273 + .../provider/ObservableEventItemProvider.java | 105 + .../ObservableImplicationItemProvider.java | 273 + .../provider/ObservableItemProvider.java | 105 + .../ObservableNegationItemProvider.java | 198 + .../provider/OnStatementItemProvider.java | 363 + .../ParameterDeclarationItemProvider.java | 418 + .../ParameterizedDeclarationItemProvider.java | 163 + .../ParametersDeclarationItemProvider.java | 294 + .../PathDeclarationUseItemProvider.java | 131 + .../provider/PathEventItemProvider.java | 180 + .../fiacre/provider/PathItemItemProvider.java | 131 + .../fiacre/provider/PathItemProvider.java | 189 + .../PatternDeclarationUseItemProvider.java | 131 + .../fiacre/provider/PatternItemProvider.java | 105 + .../provider/PatternPropertyItemProvider.java | 105 + .../PatternStatementItemProvider.java | 105 + .../provider/PortDeclarationItemProvider.java | 110 + .../fiacre/provider/PortSetItemProvider.java | 418 + .../PortsDeclarationItemProvider.java | 186 + .../provider/PrecedesPatternItemProvider.java | 538 + .../provider/PresencePatternItemProvider.java | 563 + .../PriorityDeclarationItemProvider.java | 179 + .../provider/PriorityGroupItemProvider.java | 157 + .../ProcessDeclarationItemProvider.java | 401 + .../provider/ProjectionItemProvider.java | 603 + .../PropertyConjunctionItemProvider.java | 453 + .../PropertyDeclarationItemProvider.java | 319 + .../PropertyDeclarationUseItemProvider.java | 131 + .../PropertyDisjunctionItemProvider.java | 453 + .../PropertyImplicationItemProvider.java | 453 + .../fiacre/provider/PropertyItemProvider.java | 131 + .../PropertyNegationItemProvider.java | 288 + .../provider/QueueExpressionItemProvider.java | 363 + .../provider/QueueTypeItemProvider.java | 425 + .../provider/RangeTypeItemProvider.java | 603 + .../ReceiveStatementItemProvider.java | 470 + .../RecordAccessExpressionItemProvider.java | 192 + .../RecordAccessPatternItemProvider.java | 192 + .../RecordExpressionItemProvider.java | 153 + .../RecordFieldDeclarationItemProvider.java | 110 + ...RecordFieldDeclarationUseItemProvider.java | 131 + .../provider/RecordFieldsItemProvider.java | 241 + .../provider/RecordTypeItemProvider.java | 153 + .../ReferenceDeclarationUseItemProvider.java | 131 + .../ReferenceExpressionItemProvider.java | 131 + .../provider/ReferencedTypeItemProvider.java | 131 + .../provider/RequirementItemProvider.java | 216 + .../provider/ReturnStatementItemProvider.java | 363 + .../provider/RootDeclarationItemProvider.java | 131 + .../fiacre/provider/RootItemProvider.java | 180 + .../provider/SelectStatementItemProvider.java | 312 + .../provider/SendStatementItemProvider.java | 405 + .../provider/SequencePatternItemProvider.java | 105 + .../StateDeclarationItemProvider.java | 110 + .../provider/StateEventItemProvider.java | 198 + .../provider/StateSubjectItemProvider.java | 131 + .../provider/StatementChoiceItemProvider.java | 298 + .../provider/StatementItemProvider.java | 131 + .../StatementSequenceItemProvider.java | 298 + .../fiacre/provider/SubjectItemProvider.java | 131 + .../provider/SubstractionItemProvider.java | 603 + .../provider/TagSubjectItemProvider.java | 131 + .../provider/TaggedStatementItemProvider.java | 143 + .../provider/ToStatementItemProvider.java | 131 + .../provider/TransitionItemProvider.java | 331 + .../TransitionSourceItemProvider.java | 157 + .../provider/TrueLiteralItemProvider.java | 105 + .../provider/TupleTypeItemProvider.java | 208 + .../provider/TypeDeclarationItemProvider.java | 239 + .../TypeDeclarationUseItemProvider.java | 131 + .../fiacre/provider/TypeItemProvider.java | 131 + .../UnaryCoerceExpressionItemProvider.java | 363 + .../UnaryDeQueueExpressionItemProvider.java | 363 + .../UnaryEmptyExpressionItemProvider.java | 363 + .../UnaryFirstExpressionItemProvider.java | 363 + .../UnaryFullExpressionItemProvider.java | 363 + .../UnaryLengthExpressionItemProvider.java | 363 + .../UnaryMinusExpressionItemProvider.java | 363 + .../UnaryNegationExpressionItemProvider.java | 363 + .../UnaryPlusExpressionItemProvider.java | 363 + .../UnionTagDeclarationItemProvider.java | 110 + .../UnionTagDeclarationUseItemProvider.java | 131 + .../provider/UnionTagsItemProvider.java | 241 + .../provider/UnionTypeItemProvider.java | 153 + .../provider/UnlessStatementItemProvider.java | 298 + .../provider/UpperBoundItemProvider.java | 131 + .../provider/ValueExpressionItemProvider.java | 131 + .../provider/ValueSubjectItemProvider.java | 363 + .../VariableDeclarationItemProvider.java | 110 + .../VariableLowerBoundItemProvider.java | 133 + .../VariableUpperBoundItemProvider.java | 188 + .../VariablesDeclarationItemProvider.java | 458 + .../provider/WaitStatementItemProvider.java | 195 + .../provider/WhileStatementItemProvider.java | 515 + .../fr.irit.fiacre.xtext.editor/.classpath | 7 + .../fr.irit.fiacre.xtext.editor/.gitignore | 1 + .../fr.irit.fiacre.xtext.editor/.project | 28 + .../META-INF/MANIFEST.MF | 18 + .../build.properties | 20 + .../icons/full/obj16/FiacreModelFile.gif | Bin 0 -> 346 bytes .../icons/full/wizban/NewFiacre.gif | Bin 0 -> 2462 bytes .../plugin.properties | 63 + .../fr.irit.fiacre.xtext.editor/plugin.xml | 49 + .../FiacreActionBarContributor.java | 434 + .../fiacre/presentation/FiacreEditor.java | 1830 + .../presentation/FiacreEditorPlugin.java | 102 + .../presentation/FiacreModelWizard.java | 639 + .../fr.irit.fiacre.xtext.ide/.classpath | 9 + .../fr.irit.fiacre.xtext.ide/.gitignore | 1 + .../plugins/fr.irit.fiacre.xtext.ide/.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 14 + .../fr.irit.fiacre.xtext.ide/build.properties | 15 + .../ide/contentassist/antlr/FiacreParser.java | 768 + .../PartialFiacreContentAssistParser.java | 44 + .../antlr/internal/InternalFiacre.g | 33794 +++++ .../antlr/internal/InternalFiacre.tokens | 264 + .../antlr/internal/InternalFiacreLexer.java | 4994 + .../antlr/internal/InternalFiacreParser.java | 110771 +++++++++++++++ .../fr.irit.fiacre.xtext.ide/src/.gitignore | 0 .../xtend-gen/.gitignore | 0 .../fr.irit.fiacre.xtext.ui/.classpath | 9 + .../fr.irit.fiacre.xtext.ui/.gitignore | 1 + .../plugins/fr.irit.fiacre.xtext.ui/.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 25 + .../fr.irit.fiacre.xtext.ui/build.properties | 16 + .../fr.irit.fiacre.xtext.ui/plugin.xml | 421 + .../fr.irit.fiacre.xtext.ui/plugin.xml_gen | 410 + .../xtext/ui/AbstractFiacreUiModule.java | 290 + .../ui/FiacreExecutableExtensionFactory.java | 37 + .../AbstractFiacreProposalProvider.java | 1265 + .../xtext/ui/internal/XtextActivator.java | 103 + .../irit/fiacre/xtext/ui/FiacreUiModule.xtend | 13 + .../FiacreProposalProvider.xtend | 12 + .../FiacreDescriptionLabelProvider.xtend | 24 + .../ui/labeling/FiacreLabelProvider.xtend | 31 + .../outline/FiacreOutlineTreeProvider.xtend | 15 + .../ui/quickfix/FiacreQuickfixProvider.xtend | 24 + .../fr/irit/fiacre/xtext/ui/.gitignore | 3 + .../fiacre/xtext/ui/contentassist/.gitignore | 3 + .../irit/fiacre/xtext/ui/labeling/.gitignore | 6 + .../irit/fiacre/xtext/ui/outline/.gitignore | 3 + .../irit/fiacre/xtext/ui/quickfix/.gitignore | 3 + .../.antlr-generator-3.2.0-patch.jar | Bin 0 -> 1484649 bytes .../plugins/fr.irit.fiacre.xtext/.classpath | 9 + .../plugins/fr.irit.fiacre.xtext/.gitignore | 1 + ...frastructure (fr.irit.fiacre.xtext).launch | 18 + eclipse/plugins/fr.irit.fiacre.xtext/.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../fr.irit.fiacre.xtext/META-INF/MANIFEST.MF | 29 + .../fr.irit.fiacre.xtext/build.properties | 28 + .../model/generated/Fiacre.ecore | 881 + .../model/generated/Fiacre.genmodel | 649 + .../fr.irit.fiacre.xtext/plugin.properties | 14 + .../plugins/fr.irit.fiacre.xtext/plugin.xml | 21 + .../fr.irit.fiacre.xtext/plugin.xml_gen | 10 + .../xtext/AbstractFiacreRuntimeModule.java | 204 + .../fr/irit/fiacre/xtext/Fiacre.xtextbin | Bin 0 -> 29460 bytes .../xtext/FiacreStandaloneSetupGenerated.java | 52 + .../fiacre/xtext/fiacre/AbsencePattern.java | 250 + .../fr/irit/fiacre/xtext/fiacre/Addition.java | 88 + .../fiacre/xtext/fiacre/AllExpression.java | 115 + .../irit/fiacre/xtext/fiacre/AllProperty.java | 115 + .../fiacre/xtext/fiacre/AlwaysPattern.java | 196 + .../irit/fiacre/xtext/fiacre/AnyPattern.java | 29 + .../fiacre/xtext/fiacre/AppendExpression.java | 88 + .../xtext/fiacre/ArrayAccessExpression.java | 79 + .../xtext/fiacre/ArrayAccessPattern.java | 88 + .../fiacre/xtext/fiacre/ArrayExpression.java | 52 + .../irit/fiacre/xtext/fiacre/ArrayType.java | 88 + .../xtext/fiacre/AssignAnyStatement.java | 79 + .../fiacre/xtext/fiacre/AssignStatement.java | 69 + .../irit/fiacre/xtext/fiacre/BasicType.java | 29 + .../fr/irit/fiacre/xtext/fiacre/Block.java | 62 + .../fiacre/xtext/fiacre/BlockStatement.java | 61 + .../fiacre/xtext/fiacre/BooleanLiteral.java | 29 + .../irit/fiacre/xtext/fiacre/BooleanType.java | 29 + .../xtext/fiacre/BoundDeclarationUse.java | 30 + .../fiacre/xtext/fiacre/CaseStatement.java | 96 + .../xtext/fiacre/ChannelDeclaration.java | 61 + .../irit/fiacre/xtext/fiacre/ChannelType.java | 143 + .../fiacre/xtext/fiacre/ComparisonEqual.java | 88 + .../xtext/fiacre/ComparisonGreater.java | 88 + .../xtext/fiacre/ComparisonGreaterEqual.java | 88 + .../fiacre/xtext/fiacre/ComparisonLesser.java | 88 + .../xtext/fiacre/ComparisonLesserEqual.java | 88 + .../xtext/fiacre/ComparisonNotEqual.java | 88 + .../xtext/fiacre/ComponentDeclaration.java | 140 + .../xtext/fiacre/ComponentInstance.java | 98 + .../fiacre/xtext/fiacre/CompositeBlock.java | 61 + .../irit/fiacre/xtext/fiacre/Composition.java | 81 + .../irit/fiacre/xtext/fiacre/Conditional.java | 115 + .../xtext/fiacre/ConditionalStatement.java | 133 + .../irit/fiacre/xtext/fiacre/Conjunction.java | 88 + .../xtext/fiacre/ConstantDeclaration.java | 88 + .../xtext/fiacre/ConstantDeclarationUse.java | 30 + .../fiacre/xtext/fiacre/ConstantPattern.java | 61 + .../xtext/fiacre/ConstructionExpression.java | 52 + .../xtext/fiacre/ConstructorPattern.java | 52 + .../xtext/fiacre/DeadlockFreePattern.java | 29 + .../xtext/fiacre/DecimalLowerBound.java | 61 + .../xtext/fiacre/DecimalUpperBound.java | 115 + .../irit/fiacre/xtext/fiacre/Declaration.java | 29 + .../irit/fiacre/xtext/fiacre/Disjunction.java | 88 + .../fr/irit/fiacre/xtext/fiacre/Division.java | 88 + .../xtext/fiacre/EnqueueExpression.java | 88 + .../fiacre/xtext/fiacre/EnterStateEvent.java | 29 + .../fiacre/xtext/fiacre/EventSubject.java | 61 + .../fiacre/xtext/fiacre/ExistsExpression.java | 115 + .../fiacre/xtext/fiacre/ExistsProperty.java | 115 + .../irit/fiacre/xtext/fiacre/Expression.java | 30 + .../fiacre/ExpressionDeclarationUse.java | 30 + .../fiacre/ExtendedConditionalStatement.java | 89 + .../fiacre/xtext/fiacre/FalseLiteral.java | 29 + .../fiacre/xtext/fiacre/FiacreFactory.java | 1800 + .../fiacre/xtext/fiacre/FiacrePackage.java | 11988 ++ .../fiacre/xtext/fiacre/FieldExpression.java | 89 + .../fiacre/xtext/fiacre/ForeachStatement.java | 88 + .../xtext/fiacre/FunctionDeclaration.java | 88 + .../xtext/fiacre/IdentifierExpression.java | 61 + .../xtext/fiacre/IdentifierPattern.java | 61 + .../irit/fiacre/xtext/fiacre/Implication.java | 88 + .../xtext/fiacre/ImportDeclaration.java | 62 + .../xtext/fiacre/InfiniteUpperBound.java | 29 + .../xtext/fiacre/InfinitelyOftenPattern.java | 61 + .../xtext/fiacre/InstanceDeclaration.java | 61 + .../fiacre/xtext/fiacre/IntegerPattern.java | 88 + .../irit/fiacre/xtext/fiacre/IntegerType.java | 29 + .../fr/irit/fiacre/xtext/fiacre/LTLAll.java | 115 + .../fiacre/xtext/fiacre/LTLConjunction.java | 88 + .../fiacre/xtext/fiacre/LTLDisjunction.java | 88 + .../irit/fiacre/xtext/fiacre/LTLExists.java | 115 + .../fiacre/xtext/fiacre/LTLImplication.java | 88 + .../irit/fiacre/xtext/fiacre/LTLPattern.java | 61 + .../irit/fiacre/xtext/fiacre/LTLProperty.java | 30 + .../irit/fiacre/xtext/fiacre/LTLRelease.java | 88 + .../fiacre/xtext/fiacre/LTLUnaryAlways.java | 61 + .../xtext/fiacre/LTLUnaryEventually.java | 61 + .../fiacre/xtext/fiacre/LTLUnaryNegation.java | 61 + .../fiacre/xtext/fiacre/LTLUnaryNext.java | 61 + .../fr/irit/fiacre/xtext/fiacre/LTLUntil.java | 88 + .../irit/fiacre/xtext/fiacre/LTLVariable.java | 61 + .../fiacre/xtext/fiacre/LeadsToPattern.java | 277 + .../fiacre/xtext/fiacre/LeaveStateEvent.java | 29 + .../xtext/fiacre/LiteralExpression.java | 29 + .../xtext/fiacre/LocalPortsDeclaration.java | 135 + .../fiacre/xtext/fiacre/LoopStatement.java | 29 + .../irit/fiacre/xtext/fiacre/LowerBound.java | 89 + .../fr/irit/fiacre/xtext/fiacre/Model.java | 105 + .../fr/irit/fiacre/xtext/fiacre/Modulo.java | 88 + .../fiacre/xtext/fiacre/MortalPattern.java | 61 + .../fiacre/xtext/fiacre/Multiplication.java | 88 + .../fiacre/xtext/fiacre/NamedElement.java | 62 + .../irit/fiacre/xtext/fiacre/NamedItem.java | 61 + .../irit/fiacre/xtext/fiacre/NaturalItem.java | 61 + .../fiacre/xtext/fiacre/NaturalLiteral.java | 61 + .../xtext/fiacre/NaturalLowerBound.java | 61 + .../irit/fiacre/xtext/fiacre/NaturalType.java | 29 + .../xtext/fiacre/NaturalUpperBound.java | 115 + .../fiacre/xtext/fiacre/NullStatement.java | 29 + .../irit/fiacre/xtext/fiacre/Observable.java | 29 + .../xtext/fiacre/ObservableConjunction.java | 88 + .../xtext/fiacre/ObservableDisjunction.java | 88 + .../fiacre/xtext/fiacre/ObservableEvent.java | 29 + .../xtext/fiacre/ObservableImplication.java | 88 + .../xtext/fiacre/ObservableNegation.java | 61 + .../irit/fiacre/xtext/fiacre/OnStatement.java | 61 + .../xtext/fiacre/ParameterDeclaration.java | 115 + .../fiacre/ParameterizedDeclaration.java | 69 + .../xtext/fiacre/ParametersDeclaration.java | 135 + .../fr/irit/fiacre/xtext/fiacre/Path.java | 54 + .../xtext/fiacre/PathDeclarationUse.java | 30 + .../irit/fiacre/xtext/fiacre/PathEvent.java | 88 + .../fr/irit/fiacre/xtext/fiacre/PathItem.java | 30 + .../fr/irit/fiacre/xtext/fiacre/Pattern.java | 29 + .../xtext/fiacre/PatternDeclarationUse.java | 30 + .../fiacre/xtext/fiacre/PatternProperty.java | 29 + .../fiacre/xtext/fiacre/PatternStatement.java | 29 + .../fiacre/xtext/fiacre/PortDeclaration.java | 29 + .../fr/irit/fiacre/xtext/fiacre/PortSet.java | 81 + .../fiacre/xtext/fiacre/PortsDeclaration.java | 81 + .../fiacre/xtext/fiacre/PrecedesPattern.java | 223 + .../fiacre/xtext/fiacre/PresencePattern.java | 277 + .../xtext/fiacre/PriorityDeclaration.java | 54 + .../fiacre/xtext/fiacre/PriorityGroup.java | 54 + .../xtext/fiacre/ProcessDeclaration.java | 147 + .../irit/fiacre/xtext/fiacre/Projection.java | 88 + .../fr/irit/fiacre/xtext/fiacre/Property.java | 30 + .../xtext/fiacre/PropertyConjunction.java | 88 + .../xtext/fiacre/PropertyDeclaration.java | 61 + .../xtext/fiacre/PropertyDeclarationUse.java | 30 + .../xtext/fiacre/PropertyDisjunction.java | 88 + .../xtext/fiacre/PropertyImplication.java | 88 + .../fiacre/xtext/fiacre/PropertyNegation.java | 61 + .../fiacre/xtext/fiacre/QueueExpression.java | 52 + .../irit/fiacre/xtext/fiacre/QueueType.java | 88 + .../irit/fiacre/xtext/fiacre/RangeType.java | 88 + .../fiacre/xtext/fiacre/ReceiveStatement.java | 106 + .../xtext/fiacre/RecordAccessExpression.java | 88 + .../xtext/fiacre/RecordAccessPattern.java | 88 + .../fiacre/xtext/fiacre/RecordExpression.java | 52 + .../xtext/fiacre/RecordFieldDeclaration.java | 29 + .../fiacre/RecordFieldDeclarationUse.java | 30 + .../fiacre/xtext/fiacre/RecordFields.java | 81 + .../irit/fiacre/xtext/fiacre/RecordType.java | 52 + .../xtext/fiacre/ReferenceDeclarationUse.java | 30 + .../xtext/fiacre/ReferenceExpression.java | 61 + .../fiacre/xtext/fiacre/ReferencedType.java | 61 + .../irit/fiacre/xtext/fiacre/Requirement.java | 116 + .../fiacre/xtext/fiacre/ReturnStatement.java | 61 + .../fr/irit/fiacre/xtext/fiacre/Root.java | 81 + .../fiacre/xtext/fiacre/RootDeclaration.java | 30 + .../fiacre/xtext/fiacre/SelectStatement.java | 115 + .../fiacre/xtext/fiacre/SendStatement.java | 79 + .../fiacre/xtext/fiacre/SequencePattern.java | 29 + .../fiacre/xtext/fiacre/StateDeclaration.java | 29 + .../irit/fiacre/xtext/fiacre/StateEvent.java | 61 + .../fiacre/xtext/fiacre/StateSubject.java | 61 + .../irit/fiacre/xtext/fiacre/Statement.java | 30 + .../fiacre/xtext/fiacre/StatementChoice.java | 52 + .../xtext/fiacre/StatementSequence.java | 52 + .../fr/irit/fiacre/xtext/fiacre/Subject.java | 30 + .../fiacre/xtext/fiacre/Substraction.java | 88 + .../irit/fiacre/xtext/fiacre/TagSubject.java | 61 + .../fiacre/xtext/fiacre/TaggedStatement.java | 61 + .../irit/fiacre/xtext/fiacre/ToStatement.java | 61 + .../irit/fiacre/xtext/fiacre/Transition.java | 89 + .../fiacre/xtext/fiacre/TransitionSource.java | 62 + .../irit/fiacre/xtext/fiacre/TrueLiteral.java | 29 + .../irit/fiacre/xtext/fiacre/TupleType.java | 52 + .../fr/irit/fiacre/xtext/fiacre/Type.java | 30 + .../fiacre/xtext/fiacre/TypeDeclaration.java | 61 + .../xtext/fiacre/TypeDeclarationUse.java | 30 + .../xtext/fiacre/UnaryCoerceExpression.java | 61 + .../xtext/fiacre/UnaryDeQueueExpression.java | 61 + .../xtext/fiacre/UnaryEmptyExpression.java | 61 + .../xtext/fiacre/UnaryFirstExpression.java | 61 + .../xtext/fiacre/UnaryFullExpression.java | 61 + .../xtext/fiacre/UnaryLengthExpression.java | 61 + .../xtext/fiacre/UnaryMinusExpression.java | 61 + .../xtext/fiacre/UnaryNegationExpression.java | 61 + .../xtext/fiacre/UnaryPlusExpression.java | 61 + .../xtext/fiacre/UnionTagDeclaration.java | 29 + .../xtext/fiacre/UnionTagDeclarationUse.java | 30 + .../irit/fiacre/xtext/fiacre/UnionTags.java | 81 + .../irit/fiacre/xtext/fiacre/UnionType.java | 52 + .../fiacre/xtext/fiacre/UnlessStatement.java | 52 + .../irit/fiacre/xtext/fiacre/UpperBound.java | 30 + .../fiacre/xtext/fiacre/ValueExpression.java | 30 + .../fiacre/xtext/fiacre/ValueSubject.java | 61 + .../xtext/fiacre/VariableDeclaration.java | 29 + .../xtext/fiacre/VariableLowerBound.java | 61 + .../xtext/fiacre/VariableUpperBound.java | 115 + .../xtext/fiacre/VariablesDeclaration.java | 108 + .../fiacre/xtext/fiacre/WaitStatement.java | 88 + .../fiacre/xtext/fiacre/WhileStatement.java | 88 + .../xtext/fiacre/impl/AbsencePatternImpl.java | 703 + .../xtext/fiacre/impl/AdditionImpl.java | 275 + .../xtext/fiacre/impl/AllExpressionImpl.java | 348 + .../xtext/fiacre/impl/AllPropertyImpl.java | 348 + .../xtext/fiacre/impl/AlwaysPatternImpl.java | 559 + .../xtext/fiacre/impl/AnyPatternImpl.java | 51 + .../fiacre/impl/AppendExpressionImpl.java | 275 + .../impl/ArrayAccessExpressionImpl.java | 251 + .../fiacre/impl/ArrayAccessPatternImpl.java | 276 + .../fiacre/impl/ArrayExpressionImpl.java | 176 + .../xtext/fiacre/impl/ArrayTypeImpl.java | 276 + .../fiacre/impl/AssignAnyStatementImpl.java | 251 + .../fiacre/impl/AssignStatementImpl.java | 215 + .../xtext/fiacre/impl/BasicTypeImpl.java | 51 + .../fiacre/xtext/fiacre/impl/BlockImpl.java | 205 + .../xtext/fiacre/impl/BlockStatementImpl.java | 204 + .../xtext/fiacre/impl/BooleanLiteralImpl.java | 51 + .../xtext/fiacre/impl/BooleanTypeImpl.java | 51 + .../fiacre/impl/BoundDeclarationUseImpl.java | 53 + .../xtext/fiacre/impl/CaseStatementImpl.java | 290 + .../fiacre/impl/ChannelDeclarationImpl.java | 329 + .../xtext/fiacre/impl/ChannelTypeImpl.java | 404 + .../fiacre/impl/ComparisonEqualImpl.java | 275 + .../impl/ComparisonGreaterEqualImpl.java | 275 + .../fiacre/impl/ComparisonGreaterImpl.java | 275 + .../impl/ComparisonLesserEqualImpl.java | 275 + .../fiacre/impl/ComparisonLesserImpl.java | 275 + .../fiacre/impl/ComparisonNotEqualImpl.java | 275 + .../fiacre/impl/ComponentDeclarationImpl.java | 638 + .../fiacre/impl/ComponentInstanceImpl.java | 284 + .../xtext/fiacre/impl/CompositeBlockImpl.java | 204 + .../xtext/fiacre/impl/CompositionImpl.java | 252 + .../xtext/fiacre/impl/ConditionalImpl.java | 346 + .../fiacre/impl/ConditionalStatementImpl.java | 394 + .../xtext/fiacre/impl/ConjunctionImpl.java | 275 + .../fiacre/impl/ConstantDeclarationImpl.java | 431 + .../impl/ConstantDeclarationUseImpl.java | 53 + .../fiacre/impl/ConstantPatternImpl.java | 204 + .../impl/ConstructionExpressionImpl.java | 176 + .../fiacre/impl/ConstructorPatternImpl.java | 176 + .../fiacre/impl/DeadlockFreePatternImpl.java | 51 + .../fiacre/impl/DecimalLowerBoundImpl.java | 187 + .../fiacre/impl/DecimalUpperBoundImpl.java | 299 + .../xtext/fiacre/impl/DeclarationImpl.java | 51 + .../xtext/fiacre/impl/DisjunctionImpl.java | 275 + .../xtext/fiacre/impl/DivisionImpl.java | 275 + .../fiacre/impl/EnqueueExpressionImpl.java | 275 + .../fiacre/impl/EnterStateEventImpl.java | 51 + .../xtext/fiacre/impl/EventSubjectImpl.java | 187 + .../fiacre/impl/ExistsExpressionImpl.java | 348 + .../xtext/fiacre/impl/ExistsPropertyImpl.java | 348 + .../impl/ExpressionDeclarationUseImpl.java | 53 + .../xtext/fiacre/impl/ExpressionImpl.java | 53 + .../ExtendedConditionalStatementImpl.java | 277 + .../xtext/fiacre/impl/FalseLiteralImpl.java | 51 + .../xtext/fiacre/impl/FiacreFactoryImpl.java | 2445 + .../xtext/fiacre/impl/FiacrePackageImpl.java | 7253 + .../fiacre/impl/FieldExpressionImpl.java | 271 + .../fiacre/impl/ForeachStatementImpl.java | 276 + .../fiacre/impl/FunctionDeclarationImpl.java | 506 + .../fiacre/impl/IdentifierExpressionImpl.java | 183 + .../fiacre/impl/IdentifierPatternImpl.java | 183 + .../xtext/fiacre/impl/ImplicationImpl.java | 275 + .../fiacre/impl/ImportDeclarationImpl.java | 188 + .../fiacre/impl/InfiniteUpperBoundImpl.java | 51 + .../impl/InfinitelyOftenPatternImpl.java | 204 + .../fiacre/impl/InstanceDeclarationImpl.java | 315 + .../xtext/fiacre/impl/IntegerPatternImpl.java | 243 + .../xtext/fiacre/impl/IntegerTypeImpl.java | 51 + .../fiacre/xtext/fiacre/impl/LTLAllImpl.java | 348 + .../xtext/fiacre/impl/LTLConjunctionImpl.java | 275 + .../xtext/fiacre/impl/LTLDisjunctionImpl.java | 275 + .../xtext/fiacre/impl/LTLExistsImpl.java | 348 + .../xtext/fiacre/impl/LTLImplicationImpl.java | 275 + .../xtext/fiacre/impl/LTLPatternImpl.java | 204 + .../xtext/fiacre/impl/LTLPropertyImpl.java | 53 + .../xtext/fiacre/impl/LTLReleaseImpl.java | 275 + .../xtext/fiacre/impl/LTLUnaryAlwaysImpl.java | 204 + .../fiacre/impl/LTLUnaryEventuallyImpl.java | 204 + .../fiacre/impl/LTLUnaryNegationImpl.java | 204 + .../xtext/fiacre/impl/LTLUnaryNextImpl.java | 204 + .../xtext/fiacre/impl/LTLUntilImpl.java | 275 + .../xtext/fiacre/impl/LTLVariableImpl.java | 183 + .../xtext/fiacre/impl/LeadsToPatternImpl.java | 774 + .../fiacre/impl/LeaveStateEventImpl.java | 51 + .../fiacre/impl/LiteralExpressionImpl.java | 51 + .../impl/LocalPortsDeclarationImpl.java | 396 + .../xtext/fiacre/impl/LoopStatementImpl.java | 51 + .../xtext/fiacre/impl/LowerBoundImpl.java | 244 + .../fiacre/xtext/fiacre/impl/ModelImpl.java | 295 + .../fiacre/xtext/fiacre/impl/ModuloImpl.java | 275 + .../xtext/fiacre/impl/MortalPatternImpl.java | 204 + .../xtext/fiacre/impl/MultiplicationImpl.java | 275 + .../xtext/fiacre/impl/NamedElementImpl.java | 188 + .../xtext/fiacre/impl/NamedItemImpl.java | 183 + .../xtext/fiacre/impl/NaturalItemImpl.java | 187 + .../xtext/fiacre/impl/NaturalLiteralImpl.java | 187 + .../fiacre/impl/NaturalLowerBoundImpl.java | 187 + .../xtext/fiacre/impl/NaturalTypeImpl.java | 51 + .../fiacre/impl/NaturalUpperBoundImpl.java | 299 + .../xtext/fiacre/impl/NullStatementImpl.java | 51 + .../impl/ObservableConjunctionImpl.java | 275 + .../impl/ObservableDisjunctionImpl.java | 275 + .../fiacre/impl/ObservableEventImpl.java | 51 + .../xtext/fiacre/impl/ObservableImpl.java | 51 + .../impl/ObservableImplicationImpl.java | 275 + .../fiacre/impl/ObservableNegationImpl.java | 204 + .../xtext/fiacre/impl/OnStatementImpl.java | 204 + .../fiacre/impl/ParameterDeclarationImpl.java | 331 + .../impl/ParameterizedDeclarationImpl.java | 215 + .../impl/ParametersDeclarationImpl.java | 379 + .../fiacre/impl/PathDeclarationUseImpl.java | 53 + .../xtext/fiacre/impl/PathEventImpl.java | 276 + .../fiacre/xtext/fiacre/impl/PathImpl.java | 178 + .../xtext/fiacre/impl/PathItemImpl.java | 53 + .../impl/PatternDeclarationUseImpl.java | 53 + .../fiacre/xtext/fiacre/impl/PatternImpl.java | 51 + .../fiacre/impl/PatternPropertyImpl.java | 51 + .../fiacre/impl/PatternStatementImpl.java | 51 + .../fiacre/impl/PortDeclarationImpl.java | 51 + .../fiacre/xtext/fiacre/impl/PortSetImpl.java | 251 + .../fiacre/impl/PortsDeclarationImpl.java | 252 + .../fiacre/impl/PrecedesPatternImpl.java | 630 + .../fiacre/impl/PresencePatternImpl.java | 774 + .../fiacre/impl/PriorityDeclarationImpl.java | 178 + .../xtext/fiacre/impl/PriorityGroupImpl.java | 158 + .../fiacre/impl/ProcessDeclarationImpl.java | 643 + .../xtext/fiacre/impl/ProjectionImpl.java | 275 + .../fiacre/impl/PropertyConjunctionImpl.java | 275 + .../fiacre/impl/PropertyDeclarationImpl.java | 329 + .../impl/PropertyDeclarationUseImpl.java | 53 + .../fiacre/impl/PropertyDisjunctionImpl.java | 275 + .../xtext/fiacre/impl/PropertyImpl.java | 53 + .../fiacre/impl/PropertyImplicationImpl.java | 275 + .../fiacre/impl/PropertyNegationImpl.java | 204 + .../fiacre/impl/QueueExpressionImpl.java | 176 + .../xtext/fiacre/impl/QueueTypeImpl.java | 276 + .../xtext/fiacre/impl/RangeTypeImpl.java | 275 + .../fiacre/impl/ReceiveStatementImpl.java | 322 + .../impl/RecordAccessExpressionImpl.java | 270 + .../fiacre/impl/RecordAccessPatternImpl.java | 270 + .../fiacre/impl/RecordExpressionImpl.java | 176 + .../impl/RecordFieldDeclarationImpl.java | 51 + .../impl/RecordFieldDeclarationUseImpl.java | 53 + .../xtext/fiacre/impl/RecordFieldsImpl.java | 252 + .../xtext/fiacre/impl/RecordTypeImpl.java | 176 + .../impl/ReferenceDeclarationUseImpl.java | 53 + .../fiacre/impl/ReferenceExpressionImpl.java | 183 + .../xtext/fiacre/impl/ReferencedTypeImpl.java | 183 + .../xtext/fiacre/impl/RequirementImpl.java | 311 + .../fiacre/impl/ReturnStatementImpl.java | 204 + .../fiacre/impl/RootDeclarationImpl.java | 53 + .../fiacre/xtext/fiacre/impl/RootImpl.java | 227 + .../fiacre/impl/SelectStatementImpl.java | 348 + .../xtext/fiacre/impl/SendStatementImpl.java | 251 + .../fiacre/impl/SequencePatternImpl.java | 51 + .../fiacre/impl/StateDeclarationImpl.java | 51 + .../xtext/fiacre/impl/StateEventImpl.java | 204 + .../xtext/fiacre/impl/StateSubjectImpl.java | 183 + .../fiacre/impl/StatementChoiceImpl.java | 176 + .../xtext/fiacre/impl/StatementImpl.java | 53 + .../fiacre/impl/StatementSequenceImpl.java | 176 + .../fiacre/xtext/fiacre/impl/SubjectImpl.java | 53 + .../xtext/fiacre/impl/SubstractionImpl.java | 275 + .../xtext/fiacre/impl/TagSubjectImpl.java | 183 + .../fiacre/impl/TaggedStatementImpl.java | 187 + .../xtext/fiacre/impl/ToStatementImpl.java | 183 + .../xtext/fiacre/impl/TransitionImpl.java | 277 + .../fiacre/impl/TransitionSourceImpl.java | 184 + .../xtext/fiacre/impl/TrueLiteralImpl.java | 51 + .../xtext/fiacre/impl/TupleTypeImpl.java | 176 + .../fiacre/impl/TypeDeclarationImpl.java | 329 + .../fiacre/impl/TypeDeclarationUseImpl.java | 53 + .../fiacre/xtext/fiacre/impl/TypeImpl.java | 53 + .../impl/UnaryCoerceExpressionImpl.java | 204 + .../impl/UnaryDeQueueExpressionImpl.java | 204 + .../fiacre/impl/UnaryEmptyExpressionImpl.java | 204 + .../fiacre/impl/UnaryFirstExpressionImpl.java | 204 + .../fiacre/impl/UnaryFullExpressionImpl.java | 204 + .../impl/UnaryLengthExpressionImpl.java | 204 + .../fiacre/impl/UnaryMinusExpressionImpl.java | 204 + .../impl/UnaryNegationExpressionImpl.java | 204 + .../fiacre/impl/UnaryPlusExpressionImpl.java | 204 + .../fiacre/impl/UnionTagDeclarationImpl.java | 51 + .../impl/UnionTagDeclarationUseImpl.java | 53 + .../xtext/fiacre/impl/UnionTagsImpl.java | 252 + .../xtext/fiacre/impl/UnionTypeImpl.java | 176 + .../fiacre/impl/UnlessStatementImpl.java | 176 + .../xtext/fiacre/impl/UpperBoundImpl.java | 53 + .../fiacre/impl/ValueExpressionImpl.java | 53 + .../xtext/fiacre/impl/ValueSubjectImpl.java | 204 + .../fiacre/impl/VariableDeclarationImpl.java | 51 + .../fiacre/impl/VariableLowerBoundImpl.java | 183 + .../fiacre/impl/VariableUpperBoundImpl.java | 310 + .../fiacre/impl/VariablesDeclarationImpl.java | 324 + .../xtext/fiacre/impl/WaitStatementImpl.java | 276 + .../xtext/fiacre/impl/WhileStatementImpl.java | 276 + .../impl/fiacre.loadinitialization_ecore | 881 + .../fiacre/util/FiacreAdapterFactory.java | 4023 + .../xtext/fiacre/util/FiacreSwitch.java | 4878 + .../antlr/FiacreAntlrTokenFileProvider.java | 26 + .../xtext/parser/antlr/FiacreParser.java | 50 + .../parser/antlr/internal/InternalFiacre.g | 12643 ++ .../antlr/internal/InternalFiacre.tokens | 264 + .../antlr/internal/InternalFiacreLexer.java | 4994 + .../antlr/internal/InternalFiacreParser.java | 38063 +++++ .../scoping/AbstractFiacreScopeProvider.java | 19 + .../serializer/FiacreSemanticSequencer.java | 5387 + .../serializer/FiacreSyntacticSequencer.java | 492 + .../xtext/services/FiacreGrammarAccess.java | 10118 ++ .../validation/AbstractFiacreValidator.java | 30 + .../src/fr/irit/fiacre/xtext/Fiacre.xtext | 1019 + .../fiacre/xtext/FiacreRuntimeModule.xtend | 21 + .../fiacre/xtext/FiacreStandaloneSetup.xtend | 25 + .../fr/irit/fiacre/xtext/GenerateFiacre.mwe2 | 62 + .../xtext/generator/FiacreGenerator.xtend | 35 + .../xtext/scoping/FiacreScopeProvider.xtend | 726 + .../xtext/validation/FiacreValidator.xtend | 177 + .../xtend-gen/fr/irit/fiacre/xtext/.gitignore | 6 + .../fr/irit/fiacre/xtext/generator/.gitignore | 3 + .../fr/irit/fiacre/xtext/scoping/.gitignore | 3 + .../irit/fiacre/xtext/validation/.gitignore | 3 + eclipse/plugins/fr.irit.xtext.xmi/.classpath | 7 + eclipse/plugins/fr.irit.xtext.xmi/.gitignore | 2 + eclipse/plugins/fr.irit.xtext.xmi/.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../fr.irit.xtext.xmi/META-INF/MANIFEST.MF | 13 + .../fr.irit.xtext.xmi/build.properties | 15 + eclipse/plugins/fr.irit.xtext.xmi/plugin.xml | 40 + .../src/fr/irit/xtext/xmi/Activator.java | 71 + .../xmi/popup/actions/XTextToXmiAction.java | 111 + eclipse/plugins/fr.laas.libtts/.classpath | 12 + eclipse/plugins/fr.laas.libtts/.gitignore | 1 + eclipse/plugins/fr.laas.libtts/.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 11 + .../fr.laas.libtts/META-INF/MANIFEST.MF | 28 + .../plugins/fr.laas.libtts/build.properties | 19 + .../fr.laas.libtts/lib/httpclient-4.2.5.jar | Bin 0 -> 433368 bytes .../fr.laas.libtts/lib/httpcore-4.2.4.jar | Bin 0 -> 227275 bytes .../fr.laas.libtts/lib/json-simple-1.1.jar | Bin 0 -> 16046 bytes .../lib/libthrift-0.9.2-javadoc.jar | Bin 0 -> 531986 bytes .../fr.laas.libtts/lib/libthrift-0.9.2.jar | Bin 0 -> 227705 bytes eclipse/plugins/fr.laas.libtts/plugin.xml | 24 + .../src/fr/laas/libtts/Activator.java | 75 + .../libtts/FiacreSimulatorPreferencePage.java | 34 + .../src/fr/laas/libtts/LibTTS.java | 220 + .../src/fr/laas/libtts/TTSSimulator.java | 376 + .../src/fr/laas/libtts/Tools.java | 32 + .../plugins/fr.laas.libtts/src/tts/Clock.java | 491 + .../plugins/fr.laas.libtts/src/tts/Error.java | 399 + .../fr.laas.libtts/src/tts/Interval.java | 709 + .../fr.laas.libtts/src/tts/InvalidDelay.java | 404 + .../fr.laas.libtts/src/tts/InvalidPath.java | 399 + .../plugins/fr.laas.libtts/src/tts/Net.java | 715 + .../fr.laas.libtts/src/tts/NotFireable.java | 398 + .../plugins/fr.laas.libtts/src/tts/Place.java | 587 + .../fr.laas.libtts/src/tts/StateNotFound.java | 398 + .../plugins/fr.laas.libtts/src/tts/TTS.java | 12867 ++ .../fr.laas.libtts/src/tts/TTSState.java | 829 + .../fr.laas.libtts/src/tts/Transition.java | 608 + .../src/tts/TransitionNotFound.java | 398 + 6295 files changed, 433543 insertions(+) create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateBlockInstance_blockInstances_ComponentDeclarationInstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateBlockInstance_blockInstances_CompositionInstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateBlockInstance_blockInstances_ProcessDeclarationInstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateDeclarationInstance_variableDeclarationInstances_VariableDeclarationInstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_instance_ComponentDeclarationInstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_instance_ProcessDeclarationInstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_statementBlocks_EnabledStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_statementBlocks_ExecutableStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_statementBlocks_ExecutedStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_statementBlocks_FireableStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateProcessDeclarationInstance_instanceStatementBlocks_InstanceEnabledStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateProcessDeclarationInstance_instanceStatementBlocks_InstanceExecutedStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateProcessDeclarationInstance_instanceStatementBlocks_InstanceFireableStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Addition.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_AllExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_AppendExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ArrayExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_BooleanLiteral.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonEqual.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonGreater.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonLesser.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Conditional.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Conjunction.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ConstructionExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Disjunction.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Division.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_EnqueueExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ExistsExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ExplicitArrayExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Expression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_FalseLiteral.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_IdentifierExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Implication.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ImplicitArrayExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_LiteralExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Modulo.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Multiplication.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_NaturalLiteral.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Projection.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_QueueExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_RecordAccessExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_RecordExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ReferenceExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Substraction.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_TrueLiteral.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryFullExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ValueExpression.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/ComponentDeclarationInstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/CompositionInstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/EnabledStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/ExecutableStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/ExecutedStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/FireableStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/InstanceEnabledStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/InstanceExecutedStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/InstanceFireableStatementBlock.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/InstanceModel.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/ProcessDeclarationInstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/VariableDeclarationInstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/BlockInstanceItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ComponentDeclarationInstanceItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/CompositionInstanceItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/DeclarationInstanceItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/EnabledStatementBlockItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ExecutableStatementBlockItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ExecutedStatementBlockItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FiacreInstanceEditPlugin.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FiacreinstanceItemProviderAdapterFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FireableStatementBlockItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceEnabledStatementBlockItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceExecutableStatementBlockItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceExecutedStatementBlockItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceFireableStatementBlockItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceModelItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceStatementBlockItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ProcessDeclarationInstanceItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/StatementBlockItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/VariableDeclarationInstanceItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/icons/full/obj16/FiacreinstanceModelFile.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/icons/full/wizban/NewFiacreinstance.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreInstanceEditorPlugin.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceActionBarContributor.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceEditor.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceModelWizard.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/model/FiacreInstance.ecore create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/model/FiacreInstance.genmodel create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/BlockInstance.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ComponentDeclarationInstance.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/CompositionInstance.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/DeclarationInstance.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/EnabledStatementBlock.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ExecutableStatementBlock.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ExecutedStatementBlock.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FiacreinstanceFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FiacreinstancePackage.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FireableStatementBlock.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceEnabledStatementBlock.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceExecutableStatementBlock.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceExecutedStatementBlock.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceFireableStatementBlock.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceModel.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceStatementBlock.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ProcessDeclarationInstance.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/StatementBlock.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/VariableDeclarationInstance.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/BlockInstanceImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ComponentDeclarationInstanceImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/CompositionInstanceImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/DeclarationInstanceImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/EnabledStatementBlockImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ExecutableStatementBlockImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ExecutedStatementBlockImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FiacreinstanceFactoryImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FiacreinstancePackageImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FireableStatementBlockImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceEnabledStatementBlockImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceExecutableStatementBlockImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceExecutedStatementBlockImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceFireableStatementBlockImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceModelImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceStatementBlockImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ProcessDeclarationInstanceImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/StatementBlockImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/VariableDeclarationInstanceImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/util/FiacreinstanceAdapterFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/util/FiacreinstanceSwitch.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/BlockInstanceValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ComponentDeclarationInstanceValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/CompositionInstanceValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/DeclarationInstanceValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/EnabledStatementBlockValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ExecutableStatementBlockValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ExecutedStatementBlockValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/FireableStatementBlockValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceEnabledStatementBlockValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceExecutableStatementBlockValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceExecutedStatementBlockValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceFireableStatementBlockValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceModelValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceStatementBlockValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ProcessDeclarationInstanceValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/StatementBlockValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/VariableDeclarationInstanceValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.instance/text/description.txt create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/Activator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/WorkbenchPreferencePage.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/GenerateMSC.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/MSCGenerator.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/xtend-gen/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/fiacre_platform_lingequip_xtext_2.10.target create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/@eaDir/Thumbs.db@SynoEAStream create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/Thumbs.db create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/arrow_right.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/bomb.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/brick.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/brick_add.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/brick_delete.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/brick_go.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/bricks.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/bullet_disk.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/bullet_pink.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/database_table.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/lightning.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/stop.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/table_multiple.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/tick.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/time_add.png create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/httpclient-4.2.5.jar create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/httpcore-4.2.4.jar create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/json-simple-1.1.jar create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/libthrift-0.9.2-javadoc.jar create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/libthrift-0.9.2.jar create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/Activator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/DelayEvent.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/FiacreSimulator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/FireEvent.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/QuitSimulator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/ReadDelay.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/Utils.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CountMarkersForFile.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CountMarkersForFiles.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CreateMarkerAction.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/FileDecorator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerPluginActivator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerUpdater.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkingController.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/PerspectiveSimulatorFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/ViewsController.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ActionState.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/TreeObject.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/TreeParent.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ValuesData.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ValuesDataProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/ExecutedActionView.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/InstancesView.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/SavedStatesView.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/TransitionsView.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/ValuesView.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/popup/actions/FiacreSimulationAction.java create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/popup/actions/old.txt create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/DynamicJsonExtractor.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/StaticJsonExtractor.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/methods.txt create mode 100644 eclipse/plugins/com.irtsaintexupery.fiacre.simulator/xtend-gen/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.project create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateMSC_sites_Site.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateMSC_steps_Step.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateStep_microSteps_EnterStateStep.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateStep_microSteps_MicroStep.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateStep_microSteps_SendStep.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateStep_microSteps_SynchronisationStep.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/EnterStateStep.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/MSC.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/MicroStep.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/SendStep.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/Site.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/Step.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/SynchronisationStep.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/EnterStateStepItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MSCEditPlugin.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MSCItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MicroStepItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MscItemProviderAdapterFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SendStepItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SiteItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/StepItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SynchronisationStepItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.project create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/icons/full/obj16/MscModelFile.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/icons/full/wizban/NewMsc.gif create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MSCEditorPlugin.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscActionBarContributor.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscEditor.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscModelWizard.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.project create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/model/MSC.ecore create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/model/MSC.genmodel create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/EnterStateStep.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MSC.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MicroStep.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MscFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MscPackage.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/SendStep.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/Site.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/Step.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/SynchronisationStep.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/EnterStateStepImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MSCImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MicroStepImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MscFactoryImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MscPackageImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SendStepImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SiteImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/StepImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SynchronisationStepImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/util/MscAdapterFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/util/MscSwitch.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/.classpath create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/.project create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/build.properties create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_DecimalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_LowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_NaturalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_VariableLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_DecimalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_InfiniteUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_NaturalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_UpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_VariableUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_index_VariableDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_variable_VariableDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlock_local_PortSet.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelDeclaration_value_ChannelType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_body_Composition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_localPorts_LocalPortsDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_ports_PortsDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_priorities_PriorityDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCompositeBlock_composition_Composition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComposition_blocks_Block.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComposition_blocks_CompositeBlock.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComposition_blocks_InstanceDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComposition_global_PortSet.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_elseif_ExtendedConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_index_VariableDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_variable_VariableDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_variable_VariableDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInstanceDeclaration_instance_ComponentInstance.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_index_VariableDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_index_VariableDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_DecimalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_LowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_NaturalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_VariableLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_upper_DecimalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_upper_InfiniteUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_upper_NaturalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_upper_UpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_upper_VariableUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_left_DecimalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_left_LowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_left_NaturalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_left_VariableLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_ports_PortDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_DecimalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_InfiniteUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_NaturalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_UpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_VariableUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_type_ChannelType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_ChannelDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_ComponentDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_ConstantDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_Declaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_FunctionDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_ParameterizedDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_ProcessDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_PropertyDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_TypeDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_imports_ImportDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_requirements_Requirement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_root_Root.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterizedDeclaration_parameters_ParametersDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterizedDeclaration_variables_VariablesDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_parameters_ParameterDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_item_EventSubject.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_item_StateSubject.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_item_Subject.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_item_TagSubject.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_item_ValueSubject.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_path_Path.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePath_items_NamedItem.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePath_items_NaturalItem.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePath_items_PathItem.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortsDeclaration_ports_PortDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortsDeclaration_type_ChannelType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_lower_DecimalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_lower_LowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_lower_NaturalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_lower_VariableLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_DecimalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_InfiniteUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_NaturalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_UpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_VariableUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePriorityDeclaration_groups_PriorityGroup.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_localPorts_PortsDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_ports_PortsDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_priorities_PriorityDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_states_StateDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_transitions_Transition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordExpression_fields_FieldExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_fields_RecordFieldDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordType_fields_RecordFields.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_index_VariableDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_source_TransitionSource.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_tags_UnionTagDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionType_tags_UnionTags.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_variables_VariableDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_DecimalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_LowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_NaturalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_VariableLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_right_DecimalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_right_InfiniteUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_right_NaturalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_right_UpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_right_VariableUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AbsencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Addition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AllExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AllProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AlwaysPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AnyPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AppendExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ArrayAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ArrayAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ArrayExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ArrayType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AssignAnyStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AssignStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BasicType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Block.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BlockStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BooleanLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BooleanType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BoundDeclarationUse.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/CaseStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ChannelDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ChannelType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonGreater.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonGreaterEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonLesser.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonLesserEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonNotEqual.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComponentDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComponentInstance.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/CompositeBlock.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Composition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Conditional.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Conjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstantDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstantDeclarationUse.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstantPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstructionExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstructorPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/DeadlockFreePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/DecimalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/DecimalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Declaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Disjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Division.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/EnqueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/EnterStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/EventSubject.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ExistsExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ExistsProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Expression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ExpressionDeclarationUse.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ExtendedConditionalStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/FalseLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/FieldExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ForeachStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/FunctionDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/IdentifierExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/IdentifierPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Implication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ImportDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/InfiniteUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/InfinitelyOftenPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/InstanceDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/IntegerPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/IntegerType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLAll.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLExists.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLRelease.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUnaryAlways.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUnaryEventually.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUnaryNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUnaryNext.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUntil.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLVariable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LeadsToPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LeaveStateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LiteralExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LocalPortsDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LoopStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Model.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Modulo.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/MortalPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Multiplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NamedElement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NamedItem.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalItem.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NullStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Observable.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/OnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ParameterDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ParameterizedDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ParametersDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Path.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PathDeclarationUse.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PathEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PathItem.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Pattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PatternDeclarationUse.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PatternProperty.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PatternStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PortDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PortSet.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PortsDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PrecedesPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PresencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PriorityDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PriorityGroup.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ProcessDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Projection.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Property.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyConjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyDeclarationUse.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyDisjunction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyImplication.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyNegation.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/QueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/QueueType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RangeType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReceiveStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordAccessExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordAccessPattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordFieldDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordFieldDeclarationUse.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordFields.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReferenceDeclarationUse.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReferenceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReferencedType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Requirement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReturnStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Root.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RootDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/SelectStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/SendStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/SequencePattern.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StateDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StateEvent.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StateSubject.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Statement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StatementChoice.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StatementSequence.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Subject.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Substraction.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TagSubject.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TaggedStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ToStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Transition.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TransitionSource.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TrueLiteral.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TupleType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Type.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TypeDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TypeDeclarationUse.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryCoerceExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryDeQueueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryEmptyExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryFirstExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryFullExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryLengthExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryMinusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryNegationExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryPlusExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnionTagDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnionTagDeclarationUse.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnionTags.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnionType.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnlessStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ValueExpression.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ValueSubject.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/VariableDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/VariableLowerBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/VariableUpperBound.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/VariablesDeclaration.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/WaitStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/WhileStatement.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/plugin.properties create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/plugin.xml create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AbsencePatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AdditionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AllExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AllPropertyItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AlwaysPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AnyPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AppendExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayAccessExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayAccessPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AssignAnyStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AssignStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BasicTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BlockItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BlockStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BooleanLiteralItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BooleanTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BoundDeclarationUseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CaseStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ChannelDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ChannelTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonEqualItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonGreaterEqualItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonGreaterItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonLesserEqualItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonLesserItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonNotEqualItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComponentDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComponentInstanceItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CompositeBlockItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CompositionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConditionalItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConditionalStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConjunctionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantDeclarationUseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstructionExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstructorPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DeadlockFreePatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DecimalLowerBoundItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DecimalUpperBoundItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DisjunctionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DivisionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EnqueueExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EnterStateEventItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EventSubjectItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExistsExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExistsPropertyItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExpressionDeclarationUseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExtendedConditionalStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FalseLiteralItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FiacreEditPlugin.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FiacreItemProviderAdapterFactory.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FieldExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ForeachStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FunctionDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IdentifierExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IdentifierPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ImplicationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ImportDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InfiniteUpperBoundItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InfinitelyOftenPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InstanceDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IntegerPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IntegerTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLAllItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLConjunctionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLDisjunctionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLExistsItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLImplicationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLPropertyItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLReleaseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryAlwaysItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryEventuallyItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryNegationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryNextItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUntilItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLVariableItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LeadsToPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LeaveStateEventItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LiteralExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LocalPortsDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LoopStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LowerBoundItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ModelItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ModuloItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/MortalPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/MultiplicationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NamedElementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NamedItemItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalItemItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalLiteralItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalLowerBoundItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalUpperBoundItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NullStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableConjunctionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableDisjunctionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableEventItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableImplicationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableNegationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/OnStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParameterDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParameterizedDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParametersDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathDeclarationUseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathEventItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathItemItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternDeclarationUseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternPropertyItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortSetItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortsDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PrecedesPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PresencePatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PriorityDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PriorityGroupItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ProcessDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ProjectionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyConjunctionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDeclarationUseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDisjunctionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyImplicationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyNegationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/QueueExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/QueueTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RangeTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReceiveStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordAccessExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordAccessPatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldDeclarationUseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldsItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferenceDeclarationUseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferenceExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferencedTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RequirementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReturnStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RootDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RootItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SelectStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SendStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SequencePatternItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateEventItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateSubjectItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementChoiceItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementSequenceItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SubjectItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SubstractionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TagSubjectItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TaggedStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ToStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TransitionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TransitionSourceItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TrueLiteralItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TupleTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeDeclarationUseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryCoerceExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryDeQueueExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryEmptyExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryFirstExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryFullExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryLengthExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryMinusExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryNegationExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryPlusExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagDeclarationUseItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagsItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTypeItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnlessStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UpperBoundItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ValueExpressionItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ValueSubjectItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableLowerBoundItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableUpperBoundItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariablesDeclarationItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/WaitStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/WhileStatementItemProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/.classpath create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/.project create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/build.properties create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/icons/full/obj16/FiacreModelFile.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/icons/full/wizban/NewFiacre.gif create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/plugin.properties create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/plugin.xml create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreActionBarContributor.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreEditor.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreEditorPlugin.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreModelWizard.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/.classpath create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/.project create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/.settings/org.eclipse.core.resources.prefs create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/build.properties create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/FiacreParser.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/PartialFiacreContentAssistParser.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacre.g create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacre.tokens create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacreLexer.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacreParser.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/src/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ide/xtend-gen/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/.classpath create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/.project create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/.settings/org.eclipse.core.resources.prefs create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/build.properties create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/plugin.xml create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/plugin.xml_gen create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/AbstractFiacreUiModule.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/FiacreExecutableExtensionFactory.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/contentassist/AbstractFiacreProposalProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/internal/XtextActivator.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/FiacreUiModule.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/contentassist/FiacreProposalProvider.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/labeling/FiacreDescriptionLabelProvider.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/labeling/FiacreLabelProvider.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/outline/FiacreOutlineTreeProvider.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/quickfix/FiacreQuickfixProvider.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/contentassist/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/labeling/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/outline/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/quickfix/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/.antlr-generator-3.2.0-patch.jar create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/.classpath create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/.launch/Generate Language Infrastructure (fr.irit.fiacre.xtext).launch create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/.project create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/.settings/org.eclipse.core.resources.prefs create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/build.properties create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/model/generated/Fiacre.ecore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/model/generated/Fiacre.genmodel create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/plugin.properties create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/plugin.xml create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/plugin.xml_gen create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/AbstractFiacreRuntimeModule.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/Fiacre.xtextbin create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/FiacreStandaloneSetupGenerated.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AbsencePattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Addition.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AllExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AllProperty.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AlwaysPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AnyPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AppendExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayAccessExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayAccessPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AssignAnyStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AssignStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BasicType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Block.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BlockStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BooleanLiteral.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BooleanType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BoundDeclarationUse.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/CaseStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ChannelDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ChannelType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonEqual.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonGreater.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonGreaterEqual.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonLesser.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonLesserEqual.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonNotEqual.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComponentDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComponentInstance.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/CompositeBlock.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Composition.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Conditional.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConditionalStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Conjunction.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantDeclarationUse.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstructionExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstructorPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DeadlockFreePattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DecimalLowerBound.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DecimalUpperBound.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Declaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Disjunction.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Division.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EnqueueExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EnterStateEvent.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EventSubject.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExistsExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExistsProperty.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Expression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExpressionDeclarationUse.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExtendedConditionalStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FalseLiteral.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FiacreFactory.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FiacrePackage.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FieldExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ForeachStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FunctionDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IdentifierExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IdentifierPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Implication.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ImportDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InfiniteUpperBound.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InfinitelyOftenPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InstanceDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IntegerPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IntegerType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLAll.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLConjunction.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLDisjunction.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLExists.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLImplication.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLProperty.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLRelease.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryAlways.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryEventually.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryNegation.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryNext.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUntil.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLVariable.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LeadsToPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LeaveStateEvent.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LiteralExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LocalPortsDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LoopStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LowerBound.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Model.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Modulo.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/MortalPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Multiplication.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NamedElement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NamedItem.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalItem.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalLiteral.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalLowerBound.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalUpperBound.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NullStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Observable.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableConjunction.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableDisjunction.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableEvent.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableImplication.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableNegation.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/OnStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParameterDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParameterizedDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParametersDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Path.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathDeclarationUse.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathEvent.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathItem.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Pattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternDeclarationUse.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternProperty.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortSet.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortsDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PrecedesPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PresencePattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PriorityDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PriorityGroup.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ProcessDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Projection.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Property.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyConjunction.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDeclarationUse.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDisjunction.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyImplication.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyNegation.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/QueueExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/QueueType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RangeType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReceiveStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordAccessExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordAccessPattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFieldDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFieldDeclarationUse.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFields.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferenceDeclarationUse.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferenceExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferencedType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Requirement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReturnStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Root.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RootDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SelectStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SendStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SequencePattern.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateEvent.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateSubject.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Statement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StatementChoice.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StatementSequence.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Subject.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Substraction.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TagSubject.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TaggedStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ToStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Transition.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TransitionSource.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TrueLiteral.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TupleType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Type.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TypeDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TypeDeclarationUse.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryCoerceExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryDeQueueExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryEmptyExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryFirstExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryFullExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryLengthExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryMinusExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryNegationExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryPlusExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTagDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTagDeclarationUse.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTags.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionType.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnlessStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UpperBound.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ValueExpression.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ValueSubject.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableLowerBound.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableUpperBound.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariablesDeclaration.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/WaitStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/WhileStatement.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AbsencePatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AdditionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AllExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AllPropertyImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AlwaysPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AnyPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AppendExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayAccessExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayAccessPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AssignAnyStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AssignStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BasicTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BlockImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BlockStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BooleanLiteralImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BooleanTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BoundDeclarationUseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CaseStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ChannelDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ChannelTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonEqualImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonGreaterEqualImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonGreaterImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonLesserEqualImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonLesserImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonNotEqualImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComponentDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComponentInstanceImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CompositeBlockImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CompositionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConditionalImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConditionalStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConjunctionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantDeclarationUseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstructionExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstructorPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DeadlockFreePatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DecimalLowerBoundImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DecimalUpperBoundImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DisjunctionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DivisionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EnqueueExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EnterStateEventImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EventSubjectImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExistsExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExistsPropertyImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExpressionDeclarationUseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExtendedConditionalStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FalseLiteralImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FiacreFactoryImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FiacrePackageImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FieldExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ForeachStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FunctionDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IdentifierExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IdentifierPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ImplicationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ImportDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InfiniteUpperBoundImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InfinitelyOftenPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InstanceDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IntegerPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IntegerTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLAllImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLConjunctionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLDisjunctionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLExistsImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLImplicationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLPropertyImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLReleaseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryAlwaysImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryEventuallyImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryNegationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryNextImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUntilImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLVariableImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LeadsToPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LeaveStateEventImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LiteralExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LocalPortsDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LoopStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LowerBoundImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ModelImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ModuloImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/MortalPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/MultiplicationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NamedElementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NamedItemImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalItemImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalLiteralImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalLowerBoundImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalUpperBoundImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NullStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableConjunctionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableDisjunctionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableEventImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableImplicationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableNegationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/OnStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParameterDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParameterizedDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParametersDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathDeclarationUseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathEventImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathItemImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternDeclarationUseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternPropertyImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortSetImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortsDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PrecedesPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PresencePatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PriorityDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PriorityGroupImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ProcessDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ProjectionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyConjunctionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDeclarationUseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDisjunctionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyImplicationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyNegationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/QueueExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/QueueTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RangeTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReceiveStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordAccessExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordAccessPatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldDeclarationUseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldsImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferenceDeclarationUseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferenceExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferencedTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RequirementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReturnStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RootDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RootImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SelectStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SendStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SequencePatternImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateEventImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateSubjectImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementChoiceImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementSequenceImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SubjectImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SubstractionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TagSubjectImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TaggedStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ToStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TransitionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TransitionSourceImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TrueLiteralImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TupleTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeDeclarationUseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryCoerceExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryDeQueueExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryEmptyExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryFirstExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryFullExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryLengthExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryMinusExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryNegationExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryPlusExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagDeclarationUseImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagsImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTypeImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnlessStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UpperBoundImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ValueExpressionImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ValueSubjectImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableLowerBoundImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableUpperBoundImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariablesDeclarationImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/WaitStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/WhileStatementImpl.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/fiacre.loadinitialization_ecore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/util/FiacreAdapterFactory.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/util/FiacreSwitch.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/FiacreAntlrTokenFileProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/FiacreParser.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacre.g create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacre.tokens create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacreLexer.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacreParser.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/scoping/AbstractFiacreScopeProvider.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/serializer/FiacreSemanticSequencer.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/serializer/FiacreSyntacticSequencer.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/services/FiacreGrammarAccess.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/validation/AbstractFiacreValidator.java create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/Fiacre.xtext create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/FiacreRuntimeModule.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/FiacreStandaloneSetup.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/GenerateFiacre.mwe2 create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/generator/FiacreGenerator.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/scoping/FiacreScopeProvider.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/validation/FiacreValidator.xtend create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/generator/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/scoping/.gitignore create mode 100644 eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/validation/.gitignore create mode 100644 eclipse/plugins/fr.irit.xtext.xmi/.classpath create mode 100644 eclipse/plugins/fr.irit.xtext.xmi/.gitignore create mode 100644 eclipse/plugins/fr.irit.xtext.xmi/.project create mode 100644 eclipse/plugins/fr.irit.xtext.xmi/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/fr.irit.xtext.xmi/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/fr.irit.xtext.xmi/build.properties create mode 100644 eclipse/plugins/fr.irit.xtext.xmi/plugin.xml create mode 100644 eclipse/plugins/fr.irit.xtext.xmi/src/fr/irit/xtext/xmi/Activator.java create mode 100644 eclipse/plugins/fr.irit.xtext.xmi/src/fr/irit/xtext/xmi/popup/actions/XTextToXmiAction.java create mode 100644 eclipse/plugins/fr.laas.libtts/.classpath create mode 100644 eclipse/plugins/fr.laas.libtts/.gitignore create mode 100644 eclipse/plugins/fr.laas.libtts/.project create mode 100644 eclipse/plugins/fr.laas.libtts/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/fr.laas.libtts/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/fr.laas.libtts/build.properties create mode 100644 eclipse/plugins/fr.laas.libtts/lib/httpclient-4.2.5.jar create mode 100644 eclipse/plugins/fr.laas.libtts/lib/httpcore-4.2.4.jar create mode 100644 eclipse/plugins/fr.laas.libtts/lib/json-simple-1.1.jar create mode 100644 eclipse/plugins/fr.laas.libtts/lib/libthrift-0.9.2-javadoc.jar create mode 100644 eclipse/plugins/fr.laas.libtts/lib/libthrift-0.9.2.jar create mode 100644 eclipse/plugins/fr.laas.libtts/plugin.xml create mode 100644 eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/Activator.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/FiacreSimulatorPreferencePage.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/LibTTS.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/TTSSimulator.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/Tools.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/Clock.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/Error.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/Interval.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/InvalidDelay.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/InvalidPath.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/Net.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/NotFireable.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/Place.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/StateNotFound.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/TTS.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/TTSState.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/Transition.java create mode 100644 eclipse/plugins/fr.laas.libtts/src/tts/TransitionNotFound.java diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.classpath b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.classpath new file mode 100644 index 0000000..22f3064 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.gitignore b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.project b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.project new file mode 100644 index 0000000..9528732 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/.project @@ -0,0 +1,28 @@ + + + com.irtsaintexupery.fiacre.instance.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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/META-INF/MANIFEST.MF b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/META-INF/MANIFEST.MF new file mode 100644 index 0000000..ffefb39 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: com.irtsaintexupery.fiacre.instance.edit;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: com.irtsaintexupery.fiacre.instance.fiacreinstance.provider.FiacreInstanceEditPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: com.irtsaintexupery.fiacre.instance.fiacreinstance.provider +Require-Bundle: org.eclipse.core.runtime, + com.irtsaintexupery.fiacre.instance;visibility:=reexport, + org.eclipse.emf.edit;visibility:=reexport, + fr.irit.fiacre.xtext;visibility:=reexport, + fr.irit.fiacre.xtext.edit;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/build.properties b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/build.properties new file mode 100644 index 0000000..4ffd671 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/build.properties @@ -0,0 +1,20 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +# + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin/ diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateBlockInstance_blockInstances_ComponentDeclarationInstance.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateBlockInstance_blockInstances_ComponentDeclarationInstance.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8b67b8143df98aa70ecda249c8063788e77d296 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zK*WIz+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`OM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJe)?i!! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateBlockInstance_blockInstances_ProcessDeclarationInstance.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateBlockInstance_blockInstances_ProcessDeclarationInstance.gif new file mode 100644 index 0000000000000000000000000000000000000000..daa2b9d19cf6ab573f5ec5aa81fa52c0f1e0fe06 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gopC>8X>ZF?$gO1vLZx;)JpoZBm5B0{~=OVM71_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_instance_ComponentDeclarationInstance.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_instance_ComponentDeclarationInstance.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5b2b6f12daf230ef5ed1c16192793d83c379863 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zK*WKJW5GSUrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`OF7{yy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_instance_ProcessDeclarationInstance.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_instance_ProcessDeclarationInstance.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0c6a283e7f40ed4044f45d370f41899f40db5ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2go=U+_P)C8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4vzMP>7wOZQ zbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E8LR=; C++pwl literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_statementBlocks_ExecutableStatementBlock.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_statementBlocks_ExecutableStatementBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..82787155cb8909b2a7206f5c86442d4e5348e125 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@wm6seG9RB~0pC51k|Gs@g zLjyz{$T$|3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AK%Vbsn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_statementBlocks_FireableStatementBlock.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateInstanceModel_statementBlocks_FireableStatementBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..263f6e69405127d6adde86121b4474d22df5f05d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WyvS_w1Uk21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFQbVT}L) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateProcessDeclarationInstance_instanceStatementBlocks_InstanceEnabledStatementBlock.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateProcessDeclarationInstance_instanceStatementBlocks_InstanceEnabledStatementBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f8b380a87e2d90bfca2969b215978f3ad949801 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+cVIXVcA|nP<`(4mj+Zt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateProcessDeclarationInstance_instanceStatementBlocks_InstanceExecutedStatementBlock.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateProcessDeclarationInstance_instanceStatementBlocks_InstanceExecutedStatementBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..1f765e12d392c54dc1958e6f647e503ec4fa7b8c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NQ$64Gj(s4*&nh&yTnNf8QR+ zz4T(wrkg!8&!jaRaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S^|ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateProcessDeclarationInstance_instanceStatementBlocks_InstanceFireableStatementBlock.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateProcessDeclarationInstance_instanceStatementBlocks_InstanceFireableStatementBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbf242da6a942a6ad7b228d75fc1caf021438804 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ym+za=FOfnXVMNFaQOc}etx|D|NHh0 z4GouG?Adg)XXcr-h64_}rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OKW}5+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Addition.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..aedabe1ea23f87674ffde64ebbf1d7758a2cb7b7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5K*q7);9b+zfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE6>VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ArrayAccessExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c7ede6f34616d1803eb45b127077c55cdf857f8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cPD*IC$4|H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlp@nLrW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ArrayExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1bcce98a01dcdb42423edafe4a7cb6d308a6bb74 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WyvS2k)A$21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE2BVN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_BooleanLiteral.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a66ef85f68e38e9748ab052c98ab20e6893082 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kZ~+Hc-M3_Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{~vrVM71_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonEqual.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..59ae8d865a4beec391c928a383c9988f078d5dd6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}T3l82jT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuYxCSb_` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonGreater.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bd29bdb694ebed0a531cdea6cd65968a5b5f0a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE6>VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonGreaterEqual.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b3bc875d1e766d5ee247680262b31588210dc53 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F? z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWD5V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonLesserEqual.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c7ede6f34616d1803eb45b127077c55cdf857f8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cPD*IC$4|H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlp@nLrW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonNotEqual.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..6102025642c646a07bce99a4e50d2a8203dcf68b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5K*q7);9b+zfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm9tz!lN literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ConstructionExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..201754f6409c20e4f398218d90453177b59a9925 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2go=U9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm9tz!lN literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Division.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..1852a3ffac01ad6fa702dc7a1bed9981394a6a35 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09*9b_E< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_EnqueueExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d36652c8326550a13e13daf1abe85ea99599161d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l~2Y9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pcSr|bq z9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@Um!Du4 z>C>8X>ZF?$gO1vLZx;)JpoZBm5J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlp@nLrW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ExplicitArrayExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ExplicitArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e5d4d731cc6a6831beb9458fc53377bdceb2b114 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09*fMgv2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Expression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3a1336d8cb8fe3c12393553d26945de5a5e6ceb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2go=U9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7)8DqKt literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_IdentifierExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb228a3ccd1bcf7560401e897794807d1c1029ee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~x796~5x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWH*V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ImplicitArrayExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ImplicitArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3da85aa082de87c2ce0696077060e23659e681ab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEs_S=+QUx=ijfay!8Kn{QP+P|M%@1 z8X689I520<93bOZaPY3_YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7(Q)9XS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_LiteralExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..669fba2024a61ddae843f0bea8c3af170ba7d3cf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AvVPt>+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Modulo.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..1bcce98a01dcdb42423edafe4a7cb6d308a6bb74 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WyvS2k)A$21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE2BVN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Multiplication.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bd29bdb694ebed0a531cdea6cd65968a5b5f0a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE6>VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_NaturalLiteral.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3a1336d8cb8fe3c12393553d26945de5a5e6ceb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2go=U9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE6>VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_QueueExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..290c50386bd155169aa324d64908434db5e28a6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO5Kn75D*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_ z6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X$UdnFC}T3l82jT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuYxj9|$C literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_RecordExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..294545323507a7e929d452c7b51d72b0398b9172 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfQ)0o!Mmob0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWH*V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ReferenceExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..79ceed0345ae313ac0453ab69d946775807012b2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AwCuD#C literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Substraction.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..17508af6a6c1ab5d47b1c812cee6e6a1787ce586 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFfv1qbh%t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJ^q+pf+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_TrueLiteral.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6b90e067e2dd8cf04f943c118531a7bb16c10d77 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~x796~5x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXGNCVW$89 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryFullExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..00da844bb39721a6b117d055c12bde522647dba5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kZ~+Hc-M3_Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{~tjVM71_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryLengthExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..201754f6409c20e4f398218d90453177b59a9925 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2go=U9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXGRNVW$89 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryNegationExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4f9a608ed4450bca2e5320149157b7d49639f513 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}T3l82jT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZC|6u$8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryPlusExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..294545323507a7e929d452c7b51d72b0398b9172 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfQ)0o!Mmob0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWH*V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ValueExpression.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/ctool16/CreateVariableDeclarationInstance_currentValue_ValueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6102025642c646a07bce99a4e50d2a8203dcf68b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5K*q7);9b+zfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~2)>|nFUJDj}wbA=HP3@{#dCy8s Se%_b*-m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/CompositionInstance.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/CompositionInstance.gif new file mode 100644 index 0000000000000000000000000000000000000000..48e3cf2268736efbb8bc3c5bd29315702f2b38c4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-JzEOd3$i!NEcC zCkrD311EzHNGHe)1{OVolb);hTD<=9O@;qqq3d>2)>|nFUJDj}wbA=HP3@{#dCy8s Se%~uRaQAn7P!5RSBPcTCO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/ExecutableStatementBlock.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/ExecutableStatementBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..134551bff7eb3f0beb14a6c4a270a2a94f782ec5 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH>=1mmC}% z6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqynw9sg T)a2J)&e-X8WTKETBZD;nt%5J2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/ExecutedStatementBlock.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/ExecutedStatementBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a9bc7514facefe049e8f5d98bb2e1e37f03c0c2 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np;#e0_7{=>7fk zFD+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaSD>A77 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/FireableStatementBlock.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/FireableStatementBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3dc5a9ad8159548d5ada4a1cd545ec1d4de029c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl+bt_2@EX1QjK zPFtJePZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9ULNDL| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/InstanceEnabledStatementBlock.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/InstanceEnabledStatementBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..136e3b27269e84a045f9b528614d7dfd316e444c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl)**MftOSz4~q z(P>ls$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wTSeg|6F8S#PBzcr94?)kg2*G_|W{;I&}kR~x;L)6}k- WmG`XFk literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/InstanceModel.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/InstanceModel.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb1755a712505aeaaa447d9b1cc5940e602f87b6 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;~uRaQAn7P!5RSBPcTCO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/ProcessDeclarationInstance.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/ProcessDeclarationInstance.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4bc22dd17e82d9350631bd55ad9671957cdaf50 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Noa>?Adg)XXcr- zh64_YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwrZD0F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/VariableDeclarationInstance.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/icons/full/obj16/VariableDeclarationInstance.gif new file mode 100644 index 0000000000000000000000000000000000000000..30f0c48da8d4450f7e94a696c4de0a7cc41aa728 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;~uRaQAn7P!5RR`@-PYj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/plugin.properties b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/plugin.properties new file mode 100644 index 0000000..0298022 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/plugin.properties @@ -0,0 +1,69 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +# + +pluginName = FiacreInstance Edit Support +providerName = www.example.org + +_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_InstanceModel_type = Instance Model +_UI_StatementBlock_type = Statement Block +_UI_ExecutedStatementBlock_type = Executed Statement Block +_UI_ExecutableStatementBlock_type = Executable Statement Block +_UI_FireableStatementBlock_type = Fireable Statement Block +_UI_EnabledStatementBlock_type = Enabled Statement Block +_UI_BlockInstance_type = Block Instance +_UI_CompositionInstance_type = Composition Instance +_UI_DeclarationInstance_type = Declaration Instance +_UI_ComponentDeclarationInstance_type = Component Declaration Instance +_UI_ProcessDeclarationInstance_type = Process Declaration Instance +_UI_InstanceStatementBlock_type = Instance Statement Block +_UI_InstanceExecutedStatementBlock_type = Instance Executed Statement Block +_UI_InstanceExecutableStatementBlock_type = Instance Executable Statement Block +_UI_InstanceFireableStatementBlock_type = Instance Fireable Statement Block +_UI_InstanceEnabledStatementBlock_type = Instance Enabled Statement Block +_UI_VariableDeclarationInstance_type = Variable Declaration Instance +_UI_Unknown_type = Object + +_UI_Unknown_datatype= Value + +_UI_InstanceModel_name_feature = Name +_UI_InstanceModel_model_feature = Model +_UI_InstanceModel_instance_feature = Instance +_UI_InstanceModel_statementBlocks_feature = Statement Blocks +_UI_StatementBlock_instanceStatementBlocks_feature = Instance Statement Blocks +_UI_StatementBlock_name_feature = Name +_UI_ExecutableStatementBlock_date_feature = Date +_UI_BlockInstance_blockInstances_feature = Block Instances +_UI_CompositionInstance_composition_feature = Composition +_UI_DeclarationInstance_variableDeclarationInstances_feature = Variable Declaration Instances +_UI_DeclarationInstance_name_feature = Name +_UI_DeclarationInstance_instance_feature = Instance +_UI_ComponentDeclarationInstance_component_feature = Component +_UI_ProcessDeclarationInstance_currentState_feature = Current State +_UI_ProcessDeclarationInstance_process_feature = Process +_UI_ProcessDeclarationInstance_instanceStatementBlocks_feature = Instance Statement Blocks +_UI_InstanceStatementBlock_transitionSource_feature = Transition Source +_UI_InstanceStatementBlock_statements_feature = Statements +_UI_InstanceStatementBlock_name_feature = Name +_UI_VariableDeclarationInstance_variableDeclaration_feature = Variable Declaration +_UI_VariableDeclarationInstance_currentValue_feature = Current Value +_UI_Unknown_feature = Unspecified + +_UI_DeclarationInstance_flatname_feature = Flatname diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/plugin.xml b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/plugin.xml new file mode 100644 index 0000000..00c9490 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/plugin.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/BlockInstanceItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/BlockInstanceItemProvider.java new file mode 100644 index 0000000..535514c --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/BlockInstanceItemProvider.java @@ -0,0 +1,177 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstanceFactory; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance} object. + * + * + * @generated + */ +public class BlockInstanceItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public BlockInstanceItemProvider(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(FiacreinstancePackage.Literals.BLOCK_INSTANCE__BLOCK_INSTANCES); + } + 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 the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_BlockInstance_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(BlockInstance.class)) { + case FiacreinstancePackage.BLOCK_INSTANCE__BLOCK_INSTANCES: + 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 + (FiacreinstancePackage.Literals.BLOCK_INSTANCE__BLOCK_INSTANCES, + FiacreinstanceFactory.eINSTANCE.createCompositionInstance())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.BLOCK_INSTANCE__BLOCK_INSTANCES, + FiacreinstanceFactory.eINSTANCE.createComponentDeclarationInstance())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.BLOCK_INSTANCE__BLOCK_INSTANCES, + FiacreinstanceFactory.eINSTANCE.createProcessDeclarationInstance())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreInstanceEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ComponentDeclarationInstanceItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ComponentDeclarationInstanceItemProvider.java new file mode 100644 index 0000000..1036bde --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ComponentDeclarationInstanceItemProvider.java @@ -0,0 +1,134 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance} object. + * + * + * @generated + */ +public class ComponentDeclarationInstanceItemProvider extends DeclarationInstanceItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ComponentDeclarationInstanceItemProvider(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); + + addComponentPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Component feature. + * + * + * @generated + */ + protected void addComponentPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ComponentDeclarationInstance_component_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ComponentDeclarationInstance_component_feature", "_UI_ComponentDeclarationInstance_type"), + FiacreinstancePackage.Literals.COMPONENT_DECLARATION_INSTANCE__COMPONENT, + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns ComponentDeclarationInstance.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComponentDeclarationInstance")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ComponentDeclarationInstance)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_ComponentDeclarationInstance_type") : + getString("_UI_ComponentDeclarationInstance_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/CompositionInstanceItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/CompositionInstanceItemProvider.java new file mode 100644 index 0000000..b57687e --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/CompositionInstanceItemProvider.java @@ -0,0 +1,130 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance} object. + * + * + * @generated + */ +public class CompositionInstanceItemProvider extends BlockInstanceItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public CompositionInstanceItemProvider(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); + + addCompositionPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Composition feature. + * + * + * @generated + */ + protected void addCompositionPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_CompositionInstance_composition_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_CompositionInstance_composition_feature", "_UI_CompositionInstance_type"), + FiacreinstancePackage.Literals.COMPOSITION_INSTANCE__COMPOSITION, + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns CompositionInstance.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/CompositionInstance")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_CompositionInstance_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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/DeclarationInstanceItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/DeclarationInstanceItemProvider.java new file mode 100644 index 0000000..a799c8f --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/DeclarationInstanceItemProvider.java @@ -0,0 +1,219 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstanceFactory; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance} object. + * + * + * @generated + */ +public class DeclarationInstanceItemProvider extends BlockInstanceItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public DeclarationInstanceItemProvider(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); + addInstancePropertyDescriptor(object); + addFlatnamePropertyDescriptor(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_DeclarationInstance_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_DeclarationInstance_name_feature", "_UI_DeclarationInstance_type"), + FiacreinstancePackage.Literals.DECLARATION_INSTANCE__NAME, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Instance feature. + * + * + * @generated + */ + protected void addInstancePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_DeclarationInstance_instance_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_DeclarationInstance_instance_feature", "_UI_DeclarationInstance_type"), + FiacreinstancePackage.Literals.DECLARATION_INSTANCE__INSTANCE, + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Flatname feature. + * + * + * @generated + */ + protected void addFlatnamePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_DeclarationInstance_flatname_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_DeclarationInstance_flatname_feature", "_UI_DeclarationInstance_type"), + FiacreinstancePackage.Literals.DECLARATION_INSTANCE__FLATNAME, + 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(FiacreinstancePackage.Literals.DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES); + } + 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 the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((DeclarationInstance)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_DeclarationInstance_type") : + getString("_UI_DeclarationInstance_type") + " " + label; + } + + + /** + * This 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(DeclarationInstance.class)) { + case FiacreinstancePackage.DECLARATION_INSTANCE__NAME: + case FiacreinstancePackage.DECLARATION_INSTANCE__FLATNAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacreinstancePackage.DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES: + 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 + (FiacreinstancePackage.Literals.DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES, + FiacreinstanceFactory.eINSTANCE.createVariableDeclarationInstance())); + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/EnabledStatementBlockItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/EnabledStatementBlockItemProvider.java new file mode 100644 index 0000000..aeb212b --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/EnabledStatementBlockItemProvider.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock} object. + * + * + * @generated + */ +public class EnabledStatementBlockItemProvider extends ExecutableStatementBlockItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public EnabledStatementBlockItemProvider(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 EnabledStatementBlock.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/EnabledStatementBlock")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((EnabledStatementBlock)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_EnabledStatementBlock_type") : + getString("_UI_EnabledStatementBlock_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ExecutableStatementBlockItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ExecutableStatementBlockItemProvider.java new file mode 100644 index 0000000..146ee0c --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ExecutableStatementBlockItemProvider.java @@ -0,0 +1,142 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock} object. + * + * + * @generated + */ +public class ExecutableStatementBlockItemProvider extends StatementBlockItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ExecutableStatementBlockItemProvider(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); + + addDatePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Date feature. + * + * + * @generated + */ + protected void addDatePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ExecutableStatementBlock_date_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ExecutableStatementBlock_date_feature", "_UI_ExecutableStatementBlock_type"), + FiacreinstancePackage.Literals.EXECUTABLE_STATEMENT_BLOCK__DATE, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns ExecutableStatementBlock.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ExecutableStatementBlock")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ExecutableStatementBlock)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_ExecutableStatementBlock_type") : + getString("_UI_ExecutableStatementBlock_type") + " " + label; + } + + + /** + * This 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(ExecutableStatementBlock.class)) { + case FiacreinstancePackage.EXECUTABLE_STATEMENT_BLOCK__DATE: + 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ExecutedStatementBlockItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ExecutedStatementBlockItemProvider.java new file mode 100644 index 0000000..7c8262c --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ExecutedStatementBlockItemProvider.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock} object. + * + * + * @generated + */ +public class ExecutedStatementBlockItemProvider extends StatementBlockItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ExecutedStatementBlockItemProvider(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 ExecutedStatementBlock.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ExecutedStatementBlock")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ExecutedStatementBlock)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_ExecutedStatementBlock_type") : + getString("_UI_ExecutedStatementBlock_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FiacreInstanceEditPlugin.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FiacreInstanceEditPlugin.java new file mode 100644 index 0000000..2ae32e6 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FiacreInstanceEditPlugin.java @@ -0,0 +1,102 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + +import fr.irit.fiacre.xtext.fiacre.provider.FiacreEditPlugin; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the FiacreInstance edit plugin. + * + * + * @generated + */ +public final class FiacreInstanceEditPlugin extends EMFPlugin { + /** + * Keep track of the singleton. + * + * + * @generated + */ + public static final FiacreInstanceEditPlugin INSTANCE = new FiacreInstanceEditPlugin(); + + /** + * Keep track of the singleton. + * + * + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * + * + * @generated + */ + public FiacreInstanceEditPlugin() { + super + (new ResourceLocator [] { + FiacreEditPlugin.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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FiacreinstanceItemProviderAdapterFactory.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FiacreinstanceItemProviderAdapterFactory.java new file mode 100644 index 0000000..c3ff4ef --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FiacreinstanceItemProviderAdapterFactory.java @@ -0,0 +1,473 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.util.FiacreinstanceAdapterFactory; + +/** + * 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 FiacreinstanceItemProviderAdapterFactory extends FiacreinstanceAdapterFactory 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 FiacreinstanceItemProviderAdapterFactory() { + 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel} instances. + * + * + * @generated + */ + protected InstanceModelItemProvider instanceModelItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel}. + * + * + * @generated + */ + @Override + public Adapter createInstanceModelAdapter() { + if (instanceModelItemProvider == null) { + instanceModelItemProvider = new InstanceModelItemProvider(this); + } + + return instanceModelItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock} instances. + * + * + * @generated + */ + protected ExecutedStatementBlockItemProvider executedStatementBlockItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock}. + * + * + * @generated + */ + @Override + public Adapter createExecutedStatementBlockAdapter() { + if (executedStatementBlockItemProvider == null) { + executedStatementBlockItemProvider = new ExecutedStatementBlockItemProvider(this); + } + + return executedStatementBlockItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock} instances. + * + * + * @generated + */ + protected ExecutableStatementBlockItemProvider executableStatementBlockItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock}. + * + * + * @generated + */ + @Override + public Adapter createExecutableStatementBlockAdapter() { + if (executableStatementBlockItemProvider == null) { + executableStatementBlockItemProvider = new ExecutableStatementBlockItemProvider(this); + } + + return executableStatementBlockItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock} instances. + * + * + * @generated + */ + protected FireableStatementBlockItemProvider fireableStatementBlockItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock}. + * + * + * @generated + */ + @Override + public Adapter createFireableStatementBlockAdapter() { + if (fireableStatementBlockItemProvider == null) { + fireableStatementBlockItemProvider = new FireableStatementBlockItemProvider(this); + } + + return fireableStatementBlockItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock} instances. + * + * + * @generated + */ + protected EnabledStatementBlockItemProvider enabledStatementBlockItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock}. + * + * + * @generated + */ + @Override + public Adapter createEnabledStatementBlockAdapter() { + if (enabledStatementBlockItemProvider == null) { + enabledStatementBlockItemProvider = new EnabledStatementBlockItemProvider(this); + } + + return enabledStatementBlockItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance} instances. + * + * + * @generated + */ + protected CompositionInstanceItemProvider compositionInstanceItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance}. + * + * + * @generated + */ + @Override + public Adapter createCompositionInstanceAdapter() { + if (compositionInstanceItemProvider == null) { + compositionInstanceItemProvider = new CompositionInstanceItemProvider(this); + } + + return compositionInstanceItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance} instances. + * + * + * @generated + */ + protected ComponentDeclarationInstanceItemProvider componentDeclarationInstanceItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance}. + * + * + * @generated + */ + @Override + public Adapter createComponentDeclarationInstanceAdapter() { + if (componentDeclarationInstanceItemProvider == null) { + componentDeclarationInstanceItemProvider = new ComponentDeclarationInstanceItemProvider(this); + } + + return componentDeclarationInstanceItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance} instances. + * + * + * @generated + */ + protected ProcessDeclarationInstanceItemProvider processDeclarationInstanceItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance}. + * + * + * @generated + */ + @Override + public Adapter createProcessDeclarationInstanceAdapter() { + if (processDeclarationInstanceItemProvider == null) { + processDeclarationInstanceItemProvider = new ProcessDeclarationInstanceItemProvider(this); + } + + return processDeclarationInstanceItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock} instances. + * + * + * @generated + */ + protected InstanceExecutedStatementBlockItemProvider instanceExecutedStatementBlockItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock}. + * + * + * @generated + */ + @Override + public Adapter createInstanceExecutedStatementBlockAdapter() { + if (instanceExecutedStatementBlockItemProvider == null) { + instanceExecutedStatementBlockItemProvider = new InstanceExecutedStatementBlockItemProvider(this); + } + + return instanceExecutedStatementBlockItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock} instances. + * + * + * @generated + */ + protected InstanceFireableStatementBlockItemProvider instanceFireableStatementBlockItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock}. + * + * + * @generated + */ + @Override + public Adapter createInstanceFireableStatementBlockAdapter() { + if (instanceFireableStatementBlockItemProvider == null) { + instanceFireableStatementBlockItemProvider = new InstanceFireableStatementBlockItemProvider(this); + } + + return instanceFireableStatementBlockItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock} instances. + * + * + * @generated + */ + protected InstanceEnabledStatementBlockItemProvider instanceEnabledStatementBlockItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock}. + * + * + * @generated + */ + @Override + public Adapter createInstanceEnabledStatementBlockAdapter() { + if (instanceEnabledStatementBlockItemProvider == null) { + instanceEnabledStatementBlockItemProvider = new InstanceEnabledStatementBlockItemProvider(this); + } + + return instanceEnabledStatementBlockItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance} instances. + * + * + * @generated + */ + protected VariableDeclarationInstanceItemProvider variableDeclarationInstanceItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance}. + * + * + * @generated + */ + @Override + public Adapter createVariableDeclarationInstanceAdapter() { + if (variableDeclarationInstanceItemProvider == null) { + variableDeclarationInstanceItemProvider = new VariableDeclarationInstanceItemProvider(this); + } + + return variableDeclarationInstanceItemProvider; + } + + /** + * 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 (instanceModelItemProvider != null) instanceModelItemProvider.dispose(); + if (executedStatementBlockItemProvider != null) executedStatementBlockItemProvider.dispose(); + if (executableStatementBlockItemProvider != null) executableStatementBlockItemProvider.dispose(); + if (fireableStatementBlockItemProvider != null) fireableStatementBlockItemProvider.dispose(); + if (enabledStatementBlockItemProvider != null) enabledStatementBlockItemProvider.dispose(); + if (compositionInstanceItemProvider != null) compositionInstanceItemProvider.dispose(); + if (componentDeclarationInstanceItemProvider != null) componentDeclarationInstanceItemProvider.dispose(); + if (processDeclarationInstanceItemProvider != null) processDeclarationInstanceItemProvider.dispose(); + if (instanceExecutedStatementBlockItemProvider != null) instanceExecutedStatementBlockItemProvider.dispose(); + if (instanceFireableStatementBlockItemProvider != null) instanceFireableStatementBlockItemProvider.dispose(); + if (instanceEnabledStatementBlockItemProvider != null) instanceEnabledStatementBlockItemProvider.dispose(); + if (variableDeclarationInstanceItemProvider != null) variableDeclarationInstanceItemProvider.dispose(); + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FireableStatementBlockItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FireableStatementBlockItemProvider.java new file mode 100644 index 0000000..78d6599 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/FireableStatementBlockItemProvider.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock} object. + * + * + * @generated + */ +public class FireableStatementBlockItemProvider extends ExecutableStatementBlockItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public FireableStatementBlockItemProvider(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 FireableStatementBlock.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/FireableStatementBlock")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((FireableStatementBlock)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_FireableStatementBlock_type") : + getString("_UI_FireableStatementBlock_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceEnabledStatementBlockItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceEnabledStatementBlockItemProvider.java new file mode 100644 index 0000000..7b2e6c4 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceEnabledStatementBlockItemProvider.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock} object. + * + * + * @generated + */ +public class InstanceEnabledStatementBlockItemProvider extends InstanceExecutableStatementBlockItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public InstanceEnabledStatementBlockItemProvider(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 InstanceEnabledStatementBlock.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/InstanceEnabledStatementBlock")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((InstanceEnabledStatementBlock)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_InstanceEnabledStatementBlock_type") : + getString("_UI_InstanceEnabledStatementBlock_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceExecutableStatementBlockItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceExecutableStatementBlockItemProvider.java new file mode 100644 index 0000000..b3543b0 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceExecutableStatementBlockItemProvider.java @@ -0,0 +1,98 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutableStatementBlock; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutableStatementBlock} object. + * + * + * @generated + */ +public class InstanceExecutableStatementBlockItemProvider extends InstanceStatementBlockItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public InstanceExecutableStatementBlockItemProvider(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 the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((InstanceExecutableStatementBlock)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_InstanceExecutableStatementBlock_type") : + getString("_UI_InstanceExecutableStatementBlock_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceExecutedStatementBlockItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceExecutedStatementBlockItemProvider.java new file mode 100644 index 0000000..dfb789b --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceExecutedStatementBlockItemProvider.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock} object. + * + * + * @generated + */ +public class InstanceExecutedStatementBlockItemProvider extends InstanceStatementBlockItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public InstanceExecutedStatementBlockItemProvider(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 InstanceExecutedStatementBlock.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/InstanceExecutedStatementBlock")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((InstanceExecutedStatementBlock)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_InstanceExecutedStatementBlock_type") : + getString("_UI_InstanceExecutedStatementBlock_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceFireableStatementBlockItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceFireableStatementBlockItemProvider.java new file mode 100644 index 0000000..44a4f4c --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceFireableStatementBlockItemProvider.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock} object. + * + * + * @generated + */ +public class InstanceFireableStatementBlockItemProvider extends InstanceExecutableStatementBlockItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public InstanceFireableStatementBlockItemProvider(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 InstanceFireableStatementBlock.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/InstanceFireableStatementBlock")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((InstanceFireableStatementBlock)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_InstanceFireableStatementBlock_type") : + getString("_UI_InstanceFireableStatementBlock_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceModelItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceModelItemProvider.java new file mode 100644 index 0000000..01473a4 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceModelItemProvider.java @@ -0,0 +1,259 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstanceFactory; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel} object. + * + * + * @generated + */ +public class InstanceModelItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public InstanceModelItemProvider(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); + addModelPropertyDescriptor(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_InstanceModel_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_InstanceModel_name_feature", "_UI_InstanceModel_type"), + FiacreinstancePackage.Literals.INSTANCE_MODEL__NAME, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Model feature. + * + * + * @generated + */ + protected void addModelPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_InstanceModel_model_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_InstanceModel_model_feature", "_UI_InstanceModel_type"), + FiacreinstancePackage.Literals.INSTANCE_MODEL__MODEL, + 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(FiacreinstancePackage.Literals.INSTANCE_MODEL__INSTANCE); + childrenFeatures.add(FiacreinstancePackage.Literals.INSTANCE_MODEL__STATEMENT_BLOCKS); + } + 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 InstanceModel.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/InstanceModel")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((InstanceModel)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_InstanceModel_type") : + getString("_UI_InstanceModel_type") + " " + label; + } + + + /** + * This 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(InstanceModel.class)) { + case FiacreinstancePackage.INSTANCE_MODEL__NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacreinstancePackage.INSTANCE_MODEL__INSTANCE: + case FiacreinstancePackage.INSTANCE_MODEL__STATEMENT_BLOCKS: + 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 + (FiacreinstancePackage.Literals.INSTANCE_MODEL__INSTANCE, + FiacreinstanceFactory.eINSTANCE.createComponentDeclarationInstance())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.INSTANCE_MODEL__INSTANCE, + FiacreinstanceFactory.eINSTANCE.createProcessDeclarationInstance())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.INSTANCE_MODEL__STATEMENT_BLOCKS, + FiacreinstanceFactory.eINSTANCE.createExecutedStatementBlock())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.INSTANCE_MODEL__STATEMENT_BLOCKS, + FiacreinstanceFactory.eINSTANCE.createExecutableStatementBlock())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.INSTANCE_MODEL__STATEMENT_BLOCKS, + FiacreinstanceFactory.eINSTANCE.createFireableStatementBlock())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.INSTANCE_MODEL__STATEMENT_BLOCKS, + FiacreinstanceFactory.eINSTANCE.createEnabledStatementBlock())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreInstanceEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceStatementBlockItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceStatementBlockItemProvider.java new file mode 100644 index 0000000..cc6bb2f --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/InstanceStatementBlockItemProvider.java @@ -0,0 +1,203 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock} object. + * + * + * @generated + */ +public class InstanceStatementBlockItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public InstanceStatementBlockItemProvider(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); + + addTransitionSourcePropertyDescriptor(object); + addStatementsPropertyDescriptor(object); + addNamePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Transition Source feature. + * + * + * @generated + */ + protected void addTransitionSourcePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_InstanceStatementBlock_transitionSource_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_InstanceStatementBlock_transitionSource_feature", "_UI_InstanceStatementBlock_type"), + FiacreinstancePackage.Literals.INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE, + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Statements feature. + * + * + * @generated + */ + protected void addStatementsPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_InstanceStatementBlock_statements_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_InstanceStatementBlock_statements_feature", "_UI_InstanceStatementBlock_type"), + FiacreinstancePackage.Literals.INSTANCE_STATEMENT_BLOCK__STATEMENTS, + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Name feature. + * + * + * @generated + */ + protected void addNamePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_InstanceStatementBlock_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_InstanceStatementBlock_name_feature", "_UI_InstanceStatementBlock_type"), + FiacreinstancePackage.Literals.INSTANCE_STATEMENT_BLOCK__NAME, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((InstanceStatementBlock)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_InstanceStatementBlock_type") : + getString("_UI_InstanceStatementBlock_type") + " " + label; + } + + + /** + * This 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(InstanceStatementBlock.class)) { + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__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); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreInstanceEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ProcessDeclarationInstanceItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ProcessDeclarationInstanceItemProvider.java new file mode 100644 index 0000000..aa9e379 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/ProcessDeclarationInstanceItemProvider.java @@ -0,0 +1,212 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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.ViewerNotification; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstanceFactory; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance} object. + * + * + * @generated + */ +public class ProcessDeclarationInstanceItemProvider extends DeclarationInstanceItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ProcessDeclarationInstanceItemProvider(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); + + addCurrentStatePropertyDescriptor(object); + addProcessPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Current State feature. + * + * + * @generated + */ + protected void addCurrentStatePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ProcessDeclarationInstance_currentState_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ProcessDeclarationInstance_currentState_feature", "_UI_ProcessDeclarationInstance_type"), + FiacreinstancePackage.Literals.PROCESS_DECLARATION_INSTANCE__CURRENT_STATE, + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Process feature. + * + * + * @generated + */ + protected void addProcessPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ProcessDeclarationInstance_process_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ProcessDeclarationInstance_process_feature", "_UI_ProcessDeclarationInstance_type"), + FiacreinstancePackage.Literals.PROCESS_DECLARATION_INSTANCE__PROCESS, + 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(FiacreinstancePackage.Literals.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS); + } + 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 ProcessDeclarationInstance.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ProcessDeclarationInstance")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ProcessDeclarationInstance)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_ProcessDeclarationInstance_type") : + getString("_UI_ProcessDeclarationInstance_type") + " " + label; + } + + + /** + * This 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(ProcessDeclarationInstance.class)) { + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS: + 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 + (FiacreinstancePackage.Literals.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS, + FiacreinstanceFactory.eINSTANCE.createInstanceExecutedStatementBlock())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS, + FiacreinstanceFactory.eINSTANCE.createInstanceFireableStatementBlock())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS, + FiacreinstanceFactory.eINSTANCE.createInstanceEnabledStatementBlock())); + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/StatementBlockItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/StatementBlockItemProvider.java new file mode 100644 index 0000000..49fbd1d --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/StatementBlockItemProvider.java @@ -0,0 +1,180 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import java.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock} object. + * + * + * @generated + */ +public class StatementBlockItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public StatementBlockItemProvider(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); + + addInstanceStatementBlocksPropertyDescriptor(object); + addNamePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Instance Statement Blocks feature. + * + * + * @generated + */ + protected void addInstanceStatementBlocksPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_StatementBlock_instanceStatementBlocks_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_StatementBlock_instanceStatementBlocks_feature", "_UI_StatementBlock_type"), + FiacreinstancePackage.Literals.STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS, + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Name feature. + * + * + * @generated + */ + protected void addNamePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_StatementBlock_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_StatementBlock_name_feature", "_UI_StatementBlock_type"), + FiacreinstancePackage.Literals.STATEMENT_BLOCK__NAME, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((StatementBlock)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_StatementBlock_type") : + getString("_UI_StatementBlock_type") + " " + label; + } + + + /** + * This 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(StatementBlock.class)) { + case FiacreinstancePackage.STATEMENT_BLOCK__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); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreInstanceEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/VariableDeclarationInstanceItemProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/VariableDeclarationInstanceItemProvider.java new file mode 100644 index 0000000..604b1f9 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.edit/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/provider/VariableDeclarationInstanceItemProvider.java @@ -0,0 +1,263 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; + +import java.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.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance} object. + * + * + * @generated + */ +public class VariableDeclarationInstanceItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public VariableDeclarationInstanceItemProvider(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); + + addVariableDeclarationPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Variable Declaration feature. + * + * + * @generated + */ + protected void addVariableDeclarationPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_VariableDeclarationInstance_variableDeclaration_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_VariableDeclarationInstance_variableDeclaration_feature", "_UI_VariableDeclarationInstance_type"), + FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__VARIABLE_DECLARATION, + 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(FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_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 VariableDeclarationInstance.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/VariableDeclarationInstance")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_VariableDeclarationInstance_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(VariableDeclarationInstance.class)) { + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__CURRENT_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 + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createValueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreInstanceEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.classpath b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.classpath new file mode 100644 index 0000000..22f3064 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.gitignore b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.project b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.project new file mode 100644 index 0000000..e3692ee --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/.project @@ -0,0 +1,28 @@ + + + com.irtsaintexupery.fiacre.instance.editor + + + + + + 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/META-INF/MANIFEST.MF b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/META-INF/MANIFEST.MF new file mode 100644 index 0000000..c08a651 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: com.irtsaintexupery.fiacre.instance.editor;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: com.irtsaintexupery.fiacre.instance.fiacreinstance.presentation.FiacreInstanceEditorPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: com.irtsaintexupery.fiacre.instance.fiacreinstance.presentation +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.resources;visibility:=reexport, + com.irtsaintexupery.fiacre.instance.edit;visibility:=reexport, + org.eclipse.emf.ecore.xmi;visibility:=reexport, + org.eclipse.emf.edit.ui;visibility:=reexport, + org.eclipse.ui.ide;visibility:=reexport, + fr.irit.fiacre.xtext.edit;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/build.properties b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/build.properties new file mode 100644 index 0000000..897f7c4 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/build.properties @@ -0,0 +1,20 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +# + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/icons/full/obj16/FiacreinstanceModelFile.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/icons/full/obj16/FiacreinstanceModelFile.gif new file mode 100644 index 0000000000000000000000000000000000000000..366f9ff33929abad861653d50512f3d93bac89ca GIT binary patch literal 346 zcmZ?wbhEHb6krfwxXQrL(9jScAHRS9{{Q#qA2@IT$YuD?z`*by$o~Hy%=-U-&z=`O zJvY+~kK=5pV??4Nv1r&d>FfuT(G3bB{1o?@9t=yrx zz(Yq!@r24Hjh2de7kFDVe@3jASy{;Rs>=GN=R_f`cDZK)OCtn#a`HDthiFE*{cwNS zC?DA+uA;)r+QQo;?#fiq%FzpH0zKg&cH302j$)SP}Ki|cX!5RS2fO$0l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/icons/full/wizban/NewFiacreinstance.gif b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/icons/full/wizban/NewFiacreinstance.gif new file mode 100644 index 0000000000000000000000000000000000000000..e85f1da21d92ca93e4dcf62ba760305d61d146a3 GIT binary patch literal 2462 zcmd6m`8OMg8ivzyXM`x-QPZJfTAHHK&QR5AsWql$w2Ic!kg?USY8f{w=-48$rioY* zYbAC`Y)wT;A`FcZl_-%Sg2vLt=!_Znuek4d&imtcp6{IRvvaUDGxu`>TnBsx>}7X% zcWwR4+WKcYYhs8m9^%hQq#LX2Uo1ScEWNTVy|TKym$I{`5D1=?71P=;?*<%eHxJTkWV~CzHrT62?ec~&9_o#p;k`T#N zK`Aw%sdeG$&m+?7qkpG7%5F?RH~)rh{SDKST1-O~(=toDvP!!#Bqnx`7lqY*xVnB^ z9gEN~P}ayU-(!&6!mX!|P`gHHtO3qT?nc+I+GHc-58HBTo9sYtRmEnb;j_%I_`U6Fq( zsb>)=ugd-%*fdz(!J~AK()uTQxo`Xbm|?%3<&Mwsg-fGT??)!*CuXFQvKP`XwxU{gYM!Bf(R%`LUGw(dU0zYGj^bTb+%@z@^L z;Jeuw-oPIt?6EQ4#FSwEf4BC3SCBoUyy~4II)1-K+HIQHLypuoY-ssK> z7A2^=LlK;fWzi5Voa)sXaV}{Gy2h%BJ}eHNphc4X(RTWzc12h4eHuV7DbW;(M5n8r zwykw44B}HPR-Wb zOF`{Ixj1uP)dL*kZNMR>_~}=n4t;A@NBYfzyTDX9^8i-`)(kU87LTWF&)o1o8NoD6 zEOOBL{a`f*fLHrUuLM8sdxA6S1RaJc^l0aUN`2C89f^t5N@+Ea+Myk)PBo~{d|Gq~ zV8no6cu-XNWH0ir?q)8e{=o@LXUcablt~sN)+=Jv@qeX_Wb@52|j$aGX(ef(}@DX%HQG zmGZ9jPv*uoN~=$d(V?D6=LbT9d6BT$ljEoX7seQ+&ad_xVK@PQ#4 z*`YmGQ~Wxc7I)<*5m41yWj@!ZVdpjWv+832%a@qH&~%~)3|3&x9#>dvS1S$(68Z)WRV zU}5q?ZB4UHI1XBKSi4)gLkGlm#s=t^G*6P2rJ%^haigFXrf-<#%YogI-vLT*4E}u# z;L^-VKLM58gw=7qiP%E4ki>d`b7CIkhLg0F4##l-K9z@#3?r+-IdUcNJ=vXA)2GHu zUI-A!~cAovd#rgojR<$e%e5m#|Ws1V9D%1m626(bZ^4v7-Z>Kv9#iL4p z06h^9+%^8QAC&Rq_z!nf4QHPm%qCN#bMx%)690^|OgIWYhP`|JcAC~}|IC(>{pR%! z`Z&~guFefAA$Q$&-17F3FKYGx(tW>m67*?(YDz!)jg>nISB0ItTu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/plugin.properties b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/plugin.properties new file mode 100644 index 0000000..5a57887 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/plugin.properties @@ -0,0 +1,63 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +# + +pluginName = FiacreInstance Editor +providerName = www.example.org + +_UI_FiacreinstanceEditor_menu = &Fiacreinstance Editor + +_UI_CreateChild_menu_item = &New Child +_UI_CreateSibling_menu_item = N&ew Sibling + +_UI_ShowPropertiesView_menu_item = Show &Properties View +_UI_RefreshViewer_menu_item = &Refresh + +_UI_SelectionPage_label = Selection +_UI_ParentPage_label = Parent +_UI_ListPage_label = List +_UI_TreePage_label = Tree +_UI_TablePage_label = Table +_UI_TreeWithColumnsPage_label = Tree with Columns +_UI_ObjectColumn_label = Object +_UI_SelfColumn_label = Self + +_UI_NoObjectSelected = Selected Nothing +_UI_SingleObjectSelected = Selected Object: {0} +_UI_MultiObjectSelected = Selected {0} Objects + +_UI_OpenEditorError_label = Open Editor + +_UI_Wizard_category = Example EMF Model Creation Wizards + +_UI_CreateModelError_message = Problems encountered in file "{0}" + +_UI_FiacreinstanceModelWizard_label = Fiacreinstance Model +_UI_FiacreinstanceModelWizard_description = Create a new Fiacreinstance model + +_UI_FiacreinstanceEditor_label = Fiacreinstance Model Editor + +_UI_FiacreinstanceEditorFilenameDefaultBase = My +_UI_FiacreinstanceEditorFilenameExtensions = fiacreinstance + +_UI_Wizard_label = New + +_WARN_FilenameExtension = The file name must end in ''.{0}'' +_WARN_FilenameExtensions = The file name must have one of the following extensions: {0} + +_UI_ModelObject = &Model Object +_UI_XMLEncoding = &XML Encoding +_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1 +_UI_Wizard_initial_object_description = Select a model object to create + +_UI_FileConflict_label = File Conflict +_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes? + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/plugin.xml b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/plugin.xml new file mode 100644 index 0000000..a88b89e --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/plugin.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + %_UI_FiacreinstanceModelWizard_description + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreInstanceEditorPlugin.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreInstanceEditorPlugin.java new file mode 100644 index 0000000..1ba6d76 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreInstanceEditorPlugin.java @@ -0,0 +1,104 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.presentation; + +import fr.irit.fiacre.xtext.fiacre.provider.FiacreEditPlugin; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.ui.EclipseUIPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the FiacreInstance editor plugin. + * + * + * @generated + */ +public final class FiacreInstanceEditorPlugin extends EMFPlugin { + /** + * Keep track of the singleton. + * + * + * @generated + */ + public static final FiacreInstanceEditorPlugin INSTANCE = new FiacreInstanceEditorPlugin(); + + /** + * Keep track of the singleton. + * + * + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * + * + * @generated + */ + public FiacreInstanceEditorPlugin() { + super + (new ResourceLocator [] { + FiacreEditPlugin.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 EclipseUIPlugin { + /** + * Creates an instance. + * + * + * @generated + */ + public Implementation() { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceActionBarContributor.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceActionBarContributor.java new file mode 100644 index 0000000..4c9ea53 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceActionBarContributor.java @@ -0,0 +1,433 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.presentation; + +import java.util.ArrayList; +import java.util.Collection; + +import org.eclipse.emf.common.ui.viewer.IViewerProvider; + +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; + +import org.eclipse.emf.edit.ui.action.ControlAction; +import org.eclipse.emf.edit.ui.action.CreateChildAction; +import org.eclipse.emf.edit.ui.action.CreateSiblingAction; +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; +import org.eclipse.emf.edit.ui.action.LoadResourceAction; +import org.eclipse.emf.edit.ui.action.ValidateAction; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.ActionContributionItem; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IContributionItem; +import org.eclipse.jface.action.IContributionManager; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.action.SubContributionItem; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.Viewer; + +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.PartInitException; + +/** + * This is the action bar contributor for the Fiacreinstance model editor. + * + * + * @generated + */ +public class FiacreinstanceActionBarContributor + extends EditingDomainActionBarContributor + implements ISelectionChangedListener { + /** + * This keeps track of the active editor. + * + * + * @generated + */ + protected IEditorPart activeEditorPart; + + /** + * This keeps track of the current selection provider. + * + * + * @generated + */ + protected ISelectionProvider selectionProvider; + + /** + * This action opens the Properties view. + * + * + * @generated + */ + protected IAction showPropertiesViewAction = + new Action(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) { + @Override + public void run() { + try { + getPage().showView("org.eclipse.ui.views.PropertySheet"); + } + catch (PartInitException exception) { + FiacreInstanceEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * This action refreshes the viewer of the current editor if the editor + * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}. + * + * + * @generated + */ + protected IAction refreshViewerAction = + new Action(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) { + @Override + public boolean isEnabled() { + return activeEditorPart instanceof IViewerProvider; + } + + @Override + public void run() { + if (activeEditorPart instanceof IViewerProvider) { + Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer(); + if (viewer != null) { + viewer.refresh(); + } + } + } + }; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * + * + * @generated + */ + protected Collection createChildActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateChild actions. + * + * + * @generated + */ + protected IMenuManager createChildMenuManager; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * + * + * @generated + */ + protected Collection createSiblingActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateSibling actions. + * + * + * @generated + */ + protected IMenuManager createSiblingMenuManager; + + /** + * This creates an instance of the contributor. + * + * + * @generated + */ + public FiacreinstanceActionBarContributor() { + super(ADDITIONS_LAST_STYLE); + loadResourceAction = new LoadResourceAction(); + validateAction = new ValidateAction(); + controlAction = new ControlAction(); + } + + /** + * This adds Separators for editor additions to the tool bar. + * + * + * @generated + */ + @Override + public void contributeToToolBar(IToolBarManager toolBarManager) { + toolBarManager.add(new Separator("fiacreinstance-settings")); + toolBarManager.add(new Separator("fiacreinstance-additions")); + } + + /** + * This adds to the menu bar a menu and some separators for editor additions, + * as well as the sub-menus for object creation items. + * + * + * @generated + */ + @Override + public void contributeToMenu(IMenuManager menuManager) { + super.contributeToMenu(menuManager); + + IMenuManager submenuManager = new MenuManager(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_FiacreinstanceEditor_menu"), "com.irtsaintexupery.fiacre.instance.fiacreinstanceMenuID"); + menuManager.insertAfter("additions", submenuManager); + submenuManager.add(new Separator("settings")); + submenuManager.add(new Separator("actions")); + submenuManager.add(new Separator("additions")); + submenuManager.add(new Separator("additions-end")); + + // Prepare for CreateChild item addition or removal. + // + createChildMenuManager = new MenuManager(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + submenuManager.insertBefore("additions", createChildMenuManager); + + // Prepare for CreateSibling item addition or removal. + // + createSiblingMenuManager = new MenuManager(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + submenuManager.insertBefore("additions", createSiblingMenuManager); + + // Force an update because Eclipse hides empty menus now. + // + submenuManager.addMenuListener + (new IMenuListener() { + public void menuAboutToShow(IMenuManager menuManager) { + menuManager.updateAll(true); + } + }); + + addGlobalActions(submenuManager); + } + + /** + * When the active editor changes, this remembers the change and registers with it as a selection provider. + * + * + * @generated + */ + @Override + public void setActiveEditor(IEditorPart part) { + super.setActiveEditor(part); + activeEditorPart = part; + + // Switch to the new selection provider. + // + if (selectionProvider != null) { + selectionProvider.removeSelectionChangedListener(this); + } + if (part == null) { + selectionProvider = null; + } + else { + selectionProvider = part.getSite().getSelectionProvider(); + selectionProvider.addSelectionChangedListener(this); + + // Fake a selection changed event to update the menus. + // + if (selectionProvider.getSelection() != null) { + selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection())); + } + } + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener}, + * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings + * that can be added to the selected object and updating the menus accordingly. + * + * + * @generated + */ + public void selectionChanged(SelectionChangedEvent event) { + // Remove any menu items for old selection. + // + if (createChildMenuManager != null) { + depopulateManager(createChildMenuManager, createChildActions); + } + if (createSiblingMenuManager != null) { + depopulateManager(createSiblingMenuManager, createSiblingActions); + } + + // Query the new selection for appropriate new child/sibling descriptors + // + Collection newChildDescriptors = null; + Collection newSiblingDescriptors = null; + + ISelection selection = event.getSelection(); + if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) { + Object object = ((IStructuredSelection)selection).getFirstElement(); + + EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain(); + + newChildDescriptors = domain.getNewChildDescriptors(object, null); + newSiblingDescriptors = domain.getNewChildDescriptors(null, object); + } + + // Generate actions for selection; populate and redraw the menus. + // + createChildActions = generateCreateChildActions(newChildDescriptors, selection); + createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection); + + if (createChildMenuManager != null) { + populateManager(createChildMenuManager, createChildActions, null); + createChildMenuManager.update(true); + } + if (createSiblingMenuManager != null) { + populateManager(createSiblingMenuManager, createSiblingActions, null); + createSiblingMenuManager.update(true); + } + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in descriptors, + * and returns the collection of these actions. + * + * + * @generated + */ + protected Collection generateCreateChildActions(Collection descriptors, ISelection selection) { + Collection actions = new ArrayList(); + if (descriptors != null) { + for (Object descriptor : descriptors) { + actions.add(new CreateChildAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in descriptors, + * and returns the collection of these actions. + * + * + * @generated + */ + protected Collection generateCreateSiblingActions(Collection descriptors, ISelection selection) { + Collection actions = new ArrayList(); + if (descriptors != null) { + for (Object descriptor : descriptors) { + actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This populates the specified manager with {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the actions collection, + * by inserting them before the specified contribution item contributionID. + * If contributionID is null, they are simply added. + * + * + * @generated + */ + protected void populateManager(IContributionManager manager, Collection actions, String contributionID) { + if (actions != null) { + for (IAction action : actions) { + if (contributionID != null) { + manager.insertBefore(contributionID, action); + } + else { + manager.add(action); + } + } + } + } + + /** + * This removes from the specified manager all {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the actions collection. + * + * + * @generated + */ + protected void depopulateManager(IContributionManager manager, Collection actions) { + if (actions != null) { + IContributionItem[] items = manager.getItems(); + for (int i = 0; i < items.length; i++) { + // Look into SubContributionItems + // + IContributionItem contributionItem = items[i]; + while (contributionItem instanceof SubContributionItem) { + contributionItem = ((SubContributionItem)contributionItem).getInnerItem(); + } + + // Delete the ActionContributionItems with matching action. + // + if (contributionItem instanceof ActionContributionItem) { + IAction action = ((ActionContributionItem)contributionItem).getAction(); + if (actions.contains(action)) { + manager.remove(contributionItem); + } + } + } + } + } + + /** + * This populates the pop-up menu before it appears. + * + * + * @generated + */ + @Override + public void menuAboutToShow(IMenuManager menuManager) { + super.menuAboutToShow(menuManager); + MenuManager submenuManager = null; + + submenuManager = new MenuManager(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + populateManager(submenuManager, createChildActions, null); + menuManager.insertBefore("edit", submenuManager); + + submenuManager = new MenuManager(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + populateManager(submenuManager, createSiblingActions, null); + menuManager.insertBefore("edit", submenuManager); + } + + /** + * This inserts global actions before the "additions-end" separator. + * + * + * @generated + */ + @Override + protected void addGlobalActions(IMenuManager menuManager) { + menuManager.insertAfter("additions-end", new Separator("ui-actions")); + menuManager.insertAfter("ui-actions", showPropertiesViewAction); + + refreshViewerAction.setEnabled(refreshViewerAction.isEnabled()); + menuManager.insertAfter("ui-actions", refreshViewerAction); + + super.addGlobalActions(menuManager); + } + + /** + * This ensures that a delete action will clean up all references to deleted objects. + * + * + * @generated + */ + @Override + protected boolean removeAllReferencesOnDelete() { + return true; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceEditor.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceEditor.java new file mode 100644 index 0000000..c36b9e1 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceEditor.java @@ -0,0 +1,1832 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.presentation; + + +import java.io.IOException; +import java.io.InputStream; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.EventObject; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceDeltaVisitor; +import org.eclipse.core.resources.ResourcesPlugin; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; + +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IStatusLineManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; + +import org.eclipse.jface.util.LocalSelectionTransfer; + +import org.eclipse.jface.viewers.ColumnWeightData; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.ListViewer; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.StructuredViewer; +import org.eclipse.jface.viewers.TableLayout; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.viewers.Viewer; + +import org.eclipse.swt.SWT; + +import org.eclipse.swt.custom.CTabFolder; + +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.FileTransfer; +import org.eclipse.swt.dnd.Transfer; + +import org.eclipse.swt.events.ControlAdapter; +import org.eclipse.swt.events.ControlEvent; + +import org.eclipse.swt.graphics.Point; + +import org.eclipse.swt.layout.FillLayout; + +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.swt.widgets.TreeColumn; + +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IPartListener; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PartInitException; + +import org.eclipse.ui.dialogs.SaveAsDialog; + +import org.eclipse.ui.ide.IGotoMarker; + +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.part.MultiPageEditorPart; + +import org.eclipse.ui.views.contentoutline.ContentOutline; +import org.eclipse.ui.views.contentoutline.ContentOutlinePage; +import org.eclipse.ui.views.contentoutline.IContentOutlinePage; + +import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.eclipse.ui.views.properties.PropertySheet; +import org.eclipse.ui.views.properties.PropertySheetPage; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.provider.FiacreinstanceItemProviderAdapterFactory; + +import org.eclipse.emf.common.command.BasicCommandStack; +import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.command.CommandStack; +import org.eclipse.emf.common.command.CommandStackListener; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.ui.MarkerHelper; +import org.eclipse.emf.common.ui.ViewerPane; + +import org.eclipse.emf.common.ui.editor.ProblemEditorPart; + +import org.eclipse.emf.common.ui.viewer.IViewerProvider; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.URI; + + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; + +import org.eclipse.emf.ecore.util.EContentAdapter; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; + +import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; + +import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; + +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; + +import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor; + +import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter; +import org.eclipse.emf.edit.ui.dnd.LocalTransfer; +import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter; + +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider; + +import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper; +import org.eclipse.emf.edit.ui.util.EditUIUtil; + +import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage; + +import fr.irit.fiacre.xtext.fiacre.provider.FiacreItemProviderAdapterFactory; + +import org.eclipse.ui.actions.WorkspaceModifyOperation; + + +/** + * This is an example of a Fiacreinstance model editor. + * + * + * @generated + */ +public class FiacreinstanceEditor + extends MultiPageEditorPart + implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker { + /** + * This keeps track of the editing domain that is used to track all changes to the model. + * + * + * @generated + */ + protected AdapterFactoryEditingDomain editingDomain; + + /** + * This is the one adapter factory used for providing views of the model. + * + * + * @generated + */ + protected ComposedAdapterFactory adapterFactory; + + /** + * This is the content outline page. + * + * + * @generated + */ + protected IContentOutlinePage contentOutlinePage; + + /** + * This is a kludge... + * + * + * @generated + */ + protected IStatusLineManager contentOutlineStatusLineManager; + + /** + * This is the content outline page's viewer. + * + * + * @generated + */ + protected TreeViewer contentOutlineViewer; + + /** + * This is the property sheet page. + * + * + * @generated + */ + protected List propertySheetPages = new ArrayList(); + + /** + * This is the viewer that shadows the selection in the content outline. + * The parent relation must be correctly defined for this to work. + * + * + * @generated + */ + protected TreeViewer selectionViewer; + + /** + * This inverts the roll of parent and child in the content provider and show parents as a tree. + * + * + * @generated + */ + protected TreeViewer parentViewer; + + /** + * This shows how a tree view works. + * + * + * @generated + */ + protected TreeViewer treeViewer; + + /** + * This shows how a list view works. + * A list viewer doesn't support icons. + * + * + * @generated + */ + protected ListViewer listViewer; + + /** + * This shows how a table view works. + * A table can be used as a list with icons. + * + * + * @generated + */ + protected TableViewer tableViewer; + + /** + * This shows how a tree view with columns works. + * + * + * @generated + */ + protected TreeViewer treeViewerWithColumns; + + /** + * This keeps track of the active viewer pane, in the book. + * + * + * @generated + */ + protected ViewerPane currentViewerPane; + + /** + * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer. + * + * + * @generated + */ + protected Viewer currentViewer; + + /** + * This listens to which ever viewer is active. + * + * + * @generated + */ + protected ISelectionChangedListener selectionChangedListener; + + /** + * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor. + * + * + * @generated + */ + protected Collection selectionChangedListeners = new ArrayList(); + + /** + * This keeps track of the selection of the editor as a whole. + * + * + * @generated + */ + protected ISelection editorSelection = StructuredSelection.EMPTY; + + /** + * The MarkerHelper is responsible for creating workspace resource markers presented + * in Eclipse's Problems View. + * + * + * @generated + */ + protected MarkerHelper markerHelper = new EditUIMarkerHelper(); + + /** + * This listens for when the outline becomes active + * + * + * @generated + */ + protected IPartListener partListener = + new IPartListener() { + public void partActivated(IWorkbenchPart p) { + if (p instanceof ContentOutline) { + if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) { + getActionBarContributor().setActiveEditor(FiacreinstanceEditor.this); + + setCurrentViewer(contentOutlineViewer); + } + } + else if (p instanceof PropertySheet) { + if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) { + getActionBarContributor().setActiveEditor(FiacreinstanceEditor.this); + handleActivate(); + } + } + else if (p == FiacreinstanceEditor.this) { + handleActivate(); + } + } + public void partBroughtToTop(IWorkbenchPart p) { + // Ignore. + } + public void partClosed(IWorkbenchPart p) { + // Ignore. + } + public void partDeactivated(IWorkbenchPart p) { + // Ignore. + } + public void partOpened(IWorkbenchPart p) { + // Ignore. + } + }; + + /** + * Resources that have been removed since last activation. + * + * + * @generated + */ + protected Collection removedResources = new ArrayList(); + + /** + * Resources that have been changed since last activation. + * + * + * @generated + */ + protected Collection changedResources = new ArrayList(); + + /** + * Resources that have been saved. + * + * + * @generated + */ + protected Collection savedResources = new ArrayList(); + + /** + * Map to store the diagnostic associated with a resource. + * + * + * @generated + */ + protected Map resourceToDiagnosticMap = new LinkedHashMap(); + + /** + * Controls whether the problem indication should be updated. + * + * + * @generated + */ + protected boolean updateProblemIndication = true; + + /** + * Adapter used to update the problem indication when resources are demanded loaded. + * + * + * @generated + */ + protected EContentAdapter problemIndicationAdapter = + new EContentAdapter() { + @Override + public void notifyChanged(Notification notification) { + if (notification.getNotifier() instanceof Resource) { + switch (notification.getFeatureID(Resource.class)) { + case Resource.RESOURCE__IS_LOADED: + case Resource.RESOURCE__ERRORS: + case Resource.RESOURCE__WARNINGS: { + Resource resource = (Resource)notification.getNotifier(); + Diagnostic diagnostic = analyzeResourceProblems(resource, null); + if (diagnostic.getSeverity() != Diagnostic.OK) { + resourceToDiagnosticMap.put(resource, diagnostic); + } + else { + resourceToDiagnosticMap.remove(resource); + } + + if (updateProblemIndication) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + updateProblemIndication(); + } + }); + } + break; + } + } + } + else { + super.notifyChanged(notification); + } + } + + @Override + protected void setTarget(Resource target) { + basicSetTarget(target); + } + + @Override + protected void unsetTarget(Resource target) { + basicUnsetTarget(target); + resourceToDiagnosticMap.remove(target); + if (updateProblemIndication) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + updateProblemIndication(); + } + }); + } + } + }; + + /** + * This listens for workspace changes. + * + * + * @generated + */ + protected IResourceChangeListener resourceChangeListener = + new IResourceChangeListener() { + public void resourceChanged(IResourceChangeEvent event) { + IResourceDelta delta = event.getDelta(); + try { + class ResourceDeltaVisitor implements IResourceDeltaVisitor { + protected ResourceSet resourceSet = editingDomain.getResourceSet(); + protected Collection changedResources = new ArrayList(); + protected Collection removedResources = new ArrayList(); + + public boolean visit(IResourceDelta delta) { + if (delta.getResource().getType() == IResource.FILE) { + if (delta.getKind() == IResourceDelta.REMOVED || + delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) { + Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false); + if (resource != null) { + if (delta.getKind() == IResourceDelta.REMOVED) { + removedResources.add(resource); + } + else if (!savedResources.remove(resource)) { + changedResources.add(resource); + } + } + } + return false; + } + + return true; + } + + public Collection getChangedResources() { + return changedResources; + } + + public Collection getRemovedResources() { + return removedResources; + } + } + + final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor(); + delta.accept(visitor); + + if (!visitor.getRemovedResources().isEmpty()) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + removedResources.addAll(visitor.getRemovedResources()); + if (!isDirty()) { + getSite().getPage().closeEditor(FiacreinstanceEditor.this, false); + } + } + }); + } + + if (!visitor.getChangedResources().isEmpty()) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + changedResources.addAll(visitor.getChangedResources()); + if (getSite().getPage().getActiveEditor() == FiacreinstanceEditor.this) { + handleActivate(); + } + } + }); + } + } + catch (CoreException exception) { + FiacreInstanceEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * Handles activation of the editor or it's associated views. + * + * + * @generated + */ + protected void handleActivate() { + // Recompute the read only state. + // + if (editingDomain.getResourceToReadOnlyMap() != null) { + editingDomain.getResourceToReadOnlyMap().clear(); + + // Refresh any actions that may become enabled or disabled. + // + setSelection(getSelection()); + } + + if (!removedResources.isEmpty()) { + if (handleDirtyConflict()) { + getSite().getPage().closeEditor(FiacreinstanceEditor.this, false); + } + else { + removedResources.clear(); + changedResources.clear(); + savedResources.clear(); + } + } + else if (!changedResources.isEmpty()) { + changedResources.removeAll(savedResources); + handleChangedResources(); + changedResources.clear(); + savedResources.clear(); + } + } + + /** + * Handles what to do with changed resources on activation. + * + * + * @generated + */ + protected void handleChangedResources() { + if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) { + if (isDirty()) { + changedResources.addAll(editingDomain.getResourceSet().getResources()); + } + editingDomain.getCommandStack().flush(); + + updateProblemIndication = false; + for (Resource resource : changedResources) { + if (resource.isLoaded()) { + resource.unload(); + try { + resource.load(Collections.EMPTY_MAP); + } + catch (IOException exception) { + if (!resourceToDiagnosticMap.containsKey(resource)) { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + } + } + } + + if (AdapterFactoryEditingDomain.isStale(editorSelection)) { + setSelection(StructuredSelection.EMPTY); + } + + updateProblemIndication = true; + updateProblemIndication(); + } + } + + /** + * Updates the problems indication with the information described in the specified diagnostic. + * + * + * @generated + */ + protected void updateProblemIndication() { + if (updateProblemIndication) { + BasicDiagnostic diagnostic = + new BasicDiagnostic + (Diagnostic.OK, + "com.irtsaintexupery.fiacre.instance.editor", + 0, + null, + new Object [] { editingDomain.getResourceSet() }); + for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) { + if (childDiagnostic.getSeverity() != Diagnostic.OK) { + diagnostic.add(childDiagnostic); + } + } + + int lastEditorPage = getPageCount() - 1; + if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) { + ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic); + if (diagnostic.getSeverity() != Diagnostic.OK) { + setActivePage(lastEditorPage); + } + } + else if (diagnostic.getSeverity() != Diagnostic.OK) { + ProblemEditorPart problemEditorPart = new ProblemEditorPart(); + problemEditorPart.setDiagnostic(diagnostic); + problemEditorPart.setMarkerHelper(markerHelper); + try { + addPage(++lastEditorPage, problemEditorPart, getEditorInput()); + setPageText(lastEditorPage, problemEditorPart.getPartName()); + setActivePage(lastEditorPage); + showTabs(); + } + catch (PartInitException exception) { + FiacreInstanceEditorPlugin.INSTANCE.log(exception); + } + } + + if (markerHelper.hasMarkers(editingDomain.getResourceSet())) { + markerHelper.deleteMarkers(editingDomain.getResourceSet()); + if (diagnostic.getSeverity() != Diagnostic.OK) { + try { + markerHelper.createMarkers(diagnostic); + } + catch (CoreException exception) { + FiacreInstanceEditorPlugin.INSTANCE.log(exception); + } + } + } + } + } + + /** + * Shows a dialog that asks if conflicting changes should be discarded. + * + * + * @generated + */ + protected boolean handleDirtyConflict() { + return + MessageDialog.openQuestion + (getSite().getShell(), + getString("_UI_FileConflict_label"), + getString("_WARN_FileConflict")); + } + + /** + * This creates a model editor. + * + * + * @generated + */ + public FiacreinstanceEditor() { + super(); + initializeEditingDomain(); + } + + /** + * This sets up the editing domain for the model editor. + * + * + * @generated + */ + protected void initializeEditingDomain() { + // Create an adapter factory that yields item providers. + // + adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE); + + adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new FiacreinstanceItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new FiacreItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); + + // Create the command stack that will notify this editor as commands are executed. + // + BasicCommandStack commandStack = new BasicCommandStack(); + + // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus. + // + commandStack.addCommandStackListener + (new CommandStackListener() { + public void commandStackChanged(final EventObject event) { + getContainer().getDisplay().asyncExec + (new Runnable() { + public void run() { + firePropertyChange(IEditorPart.PROP_DIRTY); + + // Try to select the affected objects. + // + Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand(); + if (mostRecentCommand != null) { + setSelectionToViewer(mostRecentCommand.getAffectedObjects()); + } + for (Iterator i = propertySheetPages.iterator(); i.hasNext(); ) { + PropertySheetPage propertySheetPage = i.next(); + if (propertySheetPage.getControl().isDisposed()) { + i.remove(); + } + else { + propertySheetPage.refresh(); + } + } + } + }); + } + }); + + // Create the editing domain with a special command stack. + // + editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap()); + } + + /** + * This is here for the listener to be able to call it. + * + * + * @generated + */ + @Override + protected void firePropertyChange(int action) { + super.firePropertyChange(action); + } + + /** + * This sets the selection into whichever viewer is active. + * + * + * @generated + */ + public void setSelectionToViewer(Collection collection) { + final Collection theSelection = collection; + // Make sure it's okay. + // + if (theSelection != null && !theSelection.isEmpty()) { + Runnable runnable = + new Runnable() { + public void run() { + // Try to select the items in the current content viewer of the editor. + // + if (currentViewer != null) { + currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true); + } + } + }; + getSite().getShell().getDisplay().asyncExec(runnable); + } + } + + /** + * This returns the editing domain as required by the {@link IEditingDomainProvider} interface. + * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain} + * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}. + * + * + * @generated + */ + public EditingDomain getEditingDomain() { + return editingDomain; + } + + /** + * + * + * @generated + */ + public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider { + /** + * + * + * @generated + */ + public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * + * + * @generated + */ + @Override + public Object [] getElements(Object object) { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * + * + * @generated + */ + @Override + public Object [] getChildren(Object object) { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * + * + * @generated + */ + @Override + public boolean hasChildren(Object object) { + Object parent = super.getParent(object); + return parent != null; + } + + /** + * + * + * @generated + */ + @Override + public Object getParent(Object object) { + return null; + } + } + + /** + * + * + * @generated + */ + public void setCurrentViewerPane(ViewerPane viewerPane) { + if (currentViewerPane != viewerPane) { + if (currentViewerPane != null) { + currentViewerPane.showFocus(false); + } + currentViewerPane = viewerPane; + } + setCurrentViewer(currentViewerPane.getViewer()); + } + + /** + * This makes sure that one content viewer, either for the current page or the outline view, if it has focus, + * is the current one. + * + * + * @generated + */ + public void setCurrentViewer(Viewer viewer) { + // If it is changing... + // + if (currentViewer != viewer) { + if (selectionChangedListener == null) { + // Create the listener on demand. + // + selectionChangedListener = + new ISelectionChangedListener() { + // This just notifies those things that are affected by the section. + // + public void selectionChanged(SelectionChangedEvent selectionChangedEvent) { + setSelection(selectionChangedEvent.getSelection()); + } + }; + } + + // Stop listening to the old one. + // + if (currentViewer != null) { + currentViewer.removeSelectionChangedListener(selectionChangedListener); + } + + // Start listening to the new one. + // + if (viewer != null) { + viewer.addSelectionChangedListener(selectionChangedListener); + } + + // Remember it. + // + currentViewer = viewer; + + // Set the editors selection based on the current viewer's selection. + // + setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection()); + } + } + + /** + * This returns the viewer as required by the {@link IViewerProvider} interface. + * + * + * @generated + */ + public Viewer getViewer() { + return currentViewer; + } + + /** + * This creates a context menu for the viewer and adds a listener as well registering the menu for extension. + * + * + * @generated + */ + protected void createContextMenuFor(StructuredViewer viewer) { + MenuManager contextMenu = new MenuManager("#PopUp"); + contextMenu.add(new Separator("additions")); + contextMenu.setRemoveAllWhenShown(true); + contextMenu.addMenuListener(this); + Menu menu= contextMenu.createContextMenu(viewer.getControl()); + viewer.getControl().setMenu(menu); + getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer)); + + int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK; + Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() }; + viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer)); + viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer)); + } + + /** + * This is the method called to load a resource into the editing domain's resource set based on the editor's input. + * + * + * @generated + */ + public void createModel() { + URI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter()); + Exception exception = null; + Resource resource = null; + try { + // Load the resource through the editing domain. + // + resource = editingDomain.getResourceSet().getResource(resourceURI, true); + } + catch (Exception e) { + exception = e; + resource = editingDomain.getResourceSet().getResource(resourceURI, false); + } + + Diagnostic diagnostic = analyzeResourceProblems(resource, exception); + if (diagnostic.getSeverity() != Diagnostic.OK) { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter); + } + + /** + * Returns a diagnostic describing the errors and warnings listed in the resource + * and the specified exception (if any). + * + * + * @generated + */ + public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) { + boolean hasErrors = !resource.getErrors().isEmpty(); + if (hasErrors || !resource.getWarnings().isEmpty()) { + BasicDiagnostic basicDiagnostic = + new BasicDiagnostic + (hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING, + "com.irtsaintexupery.fiacre.instance.editor", + 0, + getString("_UI_CreateModelError_message", resource.getURI()), + new Object [] { exception == null ? (Object)resource : exception }); + basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true)); + return basicDiagnostic; + } + else if (exception != null) { + return + new BasicDiagnostic + (Diagnostic.ERROR, + "com.irtsaintexupery.fiacre.instance.editor", + 0, + getString("_UI_CreateModelError_message", resource.getURI()), + new Object[] { exception }); + } + else { + return Diagnostic.OK_INSTANCE; + } + } + + /** + * This is the method used by the framework to install your own controls. + * + * + * @generated + */ + @Override + public void createPages() { + // Creates the model from the editor input + // + createModel(); + + // Only creates the other pages if there is something that can be edited + // + if (!getEditingDomain().getResourceSet().getResources().isEmpty()) { + // Create a page for the selection tree view. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreinstanceEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + Tree tree = new Tree(composite, SWT.MULTI); + TreeViewer newTreeViewer = new TreeViewer(tree); + return newTreeViewer; + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + + selectionViewer = (TreeViewer)viewerPane.getViewer(); + selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + + selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + selectionViewer.setInput(editingDomain.getResourceSet()); + selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true); + viewerPane.setTitle(editingDomain.getResourceSet()); + + new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory); + + createContextMenuFor(selectionViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_SelectionPage_label")); + } + + // Create a page for the parent tree view. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreinstanceEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + Tree tree = new Tree(composite, SWT.MULTI); + TreeViewer newTreeViewer = new TreeViewer(tree); + return newTreeViewer; + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + + parentViewer = (TreeViewer)viewerPane.getViewer(); + parentViewer.setAutoExpandLevel(30); + parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory)); + parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(parentViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_ParentPage_label")); + } + + // This is the page for the list viewer + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreinstanceEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new ListViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + listViewer = (ListViewer)viewerPane.getViewer(); + listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(listViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_ListPage_label")); + } + + // This is the page for the tree viewer + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreinstanceEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new TreeViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + treeViewer = (TreeViewer)viewerPane.getViewer(); + treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory); + + createContextMenuFor(treeViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_TreePage_label")); + } + + // This is the page for the table viewer. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreinstanceEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new TableViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + tableViewer = (TableViewer)viewerPane.getViewer(); + + Table table = tableViewer.getTable(); + TableLayout layout = new TableLayout(); + table.setLayout(layout); + table.setHeaderVisible(true); + table.setLinesVisible(true); + + TableColumn objectColumn = new TableColumn(table, SWT.NONE); + layout.addColumnData(new ColumnWeightData(3, 100, true)); + objectColumn.setText(getString("_UI_ObjectColumn_label")); + objectColumn.setResizable(true); + + TableColumn selfColumn = new TableColumn(table, SWT.NONE); + layout.addColumnData(new ColumnWeightData(2, 100, true)); + selfColumn.setText(getString("_UI_SelfColumn_label")); + selfColumn.setResizable(true); + + tableViewer.setColumnProperties(new String [] {"a", "b"}); + tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(tableViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_TablePage_label")); + } + + // This is the page for the table tree viewer. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreinstanceEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new TreeViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + + treeViewerWithColumns = (TreeViewer)viewerPane.getViewer(); + + Tree tree = treeViewerWithColumns.getTree(); + tree.setLayoutData(new FillLayout()); + tree.setHeaderVisible(true); + tree.setLinesVisible(true); + + TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE); + objectColumn.setText(getString("_UI_ObjectColumn_label")); + objectColumn.setResizable(true); + objectColumn.setWidth(250); + + TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE); + selfColumn.setText(getString("_UI_SelfColumn_label")); + selfColumn.setResizable(true); + selfColumn.setWidth(200); + + treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"}); + treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(treeViewerWithColumns); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label")); + } + + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + setActivePage(0); + } + }); + } + + // Ensures that this editor will only display the page's tab + // area if there are more than one page + // + getContainer().addControlListener + (new ControlAdapter() { + boolean guard = false; + @Override + public void controlResized(ControlEvent event) { + if (!guard) { + guard = true; + hideTabs(); + guard = false; + } + } + }); + + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + updateProblemIndication(); + } + }); + } + + /** + * If there is just one page in the multi-page editor part, + * this hides the single tab at the bottom. + * + * + * @generated + */ + protected void hideTabs() { + if (getPageCount() <= 1) { + setPageText(0, ""); + if (getContainer() instanceof CTabFolder) { + ((CTabFolder)getContainer()).setTabHeight(1); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y + 6); + } + } + } + + /** + * If there is more than one page in the multi-page editor part, + * this shows the tabs at the bottom. + * + * + * @generated + */ + protected void showTabs() { + if (getPageCount() > 1) { + setPageText(0, getString("_UI_SelectionPage_label")); + if (getContainer() instanceof CTabFolder) { + ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y - 6); + } + } + } + + /** + * This is used to track the active viewer. + * + * + * @generated + */ + @Override + protected void pageChange(int pageIndex) { + super.pageChange(pageIndex); + + if (contentOutlinePage != null) { + handleContentOutlineSelection(contentOutlinePage.getSelection()); + } + } + + /** + * This is how the framework determines which interfaces we implement. + * + * + * @generated + */ + @SuppressWarnings("rawtypes") + @Override + public Object getAdapter(Class key) { + if (key.equals(IContentOutlinePage.class)) { + return showOutlineView() ? getContentOutlinePage() : null; + } + else if (key.equals(IPropertySheetPage.class)) { + return getPropertySheetPage(); + } + else if (key.equals(IGotoMarker.class)) { + return this; + } + else { + return super.getAdapter(key); + } + } + + /** + * This accesses a cached version of the content outliner. + * + * + * @generated + */ + public IContentOutlinePage getContentOutlinePage() { + if (contentOutlinePage == null) { + // The content outline is just a tree. + // + class MyContentOutlinePage extends ContentOutlinePage { + @Override + public void createControl(Composite parent) { + super.createControl(parent); + contentOutlineViewer = getTreeViewer(); + contentOutlineViewer.addSelectionChangedListener(this); + + // Set up the tree viewer. + // + contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + contentOutlineViewer.setInput(editingDomain.getResourceSet()); + + // Make sure our popups work. + // + createContextMenuFor(contentOutlineViewer); + + if (!editingDomain.getResourceSet().getResources().isEmpty()) { + // Select the root object in the view. + // + contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true); + } + } + + @Override + public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) { + super.makeContributions(menuManager, toolBarManager, statusLineManager); + contentOutlineStatusLineManager = statusLineManager; + } + + @Override + public void setActionBars(IActionBars actionBars) { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + } + + contentOutlinePage = new MyContentOutlinePage(); + + // Listen to selection so that we can handle it is a special way. + // + contentOutlinePage.addSelectionChangedListener + (new ISelectionChangedListener() { + // This ensures that we handle selections correctly. + // + public void selectionChanged(SelectionChangedEvent event) { + handleContentOutlineSelection(event.getSelection()); + } + }); + } + + return contentOutlinePage; + } + + /** + * This accesses a cached version of the property sheet. + * + * + * @generated + */ + public IPropertySheetPage getPropertySheetPage() { + PropertySheetPage propertySheetPage = + new ExtendedPropertySheetPage(editingDomain) { + @Override + public void setSelectionToViewer(List selection) { + FiacreinstanceEditor.this.setSelectionToViewer(selection); + FiacreinstanceEditor.this.setFocus(); + } + + @Override + public void setActionBars(IActionBars actionBars) { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + }; + propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory)); + propertySheetPages.add(propertySheetPage); + + return propertySheetPage; + } + + /** + * This deals with how we want selection in the outliner to affect the other views. + * + * + * @generated + */ + public void handleContentOutlineSelection(ISelection selection) { + if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) { + Iterator selectedElements = ((IStructuredSelection)selection).iterator(); + if (selectedElements.hasNext()) { + // Get the first selected element. + // + Object selectedElement = selectedElements.next(); + + // If it's the selection viewer, then we want it to select the same selection as this selection. + // + if (currentViewerPane.getViewer() == selectionViewer) { + ArrayList selectionList = new ArrayList(); + selectionList.add(selectedElement); + while (selectedElements.hasNext()) { + selectionList.add(selectedElements.next()); + } + + // Set the selection to the widget. + // + selectionViewer.setSelection(new StructuredSelection(selectionList)); + } + else { + // Set the input to the widget. + // + if (currentViewerPane.getViewer().getInput() != selectedElement) { + currentViewerPane.getViewer().setInput(selectedElement); + currentViewerPane.setTitle(selectedElement); + } + } + } + } + } + + /** + * This is for implementing {@link IEditorPart} and simply tests the command stack. + * + * + * @generated + */ + @Override + public boolean isDirty() { + return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded(); + } + + /** + * This is for implementing {@link IEditorPart} and simply saves the model file. + * + * + * @generated + */ + @Override + public void doSave(IProgressMonitor progressMonitor) { + // Save only resources that have actually changed. + // + final Map saveOptions = new HashMap(); + saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER); + saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED); + + // Do the work within an operation because this is a long running activity that modifies the workbench. + // + WorkspaceModifyOperation operation = + new WorkspaceModifyOperation() { + // This is the method that gets invoked when the operation runs. + // + @Override + public void execute(IProgressMonitor monitor) { + // Save the resources to the file system. + // + boolean first = true; + for (Resource resource : editingDomain.getResourceSet().getResources()) { + if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) { + try { + long timeStamp = resource.getTimeStamp(); + resource.save(saveOptions); + if (resource.getTimeStamp() != timeStamp) { + savedResources.add(resource); + } + } + catch (Exception exception) { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + first = false; + } + } + } + }; + + updateProblemIndication = false; + try { + // This runs the options, and shows progress. + // + new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation); + + // Refresh the necessary state. + // + ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone(); + firePropertyChange(IEditorPart.PROP_DIRTY); + } + catch (Exception exception) { + // Something went wrong that shouldn't. + // + FiacreInstanceEditorPlugin.INSTANCE.log(exception); + } + updateProblemIndication = true; + updateProblemIndication(); + } + + /** + * This returns whether something has been persisted to the URI of the specified resource. + * The implementation uses the URI converter from the editor's resource set to try to open an input stream. + * + * + * @generated + */ + protected boolean isPersisted(Resource resource) { + boolean result = false; + try { + InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI()); + if (stream != null) { + result = true; + stream.close(); + } + } + catch (IOException e) { + // Ignore + } + return result; + } + + /** + * This always returns true because it is not currently supported. + * + * + * @generated + */ + @Override + public boolean isSaveAsAllowed() { + return true; + } + + /** + * This also changes the editor's input. + * + * + * @generated + */ + @Override + public void doSaveAs() { + SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell()); + saveAsDialog.open(); + IPath path = saveAsDialog.getResult(); + if (path != null) { + IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path); + if (file != null) { + doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file)); + } + } + } + + /** + * + * + * @generated + */ + protected void doSaveAs(URI uri, IEditorInput editorInput) { + (editingDomain.getResourceSet().getResources().get(0)).setURI(uri); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + IProgressMonitor progressMonitor = + getActionBars().getStatusLineManager() != null ? + getActionBars().getStatusLineManager().getProgressMonitor() : + new NullProgressMonitor(); + doSave(progressMonitor); + } + + /** + * + * + * @generated + */ + public void gotoMarker(IMarker marker) { + List targetObjects = markerHelper.getTargetObjects(editingDomain, marker); + if (!targetObjects.isEmpty()) { + setSelectionToViewer(targetObjects); + } + } + + /** + * This is called during startup. + * + * + * @generated + */ + @Override + public void init(IEditorSite site, IEditorInput editorInput) { + setSite(site); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + site.setSelectionProvider(this); + site.getPage().addPartListener(partListener); + ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE); + } + + /** + * + * + * @generated + */ + @Override + public void setFocus() { + if (currentViewerPane != null) { + currentViewerPane.setFocus(); + } + else { + getControl(getActivePage()).setFocus(); + } + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * + * + * @generated + */ + public void addSelectionChangedListener(ISelectionChangedListener listener) { + selectionChangedListeners.add(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * + * + * @generated + */ + public void removeSelectionChangedListener(ISelectionChangedListener listener) { + selectionChangedListeners.remove(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection. + * + * + * @generated + */ + public ISelection getSelection() { + return editorSelection; + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection. + * Calling this result will notify the listeners. + * + * + * @generated + */ + public void setSelection(ISelection selection) { + editorSelection = selection; + + for (ISelectionChangedListener listener : selectionChangedListeners) { + listener.selectionChanged(new SelectionChangedEvent(this, selection)); + } + setStatusLineManager(selection); + } + + /** + * + * + * @generated + */ + public void setStatusLineManager(ISelection selection) { + IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ? + contentOutlineStatusLineManager : getActionBars().getStatusLineManager(); + + if (statusLineManager != null) { + if (selection instanceof IStructuredSelection) { + Collection collection = ((IStructuredSelection)selection).toList(); + switch (collection.size()) { + case 0: { + statusLineManager.setMessage(getString("_UI_NoObjectSelected")); + break; + } + case 1: { + String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next()); + statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text)); + break; + } + default: { + statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size()))); + break; + } + } + } + else { + statusLineManager.setMessage(""); + } + } + } + + /** + * This looks up a string in the plugin's plugin.properties file. + * + * + * @generated + */ + private static String getString(String key) { + return FiacreInstanceEditorPlugin.INSTANCE.getString(key); + } + + /** + * This looks up a string in plugin.properties, making a substitution. + * + * + * @generated + */ + private static String getString(String key, Object s1) { + return FiacreInstanceEditorPlugin.INSTANCE.getString(key, new Object [] { s1 }); + } + + /** + * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu. + * + * + * @generated + */ + public void menuAboutToShow(IMenuManager menuManager) { + ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager); + } + + /** + * + * + * @generated + */ + public EditingDomainActionBarContributor getActionBarContributor() { + return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor(); + } + + /** + * + * + * @generated + */ + public IActionBars getActionBars() { + return getActionBarContributor().getActionBars(); + } + + /** + * + * + * @generated + */ + public AdapterFactory getAdapterFactory() { + return adapterFactory; + } + + /** + * + * + * @generated + */ + @Override + public void dispose() { + updateProblemIndication = false; + + ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener); + + getSite().getPage().removePartListener(partListener); + + adapterFactory.dispose(); + + if (getActionBarContributor().getActiveEditor() == this) { + getActionBarContributor().setActiveEditor(null); + } + + for (PropertySheetPage propertySheetPage : propertySheetPages) { + propertySheetPage.dispose(); + } + + if (contentOutlinePage != null) { + contentOutlinePage.dispose(); + } + + super.dispose(); + } + + /** + * Returns whether the outline view should be presented to the user. + * + * + * @generated + */ + protected boolean showOutlineView() { + return true; + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceModelWizard.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceModelWizard.java new file mode 100644 index 0000000..bb0227c --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance.editor/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/presentation/FiacreinstanceModelWizard.java @@ -0,0 +1,636 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.presentation; + + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.MissingResourceException; +import java.util.StringTokenizer; + +import org.eclipse.emf.common.CommonPlugin; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; + +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.emf.ecore.xmi.XMLResource; + +import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; + +import org.eclipse.core.resources.IContainer; +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.resources.ResourcesPlugin; + +import org.eclipse.core.runtime.IProgressMonitor; + +import org.eclipse.jface.dialogs.MessageDialog; + +import org.eclipse.jface.viewers.IStructuredSelection; + +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.jface.wizard.WizardPage; + +import org.eclipse.swt.SWT; + +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.ModifyEvent; + +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; + +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; + +import org.eclipse.ui.INewWizard; +import org.eclipse.ui.IWorkbench; + +import org.eclipse.ui.actions.WorkspaceModifyOperation; + +import org.eclipse.ui.dialogs.WizardNewFileCreationPage; + +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.part.ISetSelectionTarget; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstanceFactory; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.provider.FiacreInstanceEditPlugin; + +import org.eclipse.core.runtime.Path; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.StructuredSelection; + +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; + + +/** + * This is a simple wizard for creating a new model file. + * + * + * @generated + */ +public class FiacreinstanceModelWizard extends Wizard implements INewWizard { + /** + * The supported extensions for created files. + * + * + * @generated + */ + public static final List FILE_EXTENSIONS = + Collections.unmodifiableList(Arrays.asList(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_FiacreinstanceEditorFilenameExtensions").split("\\s*,\\s*"))); + + /** + * A formatted list of supported file extensions, suitable for display. + * + * + * @generated + */ + public static final String FORMATTED_FILE_EXTENSIONS = + FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_FiacreinstanceEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", "); + + /** + * This caches an instance of the model package. + * + * + * @generated + */ + protected FiacreinstancePackage fiacreinstancePackage = FiacreinstancePackage.eINSTANCE; + + /** + * This caches an instance of the model factory. + * + * + * @generated + */ + protected FiacreinstanceFactory fiacreinstanceFactory = fiacreinstancePackage.getFiacreinstanceFactory(); + + /** + * This is the file creation page. + * + * + * @generated + */ + protected FiacreinstanceModelWizardNewFileCreationPage newFileCreationPage; + + /** + * This is the initial object creation page. + * + * + * @generated + */ + protected FiacreinstanceModelWizardInitialObjectCreationPage initialObjectCreationPage; + + /** + * Remember the selection during initialization for populating the default container. + * + * + * @generated + */ + protected IStructuredSelection selection; + + /** + * Remember the workbench during initialization. + * + * + * @generated + */ + protected IWorkbench workbench; + + /** + * Caches the names of the types that can be created as the root object. + * + * + * @generated + */ + protected List initialObjectNames; + + /** + * This just records the information. + * + * + * @generated + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + this.workbench = workbench; + this.selection = selection; + setWindowTitle(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_Wizard_label")); + setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(FiacreInstanceEditorPlugin.INSTANCE.getImage("full/wizban/NewFiacreinstance"))); + } + + /** + * Returns the names of the types that can be created as the root object. + * + * + * @generated + */ + protected Collection getInitialObjectNames() { + if (initialObjectNames == null) { + initialObjectNames = new ArrayList(); + for (EClassifier eClassifier : fiacreinstancePackage.getEClassifiers()) { + if (eClassifier instanceof EClass) { + EClass eClass = (EClass)eClassifier; + if (!eClass.isAbstract()) { + initialObjectNames.add(eClass.getName()); + } + } + } + Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator()); + } + return initialObjectNames; + } + + /** + * Create a new model. + * + * + * @generated + */ + protected EObject createInitialModel() { + EClass eClass = (EClass)fiacreinstancePackage.getEClassifier(initialObjectCreationPage.getInitialObjectName()); + EObject rootObject = fiacreinstanceFactory.create(eClass); + return rootObject; + } + + /** + * Do the work after everything is specified. + * + * + * @generated + */ + @Override + public boolean performFinish() { + try { + // Remember the file. + // + final IFile modelFile = getModelFile(); + + // Do the work within an operation. + // + WorkspaceModifyOperation operation = + new WorkspaceModifyOperation() { + @Override + protected void execute(IProgressMonitor progressMonitor) { + try { + // Create a resource set + // + ResourceSet resourceSet = new ResourceSetImpl(); + + // Get the URI of the model file. + // + URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true); + + // Create a resource for this file. + // + Resource resource = resourceSet.createResource(fileURI); + + // Add the initial model object to the contents. + // + EObject rootObject = createInitialModel(); + if (rootObject != null) { + resource.getContents().add(rootObject); + } + + // Save the contents of the resource to the file system. + // + Map options = new HashMap(); + options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding()); + resource.save(options); + } + catch (Exception exception) { + FiacreInstanceEditorPlugin.INSTANCE.log(exception); + } + finally { + progressMonitor.done(); + } + } + }; + + getContainer().run(false, false, operation); + + // Select the new file resource in the current view. + // + IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); + IWorkbenchPage page = workbenchWindow.getActivePage(); + final IWorkbenchPart activePart = page.getActivePart(); + if (activePart instanceof ISetSelectionTarget) { + final ISelection targetSelection = new StructuredSelection(modelFile); + getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + ((ISetSelectionTarget)activePart).selectReveal(targetSelection); + } + }); + } + + // Open an editor on the new file. + // + try { + page.openEditor + (new FileEditorInput(modelFile), + workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId()); + } + catch (PartInitException exception) { + MessageDialog.openError(workbenchWindow.getShell(), FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage()); + return false; + } + + return true; + } + catch (Exception exception) { + FiacreInstanceEditorPlugin.INSTANCE.log(exception); + return false; + } + } + + /** + * This is the one page of the wizard. + * + * + * @generated + */ + public class FiacreinstanceModelWizardNewFileCreationPage extends WizardNewFileCreationPage { + /** + * Pass in the selection. + * + * + * @generated + */ + public FiacreinstanceModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) { + super(pageId, selection); + } + + /** + * The framework calls this to see if the file is correct. + * + * + * @generated + */ + @Override + protected boolean validatePage() { + if (super.validatePage()) { + String extension = new Path(getFileName()).getFileExtension(); + if (extension == null || !FILE_EXTENSIONS.contains(extension)) { + String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension"; + setErrorMessage(FiacreInstanceEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS })); + return false; + } + return true; + } + return false; + } + + /** + * + * + * @generated + */ + public IFile getModelFile() { + return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName())); + } + } + + /** + * This is the page where the type of object to create is selected. + * + * + * @generated + */ + public class FiacreinstanceModelWizardInitialObjectCreationPage extends WizardPage { + /** + * + * + * @generated + */ + protected Combo initialObjectField; + + /** + * @generated + * + * + */ + protected List encodings; + + /** + * + * + * @generated + */ + protected Combo encodingField; + + /** + * Pass in the selection. + * + * + * @generated + */ + public FiacreinstanceModelWizardInitialObjectCreationPage(String pageId) { + super(pageId); + } + + /** + * + * + * @generated + */ + public void createControl(Composite parent) { + Composite composite = new Composite(parent, SWT.NONE); { + GridLayout layout = new GridLayout(); + layout.numColumns = 1; + layout.verticalSpacing = 12; + composite.setLayout(layout); + + GridData data = new GridData(); + data.verticalAlignment = GridData.FILL; + data.grabExcessVerticalSpace = true; + data.horizontalAlignment = GridData.FILL; + composite.setLayoutData(data); + } + + Label containerLabel = new Label(composite, SWT.LEFT); + { + containerLabel.setText(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_ModelObject")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + containerLabel.setLayoutData(data); + } + + initialObjectField = new Combo(composite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + initialObjectField.setLayoutData(data); + } + + for (String objectName : getInitialObjectNames()) { + initialObjectField.add(getLabel(objectName)); + } + + if (initialObjectField.getItemCount() == 1) { + initialObjectField.select(0); + } + initialObjectField.addModifyListener(validator); + + Label encodingLabel = new Label(composite, SWT.LEFT); + { + encodingLabel.setText(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_XMLEncoding")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + encodingLabel.setLayoutData(data); + } + encodingField = new Combo(composite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + encodingField.setLayoutData(data); + } + + for (String encoding : getEncodings()) { + encodingField.add(encoding); + } + + encodingField.select(0); + encodingField.addModifyListener(validator); + + setPageComplete(validatePage()); + setControl(composite); + } + + /** + * + * + * @generated + */ + protected ModifyListener validator = + new ModifyListener() { + public void modifyText(ModifyEvent e) { + setPageComplete(validatePage()); + } + }; + + /** + * + * + * @generated + */ + protected boolean validatePage() { + return getInitialObjectName() != null && getEncodings().contains(encodingField.getText()); + } + + /** + * + * + * @generated + */ + @Override + public void setVisible(boolean visible) { + super.setVisible(visible); + if (visible) { + if (initialObjectField.getItemCount() == 1) { + initialObjectField.clearSelection(); + encodingField.setFocus(); + } + else { + encodingField.clearSelection(); + initialObjectField.setFocus(); + } + } + } + + /** + * + * + * @generated + */ + public String getInitialObjectName() { + String label = initialObjectField.getText(); + + for (String name : getInitialObjectNames()) { + if (getLabel(name).equals(label)) { + return name; + } + } + return null; + } + + /** + * + * + * @generated + */ + public String getEncoding() { + return encodingField.getText(); + } + + /** + * Returns the label for the specified type name. + * + * + * @generated + */ + protected String getLabel(String typeName) { + try { + return FiacreInstanceEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type"); + } + catch(MissingResourceException mre) { + FiacreInstanceEditorPlugin.INSTANCE.log(mre); + } + return typeName; + } + + /** + * + * + * @generated + */ + protected Collection getEncodings() { + if (encodings == null) { + encodings = new ArrayList(); + for (StringTokenizer stringTokenizer = new StringTokenizer(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) { + encodings.add(stringTokenizer.nextToken()); + } + } + return encodings; + } + } + + /** + * The framework calls this to create the contents of the wizard. + * + * + * @generated + */ + @Override + public void addPages() { + // Create a page, set the title, and the initial model file name. + // + newFileCreationPage = new FiacreinstanceModelWizardNewFileCreationPage("Whatever", selection); + newFileCreationPage.setTitle(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_FiacreinstanceModelWizard_label")); + newFileCreationPage.setDescription(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_FiacreinstanceModelWizard_description")); + newFileCreationPage.setFileName(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_FiacreinstanceEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0)); + addPage(newFileCreationPage); + + // Try and get the resource selection to determine a current directory for the file dialog. + // + if (selection != null && !selection.isEmpty()) { + // Get the resource... + // + Object selectedElement = selection.iterator().next(); + if (selectedElement instanceof IResource) { + // Get the resource parent, if its a file. + // + IResource selectedResource = (IResource)selectedElement; + if (selectedResource.getType() == IResource.FILE) { + selectedResource = selectedResource.getParent(); + } + + // This gives us a directory... + // + if (selectedResource instanceof IFolder || selectedResource instanceof IProject) { + // Set this for the container. + // + newFileCreationPage.setContainerFullPath(selectedResource.getFullPath()); + + // Make up a unique new name here. + // + String defaultModelBaseFilename = FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_FiacreinstanceEditorFilenameDefaultBase"); + String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0); + String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension; + for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) { + modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension; + } + newFileCreationPage.setFileName(modelFilename); + } + } + } + initialObjectCreationPage = new FiacreinstanceModelWizardInitialObjectCreationPage("Whatever2"); + initialObjectCreationPage.setTitle(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_FiacreinstanceModelWizard_label")); + initialObjectCreationPage.setDescription(FiacreInstanceEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description")); + addPage(initialObjectCreationPage); + } + + /** + * Get the file from the page. + * + * + * @generated + */ + public IFile getModelFile() { + return newFileCreationPage.getModelFile(); + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/.classpath b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/.classpath new file mode 100644 index 0000000..22f3064 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/.gitignore b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/.project b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/.project new file mode 100644 index 0000000..d1cc3e9 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/.project @@ -0,0 +1,28 @@ + + + com.irtsaintexupery.fiacre.instance + + + + + + 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/eclipse/plugins/com.irtsaintexupery.fiacre.instance/META-INF/MANIFEST.MF b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/META-INF/MANIFEST.MF new file mode 100644 index 0000000..c85eb4e --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: com.irtsaintexupery.fiacre.instance;singleton:=true +Bundle-Version: 0.1.0.qualifier +Bundle-ClassPath: . +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: com.irtsaintexupery.fiacre.instance.fiacreinstance, + com.irtsaintexupery.fiacre.instance.fiacreinstance.impl, + com.irtsaintexupery.fiacre.instance.fiacreinstance.util +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.ecore;visibility:=reexport, + fr.irit.fiacre.xtext;visibility:=reexport, + org.eclipse.emf.ecore.xmi;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/build.properties b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/build.properties new file mode 100644 index 0000000..983ef0a --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/build.properties @@ -0,0 +1,20 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +# + +bin.includes = .,\ + model/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin/ diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/model/FiacreInstance.ecore b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/model/FiacreInstance.ecore new file mode 100644 index 0000000..b6b600f --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/model/FiacreInstance.ecore @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/model/FiacreInstance.genmodel b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/model/FiacreInstance.genmodel new file mode 100644 index 0000000..40237fc --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/model/FiacreInstance.genmodel @@ -0,0 +1,60 @@ + + + FiacreInstance.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/plugin.properties b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/plugin.properties new file mode 100644 index 0000000..3cb1e13 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/plugin.properties @@ -0,0 +1,14 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +# + +pluginName = FiacreInstance Model +providerName = www.example.org diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/plugin.xml b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/plugin.xml new file mode 100644 index 0000000..0e9208a --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/plugin.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/BlockInstance.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/BlockInstance.java new file mode 100644 index 0000000..312fdaa --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/BlockInstance.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Block Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance#getBlockInstances Block Instances}
  • + *
+ * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getBlockInstance() + * @model abstract="true" + * @generated + */ +public interface BlockInstance extends EObject { + /** + * Returns the value of the 'Block Instances' containment reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance}. + * + *

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

+ * + * @return the value of the 'Block Instances' containment reference list. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getBlockInstance_BlockInstances() + * @model containment="true" + * @generated + */ + EList getBlockInstances(); + +} // BlockInstance diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ComponentDeclarationInstance.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ComponentDeclarationInstance.java new file mode 100644 index 0000000..57aeb8a --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ComponentDeclarationInstance.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +import fr.irit.fiacre.xtext.fiacre.ComponentDeclaration; + +/** + * + * A representation of the model object 'Component Declaration Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance#getComponent Component}
  • + *
+ * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getComponentDeclarationInstance() + * @model + * @generated + */ +public interface ComponentDeclarationInstance extends DeclarationInstance { + /** + * Returns the value of the 'Component' reference. + * + *

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

+ * + * @return the value of the 'Component' reference. + * @see #setComponent(ComponentDeclaration) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getComponentDeclarationInstance_Component() + * @model required="true" + * @generated + */ + ComponentDeclaration getComponent(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance#getComponent Component}' reference. + * + * + * @param value the new value of the 'Component' reference. + * @see #getComponent() + * @generated + */ + void setComponent(ComponentDeclaration value); + +} // ComponentDeclarationInstance diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/CompositionInstance.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/CompositionInstance.java new file mode 100644 index 0000000..eb3eab5 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/CompositionInstance.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +import fr.irit.fiacre.xtext.fiacre.Composition; + +/** + * + * A representation of the model object 'Composition Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance#getComposition Composition}
  • + *
+ * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getCompositionInstance() + * @model + * @generated + */ +public interface CompositionInstance extends BlockInstance { + /** + * Returns the value of the 'Composition' reference. + * + *

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

+ * + * @return the value of the 'Composition' reference. + * @see #setComposition(Composition) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getCompositionInstance_Composition() + * @model + * @generated + */ + Composition getComposition(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance#getComposition Composition}' reference. + * + * + * @param value the new value of the 'Composition' reference. + * @see #getComposition() + * @generated + */ + void setComposition(Composition value); + +} // CompositionInstance diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/DeclarationInstance.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/DeclarationInstance.java new file mode 100644 index 0000000..4b7f15b --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/DeclarationInstance.java @@ -0,0 +1,133 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +import fr.irit.fiacre.xtext.fiacre.ComponentInstance; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Declaration Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getVariableDeclarationInstances Variable Declaration Instances}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getName Name}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getInstance Instance}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getFlatname Flatname}
  • + *
+ * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getDeclarationInstance() + * @model abstract="true" + * @generated + */ +public interface DeclarationInstance extends BlockInstance { + /** + * Returns the value of the 'Variable Declaration Instances' containment reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance}. + * + *

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

+ * + * @return the value of the 'Variable Declaration Instances' containment reference list. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getDeclarationInstance_VariableDeclarationInstances() + * @model containment="true" + * @generated + */ + EList getVariableDeclarationInstances(); + + /** + * Returns the value of the 'Name' attribute. + * + *

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

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getDeclarationInstance_Name() + * @model required="true" + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Instance' reference. + * + *

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

+ * + * @return the value of the 'Instance' reference. + * @see #setInstance(ComponentInstance) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getDeclarationInstance_Instance() + * @model + * @generated + */ + ComponentInstance getInstance(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getInstance Instance}' reference. + * + * + * @param value the new value of the 'Instance' reference. + * @see #getInstance() + * @generated + */ + void setInstance(ComponentInstance value); + + /** + * Returns the value of the 'Flatname' attribute. + * + *

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

+ * + * @return the value of the 'Flatname' attribute. + * @see #setFlatname(String) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getDeclarationInstance_Flatname() + * @model + * @generated + */ + String getFlatname(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getFlatname Flatname}' attribute. + * + * + * @param value the new value of the 'Flatname' attribute. + * @see #getFlatname() + * @generated + */ + void setFlatname(String value); + +} // DeclarationInstance diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/EnabledStatementBlock.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/EnabledStatementBlock.java new file mode 100644 index 0000000..40b7a29 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/EnabledStatementBlock.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + + +/** + * + * A representation of the model object 'Enabled Statement Block'. + * + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getEnabledStatementBlock() + * @model + * @generated + */ +public interface EnabledStatementBlock extends ExecutableStatementBlock { +} // EnabledStatementBlock diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ExecutableStatementBlock.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ExecutableStatementBlock.java new file mode 100644 index 0000000..3643452 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ExecutableStatementBlock.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + + +/** + * + * A representation of the model object 'Executable Statement Block'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock#getDate Date}
  • + *
+ * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getExecutableStatementBlock() + * @model + * @generated + */ +public interface ExecutableStatementBlock extends StatementBlock { + /** + * Returns the value of the 'Date' attribute. + * + *

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

+ * + * @return the value of the 'Date' attribute. + * @see #setDate(String) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getExecutableStatementBlock_Date() + * @model + * @generated + */ + String getDate(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock#getDate Date}' attribute. + * + * + * @param value the new value of the 'Date' attribute. + * @see #getDate() + * @generated + */ + void setDate(String value); + +} // ExecutableStatementBlock diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ExecutedStatementBlock.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ExecutedStatementBlock.java new file mode 100644 index 0000000..eae1ef4 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ExecutedStatementBlock.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + + +/** + * + * A representation of the model object 'Executed Statement Block'. + * + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getExecutedStatementBlock() + * @model + * @generated + */ +public interface ExecutedStatementBlock extends StatementBlock { +} // ExecutedStatementBlock diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FiacreinstanceFactory.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FiacreinstanceFactory.java new file mode 100644 index 0000000..b26ca3f --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FiacreinstanceFactory.java @@ -0,0 +1,151 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage + * @generated + */ +public interface FiacreinstanceFactory extends EFactory { + /** + * The singleton instance of the factory. + * + * + * @generated + */ + FiacreinstanceFactory eINSTANCE = com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstanceFactoryImpl.init(); + + /** + * Returns a new object of class 'Instance Model'. + * + * + * @return a new object of class 'Instance Model'. + * @generated + */ + InstanceModel createInstanceModel(); + + /** + * Returns a new object of class 'Executed Statement Block'. + * + * + * @return a new object of class 'Executed Statement Block'. + * @generated + */ + ExecutedStatementBlock createExecutedStatementBlock(); + + /** + * Returns a new object of class 'Executable Statement Block'. + * + * + * @return a new object of class 'Executable Statement Block'. + * @generated + */ + ExecutableStatementBlock createExecutableStatementBlock(); + + /** + * Returns a new object of class 'Fireable Statement Block'. + * + * + * @return a new object of class 'Fireable Statement Block'. + * @generated + */ + FireableStatementBlock createFireableStatementBlock(); + + /** + * Returns a new object of class 'Enabled Statement Block'. + * + * + * @return a new object of class 'Enabled Statement Block'. + * @generated + */ + EnabledStatementBlock createEnabledStatementBlock(); + + /** + * Returns a new object of class 'Composition Instance'. + * + * + * @return a new object of class 'Composition Instance'. + * @generated + */ + CompositionInstance createCompositionInstance(); + + /** + * Returns a new object of class 'Component Declaration Instance'. + * + * + * @return a new object of class 'Component Declaration Instance'. + * @generated + */ + ComponentDeclarationInstance createComponentDeclarationInstance(); + + /** + * Returns a new object of class 'Process Declaration Instance'. + * + * + * @return a new object of class 'Process Declaration Instance'. + * @generated + */ + ProcessDeclarationInstance createProcessDeclarationInstance(); + + /** + * Returns a new object of class 'Instance Executed Statement Block'. + * + * + * @return a new object of class 'Instance Executed Statement Block'. + * @generated + */ + InstanceExecutedStatementBlock createInstanceExecutedStatementBlock(); + + /** + * Returns a new object of class 'Instance Fireable Statement Block'. + * + * + * @return a new object of class 'Instance Fireable Statement Block'. + * @generated + */ + InstanceFireableStatementBlock createInstanceFireableStatementBlock(); + + /** + * Returns a new object of class 'Instance Enabled Statement Block'. + * + * + * @return a new object of class 'Instance Enabled Statement Block'. + * @generated + */ + InstanceEnabledStatementBlock createInstanceEnabledStatementBlock(); + + /** + * Returns a new object of class 'Variable Declaration Instance'. + * + * + * @return a new object of class 'Variable Declaration Instance'. + * @generated + */ + VariableDeclarationInstance createVariableDeclarationInstance(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + FiacreinstancePackage getFiacreinstancePackage(); + +} //FiacreinstanceFactory diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FiacreinstancePackage.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FiacreinstancePackage.java new file mode 100644 index 0000000..a11f98a --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FiacreinstancePackage.java @@ -0,0 +1,1833 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstanceFactory + * @model kind="package" + * @generated + */ +public interface FiacreinstancePackage extends EPackage { + /** + * The package name. + * + * + * @generated + */ + String eNAME = "fiacreinstance"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://fiacreinstance/1.0"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "fiacreinstance"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + FiacreinstancePackage eINSTANCE = com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl.init(); + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceModelImpl Instance Model}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceModelImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceModel() + * @generated + */ + int INSTANCE_MODEL = 0; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_MODEL__NAME = 0; + + /** + * The feature id for the 'Model' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_MODEL__MODEL = 1; + + /** + * The feature id for the 'Instance' containment reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_MODEL__INSTANCE = 2; + + /** + * The feature id for the 'Statement Blocks' containment reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_MODEL__STATEMENT_BLOCKS = 3; + + /** + * The number of structural features of the 'Instance Model' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_MODEL_FEATURE_COUNT = 4; + + /** + * The number of operations of the 'Instance Model' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_MODEL_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.StatementBlockImpl Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.StatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getStatementBlock() + * @generated + */ + int STATEMENT_BLOCK = 1; + + /** + * The feature id for the 'Instance Statement Blocks' reference list. + * + * + * @generated + * @ordered + */ + int STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS = 0; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STATEMENT_BLOCK__NAME = 1; + + /** + * The number of structural features of the 'Statement Block' class. + * + * + * @generated + * @ordered + */ + int STATEMENT_BLOCK_FEATURE_COUNT = 2; + + /** + * The number of operations of the 'Statement Block' class. + * + * + * @generated + * @ordered + */ + int STATEMENT_BLOCK_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ExecutedStatementBlockImpl Executed Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ExecutedStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getExecutedStatementBlock() + * @generated + */ + int EXECUTED_STATEMENT_BLOCK = 2; + + /** + * The feature id for the 'Instance Statement Blocks' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTED_STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS = STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTED_STATEMENT_BLOCK__NAME = STATEMENT_BLOCK__NAME; + + /** + * The number of structural features of the 'Executed Statement Block' class. + * + * + * @generated + * @ordered + */ + int EXECUTED_STATEMENT_BLOCK_FEATURE_COUNT = STATEMENT_BLOCK_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Executed Statement Block' class. + * + * + * @generated + * @ordered + */ + int EXECUTED_STATEMENT_BLOCK_OPERATION_COUNT = STATEMENT_BLOCK_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ExecutableStatementBlockImpl Executable Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ExecutableStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getExecutableStatementBlock() + * @generated + */ + int EXECUTABLE_STATEMENT_BLOCK = 3; + + /** + * The feature id for the 'Instance Statement Blocks' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS = STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_STATEMENT_BLOCK__NAME = STATEMENT_BLOCK__NAME; + + /** + * The feature id for the 'Date' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_STATEMENT_BLOCK__DATE = STATEMENT_BLOCK_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Executable Statement Block' class. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_STATEMENT_BLOCK_FEATURE_COUNT = STATEMENT_BLOCK_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Executable Statement Block' class. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_STATEMENT_BLOCK_OPERATION_COUNT = STATEMENT_BLOCK_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FireableStatementBlockImpl Fireable Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FireableStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getFireableStatementBlock() + * @generated + */ + int FIREABLE_STATEMENT_BLOCK = 4; + + /** + * The feature id for the 'Instance Statement Blocks' reference list. + * + * + * @generated + * @ordered + */ + int FIREABLE_STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS = EXECUTABLE_STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FIREABLE_STATEMENT_BLOCK__NAME = EXECUTABLE_STATEMENT_BLOCK__NAME; + + /** + * The feature id for the 'Date' attribute. + * + * + * @generated + * @ordered + */ + int FIREABLE_STATEMENT_BLOCK__DATE = EXECUTABLE_STATEMENT_BLOCK__DATE; + + /** + * The number of structural features of the 'Fireable Statement Block' class. + * + * + * @generated + * @ordered + */ + int FIREABLE_STATEMENT_BLOCK_FEATURE_COUNT = EXECUTABLE_STATEMENT_BLOCK_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Fireable Statement Block' class. + * + * + * @generated + * @ordered + */ + int FIREABLE_STATEMENT_BLOCK_OPERATION_COUNT = EXECUTABLE_STATEMENT_BLOCK_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.EnabledStatementBlockImpl Enabled Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.EnabledStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getEnabledStatementBlock() + * @generated + */ + int ENABLED_STATEMENT_BLOCK = 5; + + /** + * The feature id for the 'Instance Statement Blocks' reference list. + * + * + * @generated + * @ordered + */ + int ENABLED_STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS = EXECUTABLE_STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ENABLED_STATEMENT_BLOCK__NAME = EXECUTABLE_STATEMENT_BLOCK__NAME; + + /** + * The feature id for the 'Date' attribute. + * + * + * @generated + * @ordered + */ + int ENABLED_STATEMENT_BLOCK__DATE = EXECUTABLE_STATEMENT_BLOCK__DATE; + + /** + * The number of structural features of the 'Enabled Statement Block' class. + * + * + * @generated + * @ordered + */ + int ENABLED_STATEMENT_BLOCK_FEATURE_COUNT = EXECUTABLE_STATEMENT_BLOCK_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Enabled Statement Block' class. + * + * + * @generated + * @ordered + */ + int ENABLED_STATEMENT_BLOCK_OPERATION_COUNT = EXECUTABLE_STATEMENT_BLOCK_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.BlockInstanceImpl Block Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.BlockInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getBlockInstance() + * @generated + */ + int BLOCK_INSTANCE = 6; + + /** + * The feature id for the 'Block Instances' containment reference list. + * + * + * @generated + * @ordered + */ + int BLOCK_INSTANCE__BLOCK_INSTANCES = 0; + + /** + * The number of structural features of the 'Block Instance' class. + * + * + * @generated + * @ordered + */ + int BLOCK_INSTANCE_FEATURE_COUNT = 1; + + /** + * The number of operations of the 'Block Instance' class. + * + * + * @generated + * @ordered + */ + int BLOCK_INSTANCE_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.CompositionInstanceImpl Composition Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.CompositionInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getCompositionInstance() + * @generated + */ + int COMPOSITION_INSTANCE = 7; + + /** + * The feature id for the 'Block Instances' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPOSITION_INSTANCE__BLOCK_INSTANCES = BLOCK_INSTANCE__BLOCK_INSTANCES; + + /** + * The feature id for the 'Composition' reference. + * + * + * @generated + * @ordered + */ + int COMPOSITION_INSTANCE__COMPOSITION = BLOCK_INSTANCE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Composition Instance' class. + * + * + * @generated + * @ordered + */ + int COMPOSITION_INSTANCE_FEATURE_COUNT = BLOCK_INSTANCE_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Composition Instance' class. + * + * + * @generated + * @ordered + */ + int COMPOSITION_INSTANCE_OPERATION_COUNT = BLOCK_INSTANCE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.DeclarationInstanceImpl Declaration Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.DeclarationInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getDeclarationInstance() + * @generated + */ + int DECLARATION_INSTANCE = 8; + + /** + * The feature id for the 'Block Instances' containment reference list. + * + * + * @generated + * @ordered + */ + int DECLARATION_INSTANCE__BLOCK_INSTANCES = BLOCK_INSTANCE__BLOCK_INSTANCES; + + /** + * The feature id for the 'Variable Declaration Instances' containment reference list. + * + * + * @generated + * @ordered + */ + int DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES = BLOCK_INSTANCE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DECLARATION_INSTANCE__NAME = BLOCK_INSTANCE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Instance' reference. + * + * + * @generated + * @ordered + */ + int DECLARATION_INSTANCE__INSTANCE = BLOCK_INSTANCE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Flatname' attribute. + * + * + * @generated + * @ordered + */ + int DECLARATION_INSTANCE__FLATNAME = BLOCK_INSTANCE_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Declaration Instance' class. + * + * + * @generated + * @ordered + */ + int DECLARATION_INSTANCE_FEATURE_COUNT = BLOCK_INSTANCE_FEATURE_COUNT + 4; + + /** + * The number of operations of the 'Declaration Instance' class. + * + * + * @generated + * @ordered + */ + int DECLARATION_INSTANCE_OPERATION_COUNT = BLOCK_INSTANCE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ComponentDeclarationInstanceImpl Component Declaration Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ComponentDeclarationInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getComponentDeclarationInstance() + * @generated + */ + int COMPONENT_DECLARATION_INSTANCE = 9; + + /** + * The feature id for the 'Block Instances' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION_INSTANCE__BLOCK_INSTANCES = DECLARATION_INSTANCE__BLOCK_INSTANCES; + + /** + * The feature id for the 'Variable Declaration Instances' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES = DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION_INSTANCE__NAME = DECLARATION_INSTANCE__NAME; + + /** + * The feature id for the 'Instance' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION_INSTANCE__INSTANCE = DECLARATION_INSTANCE__INSTANCE; + + /** + * The feature id for the 'Flatname' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION_INSTANCE__FLATNAME = DECLARATION_INSTANCE__FLATNAME; + + /** + * The feature id for the 'Component' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION_INSTANCE__COMPONENT = DECLARATION_INSTANCE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Component Declaration Instance' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION_INSTANCE_FEATURE_COUNT = DECLARATION_INSTANCE_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Component Declaration Instance' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION_INSTANCE_OPERATION_COUNT = DECLARATION_INSTANCE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ProcessDeclarationInstanceImpl Process Declaration Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ProcessDeclarationInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getProcessDeclarationInstance() + * @generated + */ + int PROCESS_DECLARATION_INSTANCE = 10; + + /** + * The feature id for the 'Block Instances' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_INSTANCE__BLOCK_INSTANCES = DECLARATION_INSTANCE__BLOCK_INSTANCES; + + /** + * The feature id for the 'Variable Declaration Instances' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES = DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_INSTANCE__NAME = DECLARATION_INSTANCE__NAME; + + /** + * The feature id for the 'Instance' reference. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_INSTANCE__INSTANCE = DECLARATION_INSTANCE__INSTANCE; + + /** + * The feature id for the 'Flatname' attribute. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_INSTANCE__FLATNAME = DECLARATION_INSTANCE__FLATNAME; + + /** + * The feature id for the 'Current State' reference. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_INSTANCE__CURRENT_STATE = DECLARATION_INSTANCE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Process' reference. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_INSTANCE__PROCESS = DECLARATION_INSTANCE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Instance Statement Blocks' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS = DECLARATION_INSTANCE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Process Declaration Instance' class. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_INSTANCE_FEATURE_COUNT = DECLARATION_INSTANCE_FEATURE_COUNT + 3; + + /** + * The number of operations of the 'Process Declaration Instance' class. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_INSTANCE_OPERATION_COUNT = DECLARATION_INSTANCE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceStatementBlockImpl Instance Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceStatementBlock() + * @generated + */ + int INSTANCE_STATEMENT_BLOCK = 11; + + /** + * The feature id for the 'Transition Source' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE = 0; + + /** + * The feature id for the 'Statements' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_STATEMENT_BLOCK__STATEMENTS = 1; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_STATEMENT_BLOCK__NAME = 2; + + /** + * The number of structural features of the 'Instance Statement Block' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_STATEMENT_BLOCK_FEATURE_COUNT = 3; + + /** + * The number of operations of the 'Instance Statement Block' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_STATEMENT_BLOCK_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceExecutedStatementBlockImpl Instance Executed Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceExecutedStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceExecutedStatementBlock() + * @generated + */ + int INSTANCE_EXECUTED_STATEMENT_BLOCK = 12; + + /** + * The feature id for the 'Transition Source' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_EXECUTED_STATEMENT_BLOCK__TRANSITION_SOURCE = INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE; + + /** + * The feature id for the 'Statements' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_EXECUTED_STATEMENT_BLOCK__STATEMENTS = INSTANCE_STATEMENT_BLOCK__STATEMENTS; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_EXECUTED_STATEMENT_BLOCK__NAME = INSTANCE_STATEMENT_BLOCK__NAME; + + /** + * The number of structural features of the 'Instance Executed Statement Block' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_EXECUTED_STATEMENT_BLOCK_FEATURE_COUNT = INSTANCE_STATEMENT_BLOCK_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Instance Executed Statement Block' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_EXECUTED_STATEMENT_BLOCK_OPERATION_COUNT = INSTANCE_STATEMENT_BLOCK_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceExecutableStatementBlockImpl Instance Executable Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceExecutableStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceExecutableStatementBlock() + * @generated + */ + int INSTANCE_EXECUTABLE_STATEMENT_BLOCK = 13; + + /** + * The feature id for the 'Transition Source' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_EXECUTABLE_STATEMENT_BLOCK__TRANSITION_SOURCE = INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE; + + /** + * The feature id for the 'Statements' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_EXECUTABLE_STATEMENT_BLOCK__STATEMENTS = INSTANCE_STATEMENT_BLOCK__STATEMENTS; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_EXECUTABLE_STATEMENT_BLOCK__NAME = INSTANCE_STATEMENT_BLOCK__NAME; + + /** + * The number of structural features of the 'Instance Executable Statement Block' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_EXECUTABLE_STATEMENT_BLOCK_FEATURE_COUNT = INSTANCE_STATEMENT_BLOCK_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Instance Executable Statement Block' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_EXECUTABLE_STATEMENT_BLOCK_OPERATION_COUNT = INSTANCE_STATEMENT_BLOCK_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceFireableStatementBlockImpl Instance Fireable Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceFireableStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceFireableStatementBlock() + * @generated + */ + int INSTANCE_FIREABLE_STATEMENT_BLOCK = 14; + + /** + * The feature id for the 'Transition Source' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_FIREABLE_STATEMENT_BLOCK__TRANSITION_SOURCE = INSTANCE_EXECUTABLE_STATEMENT_BLOCK__TRANSITION_SOURCE; + + /** + * The feature id for the 'Statements' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_FIREABLE_STATEMENT_BLOCK__STATEMENTS = INSTANCE_EXECUTABLE_STATEMENT_BLOCK__STATEMENTS; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_FIREABLE_STATEMENT_BLOCK__NAME = INSTANCE_EXECUTABLE_STATEMENT_BLOCK__NAME; + + /** + * The number of structural features of the 'Instance Fireable Statement Block' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_FIREABLE_STATEMENT_BLOCK_FEATURE_COUNT = INSTANCE_EXECUTABLE_STATEMENT_BLOCK_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Instance Fireable Statement Block' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_FIREABLE_STATEMENT_BLOCK_OPERATION_COUNT = INSTANCE_EXECUTABLE_STATEMENT_BLOCK_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceEnabledStatementBlockImpl Instance Enabled Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceEnabledStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceEnabledStatementBlock() + * @generated + */ + int INSTANCE_ENABLED_STATEMENT_BLOCK = 15; + + /** + * The feature id for the 'Transition Source' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_ENABLED_STATEMENT_BLOCK__TRANSITION_SOURCE = INSTANCE_EXECUTABLE_STATEMENT_BLOCK__TRANSITION_SOURCE; + + /** + * The feature id for the 'Statements' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_ENABLED_STATEMENT_BLOCK__STATEMENTS = INSTANCE_EXECUTABLE_STATEMENT_BLOCK__STATEMENTS; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_ENABLED_STATEMENT_BLOCK__NAME = INSTANCE_EXECUTABLE_STATEMENT_BLOCK__NAME; + + /** + * The number of structural features of the 'Instance Enabled Statement Block' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_ENABLED_STATEMENT_BLOCK_FEATURE_COUNT = INSTANCE_EXECUTABLE_STATEMENT_BLOCK_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Instance Enabled Statement Block' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_ENABLED_STATEMENT_BLOCK_OPERATION_COUNT = INSTANCE_EXECUTABLE_STATEMENT_BLOCK_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.VariableDeclarationInstanceImpl Variable Declaration Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.VariableDeclarationInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getVariableDeclarationInstance() + * @generated + */ + int VARIABLE_DECLARATION_INSTANCE = 16; + + /** + * The feature id for the 'Variable Declaration' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_DECLARATION_INSTANCE__VARIABLE_DECLARATION = 0; + + /** + * The feature id for the 'Current Value' containment reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE = 1; + + /** + * The number of structural features of the 'Variable Declaration Instance' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_DECLARATION_INSTANCE_FEATURE_COUNT = 2; + + /** + * The number of operations of the 'Variable Declaration Instance' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_DECLARATION_INSTANCE_OPERATION_COUNT = 0; + + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel Instance Model}'. + * + * + * @return the meta object for class 'Instance Model'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel + * @generated + */ + EClass getInstanceModel(); + + /** + * Returns the meta object for the attribute '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getName() + * @see #getInstanceModel() + * @generated + */ + EAttribute getInstanceModel_Name(); + + /** + * Returns the meta object for the reference '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getModel Model}'. + * + * + * @return the meta object for the reference 'Model'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getModel() + * @see #getInstanceModel() + * @generated + */ + EReference getInstanceModel_Model(); + + /** + * Returns the meta object for the containment reference list '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getInstance Instance}'. + * + * + * @return the meta object for the containment reference list 'Instance'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getInstance() + * @see #getInstanceModel() + * @generated + */ + EReference getInstanceModel_Instance(); + + /** + * Returns the meta object for the containment reference list '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getStatementBlocks Statement Blocks}'. + * + * + * @return the meta object for the containment reference list 'Statement Blocks'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getStatementBlocks() + * @see #getInstanceModel() + * @generated + */ + EReference getInstanceModel_StatementBlocks(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock Statement Block}'. + * + * + * @return the meta object for class 'Statement Block'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock + * @generated + */ + EClass getStatementBlock(); + + /** + * Returns the meta object for the reference list '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock#getInstanceStatementBlocks Instance Statement Blocks}'. + * + * + * @return the meta object for the reference list 'Instance Statement Blocks'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock#getInstanceStatementBlocks() + * @see #getStatementBlock() + * @generated + */ + EReference getStatementBlock_InstanceStatementBlocks(); + + /** + * Returns the meta object for the attribute '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock#getName() + * @see #getStatementBlock() + * @generated + */ + EAttribute getStatementBlock_Name(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock Executed Statement Block}'. + * + * + * @return the meta object for class 'Executed Statement Block'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock + * @generated + */ + EClass getExecutedStatementBlock(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock Executable Statement Block}'. + * + * + * @return the meta object for class 'Executable Statement Block'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock + * @generated + */ + EClass getExecutableStatementBlock(); + + /** + * Returns the meta object for the attribute '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock#getDate Date}'. + * + * + * @return the meta object for the attribute 'Date'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock#getDate() + * @see #getExecutableStatementBlock() + * @generated + */ + EAttribute getExecutableStatementBlock_Date(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock Fireable Statement Block}'. + * + * + * @return the meta object for class 'Fireable Statement Block'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock + * @generated + */ + EClass getFireableStatementBlock(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock Enabled Statement Block}'. + * + * + * @return the meta object for class 'Enabled Statement Block'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock + * @generated + */ + EClass getEnabledStatementBlock(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance Block Instance}'. + * + * + * @return the meta object for class 'Block Instance'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance + * @generated + */ + EClass getBlockInstance(); + + /** + * Returns the meta object for the containment reference list '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance#getBlockInstances Block Instances}'. + * + * + * @return the meta object for the containment reference list 'Block Instances'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance#getBlockInstances() + * @see #getBlockInstance() + * @generated + */ + EReference getBlockInstance_BlockInstances(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance Composition Instance}'. + * + * + * @return the meta object for class 'Composition Instance'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance + * @generated + */ + EClass getCompositionInstance(); + + /** + * Returns the meta object for the reference '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance#getComposition Composition}'. + * + * + * @return the meta object for the reference 'Composition'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance#getComposition() + * @see #getCompositionInstance() + * @generated + */ + EReference getCompositionInstance_Composition(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance Declaration Instance}'. + * + * + * @return the meta object for class 'Declaration Instance'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance + * @generated + */ + EClass getDeclarationInstance(); + + /** + * Returns the meta object for the containment reference list '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getVariableDeclarationInstances Variable Declaration Instances}'. + * + * + * @return the meta object for the containment reference list 'Variable Declaration Instances'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getVariableDeclarationInstances() + * @see #getDeclarationInstance() + * @generated + */ + EReference getDeclarationInstance_VariableDeclarationInstances(); + + /** + * Returns the meta object for the attribute '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getName() + * @see #getDeclarationInstance() + * @generated + */ + EAttribute getDeclarationInstance_Name(); + + /** + * Returns the meta object for the reference '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getInstance Instance}'. + * + * + * @return the meta object for the reference 'Instance'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getInstance() + * @see #getDeclarationInstance() + * @generated + */ + EReference getDeclarationInstance_Instance(); + + /** + * Returns the meta object for the attribute '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getFlatname Flatname}'. + * + * + * @return the meta object for the attribute 'Flatname'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance#getFlatname() + * @see #getDeclarationInstance() + * @generated + */ + EAttribute getDeclarationInstance_Flatname(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance Component Declaration Instance}'. + * + * + * @return the meta object for class 'Component Declaration Instance'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance + * @generated + */ + EClass getComponentDeclarationInstance(); + + /** + * Returns the meta object for the reference '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance#getComponent Component}'. + * + * + * @return the meta object for the reference 'Component'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance#getComponent() + * @see #getComponentDeclarationInstance() + * @generated + */ + EReference getComponentDeclarationInstance_Component(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance Process Declaration Instance}'. + * + * + * @return the meta object for class 'Process Declaration Instance'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance + * @generated + */ + EClass getProcessDeclarationInstance(); + + /** + * Returns the meta object for the reference '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getCurrentState Current State}'. + * + * + * @return the meta object for the reference 'Current State'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getCurrentState() + * @see #getProcessDeclarationInstance() + * @generated + */ + EReference getProcessDeclarationInstance_CurrentState(); + + /** + * Returns the meta object for the reference '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getProcess Process}'. + * + * + * @return the meta object for the reference 'Process'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getProcess() + * @see #getProcessDeclarationInstance() + * @generated + */ + EReference getProcessDeclarationInstance_Process(); + + /** + * Returns the meta object for the containment reference list '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getInstanceStatementBlocks Instance Statement Blocks}'. + * + * + * @return the meta object for the containment reference list 'Instance Statement Blocks'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getInstanceStatementBlocks() + * @see #getProcessDeclarationInstance() + * @generated + */ + EReference getProcessDeclarationInstance_InstanceStatementBlocks(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock Instance Statement Block}'. + * + * + * @return the meta object for class 'Instance Statement Block'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock + * @generated + */ + EClass getInstanceStatementBlock(); + + /** + * Returns the meta object for the reference '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getTransitionSource Transition Source}'. + * + * + * @return the meta object for the reference 'Transition Source'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getTransitionSource() + * @see #getInstanceStatementBlock() + * @generated + */ + EReference getInstanceStatementBlock_TransitionSource(); + + /** + * Returns the meta object for the reference list '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getStatements Statements}'. + * + * + * @return the meta object for the reference list 'Statements'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getStatements() + * @see #getInstanceStatementBlock() + * @generated + */ + EReference getInstanceStatementBlock_Statements(); + + /** + * Returns the meta object for the attribute '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getName() + * @see #getInstanceStatementBlock() + * @generated + */ + EAttribute getInstanceStatementBlock_Name(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock Instance Executed Statement Block}'. + * + * + * @return the meta object for class 'Instance Executed Statement Block'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock + * @generated + */ + EClass getInstanceExecutedStatementBlock(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutableStatementBlock Instance Executable Statement Block}'. + * + * + * @return the meta object for class 'Instance Executable Statement Block'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutableStatementBlock + * @generated + */ + EClass getInstanceExecutableStatementBlock(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock Instance Fireable Statement Block}'. + * + * + * @return the meta object for class 'Instance Fireable Statement Block'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock + * @generated + */ + EClass getInstanceFireableStatementBlock(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock Instance Enabled Statement Block}'. + * + * + * @return the meta object for class 'Instance Enabled Statement Block'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock + * @generated + */ + EClass getInstanceEnabledStatementBlock(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance Variable Declaration Instance}'. + * + * + * @return the meta object for class 'Variable Declaration Instance'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance + * @generated + */ + EClass getVariableDeclarationInstance(); + + /** + * Returns the meta object for the reference '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance#getVariableDeclaration Variable Declaration}'. + * + * + * @return the meta object for the reference 'Variable Declaration'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance#getVariableDeclaration() + * @see #getVariableDeclarationInstance() + * @generated + */ + EReference getVariableDeclarationInstance_VariableDeclaration(); + + /** + * Returns the meta object for the containment reference '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance#getCurrentValue Current Value}'. + * + * + * @return the meta object for the containment reference 'Current Value'. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance#getCurrentValue() + * @see #getVariableDeclarationInstance() + * @generated + */ + EReference getVariableDeclarationInstance_CurrentValue(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + FiacreinstanceFactory getFiacreinstanceFactory(); + + /** + * + * 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceModelImpl Instance Model}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceModelImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceModel() + * @generated + */ + EClass INSTANCE_MODEL = eINSTANCE.getInstanceModel(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute INSTANCE_MODEL__NAME = eINSTANCE.getInstanceModel_Name(); + + /** + * The meta object literal for the 'Model' reference feature. + * + * + * @generated + */ + EReference INSTANCE_MODEL__MODEL = eINSTANCE.getInstanceModel_Model(); + + /** + * The meta object literal for the 'Instance' containment reference list feature. + * + * + * @generated + */ + EReference INSTANCE_MODEL__INSTANCE = eINSTANCE.getInstanceModel_Instance(); + + /** + * The meta object literal for the 'Statement Blocks' containment reference list feature. + * + * + * @generated + */ + EReference INSTANCE_MODEL__STATEMENT_BLOCKS = eINSTANCE.getInstanceModel_StatementBlocks(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.StatementBlockImpl Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.StatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getStatementBlock() + * @generated + */ + EClass STATEMENT_BLOCK = eINSTANCE.getStatementBlock(); + + /** + * The meta object literal for the 'Instance Statement Blocks' reference list feature. + * + * + * @generated + */ + EReference STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS = eINSTANCE.getStatementBlock_InstanceStatementBlocks(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute STATEMENT_BLOCK__NAME = eINSTANCE.getStatementBlock_Name(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ExecutedStatementBlockImpl Executed Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ExecutedStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getExecutedStatementBlock() + * @generated + */ + EClass EXECUTED_STATEMENT_BLOCK = eINSTANCE.getExecutedStatementBlock(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ExecutableStatementBlockImpl Executable Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ExecutableStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getExecutableStatementBlock() + * @generated + */ + EClass EXECUTABLE_STATEMENT_BLOCK = eINSTANCE.getExecutableStatementBlock(); + + /** + * The meta object literal for the 'Date' attribute feature. + * + * + * @generated + */ + EAttribute EXECUTABLE_STATEMENT_BLOCK__DATE = eINSTANCE.getExecutableStatementBlock_Date(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FireableStatementBlockImpl Fireable Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FireableStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getFireableStatementBlock() + * @generated + */ + EClass FIREABLE_STATEMENT_BLOCK = eINSTANCE.getFireableStatementBlock(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.EnabledStatementBlockImpl Enabled Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.EnabledStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getEnabledStatementBlock() + * @generated + */ + EClass ENABLED_STATEMENT_BLOCK = eINSTANCE.getEnabledStatementBlock(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.BlockInstanceImpl Block Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.BlockInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getBlockInstance() + * @generated + */ + EClass BLOCK_INSTANCE = eINSTANCE.getBlockInstance(); + + /** + * The meta object literal for the 'Block Instances' containment reference list feature. + * + * + * @generated + */ + EReference BLOCK_INSTANCE__BLOCK_INSTANCES = eINSTANCE.getBlockInstance_BlockInstances(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.CompositionInstanceImpl Composition Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.CompositionInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getCompositionInstance() + * @generated + */ + EClass COMPOSITION_INSTANCE = eINSTANCE.getCompositionInstance(); + + /** + * The meta object literal for the 'Composition' reference feature. + * + * + * @generated + */ + EReference COMPOSITION_INSTANCE__COMPOSITION = eINSTANCE.getCompositionInstance_Composition(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.DeclarationInstanceImpl Declaration Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.DeclarationInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getDeclarationInstance() + * @generated + */ + EClass DECLARATION_INSTANCE = eINSTANCE.getDeclarationInstance(); + + /** + * The meta object literal for the 'Variable Declaration Instances' containment reference list feature. + * + * + * @generated + */ + EReference DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES = eINSTANCE.getDeclarationInstance_VariableDeclarationInstances(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute DECLARATION_INSTANCE__NAME = eINSTANCE.getDeclarationInstance_Name(); + + /** + * The meta object literal for the 'Instance' reference feature. + * + * + * @generated + */ + EReference DECLARATION_INSTANCE__INSTANCE = eINSTANCE.getDeclarationInstance_Instance(); + + /** + * The meta object literal for the 'Flatname' attribute feature. + * + * + * @generated + */ + EAttribute DECLARATION_INSTANCE__FLATNAME = eINSTANCE.getDeclarationInstance_Flatname(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ComponentDeclarationInstanceImpl Component Declaration Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ComponentDeclarationInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getComponentDeclarationInstance() + * @generated + */ + EClass COMPONENT_DECLARATION_INSTANCE = eINSTANCE.getComponentDeclarationInstance(); + + /** + * The meta object literal for the 'Component' reference feature. + * + * + * @generated + */ + EReference COMPONENT_DECLARATION_INSTANCE__COMPONENT = eINSTANCE.getComponentDeclarationInstance_Component(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ProcessDeclarationInstanceImpl Process Declaration Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ProcessDeclarationInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getProcessDeclarationInstance() + * @generated + */ + EClass PROCESS_DECLARATION_INSTANCE = eINSTANCE.getProcessDeclarationInstance(); + + /** + * The meta object literal for the 'Current State' reference feature. + * + * + * @generated + */ + EReference PROCESS_DECLARATION_INSTANCE__CURRENT_STATE = eINSTANCE.getProcessDeclarationInstance_CurrentState(); + + /** + * The meta object literal for the 'Process' reference feature. + * + * + * @generated + */ + EReference PROCESS_DECLARATION_INSTANCE__PROCESS = eINSTANCE.getProcessDeclarationInstance_Process(); + + /** + * The meta object literal for the 'Instance Statement Blocks' containment reference list feature. + * + * + * @generated + */ + EReference PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS = eINSTANCE.getProcessDeclarationInstance_InstanceStatementBlocks(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceStatementBlockImpl Instance Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceStatementBlock() + * @generated + */ + EClass INSTANCE_STATEMENT_BLOCK = eINSTANCE.getInstanceStatementBlock(); + + /** + * The meta object literal for the 'Transition Source' reference feature. + * + * + * @generated + */ + EReference INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE = eINSTANCE.getInstanceStatementBlock_TransitionSource(); + + /** + * The meta object literal for the 'Statements' reference list feature. + * + * + * @generated + */ + EReference INSTANCE_STATEMENT_BLOCK__STATEMENTS = eINSTANCE.getInstanceStatementBlock_Statements(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute INSTANCE_STATEMENT_BLOCK__NAME = eINSTANCE.getInstanceStatementBlock_Name(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceExecutedStatementBlockImpl Instance Executed Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceExecutedStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceExecutedStatementBlock() + * @generated + */ + EClass INSTANCE_EXECUTED_STATEMENT_BLOCK = eINSTANCE.getInstanceExecutedStatementBlock(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceExecutableStatementBlockImpl Instance Executable Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceExecutableStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceExecutableStatementBlock() + * @generated + */ + EClass INSTANCE_EXECUTABLE_STATEMENT_BLOCK = eINSTANCE.getInstanceExecutableStatementBlock(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceFireableStatementBlockImpl Instance Fireable Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceFireableStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceFireableStatementBlock() + * @generated + */ + EClass INSTANCE_FIREABLE_STATEMENT_BLOCK = eINSTANCE.getInstanceFireableStatementBlock(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceEnabledStatementBlockImpl Instance Enabled Statement Block}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceEnabledStatementBlockImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getInstanceEnabledStatementBlock() + * @generated + */ + EClass INSTANCE_ENABLED_STATEMENT_BLOCK = eINSTANCE.getInstanceEnabledStatementBlock(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.VariableDeclarationInstanceImpl Variable Declaration Instance}' class. + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.VariableDeclarationInstanceImpl + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.FiacreinstancePackageImpl#getVariableDeclarationInstance() + * @generated + */ + EClass VARIABLE_DECLARATION_INSTANCE = eINSTANCE.getVariableDeclarationInstance(); + + /** + * The meta object literal for the 'Variable Declaration' reference feature. + * + * + * @generated + */ + EReference VARIABLE_DECLARATION_INSTANCE__VARIABLE_DECLARATION = eINSTANCE.getVariableDeclarationInstance_VariableDeclaration(); + + /** + * The meta object literal for the 'Current Value' containment reference feature. + * + * + * @generated + */ + EReference VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE = eINSTANCE.getVariableDeclarationInstance_CurrentValue(); + + } + +} //FiacreinstancePackage diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FireableStatementBlock.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FireableStatementBlock.java new file mode 100644 index 0000000..e17e2b2 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/FireableStatementBlock.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + + +/** + * + * A representation of the model object 'Fireable Statement Block'. + * + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getFireableStatementBlock() + * @model + * @generated + */ +public interface FireableStatementBlock extends ExecutableStatementBlock { +} // FireableStatementBlock diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceEnabledStatementBlock.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceEnabledStatementBlock.java new file mode 100644 index 0000000..28e2a57 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceEnabledStatementBlock.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + + +/** + * + * A representation of the model object 'Instance Enabled Statement Block'. + * + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceEnabledStatementBlock() + * @model + * @generated + */ +public interface InstanceEnabledStatementBlock extends InstanceExecutableStatementBlock { +} // InstanceEnabledStatementBlock diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceExecutableStatementBlock.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceExecutableStatementBlock.java new file mode 100644 index 0000000..357b919 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceExecutableStatementBlock.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + + +/** + * + * A representation of the model object 'Instance Executable Statement Block'. + * + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceExecutableStatementBlock() + * @model abstract="true" + * @generated + */ +public interface InstanceExecutableStatementBlock extends InstanceStatementBlock { +} // InstanceExecutableStatementBlock diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceExecutedStatementBlock.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceExecutedStatementBlock.java new file mode 100644 index 0000000..fd89dcc --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceExecutedStatementBlock.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + + +/** + * + * A representation of the model object 'Instance Executed Statement Block'. + * + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceExecutedStatementBlock() + * @model + * @generated + */ +public interface InstanceExecutedStatementBlock extends InstanceStatementBlock { +} // InstanceExecutedStatementBlock diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceFireableStatementBlock.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceFireableStatementBlock.java new file mode 100644 index 0000000..d70e787 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceFireableStatementBlock.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + + +/** + * + * A representation of the model object 'Instance Fireable Statement Block'. + * + * + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceFireableStatementBlock() + * @model + * @generated + */ +public interface InstanceFireableStatementBlock extends InstanceExecutableStatementBlock { +} // InstanceFireableStatementBlock diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceModel.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceModel.java new file mode 100644 index 0000000..76b323c --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceModel.java @@ -0,0 +1,125 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +import fr.irit.fiacre.xtext.fiacre.Model; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Instance Model'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getName Name}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getModel Model}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getInstance Instance}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getStatementBlocks Statement Blocks}
  • + *
+ * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceModel() + * @model + * @generated + */ +public interface InstanceModel extends EObject { + /** + * Returns the value of the 'Name' attribute. + * + *

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

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceModel_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Model' reference. + * + *

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

+ * + * @return the value of the 'Model' reference. + * @see #setModel(Model) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceModel_Model() + * @model required="true" + * @generated + */ + Model getModel(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel#getModel Model}' reference. + * + * + * @param value the new value of the 'Model' reference. + * @see #getModel() + * @generated + */ + void setModel(Model value); + + /** + * Returns the value of the 'Instance' containment reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance}. + * + *

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

+ * + * @return the value of the 'Instance' containment reference list. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceModel_Instance() + * @model containment="true" required="true" + * @generated + */ + EList getInstance(); + + /** + * Returns the value of the 'Statement Blocks' containment reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock}. + * + *

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

+ * + * @return the value of the 'Statement Blocks' containment reference list. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceModel_StatementBlocks() + * @model containment="true" + * @generated + */ + EList getStatementBlocks(); + +} // InstanceModel diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceStatementBlock.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceStatementBlock.java new file mode 100644 index 0000000..2f0f618 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/InstanceStatementBlock.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.TransitionSource; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Instance Statement Block'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getTransitionSource Transition Source}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getStatements Statements}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getName Name}
  • + *
+ * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceStatementBlock() + * @model abstract="true" + * @generated + */ +public interface InstanceStatementBlock extends EObject { + /** + * Returns the value of the 'Transition Source' reference. + * + *

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

+ * + * @return the value of the 'Transition Source' reference. + * @see #setTransitionSource(TransitionSource) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceStatementBlock_TransitionSource() + * @model required="true" + * @generated + */ + TransitionSource getTransitionSource(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getTransitionSource Transition Source}' reference. + * + * + * @param value the new value of the 'Transition Source' reference. + * @see #getTransitionSource() + * @generated + */ + void setTransitionSource(TransitionSource value); + + /** + * Returns the value of the 'Statements' reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Statement}. + * + *

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

+ * + * @return the value of the 'Statements' reference list. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceStatementBlock_Statements() + * @model + * @generated + */ + EList getStatements(); + + /** + * Returns the value of the 'Name' attribute. + * + *

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

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getInstanceStatementBlock_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // InstanceStatementBlock diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ProcessDeclarationInstance.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ProcessDeclarationInstance.java new file mode 100644 index 0000000..79f9ebf --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/ProcessDeclarationInstance.java @@ -0,0 +1,107 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +import fr.irit.fiacre.xtext.fiacre.ProcessDeclaration; +import fr.irit.fiacre.xtext.fiacre.StateDeclaration; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Process Declaration Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getCurrentState Current State}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getProcess Process}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getInstanceStatementBlocks Instance Statement Blocks}
  • + *
+ * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getProcessDeclarationInstance() + * @model + * @generated + */ +public interface ProcessDeclarationInstance extends DeclarationInstance { + /** + * Returns the value of the 'Current State' reference. + * + *

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

+ * + * @return the value of the 'Current State' reference. + * @see #setCurrentState(StateDeclaration) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getProcessDeclarationInstance_CurrentState() + * @model + * @generated + */ + StateDeclaration getCurrentState(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getCurrentState Current State}' reference. + * + * + * @param value the new value of the 'Current State' reference. + * @see #getCurrentState() + * @generated + */ + void setCurrentState(StateDeclaration value); + + /** + * Returns the value of the 'Process' reference. + * + *

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

+ * + * @return the value of the 'Process' reference. + * @see #setProcess(ProcessDeclaration) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getProcessDeclarationInstance_Process() + * @model required="true" + * @generated + */ + ProcessDeclaration getProcess(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance#getProcess Process}' reference. + * + * + * @param value the new value of the 'Process' reference. + * @see #getProcess() + * @generated + */ + void setProcess(ProcessDeclaration value); + + /** + * Returns the value of the 'Instance Statement Blocks' containment reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock}. + * + *

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

+ * + * @return the value of the 'Instance Statement Blocks' containment reference list. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getProcessDeclarationInstance_InstanceStatementBlocks() + * @model containment="true" + * @generated + */ + EList getInstanceStatementBlocks(); + +} // ProcessDeclarationInstance diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/StatementBlock.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/StatementBlock.java new file mode 100644 index 0000000..9fdc471 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/StatementBlock.java @@ -0,0 +1,79 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Statement Block'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock#getInstanceStatementBlocks Instance Statement Blocks}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock#getName Name}
  • + *
+ * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getStatementBlock() + * @model abstract="true" + * @generated + */ +public interface StatementBlock extends EObject { + /** + * Returns the value of the 'Instance Statement Blocks' reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock}. + * + *

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

+ * + * @return the value of the 'Instance Statement Blocks' reference list. + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getStatementBlock_InstanceStatementBlocks() + * @model required="true" + * @generated + */ + EList getInstanceStatementBlocks(); + + /** + * Returns the value of the 'Name' attribute. + * + *

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

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getStatementBlock_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // StatementBlock diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/VariableDeclarationInstance.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/VariableDeclarationInstance.java new file mode 100644 index 0000000..437ca49 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/VariableDeclarationInstance.java @@ -0,0 +1,90 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance; + +import fr.irit.fiacre.xtext.fiacre.ValueExpression; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Variable Declaration Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance#getVariableDeclaration Variable Declaration}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance#getCurrentValue Current Value}
  • + *
+ * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getVariableDeclarationInstance() + * @model + * @generated + */ +public interface VariableDeclarationInstance extends EObject { + /** + * Returns the value of the 'Variable Declaration' reference. + * + *

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

+ * + * @return the value of the 'Variable Declaration' reference. + * @see #setVariableDeclaration(VariableDeclaration) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getVariableDeclarationInstance_VariableDeclaration() + * @model required="true" + * @generated + */ + VariableDeclaration getVariableDeclaration(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance#getVariableDeclaration Variable Declaration}' reference. + * + * + * @param value the new value of the 'Variable Declaration' reference. + * @see #getVariableDeclaration() + * @generated + */ + void setVariableDeclaration(VariableDeclaration value); + + /** + * Returns the value of the 'Current Value' containment reference. + * + *

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

+ * + * @return the value of the 'Current Value' containment reference. + * @see #setCurrentValue(ValueExpression) + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#getVariableDeclarationInstance_CurrentValue() + * @model containment="true" + * @generated + */ + ValueExpression getCurrentValue(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance#getCurrentValue Current Value}' containment reference. + * + * + * @param value the new value of the 'Current Value' containment reference. + * @see #getCurrentValue() + * @generated + */ + void setCurrentValue(ValueExpression value); + +} // VariableDeclarationInstance diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/BlockInstanceImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/BlockInstanceImpl.java new file mode 100644 index 0000000..085ba63 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/BlockInstanceImpl.java @@ -0,0 +1,161 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * + * An implementation of the model object 'Block Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.BlockInstanceImpl#getBlockInstances Block Instances}
  • + *
+ * + * @generated + */ +public abstract class BlockInstanceImpl extends MinimalEObjectImpl.Container implements BlockInstance { + /** + * The cached value of the '{@link #getBlockInstances() Block Instances}' containment reference list. + * + * + * @see #getBlockInstances() + * @generated + * @ordered + */ + protected EList blockInstances; + + /** + * + * + * @generated + */ + protected BlockInstanceImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.BLOCK_INSTANCE; + } + + /** + * + * + * @generated + */ + public EList getBlockInstances() { + if (blockInstances == null) { + blockInstances = new EObjectContainmentEList(BlockInstance.class, this, FiacreinstancePackage.BLOCK_INSTANCE__BLOCK_INSTANCES); + } + return blockInstances; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FiacreinstancePackage.BLOCK_INSTANCE__BLOCK_INSTANCES: + return ((InternalEList)getBlockInstances()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FiacreinstancePackage.BLOCK_INSTANCE__BLOCK_INSTANCES: + return getBlockInstances(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FiacreinstancePackage.BLOCK_INSTANCE__BLOCK_INSTANCES: + getBlockInstances().clear(); + getBlockInstances().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FiacreinstancePackage.BLOCK_INSTANCE__BLOCK_INSTANCES: + getBlockInstances().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FiacreinstancePackage.BLOCK_INSTANCE__BLOCK_INSTANCES: + return blockInstances != null && !blockInstances.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //BlockInstanceImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ComponentDeclarationInstanceImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ComponentDeclarationInstanceImpl.java new file mode 100644 index 0000000..1e746c4 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ComponentDeclarationInstanceImpl.java @@ -0,0 +1,167 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import fr.irit.fiacre.xtext.fiacre.ComponentDeclaration; + +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 com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * + * An implementation of the model object 'Component Declaration Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ComponentDeclarationInstanceImpl#getComponent Component}
  • + *
+ * + * @generated + */ +public class ComponentDeclarationInstanceImpl extends DeclarationInstanceImpl implements ComponentDeclarationInstance { + /** + * The cached value of the '{@link #getComponent() Component}' reference. + * + * + * @see #getComponent() + * @generated + * @ordered + */ + protected ComponentDeclaration component; + + /** + * + * + * @generated + */ + protected ComponentDeclarationInstanceImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.COMPONENT_DECLARATION_INSTANCE; + } + + /** + * + * + * @generated + */ + public ComponentDeclaration getComponent() { + if (component != null && component.eIsProxy()) { + InternalEObject oldComponent = (InternalEObject)component; + component = (ComponentDeclaration)eResolveProxy(oldComponent); + if (component != oldComponent) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacreinstancePackage.COMPONENT_DECLARATION_INSTANCE__COMPONENT, oldComponent, component)); + } + } + return component; + } + + /** + * + * + * @generated + */ + public ComponentDeclaration basicGetComponent() { + return component; + } + + /** + * + * + * @generated + */ + public void setComponent(ComponentDeclaration newComponent) { + ComponentDeclaration oldComponent = component; + component = newComponent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.COMPONENT_DECLARATION_INSTANCE__COMPONENT, oldComponent, component)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FiacreinstancePackage.COMPONENT_DECLARATION_INSTANCE__COMPONENT: + if (resolve) return getComponent(); + return basicGetComponent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FiacreinstancePackage.COMPONENT_DECLARATION_INSTANCE__COMPONENT: + setComponent((ComponentDeclaration)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FiacreinstancePackage.COMPONENT_DECLARATION_INSTANCE__COMPONENT: + setComponent((ComponentDeclaration)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FiacreinstancePackage.COMPONENT_DECLARATION_INSTANCE__COMPONENT: + return component != null; + } + return super.eIsSet(featureID); + } + +} //ComponentDeclarationInstanceImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/CompositionInstanceImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/CompositionInstanceImpl.java new file mode 100644 index 0000000..3e7e527 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/CompositionInstanceImpl.java @@ -0,0 +1,167 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import fr.irit.fiacre.xtext.fiacre.Composition; + +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 com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * + * An implementation of the model object 'Composition Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.CompositionInstanceImpl#getComposition Composition}
  • + *
+ * + * @generated + */ +public class CompositionInstanceImpl extends BlockInstanceImpl implements CompositionInstance { + /** + * The cached value of the '{@link #getComposition() Composition}' reference. + * + * + * @see #getComposition() + * @generated + * @ordered + */ + protected Composition composition; + + /** + * + * + * @generated + */ + protected CompositionInstanceImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.COMPOSITION_INSTANCE; + } + + /** + * + * + * @generated + */ + public Composition getComposition() { + if (composition != null && composition.eIsProxy()) { + InternalEObject oldComposition = (InternalEObject)composition; + composition = (Composition)eResolveProxy(oldComposition); + if (composition != oldComposition) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacreinstancePackage.COMPOSITION_INSTANCE__COMPOSITION, oldComposition, composition)); + } + } + return composition; + } + + /** + * + * + * @generated + */ + public Composition basicGetComposition() { + return composition; + } + + /** + * + * + * @generated + */ + public void setComposition(Composition newComposition) { + Composition oldComposition = composition; + composition = newComposition; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.COMPOSITION_INSTANCE__COMPOSITION, oldComposition, composition)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FiacreinstancePackage.COMPOSITION_INSTANCE__COMPOSITION: + if (resolve) return getComposition(); + return basicGetComposition(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FiacreinstancePackage.COMPOSITION_INSTANCE__COMPOSITION: + setComposition((Composition)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FiacreinstancePackage.COMPOSITION_INSTANCE__COMPOSITION: + setComposition((Composition)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FiacreinstancePackage.COMPOSITION_INSTANCE__COMPOSITION: + return composition != null; + } + return super.eIsSet(featureID); + } + +} //CompositionInstanceImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/DeclarationInstanceImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/DeclarationInstanceImpl.java new file mode 100644 index 0000000..99efc26 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/DeclarationInstanceImpl.java @@ -0,0 +1,347 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import fr.irit.fiacre.xtext.fiacre.ComponentInstance; + +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 com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance; + +/** + * + * An implementation of the model object 'Declaration Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.DeclarationInstanceImpl#getVariableDeclarationInstances Variable Declaration Instances}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.DeclarationInstanceImpl#getName Name}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.DeclarationInstanceImpl#getInstance Instance}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.DeclarationInstanceImpl#getFlatname Flatname}
  • + *
+ * + * @generated + */ +public abstract class DeclarationInstanceImpl extends BlockInstanceImpl implements DeclarationInstance { + /** + * The cached value of the '{@link #getVariableDeclarationInstances() Variable Declaration Instances}' containment reference list. + * + * + * @see #getVariableDeclarationInstances() + * @generated + * @ordered + */ + protected EList variableDeclarationInstances; + + /** + * 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; + + /** + * The cached value of the '{@link #getInstance() Instance}' reference. + * + * + * @see #getInstance() + * @generated + * @ordered + */ + protected ComponentInstance instance; + + /** + * The default value of the '{@link #getFlatname() Flatname}' attribute. + * + * + * @see #getFlatname() + * @generated + * @ordered + */ + protected static final String FLATNAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getFlatname() Flatname}' attribute. + * + * + * @see #getFlatname() + * @generated + * @ordered + */ + protected String flatname = FLATNAME_EDEFAULT; + + /** + * + * + * @generated + */ + protected DeclarationInstanceImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.DECLARATION_INSTANCE; + } + + /** + * + * + * @generated + */ + public EList getVariableDeclarationInstances() { + if (variableDeclarationInstances == null) { + variableDeclarationInstances = new EObjectContainmentEList(VariableDeclarationInstance.class, this, FiacreinstancePackage.DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES); + } + return variableDeclarationInstances; + } + + /** + * + * + * @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, FiacreinstancePackage.DECLARATION_INSTANCE__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public ComponentInstance getInstance() { + if (instance != null && instance.eIsProxy()) { + InternalEObject oldInstance = (InternalEObject)instance; + instance = (ComponentInstance)eResolveProxy(oldInstance); + if (instance != oldInstance) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacreinstancePackage.DECLARATION_INSTANCE__INSTANCE, oldInstance, instance)); + } + } + return instance; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetInstance() { + return instance; + } + + /** + * + * + * @generated + */ + public void setInstance(ComponentInstance newInstance) { + ComponentInstance oldInstance = instance; + instance = newInstance; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.DECLARATION_INSTANCE__INSTANCE, oldInstance, instance)); + } + + /** + * + * + * @generated + */ + public String getFlatname() { + return flatname; + } + + /** + * + * + * @generated + */ + public void setFlatname(String newFlatname) { + String oldFlatname = flatname; + flatname = newFlatname; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.DECLARATION_INSTANCE__FLATNAME, oldFlatname, flatname)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FiacreinstancePackage.DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES: + return ((InternalEList)getVariableDeclarationInstances()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FiacreinstancePackage.DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES: + return getVariableDeclarationInstances(); + case FiacreinstancePackage.DECLARATION_INSTANCE__NAME: + return getName(); + case FiacreinstancePackage.DECLARATION_INSTANCE__INSTANCE: + if (resolve) return getInstance(); + return basicGetInstance(); + case FiacreinstancePackage.DECLARATION_INSTANCE__FLATNAME: + return getFlatname(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FiacreinstancePackage.DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES: + getVariableDeclarationInstances().clear(); + getVariableDeclarationInstances().addAll((Collection)newValue); + return; + case FiacreinstancePackage.DECLARATION_INSTANCE__NAME: + setName((String)newValue); + return; + case FiacreinstancePackage.DECLARATION_INSTANCE__INSTANCE: + setInstance((ComponentInstance)newValue); + return; + case FiacreinstancePackage.DECLARATION_INSTANCE__FLATNAME: + setFlatname((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FiacreinstancePackage.DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES: + getVariableDeclarationInstances().clear(); + return; + case FiacreinstancePackage.DECLARATION_INSTANCE__NAME: + setName(NAME_EDEFAULT); + return; + case FiacreinstancePackage.DECLARATION_INSTANCE__INSTANCE: + setInstance((ComponentInstance)null); + return; + case FiacreinstancePackage.DECLARATION_INSTANCE__FLATNAME: + setFlatname(FLATNAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FiacreinstancePackage.DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES: + return variableDeclarationInstances != null && !variableDeclarationInstances.isEmpty(); + case FiacreinstancePackage.DECLARATION_INSTANCE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case FiacreinstancePackage.DECLARATION_INSTANCE__INSTANCE: + return instance != null; + case FiacreinstancePackage.DECLARATION_INSTANCE__FLATNAME: + return FLATNAME_EDEFAULT == null ? flatname != null : !FLATNAME_EDEFAULT.equals(flatname); + } + 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(", flatname: "); + result.append(flatname); + result.append(')'); + return result.toString(); + } + +} //DeclarationInstanceImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/EnabledStatementBlockImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/EnabledStatementBlockImpl.java new file mode 100644 index 0000000..c2803b2 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/EnabledStatementBlockImpl.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import org.eclipse.emf.ecore.EClass; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * + * An implementation of the model object 'Enabled Statement Block'. + * + * + * @generated + */ +public class EnabledStatementBlockImpl extends ExecutableStatementBlockImpl implements EnabledStatementBlock { + /** + * + * + * @generated + */ + protected EnabledStatementBlockImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.ENABLED_STATEMENT_BLOCK; + } + +} //EnabledStatementBlockImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ExecutableStatementBlockImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ExecutableStatementBlockImpl.java new file mode 100644 index 0000000..a486467 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ExecutableStatementBlockImpl.java @@ -0,0 +1,172 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * + * An implementation of the model object 'Executable Statement Block'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ExecutableStatementBlockImpl#getDate Date}
  • + *
+ * + * @generated + */ +public class ExecutableStatementBlockImpl extends StatementBlockImpl implements ExecutableStatementBlock { + /** + * The default value of the '{@link #getDate() Date}' attribute. + * + * + * @see #getDate() + * @generated + * @ordered + */ + protected static final String DATE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getDate() Date}' attribute. + * + * + * @see #getDate() + * @generated + * @ordered + */ + protected String date = DATE_EDEFAULT; + + /** + * + * + * @generated + */ + protected ExecutableStatementBlockImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.EXECUTABLE_STATEMENT_BLOCK; + } + + /** + * + * + * @generated + */ + public String getDate() { + return date; + } + + /** + * + * + * @generated + */ + public void setDate(String newDate) { + String oldDate = date; + date = newDate; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.EXECUTABLE_STATEMENT_BLOCK__DATE, oldDate, date)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FiacreinstancePackage.EXECUTABLE_STATEMENT_BLOCK__DATE: + return getDate(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FiacreinstancePackage.EXECUTABLE_STATEMENT_BLOCK__DATE: + setDate((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FiacreinstancePackage.EXECUTABLE_STATEMENT_BLOCK__DATE: + setDate(DATE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FiacreinstancePackage.EXECUTABLE_STATEMENT_BLOCK__DATE: + return DATE_EDEFAULT == null ? date != null : !DATE_EDEFAULT.equals(date); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (date: "); + result.append(date); + result.append(')'); + return result.toString(); + } + +} //ExecutableStatementBlockImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ExecutedStatementBlockImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ExecutedStatementBlockImpl.java new file mode 100644 index 0000000..e86d715 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ExecutedStatementBlockImpl.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import org.eclipse.emf.ecore.EClass; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; + +/** + * + * An implementation of the model object 'Executed Statement Block'. + * + * + * @generated + */ +public class ExecutedStatementBlockImpl extends StatementBlockImpl implements ExecutedStatementBlock { + /** + * + * + * @generated + */ + protected ExecutedStatementBlockImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.EXECUTED_STATEMENT_BLOCK; + } + +} //ExecutedStatementBlockImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FiacreinstanceFactoryImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FiacreinstanceFactoryImpl.java new file mode 100644 index 0000000..fa41901 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FiacreinstanceFactoryImpl.java @@ -0,0 +1,226 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.*; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class FiacreinstanceFactoryImpl extends EFactoryImpl implements FiacreinstanceFactory { + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static FiacreinstanceFactory init() { + try { + FiacreinstanceFactory theFiacreinstanceFactory = (FiacreinstanceFactory)EPackage.Registry.INSTANCE.getEFactory(FiacreinstancePackage.eNS_URI); + if (theFiacreinstanceFactory != null) { + return theFiacreinstanceFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new FiacreinstanceFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public FiacreinstanceFactoryImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case FiacreinstancePackage.INSTANCE_MODEL: return createInstanceModel(); + case FiacreinstancePackage.EXECUTED_STATEMENT_BLOCK: return createExecutedStatementBlock(); + case FiacreinstancePackage.EXECUTABLE_STATEMENT_BLOCK: return createExecutableStatementBlock(); + case FiacreinstancePackage.FIREABLE_STATEMENT_BLOCK: return createFireableStatementBlock(); + case FiacreinstancePackage.ENABLED_STATEMENT_BLOCK: return createEnabledStatementBlock(); + case FiacreinstancePackage.COMPOSITION_INSTANCE: return createCompositionInstance(); + case FiacreinstancePackage.COMPONENT_DECLARATION_INSTANCE: return createComponentDeclarationInstance(); + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE: return createProcessDeclarationInstance(); + case FiacreinstancePackage.INSTANCE_EXECUTED_STATEMENT_BLOCK: return createInstanceExecutedStatementBlock(); + case FiacreinstancePackage.INSTANCE_FIREABLE_STATEMENT_BLOCK: return createInstanceFireableStatementBlock(); + case FiacreinstancePackage.INSTANCE_ENABLED_STATEMENT_BLOCK: return createInstanceEnabledStatementBlock(); + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE: return createVariableDeclarationInstance(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + public InstanceModel createInstanceModel() { + InstanceModelImpl instanceModel = new InstanceModelImpl(); + return instanceModel; + } + + /** + * + * + * @generated + */ + public ExecutedStatementBlock createExecutedStatementBlock() { + ExecutedStatementBlockImpl executedStatementBlock = new ExecutedStatementBlockImpl(); + return executedStatementBlock; + } + + /** + * + * + * @generated + */ + public ExecutableStatementBlock createExecutableStatementBlock() { + ExecutableStatementBlockImpl executableStatementBlock = new ExecutableStatementBlockImpl(); + return executableStatementBlock; + } + + /** + * + * + * @generated + */ + public FireableStatementBlock createFireableStatementBlock() { + FireableStatementBlockImpl fireableStatementBlock = new FireableStatementBlockImpl(); + return fireableStatementBlock; + } + + /** + * + * + * @generated + */ + public EnabledStatementBlock createEnabledStatementBlock() { + EnabledStatementBlockImpl enabledStatementBlock = new EnabledStatementBlockImpl(); + return enabledStatementBlock; + } + + /** + * + * + * @generated + */ + public CompositionInstance createCompositionInstance() { + CompositionInstanceImpl compositionInstance = new CompositionInstanceImpl(); + return compositionInstance; + } + + /** + * + * + * @generated + */ + public ComponentDeclarationInstance createComponentDeclarationInstance() { + ComponentDeclarationInstanceImpl componentDeclarationInstance = new ComponentDeclarationInstanceImpl(); + return componentDeclarationInstance; + } + + /** + * + * + * @generated + */ + public ProcessDeclarationInstance createProcessDeclarationInstance() { + ProcessDeclarationInstanceImpl processDeclarationInstance = new ProcessDeclarationInstanceImpl(); + return processDeclarationInstance; + } + + /** + * + * + * @generated + */ + public InstanceExecutedStatementBlock createInstanceExecutedStatementBlock() { + InstanceExecutedStatementBlockImpl instanceExecutedStatementBlock = new InstanceExecutedStatementBlockImpl(); + return instanceExecutedStatementBlock; + } + + /** + * + * + * @generated + */ + public InstanceFireableStatementBlock createInstanceFireableStatementBlock() { + InstanceFireableStatementBlockImpl instanceFireableStatementBlock = new InstanceFireableStatementBlockImpl(); + return instanceFireableStatementBlock; + } + + /** + * + * + * @generated + */ + public InstanceEnabledStatementBlock createInstanceEnabledStatementBlock() { + InstanceEnabledStatementBlockImpl instanceEnabledStatementBlock = new InstanceEnabledStatementBlockImpl(); + return instanceEnabledStatementBlock; + } + + /** + * + * + * @generated + */ + public VariableDeclarationInstance createVariableDeclarationInstance() { + VariableDeclarationInstanceImpl variableDeclarationInstance = new VariableDeclarationInstanceImpl(); + return variableDeclarationInstance; + } + + /** + * + * + * @generated + */ + public FiacreinstancePackage getFiacreinstancePackage() { + return (FiacreinstancePackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static FiacreinstancePackage getPackage() { + return FiacreinstancePackage.eINSTANCE; + } + +} //FiacreinstanceFactoryImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FiacreinstancePackageImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FiacreinstancePackageImpl.java new file mode 100644 index 0000000..7abdb16 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FiacreinstancePackageImpl.java @@ -0,0 +1,775 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstanceFactory; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutableStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class FiacreinstancePackageImpl extends EPackageImpl implements FiacreinstancePackage { + /** + * + * + * @generated + */ + private EClass instanceModelEClass = null; + + /** + * + * + * @generated + */ + private EClass statementBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass executedStatementBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass executableStatementBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass fireableStatementBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass enabledStatementBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass blockInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass compositionInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass declarationInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass componentDeclarationInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass processDeclarationInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass instanceStatementBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass instanceExecutedStatementBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass instanceExecutableStatementBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass instanceFireableStatementBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass instanceEnabledStatementBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass variableDeclarationInstanceEClass = 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage#eNS_URI + * @see #init() + * @generated + */ + private FiacreinstancePackageImpl() { + super(eNS_URI, FiacreinstanceFactory.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 FiacreinstancePackage#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 FiacreinstancePackage init() { + if (isInited) return (FiacreinstancePackage)EPackage.Registry.INSTANCE.getEPackage(FiacreinstancePackage.eNS_URI); + + // Obtain or create and register package + FiacreinstancePackageImpl theFiacreinstancePackage = (FiacreinstancePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FiacreinstancePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FiacreinstancePackageImpl()); + + isInited = true; + + // Initialize simple dependencies + FiacrePackage.eINSTANCE.eClass(); + + // Create package meta-data objects + theFiacreinstancePackage.createPackageContents(); + + // Initialize created meta-data + theFiacreinstancePackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theFiacreinstancePackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(FiacreinstancePackage.eNS_URI, theFiacreinstancePackage); + return theFiacreinstancePackage; + } + + /** + * + * + * @generated + */ + public EClass getInstanceModel() { + return instanceModelEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getInstanceModel_Name() { + return (EAttribute)instanceModelEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getInstanceModel_Model() { + return (EReference)instanceModelEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getInstanceModel_Instance() { + return (EReference)instanceModelEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getInstanceModel_StatementBlocks() { + return (EReference)instanceModelEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getStatementBlock() { + return statementBlockEClass; + } + + /** + * + * + * @generated + */ + public EReference getStatementBlock_InstanceStatementBlocks() { + return (EReference)statementBlockEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getStatementBlock_Name() { + return (EAttribute)statementBlockEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getExecutedStatementBlock() { + return executedStatementBlockEClass; + } + + /** + * + * + * @generated + */ + public EClass getExecutableStatementBlock() { + return executableStatementBlockEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getExecutableStatementBlock_Date() { + return (EAttribute)executableStatementBlockEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getFireableStatementBlock() { + return fireableStatementBlockEClass; + } + + /** + * + * + * @generated + */ + public EClass getEnabledStatementBlock() { + return enabledStatementBlockEClass; + } + + /** + * + * + * @generated + */ + public EClass getBlockInstance() { + return blockInstanceEClass; + } + + /** + * + * + * @generated + */ + public EReference getBlockInstance_BlockInstances() { + return (EReference)blockInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getCompositionInstance() { + return compositionInstanceEClass; + } + + /** + * + * + * @generated + */ + public EReference getCompositionInstance_Composition() { + return (EReference)compositionInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getDeclarationInstance() { + return declarationInstanceEClass; + } + + /** + * + * + * @generated + */ + public EReference getDeclarationInstance_VariableDeclarationInstances() { + return (EReference)declarationInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getDeclarationInstance_Name() { + return (EAttribute)declarationInstanceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getDeclarationInstance_Instance() { + return (EReference)declarationInstanceEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getDeclarationInstance_Flatname() { + return (EAttribute)declarationInstanceEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getComponentDeclarationInstance() { + return componentDeclarationInstanceEClass; + } + + /** + * + * + * @generated + */ + public EReference getComponentDeclarationInstance_Component() { + return (EReference)componentDeclarationInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getProcessDeclarationInstance() { + return processDeclarationInstanceEClass; + } + + /** + * + * + * @generated + */ + public EReference getProcessDeclarationInstance_CurrentState() { + return (EReference)processDeclarationInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getProcessDeclarationInstance_Process() { + return (EReference)processDeclarationInstanceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getProcessDeclarationInstance_InstanceStatementBlocks() { + return (EReference)processDeclarationInstanceEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getInstanceStatementBlock() { + return instanceStatementBlockEClass; + } + + /** + * + * + * @generated + */ + public EReference getInstanceStatementBlock_TransitionSource() { + return (EReference)instanceStatementBlockEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getInstanceStatementBlock_Statements() { + return (EReference)instanceStatementBlockEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getInstanceStatementBlock_Name() { + return (EAttribute)instanceStatementBlockEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getInstanceExecutedStatementBlock() { + return instanceExecutedStatementBlockEClass; + } + + /** + * + * + * @generated + */ + public EClass getInstanceExecutableStatementBlock() { + return instanceExecutableStatementBlockEClass; + } + + /** + * + * + * @generated + */ + public EClass getInstanceFireableStatementBlock() { + return instanceFireableStatementBlockEClass; + } + + /** + * + * + * @generated + */ + public EClass getInstanceEnabledStatementBlock() { + return instanceEnabledStatementBlockEClass; + } + + /** + * + * + * @generated + */ + public EClass getVariableDeclarationInstance() { + return variableDeclarationInstanceEClass; + } + + /** + * + * + * @generated + */ + public EReference getVariableDeclarationInstance_VariableDeclaration() { + return (EReference)variableDeclarationInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVariableDeclarationInstance_CurrentValue() { + return (EReference)variableDeclarationInstanceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public FiacreinstanceFactory getFiacreinstanceFactory() { + return (FiacreinstanceFactory)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 + instanceModelEClass = createEClass(INSTANCE_MODEL); + createEAttribute(instanceModelEClass, INSTANCE_MODEL__NAME); + createEReference(instanceModelEClass, INSTANCE_MODEL__MODEL); + createEReference(instanceModelEClass, INSTANCE_MODEL__INSTANCE); + createEReference(instanceModelEClass, INSTANCE_MODEL__STATEMENT_BLOCKS); + + statementBlockEClass = createEClass(STATEMENT_BLOCK); + createEReference(statementBlockEClass, STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS); + createEAttribute(statementBlockEClass, STATEMENT_BLOCK__NAME); + + executedStatementBlockEClass = createEClass(EXECUTED_STATEMENT_BLOCK); + + executableStatementBlockEClass = createEClass(EXECUTABLE_STATEMENT_BLOCK); + createEAttribute(executableStatementBlockEClass, EXECUTABLE_STATEMENT_BLOCK__DATE); + + fireableStatementBlockEClass = createEClass(FIREABLE_STATEMENT_BLOCK); + + enabledStatementBlockEClass = createEClass(ENABLED_STATEMENT_BLOCK); + + blockInstanceEClass = createEClass(BLOCK_INSTANCE); + createEReference(blockInstanceEClass, BLOCK_INSTANCE__BLOCK_INSTANCES); + + compositionInstanceEClass = createEClass(COMPOSITION_INSTANCE); + createEReference(compositionInstanceEClass, COMPOSITION_INSTANCE__COMPOSITION); + + declarationInstanceEClass = createEClass(DECLARATION_INSTANCE); + createEReference(declarationInstanceEClass, DECLARATION_INSTANCE__VARIABLE_DECLARATION_INSTANCES); + createEAttribute(declarationInstanceEClass, DECLARATION_INSTANCE__NAME); + createEReference(declarationInstanceEClass, DECLARATION_INSTANCE__INSTANCE); + createEAttribute(declarationInstanceEClass, DECLARATION_INSTANCE__FLATNAME); + + componentDeclarationInstanceEClass = createEClass(COMPONENT_DECLARATION_INSTANCE); + createEReference(componentDeclarationInstanceEClass, COMPONENT_DECLARATION_INSTANCE__COMPONENT); + + processDeclarationInstanceEClass = createEClass(PROCESS_DECLARATION_INSTANCE); + createEReference(processDeclarationInstanceEClass, PROCESS_DECLARATION_INSTANCE__CURRENT_STATE); + createEReference(processDeclarationInstanceEClass, PROCESS_DECLARATION_INSTANCE__PROCESS); + createEReference(processDeclarationInstanceEClass, PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS); + + instanceStatementBlockEClass = createEClass(INSTANCE_STATEMENT_BLOCK); + createEReference(instanceStatementBlockEClass, INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE); + createEReference(instanceStatementBlockEClass, INSTANCE_STATEMENT_BLOCK__STATEMENTS); + createEAttribute(instanceStatementBlockEClass, INSTANCE_STATEMENT_BLOCK__NAME); + + instanceExecutedStatementBlockEClass = createEClass(INSTANCE_EXECUTED_STATEMENT_BLOCK); + + instanceExecutableStatementBlockEClass = createEClass(INSTANCE_EXECUTABLE_STATEMENT_BLOCK); + + instanceFireableStatementBlockEClass = createEClass(INSTANCE_FIREABLE_STATEMENT_BLOCK); + + instanceEnabledStatementBlockEClass = createEClass(INSTANCE_ENABLED_STATEMENT_BLOCK); + + variableDeclarationInstanceEClass = createEClass(VARIABLE_DECLARATION_INSTANCE); + createEReference(variableDeclarationInstanceEClass, VARIABLE_DECLARATION_INSTANCE__VARIABLE_DECLARATION); + createEReference(variableDeclarationInstanceEClass, VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE); + } + + /** + * + * + * @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 + FiacrePackage theFiacrePackage = (FiacrePackage)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + executedStatementBlockEClass.getESuperTypes().add(this.getStatementBlock()); + executableStatementBlockEClass.getESuperTypes().add(this.getStatementBlock()); + fireableStatementBlockEClass.getESuperTypes().add(this.getExecutableStatementBlock()); + enabledStatementBlockEClass.getESuperTypes().add(this.getExecutableStatementBlock()); + compositionInstanceEClass.getESuperTypes().add(this.getBlockInstance()); + declarationInstanceEClass.getESuperTypes().add(this.getBlockInstance()); + componentDeclarationInstanceEClass.getESuperTypes().add(this.getDeclarationInstance()); + processDeclarationInstanceEClass.getESuperTypes().add(this.getDeclarationInstance()); + instanceExecutedStatementBlockEClass.getESuperTypes().add(this.getInstanceStatementBlock()); + instanceExecutableStatementBlockEClass.getESuperTypes().add(this.getInstanceStatementBlock()); + instanceFireableStatementBlockEClass.getESuperTypes().add(this.getInstanceExecutableStatementBlock()); + instanceEnabledStatementBlockEClass.getESuperTypes().add(this.getInstanceExecutableStatementBlock()); + + // Initialize classes, features, and operations; add parameters + initEClass(instanceModelEClass, InstanceModel.class, "InstanceModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getInstanceModel_Name(), ecorePackage.getEString(), "name", null, 0, 1, InstanceModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getInstanceModel_Model(), theFiacrePackage.getModel(), null, "model", null, 1, 1, InstanceModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getInstanceModel_Instance(), this.getDeclarationInstance(), null, "instance", null, 1, -1, InstanceModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getInstanceModel_StatementBlocks(), this.getStatementBlock(), null, "statementBlocks", null, 0, -1, InstanceModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(statementBlockEClass, StatementBlock.class, "StatementBlock", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getStatementBlock_InstanceStatementBlocks(), this.getInstanceStatementBlock(), null, "instanceStatementBlocks", null, 1, -1, StatementBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getStatementBlock_Name(), ecorePackage.getEString(), "name", null, 0, 1, StatementBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(executedStatementBlockEClass, ExecutedStatementBlock.class, "ExecutedStatementBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(executableStatementBlockEClass, ExecutableStatementBlock.class, "ExecutableStatementBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExecutableStatementBlock_Date(), ecorePackage.getEString(), "date", null, 0, 1, ExecutableStatementBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(fireableStatementBlockEClass, FireableStatementBlock.class, "FireableStatementBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(enabledStatementBlockEClass, EnabledStatementBlock.class, "EnabledStatementBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(blockInstanceEClass, BlockInstance.class, "BlockInstance", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBlockInstance_BlockInstances(), this.getBlockInstance(), null, "blockInstances", null, 0, -1, BlockInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(compositionInstanceEClass, CompositionInstance.class, "CompositionInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCompositionInstance_Composition(), theFiacrePackage.getComposition(), null, "composition", null, 0, 1, CompositionInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(declarationInstanceEClass, DeclarationInstance.class, "DeclarationInstance", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDeclarationInstance_VariableDeclarationInstances(), this.getVariableDeclarationInstance(), null, "variableDeclarationInstances", null, 0, -1, DeclarationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getDeclarationInstance_Name(), ecorePackage.getEString(), "name", null, 1, 1, DeclarationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDeclarationInstance_Instance(), theFiacrePackage.getComponentInstance(), null, "instance", null, 0, 1, DeclarationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getDeclarationInstance_Flatname(), ecorePackage.getEString(), "flatname", null, 0, 1, DeclarationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(componentDeclarationInstanceEClass, ComponentDeclarationInstance.class, "ComponentDeclarationInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getComponentDeclarationInstance_Component(), theFiacrePackage.getComponentDeclaration(), null, "component", null, 1, 1, ComponentDeclarationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(processDeclarationInstanceEClass, ProcessDeclarationInstance.class, "ProcessDeclarationInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getProcessDeclarationInstance_CurrentState(), theFiacrePackage.getStateDeclaration(), null, "currentState", null, 0, 1, ProcessDeclarationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getProcessDeclarationInstance_Process(), theFiacrePackage.getProcessDeclaration(), null, "process", null, 1, 1, ProcessDeclarationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getProcessDeclarationInstance_InstanceStatementBlocks(), this.getInstanceStatementBlock(), null, "instanceStatementBlocks", null, 0, -1, ProcessDeclarationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(instanceStatementBlockEClass, InstanceStatementBlock.class, "InstanceStatementBlock", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getInstanceStatementBlock_TransitionSource(), theFiacrePackage.getTransitionSource(), null, "transitionSource", null, 1, 1, InstanceStatementBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getInstanceStatementBlock_Statements(), theFiacrePackage.getStatement(), null, "statements", null, 0, -1, InstanceStatementBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getInstanceStatementBlock_Name(), ecorePackage.getEString(), "name", null, 0, 1, InstanceStatementBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(instanceExecutedStatementBlockEClass, InstanceExecutedStatementBlock.class, "InstanceExecutedStatementBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(instanceExecutableStatementBlockEClass, InstanceExecutableStatementBlock.class, "InstanceExecutableStatementBlock", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(instanceFireableStatementBlockEClass, InstanceFireableStatementBlock.class, "InstanceFireableStatementBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(instanceEnabledStatementBlockEClass, InstanceEnabledStatementBlock.class, "InstanceEnabledStatementBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(variableDeclarationInstanceEClass, VariableDeclarationInstance.class, "VariableDeclarationInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVariableDeclarationInstance_VariableDeclaration(), theFiacrePackage.getVariableDeclaration(), null, "variableDeclaration", null, 1, 1, VariableDeclarationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVariableDeclarationInstance_CurrentValue(), theFiacrePackage.getValueExpression(), null, "currentValue", null, 0, 1, VariableDeclarationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Create resource + createResource(eNS_URI); + } + +} //FiacreinstancePackageImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FireableStatementBlockImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FireableStatementBlockImpl.java new file mode 100644 index 0000000..7bf3f2a --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/FireableStatementBlockImpl.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import org.eclipse.emf.ecore.EClass; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock; + +/** + * + * An implementation of the model object 'Fireable Statement Block'. + * + * + * @generated + */ +public class FireableStatementBlockImpl extends ExecutableStatementBlockImpl implements FireableStatementBlock { + /** + * + * + * @generated + */ + protected FireableStatementBlockImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.FIREABLE_STATEMENT_BLOCK; + } + +} //FireableStatementBlockImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceEnabledStatementBlockImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceEnabledStatementBlockImpl.java new file mode 100644 index 0000000..e3192f2 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceEnabledStatementBlockImpl.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import org.eclipse.emf.ecore.EClass; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock; + +/** + * + * An implementation of the model object 'Instance Enabled Statement Block'. + * + * + * @generated + */ +public class InstanceEnabledStatementBlockImpl extends InstanceExecutableStatementBlockImpl implements InstanceEnabledStatementBlock { + /** + * + * + * @generated + */ + protected InstanceEnabledStatementBlockImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.INSTANCE_ENABLED_STATEMENT_BLOCK; + } + +} //InstanceEnabledStatementBlockImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceExecutableStatementBlockImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceExecutableStatementBlockImpl.java new file mode 100644 index 0000000..988a117 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceExecutableStatementBlockImpl.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import org.eclipse.emf.ecore.EClass; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutableStatementBlock; + +/** + * + * An implementation of the model object 'Instance Executable Statement Block'. + * + * + * @generated + */ +public abstract class InstanceExecutableStatementBlockImpl extends InstanceStatementBlockImpl implements InstanceExecutableStatementBlock { + /** + * + * + * @generated + */ + protected InstanceExecutableStatementBlockImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.INSTANCE_EXECUTABLE_STATEMENT_BLOCK; + } + +} //InstanceExecutableStatementBlockImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceExecutedStatementBlockImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceExecutedStatementBlockImpl.java new file mode 100644 index 0000000..610b5b7 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceExecutedStatementBlockImpl.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import org.eclipse.emf.ecore.EClass; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock; + +/** + * + * An implementation of the model object 'Instance Executed Statement Block'. + * + * + * @generated + */ +public class InstanceExecutedStatementBlockImpl extends InstanceStatementBlockImpl implements InstanceExecutedStatementBlock { + /** + * + * + * @generated + */ + protected InstanceExecutedStatementBlockImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.INSTANCE_EXECUTED_STATEMENT_BLOCK; + } + +} //InstanceExecutedStatementBlockImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceFireableStatementBlockImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceFireableStatementBlockImpl.java new file mode 100644 index 0000000..87a6c25 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceFireableStatementBlockImpl.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import org.eclipse.emf.ecore.EClass; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock; + +/** + * + * An implementation of the model object 'Instance Fireable Statement Block'. + * + * + * @generated + */ +public class InstanceFireableStatementBlockImpl extends InstanceExecutableStatementBlockImpl implements InstanceFireableStatementBlock { + /** + * + * + * @generated + */ + protected InstanceFireableStatementBlockImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.INSTANCE_FIREABLE_STATEMENT_BLOCK; + } + +} //InstanceFireableStatementBlockImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceModelImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceModelImpl.java new file mode 100644 index 0000000..e602533 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceModelImpl.java @@ -0,0 +1,331 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import fr.irit.fiacre.xtext.fiacre.Model; + +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 com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock; + +/** + * + * An implementation of the model object 'Instance Model'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceModelImpl#getName Name}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceModelImpl#getModel Model}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceModelImpl#getInstance Instance}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceModelImpl#getStatementBlocks Statement Blocks}
  • + *
+ * + * @generated + */ +public class InstanceModelImpl extends MinimalEObjectImpl.Container implements InstanceModel { + /** + * 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; + + /** + * The cached value of the '{@link #getModel() Model}' reference. + * + * + * @see #getModel() + * @generated + * @ordered + */ + protected Model model; + + /** + * The cached value of the '{@link #getInstance() Instance}' containment reference list. + * + * + * @see #getInstance() + * @generated + * @ordered + */ + protected EList instance; + + /** + * The cached value of the '{@link #getStatementBlocks() Statement Blocks}' containment reference list. + * + * + * @see #getStatementBlocks() + * @generated + * @ordered + */ + protected EList statementBlocks; + + /** + * + * + * @generated + */ + protected InstanceModelImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.INSTANCE_MODEL; + } + + /** + * + * + * @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, FiacreinstancePackage.INSTANCE_MODEL__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public Model getModel() { + if (model != null && model.eIsProxy()) { + InternalEObject oldModel = (InternalEObject)model; + model = (Model)eResolveProxy(oldModel); + if (model != oldModel) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacreinstancePackage.INSTANCE_MODEL__MODEL, oldModel, model)); + } + } + return model; + } + + /** + * + * + * @generated + */ + public Model basicGetModel() { + return model; + } + + /** + * + * + * @generated + */ + public void setModel(Model newModel) { + Model oldModel = model; + model = newModel; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.INSTANCE_MODEL__MODEL, oldModel, model)); + } + + /** + * + * + * @generated + */ + public EList getInstance() { + if (instance == null) { + instance = new EObjectContainmentEList(DeclarationInstance.class, this, FiacreinstancePackage.INSTANCE_MODEL__INSTANCE); + } + return instance; + } + + /** + * + * + * @generated + */ + public EList getStatementBlocks() { + if (statementBlocks == null) { + statementBlocks = new EObjectContainmentEList(StatementBlock.class, this, FiacreinstancePackage.INSTANCE_MODEL__STATEMENT_BLOCKS); + } + return statementBlocks; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FiacreinstancePackage.INSTANCE_MODEL__INSTANCE: + return ((InternalEList)getInstance()).basicRemove(otherEnd, msgs); + case FiacreinstancePackage.INSTANCE_MODEL__STATEMENT_BLOCKS: + return ((InternalEList)getStatementBlocks()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FiacreinstancePackage.INSTANCE_MODEL__NAME: + return getName(); + case FiacreinstancePackage.INSTANCE_MODEL__MODEL: + if (resolve) return getModel(); + return basicGetModel(); + case FiacreinstancePackage.INSTANCE_MODEL__INSTANCE: + return getInstance(); + case FiacreinstancePackage.INSTANCE_MODEL__STATEMENT_BLOCKS: + return getStatementBlocks(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FiacreinstancePackage.INSTANCE_MODEL__NAME: + setName((String)newValue); + return; + case FiacreinstancePackage.INSTANCE_MODEL__MODEL: + setModel((Model)newValue); + return; + case FiacreinstancePackage.INSTANCE_MODEL__INSTANCE: + getInstance().clear(); + getInstance().addAll((Collection)newValue); + return; + case FiacreinstancePackage.INSTANCE_MODEL__STATEMENT_BLOCKS: + getStatementBlocks().clear(); + getStatementBlocks().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FiacreinstancePackage.INSTANCE_MODEL__NAME: + setName(NAME_EDEFAULT); + return; + case FiacreinstancePackage.INSTANCE_MODEL__MODEL: + setModel((Model)null); + return; + case FiacreinstancePackage.INSTANCE_MODEL__INSTANCE: + getInstance().clear(); + return; + case FiacreinstancePackage.INSTANCE_MODEL__STATEMENT_BLOCKS: + getStatementBlocks().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FiacreinstancePackage.INSTANCE_MODEL__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case FiacreinstancePackage.INSTANCE_MODEL__MODEL: + return model != null; + case FiacreinstancePackage.INSTANCE_MODEL__INSTANCE: + return instance != null && !instance.isEmpty(); + case FiacreinstancePackage.INSTANCE_MODEL__STATEMENT_BLOCKS: + return statementBlocks != null && !statementBlocks.isEmpty(); + } + 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(); + } + +} //InstanceModelImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceStatementBlockImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceStatementBlockImpl.java new file mode 100644 index 0000000..3134411 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/InstanceStatementBlockImpl.java @@ -0,0 +1,278 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.TransitionSource; + +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.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock; + +/** + * + * An implementation of the model object 'Instance Statement Block'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceStatementBlockImpl#getTransitionSource Transition Source}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceStatementBlockImpl#getStatements Statements}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.InstanceStatementBlockImpl#getName Name}
  • + *
+ * + * @generated + */ +public abstract class InstanceStatementBlockImpl extends MinimalEObjectImpl.Container implements InstanceStatementBlock { + /** + * The cached value of the '{@link #getTransitionSource() Transition Source}' reference. + * + * + * @see #getTransitionSource() + * @generated + * @ordered + */ + protected TransitionSource transitionSource; + + /** + * The cached value of the '{@link #getStatements() Statements}' reference list. + * + * + * @see #getStatements() + * @generated + * @ordered + */ + protected EList statements; + + /** + * 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 InstanceStatementBlockImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.INSTANCE_STATEMENT_BLOCK; + } + + /** + * + * + * @generated + */ + public TransitionSource getTransitionSource() { + if (transitionSource != null && transitionSource.eIsProxy()) { + InternalEObject oldTransitionSource = (InternalEObject)transitionSource; + transitionSource = (TransitionSource)eResolveProxy(oldTransitionSource); + if (transitionSource != oldTransitionSource) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE, oldTransitionSource, transitionSource)); + } + } + return transitionSource; + } + + /** + * + * + * @generated + */ + public TransitionSource basicGetTransitionSource() { + return transitionSource; + } + + /** + * + * + * @generated + */ + public void setTransitionSource(TransitionSource newTransitionSource) { + TransitionSource oldTransitionSource = transitionSource; + transitionSource = newTransitionSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE, oldTransitionSource, transitionSource)); + } + + /** + * + * + * @generated + */ + public EList getStatements() { + if (statements == null) { + statements = new EObjectResolvingEList(Statement.class, this, FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__STATEMENTS); + } + return statements; + } + + /** + * + * + * @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, FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE: + if (resolve) return getTransitionSource(); + return basicGetTransitionSource(); + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__STATEMENTS: + return getStatements(); + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE: + setTransitionSource((TransitionSource)newValue); + return; + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__STATEMENTS: + getStatements().clear(); + getStatements().addAll((Collection)newValue); + return; + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE: + setTransitionSource((TransitionSource)null); + return; + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__STATEMENTS: + getStatements().clear(); + return; + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__TRANSITION_SOURCE: + return transitionSource != null; + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__STATEMENTS: + return statements != null && !statements.isEmpty(); + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK__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(); + } + +} //InstanceStatementBlockImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ProcessDeclarationInstanceImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ProcessDeclarationInstanceImpl.java new file mode 100644 index 0000000..a802f38 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/ProcessDeclarationInstanceImpl.java @@ -0,0 +1,286 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import fr.irit.fiacre.xtext.fiacre.ProcessDeclaration; +import fr.irit.fiacre.xtext.fiacre.StateDeclaration; + +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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance; + +/** + * + * An implementation of the model object 'Process Declaration Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ProcessDeclarationInstanceImpl#getCurrentState Current State}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ProcessDeclarationInstanceImpl#getProcess Process}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.ProcessDeclarationInstanceImpl#getInstanceStatementBlocks Instance Statement Blocks}
  • + *
+ * + * @generated + */ +public class ProcessDeclarationInstanceImpl extends DeclarationInstanceImpl implements ProcessDeclarationInstance { + /** + * The cached value of the '{@link #getCurrentState() Current State}' reference. + * + * + * @see #getCurrentState() + * @generated + * @ordered + */ + protected StateDeclaration currentState; + + /** + * The cached value of the '{@link #getProcess() Process}' reference. + * + * + * @see #getProcess() + * @generated + * @ordered + */ + protected ProcessDeclaration process; + + /** + * The cached value of the '{@link #getInstanceStatementBlocks() Instance Statement Blocks}' containment reference list. + * + * + * @see #getInstanceStatementBlocks() + * @generated + * @ordered + */ + protected EList instanceStatementBlocks; + + /** + * + * + * @generated + */ + protected ProcessDeclarationInstanceImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.PROCESS_DECLARATION_INSTANCE; + } + + /** + * + * + * @generated + */ + public StateDeclaration getCurrentState() { + if (currentState != null && currentState.eIsProxy()) { + InternalEObject oldCurrentState = (InternalEObject)currentState; + currentState = (StateDeclaration)eResolveProxy(oldCurrentState); + if (currentState != oldCurrentState) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__CURRENT_STATE, oldCurrentState, currentState)); + } + } + return currentState; + } + + /** + * + * + * @generated + */ + public StateDeclaration basicGetCurrentState() { + return currentState; + } + + /** + * + * + * @generated + */ + public void setCurrentState(StateDeclaration newCurrentState) { + StateDeclaration oldCurrentState = currentState; + currentState = newCurrentState; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__CURRENT_STATE, oldCurrentState, currentState)); + } + + /** + * + * + * @generated + */ + public ProcessDeclaration getProcess() { + if (process != null && process.eIsProxy()) { + InternalEObject oldProcess = (InternalEObject)process; + process = (ProcessDeclaration)eResolveProxy(oldProcess); + if (process != oldProcess) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__PROCESS, oldProcess, process)); + } + } + return process; + } + + /** + * + * + * @generated + */ + public ProcessDeclaration basicGetProcess() { + return process; + } + + /** + * + * + * @generated + */ + public void setProcess(ProcessDeclaration newProcess) { + ProcessDeclaration oldProcess = process; + process = newProcess; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__PROCESS, oldProcess, process)); + } + + /** + * + * + * @generated + */ + public EList getInstanceStatementBlocks() { + if (instanceStatementBlocks == null) { + instanceStatementBlocks = new EObjectContainmentEList(InstanceStatementBlock.class, this, FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS); + } + return instanceStatementBlocks; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS: + return ((InternalEList)getInstanceStatementBlocks()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__CURRENT_STATE: + if (resolve) return getCurrentState(); + return basicGetCurrentState(); + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__PROCESS: + if (resolve) return getProcess(); + return basicGetProcess(); + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS: + return getInstanceStatementBlocks(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__CURRENT_STATE: + setCurrentState((StateDeclaration)newValue); + return; + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__PROCESS: + setProcess((ProcessDeclaration)newValue); + return; + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS: + getInstanceStatementBlocks().clear(); + getInstanceStatementBlocks().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__CURRENT_STATE: + setCurrentState((StateDeclaration)null); + return; + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__PROCESS: + setProcess((ProcessDeclaration)null); + return; + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS: + getInstanceStatementBlocks().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__CURRENT_STATE: + return currentState != null; + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__PROCESS: + return process != null; + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE__INSTANCE_STATEMENT_BLOCKS: + return instanceStatementBlocks != null && !instanceStatementBlocks.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ProcessDeclarationInstanceImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/StatementBlockImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/StatementBlockImpl.java new file mode 100644 index 0000000..2774cb4 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/StatementBlockImpl.java @@ -0,0 +1,215 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock; + +/** + * + * An implementation of the model object 'Statement Block'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.StatementBlockImpl#getInstanceStatementBlocks Instance Statement Blocks}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.StatementBlockImpl#getName Name}
  • + *
+ * + * @generated + */ +public abstract class StatementBlockImpl extends MinimalEObjectImpl.Container implements StatementBlock { + /** + * The cached value of the '{@link #getInstanceStatementBlocks() Instance Statement Blocks}' reference list. + * + * + * @see #getInstanceStatementBlocks() + * @generated + * @ordered + */ + protected EList instanceStatementBlocks; + + /** + * 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 StatementBlockImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.STATEMENT_BLOCK; + } + + /** + * + * + * @generated + */ + public EList getInstanceStatementBlocks() { + if (instanceStatementBlocks == null) { + instanceStatementBlocks = new EObjectResolvingEList(InstanceStatementBlock.class, this, FiacreinstancePackage.STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS); + } + return instanceStatementBlocks; + } + + /** + * + * + * @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, FiacreinstancePackage.STATEMENT_BLOCK__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FiacreinstancePackage.STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS: + return getInstanceStatementBlocks(); + case FiacreinstancePackage.STATEMENT_BLOCK__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FiacreinstancePackage.STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS: + getInstanceStatementBlocks().clear(); + getInstanceStatementBlocks().addAll((Collection)newValue); + return; + case FiacreinstancePackage.STATEMENT_BLOCK__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FiacreinstancePackage.STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS: + getInstanceStatementBlocks().clear(); + return; + case FiacreinstancePackage.STATEMENT_BLOCK__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FiacreinstancePackage.STATEMENT_BLOCK__INSTANCE_STATEMENT_BLOCKS: + return instanceStatementBlocks != null && !instanceStatementBlocks.isEmpty(); + case FiacreinstancePackage.STATEMENT_BLOCK__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(); + } + +} //StatementBlockImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/VariableDeclarationInstanceImpl.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/VariableDeclarationInstanceImpl.java new file mode 100644 index 0000000..0e03d61 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/impl/VariableDeclarationInstanceImpl.java @@ -0,0 +1,248 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.impl; + +import fr.irit.fiacre.xtext.fiacre.ValueExpression; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance; + +/** + * + * An implementation of the model object 'Variable Declaration Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.VariableDeclarationInstanceImpl#getVariableDeclaration Variable Declaration}
  • + *
  • {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.impl.VariableDeclarationInstanceImpl#getCurrentValue Current Value}
  • + *
+ * + * @generated + */ +public class VariableDeclarationInstanceImpl extends MinimalEObjectImpl.Container implements VariableDeclarationInstance { + /** + * The cached value of the '{@link #getVariableDeclaration() Variable Declaration}' reference. + * + * + * @see #getVariableDeclaration() + * @generated + * @ordered + */ + protected VariableDeclaration variableDeclaration; + + /** + * The cached value of the '{@link #getCurrentValue() Current Value}' containment reference. + * + * + * @see #getCurrentValue() + * @generated + * @ordered + */ + protected ValueExpression currentValue; + + /** + * + * + * @generated + */ + protected VariableDeclarationInstanceImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FiacreinstancePackage.Literals.VARIABLE_DECLARATION_INSTANCE; + } + + /** + * + * + * @generated + */ + public VariableDeclaration getVariableDeclaration() { + if (variableDeclaration != null && variableDeclaration.eIsProxy()) { + InternalEObject oldVariableDeclaration = (InternalEObject)variableDeclaration; + variableDeclaration = (VariableDeclaration)eResolveProxy(oldVariableDeclaration); + if (variableDeclaration != oldVariableDeclaration) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__VARIABLE_DECLARATION, oldVariableDeclaration, variableDeclaration)); + } + } + return variableDeclaration; + } + + /** + * + * + * @generated + */ + public VariableDeclaration basicGetVariableDeclaration() { + return variableDeclaration; + } + + /** + * + * + * @generated + */ + public void setVariableDeclaration(VariableDeclaration newVariableDeclaration) { + VariableDeclaration oldVariableDeclaration = variableDeclaration; + variableDeclaration = newVariableDeclaration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__VARIABLE_DECLARATION, oldVariableDeclaration, variableDeclaration)); + } + + /** + * + * + * @generated + */ + public ValueExpression getCurrentValue() { + return currentValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetCurrentValue(ValueExpression newCurrentValue, NotificationChain msgs) { + ValueExpression oldCurrentValue = currentValue; + currentValue = newCurrentValue; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, oldCurrentValue, newCurrentValue); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setCurrentValue(ValueExpression newCurrentValue) { + if (newCurrentValue != currentValue) { + NotificationChain msgs = null; + if (currentValue != null) + msgs = ((InternalEObject)currentValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, null, msgs); + if (newCurrentValue != null) + msgs = ((InternalEObject)newCurrentValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, null, msgs); + msgs = basicSetCurrentValue(newCurrentValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE, newCurrentValue, newCurrentValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE: + return basicSetCurrentValue(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__VARIABLE_DECLARATION: + if (resolve) return getVariableDeclaration(); + return basicGetVariableDeclaration(); + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE: + return getCurrentValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__VARIABLE_DECLARATION: + setVariableDeclaration((VariableDeclaration)newValue); + return; + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE: + setCurrentValue((ValueExpression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__VARIABLE_DECLARATION: + setVariableDeclaration((VariableDeclaration)null); + return; + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE: + setCurrentValue((ValueExpression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__VARIABLE_DECLARATION: + return variableDeclaration != null; + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE__CURRENT_VALUE: + return currentValue != null; + } + return super.eIsSet(featureID); + } + +} //VariableDeclarationInstanceImpl diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/util/FiacreinstanceAdapterFactory.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/util/FiacreinstanceAdapterFactory.java new file mode 100644 index 0000000..4ce12f1 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/util/FiacreinstanceAdapterFactory.java @@ -0,0 +1,418 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.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 com.irtsaintexupery.fiacre.instance.fiacreinstance.*; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage + * @generated + */ +public class FiacreinstanceAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * + * + * @generated + */ + protected static FiacreinstancePackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public FiacreinstanceAdapterFactory() { + if (modelPackage == null) { + modelPackage = FiacreinstancePackage.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 FiacreinstanceSwitch modelSwitch = + new FiacreinstanceSwitch() { + @Override + public Adapter caseInstanceModel(InstanceModel object) { + return createInstanceModelAdapter(); + } + @Override + public Adapter caseStatementBlock(StatementBlock object) { + return createStatementBlockAdapter(); + } + @Override + public Adapter caseExecutedStatementBlock(ExecutedStatementBlock object) { + return createExecutedStatementBlockAdapter(); + } + @Override + public Adapter caseExecutableStatementBlock(ExecutableStatementBlock object) { + return createExecutableStatementBlockAdapter(); + } + @Override + public Adapter caseFireableStatementBlock(FireableStatementBlock object) { + return createFireableStatementBlockAdapter(); + } + @Override + public Adapter caseEnabledStatementBlock(EnabledStatementBlock object) { + return createEnabledStatementBlockAdapter(); + } + @Override + public Adapter caseBlockInstance(BlockInstance object) { + return createBlockInstanceAdapter(); + } + @Override + public Adapter caseCompositionInstance(CompositionInstance object) { + return createCompositionInstanceAdapter(); + } + @Override + public Adapter caseDeclarationInstance(DeclarationInstance object) { + return createDeclarationInstanceAdapter(); + } + @Override + public Adapter caseComponentDeclarationInstance(ComponentDeclarationInstance object) { + return createComponentDeclarationInstanceAdapter(); + } + @Override + public Adapter caseProcessDeclarationInstance(ProcessDeclarationInstance object) { + return createProcessDeclarationInstanceAdapter(); + } + @Override + public Adapter caseInstanceStatementBlock(InstanceStatementBlock object) { + return createInstanceStatementBlockAdapter(); + } + @Override + public Adapter caseInstanceExecutedStatementBlock(InstanceExecutedStatementBlock object) { + return createInstanceExecutedStatementBlockAdapter(); + } + @Override + public Adapter caseInstanceExecutableStatementBlock(InstanceExecutableStatementBlock object) { + return createInstanceExecutableStatementBlockAdapter(); + } + @Override + public Adapter caseInstanceFireableStatementBlock(InstanceFireableStatementBlock object) { + return createInstanceFireableStatementBlockAdapter(); + } + @Override + public Adapter caseInstanceEnabledStatementBlock(InstanceEnabledStatementBlock object) { + return createInstanceEnabledStatementBlockAdapter(); + } + @Override + public Adapter caseVariableDeclarationInstance(VariableDeclarationInstance object) { + return createVariableDeclarationInstanceAdapter(); + } + @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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel Instance Model}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel + * @generated + */ + public Adapter createInstanceModelAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock Statement Block}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock + * @generated + */ + public Adapter createStatementBlockAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock Executed Statement Block}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock + * @generated + */ + public Adapter createExecutedStatementBlockAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock Executable Statement Block}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock + * @generated + */ + public Adapter createExecutableStatementBlockAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock Fireable Statement Block}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock + * @generated + */ + public Adapter createFireableStatementBlockAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock Enabled Statement Block}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock + * @generated + */ + public Adapter createEnabledStatementBlockAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance Block Instance}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance + * @generated + */ + public Adapter createBlockInstanceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance Composition Instance}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance + * @generated + */ + public Adapter createCompositionInstanceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance Declaration Instance}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance + * @generated + */ + public Adapter createDeclarationInstanceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance Component Declaration Instance}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance + * @generated + */ + public Adapter createComponentDeclarationInstanceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance Process Declaration Instance}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance + * @generated + */ + public Adapter createProcessDeclarationInstanceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock Instance Statement Block}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock + * @generated + */ + public Adapter createInstanceStatementBlockAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock Instance Executed Statement Block}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock + * @generated + */ + public Adapter createInstanceExecutedStatementBlockAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutableStatementBlock Instance Executable Statement Block}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutableStatementBlock + * @generated + */ + public Adapter createInstanceExecutableStatementBlockAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock Instance Fireable Statement Block}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock + * @generated + */ + public Adapter createInstanceFireableStatementBlockAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock Instance Enabled Statement Block}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock + * @generated + */ + public Adapter createInstanceEnabledStatementBlockAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance Variable Declaration Instance}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance + * @generated + */ + public Adapter createVariableDeclarationInstanceAdapter() { + 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; + } + +} //FiacreinstanceAdapterFactory diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/util/FiacreinstanceSwitch.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/util/FiacreinstanceSwitch.java new file mode 100644 index 0000000..84d72f7 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/util/FiacreinstanceSwitch.java @@ -0,0 +1,474 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.*; + +/** + * + * 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 com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage + * @generated + */ +public class FiacreinstanceSwitch extends Switch { + /** + * The cached model package + * + * + * @generated + */ + protected static FiacreinstancePackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public FiacreinstanceSwitch() { + if (modelPackage == null) { + modelPackage = FiacreinstancePackage.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 FiacreinstancePackage.INSTANCE_MODEL: { + InstanceModel instanceModel = (InstanceModel)theEObject; + T result = caseInstanceModel(instanceModel); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.STATEMENT_BLOCK: { + StatementBlock statementBlock = (StatementBlock)theEObject; + T result = caseStatementBlock(statementBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.EXECUTED_STATEMENT_BLOCK: { + ExecutedStatementBlock executedStatementBlock = (ExecutedStatementBlock)theEObject; + T result = caseExecutedStatementBlock(executedStatementBlock); + if (result == null) result = caseStatementBlock(executedStatementBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.EXECUTABLE_STATEMENT_BLOCK: { + ExecutableStatementBlock executableStatementBlock = (ExecutableStatementBlock)theEObject; + T result = caseExecutableStatementBlock(executableStatementBlock); + if (result == null) result = caseStatementBlock(executableStatementBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.FIREABLE_STATEMENT_BLOCK: { + FireableStatementBlock fireableStatementBlock = (FireableStatementBlock)theEObject; + T result = caseFireableStatementBlock(fireableStatementBlock); + if (result == null) result = caseExecutableStatementBlock(fireableStatementBlock); + if (result == null) result = caseStatementBlock(fireableStatementBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.ENABLED_STATEMENT_BLOCK: { + EnabledStatementBlock enabledStatementBlock = (EnabledStatementBlock)theEObject; + T result = caseEnabledStatementBlock(enabledStatementBlock); + if (result == null) result = caseExecutableStatementBlock(enabledStatementBlock); + if (result == null) result = caseStatementBlock(enabledStatementBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.BLOCK_INSTANCE: { + BlockInstance blockInstance = (BlockInstance)theEObject; + T result = caseBlockInstance(blockInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.COMPOSITION_INSTANCE: { + CompositionInstance compositionInstance = (CompositionInstance)theEObject; + T result = caseCompositionInstance(compositionInstance); + if (result == null) result = caseBlockInstance(compositionInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.DECLARATION_INSTANCE: { + DeclarationInstance declarationInstance = (DeclarationInstance)theEObject; + T result = caseDeclarationInstance(declarationInstance); + if (result == null) result = caseBlockInstance(declarationInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.COMPONENT_DECLARATION_INSTANCE: { + ComponentDeclarationInstance componentDeclarationInstance = (ComponentDeclarationInstance)theEObject; + T result = caseComponentDeclarationInstance(componentDeclarationInstance); + if (result == null) result = caseDeclarationInstance(componentDeclarationInstance); + if (result == null) result = caseBlockInstance(componentDeclarationInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.PROCESS_DECLARATION_INSTANCE: { + ProcessDeclarationInstance processDeclarationInstance = (ProcessDeclarationInstance)theEObject; + T result = caseProcessDeclarationInstance(processDeclarationInstance); + if (result == null) result = caseDeclarationInstance(processDeclarationInstance); + if (result == null) result = caseBlockInstance(processDeclarationInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.INSTANCE_STATEMENT_BLOCK: { + InstanceStatementBlock instanceStatementBlock = (InstanceStatementBlock)theEObject; + T result = caseInstanceStatementBlock(instanceStatementBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.INSTANCE_EXECUTED_STATEMENT_BLOCK: { + InstanceExecutedStatementBlock instanceExecutedStatementBlock = (InstanceExecutedStatementBlock)theEObject; + T result = caseInstanceExecutedStatementBlock(instanceExecutedStatementBlock); + if (result == null) result = caseInstanceStatementBlock(instanceExecutedStatementBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.INSTANCE_EXECUTABLE_STATEMENT_BLOCK: { + InstanceExecutableStatementBlock instanceExecutableStatementBlock = (InstanceExecutableStatementBlock)theEObject; + T result = caseInstanceExecutableStatementBlock(instanceExecutableStatementBlock); + if (result == null) result = caseInstanceStatementBlock(instanceExecutableStatementBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.INSTANCE_FIREABLE_STATEMENT_BLOCK: { + InstanceFireableStatementBlock instanceFireableStatementBlock = (InstanceFireableStatementBlock)theEObject; + T result = caseInstanceFireableStatementBlock(instanceFireableStatementBlock); + if (result == null) result = caseInstanceExecutableStatementBlock(instanceFireableStatementBlock); + if (result == null) result = caseInstanceStatementBlock(instanceFireableStatementBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.INSTANCE_ENABLED_STATEMENT_BLOCK: { + InstanceEnabledStatementBlock instanceEnabledStatementBlock = (InstanceEnabledStatementBlock)theEObject; + T result = caseInstanceEnabledStatementBlock(instanceEnabledStatementBlock); + if (result == null) result = caseInstanceExecutableStatementBlock(instanceEnabledStatementBlock); + if (result == null) result = caseInstanceStatementBlock(instanceEnabledStatementBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacreinstancePackage.VARIABLE_DECLARATION_INSTANCE: { + VariableDeclarationInstance variableDeclarationInstance = (VariableDeclarationInstance)theEObject; + T result = caseVariableDeclarationInstance(variableDeclarationInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'Instance Model'. + * + * 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 'Instance Model'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInstanceModel(InstanceModel object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Statement Block'. + * + * 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 'Statement Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStatementBlock(StatementBlock object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Executed Statement Block'. + * + * 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 'Executed Statement Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExecutedStatementBlock(ExecutedStatementBlock object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Executable Statement Block'. + * + * 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 'Executable Statement Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExecutableStatementBlock(ExecutableStatementBlock object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Fireable Statement Block'. + * + * 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 'Fireable Statement Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFireableStatementBlock(FireableStatementBlock object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Enabled Statement Block'. + * + * 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 'Enabled Statement Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEnabledStatementBlock(EnabledStatementBlock object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Block Instance'. + * + * 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 'Block Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBlockInstance(BlockInstance object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Composition Instance'. + * + * 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 'Composition Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCompositionInstance(CompositionInstance object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Declaration Instance'. + * + * 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 'Declaration Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDeclarationInstance(DeclarationInstance object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Component Declaration Instance'. + * + * 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 'Component Declaration Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComponentDeclarationInstance(ComponentDeclarationInstance object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Process Declaration Instance'. + * + * 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 'Process Declaration Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseProcessDeclarationInstance(ProcessDeclarationInstance object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Instance Statement Block'. + * + * 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 'Instance Statement Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInstanceStatementBlock(InstanceStatementBlock object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Instance Executed Statement Block'. + * + * 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 'Instance Executed Statement Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInstanceExecutedStatementBlock(InstanceExecutedStatementBlock object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Instance Executable Statement Block'. + * + * 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 'Instance Executable Statement Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInstanceExecutableStatementBlock(InstanceExecutableStatementBlock object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Instance Fireable Statement Block'. + * + * 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 'Instance Fireable Statement Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInstanceFireableStatementBlock(InstanceFireableStatementBlock object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Instance Enabled Statement Block'. + * + * 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 'Instance Enabled Statement Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInstanceEnabledStatementBlock(InstanceEnabledStatementBlock object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variable Declaration Instance'. + * + * 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 Declaration Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariableDeclarationInstance(VariableDeclarationInstance 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; + } + +} //FiacreinstanceSwitch diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/BlockInstanceValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/BlockInstanceValidator.java new file mode 100644 index 0000000..c2a2870 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/BlockInstanceValidator.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + +import org.eclipse.emf.common.util.EList; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance; + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface BlockInstanceValidator { + boolean validate(); + + boolean validateBlockInstances(EList value); +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ComponentDeclarationInstanceValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ComponentDeclarationInstanceValidator.java new file mode 100644 index 0000000..40a6e90 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ComponentDeclarationInstanceValidator.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + +import fr.irit.fiacre.xtext.fiacre.ComponentDeclaration; + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface ComponentDeclarationInstanceValidator { + boolean validate(); + + boolean validateComponent(ComponentDeclaration value); +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/CompositionInstanceValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/CompositionInstanceValidator.java new file mode 100644 index 0000000..3fa3b6f --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/CompositionInstanceValidator.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + +import fr.irit.fiacre.xtext.fiacre.Composition; + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface CompositionInstanceValidator { + boolean validate(); + + boolean validateComposition(Composition value); +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/DeclarationInstanceValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/DeclarationInstanceValidator.java new file mode 100644 index 0000000..fb6cbcc --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/DeclarationInstanceValidator.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + +import fr.irit.fiacre.xtext.fiacre.ComponentInstance; + +import org.eclipse.emf.common.util.EList; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance; + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface DeclarationInstanceValidator { + boolean validate(); + + boolean validateVariableDeclarationInstances(EList value); + boolean validateName(String value); + boolean validateInstance(ComponentInstance value); +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/EnabledStatementBlockValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/EnabledStatementBlockValidator.java new file mode 100644 index 0000000..d88c14d --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/EnabledStatementBlockValidator.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface EnabledStatementBlockValidator { + boolean validate(); + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ExecutableStatementBlockValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ExecutableStatementBlockValidator.java new file mode 100644 index 0000000..c019848 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ExecutableStatementBlockValidator.java @@ -0,0 +1,28 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface ExecutableStatementBlockValidator { + boolean validate(); + + boolean validateDate(String value); +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ExecutedStatementBlockValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ExecutedStatementBlockValidator.java new file mode 100644 index 0000000..34a948b --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ExecutedStatementBlockValidator.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface ExecutedStatementBlockValidator { + boolean validate(); + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/FireableStatementBlockValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/FireableStatementBlockValidator.java new file mode 100644 index 0000000..cfd0a36 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/FireableStatementBlockValidator.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface FireableStatementBlockValidator { + boolean validate(); + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceEnabledStatementBlockValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceEnabledStatementBlockValidator.java new file mode 100644 index 0000000..f3167d4 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceEnabledStatementBlockValidator.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface InstanceEnabledStatementBlockValidator { + boolean validate(); + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceExecutableStatementBlockValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceExecutableStatementBlockValidator.java new file mode 100644 index 0000000..1b16e35 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceExecutableStatementBlockValidator.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutableStatementBlock}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface InstanceExecutableStatementBlockValidator { + boolean validate(); + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceExecutedStatementBlockValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceExecutedStatementBlockValidator.java new file mode 100644 index 0000000..db56089 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceExecutedStatementBlockValidator.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface InstanceExecutedStatementBlockValidator { + boolean validate(); + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceFireableStatementBlockValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceFireableStatementBlockValidator.java new file mode 100644 index 0000000..8a624f1 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceFireableStatementBlockValidator.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface InstanceFireableStatementBlockValidator { + boolean validate(); + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceModelValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceModelValidator.java new file mode 100644 index 0000000..feb75d3 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceModelValidator.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + +import fr.irit.fiacre.xtext.fiacre.Model; + +import org.eclipse.emf.common.util.EList; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock; + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface InstanceModelValidator { + boolean validate(); + + boolean validateName(String value); + boolean validateModel(Model value); + boolean validateInstance(DeclarationInstance value); + boolean validateStatementBlocks(EList value); +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceStatementBlockValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceStatementBlockValidator.java new file mode 100644 index 0000000..49f8c3a --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/InstanceStatementBlockValidator.java @@ -0,0 +1,34 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.TransitionSource; + +import org.eclipse.emf.common.util.EList; + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface InstanceStatementBlockValidator { + boolean validate(); + + boolean validateTransitionSource(TransitionSource value); + boolean validateStatements(EList value); + boolean validateName(String value); +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ProcessDeclarationInstanceValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ProcessDeclarationInstanceValidator.java new file mode 100644 index 0000000..e0c8e81 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/ProcessDeclarationInstanceValidator.java @@ -0,0 +1,36 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + +import fr.irit.fiacre.xtext.fiacre.ProcessDeclaration; +import fr.irit.fiacre.xtext.fiacre.StateDeclaration; + +import org.eclipse.emf.common.util.EList; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock; + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface ProcessDeclarationInstanceValidator { + boolean validate(); + + boolean validateCurrentState(StateDeclaration value); + boolean validateProcess(ProcessDeclaration value); + boolean validateInstanceStatementBlocks(EList value); +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/StatementBlockValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/StatementBlockValidator.java new file mode 100644 index 0000000..c04f80f --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/StatementBlockValidator.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + +import org.eclipse.emf.common.util.EList; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock; + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface StatementBlockValidator { + boolean validate(); + + boolean validateInstanceStatementBlocks(EList value); + boolean validateName(String value); +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/VariableDeclarationInstanceValidator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/VariableDeclarationInstanceValidator.java new file mode 100644 index 0000000..0890134 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/src/com/irtsaintexupery/fiacre/instance/fiacreinstance/validation/VariableDeclarationInstanceValidator.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * + * $Id$ + */ +package com.irtsaintexupery.fiacre.instance.fiacreinstance.validation; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +/** + * A sample validator interface for {@link com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance}. + * This doesn't really do anything, and it's not a real EMF artifact. + * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended. + * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + */ +public interface VariableDeclarationInstanceValidator { + boolean validate(); + + boolean validateVariableDeclaration(VariableDeclaration value); + boolean validateCurrentValue(Expression value); +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.instance/text/description.txt b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/text/description.txt new file mode 100644 index 0000000..4391da9 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.instance/text/description.txt @@ -0,0 +1,63 @@ +Model FiacreInstance + +This model description is not a real EMF artifact. It was generated by the +org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's +code generator can be extended. +This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false. + +Package fiacreinstance + + Class InstanceModel + Attribute name : EString + Reference model : Model<<1..1>> + Reference instance : DeclarationInstance<<1..1>> + Reference statementBlocks : StatementBlock<<0..*>> + + Class StatementBlock + Reference instanceStatementBlocks : InstanceStatementBlock<<1..*>> + Attribute name : EString + + Class ExecutedStatementBlock -> StatementBlock + + Class ExecutableStatementBlock -> StatementBlock + Attribute date : EString + + Class FireableStatementBlock -> ExecutableStatementBlock + + Class EnabledStatementBlock -> ExecutableStatementBlock + + Class BlockInstance + Reference blockInstances : BlockInstance<<0..*>> + + Class CompositionInstance -> BlockInstance + Reference composition : Composition + + Class DeclarationInstance -> BlockInstance + Reference variableDeclarationInstances : VariableDeclarationInstance<<0..*>> + Attribute name : EString<<1..1>> + Reference instance : ComponentInstance + + Class ComponentDeclarationInstance -> DeclarationInstance + Reference component : ComponentDeclaration<<1..1>> + + Class ProcessDeclarationInstance -> DeclarationInstance + Reference currentState : StateDeclaration + Reference process : ProcessDeclaration<<1..1>> + Reference instanceStatementBlocks : InstanceStatementBlock<<0..*>> + + Class InstanceStatementBlock + Reference transitionSource : TransitionSource<<1..1>> + Reference statements : Statement<<0..*>> + Attribute name : EString + + Class InstanceExecutedStatementBlock -> InstanceStatementBlock + + Class InstanceExecutableStatementBlock -> InstanceStatementBlock + + Class InstanceFireableStatementBlock -> InstanceExecutableStatementBlock + + Class InstanceEnabledStatementBlock -> InstanceExecutableStatementBlock + + Class VariableDeclarationInstance + Reference variableDeclaration : VariableDeclaration<<1..1>> + Reference currentValue : Expression diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.classpath b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.classpath new file mode 100644 index 0000000..428337e --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.gitignore b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.project b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.project new file mode 100644 index 0000000..b6224fa --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.project @@ -0,0 +1,34 @@ + + + com.irtsaintexupery.fiacre.simulator.msc.generator + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.xtext.ui.shared.xtextNature + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..0c68a61 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/.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/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/META-INF/MANIFEST.MF b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/META-INF/MANIFEST.MF new file mode 100644 index 0000000..d7a1f27 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Generator +Bundle-SymbolicName: com.irtsaintexupery.fiacre.simulator.msc.generator;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: com.irtsaintexupery.fiacre.simulator.msc.generator.Activator +Bundle-Vendor: IRTSAINTEXUPERY +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.emf.ecore, + com.irtsaintexupey.fiacre.simulator.msc, + com.google.guava, + org.eclipse.xtext.xbase.lib, + org.eclipse.xtend.lib, + org.eclipse.xtend.lib.macro +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-ActivationPolicy: lazy + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/build.properties b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/build.properties new file mode 100644 index 0000000..2b0d95b --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = plugin.xml,\ + META-INF/,\ + . diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/plugin.xml b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/plugin.xml new file mode 100644 index 0000000..9cac8a1 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/plugin.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/Activator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/Activator.java new file mode 100644 index 0000000..1b4d538 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/Activator.java @@ -0,0 +1,63 @@ +package com.irtsaintexupery.fiacre.simulator.msc.generator; + +import org.eclipse.jface.resource.ImageDescriptor; +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 = "com.irtsaintexupery.fiacre.simulator.msc.generator"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + public static String MSCGEN_PATH = ""; + /** + * 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; + MSCGEN_PATH = getPreferenceStore().getString("mscgen"); + } + + /* + * (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; + } + + /** + * Returns an image descriptor for the image file at the given + * plug-in relative path + * + * @param path the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return imageDescriptorFromPlugin(PLUGIN_ID, path); + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/WorkbenchPreferencePage.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/WorkbenchPreferencePage.java new file mode 100644 index 0000000..8bf1b29 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/WorkbenchPreferencePage.java @@ -0,0 +1,24 @@ +package com.irtsaintexupery.fiacre.simulator.msc.generator; + +import org.eclipse.jface.preference.DirectoryFieldEditor; +import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.FileFieldEditor; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPreferencePage; + + +public class WorkbenchPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage{ + + @Override + protected void createFieldEditors() { + // TODO Auto-generated method stub + addField(new FileFieldEditor("mscgen", "MSC generator", getFieldEditorParent())); + } + + @Override + public void init(IWorkbench workbench) { + // TODO Auto-generated method stub + setPreferenceStore(Activator.getDefault().getPreferenceStore()); + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/GenerateMSC.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/GenerateMSC.java new file mode 100644 index 0000000..046dede --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/GenerateMSC.java @@ -0,0 +1,105 @@ +package com.irtsaintexupery.fiacre.simulator.msc.generator.popup.actions; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; + +import com.irtsaintexupery.fiacre.simulator.msc.generator.Activator; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MSC; + + +public class GenerateMSC implements IObjectActionDelegate { + + private Shell shell; + private ISelection selection; + /** + * Constructor for Action1. + */ + public GenerateMSC() { + super(); + } + + /** + * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + shell = targetPart.getSite().getShell(); + } + + /** + * @see IActionDelegate#run(IAction) + */ + public void run(IAction action) { + // Créer un objet resourceSetImpl qui contiendra une ressource EMF (notre modèle) + ResourceSet resSet = new ResourceSetImpl(); + + // Charger la ressource (notre modèle) + URI modelURI = URI.createURI(getFile().getLocationURI().toString()); + Resource resource = resSet.getResource(modelURI, true); + + // Récupérer le premier élément du modèle (élément racine) + MSC msc = (MSC) resource.getContents().get(0); + //System.out.println("process"+ msc); + MSCGenerator mscgen= new MSCGenerator(msc); + + try{ + PrintWriter writer = new PrintWriter(getFile().getLocation().toString()+".msc", "UTF-8"); + writer.println(mscgen.generate()); + writer.close(); + } catch (IOException e) { + // do something + } + GeneratePng(getFile()); + try { + getFile().getParent().refreshLocal(1, null); + } catch (CoreException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + // added getFile() method + private IFile getFile() { + return (IFile) ((IStructuredSelection) selection).getFirstElement(); + } + + /** + * @see IActionDelegate#selectionChanged(IAction, ISelection) + */ + public void selectionChanged(IAction action, ISelection selection) { + // Don't forget this line. + // It is the most important line. + this.selection = selection; + } + protected static void GeneratePng(IFile file) { + try { + ProcessBuilder pb_make = new ProcessBuilder(Activator.MSCGEN_PATH,"-T", "png", "-o", file.getLocation().toString()+".png", + file.getLocation().toString()+".msc"); + + + pb_make.directory(new File(file.getParent().getLocation().toString())); + Process p = pb_make.start(); + p.waitFor(); + //System.out.println("Generate MSC chronogram"); + } catch (IOException e) { + e.printStackTrace(); + + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + } +} + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/MSCGenerator.xtend b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/MSCGenerator.xtend new file mode 100644 index 0000000..7d8b76b --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/src/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/MSCGenerator.xtend @@ -0,0 +1,69 @@ +package com.irtsaintexupery.fiacre.simulator.msc.generator.popup.actions + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MSC +import com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep +import com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep +import com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep +import com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep + +class MSCGenerator { + var MSC msc + + new(MSC _msc) { + msc = _msc + } + + def String generate() { + var String generated + generated = "msc{" + "\n\n\t" + generated += "# The entities " + "\n" + "\t" + + for (site : msc.sites) { + if(msc.sites.last != site) { + generated += site.name + ", " + } else { + generated += site.name + ";\n\t" + } + } + generated += "# The relations " + "\n" + "\t" + generated += "|||;\n" + + for (step : msc.steps) { + for (micro : step.microSteps) { + if(step.microSteps.last != micro) { + generated += generate(micro) + ", " + } else { + generated += generate(micro) + ";\n\t" + } + } + generated += "|||;\n" + } + generated += "\n}" + generated + } + def generate(MicroStep micro) { + if(micro instanceof EnterStateStep) + generate(micro as EnterStateStep) + else if(micro instanceof SynchronisationStep) + generate(micro as SynchronisationStep) + else + generate(micro as SendStep) + } + + def String generate(EnterStateStep esst) { + esst.site.name+" box "+ esst.site.name +"[label=\"" +esst.stateName+"\"]" + } + + def String generate(SynchronisationStep sst) { + if(sst.sites.size ==1){ + sst.sites.get(0).name+" abox "+ sst.sites.get(0).name +"[label=\"sync\"]" + } + else{ + sst.sites.get(0).name +" :: "+sst.sites.get(1).name + } + } + + def String generate(SendStep sst) { + sst.senderSites.get(0).name+ " => "+ sst.receiverSites.get(0).name + } +} \ No newline at end of file diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/xtend-gen/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/.gitignore b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/xtend-gen/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/.gitignore new file mode 100644 index 0000000..56ed658 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator.msc.generator/xtend-gen/com/irtsaintexupery/fiacre/simulator/msc/generator/popup/actions/.gitignore @@ -0,0 +1,3 @@ +/.MSCGenerator.java._trace +/.MSCGenerator.xtendbin +/MSCGenerator.java diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.classpath b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.classpath new file mode 100644 index 0000000..a9c66c2 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.gitignore b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.project b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.project new file mode 100644 index 0000000..730f4ac --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/.project @@ -0,0 +1,34 @@ + + + com.irtsaintexupery.fiacre.simulator + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.xtext.ui.shared.xtextNature + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/META-INF/MANIFEST.MF b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/META-INF/MANIFEST.MF new file mode 100644 index 0000000..afca005 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/META-INF/MANIFEST.MF @@ -0,0 +1,47 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Simulator +Bundle-SymbolicName: com.irtsaintexupery.fiacre.simulator;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: com.irtsaintexupery.fiacre.simulator.Activator +Bundle-Vendor: IRT +Bundle-ActivationPolicy: lazy +Require-Bundle: com.irtsaintexupery.fiacre.instance, + org.eclipse.xtend.lib, + fr.irit.fiacre.xtext.ui, + org.eclipse.xtext.ui, + org.eclipse.jface, + org.eclipse.ui.workbench, + org.eclipse.swt, + org.eclipse.emf.edit, + org.eclipse.emf.ecore, + fr.irit.fiacre.xtext, + org.eclipse.core.resources, + fr.laas.libtts;bundle-version="1.0.0", + org.eclipse.emf.common, + org.eclipse.equinox.registry, + org.eclipse.core.jobs, + org.eclipse.jdt.core, + org.eclipse.ui.workbench.texteditor, + org.eclipse.xtext, + com.irtsaintexupey.fiacre.simulator.msc;bundle-version="1.0.0", + com.irtsaintexupey.fiacre.simulator.msc.edit;bundle-version="1.0.0", + com.irtsaintexupey.fiacre.simulator.msc.editor;bundle-version="1.0.0" +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-ClassPath: lib/libthrift-0.9.2-javadoc.jar, + lib/libthrift-0.9.2.jar, + ., + lib/httpclient-4.2.5.jar, + lib/httpcore-4.2.4.jar, + lib/json-simple-1.1.jar, + com.irtsaintexupery.fiacre.simulator.perspective, + com.irtsaintexupery.fiacre.simulator.perspective.model, + com.irtsaintexupery.fiacre.simulator.perspective.views +Export-Package: com.irtsaintexupery.fiacre.simulator.core, + com.irtsaintexupery.fiacre.simulator.marking, + com.irtsaintexupery.fiacre.simulator.perspective, + com.irtsaintexupery.fiacre.simulator.perspective.model, + com.irtsaintexupery.fiacre.simulator.perspective.views, + com.irtsaintexupery.fiacre.simulator.staticjson.extractor, + org.apache.thrift + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/build.properties b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/build.properties new file mode 100644 index 0000000..07d1fab --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/build.properties @@ -0,0 +1,21 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +# Jorge Enrique Gutierrez Zuluaga +############################################################################### +source.. = src/ +output.. = bin/ +bin.includes = plugin.xml,\ + META-INF/,\ + .,\ + lib/libthrift-0.9.2-javadoc.jar,\ + lib/libthrift-0.9.2.jar,\ + lib/httpclient-4.2.5.jar,\ + lib/httpcore-4.2.4.jar,\ + lib/json-simple-1.1.jar diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/fiacre_platform_lingequip_xtext_2.10.target b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/fiacre_platform_lingequip_xtext_2.10.target new file mode 100644 index 0000000..f78b66d --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/fiacre_platform_lingequip_xtext_2.10.target @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + +fr_FR + + +-Xms256m -Xmx2048m + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/@eaDir/Thumbs.db@SynoEAStream b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/@eaDir/Thumbs.db@SynoEAStream new file mode 100644 index 0000000000000000000000000000000000000000..b84c78f7305b38594f4a762f4c5357661614ad7b GIT binary patch literal 144 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aU2kX_!EGb2;dkJ5(HHS(t%AEBSM@f RH7~iSvY;d}DJPYI0RZYK3@!iw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/Thumbs.db b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..ab88efa450b43dd36eaadb93fcc01367b8c09465 GIT binary patch literal 6144 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 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/arrow_right.png b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..b1a1819238c6de8f9e50988f4151261fa6ba64ea GIT binary patch literal 349 zcmV-j0iyniP)o>#A+qW*AYQLZl(!&BX$x7Ik;qO170ssEM z@$bKXf%rGW?|(r27bf-TSv zD}TdX0CM*JhkLO)8|Y^+n~Q^sK~hqR;q|N647YFGy>NTZJsWr!5CaSfwJm@a><8NX v2&h?|_K8L+b&88i{a`h`7P#Ww_cAT-3>7iG?d zKQ=FfJTtdc)9<~|e5oamr>PvpaLsiMK% z)`3JKfz0M{+kjr+tJMf=)!zW)RDC`lVzC%#5o2Rx@Or(N z+pwWr_G0Cy#KMLfiChPqPN$_Y0QGvkUkCxe-;Z!O3?8>yEmSHM!)YC#@*XrA4QQHX z0BF760&r5HP@qa>L#*q%0boI`Rx<$XRMi0R97hX46Bz=Guz(YJks&PLZ=UBdyUk`p zsZ`>ej0K>|afib(q9}^d4OeFfM;4ipp)QvTJ3Bi(j$5}tCq9+UX8HLVTi_P?ApdRO zZnqn4=W;oEbYjW^%*@QBNDxgXlO=9ZRaFCIR%heN3`nQbC8{1JXzH(jfvvZ<_c95_ zgTY{*$Kx^fYu?80?k<*>m$`D3z?1*|Or`|_fk8U72%SNQDjC;Ho*|D@?i7hr`}2PR X#`)v2r!)w#00000NkvXXu0mjfQIK%^ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/brick.png b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/brick.png new file mode 100644 index 0000000000000000000000000000000000000000..7851cf34c946e5667221e3478668503eb1cd733f GIT binary patch literal 452 zcmV;#0XzPQP)Pdwe5?6tW?r-ok|b$oDQj8FV%kZPq;(MWOV8?8;<)(iP}>hNMU> z7fbz%jjlr7h8uuoQ~J6}n}@Y@PdTk=)PxO{%7zmL?dchpZX*~n;I{!C>*(8cU;q(~ zAS%Po_@naEU!xidrBXD?;hN|x^%W|Ij)0y*r5vi|?W&Fub(NqJ@z0o=O5P)$DtCMgZgg9MW%rA`w{qe=RC&!sIosTV%x&Y5$*@4M&R5da8Mgu~%CZnwK` zGMSDDw5Qlvxg&vldQFc=`4&GHz1 zqa4aTal{E2d+%?xN~Hpa!-4hnbq>4T&SMfsJx<_sI*km-<#Jq+5R1j&@p!Pjyv#v+ zijkXszmH5N1FBhET(k&GslU0oiDWW~R4T<4NnN^593>J7ghC+%0s-iBy1u~diQR4& zJ3Bkr-rh#3R02C6wzjrT9nn4#iJ(v@z~}REq|<3=wOUcI*=(F(e}5l)dwZx>tK4op z9zX2?sZtZEFc=JSkXwyLBT@r7fhdaD-Q7j2)k3{q=c;tHXf(7dbQ@Zxg0jAF6KM@h+4sC6jtTy+RLI zIeishH}wCE^>ao^1fxHPUa!B*=4)mnI-uq<2Oz|6c+rSn>=*hio4|XDI#$RoWYMPX?k900000 LNkvXXu0mjfahOHG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/brick_delete.png b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/brick_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..3a8c373482e071726fcf2e8967eb3c762b224cbe GIT binary patch literal 745 zcmVk(*8wLyDN6qc8lhZhzWexdK7n$>DOH&Eb@W1hKn8Q^d@kW41g?RL@Wbg;d>&1>|H z_R!v=L|lNWxBqtA-QC5~(h_2^7>CVfq3AG<**(V(o?;pYD#p|9T1vg`zE3EEYGZ7mG!H z3=*MUPy!O*&Ws$JzJ?#pH|Ql-(faThp{Xl)KQ;bEU}HMXF2|(VY|c=3_xAQstJQcj zNr2+J?w!YXM#j5wVCD=kJBr$?>u}u~${$}zlgTt}G#X#B*&b|eZgLS4qXw?sl%p51 z|1;Ku7bEOAL%kFKf?lt`%;sxhBkIxJ@OV786E00000NkvXXu0mjf_hDCw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/brick_go.png b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/brick_go.png new file mode 100644 index 0000000000000000000000000000000000000000..fe0d33567d26b77787d8d6dc4be92f8f2d6b75db GIT binary patch literal 790 zcmV+x1L^#UP)zp{gHSP{di*#8D&?(h#;bi2r7yUe@M_9Z^R^1th67Ma+}U=ey(q{ z%~>)Q;cRVlbJ5&n%2W)U;$S+(K9zyBt*3JiDKhoI1BdsV_j#W8ea|5PNIG0D*E5U7 z66xyd`pdxfEVk3#Z2_~{oMA8+{vd6!m|m|xvLnHN#V}P%QJ}ZC7h_{%NTpIpCX*N) z9py20#_q7Y8;&>uWnbT_HZwDW?(S{`gFz0H$;4x6j@CIrPfw4Q0-;cdD>8V!URbSG z=yW;`wr4TsCXq;BWMl*^N3B-t2~|o=OiaM<_ahJpa7Ct`zBU{U4GqERbi!`8L#0wB z2(>4zt*v2UVF6Q9Q<$Ef2CWa1larf{*nVJO0ORB1u-R-J!^6X9Z*P}~(P-oZD=RBl zUS7uR>@2tI^Z7P=z*NiL=b=!07GJ;F;BYv&+qSkgi8YWDNRou5r6t5-F+?H}uF6Vt zyWL!|xHA_|Ew^z?c?$jZJ}#hCDkVZ^`#Thr?l%iM7ujJ_6Bn65+CbO^3N2U=TO*NG^KHr9~2xj9}2BVoNL)#c(-Kn}D29Z&q=YesW_ z1q5#+N<j%go#9EE}){AAsopP$F#;vyc>dRg+DzH&5tDMkI~BGgzO zpw?OprK=8iJM(bj2}y1~Nv&3!q0wmS>1=;_JRaOpord8@GsN$&Aq+M`<9R_z9zo%% zMUi*~S=A(Vw36g(`wJZ%9oclg;tfR>uC^RQep3c6y*z+>+KZ4oYfzw*A+wr94_A^i zJAS4O&<@KK3WZ%Rm%C}Ru4UKliQgCUky%9|H2LJNzi~HE%kkq?dvUOmWNnTA1HB~u UMVP_&o&W#<07*qoM6N<$f>=0SnE(I) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/bricks.png b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/bricks.png new file mode 100644 index 0000000000000000000000000000000000000000..0905f933b87ab32f21098d7db8d603209730c753 GIT binary patch literal 825 zcmV-91IGM`P)wd|HNMlZ|>D)M67h? zOIjz3DJbk0=97q(mSBd~-ilc0Oupt^z$#N6O&at_s8u-PL@9M^gQuq(+UH^IB$&*DHP!HzH+vkEzC?S52tN1$mKhziPkOR=y$ zhl#aO1Xly_M?EkN>tM6E5T&Ht4dh{0oQr6Q1b3J=sM^ACOsvD=TSP81#0oTC1v|Df zgpp-GhL(KrE_8t&(jeFR1W%(osQ12tvSpHp_}~HR_8G{VUO;FILQv(P-b)es=)ZlJM#c>{Wx-rgY3D#Ol9rJl39A<60Xo5cneo(9g5a4q>ayzV-7%Ue2}0_ z&TIets{Cl`n(nefrZ+9F8|N&Kp}^StU2b+&pVj;XvgEdBL3Wlp00000NkvXXu0mjf DwZ3{L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/bullet_disk.png b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/bullet_disk.png new file mode 100644 index 0000000000000000000000000000000000000000..209c6a78625ac205aa1d8f60693844aad6500dc9 GIT binary patch literal 483 zcmV<90UZ8`P)iurf=~3UFXxqI7+S%~yN; z&QFMWB8?geDax2kMCemR4UW__o=Snfs{&byph%e z=77^@l_n}qHB|c9pq{s5_I-v&H_y*pYjU~LY5(eqL#|WUf--*EUEAAGxHvbtb|TLazB;OXk;vd$@?2>?vIZ1eyC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/database_table.png b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/database_table.png new file mode 100644 index 0000000000000000000000000000000000000000..693709cbc1b156839a754e53cbaf409edec69567 GIT binary patch literal 726 zcmV;{0xA88P)T&uF!>{(iS?1OX-eX zKw9bunxR5FrF6QaYs~9>A4#zW^dwIvCpq(+cfR?U`T6-{9LHUqo16RKcDwUVr?cX4 zIN~hJDs48~aRAJ}U_2g=KAB9SP$;0;Y@*$6Ly{z<(`i^NmbL#1W@l#$wOS3;YPBOE zJ;7`?L*?Ga6XzC292wl75}>gDz`(>h?is$JPxm#0jGnotoK|nAVM5$DQ z!C*kO-aeF@+Ejy?nVHEp8V&F~k7BWicsx!aH9kHLRpcQ?L&JFBAB4i&kAaVUxVvzh z3a-EY0%m%8nhI7|SE(QpiBL#sG#VUMM9}*(0mg2(Q$Zq;z|PJNd_Euiem@;jtJN@i za|c2MmsL?PR;yKNwOUA}QuO=7;V@#c7!{~gs?J7hAlsE7U#g?$aRkhSTqLq6iuCu9 z10_j_=;?Dc?4cZ386qH0HkgHTDT|HmGR`W4V2noNQJqfLJEot)q{V_UtsW+m31cP~ zDwWEi3HYBSoF4M;T?VaIdqinn1HZ9}32qs-PdwPbCf+WI6n9jl0-8cjV3%1FB%B&r z+`mzSliyLSH0dxYE}rk&=!uCa*V>()2znj`_XYjtbt>@4FLHnJE|G`xv)Ba@oLBny z1%3K7c4fiB^4{k6E8Pif0kNy62}b@9+3kp_oQM4NsQ6$aEKj6mx0hg})10sT;E2V;K zUHNY7qG&TIJ`gc&M*EmdrgP_>>zSLTO=}7j2M*`nnfbo+_|8cvrSLzG(R^{I&fHg| z3Nfi70*Jk=pS3m4lD_qhO!oanz~FpWe?InrjDM6H7D@P(w+NOTuL0gfPQ>)8EiKPO>RV|@%G(EApK7|ni6$Or7s}#zN5D2fFuoW z?SUp(cysDe%D^FVRe!-fK+o2zXp zH&*H~_``&05AX{CqjQ9Pq)Pw`p&~+e-<5=lgjH9A;4MsYR*p|Xp3o{VtL6Q8vD&1u z_TBwgt>E(`Zp(h8_8f=r&cr~-uy!|BC|zGKq17aQeR}wL=f1PUhPjus5Lo&7j={xc zCLhQZ=E~bn;<}`gh7Bu?>ih@P+*yw5-^u2k8!el-HG?lt4o$V&*`tbh^4#JtCOgRB z@^-thiGaZ!P|20J4^o7;v)78_|FldDe9Z$i&;9^|y&bKi-n=y{JsccrzVF2T076QP UWao5~B>(^b07*qoM6N<$g7%3ha{vGU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/stop.png b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/icons/stop.png new file mode 100644 index 0000000000000000000000000000000000000000..0cfd585963d255190b8855a7689e8da1c4d7cf6b GIT binary patch literal 700 zcmV;t0z>_YP)*?Fk0YVb%?UEFajs1S?+YtYiPrjx0+ z+4YbyJXwz!SX#yqTlhtNQ%Ku9=RNm$j)&+(}lZ!UGGp|@|O z09YA#-dR#rIaGe;MBLe!ht*}!c?U}6YT!dfHDO%~>xtx&Klk-^WB==sC_vP4ddg4L z#GN10u$+QGf$!(i3&8VpF6O6+ef~&gQ#>AVqCJH_utvKMAuOeG%3%mn<<%9)yb~#4 zHc70e5sYyQ03$?zFUko7D1Bg1=6jXvg#bUm1b(pVKuC*}koEKGdj<=zdM#RWsl+kfRf;OU^G_BQh+Fc$z&F_AHuQYu(b)aq=H_Fx idDl8IBmWBc*Z2i=4uSP&;Q8VJ0000pksV9NN z3qiDb1PO+yeqNdxzIO_sX1Av&y1M_?ZDDomVoL*2?FM-IX?;MGp`IWvC#p1#nY3jJ z6bm`#SGIRV^~2K4@bzPWqZ~S{)O&5b=vs9*gIX*U3t1Lcw@N1sL;?6w3oh}-%Z>LL zjW1+G@==RS20Po^m|xj8QC)Wcp$QN*^0^4-N3u7@JNbu9#vFhbMa>XZ5^vNK0pQt} zM+6NV#8v9PftNtgK#;)0D@%AU`E&$p-uYaVW^%VQcV_om9PmL%4NM`Z5_?TEDZk!3 z6L539hr?fh@6|e@N(5vxQJM+BovZy+)^?em95?~^b`bwI5V4Po<;{_S-Y#klNi%U- zsJz{S2r6s4xJ(3Q-#JXdW#GlTufUN3fQvwZ()j|$AAsfA(OXRu6ICXMy9i>`8b1A*Hs{AQG2a)rMyf zFQK~pm1x3+7!nu%-M`k}``c>^00{o_1pjWJUTfl8mg=3qGEl8H@}^@w`VUx0_$uy4 z2FhRqKX}xI*?Tv1DJd8z#F#0c%*~rM30HE1@2o5m~}ZyoWhqv>ql{V z1ZGE0lgcoK^lx+eqc*rAX1Ky;Xx3U%u#zG!m-;eD1Qsn@kf3|F9qz~|95=&g3(7!X zB}JAT>RU;a%vaNOGnJ%e1=K6eAh43c(QN8RQ6~GP%O}Jju$~Ld*%`mO1p3?6FD7nDHK>VL42oe(*rZTUs{)lBOewOJrAS)@sgRZy z%F>hyq)^%d($a+jvbEIPma<%g&wCql)nJT?C;2jG&YAhmnKKgsAmV>?EHES~x~T7X zs+sKJY)$uZ$;sXvQYTGaS2d(|cfZX!|5t!kR#0tLbM}|5W7u4C!0-2gAiP*vG{dZu zpszlDTUwr!_ea36B)`&b5W?qi!|L|o{h$lgowKNt&7f6j$CPayE~_4jy2lXZ$7TKo zP_^Rg$&G$-I%;z7v@(FfmgKcnw*_L=0_Lcb zLkC9)hC&cDim*X}0(*PtR1HFFBT(FKf@MOAIxfq_05r`>yFTv5iHukZk`&|+%R~ULN=n0< zwMH{M2Y|s#BDvxd+>Q}6WV3z(I?H054vP{MG80A?2&__JW&z`G!!PDX?YR7GjC`?n{pDbW%Dq)z9LBVBN!qPTXY$6O9kX}RpA#Z z8F+~Dfp{9Q%Y39-UM%Mw{}$%PsxdTSK!IosPpU?dUZKMkZX^^l_4w63ngulA_kS(O zy_Z+Zxe=5L?_x@m59gd1&eSqXN&&j;A0wZRe+P0j{YEgzubTh>002ovPDHLk FV1g6?b$0*& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/httpclient-4.2.5.jar b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/httpclient-4.2.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..84fece4bcf77ecb299e8f31f92b9cf435f5d07e1 GIT binary patch literal 433368 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
  • FUq$BAmQTSWjdvHIMce$9);@6D`ac6r3l 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�_#*y^jKqIuV1smpQ%StAu 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

    grHNYrS%3Ix#(lTad8 zd^}P1k9$1A3>^DZ5s!T!5Yc{%hSvxwg&2OyA5C%!=6L0$Xf>x^B0eELl4UmEw~Ka= zlXcQ~F(eMRBDyk(I7fKv%cLmkZ22?|$|8UR$)ewPnyH>7$3wO=_28}}`i@)VPfg9+ouC}_H zA%_fyio(Nrh_q3Kn5{Rd5cVAPBi$56{RnGtLO@7MDl|`a z-opP$|M0Kp^*0hP=IIEcoc;<6v9fpjn-fe{)6u{KfwqWJX}VDB;+1qM4kJHC5BU@0Rhc7RoNIgn zUN?TO9cTUgc)PXuWagVJid##Q7HPsC!DI<5O*N<}zl*RbyNkIkyGz$eCvi=BOK(r1 z*e8s7y(^D@J>sNsMN9o8*q0FO1HTVfVh7}bkM}joByK;rZ~?F&EF4wp+r)P0yyS?{ zoB~WvmRqheoWIhF4+X6mQL^FxC_lB^;@nveLbj{E>3*wHH_cdUXBPf|J>XHi!LZLefB{pk)xNcOmNJyt z-h9H|g=yv5AD2{NXIE|UnXiHFT`J{MqYtl*PYPMk70VqW3TGm)wf1}RCyGkTQtN7 z7AbtxGr>?-KY8oU-fFdRZie}uL3lRNaE?UF@8T3QzMEb0rpY-$U-;+GS|>jP{%{Uq zAYIiPV~EQ`v*Oge0E;*uAHrg{aAW2o%b7`|LSOf<9|pzh{sMV3WI#yWy!dsNelb}k zP{uH-mSmv7D7pB%{4Iy>8Ofm02RN;1vbr)0m`{?mXX^P7v@pBB4tQztP;ID zip9ydK1UwuMA88yNrL_Up%V|qo{>S0G|Cc+1&el0JfU1oL>TL9b#ZwnjHm+@O2Z$Km@#-hDW5 z*eX1f%zx3RrY}4E!_1=@c>T09!e-Wrx$^ADXMeNX(JGx%>DP+FQT~*(xkWo@AHT2T z_r!0H=KNz~o?${C>G7E{kO$&Sp4c-L%VYm5(pB<4DAlV6Nuc+=!AEciDQq4L1F6Du zH1d-_>BN9OZ?J^g+iGO7=VVCk=x?VWUt!btawLU4Dnfri?&}TQoAOYt>RZN+JV0eP zhjn+hM6`kiT^_Xh;$6m*C`Zhbf4#@LGIx@#Dcsa7CsOhC zk7h#z$gt-`Jf2+6xh7?+62?+YDjG`2S*@d7A%q+6dTNvf4#bp8o~IM{qgqQZ%aEoI zLWpJ)1CfJCBG6T|%T$?@Q+CBbPbu2?k<#Q%PW?U0f~2SVbJ*$2?%_=uQxgL!i?9Ri zLgSbqeZ9$SlZ=i?WlgYpxJGnUox5NDChbj1T4?m6c+%pc3S??jJQaM}oQD~FIsOZM zzpYM%jl0-GkxG|EJR4b(c{SZ9a4OVrMz*u*jf z1R?Sv&kP&)pJ;u}hE>9ol(K>^s$S>B4?-SYF&fZrS%v03hv? z;K~nK;r5@zotXL1MjenT-DUxfZ}BjCmTq|7auoH7-l~>=gf}wTQ-pCB?IGb7tP)r0 z&ms$zB6#P+Rz*k{N3cpX9XcQc4Cbo7X$?erN(~vXzF`EY+svih z=+8TnPtV`L>Z{#m09I}R0FK)fz>lG}>m38$eq3&y`0_nHgzMd(xcou)terDP(nawh zS<0$%f(sAu;y`iw&f)|el4M@oNRqP$V?fpwNm{uNVh+3Y~&LecW-> zN_Vseo3;>wHFY zeK9t?R}bSYwT5M4y6m3*HfFuH+WKmnh_=Cbjx)w`H2yqk8PBRFwQRT|ww){#Ui9ln zQT$wZN;~UcCrUabATDritl==y^=#oI2vu^_p?N8C?n?5{iw$r6;*0Y-o9n z4&q?@XHJQl5Z`;VI4m5Uq#fDQNATb>?RMG2o21qZAsZYmrW@?>0HYn-Ybef5E+#%Q z6m>Cm_pD)h9%gS;DsZFwV(5B^ISS>C7dB+eb7cEB?^jg^ALB(Se(EfzO4ce!6eyj_ z-+4FFJTu?7SG2HUV@&ymnzxoW{~~j{=SySRX{Gnl!9_76Ptc?L3Sp=b8NSnzzH_9S z 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 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/json-simple-1.1.jar b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/json-simple-1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..f395f41471a796876278a6c5667ded4632546893 GIT binary patch literal 16046 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℘F$H%fw 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 z zWVO2N1-&XVIdx_;k}%0d0By_^ggr|2Bs%qI+%OnLrO zf+44?x9D^^i}70Xn~1Mqo%2k>rfH*K9~OL>vCRCBrkhRn4$mc@NN#kUp0Av1Fx)P& zi>INBKYOmY%-r~YCJo-gcnBJVAQ1+M-wbxPb41yea=hv9i+%?_4moc94n8K&jgsZn z>-bpymHfoZyFD#j_2Tyi2g5nduQUZ$i~WclWOr9H$L%G@dA59szHeB(1=X7z7|1bb z02*8l&J26ARKo%n0Fm+LwrGnXO8rV-Wj&2`-}*5a_7kP8XTBLdPdW@XCz(}#TTW^J z7;bMVm+^V{yM8vZ-eFgx{KyO*s_zN$J^1s-hirE|pJ&J;uB`>K0k#oN$c5(f*@V^C zl*=?2(K00Iap))V*9-0GlLE>hZuDu+w_dELcJD#ui z@>~?8pFh_EjI^e$VDha68fk}{z&Dx**3pu<0vyOs%X8O}{<#yAzl0ja6=)@he49Z#~baJ?R#J5 zL7~xs-yI^k)MTB5UwBU9_K*?u>jcajlqr{;Lot*c*`+e1Q<3o6;+)_gb zVEuJ1?aWvpYlBhkJNsX+5J@mfQR;tE(ycJPYX20CyLA$Zga{J=H00s;@h?0rh!JbU z^g{rV-{Bd=r8lE-D?TWH6pd^x&isGMXyJQHK$m8O(gb4OXtczykltcheJmixLLuk$ zFpW0NVQt(P&oG%~71h(`=oyp>vAj(R!&w!tWMzEAaErYo{l8l+wD~#i84rzyu33ul zZ^daku5XgYBV-_-|6=Ee6#gJ7fws+v>BH8GvkZ1|Jg3RfA9An9-%+$!(B$0LBh%GL zPeCb@(h#Icz<5R^t1*w!BFskBgyEHG7$hDaqD}Hk5NV3cP43aetVkx*^ant~%tikN zp4(fH@bdEr`vY~Zk zUt(ZHhYuZ*l)_UsH)H!M;xOZ7p6edk=HF1byBi6egy4WxC3U!{6{tcQ!^W$t-6? z&Ad^L3(+E(#|**AeU@I1aXWYKNqqSb-R$+P5woBv`5wyr)Lp!ISdjU5IHGp2ACV2> z1RK?uig+Wrn zYD3oD>xBYS(~|x8GnI7;YfkNx#}J1}_&0vUo31c@3V*JK+XkgO><_Dm!F7j@00`gic{C@Knw4Ag~{z$J9vC$Z#gpUgck%V#|v#W)L zPKRV#7wVZUQot%~XZZN*ay6ofl!~g2h)B~j0}mTSC-`%`v(S)m31$ZDDqbaf1>nbj zJ_3I<%}CJTlywN3xicHOYu^hVo?maeu48lN+(=^3Uo|DRcgJMYE6S&*lfC{)Z9L#q zGPI+5sN9BUJJIgtBQmaeBY{PuoLW(;P;@uMy&Veu=pGD_;l`^z@3V(Eju#{VGgoI- z*S2K5l-sT30r&KBM;J2Z_A_z-0TJ3Ej6`D!$<-UaBml_iTJ2hNo#HbyuO8!>*} zwvEDco54Y;)vSTTU^eSo$hQFgh7bYC%En7rURfR(1dsqG8?FAhW4K(?LakZ&n-J(C zhVa21;RPam+ShSS=+=bVAA|BS1urDqkGapgWE7ZZS39LT8>D1N2EoIQh*Jiw%P0GkKTT!S$M*Wf_!3eXq72oqdn?5 z;3x$Zd%1ipc5+ZpM-KpJH}?9`X%I>xZt*7EfNks>OR4#swNyCp1gs)g=?-AUpS z;&LR8o)FaI1R{@t(JKaq%DL5vU@ToXtx)E&m*eXJB>B6%xx$wnzN*Qg4hoyGf#hL@ zw9It_-L1(C2naEfFxItx)pQVre|#bM49@#)I5Weu1!+@M`W4Uh0(vs|bbf29cy^*l zP{p|z>h$Jz0^tKv8dhf+iml)+2-Y#!o3wg)R^fX8E|&V!%=6>X&huf@cw^)EM85P3 z++N1ka^R?&;%aO{TjjBggz(sHsf~7)CUzp{rzB+f^k>x}^`59BE}61B`fq%!z1rv1 zagB#q*p04VmgC@Tc zFN}N))yeP^L`i%D6`-T;lS8f)lLnEfJ2i@d)k}%IC5s7J#HV8$06z6Q>}j5I zZ`sZG!*3!Z=+FD%Z{QopC$4)uC!()9J?PGRTp}Ub0>5j$f^eHiJW2T;X6h>?-95W; zz8u6l+ZB!jUvtv)R-#;MGzc*Uop4vEiprU0L`12$EdH!pimlH@Z&D43)r}lPf)_<@ zufnXTilZ^zo$^j8uX!`$t_8FSXGRwJ=Zs8R9Qy};fCrug@=L+D4dc0YOFE?bUi$ig3yxC|8cB$tQaBeMEDT!u}!D zRF4PVy=f(C3r@mH^~=iDb-Gp^;ttI8K^Ft*1`sb6F$=R^4>$1g^Y5Hsp?@tfvd(*w zDkgdy&WW^12~AQ_ak!|3srDL^tQsM&&ZNn5b<*MUa)YcjIu1*~;4>9W7&y}emkf;z z_f$`j7LO`_H<75@$g!|LoLI&xBXD5}9zw1X5`r0IquVvQj7m)hDSO*@Mj7)WWxEga zssN3A)6yc))}=u3|Uwbr5DgV`f&8F}5$QbxDI z8I&@NW~5Ghpv8WM7dgtWx{Z4pF4U?y0O#0+2;PaS4QD!<6lbcl8V@GM1L^zIMl=2J z+Su-ciK{(VKT@DWDg!uC?~qLDsogc(~}EqqLf>NYI4&kTk1kS={$DJ$o{I-XYdlEOJK6Jw5jJkM|BJGB3X-jD({;Xk_&$!3^Tou;t1gz;?6ga5 z9L!YAVzSoif#0?8)EN3>H{iQjkshfVp!;o{?kXO|*p@0O>?Z0VSF0j1lD4r4-dH;8 zUg>#EfwxHwyg2=tf2Wb$@*4-WsP4@#)o&@OORi&zXg#%L8|b|Uje)a;WqAIu+Ji>A zw(+q={GKIW6bU>r*;tN6pqh$PJflteARz64nU9658b@dX6=fd<;a9>|{DbG8UE^Ca zfW9qIQ1nxZ@`xd!V=g9E07lKT={BCpa9FZVqHT$w9KWV=igrG(C?81OzMDP#EGeQ) zTtf1h+;Vuk!FHBmI^uOh)w~uHA+U8DU+pOKXBP^vfUlCUFHAB}Tftj)-x)O)@?=1# zQrd`3Albo5rgKGgV=syy(o-#5Xo^Cdb$V)MYXKii%|J!Du1rKvSAAac>O`y~VP94f z&C=T4j7=cjxTNxd#1r2UUC~=}-=RO^2G3ZQo$0zXeomPg7Q;>O`759mq0)QPJG6a~F-R}e83P0Ab>fMTzPafwS zAQUgl1b#N&BK*30`jCWjie$FF9K3prl-4wqn;S1rM<*?dM2^&leiUI$dBxc)dTFvy zTZHeUIMJ{zeS94RlxMq%POem`^1HF-fl@XF2XeBR_A=7IP%W(l2_rMr!ZJ4(siKu; z5p@E~K#%P)-6Y;iOr=W6XeYd?1S&+uGO}Qa-~psCqgR&jQ<>>od4eP@<*RazYN9fh z$@Z}N0X(%td!1h%(Guem7Pw3gleIdfltR6bDG8<0B0eS8!j{X|*RDutcwf?x$+fKO z4;ZNo;Uy;0gAHWwksRVhhyoeyjIN7`C;fgGG5~H0m zak4BV%(!|N9|V7M`f$BdFz)` zEwD%EM!uT^#h`f`&8X%uolWQR3F&53J?CsKEo3&G4?r52xxUL>RW|WG-KKQFvTtZ9 z^&9CnIOh|+VU{6p@0?KJdB&yFuC7C;vkk0kOZp}ihAoH~mU->e&=wDcyr?C^f7yMT>fK871-&rM zIjoHvIE@t^Qn2#DRYy2;6{_p@U(NN}ggsSN1aVAgRngZpHB3zjmaFSwMaBKxh45M6 zoKsu(P;8%@9Y(gQrDU{Ux>0VyAAeb1ZcVXa<`W z6DW2y>ZQ?<4F6IsKvmtfFbeQmuEE%>pZQeK4v5tZNIIRSNDZOtcuXs`_NXkqtSD^G z^u_&qcvgD-W>9OZ_i@0xlLXhj8fbQ}wpfjXwbZbSay7X#IgEw1 zNtP1OL37f8Ge+G?$T~+EwS-xQP?EvW4Ypt=NMce=|1lI_X+i!NiW8wb!{qsV9-O0A z*VZB2j;?x44a3PG)B@pDWXj=psvDDob3b^dSY6nFb148_Ec*yKOHugD^s`J!BhON4 zE*0rh%X-*qf0wb+Z~EJ6vj=7Wu}4k?#k+qLqk1uPUG@8}&`YE3n{V!=R6Vp*248Yo zKuPz|iZ$a>Eud9dVCT@RN8nk98}14?yJNvOkQ5AE6tbiZiDAfA{ac2fBL=CZh*HjG@nff1 zwe&PJBC-nfm#12UlywcxAA4P~Fr)R+@P$d_Z|8Mrwv-Zr`CnY)r_5IQ3Na}vZQ`%) z(<#kCN;$}Aj@jn<2v?+NCD<)BMz_C&BNp;>`qL2H|p1l==DGcOHmHKKz@g2 z9ZSG>jDo*Pt#w?nah=8SHl8f38?VlP?>&&{JNR)ss%bCPKH{NN<{`*UtzRp4>M|$& z0da^F80Rm;#UDpQT~$yLCJBN-m!4Y0BFYYe;5^gD6MBF*mL{+F9L6H}4X`g1$)Po9 zY=s}~#2Y{_!r_Ku9j}$F&Vh@`cTWit8oK)HqpY6ZH`fg&qRdW|3 z2U|QuJ)mR5G;57vizZf{_lt^NUnS`V8c{TB#IpqGom~f}aiZU5lQlR$K~*(UTG>*z zimPGWbx|UK>C{^Jofk0mJvTS@7#~E>_da~4es*q}oTZBgGj?u$ z{6(ZgoRC6Qy!d|nIzxrO8#CU%Ztm|mznr{XqK+?!S_s&Qwsh zO5eL-y@-{VetU_;#1g_ajv(#31o8JBk`JM{Yd=VV&*mshW=w7-Z?k`rAHlQXCx{J& zWa2jmT;6cZa-3y=9KMa0N=zDjJb)k1G1!mi*flOnzU&{*ao1?2SiYuZQS4Hu@*=*` zsO7Ga!C?Xlx&oZ<)NBg;$o~p_emuukVQW@g^U_hl%@rzvAwS`u^`Z+$4mkReR^c`d zcXZjY?7uUg)H!d>(x1FX@t?d$J3?V@B=cn-y*T3_7x0H1(Q?WPwvCW3>Nr(l0_s{bSBkWyZ;BRqn%KV~bYvKA#h@{!ENa;{=wTe#3+t-iXOR=78*_oJ2gxQ?LdS zBz+}0!@2t8|F7x&$N8*n+YfZ`&yPdx2Vwl*BZB_by!c=0v`hQ{4PhKn`Y(j>>puu% zQKKJ(G2Ca%Plb1Zjw?zmjXp(39`uQ zLljSPK!}sqVZWUm&!2|}D8G-^tL_3tZomKMx^ppq=hFl1(-6R%yqrH1)PxB08Vs2- ztuSPe0Bu}mpneS2%Y9WGJulP2fw4SEK~z$Y&FJ=v2+3Ow;n-ZiGB&XStf8}0rRe-Zv6|jd8b#H-l{v9mB#(FP$G>!LiPtRi`?;nmX<7y$_v)Z&w99#V`iG z5}~7yZ>~F@>t&_G6!bR5hc#6iaRjG9-aK9xIFu~6^*%JH#sp*o?N zS$+mcuV=uRdIF5y{)*@N$sOOX6%aJ0fP_RE;mL=85XOR!08&2)V+i!o#{zKSqeL## zCr(NU*)gB`uq~)yB87ht#$@mt%moJsxw~97E90tLDdV}MM9CJBY(EI&bXZ8cBpEcI zm?%*htQ02o!z6yC`;0kNa_yN@ks969eK~iV@K_TGozn(_ee)W~AA~WpR&k|-yQD}y z(+@LnKERi?E4UdYMXMEX$1btBN>T(pD6Hzs1!JQh2|j9`SL1Bx9ASj!{+HKIFkP9= zeE(IW$?bik&@pXh2iCJ%uqEem5HF5aM(?3@ha-;x<=d&2f3LUTO^$rETX|J)dH zceg24&Mo!f`)F1vJVGy72_=EFI>U3UG`krjVqWcpmNA?f8Df}O>=>;-Z3Xe)66Na$ z=9jXpzdFOa-6|1i6oZA{&{N$*(AFsH@0Zj)g~Mae9`m_zi@Ou5g@=HL#r`Uy=THX% znQ7OwMmr3}GGW8CRsu>Mabs+IWtid1M!s51?y$j12gyyCThU^l@QzTe*d+FeeCWx- zqBrWKRQH7!p%)Gai!EOtzj1MG5q&3KNQ_@OgnsQ&?~XQhK`v`{cGP#SS)#?%I1-vi zO+Pl@SX4zTrp@z0D(5W(*%i;HzUn=OO1?>{$jU(an#*X0^+lLzv`n4(XVFhSF-ucK z>u85FW-Jvu4JC&_q%+}a>!cj{^0uS%9@J-uV+O@$M1hF9ng`A5)|OTCTv275#g*q< zM0D(2oO1`c3^D+NctCD8NGt!9kbl=_ovqAQ;Ys&zE;@zngal#Ba+Om6ryHCvz->M1 zE9L4A;rz_rF#!tJn*;X8o>AOOvP#jrVcQ|;IdLzEP@`rM5vTtM$UZ>>H?BU0Q%(zEkVXj0KA+nu8B3vRPlm4STnq%dvrOqP<3zd5nkq}Od=U)Q zl^hWPk`-G=E_$xB}I%ISqqr;&Pc%!#ViP&i3==A`~mbC7wU8^TkBS~5;CUQI}LiNPs4%S8)ET8%ldK~7y)c6{c#T5a04&XoDhYhyh2s#5jp%Yy~-hW}6S{ioOxKk6`7#u6|ZvPz@JhiqnP$uv{lvqe9Y~rXLfj{_qlVG4pGFKaPiH-Un&B3%ew-B zW^ZlOOF5<}((Y%kCR#=}+i=0phv_#WV5t0wiD1%fN%xqO*RTWb62(u;Y2XxiW~#;; zvS)>)D6Fmo2S#RG@4%FOLX zEA4H{2eV~sHe7lfQ81u@`PyEKdxk4p`@(SbD}ZlUOn-H>VYMj9JvUw0MW?+NbSTDh zUTdqCu*a zV(j;L;Yt3PHVTdZgk4vE`uU${_oAz}#{aub{7Wr#Rr&kp^v+j)vl+~T`8i!Jf|=1| z-CxxU{egGx`2XMmt4|hU&VSqm?mu|IpUs~C_S&!F`okOkPuB4Nj9(-7zwvAS*{`+% z{;6NO?>RAmTbDEPO2X3tFHfksob^>?cH*n8@+o1+xG3~`fW#8j|KA0 zV+Sh8ZIc~`-0K!06sIgmYDy^=RIvCrfj!B|2@mA)bt@nLJ%%4--Rk z^osR~&aX;MF@5Ux4p?xRilu^)qW@fY8{3K1NW{Sg{42I3#8}dZMWcY;Bg`1B@KgAE zs@|86mq&m`wC&DY6s*E63~qJ?em6fKuTYI#MEuv_vl)=2sSuVSM=r_H54wgZ?M0m< zDTaQ|kK@3FVtzM}(`rW-UkAkOV`n%+B1Vaa%#|JtlLw_yB}rw4ceqoFyJ}@7r3+HF zmq;$DgZzky&`2cWPlArjk4)8`DI(-fco&D)c`lu1^~ltO zgm@HmZ`R!cwa#R^&4DLq8EOn3QcU9+b6Hc6-bb!f3NoNXQL1a34V2@+2*L=qdLfn! z_LK?KwHt2uD)8BEg_k;o3~%9Fv%lMIb~^Q%=K}zvkZ3^K(Xw6cVR$C43s7dkGT!HI z1OPCL0MaRk)w2?_cpv3hUqQjv<^EaTDTd!*P27ms`?Stp=CO;cW_lH#2nCU?LAJ}{ zSP$3>gUW=QnjBxTHWK%(TSBP;mvsm^G*8x$rMMtyNrTw^7_grrT>%@}f03=3gM3N_YnASb-I zcXGtNwNLmK5H;l5$`Agv)}!*5?A>^uxrFB zP;aNw>XounLdjVvN!H4-F>$bwP`+SdYAcV#2++Dmy@S(J&8+S_0xQdwa7%$h> z&G+u`D*nU%t8KB%`sA}>A0(@?mr_?rl5x3Lgu^QolBsXRq{uBPCJwLrVb*ws+%pNV z`n1J{PJLR~$~3D&U_iR$VO2Wc7Mw>oR5`0%;z2?9sOrCV_oE|?Z^dk$v(aztk~q#E znMOD*4h>!DW-}c>S_h2fdf7VHWJ-oco_X;w27p#xvHCm`#zk;|`<{2PvrU#w-3~T6 z2z^&K?Lc`sy|_f{L?Mo>EXjUou;`i@=klz8$w5h9mM9K@$l}KUL0!HMBBwG1qehDB zsHR>(H}#H~a7kE%6lf&fjo#_!3+(}F8s>Q?$dNv&NM;J1w_bI4FKOz2{HCc?Nx*Jw zaS+_fdJicuBUHM+Ykpm{*-XvnD)G#%wC$caxbXfXFi+|Z#u_D$Lrdh*4Ms# z`84=0U)$gw|CVoOpZ(lR6L_zjVIF8=d!6_tOyS-Kqxp3CxtMW>+s?IdH6YE?X;h$ozcccdyIVpH@tL)4eJ zJ*hHR_%G-cS*grmC^y~udYDygx(7QQ5n6InhFG^J>AjE)_05s{Q>j+yR&P7&FRCYa z0Zb{Jaso{AOUM@2G&Uj1$BN=jxtGROJ;&{I&s(RHwiQQNvA@B-tvusRog2X|xjd@s z{7q@3T+*j1E4k3&w(@r;0|LC0iRuIt_p={V^g%Pj5!27{aC{ZS;SZU5{qlLlBjbz1 z9Lhg{Kzu&wm|E=*DO{^m_E*~I^8}>k!R7gY?G4fn>@FcQoFhaHg^L2vP5U5l;&kAM z(~MPw@qi8>MZ_Do6l!CvBN=x! zYq6Rp&gUHT*bZ;>HD5qCsNFPLlBe*TSYO$F`tn%qLe<)t2Z5;Y%w>o!EiTKKW$7Ru zUeE-R@5}>`21g0yToYA<43Sk=RF(mwrJzRC6eh`V=x6l3`XG`^X}CKrL1!7$dv50` z*yE+Akm;0z15-$CPGf8Lfs?<}*5o!fQ+xA1(>eAU+uU-Y4!zeye8>Yf=dscFxksA7 zJm}F_-e2ZkszioKpR#C_=5U@j4JAXXV>qo=b3#vA$Gp&1dXm$mLt51r-3)NXohlj#$ZGAtC_ubz4jJD!aM$l$`o#KK}`+N%%LUruw9fpt~|@2X1W>j$;)^ zqYlsEMfz+_S|K~ZpF>?m_=fbRcl zc=}i4QRiF!Pz>!mx7X-GidG_0HbD2fkpvZ_-3cft!dq2UwK|elvg~q=(_1L*@~?j{ z`|efaAqIF3tvk?l5U>7@_hZkrIgfF^k2Bv{XYZD70seNjwafG3`d?LiP217e*M?h; z)0^Kl98J&MW3i4I3Sz|w;Bn55)`Zp*YaeTlX_KYhJT1i@2kp-@Dbqp3KP%87YkZHj zJ2T_#*K8f6liWOn729DzJ3nBW9G6!4=h0g@h3^4T@b}#3B*0=C0^U{KDPSjbahiuBfa{LM zj5y3Ua0JnEcXe;_IGZ+SCSsUkgjtEzhrqVbE(#M86W!=Vn_K*rXMP7xU@Si|M#v7e z0X*O&8AwAkqj=}Du`%=$4@sj!OPLYfA0W*i{gn+gT9Dm3)}!GZyMtku85tp;qoySx z$t%>cNT~Pcp^MxKY=Q#{+Bl-`d&(@{x=UOTei}a!{|M?Y;ZY0r2%f2Hn@7hrmOta^ z{T|QWSuKGOk^Nt~X!K*x-W8jowhWRhx!+TcFj>w0Hqn^93dX(@7%QVG6Zzch_6Wn- zH%S~THeXwgICh8NIK&K_EDy*_qW&5#yIfz|lSR0f?alE1@JqYGnm$AJ-yakmj66ub zJH6iSFE=mh(bw9vmn;x-u_fl8D;IYMa47JYX9LVua30e?yx~yD!9wwv4*0Gch>JJH zv*8d-*C5?ob0GK@iaUA>-&UX6+t;-wEJ468d56uZ20~(j;6R?fJ|eG0S#NV7#ZHuY(1$ zG!@{C@y|s%m<|D>7nQbTJkAU2q>ke)au^mwGVP-UronRQEQXWr!4-0RcT0pgfn( z4u?=Q(dpDB4&p@0pD^Bg?AU=9fG@xD(AEkHnPjoS0WH5q?XI4&llFJPo{PD@BihC4 z%@FPNmU_yXYsG}nr(!lv7%@y5DlDdO$e1vg*C}Nk!V%JXS)FabgP8s-v*6mU&!^$q zZXLShmx*e#`OwK1rx zOwe98CEkPvLooVR@N=0=xMw_A)@DF9J`^+;x*6&W+x7daNN{jN9xP7W=kZK1j&L?<%k8j>~a?kQYI! z=vU?Bsn+Us=_@A9#XEX1eBag804Y%=fb}ud;l?!%A~pBp`TMVIM_jwigt4F59USB zw0U_`DRpYb`xJhQH(RE;221wI?}{pzFMY_%yBEVxf1A-#_r3 zY93YA#hKt(1Dzj2>Rr@FEOOry<^Mr?^$}URAdG}6I7Rn{3RD@*Q7RE_ULMqMEuthR zF;>)$lCBS@8lhl4g?OeEv4-Oiz|qyy)yc09S)C-3378@mk~U}%lHtu?k4CumdTn<_ z(Ht7j(o+?Dw>}63qCoIUx%nU>>@oc~eCVZLo#1q&I-{lFtn*h`%A&NlUK~7HVE5y>&fUxWl?9 z3UgoRTT?ew!vai)wsKWUUGjV_Zlk3+UBr)MCdu;ePV@t3$8QIJ9G2YKXz2TefMn<` z+EJ}MNye$A8|hjIWca={zm6{&8>I>cmL~(Y2%+M_y@kdYIL^1qQ`6c0xMa(gt?Mh_ z7O&S@Jm(qzFa+>yXve-#iW{nKg_z>$;g`N)3OfT{>6m&DtJHM9MCIRH75f3%1={x{ z#{Cus`HE~LSEvFyiP@YIT;3)}EOGb7-XQ9u>Y{2@l>%kvndE~@sC)@)_JzRo^SGouXk5%^fPf_ysUt)31`*a$S zgKq5~XZY1&n>7iWcN$iF+txRV5z}Rz10JBuL-=}+VXA##9!E`UnT0;}_qXHuJMA6g z2=Oh}X}^(%K^f1`Hkt=bSI|UL(X|6JYB_Y)F^IIwIALN#1LXviEtCKuftdtxw)~iR z^nJzkg+bRs|id#up8Ur=G-1@zz8 zNA-fybbpk^lg4-g>wtW!8u~0t#a7^WrUfb(XVA@k7L$3N*{F1undst16RI{H7r{pv zfD}x*4F-l}7QjqUL=(U1VoeV+3$vG+34Bj#+F>;S9jSGf5n2HbLH1z>RpBr(tvFi) z9@#Y<`$r1-BvwPc;{?+|l^j|@!DJ7+7j3}cAeShx>abaSGD^kPKr~iE=dtNSQAstR z5t~r~RExS;VhLHc(1cVkv}+i{)<7oM4bISPj^-C zcc=YJjRp^k_w^Mm-p^diiQvq<7KGPTAaF_Py!F!WFeHrTwL9xVO1Uy$i%lWJp|cmo zZ(i6SG^0eAOEfK`iK$)r+^i}-N$OoZ2|c$YHh-+kj{)B94!bvoG{5Qn@n(&ORG3n4 z+4JAxUR68(GNftQq?hov__aAOK}3%bZ7%sf#j9>+6-OFRZ^HTKjDlo50{g%(|(Ui1b1_$uDw*#AmPw6edQO<`s9SXjx2IE#J9d{g&=~BLV z&cZj|4+w5lmK@yr{Rqa<3js-S{ciNUL{A2a>%scujtw!oh304}@W5;DY1&fT7M}A? zxvijQ3p){=_KSGC`{f|<_XmV1Z*u_a0^dnBbEzI}=)65pWH!2&6Ee{1V}5Eg4Xj7B zCytr#lb&OAO}3|tS#5dOZ^2-@hLbaW;28xDUX43&l37O8-=c8>=b3}9&R1pPaEZ{N z2Z$XUTQqQ_^hjZ1Cg2n@8vt|^aLvU+q+T_SKvjfm+1wJUrK-xtV&xs;b!-xgzi94< zIB5)nH9s1!G+gHFgkCev zIq8nX4NP_jG^aTC&{Et3Vf$S)1AIc#^Hc|(V8(3aboFFv#Jo-s~^;GQka!7&Exix0hq6v5!*SZ zQYc_o>LjjUq3PMG>|sN5Q;$rXRqN#c3Ho(@5&6q~`SLGm{bYTQUVgW(KbymLzwB4& zN9yXOIHK`<&7Vi%rVCSj0wor#FNnmFwz^=6oWh zpBezx{N`%J7k-ae3tVgpAsKAO1VTcPK-?Qy#S53U{b}!iy=&AI$3GPLVITbA1ppxZ zKixHYI+*_ZVY~LF{ecA1cV2JND)ly*QiE_(tk`;AB*6OqkaU0Mq7N3U8?tvF0Bm zohEE2p}kHvx~YjcM}+T5IAB@Y@)g$D9Y*$+)`|}w`>DDa2Cw#0@o^(#cdG@)$dF5> zwTk?WA62SC`qcZ6dPfNo%L8A;@lJ)v-D%=|F8%9n$7&+pH_NXyx59bFW=V}Kd66qOrKMnZFy*P>q$h2H@5 zDwl0DH#DB_M|Lt8Vt{zbQTqcwi}V8li2V1E zSlG+lu7EN$pgRmM==AqBP7(45J{m0o{!z?d_u^+MVQ?oWtiSQf@Y|2P?OooY@zVn! zBm1sU(PYQz%`21yNgG6@X84hD0G-G*thr9erB-3t82qFozWF5M2?7sulPDIpzWEwy z4ChsL31sAS{nd_Xz?IDT#p>`62|-T*(KSOBAz+Ig@RG;6nmx?-k_k_5)aLP78m!~l zE_ew#SH-tC%HKDNd#H1vFbKjAIKXrUCDCUAnZ*22m;{Y-?Uc(+fP$OxnnVKZm?CmP zDknASVa!O=K1}q(Kk^%K=;T?u;tl0#B_@Iy=L~~W?4e-Nq8^*+d6SaPQN>&ZEk6IuYf>&Wk<$Rd}SxVH@NZ+2{PyrfVy|%Z0%GSoJ7t3po1O{*-V7DTGPQxp&7}S z$^HAP9Zk;Udf(tYTRnfOEr+&c#S(8Zs!;m7LuAG7JdZJ?^2 zXuuk9jFbK4NVt04uApDJT-p00r<1trFY8otW-H30+M?{OR2Xnc5cSJ3>TctGi!L)> z@_m9xRd8UKA&7ISkxqcO@Ed!7-Q{EVVQLpxHpcmpBdp>dAvYS}3bV9rM>z*ldDSnYve`;^?(6iI?p#XkdBszAuHm*eSXbLyvp4;1 zIpy!l)n#6IC}Sgb>#wy9JMUp@?+!S6uGH*z->P-m`EH1gT2!K>d?vB;@@fq(4q|u9 zdK%s7v8HXBdJl@9I5?d} zH7Qq>QFSRm({E-}1l)Ha$B4y-pi+?4HtrW^d6q;lg zA0*txDlj74mZ|zY#YCw+JjKLvGeK0-<9-2!q6c?W6J0wvim7Gef4sB?D5~hP1s+vo zr->pu{~DlxLeYgQsyn|09M?gig&?{8>CmvG(S<9kD7gikQiP$2AU^->Ab^5!6+l3* zbOS7?cS;jQaO*7q;RN9(kg&@C97sT4h$fow%u4{m31TmRZQ7|kCFux-BwIlweKCEgt7#EK=FnL7XcK6`_cHD+}x&T069DS zIBYuCN8#&F3pm7ay*emkN-jLONaVn#VhVpfx{#vUuQozT|5Eyhk}Dq$2`Li2_@fan z)4HM_m5>c(L0@ZJDs37)?O3UcW^blmKPD!7e@iFF_*LK1etkvEttXoEEOTM?{2%)! zY4`2ATYa+so6E80g5j73hu*tTRM)RfZpx_9Jbmdzo!wm-Pk-j)&*>EW`{@*xrjG{t zathR)U3pJ`{^Nih`Sli)dTDAGwMIHw1<#<;9cVOqGj;hd`2Tkd!%mWr5D*I%fd>Wv z7=Z@>p#AU1Fb6|pYeREWS~Dj@+kcN^ztnZ@HyBWSZ|faCm-tA?TB;RL6IKM;+-OCu zt1RV{C1D(`4=C6`zdq}bd!Qtx$>o6zb1t1{c-en9ejeTkBYffgnR~wbf`iSgyRicb z!4>k$1r2c-wDa8Gvh|>tvaD)9VJZzu(8DLrvB=d$V#=Q0TF<0@WQ6oj5|JO`L{y?W z8Q~hqCH`J>RLGwObD2sw>xxbiaHiD&NBPZCtT>>Pd*oBHO_Q!A zrc{vJkRi|}5YPi>C+DkF$N4}mqnxq;X?=*{Vt_KP(yY?f*zb-dTRzW}1uCzvFe8FZ z-Hjka8eSs6_^wlbyT&j18PO(c&)dn%sFYt)Vk|Sf$ zZ!hyB$T=|vYegAb<>Uz4ZQLS90U^VyhvU*1>M2W1!`?pT>d^}Kh`Ml9KRvIGDa$5FllVN?prcIz4dN~Z zEP$_KMzv>xg^8Q*#ko3ehg*}piz-)$N8R20fO7m!+Jw7EyLoP>=4~zQ*VWdnB~3sE zSZ$463*=4NZbD_fbG54DL~f+L0jh~Rf4VQU-+Zv03ihDQ)(zDyKa8Wcjb1fazTaA$ zLW31pZel1c7}qwY+UGNX-lsLsoEKPWk_$b_G;l`S>~W+nxKvpy<4dWZB!bkY&fFx^ z1NJZ3lXSk+#Gc~X5jVRA1g+3Q;|m=4j<;)%|A2%|<2L3Mt|iNrC-w%Vn7e2npp0m? z{l=af%%IKIgVd`YGGg97FY4r8+2JwDb79`uY_khrZV7RXxbA5H`x+ufmLSwH zLFZd&NI&;P0E>plVP%<$|;WH+MxBWBi9MGkV7u5%2JKlsP2a=2B5y$xTMM_ugBW z%5Z!qYi+p&JS&zu87I7)S4T66`?K)o?8Q6&Zs!NWt{$Rpez`h2`N&n6AphQH)Ur@#Gu_m#dv zO@!yKU|54W4R()nDgzx(}=mXjBLG;MgPPTuE0tO3sQU@28h_&BX_|MOs-G&ZJ$ z0KCwapf?!6X{*!66@?>fWIh5@3W>|emL80k2Wfn$VW@@oXqU(5hx`%F1)b+Z6cyQ8 zJ}tw*Ycl0AG^Iqqay1W!AZt`-sShv(Aj8b5R#JbY!hDPm%7O7RmH6}M>@|EV zbhM4|_iuuI*?5=uZ&xRu>}ReQKwu=uDpm~bGF>h}?9&XXvl97K`0LjNf;ftT=#)2P zdI{VpzacXJIKe>NALS?VmqD&5LRLWdgjq_myrU|)e_tw_K_u1j2+=AmL|r>uDA2Z0 zgf?dB%%egoav52UY_=B$vK%L08`U6UbF#9hl>t%7Kio?3e|vw zm`PN#el|)X9+?*%1|ObG-4Sr>KmMVDx$tmhd-$BTZH2V)htV~@*|fe8E0qPz2uFVj zNqw6n0g(Zbvuq_Y#zIhCsDB$#648loq*`Pk)0l-l-e|h&RgA%86lPZYX?fyIGu)!C z17}AUoNl%8c?zxAtAa(;1aXFbQ^@DcA=$4K9Sc?2uw_s~*8*U>!=2-uOM@<2c!w9T zh@7X4Fpdt~)V|jWD!*gDH80OU(Fx+R79bL1VjI2ol3~~zvh2SCd}hs&gz*pH^(RUu z8WUw57@tCbkmRC0)RtW<{BTMlCs6ti7G&QuP=he#?S;O32PY| zHn3{KQ%Yn>+u*#&cGZ;Tz7bt*DP5a{lq!!4P}Niw&S8kJ?25jQ7ABJIJvYHL7v;7G&G_LubOycb9 z;Vr;qZdT9DrK1}*FLU|W8PH<4fHkc&Z1nd@dxFtO z)Se$OmH;==RB#FM5JJ#%Am7uWHHB<$0zdoFWXCmwN)rH{H3sljkO3b_IShuq|2hSm zyLD&Z=9+ZO^YdOLaQ$@Xb`PP!C>=?vI%xJ@4t>&K$++@2Nt~aB$*ex0Fy*!;*xpfx zPqWRY%j-To$|~!`02+I;3rCdIrwP+xt~FHdOs2#+-C46DC9zl1rpvb|K-2V@I+co9Ec~xRWWvX?0AAahh+xpMqdf zMlRE1zbn?&+Pm;cH zcdA!*dTJd%_&0}EF(|~wE_vDQPK>YS(n`2zb(Z?Kkte}zUS=#q_ZPd}sYHDL z-sU}+Dp}~1*JNiu&2%O#RL|-a)}BZq5M*p4>Mj1sw^5sv+PvH4(yG<2f<`Ypv9n5H zf045rxI6K>ZyK49jqPC(i=(Q)|6S+B{>p^s-7|IC?$cb{O+Uw*SCi$#HU&P zt%=e{x$SL5^rkA>_qDsH$|kWinqXGoEK}}~{=d#4h}20z-CzI!5G()yH2Pjy&zyIs4y-7#mih7n~TV>BDqw^=sOJK&M1T%QqGe@ zm4z^86=&h{1n>n5x~%kW@c$CR^)5FqVtBaAV1Y&dU`iO|73EoGY3Y9J|M47XjP_ML zM}Qd03RiIwJBdUvC1kx5RE#Az;ZVY|AepSO$Sg|vp~+|WBL{AmIhKe2(mRK^sBR(3 zO?6ljP~xDz2*N&5w``FsrY{(ZV&d7m@yVS@s~f}%ibrz(qwi44?-F4Z!>wW5x8#_y zYiGOEDdJWi-(l|GHfwj-NysAz=;UIM;B(`CkK%-9JTDNtN1q?k4YH{iKd^UB7Y&gz(Yb9^)8XS=6ZlKf-PT(V>W5t?>~=4y!K4IDUAbXn+P@`#p$nHHLxg7perba4{6$VP6)hu( zp`QRVkm@eUvNfI~iej~cK3G5xI#`wTJVnt*5^q$=7R-vDx-)6&U22LjxLjm3j=xU+ z?DpRXW9UIZr9^oH(^pnn4m#O3e3>^$hXbiP_;Jz}0aO}_x&T8_QoMGJ{|iamaqCAB zja)n70=&?uRk8ywxjS`7FHQQh9-466vA{Zk<^bc&L7Es$BqRunFTv!HG_bN@O`k!& zbL!V6e9;$UVKF74$Yu%fF;qx+Ct~T2w+O6gJw4bdK7p0C;e8TBW1Y=Ps~nvKxLjFLYq*#eg>Kv3V{X8Ph7 z{XXw78M@8f`$^XnX7}+W51672f-lu9S%h8cdzmiuooDVO`9mLFxXE|tOXHhBrji*7 z6ZPE2z$1Ra{rD|$d;zb^Mc`Rq0u>WpV$DMcD<{)VMRp6;02CmNgzG5S(}xY&7(L3x zstIgbKcE?8DoLd!;nGBRDtf{ZM#I8jHiu7c-<0kQ!$PAAfH(LZ=Te+5DYHNqa zQDx3)$dZ-4s3u78ob4g+>)!Z9`kWH~sgR?L5FpZJehPg@t1EqBk6}>m2;W7uEukWs z?W9s@%%2r>i$(Jj@n=gq4o0w41d;1#`>NWKMd}jGdJRoA0-lMt;wr zGaHTKgwJF9;v^lX9)kK&`YQ6n1a)CgQ$48%Jmfd{h^EP?!l-1twZP5thiEpFDx*`QINKVWYzgC>S5z3z}!hvpJMV~;WJ<)Y}At;YVh*zS#{CWF`C#Y!@s z?&MSR)xq8SDS352i$ljiV>nfWB>XcX-ksSn0>m#TOk3#&K-)6=bG+&L!GHOB+~w;Oed*KFiSLZuf_t=0p*wQ&!n^5c#U2|!BbgvZ zYy=&SSIR#KB_EX5jA!1a^JfAz^G1B6$Bomn5tPA+30F#4{}0CxV@7k7EKeK zWt5SUe5^2XL?2#?QCrxyvrp-C`JtaH@~+yATLO! zJW@CftX)fNj zF-R!BfZEyZQz@SUMyo+u!uh@yolrb7q7P?oyLYr=bjo~O+$$KqQhq$*6;br(0;JSj ztlc^%wr6X;WDK)v?JmC=r<)nbA@)_IZ}#k+%-0d?wu(L zJ!fMa^5TM0)G$dZU!i0)Vu};nAB*bnF_;80Fejl^hL!y-53jfy0*z8YP-Y&DIASWq1lT``Oil=$q~F$JCIQcqC{%@PAy$#TLitd9%_J4=02<^X z&j*>eB20woi}3iHPvPD`wrtxlf(&Wia7e!Y*U=0IN=LkW6dv<$;_>}Y8~P&>ZH4Zz z<9Vs01*%;dZDO29JK4q-xS&dGGty@$jaG8!Qf(S0vNL+~1vpy^DRJr)Hcmx(*O8MwStcp-qxF``J*m8(-^vmBF$x0UniP%`bJs55mSar%rh+KI z>er0GaN#ImFgDe_%ijx7KW}zCsXT$-A<^J5YY_coh+owYoI{1$mUmm}jY~+=;~8xX zQvptGgxy#)j;p}&T^fYH#oD+}Njq^T#fxY*+F%hv7zQkAQ!F2OjgNtX3ASf6U{yiU zhdSf{pkryzwmuL%5$+oj8KWi%abWtRCJ5Ne5fweX8VEz<$dAy3jRHqw=q&^3mEe}B znTiTqRpM2kt;Vz}Qs5}RP=0DaQjo-c(j{eDUC>`Z2J?ifP>#?K{bL^Lp~XP4;+Cy( zVz3YvaNODIFWsxo2#e0@+6h0)mz3!M7?$RB2(~*X6L}-<^R{nEav%RRui2>NZmwIma_zJcAZgCya?WWlhs(rfPO8Wg+k1a$R zW=BQIz}tk7e1VW0q3qQaY&){F)83?KqhRB|@sL-0NU1g<0sfaoVH+Flu^>8}mbRpb z%7=kZefg5M(n1xD!*#yM0BY9Au=Q13>LO&6=vjMcZE_2SY|GxT1aT9lR(Q2?Ci;!k zm^=%3Xv9j6Dt7VoI~EMpp+hmei&J=GKmO1q9;e5IDoH=;URPzG#9gtYxVasjZ#T4t1xc%J9nW6#x2 zflc9_^tGWS$@`lVsIhhxvp7yre4;RuXYf!^U~>0re5B;olGB7AAr^nHn_OGx13TxT z8J*0@{*0F82CYs!_i=QxC``@wllez{@}NZu6=ut=Hq3GHq-tpLhMi9SYQds-%XFlk z(%`@2n}DNO_lAN=A2(7Gu=665H`@8@H#QE7?I)>;8BH>t{L_2%6n1pNrOjFibpe<- z*aKV*M^k)ea>-SMY}@?EWesQf{FWXBUCF+W*ud2VI-~!gejJ^-sez8`JaXKJUx6-l zi64+>S&2}n?2i28d_ts+_c~^SdS8z3Rze%sogKp8>&WscCFJ*k(Cd(0( z9^#sJy&8J}zJVFuzdZp~49N7(j8u&pBYx+Ejyr6`M;GhSRLJ)Y&gOi$-T8vCY1GA#hfIW-E>Z#e+ZLKfgyUuAzRo zjpI#e$sfiN#lu4vdFXKkYS0Dhkp}BI9a}pc!yddX-qpj;beztNM2r}x{_ghmRQ4`V z^WpT6?H9-Rk@L4<|tXMG`UKZ@G{YJRl&N|FNz9uX^HN<-~vE z32S=F?{gr1<;w3qNOg!3OIiXGS$I&}wp~EO6s&Pq%TXMV(vR(tC-1jtUtGBLIG%UD zYORWva)-l6F+E0&+&xdNHf`P8wNIC>^S$oq=;yD;VyFkw_lKB%%$;kg&773`lQjB- z;mQ?|q8Z{Mn`wR!iE$tqd6;QN4)yD>Or`N_OlSWHgXV6~z@=Ec4~|{;tY#1K4{>&s z#;0V0BOK)ni$CrgHl{ZROM3R$t7R$3f;uH}3+GGZyfH>xLYPu+^zrp-jopLN9k?QM zQT#x|%gMpZ$--k-_1;dub=Ec7#+!l+w>m11XCBX3)P{B#51Q9C80 zWhFyFP(g%zahQ)bIvztjK&*dQsYuZt^Fg_s9JWw=kgCy4-iamrb&y(U^bf%cFbAF;H6R>Dq4kx{DkH!(dP13yLU=KN2>!Fe%f zW8W9vbX&{QZ)PxX%1Z{{m^_CVE4rsh`&!Z)!@y{%zTI&1lcA9x(sq$75lW6UT zIVg3aPQam1H`9i2(fihz)r5KU4usd3rF6B{;cd;t0qS#!}rIqResI^2CJN)*22>;*^b2U(C!2SO8pZ2<>em(^GWVu0B1- z8>WTSl>$Jwn35<^Wxu#cox%!f?TMM(pxOO%OnH=K(8~ejv4+zXOo!E^>14p}K0tVb zGXtS4gz+-`VK31pZE`I`F4>cgqkZW&Mu`CCloJRzbwgqRc*qMe^&4#V#0lmMRc@%W zA!*}S&~-7@F8ptM7EMctNmXd&JzfyP8iq}3tKib2P4Hda@zq^Ca8Oq=_fV5QswE@5 zUmFGD?i764fK$n9R?JmF<|n`@sz}iYK*GJ9r?9BmB}qtisX42-`?`G(o|YrNU`pgv!9ZWPnKfp@1vPHDrgZsMW%b zOr#2U_<>wQk%H8bGIvzvj;@H=({rqI$I34#G)yZCNCfC|9efkJ%VGGd&X5#*N^8b3 zW*XeE(aIBgY_=8K1Wa&<-~EMtbjuqaCIlvop;vn6dSh1FR)?>(5TU)Y?Qlzvv9zf> z0BVWs*7aZ^NFqi6ba?X${!*@+dHxZX6ic=mBGU14fdTQU+N%z^iZ8$Fai5#%Uauwq zI5F0+*D{@Twt1#MTB!fXXk(yOj3>nxSIN-dL&jRRrI2Mb1o6c)Mv!FOl~e0o>fLVC zJPVQiqUsidp`S^jiWI<{2LqB){L;hggriz#TaL~L-_eGM#4gT&S1x3=tIRPFN2|8n z3M6MXv5x4;vh!*0Ra;Vv*teR~rHR54Zk9Yo^vu)_s**20ETW|U?^tapF88l`a zV<={$BVGV7b~)9}hXTHE<|$s(QSlW+je3it3-Zzk0pS{9-{LtMz%P$*;Aeq8&~-tl z<-G(pa{JzR1o5dmVU6>Pl~RYZ%GidcBfsMta#kfX&n&`ESs8W99TZ_v9|T-cLr&>{ zUy9b}xf4}oIbmpM?{(NyN0pAGOB%dhA92`fX8%b0+QgKAblq_h;MTQB(_(NCLi6*` z{kYr3RD>c;*o-9AZkmSS5)cul2NLbG9UlY%$K+S}kH}Hr$JPP5vrakOcn#3^JW1O6H zFG`j@NZ8Sdb8I>Rio*PEX9cF6*F%vBuO3gg|4*Q}{RChBu&>p>N7u7A_>N`R>qL6P z20mlu{XA|+=`U1<4|^NWD}sLysIk9a0j|8smIJ;sDID?tHlY5$nbg_P&cqO4@~@2g zUk$pp{rWJ9&q{3?lYliS`H8d^SWLN4%K30G9TvJ%1RuCGz?4Zd{v2Q`%3J#NF?o4Q zt<<2?VF9}u_QR^pDfh+9b+^%8EHVG>>;l}&!M^}U}zV~S+>jb$y=efgi&kX zw)AP=E;omVo5%gY$SFe9eY800(~(05XF7W5b*_l(eyzq{P!6p?#Bd#RkFWU4TygrtIjjgpD; z^Ynu+%+rC1N|{IMXgl83FIpB6$W|Cj0GhW`UiifY(-K-W>hPnjJ;QQcb$sSxU$kEV zGUpqSdMH)+`)jG)m%yJ;-2q<}6fdY#2C-y(@s2G;cxq^n_h%+8Pr6Czqd|bE9+Kw( zpWlcvpyVM%#HsvLyT_cc11)J2q4UcZeGFTvI-kd?xn&Uqmx|M{jK23a+C!~OJaXeB zgdWGzDay89NrFhGgT`rcX)Ki{eSQ05OobaCAc6dPSSYt^dos9#sbA#gU>{v{m2_66Peynl8d;UwnoV+hw~;e zbi^MK=el5!Mx6(7k9AT2FsSQXnvG%RAiQ(M8v#GsiTYfU!j=3TsYKL;i=B9R6CuY5 zh}&5jhrHyT#}gjx?kQdxmf^xPah3Lb1%ot5+LtQfGcsI{f)J^U#of^GIFcr`Ibh{1 zrs+bIAm_?|%UV9!=Q;|(Gw^X~JD2Qy(V4;E35T?SKtQ3b&6+LjP z`$zMF6WfYu>rIg8IH9yqub3a^vT&NcrSV&A2zJlW>r+nTf72^OxiZwu z)<+MD7V6sXRFi8Xu|UQ|-jsQ6P(sAKK3ef$=^>UVW5RC$b7cNS<-}29wPx=Krn#9r zwhtH*nz?QjP)eSf6+tfylAWryp7|})=_V)_=NQ))Q+Jt@7{yn7VPKw0O8x5z#26jl z?QzVjdqlx_()c2cdgNAztX}?(R9k+L8mnc&_O^0q7q{Ahw>*PELjt;NIMfTKa*zh8 zg1XR&Q(-b_P`5Rs6dTQvtDAZwBfFqukrI!m{zcD)bqlXFC`)aq`c@RFY)3L#m|mXk z7Sz1fr~O*v0Q9C#!I5n)MaT`30)MFBQ=GIA8^xpuP9dm~a_hyk10r~A3C?SC`?7(|C{4*y0ammdqH&XoAMjC`{AL!r&IsT*J8>@+pdvJfH64H;6b$HM64Sc^fB##Ax9PDqTcFCL7E zUox3sBBty|Dpxc$7}tPG()6OvufAZ0LA4Z0ogaPJSD)#*U`^#EuJ)_|{+qOUeCKVJ z6&WWyP-h&q%hh%9P>Ez1itxOqF*Rf@nh>#d*PXxp9}HN{^H1(rRgk6P3F@)L*6wd` zj@&br+D-9CRauY{_*xaNwjHt5(aCq-A&u9-v)kxFhPN{XX?4eLI(;X)vS^S<3ADI- zTcBa6$Wv-VU#n9H0;I})^fmL8;kkMF_VTa+%A*6<+0$k~o=y0&SY0%TiW3BA^Z>~ty+zYPL1GD%C^ zWEj_lTP{?V9mlP5$18-_UItw#*r%Ly&Q$)A36b7SM;d>ey1R{V#$t5yE$isp$Nf9b zA=*GXeJ{uWcKv6(x8E_bO=6D?)gF>!WOjlrbW1fj{Usyt(I?jP^dD39E~2&~z;`Zh zAp`=V`hV++|EZ$&-xB$m{kj;+S51%6I8ZfwS`mRIGDiuFCIFkjW~?ra`(C+@RGmEW z#~8i3nv2`Vw*6yYD&^QMr>J7DSe3#=_S2-j8GGBa9ShcL&z5eV_}3%EC7|3ZLDwtl1Jpj~xI5K; zY|dH5@v>T}<^v{KtoIn8f=(VLEFl044i$RAG?|VAj7R(1s|urLBgzZ=fa#(07P91X zXDf6J@|wbp0ss9D;Go~V1RVlLXi`Ku+o8!v9(%mV6s~lOiFCQ+k^Y_+t}|ak+fDwX zTrQIxFlNb6mH@sI|6zQaR{+X{!3fMoFU?sTuA7~u*$?ZVvs$zfko=v;WtGCD{2j?e zQiZCWnAsb}#|co|nmF_#Bk^UWi8GwArEnXtUi*+@E0%aQ%J%A^jYFQbe73)pG--d=2f(d~ zzyHYtV95BKUb7`yBA4m>K^xRX7G5MjE=g+_S|USFrB!yL{_aHZPb!w$lg9E^g%d!O zxHJCDEyk1#C(#2E)W`xDScZ8z`|byO0k6;A*k~`FsBCS`+pd$Cb0y8ChHs7M%7O}i zzB-o{A-IxVQ9cFgfxXm3-~9_Ohf+qr0SVJhczERNQU0X2w3FD)GLbXw&iptWYi8!M z2Bm8<<4h;a235PG@Yu&Pe<}_0kOoA>P z(`3495n>)MegD$$aSAOLy6`U?wuJaUh2kAY2nj(lw36yQ67WY-IU-@smlzMBt@bB> zvAHFY#lRJiP|%s9c;ypiI90Y>jSj?IkYvT8EHi$*EQ?0W;SVQsxdPXoo1b|%EKEoR zxa#*{$FjLSG}N;HUQzD7He<-{x7b1KU1x(BeTl3vY=Ix|4w9+tfv1w@-Csb_QDqYb zRjYy#W38MHxk~?a6__nZvWgETM#Hzc8a8vdv5K^Cz~>D+_uA%O|gv+};QP1mFK=>XH5tJev& zE?8&a+plli7yC8QGtH;H3vc7AJw#{5P%r;-SZ#?{bkH1PZ%K}!3l(@@27l@>y$X$~ z^v(~^*cU*!AC{lv5)~KP=q*=38J`Mf{>m-JrLuj~g&ga!mJB8}j6B+h_arQQu?OW) zHKaeOoP{)hDuRll`s`t6TcJNyT1`yYr;4rl(cqX4-C`1;HXecE7#(gCU<`$3m_oy^ zrmH|h?}EK_?c`rhnO)v?od9bXRza&AMqR+V^%2PsX`wB9vE^~=qX%3i-(rsq+pcda8qT2pbT$|liB5Mkk$b^Z+(yFD(co!KF{e8gETWP8zCJ^7UYF$cH)Rojab zb62|gBkfMc1PVFE*F49Dz*_w>r9W107HylhIPxjAyu~`QgR1GFZGq^4s^FLAx9QC2 zTrz)a_scR~1J5PT8sP)*#DU=8|f}MqD;R*meseP7nJCpDu1R9?CfTBy9&t z^Vvr8F76Vq+tNtQMEI4w-8x0{bQ{fR(CA+rdxM9{RNa1T{OxCaH7D<`h=0Y$o9@tZ z>+SEZXjbx0z0q#HQJ**1HCu1D1sjDJh)jXe%&I|=NqqY-l$%;iv0PX(g%eq#QZ&d?eRZ!$ zQWp0P6v=|@u2LN3ylsMg8Qt?n`OJKq=C$_(zRb+HEg*#rtk&v{u2N#NLar=65Gv`M zPMQ=Sa2oGp0ViN9!(*=7usJUj7HicXLrTlW>o<1NHs^&)j@Iq#b0AC(noX;N;6k!j zK>+C0fiSoXQ1@ue%yQt53dI)B=8^@ zN+N&?YOt6^D8o;~ZRCQ>Zkv3X`2|es0C>(U6E+*h5Gu_!m>v7ZNTZ6?UnSgBfYQ`H zw<}{gqTNma|Ged4seYXLZflgu!WG)$hi_da;&CCla8H*2>hi5l(%AC+1L1VrGO(t@ z;Kdzk+xb1VT9x4twi?`1j)Oyt9tOC&wv~BkeVZ0^kkXqR+AXoU<6D$*>*4^Z>e^1I)#7S6KOjcD(~S>Xbhox!nyDj zPAmQ!@8kL*zb)o#?<@vSzlC$Y`{DWXG=>Z`9A87MM3qJ`G3jT4BNk*v7Og(Z*-pV?D9!f;Eo|%wrX&Wx;TejD=tQAiVJ>8jvs}$`H|` z-Tk#th~|N3`)rPA;ulm4XiQwD`Kftm_=Cg?vvmbw9d)%!^|5`o*CEUy^dyJ)L zFqH7lPT)ebzLiNKYfOZVr!guATf0Kq&ENj&Lqu@8HAf<+J99)T> z^E%}^ehDHetvZn=93C-n51)$r#imFj%0!QV7K+E2LBFjMu;&zyizAUU zq6pEMpRX|n5j`JgWo+6eHIHe#|sZNzd^8=!HZ-llfW-MRhoS2X8Es>2Gz1Q1N=&Ea}0-i8pA!v808o7T@Znfp-Y$0XZeZ= zWrYwyN9CAZj+E|eC~@BItD)azqTp-$Ys|B_f!poer9m)MAYGtMl=3#xATWhgHxzfJ zrzfwy+`pwKM}2LmJ-F;>XSt1#LpapYZ(NRh*~WorT&7P@u-r+`#SmLa(&&3zjUZ9X zh>d@2suiwMhGv?&R-&bVo!Ra-xYc)1om;?`a5B4{TPBM(h5f3v!ZT~H_%-eQ_DbIJ zwmkhu0av&ES$tu#zN&EQPorEx_QId0F)8w>sQgGLL@}WPl>8Nu`1!h_bK&$8Bp8=h6Z+ zS8KLaqh_=)XBu*(U_J5LNwDciwUV2Wp45Iu+D?`5%q~6$HxM$+@1;4rB)2HJ{ z6dK^i!8Q~xGm(%5a7Myd=HyyK+1nXEh57R^`wONvz_i5rlfdbNFft z_BSq-3h^zEeF{_>i2W8?~uh81L!4k}RZQRARi^0THfTzw&5R?l?XHFxsJ&S)l z${MQ1h)3wBk{DEdn;`^FX+dpTUQ5)a^mIW6K}x!{g#J&ONYI_%S@FWrj|EI?$!X}X z%yUg*pI_5c7Aa1TKQCH^-n=m#^@%h(psH|%PBTy3`6FJhR%VE_L*wFSwPf7%sd2-RqTB`TcG#+MDVvZn_#1Z>KeCiuW)|Ed=}N({tPZ zp4k6`GDe7;D5Q1%m1Uv#j z3MrO}M>kLSh}a#=`=UwKZCCyQC|_|*C}A-@w_DgOQdJ;}+1{Rc>vW9O&xUWGBUm|d z!18VlIMbJ}_0YY3Cw%tq!2vU$OZU7EId36SVp-a7NLNAzJMu>CtY=&^M4CKuV%nxq z+Ju~wWne?SAxBcO5<^M+m0i8B-i_$Z)>HBX=S6^Vj*rCBh1eC}@IA069~yq5HI2Yd z>2&}`bQVL!60Vd*7`@zFe?%BXHX=m9FglUdvUk90p;cVpMbwXpcid zTIB&HRFCD1o{pm{{8cD0c>+O3WRE|zU<<~>QIKZw`FVx}vPjk!eH!(O$H*uuz7w0I z+wtr0UD_Qs52qS8lZ!vrvRYLUn<8?{CJ5pnFI-|Gaa2&yUhu|EZaA~?w1eq-V-;ba zX?hw6_ySVm7@MI8*%0~{g1m8~v})TP6`_^GqGrpeJi9;*q4?0PsqFZ%RMR*Ez_aDf zMUl_=euldmyP5!7K4;kS;386GEvee8uXSk%mMs3yT>xwJwEo+@xUI zlfs!4NpwSF1J71`&n*tbAf3up)m!C2b{b7f@!=f6-K40XO)hN-h!5YWFG&j7f(%Rgy(iPp} zSdEFbdF+gt<R6_^4k|J1A6km@f znC=?5M(tFydJc|UMKjdWkIi0wPEuYK{3J?r;6B~_v0=bLkq$9nP}XifdhO;;qDOfS z`hf*xmvlLC;at{O$V!*l51bQ(FGQkm_B#Ert=k8kNvsR=T#l=$Es7!^8Hv`_7S{kW0|7Yhbrr4U#YO0)>s zE+D*xBtBy-_mr}iK6@SRi*JvS0nYlW3@oWatv%p$vf$f`S9MpKjY{HBXn^_}7k#8Pw1FD+8zT3ihIknR=t20zEELmzH@x3K882wNCBi*WCH z(!gEN$f*+V%mgVtDXkc8J9t^tiUe&6o%^0h5=8W0?e%`EY7cvwkZ)l^u*SGEG#Qar zYa4d3PH48|8fF5{GrpU02TN*_iP5C0YXTotrqyB)mMXhdG> zkSVfR8_s4_v9z*Id6-~=H^zpafp+F+_W!@${*6>lU;+aAmel>9ZdX%) zt0~~8ppla^z|h!P&fd<*#@^W4(#~A@pF8yb>y9A6-05Err#O~Qd!r8>zM{1yR?9U^ z39)O{RIxGe)9r~5t zFUoGSj=rA9`8ZFX2)th1?Hw0{mAf3i{8t=uD;KAb1m}s$2LRlmd??MJ^8Nc)^agUF zNqSuKdX3dcr_7uBeLgN!#$p28aSfSs0Wh_*o!e3|(1)=-;89)JOo>sCGf^Gc@F+cxdUP_}jt6&r%8*?I+BDs{WgfsKH4pSTQg%07ZfCF7%vA#P5SaAzHu7_lW>LJq`|NOxTQNb4 z(ssf1m!^ntE-JwoqXjWOQesl3?Iuid-g0OU_HGxGP=My(wz8a<-3ki-{x~k^V+BAW zmTiBotG+S1SHNQ+5$1lYE6LVr67c(jpae!~8y8EGUZ6)612pC(Q#AgL;RoX`4xp<}PFeQj0Br=Nd{NWouMcWwjO2_07fZ<+Pl?XW=} zPL{tfolfB_Y$&&=6c4&!2io`v%AoE+9j3}v=`5AI*$=51VML(7kbs5RM2{|iFHlw7 zIlGh(=wW)^3}f7NDzl6f@>e83bG(_bla#e_MlE1l5-Eg*!haG%2|8>ZX}u!Jtkj5F zUyA-wBri&PUqGO#i5eK2XCy$Ch}2hUZU0-B)hhP+M!IOOr9u|qA|zxu+ti!7$PnIh z?DseXw#M~h3KSg{O-i?~Vk_m;Ua=$awjxG_5r#=SkEDQFoQ{INQ7EFPM`s^6fc+V3 z@(C**3OmcD&63HGQq-xs*iyk|GiuEokt#5%G_Ure{8vWExPi!EkT{_~dEN?LSIs$J zSZ3NRl*>ThLeY$Tfr2qeg7@`mZ-90!T1W_VUBsJ#&zlYxViK0}Vb+v1Mc zwE~`;29hup3lR^P+6A(?vNqj9jg!wh9eBdvVD)lWf9r6Jbiza&qYxM2wfwxhe#o_G7?f?;8v>OJnwf!%yk$2foKWm9Ag{8c4~a-zOl} zC+8L2s`gcF)0QlRTz;9@y!)DSqeAkB4ta6mYV1KE>Ulk4HpuzA8_X}KAhZ%Lntjqg zJW#iHOxD)R>ca$1k1@OA!eM^c3`w)*RBOzGQ$jm)jz7zJRSTL4IpqZaO=E6fYuA(sWyihGI#%J z0;q|kH>uDWEjj{BC|y#Kg_W9|BHNK`j2h!oCzQB=hyv$3hXfKPWtJYj;ya&Ldj7J5 zVz2&zEn&zn2AB}^C^2H<6XSr{fhC80@Jzbwf7Sr^+)T1ETWE0_I;~%c1gT6$^DbeO z?KPC0PaGtrfj@5EAO)fKCg&!=^g~GnC%PW^!A#FFPnKqge2IY3cmGN%!#*Jou{amx z9ss0VCQhl`90nzI-bC+>9*1r^huNB%>PJL5txB6#PGdAXK92q9ZBM)C)^kX5GCeBKQ*qA6UB}^4LOAK(umswCj8H$o+MZ)4z2r}8tIeLLG$$b1)||q`aBb@c zB$`LFzHrevCov(g>sU+uE)bGAvC9%xwowf>ilDddUw9Gc{>9yT?>*Cnb5Txu}WbxWPPaf&~tJuVOe+3#`T4FUDG+I{Ue22J90kVUoCcr4HvlR zg)$PQeoYB(iLX`dyjKZO{8<;3E+Zpar*32mIgr`aJr=GTT^%L>DYd|;VmEU|qx!>5 z^7pjx;l(oT^xG`3V6gNj;|QA7A4N<<>`zp&VUeZw!)oGJ-ICJn>p*MX{HPXyFE|gS0XsJpHyI8o3%oD zsm{_7ij?fF4ShP*OuL#@MZ#RJz-hMblDA>aYQbwEYPehVy%RM&ejYOttv21tr1&(g z*V6_X&rme7EdL(Rv=43ELNM>bn|}S`$VwJnCwTNq(d=JGuKrD;#lMVP-7ZyHfh`?T zUvWB~q#pBv1NLA}QXTl8IBmuc&cyU@cY-2mARw9lf7O(-sg0?zvx)`4)X?N#MHKFb z(;nO7)BBGK?gesYgWGQw5q+B>(fVPA0D0ZY*~Z2>ls1?>Ze*f}M$O9C$5!IO&$@7; zbKM2{MqurfoUJEMkA$Zw_G}-|=ZPsYcm8jQ7IuOyJ(u;ta&~O~+$Nmp={jTltoBfG z6G{tG&>z=fA<@I8GepxO1Q zHa@~vnB^<^z;AJJVs5hLv~?pvircR5@uD&cLtac;aq{=^uNx$9;+Hf}*ZXU8z`Mw8 zAw6z3A_)5Nh3ZG*{8_npiI0bIxCHng2ILC7c4+HzJ zyEH{4a0Q;k8mrDlT0t^$n92x>kyLOh=Z#jsl(@i3aMZNysV zQTtR(fr-pzDus)#Q+iJzFDXuRI_ueiiVWL$_CEKh(l96^c|i!s&=1tTgL4gJ9{rQi z9(qN&HVALmjy`{Vy$LJ>L!sso$dZ|zzk$x%Byfe%;>F}r{pjVy807Nog_S;Y3O?+V zGkdZ9`2nHQHO7ZZEVlooqDK>$_1@ z8Pl9KXp6ExJO?1;j(gT4JSbi{JQ20oVAXN(Cr|`KE04(6jK2ooiiEqt+f7x-_r{6| zc=QMxA;oM#B;N)02nl2XedYmCK=9BYo(sLxKorclvK?5yqXw((cnP1}Oy}EidS~|b z+P`m=!-E95Po9a4%M50;W7wgNqZZ6dl`(pkh;Ul2<6Ipu z?)~e+>G>W|s4yk0Z19H2A<#@R1@32Xor?hBh@a`NPC`3!WJG==Q zW}`u{8sHO4gi5HyU}ZJvr z6+yc&ClW*(zgcA4V*Q>6eh7g`?CEY<-duUAkwM`}+%1A*#>!_w>4 zb^iE3c}HXrh8lizilfVA&zwc40C%6QksHwovtNj#XArY`Jc9#mgh7{5b2JzvNr_?( z7iS}p?v#;3A6_zHaW=qxYBMzTFY&@*gqB-qRuNWWGbHX!soy~?SrbiZPjl%IGn{oO za%qOR^&O|cgrvRK#Ss*+ziF8l7)=sXH_zE4#@kwsP9Dz0rNgsgDq_v(?C(M#y%KB< zaSvhBcUwZ1dMr|jlsasSqJm>f*4T*1|lpp5B9SrCa2}e zX+G8Yp}Ztid4P$Kng^4UwONQ#sf{OzEe274n{g8`NfzaR4*^Z6!~Bl8W>nOe%mn0< z`ulj|Q0s8o&PZMJUN%O;fk~jdphkrDI$VOc({ms$4$gzSJ=qXFg^dIo2q+$qlt-ZU zeX<6giZSIan`9lST&KTN3{>_B*{=}j8A*#l1j?uGy( zWiF$=yeS-_-t2Ru)6?)nu0>i(4Z|V)Tv7#SAy!_QttKm|476&DiJ1+5kdLxz%-A=g z+v9V)0($u9etNHNE^a+DZ)bOxcyJpl- zL~IpTLJzM`J90FFOJ_;k0vs)1hd&ppG%Y2k!xt!ZwSw1NUaX5-ZmMryxRk-v=R=U( zMv9yiS8a?us*J+Cs$4S$P2(xR?`1{s!8aZZ+QWjGB)`GYH1T@rJG%ac@E4dlhi5q$ z!clH(Oa?l?{|{&H6r5YwcIn1;vSQn|ZQHiFV%zqL-q=o7vSQn|Z9ARs|9jW2?p?bN z`s6v8Rr74ldd7W?dyKEI+oP8C?n?y!^2Bp{2AAdYZGDQ?Y%qwqt7nM*b;L`f@89W6 z-F5cLBgwzl?qMM#gEG@Z#2_xCfJs1IHH-=g>N}pNiN7W=1M2(<*mWO@^cDF0{Q?s; zpTC5_-{}>CM;;GveEpZLW}H)N6=&r_FJR9-{F2NbTX=?2S#{Fq7LAkv+H020XL+l1 zTY~Q_c#pKh^5%jFet>W*u}@w37oYE!9k#2?LyqD`B|}(Nc@ByFUx50K@6KP?--WVs z)FY_&V5`Wcrrk!;uOpz}W~M0mBbKb$S&%&uc`E?@G`!W}DY4%Cs&H+AEhvJe&w3J? zifC8PFu(|0g$Wf*PDt*es_<10I!RJ!b{fnb6#)G(vC*#L#aYzKTD%ogJU7K~&HXt@ z1y%e=cjKH`o-iQ1JzvDGMdGp9?H%~)yBc-lHm?UFmeFr0=5NJ;>oH#RRTLG{6fOsq z@@@i;?42|;`h<~{ zr=idj@cFSR&o;9QHD{PnJ&@LVDvn_q?K9`!R@n7 z$a%AR_-Q)VT?TJ)!|bo>m~uiZY_~<8Pv71kA7u?TA_71+VSSUQP`9;l;aUV>__NR6 z@2JRmAAl)HMR1BTpaX+PA*KM4R3(OTX*6kTeI!vkAOJ1| z5BE{&%Ev?)0YqiHoDr6oAL}RKX`oPfV^TQWi;@FsjQRuJ`F$raAgP~z6>IH&$4j_* zNz?0XleX7x^x@T4i}LQzd#L(0?9UTeY~x!8RT|1g2JT56FxAQPvN;6yX^8BWSmvVo ze;b9Ak&ak})fqkiXgpa`BO40u&5Kr<_Wq*unq7A(3b|5aN?EdVSx1xM?kd!aYPQa; z?!ln;)?)LP$Wn2>VNm+BN(skX$RMWojOcvLNJfxAowt6^ZOF3eheDG?!t=zd+7(wG zzFH_O;_H%|!j$Zyd`cB=HnU`89!IOj+n5^^t0IO4Y&8$w(%kpqVoJ?-O)y zmXY+rC7*CRsLL^!%npere$@Y5`%Ps;aCRdn!G(%Hx2$ z^0Paw2L|(>RJAW;)l}Mfp1H%CcW{Fv)^RJ<3F^6N^J8H6Cds}QCVhk!HBD0}q1VB) z_U2_t6?+5>Z>=WzHrBjdaVPb%+cRFBulwK&h`fFCX=|ZujpOx=)fGD2daScU_oSw8 z=fA6*+#q*X_3cwBgHz9S0)+SF*VX{_ty3(g;un!!o8_a~`>l=^#@`=z&4F)^pXasL z2L8U^Z|CpJ{#DPlDz)#%2E8q$KEAN;=Q=C?WvzANC;&ha-PCGS5@U8K+s~A`=$oWE zy7L?4e;ugL|3v_7!TqhK^3P$t{q{%x`B2xT z1GS`Z+94O!Lk>$V*+$|GoP~uOQCddEEsO!g=YDs#{jF3t4C0rynOst zUYAY&RB<$RxWqLZ2y#?J(;6r}=96gpP;i8oLH|pE!b%9^ze$UF_raTpKk?xreKTD+ zb&ixX2Eatt+j<0lxUh$|RwJNdj5F4neDcSI@ngXw#paV<&cb8gb|W`L(1r|xVKC;KCl^%9{k=xO@yX_LgAu(v|)V#@uO`$C#FM z<2&tCWG~AoLO2)jhRZg4t?pr&gO9gVbu;o|KeD|oP!wUTZ?{c#+t*5{c^#Yl4UE9TU-)ArwF|TYzj9Fd)62hHvbe1z&7O zLqbDLk3Uk-WEU0?y({WBO`hUys4YZioW=I(IF}@QX|o8$btgiP@p?Bhd6H28oX{&o zX%Y7a&Jkw(aMrGbV8MO;nf^?VsMS5Z{jxi+^?F{(R}dKJj(CErj6km414KJLw*gZD zB4c$X4;!%vgX?ccl0ST7@tbaEqTX*{!QWZ=1U(9Uki}h+`0AWQshcPY?So=j7e*t3 zI;Txhf1Oh1AYko<>6t;=u~6)2oU@|C(}SiIgqf@FZ!JSsC(_d9tRH1tOW@GciAY!8 zVOremXLGLTs;Ly+XJ`3 zW#ZP*rZ@JLWG3=QMo{$R23jpOm5c#q3K_+LHkW4X;C~LGL(ic73#dT6>!94NfVZF> ztjrH8{F{SdA*T4lb~IH{>*}`Ne+|i&D6$h`&G33MRP#uB{n-NKoMX zG&aRUuPE{YsK3*#!)SLjhhWg&ydQPA5C-n8>+{g=(J#AVI=~|df7h0$O+t8a# zhMX(qP^MXH41qQ zFud9dBZ~AvaMBRego3>wDkRY%YD~vt^{$?W9iuUlDd(342kQZHx_}Bi2 zc2afn!gq7CU;E^5xBO?fpo{){G$f$xpz;Dt&#Jq6iP=v26b`$*Sfdo8+F`S5;=o2W zyCz(>MCr6wP9FjQHag(t(1wu7LPFwNC_2Zu$_(4=9n7#3>0(r?|BT{ue2?J0DpI|5 ziONVPUFE@;)&v{$5ZO{mt~ph%;^EAqxOz!r2ynylMm`iw$#sK)DV)Rgx4BzaHJ2gE zyuYTYPCI~mLB<&6+lZ~#?=<`ss>7;#bA={cfMb)^`V^}XA288~{<_}g<_B6Oh`u}T4pMD~hVq6rn`*+aYU z^Owr-(E1JFt=hLnL@ixkcSA%v_xLQ&5xRcmjV}lOW z!9ei%N~^Y&pDm0F71ByEoQ_xmg_#lqxnQ#d>fkW#>QabI7X6*aHyoM-vxqHU?U&`oC)G#m>y@Y6fu(=^WItkW2LZb}I)xvO*_GJBA)7Sz`NV z*r8&Ooqa7$vCKAv-AQ3;LWK;J{jV(Du^+Z`Wp)`s6Kv8<4SaZr$=0aul|m^{nOTyK zZudYOf}u9Q4d*kJ17P4}Tw>zj^CE{y4i*@s5Idz$-PS^wR_VsKsAl-(ZJVv?*S z&g?)pX|mf4S6opO-Cvc#_MEb)IsfAWgO9N?0`$$*!N5x2uslviUzGCZ&wmc}LcaD? zeTcR@F60Rhtxt|}CYnwNeE6YY(eO>A`jF~8F|{rr65TE$4CRmwc%;q!bR5^o(u|Pk zOEr+tj`(G|&$%|UOCzH~Em2juZSc%%ug4Y1^!_Qak-1H704D?aNsRFLeia;W`*R{H zrmP1kz_zXNph6R)OPy0F%e}f8sd37y#obx2iKfuzBJ#@0&dZ02{l<`|X2e@y5P1-9 zuf|lYTD%ZXqGP8Jl0B-rt-WiisY<1kfk?Res@3ZxFpb^Yq`;9 z)9FY9&KnUz5D|x3Ya)cX8zd82g}dU$#stvKfmmE|i;bv0JGs&0&N_j6jm5hT;I1K;*0SkQfC;*L@>fcbwNgyBd3hN2)?pN&=WZ5(c%nR zIN;^J9%lWF!tRY6%>O94Mfvb*Z_dtO+xDMhy8fz1lYMDzI_6esf?o;obVYVKR=Vp% zlPY)bdXzS@D>{L+O>s`%)BIv$i-y9Re+`WqubY9kqDm3er4HMzud7;=|ptR=8OlsaE*JL4ZgB5bDq%l1uBt1*Hr79sNe) zI-$CrTXV}^#l_y@+K2h2=d_!5>*4rcSPdIURVeNXpK>WgzUxkMP?PamcB`^l2ae9J z%?A+TrRCOa_SA**b-A<4{Ee=!CI-$-x{j_NJ4W36^n2WV17|5Ux{OGD#mX4i4@LP0 zepV~f^z`+=bv)w;ad%SxR78B400D{o-(8{qKeuN*8wVVYyMKP*4zRkoJ=(8{MS&)# zJ0tSvl>~vs`bxM6z|AsRIJIfqNlAdGw{3^8gRY`Q>4v3h6i&-RU&pY1&*VR5^54Jx z)~~+aZi7BnI=hGo{QdmhR>|c%XI~EgZd(3vpPr1?xauW3g~1*b1m^`96*@WXBU$7x zoD|Jw$d_I{tQ_uj&34+rEin50+_2Io9#gNItV{hXmq+2V{feGr7S3;g)_?HHvs@`d z-C%&yHv325f8mq4?8IqTVc)C7PLbzo@0-)dU70=-XZUY_Lq6x5G~6yeE+3b>w}>W& z_Jfn1o7hu9aB9=)#$44Pud^_T&IE5nA=hmqSMNhIqWfA^EPa2VdsGr2x zc&YH1k*c;`bz2iZ(p!GJ!EQRtpYE6p(C{J0sG=h?5AeE0pl#uDfA)RS<}8(W0+Ygz zZ{R;$R64dOg0X@4r(`5d>UiyX~;pTe$!O?}m_4L(V>yQsH@U1X4nI$E`<_t8Y zxore;&O@2wuIGhz1hDlCZ;=lailT|v_AUuWFd-AC2f_(OZ|9O@&=Z`v>I>$3WcXjn zXdta-q9=(MnS@#C%#@Khow<-HX_v6#P!+iHf6VJlQjZV_K3;QFEeb)0(C5_bt>e z+DK@WHw1Jq#bv^ScUwq7yo7f@JP!H{g9#Ay2f1jBqJa5b@=vEr)x7RdHd;RZE&r2Q zESRyjI085trneSNbAUW8IvR6GJ}F56ut5kM!}c`&XD8W1_rM6j!*dCt6u%w&t`_da zeVJa4UK>)WI8lz#&%2g0LCs-lQ*7mWA|z-7S)j$(d!;+XemIJm=|jB~8OujhF9=-fOWPaCfDb;Njt3^W_|>0W9;I6ofvPHK8^($i@Sm4a{e$SP`~i~HPl zZIK4VHpz5&n&wyFBJUdV*)~J$ELUSWc z3^{AWM1*oR3;-B4P##dNUEuEIgnhd8#LuEoOiUlHGlb+Wch}gS=pN*h$Ir6WOYTa= zgl%Vy6&mjwE89E;IueHV!$RgGT!;A1;S>T~xXGT~DULM>n%R&HXaqB`F2()>Jo0x( zQDYh!gy>?72p#=m{e?i*v17fBc7Ce#_8!8XG&P5sar<4DRQjcUgEcOT6%X^ftXb^+ zVUuFZXEeZxlQm5ZK^YAt?ocokhH;r9g2Ri6RqP#3M4V(Y2%dna2xC0Xgs>L0gja+F zlBZ-1yak&L5dg|LPzDZyA_q=_x)G-2AIMLJBo5xr2xDyJS99$aC!CNXY`1>wiB~qDGC#34D=+1D_^A8F65sv&{X_kA9Q@du%1t# z6XdK6dd+((k37%6G~9^hL*b0aR)%%?@bmQ%$fW1IFAD~QrEX_V1U@l4Fsi6kV(-C} zJ6G?S(z;>xpk<$)q*?6IB*O$GgRWO@#qtl|N48d|vutW`FXp#}#T8n5JFh$9h|6GC~{yRbA;S_`lz2RX< z@bH5Hk)qFA;ZDj7fV@A82%WnexL?j&u`O*QV+jEnc5eMwFjTobbAi);e+88Ot3p?T zMzH%{oRDRJ+_9!Oc%2>;y>QdLSFJ6j`uXr~ znEqpyj{JljbhCp4_vXL6_09Evp=LdFOF*#hkgysc>sI3w`iQhAR(@)XB2QU1!B|CV z)ks_7wB0l5WIp4E`~#oq)J{i2ode>V!l>2h6eQqK8tumbD9u(fjMYvuy4FrSS1s{+ z*YQtVD^spYI8}C%F<}40Q<>kcN2lX-KBSy|=h0X3t!mfF6B>eO?Gh?{Hv_p$+oK&S zO}}bvUPbhXix850KiY&9&skX(t8iW>WJNZ|6O(~Qb`=&ls?oR;LHRd%yj~G(-tNR2 zS0&$|nDy=Chjd6yy7-@!Oh2S_h%{T zxkVs{GBnH*|K=83KM@GfLSlm=9aS$<36d0I`$dsN)yagbx$q+EKz@xHC+8U5E)Jn8 zyu>{4S?GGrnU`x*kIS81eEN?eEkUMaFaYDcp_2uZrZI1th%!shBTr%6)BT~kyostw z@F=s=tFqaQ7Hy zon7O7(cz7B(QN|7`8u++G&{xUb$agh`W;Qxm9_6bkin4nO5SjGVv+Ph3MHKrT*okh zQ+QpIXyhoMNV*sG;0iAWA$~gHFHrLkG*wlb1!2e}0)rqM2hQ@SEtS&jyUikaa37Iq zrAwJ6B2xmyAQ!pfp;|%Z(A9i{?7)|gk&P8Q!mG)X@esJbYRqlVo7HLJw74_iNAwpl zDL+b%H340S(5B=~9^;D)UI-Y%2Nz_TQ2h{W8a723Q3bciu!o>OA_aqiVOjCU#-n(W%)?Aj0ymB8nEP)wb~wou1CX zq)#iu%giFul@FEe=>YD$OLQMrZ+2}uW4AN?3(z_igD<~ElzO5Y&4-mi7 zSjwkabO<}kfAL#%C)0Zd8N9&?`*>u6hK6XYimTnIeA>zi`udvI{MrdR7->VP#m5+% zjpLQlurmAC)Y50tlj%fh+f1$_?D3A-@|n<5bJWo zVpG_;>UFQud;DpLl;xx~hN4nTcMU|pQnZr6EV*JcnG;~jCRCGD0SgKm*&@tE^vCiw z?ad%x2Qa3Uzh4#fBV?Tq7>>2IKQ)2J=Rn3PUe%0F@ubRir_yAhb-{f`Rc9}mO_)v7 zsAA~mt3(ZK3oOWV%exHINWs#qrQP79WDML>NvJ}{wUYdx8qj4Xcw1xWPM=BDN(>Zk zd=aFm^h~GcVvls$rZyJJ0mgskR#jSNiX0IhQ&k;Qi|k%&$5BJ)3HHq6rWonEO4bsj ztwp;IwG-iO*;Vix>Q?G~og~ZK*7RP5Wn$gMs51!&OJN?jYxJ^kY+Ik5U(@$(?AsIU z8GW?Ik!`wJY3iU|3?5z39akF9Dv*J~x&>#cr9k%&P^he;5C5 zUUBWeJZM>EwpRkwRSf|^#A&JKDNW(*J2NVU%P#*mi3v#{kMF&OQ)`+^Q>xd4>7>>h zx;cr>vH}b%JEE`#`|RJXWirC4aLxsrr;v^}hMkT->)c=*X|- zO{eXts-Ppn~tnIQ7f# z|CMH;RNd>aApimKXaWIo{NG7&OIJJFOI(|uX!|>FKk!NrJCFhA+-NcOr`~J{4tGzY z-`9$`2(VfJ6MNIyVoPt|&adZeqViI*K}54`JB}4OQe_rggkw3S((Rn>oJYU5ZbAYt zj^%@|~C&f8}@1Me5ek*p1#!Nn* zrZx}TC;TiCuDkdw{$rwMzEiEs>iKJIcxM@l=P44hSP0e~mI3#m;WRd+mw^QCT+bT{ zY{gy4v&64IKF%d^!+H&!4&BYq{P@?`NcagjFaA>Rrq^_<{@xAWM+YwffAk(kdbhrC z_ySDlN-yOFQu>?@=@8%e-SaeWR*H?K!B?-~!Eq$-+8IAQ2mFx-|} zEt@glWD4tN&}{bOXT~gh@Or&N%&}0J`8sqcFdX4OY4>@;mA=;YKvMIJP1BvPE}ZKl zPjnyx$`hjwXE6RN0k)vaxVp|b$3~4kg?ZNy>jDjRz>;M^N|sVg1p-$I>d~x*ZYYi) zSUez{7X2{t;vPmv?S1W<*Tx~;4rJYd)b4-fLLFg-KKK?UC61mj?fv~r^NZ&-@*U#h5#trU>_+))md{@J+h#4Rzc26& z?}1qjzzbYK(o5dr>aLN5CP-C$9qO;4-ljZuV5n6b%^io+EjErppy~iNGVaj)(fmuMU&z1gHG{@G&Gc}kEsHkq+yy0oyYbv; z2ZJ&5#g4ni*`et$0I`?+bOM!40DcE*r7Alb7~b~sobO{jrO~3+7Uf&%%%3L+^5gW= z7^<02{-NUm{vvBBV?%5rW_MY|Lo@W3rxC-7)8r@=VuVJ(fkw7`G1cMqkBs?fyDQMf zWS|O;ut`4fAok4;y%`qfLGdjZ8LC4OcZpaVQn&vCKhacrjz2VbfdgIY$)&6U=vo$GtyV|*>*YDAs1JuM%` z77$O90)P=M;Y#t`xjiCNnHtfxNmQJd7oRRg8yf^EyAUm*S_ajjY)uf9HbhLESP#C( zkl`>NJHhTy9MVBT@{z%u_oV4jZdexoqIJX>p(x@}s!E=LxK9zqnfZacJZ$hjuC%K} z=WFC?foU<<|LLB5zXdnI0XE%_i(bFqDqCR9D<9Kq zkS`2}ShY@H-Hn*q6*6s41tciHn+=ldkoX-rMSLK_d}fXs8x{my2bS!u=PK(WKwi6K)Jegd z`BlklWqhO5&Gf9JZZXeysHz3^5x~iZUSNZ!pFHNCGiClz>db@wf|QZZ1KiVN!2aT} zGqT1N{CYK0B_g@yEQ~p^!ho-*&SORr*}I#CLdm8S`wbG0DMXyCxU3swsy{%uO>E1$ zR1h+z)kk{lO&-C1WusOwy>hr7ZGXMDp?P>U&B2iqZr~i|`RhUoMFSI$*4(LI1eF=d z&PQ$oxa0{*MlJ(QqCe)OOd-^>huD|CN2;lcuWm0vHx_T&MDu}r;hB)Wrajz`h2Jy` zT;vqaKi%*wWE?;huWqkFM>0b52?wl>WRY4^C>s~|!J?Ay6qA?eQtFTFq0V!+Ne&w^ z)1#_nb-?IE^+iVBE!Z*6BpM3gc(P%Fqzxseil};w2F8czetFRQ;Dda`Tb~BeR1S%b z9Q2ntsCo;8>ry4%y9p0a)!xpLm2?K=qmQqQYzo98J4=&wAYIGSrsIP9tM2t~lYo(m zwL+5sY)BdjJ!3P=vKM5Jb;L{kc^$;J9QL zn#B9XOHFT>j9c0h7+AV+c~&rMR!m8VLUIqkd}k+~WE5$l4iQ zxdDakLX_IJRUx;l%5?N;%BV>KHCLJ0hcpBNR07=7HolNM7ZXS@cOUeRf*Y}wkQ^nb zF9yVQO4OP7q!#rit(>w{kvH8%q*jfx-*d;l@9t2E0mcMg`&)YTjTyJv)I8Dr+)|p# z1-C7{tS`T%tRE9ci5Y}iQ!tX`g;a2}RFDwUdxIDxR-=6{!0!dFr;soiT;(fe>rsl% zSY@!>ZD60ZNv;He4zyQ-T-Kldwl;1X{;VYHu*Zq2CITyThtdi|nR|gCVYysZMCMjI zn1bK<5~>7u(MxEop@?pX=rAFBFvwrdT+C^8%q$z~R{VnrH&V_+iiu8TDYWSO?riVP zrvSZ9i;Ga>oS})NLi(!@JYWLzb;1C-&2*?1sk2MgV7hinR$vrJaZlLa@nN*&on${72sJfL|LWi3Y}`WYmD;E<{;gaJ7+7gWrh~fk$P6GJ z0<*QXo%sH(E&vVJ+?yVe8lzsh_{)N5l^b`C}^*0QzJ>3z~ zpy;S_&^dwiN;Sp*x*XGyDQc|w2u@*An22N8YA=5t%SX!-nFq;Z8sF&sDzVkDuM^a5;9=$Ucn@xYQ1QT_xvkVv#aU0EcUT#^I5lR+u|71h}Vti-$;a=P1~c9bu!O zwBd?0IzctvRPDU1B>z;TbA^%T&|N*ukFeW2Y#{dTXdCI09-6`>XJ|V?pqSfl1k%d3 z(N1f_LrpoSo4^Y8(0)viBFt1U7r`FbtJ+dm19dRFk@Rt~DS~MCG7e(o}FaC@kh~M08zaFz;;C|z`Fsx*;SF=(X;L>*I>1#cP#w5td!^Yn4)V#c2kwoXT_U zXN5u+zF+I5Z>CAR?qGO!F=}{#Sc%1}YS)(jLJxm<`bqDvdPKF#Ow755-$ao;58e+l zm*N)Ir(9u6s?xOwR_(I7BdZMB;nh~J6;m98G!^ppC!w^yUkdv7dP4FlW?SIR+Z`i1 zRDhByHOd^Psjid*Rhd|+cUUqoP;=kn+_fz#0oq0*AwurD)X0Cgq}_)2mvQB=`hB=$ zbMCS^|F|M;VsAZbo1`N#mjCNa?cNdOK7A zTN#!SFeUK_z3UEZQq*Cni**RFTzic&iIgq~E!I@}oTaqMtFpxf^yPAD zH0YUXMf0Hb)aKK{8$M+y5$;z_waUY6v4m&%WArE8E> z$L~z7rOYamoh7UStW_Fxd&><0Y}aKAXa|Sv=ISgxSUa`;G^Gza_Pg>3r|?>snJji= z@2Z)lNY&l@sPRO`tluma_(?-)o(_3+vk_h%=tFrTs4JW!hJnfX-fMWfYg1I&UY2Ha%et$#D|+mBxE9IMwVv_5u#>EeUJzH8&t zno0gxGslGwH`>_8b;yP;U&6{5y;^FD@29}3H-Usy%+lH?94&L0ZT{rPOBOAIMT>^9 zy&%8}8H`?(F*0fl>tw0v;&6eZtuZ>fINQv|7OPhcTmB9rxJ)b*t?o} zxc;|wQd8?keIofi*X~pZE_))GSs;RGjfcjYa)=q@)UN>)fXQajIhsflnmWb*eRql| zg(FgB1J=XQkx@kOo%yF6ySR3?DsNp6KKcI%=XLzkVSP9A@MaNCyX5Td#NwJ-!O0G7 z{W~v~OIU9jMaHxn=fYN>@QW%{pL^=}zrl45PGp(kf9}N1dk%QHq)B^-e&8T z!mTU~MI$Xj`Ok#%d&M?%AzR2wC`UK~a~UuI%ZLxWH(7R4S&)URJ=hITk7Yg)shF#s z@2s~nm%w(6^v&n=>#5n3F_Gh(D{q$oENy0r!J>L*^?VzkfF!)WGe7VnE|R=l9$Sg3l^M# zDdW5MT4a?Uc=i+e6LyMr|b{fDxw6s6> z7AY?)NP}(QhLu%oycOR(o@#0mNGH@*pP|x11K587I1g>cof@Dt{D!4ou^Z$JM5bb| zWdR9NdoF~iistE6;CEsTsj54L4oPU#;GO(th&vz^=fDqux{bzZ`6U~X zDHUm!j?w6I*FrF4CBZqAEH<(*S_1p%k}FsZmGO;}3K~4~a-au1`%jkA&KIL1@RnBX zA4}U-G$F>qp{Sto3;1!VCSx81EvDOvkV(copL6@bP)ti6H0<0 z+R;~WuZT48)8{M%O;1fwr(6zkK0mR%kPpk@xl$^9gKE9Cr?So!P`7-Ut3P98+=P6n zjTPIVbyY<1QV)ws8g1Pm`0GNztdj=#Q$i)s8RYQyZGcm-YcOCvre$e4lX9XoV}Q_b z6m5TkTfs}lQwGeA1bwrBmgwrx_vlWJhF8*0!+Ep3Y`(Fc7f*uR!Np*)G0=eReiEg; z*LVVrpNcxkmHlb3vCNoB{H-6(^0Uwpkn4+P8t@wc$>5Ug8yl^Q6p>EnU?rnO1H#K7 zxfaIM1hVy>Bd~_awW&dP6tKSP@-M*0-p|@5fxBOgS-7}Kg(vw$7^$7mxLtdy-3aa+ zM*n)hST?g)0G**Dq&mysTC;Ho1x`!HOb>rjlJRg&&9ssq**B*t(;qUUoKWVKuZs@V zGX0TYlfS$_va*f6tZEvF`$D8C4aDD$Z}->=JFMU-L4Oq(-Nsc=LgRQi8?R%U(+?@g zzUP(_Ja+GQdCk4Ug!XgoSTon;fkbf``g^mn#n?mMb73QP06S+7LGabj+5+*@?&a3V zsdtx?{`xI`EcWYPpe#BpilS@6nz~jqoMAsZCf>BoyA(gfxn0O0MOxSbBQpV1g`q`L zt+5_WTu83kBV^OOU;7gmY(4@8#1e+yo(d&`#LzLDMt{@U-nXi%4Zsz9k-DtE{8;W9 z!P5~%O+blSYjG;r{4_5%glot>7Y6=p-0+1NvkNYaA$Yf208>5nMt}$Bh`u8x{JZpKuH#d3-6Iw;%r6e~QsvS=KmsdXCpf$1`T7 zJ2!a88|Q9TSd0aAu}EJbf+tq+;LYzc%h|*nz=UDqZ>TzTwU&RD!{5?*%3(tz`R=*n ziqANOS+;b*`(Ch3!eQ?${$bnMGXcI43c>GbOi=a12}&C79|J!%XT7>}d5H`Uf$bYa z>;I0tU5@W}uXOrAf6Oy^jr^;g3ct4rF1vWRH%M|=vM(+#x>Qi16ke+A^7vpNWS@PP zOm>5(!B$(s3pkJtI0$9s?HRW5btk zufYwZMn2MzBQvJ~L?(TN#_VB%L3}Xdk;K7pB0sAjC01nL#hr4iB2(+kUMn%KBoq%r z#4=DCwc79~q4I%$I*j}xW1i~2fJJHPM)}<>#w}ZvwsgS0L^(OQUD*?#Yd$r1Jm_Xx^_pgxW3%vmRrmyzMc`I}$|9mpzfnucI_RlA`X`$$rL zcBcA)@Ju;ohZ^xNZtJ9lw)^E10WZS0;UuEJj^F%_DcsBn+r2!y=KJh)!0imK1$}fY z>)JZa?%sReCLm=KdQV#T*WdryU+9lxJZyWcSkov7n~PBkzVsWBVPT07S<8*S3e|Jx2YE^FQf?3R+N@Cp6&w9mAQX5 zP3M;2bd|!L{WKT#pSO&?{MYO40ex2`Ejkp^aH$d)=ixri8_-S6BvU@3FLu@pzBeiW zLW@;^`R$BMBo(-;mz+g}kcr0<@(yvUbAU^z5<;cIcF1#&EX|V{QXeYnXrB6r+;0L0 z?(ZFOBBNunEZ~pyn9I`GE9gq(aLJ@4Gxn^bIpCaiO>eV`Gq~3i#^lTg+(HM_wNl%~ zgn7fa$SC~v>k1DP_;;Nruo*IQ$>^FRS9tt|v@SbBW^i2RX)x}?&U{fb1oUZG*244S zj?9Oi$wtEKKKTnV-vx-DxwsZ8fk3KPqhZzqSz1NPUrCcXcx9yd1TEoqc34`l1+&Kk z4M>huiOvs9Sp23?P#F6GSSTdMU%)EJKZl?jYl)CC+0MKJP?Sc1;*8x0z8}Kd>`U+x z?r*#0gh}1sm(eFd)VcQ)W3S8R4-n|x2};FrsiO2wM42DMABQO|xgKh)9Ts(?{%Kc- zykPQ$T+WqJ`(c&fX_k{Z*tZ+#oZbfPjVFzFba~C)*{x@;f-F0re`NM?S}I~fXgC!W zYk%SNkY>SDApVXwl?eyWdxc{Vn4;gj=?FZQ%4X(eHj2i2 zcMV%tB`{8?WybD-3V21XVT9L*hBDBwpr1P~}u6>&O4eU7;vqW039@%pN@; z>$X@qA&Y(DJ;uD}+KB!vA7G|>M<;R0kJ{_-L%P3Kvp3}S@5KxE3fyBG48efYIvL$j z3kI3o9;lkQcqn@zfz({^HLbu<6&oLW?|ga6Q_C#b5s_kf$PMc#~A9B zbVSB&D#sO#OHWoctfmftd09DgVbfs1Fg=>#f{IGy%U}iklP1IG2(*fS+wy1nuutfy zdk8vW4Ss^$;!|`b6L-8bihw5e6TDc&S9t3>M#83`vG%Ur>b1%<>d_#QZHsm=vd0v} zZ;{RBbdU#(Ew}C$%|sspf*c2vq|www=Ln4@!LPs)0ur(UV|{U)ksJp4)c_1DFnCuD zzq#L5lHgC=px`&E+wbE==>PWnjz)BFm!61P(0~UsrP3N`8EajEQTU1jMm;XPfta{~ z#t6B@7iKzs%95@lFI&AjrpiYX#C1%8S^-2Za>Py|Uddfs=cAS=W)EbM6pB&v&gC>C zzbT9ed5Qq4cc?1z(#*iVE-QB?*sP`pe!?O!bAiQWsa!xnFTMCiF#^F&3r4YYMdc-` zm9p@_!GAnF6Q)2U`3UH!M-5EYCkh0NnQpve5>W;AB%~Iw*R9Avi0zsZZs9yQleGOB zgQAn3@~IMB^7EhD7LwA*7`gd17sU?Q2j!njEVe(l>i@YHJ-Vkj^h7xKfpK?Xl~Lan=uuLRnmHLNkY=^;+zJTE%T zuEb%ZSOK9uK^0ge9NZzK>I4fbrG1jFk8)|O3Bc+W z;z7z{YcU~fl6hG($-29B!`{+G;_|0C%K{h%IqzJv>=lQ1d=)dIq%l>b;?n9C>1LL4 z$%ac%9I}S1Gi22*K?C(R!rf=AK;QoO3PjJxFLjYTamVTsXDItOnPT_?F|`5&yT z7$kSngq4!dI3}C|QpjCv*-OGT6Vik7C}HSv@N69{#{imqo_VFI1`AV&gA)o)ndJFG z%aPJ`ZwG-LXvMD=w%}y9l@)`WSWweKkGXeIb_8{ceZB@IURC|**wEZ#+<5N$uH&qK zTRkRYw<}0g*73Py=Yih#DBx1p3FkDPp8Ob);_HE! zk@57VeJiq!Rk={T7KchNR5xN_+NHhWhyU%hF7xL=B=~>a=?1>+W7U~pF zFw=ympc2Q%QM$(kdP^EOiP}v3pHWl`ZY`Tp75bnRqRFWU0XL2w&s=8i2jR;J6~(&>85(yR5*0U1(ZkWAZ6a<^uZwE znAYme8sOP#rN7*n3u9HMcp#)=h;&eu6&W5y39A>>4X+LDj&Gwn$yUzgMcH1)IC7)- z`Csj=J+MCz@+Kdvy^%8bKzxjVWH{&lQaiTu|LNLZJrl0$crS1P;kB}(=d6Lm`zcyX zl&)!op}_UjBN=#c6XWsL0z?}wW-d@FpU#VVbV1wP_7VwVL*LOn(Hts<5(&KTiLCj_ z4IgO{_G!)ikt)J2o;cI@N%)p2sO&RTJ2DOBrA(sj)T)00cqQ&? z$+%%pV|Su-aK674Qr`A>{Bg2NOV0=C>JiOiIWJxwWF7y=QW;_&wnt!9z9jSriWjJj zc0a;{T|xk?17mczf={;)*s{8O37S}npE|VFm0LM>VXk{bu6pcfx{3VsMe=y1oQBCB zBug5)$$|)}_7hX_8S1APqB!|SS&nH9ZWv^0D6r)edc!ZlF+8RhC9`8s>hWdhIcXuG zvFtKbTC{q8tm+hdrnyS8lxjDadsvyJilv&$C2iVJfLmL@pI*&FrBU-bb*HrkstLZ~a^awn zIqoH)BN=|Gil8fX=zk0d?TZw2*}e9QMw5upTX(`sLf6s!R&U6=I{TW2pn~cYu%UHQ zgQM-DP|)4&N#nKNcZyX4L8`Zp`Deo@)A)ELG+o%g)#e6T4TPu7I+d!&Bdt)p79Tr7#~y2 zd;g>LIzi`ITxm{bAz~4J7&L=&iw4Q7vub(EWHv~3575}A);FW+eoO0meX6%v-#q^q zcP`f0e$x%mq~4y@Xw7}f>ME(<<#_zHxSalIV6f!xtM&b8_8Hq3#mc`6Ti*qf<_QwtgukfPm=#j|xlD zMbhZMM^yCxZ$753r^3D@`cFr%(tet`p!5Y&J|yrcHJDfSFH)!t7VK*E>L@)Tdt4r! znuMvTC--fQ@N3ZH{K1Ey_Ieey>&5Bonu?6ZJo+%-`}lR4huMxc@z%Vl|H0QgHi;5# z+qR`uwr$(CZQHhO+qUgmW!tv7$~Ir^d*i-1=iz*r5%~u)$IQ`tYjt(+;#Qa=H()-4 zZS-`;qXjz~Vx+^md-S6(^;YO4!kw$-oeTo8>uec_!LdQ5g?a0A9ih}4hJ%LKk#<(CE7OZ~A{U$+1cd|F zW`7zTL}_pXOv6bGc*gq_3{`k@bHVYpqO%T!uPCt#!{GGRqU{IM8MgXzCL;;a&vlck zP#{Z_wFuZRseG5&B`|$Ma*kMUuQ%*j+O%ibKs?d3Q#prGzifsL7au4mnTt;j=h3F| z)qVFDG%|A_B*A_l&ghwOIW%GvF8~FG49y5gjL?26_ z%f_CYcVyD}0WTR>1wRCrkQYsmNfJ`ryV_e_7lSAcxlbo%{B58?MA3t{`I;+km-gG6 zk^*+X#vFg7^{wgD@9aW^K5%{mGf+HeZ^WZ59j<-24mK}0QcPd|lUr06&)%Gu>jB-f zf<~ZFnqrZ7#ql0O&#q=Q5a! z-o(}w;t?vCLDFHra85&dg#KuLVHP5ceUSJ$L=d|pcW`kRiApI&oy0&MFs4h9Z$JVs z08w|CzYv-wM`vbs$WyW@Gp}>DFcrzbIIlb4g`Y)-Jl1$O0FA;Vx)pIL#rlf2=Yx2`MwJm z1OC!WlxbWP0xS^pPHA@?aY(M^jlFVDBC+AKK=AAmA>>elB(lgK9aHFttI4UacSC2B zDJD12K#KzuNdEn1+r%KtX%N!p^8am1lmmmjr@t%dNSCH@#Oz=RpayJZzw|8N+J@*i zd$ZR5GjkAFhs-`feW<8)1P=E6#mVcYDlt@0>rzH@ldVCO7vr#zsojB7^|$^ha+wQD zCfQ^1;ML+ga`YCDuXUpZLmOU}Rlgw)8(miT>2ULlqxCd}bD5YR(j7r+pqC`0N)j`x z(K6K|n33R$J{*XXXRWkQSWEqk6zjJv)JbPqo&aA0QhX+!S;I{hyRB5m0D>6rqq#o+$?@@NGFF4E*n(XwK6 zG>xHOouBPUG{ztsnu_@Xq1G5NrDYibe~4fh9b{?HM3dfdU1HYm3&5CGB->{)d@%DJ zyKEJxDk7~l1PkjR_?8Ot^9L&6+M3r92dcj#qhF+vwwB~ByiLRtdHD!-H{w=*`-d~< zRO}9=wjsw%O`%d%ec4~>4S8WNtZMQC%K7K)q}1(2tWu14OeI}xTxZF`6Ufl@jh7?7 z1VZr-L2-9b4C#lhh{0Qvy$cn1xKMn$$+~jnVVDzfiNs{%Ea3uoCxKO{vxT_m5%)b!7Ghm={*V$P@|+aNY}7>SdoC^*n2A!d^FKFp#C?&@Nf;97=wAKxb9UYTSiFC!TJKafC#$hhs)u~SWLo!~bJVu^g z9pg|R8T|CL$J$fm6zCMDClD zg-`Y^*M$k%0jMtpT3fv}l*J_DZuy+?ib%WMWqR<xF~^wZW1|KoPJ5`&CA7C)9G|0*`xQb_6$t*Qgdcc`nBS+UJB?9x z4K|1?SyxPD9G=I6*KnZxt4Yfc&}0)zg)uLw^oD10Fj5i?6qiL4DeZZQwE zi!wWc4xDKvHPI0=zC!USk~c18BFW

    n7CLX7U>`cyk&_pwKYUR7+m&k32bcuTv)M zHDIHIH`i9c4Wrtaxkwzn;q?iIgi$x(l0Oh{sUeRkLa8~VnH1gtXPnW*Fy>bhXvb1Z zl)N%2w<>@B(gJMwvwU9;On_h0E4>u(ot>yJ4ukXce&Ty^Zk`YstSA!ID2{G1R?+0Y zt&h@i?rQpmp>fRl%w?@%dly{)j&J`JGirw4s{{0PyYY-?V7p`m04?h&O+0cs>rg>nH1l|a1{68kMF6cU*RU7=1U8Zw)IGE-> zSgCK{>*VrxdsSZ)%C%d2R+o2YhhK$NZL7~Kvai|2dK1~(7bD3>{9>pWy2|c(tpB88 zy|R9ikP9LZ+jt$P_~yQjUw6`P0Pbg@DE^h6*a&}<9kQYswgpVb99=}jg~mqBic={K zt@0Cv+J-nDdF^q6pl(mzUPOyY3trpTtxVn(VeImC`yc;ru=Q^cXQ#*u^(C_a%k{wV z8>+pT+H2jW?4mgpE5SJ?f7@}F3sn53PRK%a!$ZnHl}%2|t4W(xd&=A=7R^}rf0~=r%gCj6FFGRt(60Z9o&Ozr+ohdFhVz>gYV*tkceEA}WD+nE!K=j|!yYnw?v&^(F?|j9`2S0R2 zV;d?kJ|osX`ebKV&yvM)v=r_!B0&=d^A_ho;itmjk)ww}e`%iXd&qmFLLc^QdJK)T zKvqBL%jluo-Nus$RNLeOHtCsyqEBT z)0f#m#wxua!-G1zzBIbkDtI9+V#)?0^jfuL%!Uyhy;3KdzYTJDNN!g(<-FkU;meowhjmjsWy- zRQDe1wjS&w`oTP!@A=%N_&V4Th#3n+Rvh!lZIFj?=Eu{#ZFJ=A4&jq$-cRmnm+A9k z6l`5?F8A{Bu+y#VX6DBtoak`Q+ynQm7y$D(2L8Xur;zFpTu(Rl6$E2cbg_LYGJR&eMSmWIX&t##>$Ghm!zg%Qz*?2w(BF%bv|+ zUnmXNcw;&jcz9ZI^GYO90RC&ZFhcr6`p#lxeSQgDZ_W!vTfxuba`4L)vQ0dLW^C7$ z#Ft#wj7k88?SZZUd=7cUL`cY5@hJnQ*kqXp+_I*-#|8c=!FMo%FdI1&eNGRhYLvj;@k>_*~J{YTi+00;FB23 zd~4@ct2UXZ$~d0Snz1a?QU|$vMFa#i1!!pO5EIP$j(EyyT*(;KR?d9Pe)d3+g4l<2 z-Jo!SBlw{w2!47L5G8@%L;u2F_)A@y-)a|-ZU-m|$blov`{rd}9!!SQyQO{LAo(!M z+^A_dZ-BC)87jaNT|a-xN;3fP@BtNu54y0BKw!XfxDAVR z+aW{OCwr&Ev(zmgztz?AOBsKP{)RcfmT`VlzRcN6y1u3;Zcc&6d4SU$bq$ZE`$>rP zaIEiMQ(K-R&_b;o^&W;MIfdMvs@mC)V`J!8x^35PeIOC~6!_no`g2R&4%V zlU$_0O=kTq5qTe6XqGNU2SzO(dPe<@8z8;f_zOOlmV6z8t`t$wJe2%s8-!bshria^ z6}^t-iM1168hz(ZlU@+E%@@-(wb=ujr(B40q-$b4Qt`7G?_IzQW=BP^8ewHlZW@=@ z!mx7hPeVMGyMH@$9M>B)ixp1r3gBjq`IB2zQ7ui2G)4pva)Xk@!=x+-DOya2HZ%h= zy#Rs2lLU<_f(Y0`h1~XSFFdWhuMK_M+<`PfII2-Fd z`WUQ7_4eq0*^aqj0%e-5hI~=a=$!w~EX2vI;E0^@0uR*43@}RU1v5evarv8$kxI2q z!G{8Q5r9Qc4B!#qC2K2I>s-uwbkfvn;AtaBk8#^w@}fF$5!Li7M@$Gpo5B5{cR-;{ zB=BYu)~glzL=g9BAuyVCw9`5;jOG;^eEAUpW{-j_T-SCN%QD)ABpsf7x2}WM$Glw@WVt zUTdlWKY;URgAJ&f!RDNV;ILO?R0=11W6DVI0=UcelnINwO;JY{nj=cVl$ z77sw^v*YW$#~u3iO4hJ|b!ZOhf&Rnp=rn+-(P{C?B28dyFO0z{;lNl|XG#s)kbbL) z-01S9x@pgedHd0>7T-mSaCqlT%Clu2TbB9v>`2>NuM;Vt%9?tFYFx>ero84|pXS;@ z^4AXcnGvM7v-{_)Y^G>l*^i2a3Txh@fy0BQ@;dmp`fq@A5@mJHg?pG6V|wC>lt%)* z^(1C=*9VNCuNZ0QV+$ID%&Nwuo}Dor!@An@WZ$ojEL+>wUAX@X7{1rP02Jc}V55X~ zXI#==TnQ@wi|&C=w5wRkFhPxOvAgS1Gn%)#@@14FaX$d*Q2=W}X4hjM*`;6X9m*Z@ z9Qk&KJXhIx_`*9$(ykP4mvJt-MweBW8l7obUZaSWEOD+`JA+zQ{o;o2ReLJ7f6YIs zrchG@Bhaef2vX{wPyyAP@46f#Hvj>u7S!yCh)qP%3%P-yMl{vg5YQho7JnKS!& zk}O!ElEtg5uHO`NWTJ8-sVgCUjLP7EY&SJ_wY}V!y^+}!N?xX$T!f8P0gLghGcgc|U@x#^2;065`kR{cssZOgl`FuCk@^&N- zWHy=)B%n1FA^oB|sT4onSl1lJKCF2|qo6ccb3$d2kcgwsqXn-)vQXr}4q4SW#aM3b zaP39m($$|RH$A+b;$KLLVoe`Dg??7kh}sM)73n!y4A^nVTR534t14bnpNne%l)iwLW#W{&|@Th@$H}l!azpy=EDflsp`$(b8_fpTo;tBUH#1@J%RL(5*Z<=Sb&U zy6C-8zAcw#E!gWAq4pw_hG)WYe}~XW%oVe0-JyTy7u*YQue#N3LMA5ryvWg{2Mo8FQ_IItDJHUt6s@(r3^n zYbgEZL)gZ3uck%Bn&aSlK&xuU_x^|YXCIWKfF*-2BD_Nm3opyDNYTij`pOnp`b^h) zt>TZCg10ql5l32ybM6XPx)H$!31I1Pa)zlfTDrz#`pH-f%k{upU2VwEo{-*VmIkj7 zMwQOH~sB-;0eg zZ@%AHEx{kwbhqmS0rkP2`vhm5yiZ%d_bvLwtqni$Zyk2?!OpNDxZuq^5kIY5H*j1p zHGB0`p}=di_m@V(wF5f&rPi2zSG|1WD62G_Di2386Wz}Ro=j6iwx6w zKp2J*N>qv;#0zSztALM3F^xz!MY~Jc6FIbiiJsPtzo5+V4g8s(ScDt zy|p`oRO;g-wWX?V9ghrU^SUHku195=gq@`d?L!9yPyDxJ=@HEQOG)})MK=Jx~!i!6x7%F?92oJa9Jno_EbL5WHxa}up=2=TTO6JWC3;Ty@k7{ z8b;QXG86BwjdZ8|j&0riQvq}KdmF&q!Ek}%f=P?Wc_Yb6di15(MaazIeEoM=vD~46 zzb|9=#6+yS43KR9vmiNWI~ta`l+;10$Pq@BCq@;v-gf?~ui}S1k$*J_9O}-_3jGSg z4`OH}WN1EJt<@iL>w~c;v9#xZ1VIJ|7IBt~u3+7l=qY&*6$E^^PVTPKM^mC_HW}jV zM!8K@1nwB(A_hK8^+_^6AuIfhzj=xIbyr`YTBeP4#%qSfLo6(e4&1xr$ZnC_7 zfd6}}ZCfsTMef&K=1&Iz!16yXUH(6$W&gLEO!Lg?fF1QGw^#76HdCT9FsI0@k_soC zkpFK}3O{9=n-#AMgqDA2$Z>+OxvSgviw~za0BZohXRSQW#;N=J*|yxuvD=mI*@F5@|6q}2g~foi^t@{hVQ0xmy4Wi!mI-|Aw~nb((HvZ&QWxUG%dFsYgT)c zQ`%j^KR$OOjsiQLiFABha-lK@`!}7M&<m76pCod-#$JaPD zK9PjP;7y}Dzs4;|q?peD9)w$#H}PBn-^sjup&yXTQdciW$KzCR&?H0x`mnp;xhyz7 zHgdgsqWTJsNSCXlDwjtYz#{o~AbWv}*cb()&d^Q=qLSo$lRIvSAdXmAmgAUzC zTAb?>c(?8LS(T}X8VI+faYDRdfQ3u^UOyto_P#Hw?BT*U0Aa4lKmU-2GILhsML2kG z;=H1tbF!z1&{KHzu#`TX7C5#@q5Bp#?oR?l7JNZ=azUMYino36<%@FA#__T$xj+v4 znLlqbWas_YE=CpXH%yMbI7hqw6zF(}GmB5YT({gbPuai>lemMY4F%%QFldAU1LAvt zfBpcoWHwQV0neBM>1%sh($7&yt5Ism@s;1O;dw80iu&H*x@7%ySn?Kki{AMIK$4>Z zu}>$``htL#L82Uv0-n$|mx%^U5yR2VAnO%cS1J^+RgTlZk0FC?1biAXFC+>|(g|Ql zW-W7`p{g;o4~9cQWRnB4l~Ayz+hajw0G^sgp*M{&pgkoAB;ye=Rz;i{2fl5o;PzQO zS~m%RCZSOfv%doI8d)rKTj-=K@&78xqJEWR{Qdzn%Uz+3N5SfiyxgjLaZ1!?>W(f)x}UKYRCRiuH^F3sy7*T^?)Do;VN@?c3_JJjc!;Qi*QZi zt8?nU5cXtw?ywN-X&Jh4< zrkX#kTNz+w2Eyj#_yXuixcwk*W9vi9QSBd zfF&0A7;ZMu0rB}*Y?*N5d+9da41N|^BA0HN2bfG62r^iR3*oimqD%%hBLVppZR!cUdjQY2l%YKTz@vud#0 z7Ruw4!yLR)I=!r{%KLyhQ~OwrR$xM?zN(ndy{W<0YSG9`|{ z&b_4=m<93u4xq8O?95L5X-Nwa zZrL&oz`RyzI4+2}aqjZ*Jvf@W>!r?+fOA>Y%uKOdt;*~8i;&?QmPX5nANRNC>JtDS zAt0#bB8zWAltjV~P2jZUW9#j20()nB+&m_D(b0i8V~I`RJYVRi$0LkIh!uJjI-*i8 za&QGj*T?aiMvy@8bwzH3kGjoA3X>(O5xg{zkOXn97|6u_x6X7WFdik`hd4c2UChvj zQtFxus2vzdVTwt~T@pxfw3~dkr4=gGjHT)pMGxckAe8$x9K&{A@z*j!vD;1pJ&lAT zG4FY~Pm!rD#`|PAsQc<2 z-{Uh*r}X+yutp}O2j0BZPZ_iofL{=N%c!KIPyg#D{{zSnn?knqF^^edfK=PaM8lMn zG;;%ywx37!A~{h3Kb~ENm>md9Q@v&NAGb!vjY1t;KZrJKN;gv*ikLLuP9~?x@h%Yk zJx%^#{VtFq!{RGv%=JDr5rye`Z0VWOV+%SE8?a$1UESlO+KIo?`IP(He&w3HW!|pX znmo5tU*7y0&~M~#E|C<*`Ge#m%l=q8yw$XkDpC&?;kGN9}gDt~=Mn^?|N9=4Spx}ldXp6WiFJ{w#(y(8uSG!zp)FgM(s(bXt_3E^rynEeRUqwxizb5=8 z#z{+7HKbQ<*)*wRc=Rk8l=W^}x^}EQx>xT#>yBUAR};NP`L32xJ404CY3f?FzFk|j zDigCBL8zyDClD#K6g-|q|Mn2?vcK~E_X*{mqO+h48UP^bHx}|gk}Q?~-xJFJ7JvyD z8JXDscMX`uZx;Xg7o{Qg#}%A)$W$-X*;V|l*T6PG zL^$1MkDTF|3_Elb>^>W|)FT@@R7;(g*gu%XuRU)`Vo~H@p(+Fb3D{e-q@c;7g3xlD z+{LIJ%DaO24Lq5`B7!3V0t10Cr#P+QDfzhC`fZ3kJT#jvXYHo=k4cTrwqV?*b7-Y{ zKMF6LQ3hBsxS=Etaa%8ltXi91@FHg`-LC*Fg3GYq5NRq^GY}XAZyfE^?W>q~9~}pX zph44DZF&&Kg1-lLB#bYt5SAYt?60{bFA*PJfhp3mK}qBFIg$}+cJvPXCb48FOTqb8!-BJdDM0iO!oYu{N?Lah9$|p zP_xtJ`*r`c-iz&Vxs>gSTtEff|K@h3jFKnl5C<7iA?N5~r?O2|enEfkMCjz=3V=Nh z8-*SwkbShypprekSb4NAF&`NoCRR!5@mFOnZNJ-74hvZ-Un7=?TnaDfwx=YVlUW-9 z5;<7V1u{9GW-Yo1A)i2BV+N~|p>N#f7eXe@Ykt~d$Ible-__4@-uiRbBr6IjcdK4?Y+oZmT|jzUuD)^Lqg9pfZ$JRQuOn z0}JT__D2a>%)MYLgS3bBePS+2Jf4P2QB-1M_7%uums|xrq=jCSU^Gss$Y>UtLJIxp zmlOS%Wn~6)Js*54pAyZHm1(G!u%u#JXN4{r5mB!>&;PCW1aKHHEbwQK62WDYh+cCK zGTEF&%V>?g|6dTMF_m*45-0$Z9^PV;<#Q<^41hUbWLYF6_L>rd5$?3Q{Q{ za3OGgp~Pb{guSMUb;=$GhfH(`sz7r}sqZNYBMJboTIQ&)ezIHL?TfbcHYlfmk+M)8tBc$aA3SS_N3u zw08s~dL1T1*giL|%udDuO7N;+#%eNc64)g)_uHCuCI~BFWcsBt#_6be}6~N~+0E0?>dI4x+0u*vdeFb7A{3q>2bswQyqnMl8K!tktuj{!BU3D*} zPiL3qo;REEqe~zjs2(TWlq?|^j`!TIW?N*&(xG=teQMonqtmOLc9(JudH6x%O5hUt zgg{G8^f;sCsnd#AYJ4ivF&s(oYAf@SPo$^2OIN~9y_7D%8*h-Ah~#K1_LPaHJ?}ms z-%}SlI@Oh@k5tuVl$b+yRaw1l0acjaeI&in8Xj*7ny8Is5%j=HhCe*~ zezRm0ifap=of)-kG?_WQm6n=`-3@nliQ&dr_C@oY%12&aotv_a z3eiFM%34}<(_C%rJ-%U{T;7Wm7~@ATR^lYGEq>`N2rM?w{p*B!M(T;oMVCf38#1J{ zalV-jRBh(&OC^19653Wyju7zaCHId<#86d*fF%AcvxYLG%;K!!RN1tQU?12=q6mxp z`w+>_K|(2@QuSJ@5=ZmQN7IfGyI1IH#pk-!sjF%&`N|);42O-x>UW799gCC?wkbna zgm|_bVb1l57R5m}HGN9vCfDwev{LTjhQkRcJB(qj;>4N58&*1ZR%9FVb1upAo{ZE3 znXG-2mE8tsz|3kBV#csl(2A&*<^k##x%pMKFAnu~FUA~fDwR~yGylMS*Yvg2$e0(^jJ>rgith;~u8xO0>L-D4r5Qm&u+7vC#Rq@Y&WX1dlvFtjHjaaRTqN{A;nGH zJ296;gvc?g&%Baq9uhBOo>?TfXc`Tv3)6ooNg0rbCJr+|ocH|#FLOIv@u$vW&mVI` z`tvd=y+u)Y_R69WRWznK4&BHNsdaA#e8TXa!-{RI&-`Y#KlivJ>XL`4Y1QjtKw+U5 zEz3qHF4EUdL@~x<%uQ|Z&^q-{25qBqZ9mmt1EkK72vQv#B`=a!xlwhqKg~dkV5JyC z;qJ=rzj4TyEcfDAdO3QCBD&~nPj#r*t!y2CWjc%;?HXUTld_p>e+NyKSK#I6dX-jW z`SUNuq6Go2swxYHzH>NI|Bx`%#*$&FvmnE}tT_R~HCa?+t-u#FRq$r$3bhIg7FSR9 z13#evkSmVDjj2_*70_mIY7|7#jiJvHYP8@LZ9W2h6;*fnww(|JdC)ydvC7_CI?%6u z53EzK+$;-8t0M!*T4H*FMa~*#coEZklW!o%%kXIHGny##Jl)gu)W@Ut1|*q58Y%F4 zkjwH%(468U0)=w}4t01$gvYagB&16{4IVstks1mDdW?rAUeqjya2!6iZQ0IbTn20= z0aIbL26^@)*zd6yvqSz^sSDKsS975z!7^78Oc=B468H9XvoMbqO!?VOEZ6NyvziqQ zz1WbVy#Ua5=ytlb-_ZCU&8>{!066tcC2|HduV&wM6dj#0OB>5e^o&<6EHNQ(3Sl)V zAisyksABO>4?S9%$0}oHPKQ7|^k1C8DB39aP#=n!G$al34m%f!(sSSz>CG%y8+d|~ zZyxF82BXYuon_Os-Y!zVC30U8iS?+aTRS!?$3il^syf!|f;t*_Q(SCz1$#(fRo$-8 zi{<)4#Ih3Z0K0OQ(+*3O{Fy>(9-muBwk9$H`h&^9F%An`Amox-&c;uzS{up9;9Q(E zIPOsx^eI3jiVzK|OIdKv4~cb=Bz|P|7cc{xOLKPp{2LMum@zs6Ze+Nz%>(L5q=!;; z)p^`RlV7Wt%-H(ciUdi*zNn0Agbr#Uj*5b&-m)ujdVdA8xSH*Jyg|9LSA-#R@V{N)OQ|3-iQ=SK4X z`(pHe5DvZ#H4@6-n;IY%h zcrMdPzj$IVkl{inho8&B$_=Y5sd5LgBU!W2+gz^*H>w2Ycx;Hf)<;;)SF5-cy09L2 znZYQcBZeYFsj{XpZ5aUhncDhuaQ#^NqQYq7mFqp7&!(zfxi8lWKo&yXtvh{+hA_M5 zwk1M;HxTDj-?xhTHj)#t_(o`w&h=)hC3gF-3Iw5V|RKwhZ_Soxrmf(RZw| zyAiMChqkI+tSi=;r>$d@#GnD4Kz96|i; zg23;y>8v8Q(Vym{p5x5qea!qh`Jm)q1uL1ca;bL4r_GKLE?Kk^Fgo+?V`=!4lVhY!6 z4ifkpz>kloVl{4>4IKb2(C)J^lJ*~Xze+RGPkg{)r_0zA*n#$LeAUkG?u+eVnI^)2 z*!^nY@O-S@j{opo8d62By-yvnHjIb_nB_O8g(B$$fGVHPy{sFVz!7Z%UHSRou9II8 zl~w2B7fdh7a1SVDp2_zFfygGpe+|es0QLyr8SwTg&V@E2l1{1~7~$XC`BACqzr%>$ zhB-pbb&JJHGN3)~;L=l%KMW1P_UQ_?bZEy5?ad-RcUwtcA1`ZNKQ%`QXbo^0inFoU z!6L=4jqO4e+?&3yOyUBRJlVyf-N4*`_Rbf$jRB^NhMocRl4#2`f1?TB@8WD4a?!fn zxWXE7bsF8B4Q-9N)TV-3Rf`;W#g#WQu9nr*HEtI|Mur-;5*Se!WX}f1&dObDFi1YC z0*gcvDD@qZ_znmJxioe04Q^gudN(6tP^}ZIzBF?K1xlN1UTu$H1+m7=ljuSb2~t%A=Dh$ z=3!dSxD8dnc$ghi%nqqX^~lAE-J-a%f_$uBz-%EzHY{)>gM8sbd;45uUP5yKYtd+C z3dzE)kMN&#dM$$bm}L<_w2^v?u^&|;^gqmxe}?3YCV+)m4y+AtRVdQ7u>yAi?Rp5K z@Vmn8igF3u|4=i@G3F}nsKsFQU&K@XSq7ZORM0cHp%_{eXdBRB39cD?K`GQJk0YQ8 zr+fW2lx{e9G4l6@c6N2q#04B?kbiz+HaypR1O;~7aPllxLSZzZms1H$cGHL5u&B}^ z5n#wU99%1;vLUQmnU<7p8&QA4Jwgd9*;zUgr)TLq6JN}n2u|>dPK}Yz2W(_`XsQeA zRg^1DYQ?pcqDyPt#`0>BOmQ}3HSQM8K~_8W_Ax5IG|W;^aViI~QC((jn+Z>mYhhtC zaF$FsCuCtPneGuJ?JNTv%1`{HF^u}v9Sa?H#R^2L5FYX2FKoK1GS-hIzDnlBFENY; zl@-_w6mk*VX#iWXAxQHQx9Fk+)EBBN@*)Js z?0MRrV-46cGfNtD46+HF1CnYZ0wxE?qXJ^}BYv=Q;2A_pquPSt2w-vu)X6?NF`7ub z@MIaXc7q?WFDg-yHbdwrB%+WK2P9ww^D&kbS8#TGGTSd9rLj|PJgVT>POv}16>O&? zvJN^h5MT+9%w`7n6ZL@Kvj>#Y6AMY2BA9*(GXl{f=Jz`%4X2CFO&d-LZqSpU900P7 zub}{d$Ssqvn-{<9_`l#1ht6Q0(V!O$lRdR(j72>*l~@Hz^(JgXPiE zdA0T;dtb7yEpG5zFt=%9qvK`3Cz!ig9!TF7h^c2PXR~cfpBjs|d-M|ujr8xjRr}md z#y837?84QHdlugabn>{s&C2}XR8>>yuv;QdjVYut9}l7Tkvb6JeIvc20G*RlsJhoO zwsE#j!UT|NXwTrb4>papb~vD$-glwHK%>}Tk_#YG1>@D10u6aVD-=vpbIG4532fwWM4;&dT*eZ8$|ENgcaig@b-dN zfHV4Yl%8V9H0|?|^3?SeUDy=17WV zoN}VKN4licm|Ra|EUqbxF|1v$p?*NCAYV~ysua`{5>(}&*vEb?}*4u#Ni7g%j3_m%h1o--~ZmwLmtSO*Fw;w0u6tG3iNKs?Ro5JRt zTXnP9;+$F)e|5f^je@hj&Zt_nG5u;Ixl!p;73!TH_x59~YJD@g#O{?-H7~UBv;TQ{ z;9P=vTOa7Jx!qodn4ii8N#eiF<#m~_rSO4huq(Frg0{-{lUHmI2L5inZ%YY5n2L|wo0BhCt=~llSAUNBxpx< z1$P}gZG5&jv1xT)YwV5!hr6|(%miKpa%iDOB?EUY+)6Segg2Z@8KrRCFaGmxxwqwe z&b8X=lG^-BdIg4B4F8ajESA(& z+tk_=L%wKwQhoC@QDocxcvx0TCT_QXsq9$ET{5Z?Qgie;@$RbSa;CApp;-3lwmC^y z=Gm1{Se%}@j!D+GX-xVU&rKZ&H8+A_?CfZz2gyKFp$k(5#Sh~{IC8GrZa{Au-r28m zYinic_2BMwt_Q}bYb86RNmSS>>p{YhYhEw|Il_&KyaZ=->YY#Ajc?O8Jb#XzH^5lWR4S1r2){}DNGPE*qBu5hzpZt1T8Y7QcYh?L#TEtzJm zdCIUTZ?*5mW}&P1=F7P5!&_qaX-TDYJ;Fi7%+p0m1G+JnK`pYoB+tq+>BI4Ull8VW zS?)z5eohDzW;)DpZ0;l=HNri<04a;o3DZ! z1<&{O<&I>>x9H3*@5m$b@tO->3)$f!fi{WWXq{A5$6WSTstDB9d6eIMX5IIc$>0}+ zL`ExqybH3&s$@|`Z3?6z!~UkY@k*2wubK28k{JqSu$Y)-HjVghwdFjx<#f#vz4+rs zRPLq#FkT$#3b51}?~sxkAQ$av2Sp4SUV5)!@`oL2ZY4bE!mZNJjfx5ea<*6jA2c;% zo-)S~qQN^Y7b4Y+7_f!CeU^+Pw}8dT9)CEey9-D6w*1!s)l)IPgC37$^v`hVdI+1n zza9mX9A~2*8aXjfg~W^10xYVD%am7r&02aW{3{k>v3ai^$Ki7Ipmyn*71h9gr2@2u z?7q}@6qD<0NJ;MJQ3L}?#<#QU+}4_Z-kxKGTYOQ`U@hfmJ~sxxGBbSqax`t*c@-Gf z+RW9XoJKl~EFM#1q4hLxLR%@sZ3`q1jkBPr{JU;F&2VY7qV#6>ueUo@p4RYN?PE`NE`XFf>2S9hzly*_cT_4OPn{PC0mLsNq` z2}K&`>6j4P7^p(`Ki~$Op*m1S6RX42v)p>{Y+l85>lM)yCEs#G* z006N6k6EVwQyw>Ta&|N@a{k|s|D{U)@xM@AJpZ{FJ0ta_-d}=BTn1T{t!|OH!dJPe zW5fQTnQzb(c~o%j+S&fTVe>wvdGqmdF(_)VPGrJP#OuXKG_~_RecX7ai)%d%`m&G1 z}+JNaUR1d!BXDGsbhTH%G!4|(aE2x01?{O+pC@3ZaqcwV|#qdw!LMb)D zg$=q-0`+4k?869mjre1rB#Zo5b~a~*fiG;#Nz6BpB=vR?@c9htnRTQuAOG!vb*OJz z-q0jgp->*DdUQL*hJj~*l{CvJ*vvvQ(xoITCZWKKDgKti~{hNt^4T6^0>qFt?c82 zGT-dugEk-C<3o+_H+8OFU5Q{UnBwMUR8&(`l^@3ES~&*It{7Y;>EUjRQi3<+xSPP3 z!(P1dPRSToSQje{wx~O$oSMJSPARX6d<23It1@cQB0JT)^^ob?&iqDG1T-8q1 zD=yktDSrd9HV~$tbN6cL>1R)1G#cS5R7gBk=}xpPI;KAc0rYMR31m=ia$EX9%xTEG z>&3We_siHdPoeDv-i@Z5LTzSwJ^%+VtdKtmj@unoK0~Gtpf8TTsi3DYp*VyFI~9iS zouLBDt}n8LsiXk+BtFhkujee{inz34I!DQPVQzVZNY+%rC_uNfrs>vDoHcNO7u`_< z;C370FhRuhnS_i1XP2k3CL9?ZUHY_if4XQ>SyGA#e)cl`$PC)vTJ~I#WOn=w6Aa3yOy=F#G?- z*gJLy8ivWbv2EM7?WAMdwrzK8+qSJv$F^d-gsb_L;Sw_5Ox>>%OXLJ9U)g zqln@tv81~~R|4b=5I3TOWul+D*t2U0DCDJ>2&hcN3ULrpmc;d7W=AVGJoehu?aCnJ zQ+&Y9YjBV<3NxDxD-NywyvkAuOq9$$qdwMbKns@O?uE#w_vU#Bel#Hv5LSYwR4C9{ z8)f==LcL5fS4dY+;UxKN3q{W9qRU#j&?b(%`ZWR0~Y1X3%~F&^e}1!SUCVw(4!#kjq57oNjZj4pt&2_U!-wz z2=sfjRs7O_u@FFK(aegn{!s4zaGgj>B$Fgcg)FPdWA2SV<1YiV+rV6~@_tM+!ET_R zWWZ)_qNUi)<-dS6a?yE?HMK@G#`$YCV$;-EAIOIhEq0r!!itHd$Hk>SqbDd-e$qI} z^Fwm^du;aJSVGg37gf=rF8d<1YISx)Lw9;zf@PaHa$r5j1XbWT{Yc4!ZpFPk{)51K z*iKLKOU783fOsN?q5}v^cr;P7&DUBkRAvypo99oLrLi`h&%tl__;{Lfy$29}sE759 zRFBtxNcT>pJ7qMGPW^$?UZgMdeuKIxk3xH3B9uU5{7f^q<%BxG)BvK{8eMectVnVz zZRh*pzT)1wJi--UfOBqp7a3XtWK%8K3&T7eCL!yWgHB8E0;t1C}Lc!iZFm`#_0j%*t0Bqv&& zJhk28SRmD4R(U3~N@2yU^>(>2V(iw<8rQz4j-lL-?`TPE-^v z`rdy{t0v(`eSA7pY?QCTdv(AeJ92$}P?oV#sbNr30yUv66_X+;cBfkD#@m|Vi{Mi>R(nsRqcteuJx+pF%pJRs!VDirk&X(C8P9) zR~f+RiSc(u0;c5)T>-WM&ig4kz_KXs%ahkMqRs8mu#a1AQFWF#ovYC2-fUcJ=@TRO zHqxYCyv@E@Tg_Q+fo_ieU9COoHeh}1Wx9^G;r~+{9-5R)ApL_-uw*#&voa)6XoeJ` zu#zTI2@JW?1SCfC(%RsXF9s(?sR{{u)JOL<5?vPEHUh48Z6;3soY(~cSik6mOLL!b znrYo{Wr9k&0&(F}_jLAPTRer8@L7?UahTo=r68I8PFUQ?)mfCz1%$#XR4}!9x)VD8 zG)TtC0V@h0@FQP@v9de>U3m2hjxq1vA@qidao{xPTf>4Tc@1hjSikzhI;9Ndi0(} z*{B&SteO?x&+TJN$l{MvF`z>Gj)!rR{%uMwJDAs4h zNBYy&fP%0c)i_bD)3mrP1)(isXb_A}3*X9F!p)ZUeXU~ucw&QtU}K;h$+$=dW4m=` z$N5o-_kEcaZw&~7`j@8DKUi_z4H-^rO>+wfufny|4G`h5<(iC$Z9Q%^W_sE-?*a(O zQOs|=Qx4jD(3Cu5-4Q0l^#TZDjAmPg#CqS}>lgKB1oNFvpK$qUCule*xBfjHM6&h^ zr7nWh6?pggs_QkOS8rf{+vAed5)$O zy{lO_+f%x>OEN3lc3VI1>GP=KB#$QWH&9wbxJVdD$``)>!T0zA&kOy3Lu~(~sVu$V z*dF-L95V#~0M-9Un*KLiuk|BFv3#a$cgp%?frb?4oWVq~Ja$*6*dmAE3|-Lgm1mG_ z%8Nx|CD$LXru?>J(RHlHQ->kBfJw}?(~02Wd$~uoKNn70gSPQHPK@mR!tnTXwl`bi z=Wn|F^qP2Uk)0=F?o3L37)Ur2tszZ`0+LUv|snfAy9KCpr@DXS7o{YSwey-1A(_#+xnhS zKuk~?Iq~l=$hfjcdoRbsbX{>ZWFkhX+u#>j5N2))<8qSn2i%Yq4zG0%uUhpvlFtZ^ z{2t^qO7CjPauMvizqB zd=?1JSirOGyu5FJ&uTxNR=oSx;UNHk5EN*@JrfQ1X@QD%)M9tGp^cEIjgNTDgWbdU zJu5{RR@Zwm)^=3?0nI$z9kWsON^nXe5a==+)%$~A+Q$bmNOU9;1u+{*M;rQmIz+~T zd1}&z-uVaGtg>L5Ii$v02=k*L_aT+un-)(tjRs&rsfbKCz9A=dOeg(KbkXH?ox@!+ z6uf>U1br=*TY)s3glKI3e_?qlsDDcgOO_ES1O?(;?8we`fCoS2fR!x3^{8w=W1u5v zu=a&q)WzO3GmT{`K3Xhjv6h_5uPbIFwOYXJv4JuE8A@EE=gs$7r1o}&SPB%j=%IpV z>v9~NQOYL~^*_KOSte))gPhPZ=AhjGHB^MRzJrrSO_~_JusfAE#;<}>Sw6xOTKm(< z9rSXKSc(|JN`oj%&~c9lH<~E7bB^v_G)(2dzKTv@cnyCa`eO<&eOnYJFJBVmR7ivtGhGKiYWq}A)YxH z=S}69CHXG|s_}FHT9>HsUF=8r|QWqsW_+0V5V$RztKU z9b`Fh%3hEFNPvciTg)q8=JY*@B_FCoDV3!_gC{4@%D{oqZz3a`7rvvLOZ%!(xWP>~fnSOdDXQ>{3WA{GJMVg-by@yS~|yg&)=TAuBrO z5Vedg_Nl!fl0{6qzKI-Rr-+|3yvH=WJS!2Zouj9^B@OEvw8i3_H|}%i=QWYX{O&9$=y15${KtLowkJ9W@8-^gwM0rLxS#{H{FFvK_jhEc%&n_8u;j9LQXu;nj1q)gdA_m@K#Yn|H70=Uf^-x4k0#T19 z8EWD_2`#`ebp5o@$l_UAR|1g9XJBaf)!b>9Te?Jk9q=^uEYt7vSYIfXF^*m zQwmm{DBNB@xI3US008O#L@E3i$|1M^(;?J5z)rjgjU?k9gD_LWMSD>PO87U^{rvlH+&?PZAhw zEq^Dl9Uj>GLf2Z=xQ|oL>Ri4AIK%*b31kLC1Yr+m{1g4zVFRk_-DXy}5kcN`Z(tes z*rVg7eUM@xcft1VApsokvbBEf7W0XbGK;hl)NitXb@DOmEMNs1JFvJ%GVWOMX$_YD zEGir>kHHUO7R}=~pg8pmAK|m9)Lm;xGCRVTUF(>yr0t3C&h^%e~0=wh%YY zXZj3+OLrc2R*rGcl)ykRX5EB04V}@pBYLnINBQb+>q!q7CEI~lT?e8;yxD+Mg`GU|!Rnhgu3QtIz$MS$G3ZP91g>H9YD6g)9&l;B? z3@w3P`hU%Krk+Iw-v<6kVvBSrphUA^62}7;oY%l~Q2LKC$nLnmAP;+jN!JqQve?X^ zmF^ECRfw|qcnq1D1GHGxJ+`VpBnR3c2={hh{E@${iWL}{=qC9D*UygB2{w+&W9$wbc%_gATB*^oJy{b`01%Oe!UX z)mh}XRF}n15U}`P5HNm-V94Mn2&k^j#Y~;lGuhz9f)V)saRmB2wwVsRhaA?58z#-+ z&UZ5tF(e^=P&NXMK){Nss6_blnR&1e3|evQ%YGK%trfHq+=}A)!h#tbO;0H~S*z%; zJ)<=5Af7IvTfgAjAlc*%CxJdyMbeU_Qgk7S_tW6w=0%;jf*g9Oox9X#BA~C@*(B=2 zQ&FNMD9Zr3+aPoI)niM%sdQw~Yre0{&;y!*IFX1dPR89+jYuU$q3EtnhVLW5ibOyO zPT+_d45s%c>haCcYhOowxDMC9if%C@faS7c%cqUl)>tT!{w*EOj*LGoI*|}coCp{X zfWS|}3J8o9har0iaau*u@)kvtbXw|cnTK;)ZfNow${RugLUtkvLi*Azgeq*UnR4V? zg&4zQ$PIbqmxBg0LW4rxaQPtRuRiXEdbBR7R3!Q2c$%37Ah(V<0&4)ktY4^L!Lj?*hiu7!46c(Ahdmi01?Wcc3`*&|34 z*xA;**3qiTvC$_u_#(C%SWt6YW8vAgLW%8=hXaBZ@(acA5PInv?H zmJsxY5mZwb@ZbLGso@rk+KWXKX?;x~jaM`SXGkW;Tz{lO6Q@XKx93dNi1w>%z+WN7 z{oqe%1cFZGJDZhuqNNiyQH9M>xFSdUDiE8H66NP~nku=)_n-*SQP^)3dc* zbL&0+n4wxp+$&?jK&vdg&5wzb@W974?SIFK0L42nq;I3XrqL^4b~B zGf&rFejHMq&F=t1WFx_=u2H z5Q||Dg>;tW(yv~z2rGGl$=mmdrwHNpoxAw-uy9qzz>l%_*6a0%anAa93MbN81(Jz=&r&i5hBhD1wF@ zkJH6SR6IOZ!bnEH5Rs>kpwOgUqM+dbMVK=L(0(Gy`yS$0)U-fct{hn6LwQV0=`Dqd zALTF9#1{d@18-K%^l{CUwu)L!4HzJQAhhwG#cjHJioRoNNx}gj$B}#wP@$W^(WK)M zAcG_}^bp0AH9bgql>P$u3a(`OVx^Iz`aTQJ{OVKxR62!4 zgBkMt?jEEuPL1qvJOQyEjH3)wj4JuQNL)O>!z&4s@0?}U(mW}jM&01Aa(&wEj~K%1Z{Hfq%Xjp)B?*l8dWJL9AJWJtFep`57V;0OyFkDHi{Vd8T~%4w?eIJC zy$Le?c;zLdpf%P>U4R%KF=2)*LYOOS1dIMm8N!->Az?@9je%;?uY~9@ zYRj3*9Xxu?=eZ>6c@6s>kkPgDWv5qK6Y$eN?^tM#O$8w&8V~1)4faTD7NkPsoX|dc z4n)e&R&~cOu$FwK$fs;OjWx>{0^3QE6fR&6B|TytxEXKqxDJzuh460-vR_Se1J>FL zBv{}`9CO@Te~jdqj8gAiy|DyzWxkmI@DzM=UQOFfu6fna5#Xaea1RCp} z<#`K^@<4as+JR{@MW3wuJO6DIpqBNebCA;{(>oDCMMYSD_M!8qz(mSqkGU_TxD}S6 zvCXrUj6T;76b03y#?bbV$_Ub{^68qb@1TOVZ?gVvwZ%yu^-_gKuf;@T;B|~Q6Sl6$ zas8O~rYGTr>WF@`v|{dkFXy;qp{LENgY4LEn2)7`z^8sr?dn$b?4z-++p_hI_NF`H zi4>|A>ewkP+mccH@G>$jhnu;XtkzGqKipA-noP~4W|cg0j@zz1%1Id84mxq_flR^T ztbL1YJT!^O!?s)q*Ex*6KBzI!wTR6IYH{REiwzo8m|ijUOr)!zrM!!icI6_GJHpA3 zl|aLRV4Zt0#`@Exvmru|9@N^f$B~tgeRF^&f4)HSC>1k~_etm$4xCG&)(r95zRw)U zl^TB&DfX&@9S_FgB!uitp@$T&W)VUtIN#k+eh#=(yKH7w-g*KN=f#O6JUyH=GK6M~ zhS`qjSW>m(S9-EWSOm9S>Y7?XE9tm4_N;-fkoA&qu?okTPIFp|GuV0cu&wRzt9+Yu z^?2S^-5ouape-$CQi;kRlq%2*;v^B5^a`6kpLI?_XwC|9gk~zrPoTZZ%vHNC1EVCIA4& z|H0pjsH=&svxI@Iv9*cgf9?!w{pU>9m0tfMkQ#V6>0j9hqG%uctb+{UJ&@n7@PBsY z<&kj9lST0**I}RDw%x>vwmwwJUFxR@#WF`o%s5EQay-NoWqmn2PdoALrboe_-y$}? zTs>V@$yEm(z80^zr_#MjxZy6303ASOjEjhJW>y@gz|rc3iiiKkFlSC)XsjRY^*dZ= z$w%)AlOJg_amxoRR%d_Ana2TUZq9*=VZoaBF_M&w3jf7|!a-!hN(=bbheTGc_jivy zV9uWNe=qXY?`_P?je&cDkQ-tB_?h0c=phEbj)C98!*7=S-XN_$>eu28h)|yBxZ*`t zBAY6uQNTAx8j_Cdz>Y948{rpZKHb#4%I5I2zcd~~A%(=Pk3sbZM7#AU5NI;W-xF(G zH182M+NXFG0*T~KQI2IyBs3Z$I&**tjPOy3p)VE{>JP;oZ^{19V_cIJFS>WF^0F4| zonnkR(iNEO22H=@!%w&v&@g`l6%WamOW z_o+G4s(yiddNIg`jQ<(vIO1?$Q=)>%(is7kBFV2 zK#%+SbW-Ny{9*Ttwc4i={qKRMRsC1v_P`MuiyoQc?2uV;kMM<6VK{kmUJupV1PF_& z51tcXqWWrcaVJRbq0VY^awaNss^?0wP9|L%Nygr@w?H#!XtFoK?yCucOlMpD^BO#n zWS~TWynn#M2zj8peyH&PpMyQa3FU7i0oMljb~i6Ky7qR0t4UhS2VefnO_Oe}3jx4e zBP!AtEPVJA6m1&l@?cqBDr@s;f&g>EFjdmSR0{M(!3S!#RZ>uo69MkBTrv3aTBImx zh_K>G4!M>g(aZ}2k{yOu>vV@ijz(CJ8lrMXV6aybEDWg3@%XX+!&1ad)&pafg1y=5)Cb|0To!IGe5wgEaZ;GYSi=umr~^i4IKOp#+82v`fL@5kytf!D)j|LEs4HS zzqiP-7|gqV@bujhta6e3T%LnC(_bRg+uYF8U2QsA1@wmj>_JqZ+NfTR7U^ier16+X-&t>!DCy!ac!DH9%S zBn6AuRQ0@U@4^YVL=0MY|2X!$U>In=SWMjmmajwcTP$un^6j+r!H^jZFD=Oph z3m7d-3|*jZbYZ9iTSzu_P7upxD{$aTTiQwfl3;(}KwdetD!4RPYhePYT8Y9^`-tMn ze1V);eu7WezsU44-u_P$6NenKyrHMQt4J_ug$)t$TnWFh^Moq=W5`LQMInV*6JS8` z1@VbJd-J`KCdlY&<9~|~666YS{DyfYfrG$FlN5{a$3lu8#)?%$#mto}6{5t4ionXp z%caQl7TL<67WidO!x;}{N}}FA1VY83DG>{xDIcU-rw44nPoj*31yWK1Dn*N@XgxF+ zRfyV9SD14K$KX`pvGG3PtrAq*!R1bD;7B0g1seGUN6UC~v%p*nq7kN@+lg;GHS%e< zyxiRxTa1UyDyNVm{=pMWi?ml~(-(x12KsGhv>Kf(TH-k*hKFqGFUmtlV9BkD312hjBBX3xj}3HNDw6r++Yf-dn6l1>gYIc3W4f`0?}gsLc!(CCm`;$ZRub7a0a z5#(9pJr~qbjKu&QCWWAI%>!9w8(K%EF9kfWp{XjFSHK^(N2G!;%rS9R-TjQAzo@7b zblx~=&c7KY%wp72;gf^a4}6~i-vJm+oKO)JKQq7hcz5X4d=RgRo%X39k*C* zPUoTNBRtMrEL-Ee?@5jvVx2Zx0JxT2XqtTZfCYI*`UofgK@X%jy0U7ow}$Cj1(P%P;Yi>ceAH6s?u? z_6(Bk9Nhkf2#-#6@_4iSWw}!G?c4oJ6`5ZjpY-(HEeL2%$>T^1Wl`>k<$mZm&Mpw$ zRU@maHjO0Su0e;kD8d~8>bdTf#vT@LwD2CB@lDV_sfgq)OlEY*$HW3_CBE(mF8a9> z7deMio@5>G2rZr=-fo8P|I7R%D)T!y(dj$;GEj1wl<3PXg5TpJ<875*$C5*0c3#DZ#nKOU9$Cw{Qo>X zn_>j3GC%_WjPe5jkp2Hkvi~(#if#3CcE0R!)7?E?bI#KV;#W|APtshwIk&9)7kpeCuEOg$;Q3M}69`gl}JPi~`yo_5^FVF#D z7QyDaJ?!f0*v*SOoa_Ybi{2jn60e|pu(11C{2EUFd_(-b)9d;XBrqI<{S(e~9|OAS z@)`3K^1)3YO!m6QRhEa>@Z8v6)IUMrA6pirk&B|}ci(Sw4kRrfx85Ev3d$(SJ5)v- zb{x7A#v`Aokf0%F2!9|yWZjYWpf{LjteA7pQ$4md72<_1*izz5Qe8YICKL}5$H|UG z!K@Hc=ZeA4f$XE-?SLdXyLzc&^Cldb3FBH2e1S5vxo1+o67V*ESzwBSb=u)lNf5u5 zu57-=+;QXd!4m8s*am(aWijAIK@7~c4;WyuEGI$z!hkLYt899(V~&vTo@5_jL<2u; zW>fN)o!Cs!-DRp#FJqi2CHUw%~pqLYf*>+NoCcee*Q z@e3~2W0siN=;4Ep$`<;}=loZyT_OpgtaI)pAG`co(Zo1|_;Y4tkb3jkG^Vtn`sJ7_ zL+1q7RV#8*>S5oRWSyrqXV82CBad7-ik7~*tQ+JET`}X0q=`#&Py!s$;9q$X8Iwsd z7-vA3ILyyOi9vvJaM~GqgTC^A`MaML-ho~(xt+b<-oxg-)+?i75b_w{IKW8@2iNss zI!tURA%{2p+h=TX0p4%Bj1v=dCkMWiSEI z8DWBMs9*jf&1Bos_8pYHBh;bA?00*?z*vtSfu?~DuH-%LI>O<;CX2X_*i-m8@PhGS z>@+sHfTE0rEd+6}^{L(Yg0}I+gt^$0fL$QjI>~QQq-<+;d6;0iB-5$E& z6nrO-rw$Q5u9O4ac+cqGI8N}}kO4{gKJXF99)m>Ce|XVcJNoA%(E7?Cp{NDe z>J1I$0qY5cWa|E5HFr2@M9k0G)D9Geh9Cnrh+#Dsc|Zk)Cv!#%5)e{kSzqIGEwwdX7KO zNztr78@5+unNIR_8-i-614D9tIke=U8tRD2%`oF%Y9KO}e#)$v>(?YQ)~i68rjX;N zio(yscvF)S;MTODu(|4QS~pz;oayuNJp|)G1QN0Qya`rY%&scSqy|l>TIOUJU8AMr#XcZtW6t4Bw=`y2x>VM8YX z+p#P-9XpUq;4>8=%@YGGD(`eGJZS0Ev!`GZqz!v7Ng?XaT~mx_AiZMbIMAK$4z6Xb zpD?OBM@PhT(cI3GMN=*9L5imBqnaW+h{P*iZnfa6?0 zv86aw4$wvVYzlc1o&qT?tEivrx+&AiOPm796}uFCLaSA(kCNg9O2pan;KCqQ%2+CH z5vt#=j!DpNKxv%LI|fF@)uU0t7GVt>Mh7tEo*LCTt|+>nysVNLNNw3{$NlwLnzG#^ zo-N1DUi$2pq&>?uqQtI=>0#xD>a6)90QDT7@S#iv11CuPA~ko&sa2CD(OM~F+sSHdWVOlQG0o;3_< zoRN@@1>LAVC(~seE!CDuP8e+;FFmTFa6layQbdM*z7H+ur6v1NZRMU7LK&jM5vyQP=qN(|$5f9bLQQOtl++u_lSwa_E zB4E^G1fC=lu}+m2PW3=qeevOUGG1xRn`j$fwD1^cQB3U6+Cb?}g^*-uOZdkwFVpF} z!G{f*G#8CxT&rpfqr8=F8V4^jF^Ra4QnMBXMI~MEqJ%q2@p4&YN*mBCx-T8O%yiYw z5did~T*!1Wlz6K&@$xg8-r=9Ms7Htq)F%cI|~tS zpbOKku%&H7IM9X*18@ndu_PGLs-R;-Zt8FI4ryylB_zy!7E=w3N^_4Z1`xJ6EC)gG zRLen~Y1bOu{yq>>>?~7AGJL_Y!sdgXy{vJT+_U(70=(Tn{aW>&(;8Sq&{Zil$WOa< z$L^5Qu_xjXACb>K&oA4=6REL#!Xt@{5~75(6^2tL-j2)Bumi}m+eEYbtUE9AO;RJcX$z2^lV5Zt_Glt=BO|B`hFf8QPk7{A6Sw5 zRi9)S9ml`*=bJc>r!AS`t^{!^{r*_$Y#&sTn8}UQwOLVlaX5NK!D)l;(k&&0oTl-F zGGW9Im08Rj&{G?igUHgd7nosW5X?uE8Fzo!RQ8P>9&SpE;O7cbX$!-vOB6HSVh@jD zhF>tEm$#^>9_NNx{8_sQRad2ZIl>4%Y=2f}+@~Vkql+U~tkX)fiANh!amo+Wu#6{H zd@ZRg62E^&`UML?KH&TJLD1)u!}gf^L~hT%9wpa-HOd005`-OVsILJ}QrST9Rxlf8 zL7so-6D_JbKNxB*b4_n#-%3K>=-eDh0?p)S5hKHkSLt9OjQztxbjmRK{$hi_yJO2a zem;kZw%XwgnQ_o7^3*I<0F76;0jl-g&PfHOZ8R6${IGG8zNq2Ouo4ZLiiSSrXiO@S zv(n>1F!BzoJue+TZ=JhbE!|1`&O5ZZp#J3GYEj=;sQvxea_a-gP*sQ~Bu@qf0eu)> zsl6PAce*iiT|l57dtid=f^G#xLf@^p_QxN&Kp)Q)zr-JJ69_vk@-DHF&+>z=m%2k& zAdow+T|1o#iJ-+_H6|IzCWIp-XO`MxtM<-G(ZV}+)g>7{j`Cb-xRl-^8cVWZTM6=W zVUErCQ$;0{2%fRKKop2~3>+0RNrlqT5lp2#B+;sEq>j~+Q%uu>nE4T|#v+N)#u>R0 zEXel<&o7PBcc^x$ErC_)@l9~}B`qibc4cj1RmdbGEnVB<0}C9Xv4ZcJMd;icHC2_C z#g@V=r&^89Kn`;!Ooi1FfIi)!0< zR!7bYaCm3shMNKF{M?G6wzj{k2kib0YeGynXf$i{`y!LU6tb3nu&W2A@if)os2E7) zG-6VHPnLdpglHq?Y_7kz}|50I2`(n%lz0-rD59@<{)Ia$x^= zH=!vKK}uGkXxxx)n{2}*QT>nb{-a+{@w3abI98BSkbOJ#)O+nk;<9>&xSpL|z=$MH z^a{td{@OXRsxvi6_PC9%!%(-S!KTEk~tvwR&L1B>wz_^PD z|82igAHtHt%;lcCzi<5XHgvi@Xp5baj~P%RKj1O=*U8cD_Nr7Z#&z);z{jXqDF_@x zNEn@iwIr|;PFUE3`J#r#C`fuQ=_kcE5Bb zJ_%=~!I#h)+K)Gmw^k2tQ01>#oQ|7h2=77Y9|%nzu^34pG@2uF!~)JU?v?!e3n>x? z6q|)+-L)atyQx}?q64-vY%-kvRs><3h$ySgwpoIx3-d>Oe`Tpp{<;T}z#$&udoHcC zXH!`40^w7X9=$$;qk6(U z*rRk}bw7eEjrIluh&9Fr-wr^e`euDf*Pq*1^RPO$0+s&jeI=PMlkRL(Kk$0h-w_&y zy2^d1QJg=GMInv1`%F;igFuh~AJ%m2Z{R~fbTH)mTz|iRDL_o+#C57IRhv7N}U-m%k{@2=R%MG2{NI~&=#kp3$RZoZX_x|R!pQbAnUk5 z$5H-LvMykBKh>G#GF;HG~O&v;(n0OQ%2Zpwr3QXRcgQ zrQP~Y=}k0iM_y@;sj>Ul2=KQt9Y$~OPLsyW(oFi__;ZFz9QM(xp8yO6&fW&wV zF|**#{uq-r-ppy5Gt-}_$#G9Q(T+ihx+B+v;H21?!oE(#{RYqi3ygJc>>gpVZZ)GR zDy-YVvXJ`Lk+w&uo7qmAffcG11$R^qH#TDNS|5Ug0IhJKb?Ex93j@(D3VzETin@zI`jP33+ctc#96X5%V(v@k3D9wv%D$d3R$UO$Mf^qv(pTbp z()^Q^xdrP4lJFb?VrESES&9(=DH_NrOs@MeQ_%`@oULDfv>WcGT&BBwnAo=7-TzUg zF2fUgfxPr8P`hJvbzEANFmlq;L~B(t1Rz0ttDvWo#D`3(u$B@4q{zT$jLPuBAq1$r zLSCOCMPKk0<-unTxi%+tnm*xH@?+=ADeh8ihowNt5vloIFKku$^L;Y7@`&mz2M&xR z_P;0MF0)2rNvm>m4?w^0Y^kcN4~$40Pt6Z?QOc!W5nfs|*UvjEIa^z^kCi;`p;Ai~ z$8}yhE)yR9bbV65!T#!Wiqarrs#5FrDQN7kz5X z9#8}ndS8yWW1Vl|XhGDXt}$_{)O zY+fbRw?!gGvAuW{ti9Kj-`OqOdcxLMMYC{A`E58l#;*Ig~f_U6D)=E7mF>V60ZPoAjO)7A3|>$^2MxXYlOG;N{s+ zzcr0Nc(8UH!V@?V_~|7rEI|P#C^ERiKLZp|^b`j_8b>zB7R5_~nA)$O@fDJ_8z-@q z2sGpHcqkCX;KC{%9uk}+Fou<+t?0?9zrK?CyBI|^dYrNR zB};8pCE}zqNK*q1ME3zXVA_-MzK<8n;H33uyoPU@Q)!v`^XO_wek2~+#RUNsxW8qA zZOV0`;f2cY!K|8L-Z`=IY9#+O$t}5NFps~x0=wNh@3gU;$01BG5Iw-7ivDt6RA0&v zf^V#GKbyhFrbRCC2i^%A=k01XK_Cf+s>78)?=$rd|0;@I$BQEgQ3~`PR!6foB-feG z@P;N%rw;64N7jhvpzX|4cGxxl3RLvvKlNF5>3lwg+tv_UgKR>S#?LIFG(w#@^;%i@p|pl~R#SE>TwDOpr{# zxsOdb z**9BW{~Ce&uv}ly?3bQ*uCvXZh2FkPt~1z9V6Qq<;NuY{YWnUlrM{$?VPu2DS`ZJD zp@-hy-4*m^odmSa0xG{w^4<2!3L|8S-ku)z5y#`_|z5@^Nzs42eJAd;?z<4mvqI`#L;)?OlL0 zbCYrL@p#gs>(kxa&$Ec50PrL2Ju>(VE8EQ)_&?>Z;xatQ0mNv=wt}mL;`F+)4o?X6 zunxmc0^+b3Bj+0Ava-N+`nqfL^Bli;)_kKXT(CCzPx9bIF_>Z*HbP1pzhE<85X>M{ z@tK=<*ou7b&30fAF4>s#ZcXfhvAK}bK!z&`v{+K)xq@Y#%=Ch2-b-}@AP6fo%4Mxu zF=S>Pc|rJMWasw|A%8o7n{N}h{CTau_c^J#-m%;4|Ejf>2Pa4i#9_h6-qVAZFAO;A z%W&uVPFF{vC#V=i7_opSFlDzm=Pvou%{f%P34!#>xY)BbD0x zy9W3E$jH3s5!m#VP4*%C{+}2|-Y!WaeOmxZ`MWkmjDj{hVD_`$euv}|GOZb$5++kQ z-8o>kXtFxtb96oH?+gv|D?D7TK>V+dtz*G+QCb_I$ zOH$&LY!l31X4aA;z3}NjaYgKD{^`2u3FTF62n1m4rHbHBkuVzc2!n)SnPtcOOj{xB zWzG_pWvqUh-mk`EuL*retbw71-awg2 zY0sqUa!$yL8rrqt9Jhzy0Dqe;9&n~Y4C*>Eo|K*Vjo(4!DC--(%e;9(8Q#dvssMyE zGMjfitgk7(YH92PTSah3VlwYP!EcS>h5cSqufzeCOK1%$!#$pufYwHTX<};zgZ3x^ zb!K9_Z4j<}o^aH-b7FwJUjQ8-KOcg{{-HZ!TENCnfC6`LB&e?9msdMq{xof>soVTX z78|@iuF_$WmfjgOP<)UlKRx}{jf^m@mJ@`a>kk^`H{cK(5K?b#fGObk&hdWgbt1=X zFboYjmi?W^h12P=siaH39Qo%_|JvdMs11R@E>H{!#L5F#14Ph}d-N*T16qSYT=@IH z=d0C?dV$}7ZV6ZV-=OZIx<4Ea^rsIG=qo=ENs zM+Ui%9n(uV3e6wraudkk=aQK&gp%n=TL4wT)}MAQ%q`Er=w2~3F!&>Aeuq)+E<_;C z`hQB^~Cz%?t_c*!W zXq)AMl&#a6MtFXe-46@#_-dbcEUW^lgP=T}+bF)F-N(;kF-}z()#*7$x{{Sc4G$u+% zRYa)g6m+!mg`}CS*>m~tvb`o*kl-}&1>CzZ+gt`{^juxY!ZAcB4&wU% z!`VANXBvN9zISY+W7~GpvDL9{+qP}nwv&$8u{y>br(^5n_dGLIXJ%fUQ}bq5U4Ox~ z_WG{9KI2NH(jU{MVG%H8(+@5Y6c^MO)SQd>2MT@NA1?cnmTtN3&e}J&f{Ps z{_>6k9i^no8hjt0Ze_;2a<*AG3zJ71es1CDOe|7~REyWn8Y#nN{>?q;D7(F=2=FNF zW{BXG@bcYnbFBFStuz0W84~n~qZnn6Fh*}LJr2W2UxQMc9DPAAqvm}*5y+ zy-;s3z}yhuY)dnKF5ew%jz(irgfuY$O~MddYq1F|F*+Y~s8;$C=a6kOt~2O7ILGS78vVRDX>CVUX9 zge)zn$84E{XBYI8n)8wdJZhtDpyFCtC4Q~!Ps3Xe7gExD=T2iZSx;=!@aZyM->1%c z-7M(KD9i+S`7=NRugfr=eS4JWV}WT=FF6x&%g3e#QR_K@M4j0nN`ViQysA4o!g85M z+?uT;7q_SK3Y_T=aG9!kui7!1=Dah1Rc_@PtJr>aVij*+wOA!6HU`J+bDxYd;Ync|JqD@gv`=IZ1ews`Y zP#cEOmW?P|HwV!zi^k5)Txis4f(Mc6YTM65iLy@$rygXDR{+InZJIB$1%I^In=W7u zuHiM&qP1g9Qy@cDt#d&`(+?z~DY;tBSnP^7Qc-He$jX*ov>+6=1?|dlFgn?&8cu;q zc3uq%AG>x|*<_wC_)+OI;%<0ukP6fhI~=F|SehGnpr8FfYJq1)8|h(ZYYO^>JGzpf zkinY~nomDlO)Tye)AiX9rbm}f?*9X&@}66rjk3BvI5qlcu&OgVZoR8l+j?F{gGiv< zOg^oH)=NTmHkD!ejkk)%n;;hxFR*}FlbS{hB*-R(Fst4u#$hHky9R7^bG-|1b#u;1 z#~DJ{T97?`k9xR8x(Ny>n0iI_rh1RVk@UgQowC0knA(tH3U)50Oh8k$$jhf+fERO1 zZ&Gc((hz(B(w;K69;n)=gIgQ@$3Z5c8(Q{74>nqKwIOq`UP;-lMK(l`Q!I_o_-M%c>^@EfcKn35zPC^?vHBOc}}Ob)79ko`xVO>H})$ zxaEUYWaqTHzOp)Ou8Pvl<$gK+6sdGcQ%AXS<#KR0yHc}ONPF(m^sZiNR_N)!c37&m zq$JDf^kU;un|p0Yk)ME4?#EQ;YdA6f^W?L$o4;zPJ%Ep@+g=;n3A2dLVkxf)%oU=4 zGAjW!)HO9}7HiUJCW`u%_ojXkS_v#U?$yG->0w^9G4^FJ>blF;dlhzu61r6j6~0Rq z2j8+xR;|=IsIjd3TBU@ybT?bNJ1n`I8^0$lqg@ojA0%)0cfce+L)V5n}upl-ew*LK0xwqZN}pK9sDX$P+Oort9u#`N5@x3>=r&*SZ_q_?LZ?VR*R%Xr87 zWAtO4E{qSstB=2l9U)?q1R?o~3J-Kz>5ULdVifSrSu)p>jkBY_6`up76IP#_@EEhU}!QGyp(Sf<0@zQo4hUZ z*PsZu@&2I@B=SD{&v+f~hT!Gp5cKi;I?HOQGjQ{8`BY<%3x?I~b%B9|TyZ0H%f@69 zbWEpvht&t0gLLj77C>e(E7*gkrE+uibWO@^!o2c2@YjQp>C?6aND&^ z5_xSlUJ3O$Hf)uXjZ3tTCHC0y(>KZtY`IrtS0ak~MOk-GVUDt!_=$?4HTJF{c-%an z_hV}(s030p1AtZ`!)(-lndp_fWT1Mx_l%|tlGSVo6c_1Xa@IBEuW62%OV54hlsrIi z%S5IwXXK3wrsXdS8kj`r$WP#TS%gKbSsV)XrR5s#*Z-peCFOl~y1{85x0Ca^kp#8U zw+t`hR4$?Qwf=MPh}5Dl5><*c9wRSzw|VutW`tCMNz=m&YfiDvV;q91apAj18r3I> zU%I|lwkDyoB|Lt?`YytY1?#|frEn8;3$~iz=3)V96hXyIz1}AQ`KP2qLVO%6kW|Qv zNPIBF_n(1zfihMcqK1OM#bBd7i01k zk|>D~n(AQepb7_;11=d0T0t)Jd?8VK=Seo6tT$eR6g@UVxQeW8jJsN~aaOAdQ->^Z z**0ZF0&DO;S8GdIp)NQYEjoB4LM*C=&>0yjnco@2=Yv2{?kLt9O}dQm`3}q=g6Z9< z8dnHZ8jo);JL@;6NB>|42;2dVC^G8>{wAh4cky?PG>{%=v7+3j(h4QL7VD4!)(VG7 zqAKE$j7E@~!i2ehO87{M!DY8;QTyXLP5CP*42v@)jguXV92ABG6whYn_saJGnHGq& zOzA`kIpbJ6qt9TX>oYjeFV;iN&nz9Oi^WKJTJpI?w&5HxZj#H~NFYv|tV#c;IaO>U z3G>o!K0PfP6(s?w`5qi4x(W&|hiT!!j%r(1&M9FvKP4QB+V$SkzMdpaFr*m+WCPrk?P_?Kpa0fB8s;7h^A)C`90Uy{=?qSQ?H;o;?b0na zTKC{2^%8@uF%N*pMUBMSfDG> zCuqY;ghVgXwTpyOZm(rLF;mVDE%Ix8x_6R_roI`_)D;j)MWvWO_z23P@{oa?M5K~f zRdMh1#J#_erA-nP!r(2zv9Qo^5_1M}Cc8F7CJD$N^j4mjkRLoN6(G(Ylr;h7n zsU=(LyZ$Yg!k}zD{f9ufV_r1uTyb0~Z~B;3?+Q6aQHp|(BC8j|Ce%*G0RcDG=kS&Wj9C-nXtQ1h418SNbNU6CZS z7<_i-A%6gzyfl-h3Yr;6QG1CwUwo!7p)Q-W9G6#zB$Y3!+%0N3r<~dhiLL$Rvdxsi zUQq0pq|EsrRw0!~MQ=GTdex5lZtOSc0c6)Ii5%z+t zZx9qYP*h3Q3dC0WooTgg$OUnqF)^B76bhsx-iBJe=#4gY`t?vNx`(TSa$gUvL@fPVvqFi8Q zX|mggWNoWPbjGpmoG)>k4@fn+JI@~J8>=(6gP?F(V<5usvm6qev#kGSMA}V-KoK<4 z|6Nj#w<%e+bl(bpqHn)zkbBmDk*{D0Yq`zS$9`9L$Qt>CXjB*dgeck={K$=%8F&iX z#SQW(`JhkeU|H=v`g?XogAQG<+J`hA@bb@Hjq!xN%%Qzqc%}i%CZU`5N!NVC!1$5f zx|H*5HC=xlWlGk}ch07~{?O0LT7D!;Jx21ouaA+cIWY}_?ka8mDsmx8w^i;)dc96`TPFLFA zUJ&{>UwaZH0+`kaNpV0MPM}Z_g1>~}u#&tu`xGGAuv-eQ1R^`&Ul;Eg4Z?j%Jk?

    xVPum?B2`w%==1P;<^qrDLZA} z^PJOdC;8~A$_rXM#w%$r>hxcAt<2%3(DqGCPex-auZuf2F3H1JRkJ0+!_>C?nOa>7 zsGM{aTPvzpso&}y>Fy?93)0^6Wfq0D=BR=jNCCJYNE1`@M>Sdgn_5zmuBJG|k`(x% z+6IB<>xw6sh7o8kBevUYH_ZnfFOL1npcsCn;5@MuY0%%u&yMckRM>}Dv><*Mwz(qC zYo_TFO8BA4I8C=@uuKoZhTxgs-iN-P>GA2$~?yOH;>-}bM3^c zLsBQniG*_^Wx!$+sUwEO=284GkaC~ln^f3IOIVc6i@JKCbZZDyhj^VgBgDkQ(f(`` zRQ7%8*#+JOrO(2xgl#eA|FHS=6e1w;Ut@%yM%NQy@pu{EmG~MrKryHURi!Sg0+oU! z=RN|{e`s|zKK}Y&!`GI`m7f1`#?WLWyww?&?cA!Z^yL;JDDCd$anFY z5)~~B;%43@vTqmaLK*3jaJ~F-@0e2pDq{2m=Tkq4nukwJqTF1ws`HF!~XoG5xC-GbD=CtJ|}Td~5Mm5Q!&dc$u-cBY|2M>+^591=Rr5*QccgAq5@8EVj> zIo4!L`K8{{rV7VyHCo7tnkP^<&ifq0O%dKkYzqc~d=?Ov-mw1`-IyGjY zCy8)D{0!YD+FwEW0%LCRvxp$=Z#$6hg6VN$^~UCFETKIR+Ry+4|F_cZ0mzw)A}+eB zOL{&yYeEjfr0ntS@976mnx<`FOaCRt&OpJB3$)Ru-~E@|aV_Cc)5uh;1p*TI_t6*x zTILer^t60Q{X5&0ke~{xm){~=emm!53N>79>P#G^YlXkozdg?Mh8Z2nn8D#9QE98P z#v8$vAICc;LMay;AW)qypQ5@Yvd@hw&)-OtfhHhWHf!}_1_e13%W!7m%8I!LThnZ-GkRwlnGU<1{zbGk@q0P%U0}NVEcIR* zbDbRYxoWjg25HR`-yZpuCCUp^8P=5Gk#PtiFR=C zwd4_8Dmd|oZU7e*KRj4mnxgexJqx9Fh@9G4WlDVP{kiQ0Bdt77|SvyYlLHi2eCk~wUZm! zzX!<15lq}&D=32(IHV_p8!V35;U42n3guPIr^#Y8J=wiUS@%WURni^GaCmHvH9fx+ z+N2J8vcK=^yL2IWHl>+6_~5HKFq{GV`VX$?n@tsIRcM2FujMP%JufmPiK^`L_Zfu% zuKGGzW|0VQ87p_1CJyq1v{uEQV0}{UH3+;>g(QZ^?!*v}tOqj6%d;Q%{S)r<&x9M^ zoJ&T*c$fK8K~2o2>JnRsM4JeCsgQJ*K{=4{&FW`HV}VGn^(JFkhJu(RC&FLz zp>F8p);SjK-eqE%#)S1ogTI06W-EXc&_Q8M7GsyX?-~Uq?R|Z1+!!6QO)hDB zX<^hCZM43W+VT}&fg8r#1d^AJIyG@DiZkQ!p@2>u*cuUQUn0qsK;a&1vlO$S4}ly;{P}}+F+iDjTljLO zx0`#o7&WSIJ|(uu#)CC#aqm{m6y)-?4r-V}OFD}~)2>YCpwY_`=37)o!ZsnoairS} z;4b`n#%zuB9saQ13ACT=yA&wSQ~==Gx1gv}#2(Qbam&=VNSX%y&QVbr7^mqE@dc7> z+3*f(;FZWkQ@}nhjPxts;5tP#mb9iqbuWuQ6JadDylx{6ueC@Me~Muj=gaRLN11Ard8gTNIB7?=1mVTK<_JYC_mfc~}qxK8#f87ZL8< zx~zaq&`={b=&c+-!)$Ypgh8|8r9$gq)K6Rlihl+6J?n=D53Wy-i%}xpun#1*v=DmT z!)I38m^m31(JkdH#P~V$6AWS70!Q{nGYOyt*|o|k%3?`Xc7+G)U6qxU9!r$g41e;V zB`373k1YLT_;a=)zF|CCsB3?qn6f1qNX5$Ml~sjtsji*4I?n1(AKp}|iDpT8RH+Pq zO#0yTSsej8ak~F~-rdc7BU5=@ezwj%IH-8x#@g54t(IFrK8zMedcQRu$Jx7go>&PP z*UEZ{O<~Yi>ekvMaAzvOup-d0mBL@kj`4t}2o+KN?jxMEJwW?FWLQn3#zepflY? z5dv{6VkRSt@MinvG`&}4rgOW*NbZf54p>Xjd~xk+8uSFG`iKmxVBk%Md?)quV+aAE#4 zjbvQYjiaH5-EE>$=-Hk^-Gre>Yrg8D_DVc*W^e<8WP?eRSvgkHE09mn2x@d}`F9x% z3Y8ps(S%Ahn{`6W_1(jM#d1HhUEz7)n_bVs2KhZ!MSS07UnKkgzAYdu;h2bHT|U5w|}7 z&uFEI@dMe3ri~3ear&)K5sqkGB_U|YJj!q=-)KmjbU$s+iX84Zsi8y^Dcxxw^}9u% zEWoRvFy9!Xm5$aHgR$SV#>jFr>>2PA*w8TXFdkzow9X$zC3nG-o;-0zm9FYn^Aw)8 z47!udHjyROs4CNzy6a%(q@5fdhF6KR-=0tsA$+=NEtc(lcjYj#19dgyDdV8<4XhobqE;2#RS8^xHZbOV(?(Aw` z6#6d$@Kiks!sL+zK%balyH%~oQ5V-6RB_CocEE`&yHIGwem#@WO84q8Bo6gtT$W*$ zf3)(L+x#51$f|fcA_j$BU%*IRRD5BOLHp&E!hv#Y2dOui@SHp{2q5!aahbu}c@@i2f;&9ku{=f`3;46{|&6Mv_C{tlyw_3L*UK z(~oXrtH-tU>EY$cR#&z8vED6L)Eo*q{%G#CVK{=P_?}m`n?pBeJhbpYs~9zC zm3AE$JwtcX1t&C*W5_A_r;yr{f5MjPF`TQ5A;%vPE2Obb3EOSnog8p8N=((3+OP?? z$K@$a#J0QS7^6FvRE&c#X(%{tyVxVCqp0IGv8c{@TPz#>b7uJGEvr;Jy+YWZs|>O* zRu5<`i46{mQj&qy^M{GS2@Ai&W7&#K1Oa#aA*NBoq#E= z3lM)|Kz$G_+lo0Gh#V=AnBrui0<_-?b9eGnuf|ETlrSH((ZSaC z-HQ*T|5e@-#4QMAf6MzqZUEpLPyhevlmDOc{y*`T|K`&x+S^zfd;X6SjQ{q}cfS2| z2siw1Kz$j#m*qw9dB-XqDrLknFCAudP})g`w$^Q;i_VT-|JzK$(o~vGxtu+tSTING zGZtbvYrkg%|Hs~i74o|iKbd{d6r9t?d3pKgkHVlt4Oz;xQ(lvJ+@_g zA;=iA(7{F>XDXM`sKp`VXY7cq(hLcUX7bJ{er!?#Tm1Wv&%JJQ2`IA23G#Q}8H&Se z2yQP&r~CJBh&nbr*zMu7UNv&A$xoGZzg>^Af16R`I7&2Sv^l?R1S zCz&GVP+9I1@jUVK;pMmGSdvA~pUkrFz{bi0iNO@9A*wazd0qHaD^h+7lKw6xc>E69 zgy^cW7kx$+a~XfpDqKdzI@A_S>Mb-A+of0E&cx?ou`laj&Bnv%T8xY8caO#om_kLH zYKath&hbpdFL&UB{1zPYDHn)BlEnvg7C&DYWFR5^>LJoy$WI^XED{*%s(|>nYfrpJ zB=yCkS)JBE=;Q(%UHbHkW3YwGB#s<40epWaek!=UOPXku%LF08&wKgLh1+M8_q&_Y(-jw^*Sw$JZtoX|>I#Hj z^!1G3oh^4gJ6aNJKHxLP2>Z}*{EQ99)c5d7Tq&~6J+q1B!bqrzk{W|D`TQH?$*L=< z0^ZolK@cuMx~I+OMTJN1&v^(`?E?)#6vI-FSU24Suue9ufwZWOp~)m{O|DHTCZIM{ zT#<{2h>$#?rxrC^_u(f*Nw;I2%AbyAQfMYGbGgF^Ri&0N&Eyq%{EPGh5aNEOG$?Ez~;HFN6gcK+=m7J5qY^eRNh)yTm7VxltabBkbc zeAC^kX0%aw^Gd6X5$JfBxm$YrorUkA=+Ii=XvPFsBAuIrQ&i(JoA~D!MQL@jfKP&W zc}ZO6?VQ*5_h0zt5cK=VAO1Cw?$zH|m&~%C4|jhmPOKJYlsu;fR{L4k?zILXRbor} zWA3RM_t&(F@V|%7rL@cQnnnJL|JoZgFvZs#eYAyyj);#50J#c z5^#8wOz#bag$L~&R6lqw)$Dx%a(VJO)E$Z@sy0H~mg3W;-Y7h7f7{Z7>lUA93x?co zgF|3JGZn7op&gK!t@Gj1q92sQ^GTZEUrhUAN2faz z?#q-?Lr(>Eui^@`Vt1H1v#_V=Ia7S!vB&y5-Es)87dmNg@C9dNMAz!B*pjgf^{)sh zow0AMIh<$j4W`K`P^JuJ@14}}bVvCn2xiv(=fg}y{HA1~vg-m`9$TKg?QN1ha*UON8_$0{hlbea zIRo}pJ$c7);=SN0H$3Kx?0yQ$WkuD()-)!ncjI(RB&6W0{T0~9Tc^FyKNcm{UE#@) zV>(O+=tAZ&|5IQS2bDULNL)7Gm~i(pSR_z_d3>!cZ#ljMQxQKQLgJmp7Z@PoMDyIw z3}>169s@Oj=Okg{yGe;JHfkX%BrwE<9=U&0n`$IP4+vN-s`)#C}*WynC=VUnGi_mjO6dUd1Ed{Ag>fl!#5VNDF z_h|1&9m|w=B@k_**G<9nSANWV3`iB+5dr_c%)A1DBD@fKWFug>fN(udmbe?M$aEEzU=iiZ5o5mtZ2E+jfcB)jSIz1>9lt0WHpwT=B16tTB zV1+_XyD&*EUfNBRa)|5J%hKl%wIT)n0)t*@)@h8cj%b*iMwZDfd^I*;`r0*3e4))mM)7!KLXzVg-GsWM{arHX3j8=!{OgHzRvOR(n9B^;>Bct*eezCwK7Dasu zlzb^jmRddP<^(#PH8uxuC}WXo zFJ)m$b_5#7NDR$e7yOnSHh`HZ+S-1H`@U$ z#Kd(o9itd=QC~LJq2CEs8V2WNqled^z7RAxCX#{L>rqMiPuEfg#FU1Bu*ejs;RXGJ zF++$n`W1Zrk|TyU8r7;W8npALMI)Gxh^91(nxudhag|Jq#bk8&V*n34j1`l<(L_ZP zdy>5(0r0O>Xl3?trAV0IWyb24VZ5u>{lnb>j>D!fTRN7#(0Y3L2ru!pDOu`Tsss%Z zK*zE{xz;vbeb(<|=GN{h97TuU$hQ{|mjIw#L!)#iLIkvedk7B)CIAX+0@brQ)PzkH zLL}ABhV!JsWY%Xs7y)62CSUO>el#V)VHh|SOCGgs*>4j{Z*b6!EfLv!AlnHdc1>7= zzS-1bmkZ;IzHJVJ{1d3J_r){j(%BaYZl}gF7$#TaKM0`*nwjpkS<8c%b>-a47xJ5$ zXQxYW13#LKVcldLz@2-#rR6>2eG7;?9v2a>P?TGZ8rxJ0mKJit1nrA^ntoBWvtU^} zN1zB!qdE{*W3N$Sq6tx&s|=#b(iGbxKo3uVe)H^P;St@m!2IHJd5t?p&EHj24Usrb z#&Wwf@>*ii8%8>t5h~XKlUms`7{#+~qqb-4V~WkN6_^I9uayfuOSa6bxz5A`?r?LQ z&Zm~oAgX_swv@h?E$9IiJE1wWF;wv!X4wj{G=)Qr?z(Xm z9nbYXlH{EPPge|Z^>m;NySBOsMdZpv&+VUv%hx9Bp}0}79lSP`etm*ZKhNhk;NDew zIN=Cz4^Nix^24w_^h!OVU!V9>Ux&C3?q`*737c>gtf$WOqT`p)>^tM6-a-HWs{do0 zoOrMh0Dym{007Vbwf_IF$PB)1B|p&7g4_L=swv!%*ZZ%50rl`QmsZ z?=Wi|ueJNQ$}q5eK$cf#2^ z25(7A%fI&C{Bpdjvtna?U5nyf<{f=JJEKJ;)G zBb)2FL!LESD@t8B<^3#L=MeICu#vD@wdMv!iN+iVc_zn=Nk`Wj4hQ^=et1KUVB#>$ znIFtIL_~6IoE3K6ofhz^4T!_c5Z#|2O){{XeI3Q8YzdN;Fx7LmaftUvvecLKKeF zZk7^;tSxSC+PvX0R%34cL`b~&Bjs>VZ^ki|K_^DA0qFjvS*LHXpg7|AVydmz`fOUj zZweW{=|C2?-p>66bu6io4{|N+EkA2$oO?ySZ>cv)KLAzk)rM478Q<_;IyucBSh z|AzL_IDW27L^fDT*YsS`c6CtSULyPFx*uGE0a8n$NH6xMC7dfy1q5i+!20acb$~Ms zv?GV%52xA((PF%Cu6|q5{y-+@o=ASijQfqSGUk_`I0T@?ago4c#8;U{_mtwtKW#?s zz~j32&E)*I+dDzOzV!T`Q?nv3FERm?qF4qtP*fWre>fywFEf-yVu>k%AHRQZ|DN|p z?<%&TEsqPXgUFopZ+F+cV_?(o5@6Rs8+%36+!45ch_Lp`7=1ki4-@eoCMJ+A0$+_f zxgF=bfUQeSpo2OeO>l)+ZJJ`L{21>G2TP)7qARmyfMKM6Yn&qEM8+|H8*lQ3G-2M* zO~?!n6AVLI5SU*x7(fFv7brk`F9`JWsxRJvE7{pD%wE)=mA?wsGdv9dWXA2i6)c;0 z8S@3PK#iW`#ET3m7xG^VO9Cv#Q5U|9!V3mJ$)}R#PTbX+g4F@e(%uEeqSu#w@NXC(B;ZvYI`?QVMOG6YJ z$XbZkLZJEKwHS&H<;yI15}^7`R~WmaYng2W&Qc9X*X)p`GkA~M5uA0h&BUvve8g!| z@NEiUYiy%9z<&yNoia>g?j^K4q$&h zA*A8B z+!6e)d-y$x*Xwa?MCg-0iBhqk%Ub$WDuJHxMJvwK)MzZ0@Z-XoTreWka5anBG-klN zrxCR$Vv0l&Wjw{gDvb9SId4NA#(DTJoxnw>3|zr^JzW5uh6W9RnJQ}QYQoT z)h_VO5?a#Q&DmWyvna45;H|FU=K}EtzVYnQuT~Y3BYTy!psMzvStc2>Ij4>+UVXt= z`=E>(6t)e(v*?irLe2a&dm*LOC~s|^P`&h+~=ES(WJ#&ebzj~P@NIKBn(#g z0$XsR7;%##?gufScw_Dx$Ns3UF-i(|Ev_RQse^O#h9WV``59QjH{PXedS-O}j#JZt zyRIo^_PgR3E9ts1NuxYS@0!eC%dme1>-A@72mT&AKVN*?QRa2VznG^MvGd5_H^aJ` z$Uup#Rfo)LnEKbKtm0;cCd>LenfUP#0D%w*^-EY{J&+%->8sLElY@753vEXzR_+u3 z75I)%ZcpO~-Wsc6H_I1TfH&dbhl^bY@rCjUi_(Tm;GF^K&QAg&O9v8OsW%87Yq-;z zVu#!_VZtN`CS$rHJNAohPp4rKn`oPiP9hL8;v~XU#OBno$fe;7ZEl%uGc^$s?c9{< zIB_+lAS+`H?t8y=uUVcf-2(l#bVaW*IOJSbA?gj-OlEOX4whni+gLD3q&2<~L!R_@R zBV^S!Ib^EZW}*ivQQO{)>_ES-#`2wQPV5$7UJcMnjS;8QNIjob`S0G?c-_gPv1GQ> zXFG#Dgf8=7`u!pN)6QP*x+<-8TndJfY@~!LfAOo=+$yLuf^GbreKUzCu~#j)ujvko zQLt?hmaa<=PTWosCiaP7?=zh4(*shw+?f7p@wv_h`dA+=$J8O2Wpqj@Qff@%&Q~Gt zo|MfQMSshhMyW7Da4f=M^92oa0QjdOXYq!h#An7dr+a(c`o~`rAyGa$Pe|;yhY2nd zlM-vjJh4%@&;});ylbBrd^g$0RHJovfj-SKtc?iM8t(0$L2g@;Q;0FU!{Y%}{C6$j z)u8x3Esf)Q;AopjEW%XgHd~uz?8g)Q?DfDW+Kyo+VjEF3!ZPCqzPcC|cDjw50|fO| z-%F{gG`9c9k*wPqh20Hq5vvt14fy@h^nq#i#}ZL#HfS_lFDxYS6?zivWW&=_<~v-T zXla-3Ep>{AgKUtZ8kX&rfyCrJo04?iO;F^#Rnl&aV`uL%1TNfhn0%vE5o;HgOP!voOt zewNX|BWT#YjW>6mH(qhjX2!rO#XaAEMxw&Yt7c(F zq`xk2G~=Q8hL$Tw`x^L-GOV10Gc?eUb(w2Vk?A6&#w8ajU3&wmO24KXA~GW6EE_Nq z+d}r`)a#vGG)-klsc1^9{HmqD3koiLsotVJoCBc*osaBc(uJX#2$so9rWi{anSnT3-TG9Fg~3K)kwbd z)aUEzv1=9M@quY7718DGr@SNPhspjZN$bTX&e02T51k^oGDiX_p#Qv&i|N*hVj&$F zBC4+Ss#SE!sNs=~tSKxSQmPz*J99E^H|f+8NlHVCJc>+r?d_xK$O%u3BIJdJ+hO78 z^;y@hbQ||7rV*!KERepn8?0L8GEJq#nlL518>o2(YdhLOvkIv7Y)_4PFYOo?wn%l(_6A&Q_ozFBJ_j^>+*rKGb+jXZ&eh^W~;3Z>#%LG4ug6}aKebHrZvshj)hvG^vY`%TU7IlX1lv| zD}DKG3AXJNdcDeO+vZ>=-K0~gw^^b-SoG`?OrQLg483tB&X^JgT{VTZ_>X9~g}hDt zXu+w}t4N-GNHtZRsCS;$S_}Tvvr5_ub(P`u5@`t6g6g9exSuHrTKX8e_P5mWqtgea z!_Csk2_zo9lPO+sL@tnPO1T^oa40IO!~|DTm=l?a=L%4kDKZ%qqmjZ z-Kx*qS0{dKnCdBWlBFa`{e$xtTXnj6Pvye#yR090eLUJ}=lo&-4s36~zkPqG_P%gB z<<&m|`<-CyufBY}zpkpizVS_)Nk6n93RU%L$b!k`K2MQ8DK)!r|93c&iX8J_a6|y0 zLkR#7{lD3_{%5-Czt0x_`>_SjTKRzMd-D=Lul*ZZH4Jj}OBsHT=KHzKU63oOv$wXo zntDVn0&475lO=O=`}65M?NHq)8=M8+CNXGurFi+QeW?k_pX<~;yk9pjDSqgV)#>H* zxn`AIt$F$NLA8CE2RrX1YW49S0k$|Ba^Ag%;D_4z{UFJT=;U?5a@LI5<3;LB@%hSi z6?>xcm+REA4%0?zookEhvq-ZP!`elX9_xaQFi0D*07Biy3fCYenz-)b^$*O32FdARyEE#!rnlQv|8es;n`Z%vj2WoYVv63J?=IObmo-pT!|NxE0|K-$ zFy|YAV_kh?nefUN{xYV0gGA4r;D|0VdH&g^MV}I>je}xv9MT=sGI5pGZjFC&$w6m7 z`~L6XittKRL`tG+`8!ml*USB!PVQbCwtVC3R7b4wWp`nGBY^${N^H5?ptHsMpHP)9 z0T)VgCl4#&!8HAiFG#57@b7{uN`9&8L~Cjhu$dU&P}Rw{s)DpvyGH>RU8X=&o(wck zuWS1f1=Y1+WDsrm0o={$*YXix+&J_c@<7rMCI=)}=f8@k%R>>!p+CzB_dgR1zmjxZ zJ{>nZrL9`Oua5VhRiKgi3H0W)6FNkPK)ra25)pur^F&?B(U{&*xQv%ou4fW-P0j!% zxgaNi|G6&hJb6V$0e|Z$%`}P!-^I@GC))dLrk^%Jp3GYUgSK_* zw2wF1&76#~HXUn|hWdbY?Sb(YID zzA}D=kw#vk(DUj=CqSe!H{R?>3tm~NG~s;;%sh8GMSK;WBye`pz&8Tm{Y&T;YM^&F z3t8s6T2hd&9f4s)eMHu01@of0u}XDmf`<)EV6-s?GjMUru?QTjR*@D0gDD~~$Oe)y zbrh6oPdR@Nc++!ir@q@C%&>!NKO2zlvtlQrxetsku*Fbc-yIju|1*yrN957@ix?~n zX8MQCNE`@~#$N>q)R#FLc1j36i|nN2@xZn@sH_xn)LY{La1Du#X`G^Jm}ovaYzd#L zXj`(%Si|OT0y2geR(2KfSG`w2xqj{>R_h}B@DSj;`}d?c=M z=@UUB1b|VB-^MeegG7}>=_gOhRM#1xTKs34hZAUH?=fSesGK4Fy)MLwz#1h#ZGwJ; z7^ZPfDHqwPV$6g*qx>Xk6B)%6=PXIbKTUHcBFbFD@Rn*}E*%Y~)&N?bC1M_s^9t!2 zR6feL$Zka%Nj27FwKLXxs`LBM);T{*bb}Sw0pVTAg5#8lxL-K;&f*>{su%Hn0|4w~ z^~-dk7Onn=o+mG>?zZFYgib1+sn-{E#7>%>JFC_~S9vy_vYB3(JyyD9bk<-ctqU3h z)Gex0Ig!f)1Iy*$D+^hC3PeGiWuEC7m@!p6@D9je9`%Xp{9socE`c9{+Wba{17=1& zt|Nt@agCDLpUKdi#Mf|`U=oJI{bN$0(R^qYTR8*up4 z+q(LVJ5BKZb!91Dv-~Iz-aC!FVGdR}KF+P)!Q7nYnQI1mF+?>vS1{DAQr63!h_*a2 z-C%cwt7l_*Jpk$u*}-7d7$R$ls8xa#UE%Oe>3A{OF~YlTCQjGDU}SC}HEF)kx!C&h z#uw|UD2Xr#Eq7llCSm1ETj{{@1_qFN7n_sG`vhWIY5aPF%W2#;z*z~&HR|$&@r!B0 z{U47Q(AMk)QVCl%RrIh@YI#A(4F-8==*2H^cDA#zay(KBe#gS;uJp!E-A9F;%J0=Q z3m@nD`}OslJ=A**?cf~txF>dZpXle7x1Vd^E?nxvhpFdx4Sg#eoUF9F8?p@h2$fbJnD8H^cSMK|D!eN=huUkC5?#a#gdD0> zAwo3K=7|h?_VOF*i5tkag54@uF1^0!TuPmT#>PBfad-8l_gh>3x4<_Hb5iDI{9DPk zFzz>gS!s2*Fls#L^(jDQZIShh-nklT4y_F#3Abp-^v%HLF+@4r0%L0Caj`ct)+#K- zlJ$c8>8gwdD(I!_cT<-v^HpUUy=jfLh`Ey=&->br%Slg%y4Km)J;5QTo8gEMW^cOG zZ2e(}N|wmKvg|;(b-RNtC+au$9PPS79MhdiSE>O8G5#qxya926G3^7 ztKiY|hk1{13pxVfjvqL!1YclfqtOCiIo%dPEklHVM9lbn3wN+}&&nVU^V|2F@F&x18ey)?G73awD; z9lP=HiSJ!YEx=4mRZv10(EByvM71LVp(2UpvFRoV3wi{{iYhs_v(^K?+uPXzn#Q{rszf_)Q(^Ws7niAk~#QW=o`)pwtl{~L;*yf`CG}f;3SilxPW*?y5e%*YQ zgn5U`O0b2Tf7c)Y?k9-%rrTyJcXHpv_!j#lhz~!%-(XOA#dK&8kj~4$l2?n!RJVX1 z!^76x79YJ;Pt{OeRF3l#(+`=KTQ(x}!>xq}$Q~c6K5SsgC@Y2%{x*#8!UYL$#eO}O zwG*@5Agb>Xa?g-v!*-=;-Ks9jw`uEl&VuA+Uodqb$N{Z5*ZDg&5!vD3F5owk8UmTC z-957m)x35Dj#_XBe7xW69!XwUm0|F1r0zqBbg&NV`i-wDVq#h_pa2>Pt+8IoG~=d( zE?VUV26u5SUA0qfx$L-#(B8{ z6M8s{`-Fjqf{RZ9j$V!;2M|Q>;g-J7fsx8Dm~1Sfkt&}Low8sU)&&^`L^KajWT!W1 zPB-mG7EAVd&GZo`HV!JNcN-WZsE%V&H%li_*K)3GjGORy_^e5BX`okugv#{@dglGL zTvYfB@F_Q12o*;_bvTVZo?w);51y`|yxVaH?wuh;oixYp8$yXiz4Rt88kW1ao!;v? zLErtk$P-|)lFSvswJYbhMZ%ZifdJGQ{q-~wrB?mz_N{B15=e>`yc z^jg`al27;7L5YUDQEk&q#ePbVPsIo-!-P=SmIA5i85Bzp+o!k6G~G&VcFK>1 z5MYq?_WwiLJ1|!saNn9IPCB-2I~{jyCmq}D*tTukwr$(CZBO2dsruiVduwW@>fj5U zU!A@8TI*RtZFNiZ>D=Gp|5qEbWh zx+2{Qzexr6nV&`r>;((+LsV)14cA^zLy5^}nv+u*Jh}ZQxHfNZQEIat*3jWkzr^C8 z{6~!3*@D~}f3Z%1P>D$wDOTM*-$TA6=y9b}d7Q%$0tI`*+BBKz3qjNyV*oCLHmz`9 z%SkfbWo&Y+d{6LF<8<(Yt=gE`xUq=gES&9-&_=PfO9h>2eXwaBrKQ1HnZg5Qw5V0+ zr5rA?mY^PN2F={Ss{gofL5wvIbyLRdfED&34egOaj$^4Mys{rdwMa-des;)||N9eE zn+A`|weZez?J8k$FO&Yn!WMUwtxMugZTldxcp^Br^=7}wM$h)ta*J~uC_I>-dyYLR z3+{{?=vleZ5NBCPMvw34NI5thB%!A#b1kAL8=W|>_xv52+BbeKuB|P5cjp$jmQqSn zCE3?j$36*aPJ4eQ@Mt%hU-=F4Usb(_Y|Y#ZNB|&;0sxTv|G#BQS?d`J=vnIhGx(n! zSL#3Zz9zK)#N+3ErhxQET~U8nS2h=hlQAp&6`wR)3$H_bYyW> zD?JbFaL8jrR3l3FHQ{Is0|lgh!tu4LE8&9aw-Cdf&H{|NqHsnugiZv&<@NSog7u-` zhPJ`@kmhW9d{z7?!|+xX6Nh0jJ3TZXfdc^s{J;mavnJfbK=<+n+q|_J*-_8Vh~cxe zADu*a=9xL4@$;Y0#lyiR&Zl|)OJDAtz9FEbxXZ8{3}n3_a(mE2q5;!T&GXrAZ$Y~| z!2T?}yCpydv#L2ddIk%f?OQy~EY+F!Q2$Bs2&^ds?$kz1eo{Q98g|>p=Q*pKKdl_{ zA7Hiu>&iq)2_%GseFFL%U;_MIzlLRzpnI40n~c_Fp2&5q%2Ca?n^@!ex@j0{o*Jz_Mero#fji({!6MG`)&a{EsXdE-i`hC)9NMb(hqd=9@D= zum>Ld!FRb)57(pi#dJ~)qIwz#p^+9uyw&8#IXA66xfGFs-OV39Z*O;RPrqqq>z*p; z3Qv?3RlBcoM|MFlx}uN?ji`QFOk0Ul&TChWg;0(rz*EBT@+11m{zH4EoI+bwdb2dr zm*3Nul_{Jy{`F3jHom>;cLzyB-6A+qH%yS`T!19HMw$l-CQlR!jAGZ}=-0Xgxw~J~Q>})#oIW7Fmo4E+|3noU^HqK|g_7pJPyFPakcDvEP z5p;{f9YbbklgjjpWK_VJ<&_}lly9ec6_01DMdprkE965~ z7LY!x#758(iWCdQFv2#A5j(C4qYl2s8$FVjIzfg!k=!ICQO?ZLug*k3XP=_~4Xu0r zYc>;)b{3_ey{AKzVzZk(rzZ<%t4Ga707e5H&*Fe0i-bT?#v^oJ`j;ESz^CN{6b(ul z3u9r>i~5%ru$I_K1JsQE2yf3ca3XX5okn`|i4?Q!t3o2;Z#9@YJaE>)0mNUS8A5tV z_bfE?OhqzzO~UdKKIK0hJ83^3e&ytfI3~FuEj)nl4xnZ*e|sixbobGRi4;Y;OKyI> z=*-9L@xB9NQEI$=miLN|YztMCJnoOJZXrvE~mYS#vEJw5z!;+am+~g`fnr>4t6c$EBOv22AU$nLmN73zRS znk=LQ>a=nG?zSv(>a@MPj<3^A2T|gM>o%>0Drz4?aTz6SB^l8wA+>Tvh^o?zUH-7) zvEYg;*lKwHviUzxkd>RJ`O-?EHN+Yd7;BA= zzhm%TkAd<9{q+|V*HjucetFD7qlx@S#So1v=@Z?4&sl-lkWwxsGJD~JE#i@? zNU$7g&VY$x;V_MfS#P1#Cl1CGp;RFgD|(jQsGBDTR>jR##ybsx5o4p<{n=}_smRjV zEdKd%I@OCYQ63vkz}bkYfM_S78>t_~BU@R>w!H08mpg*V8WI`6xfewNv(!~6#%x}` zs}?D!uwqlBIr%DB&zsgp8;z^{ucFb)iTMG3RLUJ$d9Qv|V-^Z|nLR>f1&V4bD^ssh z%i9`J(l6*mItXRooPj_0XC1!m(gIDUI2T!?&^~vt8ol{h#6z=B`Wa%3%JlbHq(dS; zt#K++Mj@?6{47x+L+I#Cr9eqYo3Pr%^Kf^N6ylCTVC&1i@k!Ky#oqmnBl9cf&}OBq zehE>93s2WTn;2);&^T< zv^Q>tMLY7iP-D9od=Vdv{U|jSID;u7-hCq=h-J*Hf`l@Ccomz1jL5StsbA1H4Z)z; zP;fWR!D#GAgVz&a<`VCdhZ+BvYD6|CtSpUCFLjS|sWWUaK*X|8AHr4PH zA@mwsz&kt_NwkjcjI(Y)xqP~@VMu{ghoKk%2dF%8`@C+3_Ms157{Ny%v<=P7Tre-rGKsX9GaYAr6%4hHrJ z0+n&uZUD#0#!wh$hX3*pO5lofEBHf-pD8+QK)1?M6Mgv!PY?eD2|dd7^6mFD`o+k> z&dcHAcy|}#Fy($=^SzUJ#rMXPQ>kq|0>tpx#*$NI*dh5!d}xS1_UTK~4eT)2)w#iC zbpp;+OiYD~#7Vr?z|Gf3L)d2XM}m$F|#R?~c80R*@^X*0u8eX5hD$ugl)HJ~gj)1grIWckvv!W}Eb8SAY;6S=! zCPkArC*V~*p#7OnR2_}BuzGQYpKqu>pi2(Vim+O}8%t z=+^l~;6v!WS72<{l0-!`+c^jp(8DJ)5PWd<)T5Hk$(Lvc_se#?pXSfbbPc=BujBM5 zEzNRA3;@D!n*czr(Z0noq9NpL?52{*tF z@O`pPol9P_m!lFmxFX9v;F@vaI~@orfkKE5#`te$XAGT*e~0r_NFxR1xMGZXCQ&q7 z=8Om{5{I{OHbuP>Td{)Cf5;WmVAvCI&ozIdoP4xqSmVBb0|)Ep&-DxRLiZMUBu>%1 z=V_-7H2Ok}oAYQvSWySw2d?N=O`#1K(kT8+1|elA*`-^coe*}&kwL0xRikCH!CVOF zt9&&bwWy@purwqzoE#Sc@>$LU+0!TW{sH2BiEi^aR9?n`%Af`)C?e%aU)v4$R3Y7ZbaqiS!H)!V6EK-Ic2C)=v6z zojd;w(T==>md=tchxY!;ZK@Hdz~+);yCXFl{z$0pD#s53{)+{{VK9gg+H6i{7-`j% zsuqMp+teT?wzZ0_k~}Q|jOf-t3@n9J1E?mFR74(qXyr8Nn;L@Q#%u>FWFRQv9n!pK zb)<({k-2@D^~}k)QsoT7Py0p(G0ZB=L=?4ZL0eSMOc8gE2H}E3KZ_sd3c|iYNl+Eq zQx<3q^u5Ih>W+EKo2@M6{=?Sa1I5A1QyB+jP+soomc{r?v$0*vZt1E~yq?CiPaN>K zzPtnaJlC^H-RKT!pMyJswsj6yL4T%Vz{{cr8b2s?R4>~A3F2Ds zagw0|PhboCKAh9-Gw@;YzWIOz$@mP$1OWodzTc&Qr-61MG9sP-Z4=Md^u<^OL2_a3 z2An1H=}jw&cVg`vbH>it;0{JTm}Q(PCJP%JK!f9Qg+=B0q6FL$Gk)I89)z1?f$=2e z#=~r$zWdS_my*QrO5qWjgZd&90WT4oBF%{>!5Sv7J+mS1{DsvHi6s*JgEY@0d`SK6 zize47;t^`biEqP_&`Ss$?MAioq@-*=(IUl+CRyY|R-m>VbMW!<=-TY;W!&NN{Mqh& z*}iRp^U66hk0PY!!;$TeftOkmZ|ZC%pkgyEn!+vI7}ky{uS9q60|q=ySYoRFzVmE` z5Fziu5b0iU-P_T6hIc0YEnQwhota&RnDIi)#dtaJ3Iqf`|E$ z=#EyMRHiJMd9*F0G{cQ|1<%@KQ zq=!ar-$8Fx71OIzyFNT{8v$Thn!9L^v}N|qf4WqRoW)Imr@kl#KD%tjFClon0^W5^ zi*eX}AC!Gl?GKAicle^}23dx%ZVUUl;5Sf1@Qx%10YWyC^GFIsM0zdS#E#t-TY_vg zkyGyZQHumQOL#v1yjnjzAvZ2NLSKA=4sN*dKxM-{ZRTL9s*DAnFl5q_+cHQrNU04V z1ySDq`1h=?T;XCGh!*YMwEsO!o4A-l%h+vehhE)Yy;Ya>e1IFBbyum*`Q+)yP*N?< zg7J{`--V+~4cGDF*OYFuT77q&f}z#(4J_>+>jB+#_0$oPtL*q;Y2y~DICmosXME>+ zN4@!EMBin#zGBTi{wXo+p+@4$5q^d8l@qc~63A8XzSvfuWy&tfYA@y*3MVB^RZ%?& zEARZe=4*VrK`af9rmd^+CMryI!QLot+9Ki5eAQ7{)!Yf%zhQlwq=9S&@w~4S7ARmmlXUWiGupPkL?8`ihoR{)Qx!~x2;O_@AbnpR z9L%H*q=`TH1Ben5JI~%W_c)^U%{`cwBoK(JCp5!5PJrOtg?f;>tID&%*`7k8D1u>| zR8^rK|41UDB zBOS~&LE-+Wn)soDLi$g%A>?_t z`kpLNh>@%4bZi3q%$20rlv?^bu{d5LfMrcmW@;L9Yb}z`9`N^F5zWp4`>)Wp*jm*t z$!3#N;Z{VI)B$Ern>@aul7AOMzj8hQ(gjf7s-6hnBtmF{n+!;QLjBwArIq>esfpRE z%8nUbC{Lg{p{$jpooj=3-=09)Kr0jC7<*Kj^wsdyUX~2-E?gYiBtl4;etj)uzs20c_WM@HWsyJpf`E2I zqa{>iba-~?=`Hqkt4SO*CKN7@AjK&-_F;vjV6%*ZYH%p6F)-nM z|@_LVW)j;<5{W>n9MV) zp9k3}t(6s1L1tDO*fWpi*CO_4qkBZYLhdo14L!-53>(3hsSpqT27`ai*VcY3VmV(Q2iO(?JqM(L)u@=_|u|+DwKfO4MCphS@YD zvDXff)@Iqk`FB+{yux)=$mf_4MOWq!VSEOfmSp3$`M{Jcik?1aq(!ITNNTn$;1ks& zL6xeCaWF8i-Yp}o)WcFNOAk4J6rK0}N;tmetxLrg%Fj(&ijq!SsXd#5wOi%v6R1QS z#zx_eMyu{tDmv9q;y0lc*<^S#mYonmiV z-70Z>zc=QwJ$(KZDxmZiD^6YL#9S3`Io?E9SXb@FboYFgL^gI!%o3y&Q3l__NDq8w z&o_O74}l|s5bSn6j?>O6){*6BFUyw|1V5}_Q`G@q5*B}P`ls`1kk4SX;2AU0z`S( z{Canq9@@b8mW212+l#sTM_k|y=4*vMrbn(#T4A?9Yewd0C5cM75!D}GDKN?`4bvoy z_;TwyX(x1svOd?M;whJy*Hy_3s}rg!*-3erO(F2N`FO+CCB@@a*UDo^&SaTU=2n(J z6P>fl9BimVCquF>+CZlqiHPv9gVzg@DdcQ;XrUJ2sp2=FD-tUpEi4ez7Jg$;U_6n) z^dD+S!kmx5X}ZK|cyv$=C{of{ivyGCi<_!{evxIOmW*t4G)hU@U{zHcr_s#CofS8) zSJ0FffpvK$QYO!(;&^}|rAhA7Cr?f6x4X9zYwrKSU`r2~nA;)kV(lZ=Ead(!m^$E# zHaBb&+hPfLalvs^B-0&tQ;RIKovK304l(QQ%b_AA;%!)YuZ)M+6g07xGNa_lW*SeE z^iVDfNt~EfK@KjI3_u+jjr%)v7}kQoN2MveU+&Ub25de-<64O#akS>~X<=a0v=dGn z87s*h4c%MTsWnp>Z`+lsZ!PE>|UL;D-<_X(#n81&?e z(j{56zU?m@t+xG^iDMqKe%n&RitgUVyp8ia&pIQl&&UhssW6Mzc<)G_zHr5Pjap%s z$HPqFVna*^mOg(BdssP^H%$^TNp()s*kSVDz`OqUYLlm?z`MvukV@R zXL!$wq~n*b+~{lkw~{MC{8FtC^X^Bzpqo#7{Ov!_w~gLc`7{!gVFi19WfV+Ix$^xU zO|qWiwT<`Q|5X_ZrH?WH1_l5We>{l)$6mi5RGd3woUHn}j} z%ij7l1@m^ZnuE&16Te=*+!qX&3$EQpryaWTYxmfjt8^ie(>xm>DLwG3bxKCU!e(yO zv*gWgzlZ+)ml*BCuog31l59@NA3HUKP3A*!m{2R_`2{j$f5#`1&~IEm6D~0_#8-5@ z$C`lO76cKKW`sHWmI8J(^>}GxY@7NzqacoZ_ZttqK!I5Ma;UwlwT+`x+ z3~ifYDQ9BZUmB!W0hAEVMPov~VL%X4eaemiNOe%4x*`%a#!~5dUGp~Q+7C}+i}P|_ zFT7kZQEI}S;GCaVB2;-7O_Obx*JAA^86L7P$qR1IRB!W9jG|@9k#onidHVUJZgIR* zzg30iIc#?Y8f|KJ{x+pN(840Pt`!R?EpB&<`XL-`?UFfaPai%}Xw;IFG#0U=X+|?k zx3^wePOJ6SC#jqe9%x>Dn^*+3zeryvrE-L`-b=)CcD6V1z(c-HT?k1$jO1E&W*M1o z`7N1!)AFA`qNHzZB)9ECBPHF4!8-GXGA?yBn6+ViFGFWmiZMzf6Q=x{B@ z7coyE^@~q^L;YuO=oR_CxYvbb`8C%7k+NlPjks?KJg`7~8Pn^t0e)#ghZ{ZtyTbe# zW44!+tHXG0G+g&m3rIuooKqcx=)rrPxK?$2Rb(e z|9s`VDXPn&d6YH%=@ggvk_~1DtIy17`8Ehig(PC=-!46kL7X{Sd~d{u3^@xL;wsm} z_A5lTH}?iP5i$Pmbq4H6FPGiR)#tA4wYP_)%#^_0XYa18vX2a_iPp?WF-IiQ(Ya8O z;3YK~xl~-|%toA!FVE>C{c|+1avT|>=`XEKCQ_CynSG{gV<9`2!-3mu;+^z zT0Q;m{?6r6a}Z=QLL^T0sMT}NxziXn_F|%8Ss7B*DF}!tQJ3APwl0khc+&1a8jHUv zP)XgT#sqeMo6#O4X29a!$ zXCK1DwkxQr@_&-Oty(Kfag5{?0plEmljcJ-$ut5lX7(!u#Jsek%es1V1=1YO13$+) zaIHR(f=CJu}hoPY`Ol@PGN)1%FWWXn4$ z?2-?`Q~&BK6SaULq&VnO6|q)uB{kB)EAMCpS3<6(V&u`7EaM$3`yz977WhV% zHI9Ko+GM{m@DRgW7x+Q&+o=Yxv~R zZ?)C9Y+3@i&%1sA3um8t#Oy6whoE2iX2!zGv&I){r1JYUL!4@7ps}_V`y0d{gnG!h z*8nB(fGIPa;+2`s#^+xTEYA$rcKQ2Sew=n<#3DG@`Y+vtA&oU@1%tqkK{GT#fBL$7 zu19d+47_&fpHw}5YR=~J9HEbti4zPT`qkD;{}7#&5Q)8 znrSjHtD#EHa4c}F_$=S%{WI<_6rSu@*J-6UCCReU$^Cn734H4Tl-rxDv2N@P>w&km zuPLAgSr(WnQxfFGLL9m)jB)qZkYW(>2*WnhiiD&*Z9J{jj|dMq9?GS529(Eu6Kh5@ zF$}JKdAy%PW;)rwYJ2_g;~X|8uqd_*E%g>BWlm(nqXCN&Ui3^tCVkjKCrliR8O)X) ztG6G(eLzN}Jk&TfZCG(Z?5rG0OsA$!f_vE1fc;%QB5j_97ENBcU2 z_RCah(BTpQMQD|ate~GS0Z|koG|`62+Cu}k^Te>PaXvO(I0O7-jl!sMj6j;_HlkL3 zgQj`rwwSuuIPV9OV;ps#QS2k)0GT0;*;sI7$`JW0x>&93`3bkPpQWU~OgM<45DCp2 ztT+qpwIAA%zj@#d>+(o`Wt`@LB7%pJ1spm#4l`166zs77>5?WK*nUyb<}@t<9qh5K zw#lzv7(CikDVrSzPvFbi@=_Ay7Jl$IM*M(>fXKi>YN5s{S7YB|O7AZirg0p{+%6HE3isWwF|W1LKoV zh*h6#m@QiWGr(cDCmaTcIX+*W2-KJ%AO}@F2ye>Ra;@(-5mSoWtv`WD7H`48eq765 z4eo_O7MWSXPHHNXHFbxwA%je-$ZaAFQyyj~^B@qi%ArFTylFq0;fvCU`;NgK_B8lc z&_N~U9iv%$kMVxMr$%(oblt7#A{4uSE9-RkxnL8TAOPZJIj8X!q8UTbI4(aGGW7Y79^J!IO1r5w4Fgc`$Iv@dyjtjfO2BIn33mB=*nKx#C8dG8tK%_W`xI>&>1Rryzf0|3A@007nhoB6}R z&gj37@t5kC)@$q--&@^%l zZMDTuRz!5;gPOwFUAMfyc%p7!!^gdbzno`;m!E<)SYFQeo{Ib<+KfK$iwx9~p9;Hf zm$=OdG<4~6;_Tp=$IqT%45bPlWN9sGRa3%$lc5`och!^Gjcut%-20?dIYch?zJ|Nu zK91=741+G7Gvs9P!?^DkF(RFXLiPT8*uftl2A15*+ePvmu)nZ_Sj0LCb$z(0vJGho z=I!~WW)c!5FR`^-bMbz=f<1Gva`0GisfHD!!Zh<0C3~u6CM?Q;x1t2vIt3pj-w{vC2Z?&@I;MS`{?xLR3WwlDtXAkdaC;#*N-okCf*Lf1 z3NGG_&h;$XyxLR_f>a2=l%_B-QZBe)na7DjjjDo=4?U6r1(qqjm`t%`O&@QYbn@*H z^94qpDIN)l$aVADQzxKVKzZwOw^(?eq~KaTF932d2Y|=qL-1)jVD=62qwk@--%x<} z&x&XPwqpLuac}oD$^SyFdk0yt`1YLb3coft^#eXA=^=RBxZdS3Wv9Va-~)3=fTQNJ4H3?sKt%NokV@eAZBT1X zU?T~V%043*apD^HmH|c=>^DuRw&1_&5H>icgrnE+He2%q6L60OV2$pfq80$*NlS+6 zP0%#X=v94V%Sq^ym9Tp;Zth|(|N^k*kdPaZwNQmLovOH~|>5bpbZ<_6LV zrRRlPBunB1n~X_mF|?qg)kULf+>bzQBZN_>eUm zbB#KTj1~h6#&Z=bR5b&xJn}D52wDjJ2Mg7`-cD2efi$O5nQ|g5OKb)jMybb3o_Q4p zjZ%xDzKoY!{#$9+<6_W_h=I)Q-)&5RM~Z`jgrDLF5abbneb>*+ZxPlQ8`04?4|qu5 zIsAnRNueR&j6!1}JkA#9IXtn-xet&plQfTEYDRSpm6I&`y8tHebAD{?;4Tz!} zb!$LZX}yKXS_tdf92E+EYkG#uy{uIP1xlCEgUpMH<6SExnoml-l$e8D*J&VAYDS5YiPy~_ z1?S9;t7!WN4Dh-pJZTPOn}g z$wM*pf(@N#B*C*cg|`)o98JyBv$-oROJ)c1t)&fRUZb8NLQkeb$*XIR>;AfUcpH+E zE$I| zV$u=KLsAtU9$Ve;kYs;0P(L~zei#@P-fnuwzw72h^YX&6qkL_6SPAWV^dy%h!qwpQ z$ZP!K^u9a)7_Gi1f9Ld$tLv9_2POTrTg(|)7nLv$mp5=MH-^Q(09A1UY3d@??0EC% zzy9gDkb7USLjeHyWdFOCUI#n9fA%)kb`JFXjt4h1dj?$F%P)%(!>5N<%K& z@TQQM73w%n0ZH+?c4cU-|F z2`qm#?PKRiAnAhfZj02XW&L#<)nCgEbVh;+I-rZ(k~)4N5u)51;JSAXt-@cjVb(3u zdg>Nz1_5abBBk*|L5LLWK)$zY z8Ba4}`s3&Oe-~FrkM1y$h-UWxb^@7n>~s4JL`%*-W{Grtv*}8aN+FrFp?VdH?*=xR z>+a-ahrZYwT8%K1P~bGsq6Y`!MhaD`S90bt+_=JN z)Sh7Bq8^T@keeyda_-UN&&W4wxo3Uf#rorwEyin^*j+0fbKm~Dd^827RSh%pm-X0r zW-EOUiA@#;g$I%tAP6#^W`nh0yd;b;Lbk64 zZv=m~$3$$!+BirCeRgL)U)QN&oByo)P=9}YNKOPhK>bS$l$S_0pz_3+*7Z@%^HHW; zB+rUp>v=^C{y_5Q*3`vWp?~$imGzs2B$VTdcsCT?NE*$yDP=LulW7r-8wCel);!hp z(d!BY^A|X>a|k1imz+|zYD}3d(R>ea)wVtesx;)&JY*=ICFdK3&C}pg&!rT1mO1nx z9o@wR0fVz~fj6PWw6_#=*&q~sC1FgLL?a|>MxOB}?ivxz?&<3hO(zQ_?&`ai%}K8_ z+yaNOHN4)n2&Gabd6`dZzK{y9y)FE4gH8S;)%c>sEq`6tIx9;-Lc#|7lvc}uRRY7Z z-_;buT>z}%0&G%fYvN3*3<3zbNqgp+X*|d0rqu*sD0Y&EQ3#$9aGtR~R?lI9JgEKl z=eCk$oHE^;Z6h+gy^h4|`{iGI2qe8&Y`8j;qk~>5N!idJo5f&Am{-O2aBjxeQCse{r`39l^cA zGvMBd+k*ummH$H@s)JEAx=aV|hp5RWcZh^CfKmI17cWi`P|I6EhEj~J%a}4=wTp}m z)*M7*yOOwavX;MCD66vxCRFsnc6!K8kH2P@becq61(IO)xe_i2e85!&eoEzUSj>ND z`T_Y_v2E|0Y6Q3Yn8%W9n7DVn)apI3&Y2`|1#F9Xq(eDUpBjNK0`J(l$Y+1m1Lt&f zP@sb^f4;lh&BDJIw3lo5C?ux7b%$*c<`pilgT$ql%;&?XM{>nudEDBOG-^821hd+rp$*$r$VT z&%+Y+o&8|~e=ozyl0G56fGBuccVUoo*FlSWhUFOqt*DWgjVi)g;wqHPHM0hADUmeK z7%A{RKsu@L6sA>>WKs*{axGjW>x3dXrC69EDD+JXfqqA0vY0^+>SufSsH?Dsq=gA1 z^>b3ZlPZ4TUzjr)A}ao3@G<2#en2KRC&aulG_-t=r~Jz>B<%>-pi5A-Tp6?ql2i!# z#Bg4k;FDFuX+$$*6)eC^jVp7%@Fe|jGt3_aUd|IKr5M(ahh84aJLSw!nhb?NfymZ8 zg!J80PmVbmfN@fqYC-42JcY{=!tfSA=Nkf*E7>~>S%L~a`OfqQ*|g`;c`Sn%$$m;{ z7LHp%hhxU0O7L%tJ_FWPurogR?n%^!cT4N(_GgDL%CufqzNVG_3f*<_Fr4+I#2ynW zUk~FJo~q)yw6P_d@f_{Vh^kmmMb$Eprf;6RjKPA)`Qn8kb~jpY z7#6J(l15{QqaF)3sQ8w-&*AOtQn1nOJ!cJ4qJu~3kT(4|QI*0(N)IJtU2mXWf}}{y zLnyEggWH5+94d}c8^z8643&^l(IF8to$GOU{w?_RmKuq^GU|L;bBT>k9`JABjc8V6 zs}TMZa=@snJA|Ab7E76VpL#i0mffTo6NP~HkK=Of5o5uP6Ty;c7cqFk7GOT?Z&Ea4 zTh-e0(kn9Z7s)1hLo?`F6kUV=&dRn<4X_v#LQC^CIV-V=M=){29&O4Juv3_USs zPCV(2)-2^Z1Ma~DZzQzlPn-%2XAgFO9_fzigWBi4eB1ns8Dve{+M)xk+;&oN=LwrZ z@wLh!7|EJwaN;-0m$7s^y235e$SuK0|CKq|7F`tVMH;a%6w47U@F0OS0GS-;Oq|^| zoSVT4D;+JVJjPugLo)Cv-th@rw;Jq+xs{Z2gQg~5HU7t*d}UVYf*#6>ysWE|q+%%m zJz4Mj?5$9;ufoWyfvDlKbKZ04bT&?Zo5zkW4Yq94YPtMv40LEbGsQ6}EpeJ!GfTZ^ z1>7oGREat%&v=z#Pg04-o%TdQxboHsXguDsXH9C--( z9b2-AIcXEr9B;bgq^M^uIOUTT&7vlXl@1N+v&3;e1J0&WbzT!)(vW}!W4R}~QE}I$ zW5WJzpLGGv@-=;7S9ikOm%`ciTcHvV|9Aa$;Ra$?ciP*R`B|Zk^rgg%qp*;&-~uXG z6&2(LzCdcXjX*ngeG{3FM`-hQx={Q5ud|Ht#g|8WviFw!$r`k$lPe`lCzx&K(K zk-oRHfsKr-{^PMuZHqd@7IsqKesOHF%akdO_Z1rv5JaScRGWSL>03ny=pYI6%&V5N zRto#}0Iv*NqpQYnd>(x?t-ifp`F*UkbrCsVZ)d7eta+LMs zJF0Q?igA^Tch%j~&VertowlyK{dvtHr{&j*nnBLMU@OV))Yl=JilOUEWI%gS+qQfP#Xi5ozH3P@t;92$oO@xD-V05Rd@bF>R_?b_8>Q89@ z`?htdv6lTm&E~8N{^V3pkag4_Aq%7UaNCYDPfpZu+x6S;Pwzcm_-oh1@1JX4-X`7A zm(R~HpU2pnzIj&CpN~I+|AWSE{Eb(d3|9$1C&x(jtzQ*%l23-Xr?)q!M=x=5%% ztmfOtDNNw4E=s8Az%e4*-7Jl$K7lxP5F+Dg)=~}A%qWZKebq4j-HiE0^T;LFTw5pc z@5t{CtBqmjNJJ2zJusFqJ~iR*AYR|7AvVmpVzxxOgkgZ7R6f>Za|G{QL1}HDit2$e zBuUdxBlK73A9Eve(=}b$|7Ncq9A#|%kypVoD6lpNLWaR%t6U1=fHp`nF$~3rGguvO z2M&-;`psER9!qdqLyD$WD{0w?fBef$2Q>S$Xsn4&IzKp@Ezf)&-^JrL_J+?1LA0YiCIu)ymtNZ!-4RpWkMsDM$ncSJ8^ z^+j-?FV?+Ds`;Es$5OEnBP5V%F<)sdWksx6bE=^hbs)$z#zBePc0z6vzCl(cO~FCw z5+5f~KB8JQzzeqADD{j|Os%2pH{`nfcVr@gGEcg{C^XzV`6#MnkNaeN3y`QHClqmA z;6R?EX!LzHv<&NU(O#;;>j(k&OAg~{WZ@5A%_QpMw*c&0$ z;EA+PQ;7_Qu-h_a74uZj@dx6Xm(1%}HzSPVG$Fmggl}xe_peemVS={I0JV`uzi;#_ z9Q4W!Zx|d{mFVlvD9*Wo%W(uow~IsF8v>M zeK^quZFH2n8=QpAqr6gDMuRA~YS%6DwmNoR8+y8+az+UUxuuogfcd zrVrl9p|AD8Xy7`G?q@W$|1WXUhCNeyz+GfX(OwJL%BHyJiE%p z@5#7TEE~@$+lXn1`OLM|LqkG@r|>?;dOIHXe1K2hJXp6_w^wt4@uUVi1n&F-D~!W* zQUbbtp&)vK>I+~{YjagvPlGb8@0SH$&QO?t5aSDvP&Scr& z!(6{aY(CKPDSv>eOIrT=%uG#6u%;~*i*1f(BvtEVSzh$%6wA=zGcnEO-)2hH;(i`D zn--8gfuKPmC9l5Qw54oD#mPZrM?25ix7#O=z82;B>RXqpnFgthhtx`{?a>zgRoJ#x zOYv&6g?~u(5tkZj{^OQiw7S-*VQtBtQMF7k zz@g(0F~S*maM_mXCHT#7Z5)jC&oth+1~dEf)7mVddDvZ6od_}K6EOQgul6$6WrOP) zYohgKfj(E-s@G2}E*iZ0nI7x0D}fQrqpLN95f)PD&hRS!vSHW&{79{`UDnAv4TP>5nsjvf1LqfQn?|4?)?z+{<_nAQRzN? zEf?nD;(;!{F8xtPSs|kKrN?p_rqe;kQpsKn5nZIU-KrIXM{B@e$ky@l91`#}98-rM zp?+ng|6<`*eZ>4YmCOZ|I$1ZJlL(n6r8)JNFKxx4Go>Twl-9k-WLUk!@!#)r#q^wB z;0sEdb!$$8X+68E!AQtSph9{~4dz`5ArB~|M}cZIx^@~QxDii3{aYl`qOglYTklRvcvKQ+sUXnik`@xu+vMnZ9Z|mLyGj(0v2mww1|b-m=H1?dZq9 zAbhcaF4k3N=eF}VyEa-3xqDd%Nv{M5x<O&!^D)JF--Y|5+4NODUujye|+u`<*|*a4Us~| z9(T6%-HA}UmV6lS=)k!40ht*)W145|ozn3|pn0P>%Y@Qlx+iN*Njf7+% z0+7>D0yEPZES7eR{YZfs?!_0Z6|aHX5bguw+#}l>sDo+8yb#I49^x{Yt0u^9e2zv| zzu(!$FAigDk3SVSHqgQQH!r_s(`Zq{b?>U~hQd@`R*&!DY<#^E$NZ1VGb68-7fzzA z6Mk%vt)G)|oWV|$PzQt7ce-Aesi}aF6!8he0i(`9YlukpX@O424(=+!X_-n^^t50K zTczDyZKuAQ$i~V>npTq9avJ^#ucotvJN3jnxz&9K(P7WTH8_;&SthKZ1 zoq&IcL>VL#T7 z%>ATu*yh8tODFmE_Ef~pJ2I))X4qe_vyU>7!Opc*oT_0x(<}3ihN^4GZCk6fHJLU( zH$O%$R6zVO5kZ1vkfG+(;Z*$#*fuq&(>jp02EpJW2^(nXYT--sN}w(SqtO5E!2L6> zn*x6jFJE6tlpQ6EVboMJVS!!aIH3HOFGz>s=rlI?mjw}=E+D40<-wWiLu5wA27yDK zvtYCEiCshfSjQ)F$%M4HWXQ~>{{*WgCy?%g3aDMI%Bb&6xsrAbG}jrWw%XY|l> z{RR*5+~<UO?d=w=)|J=v zz+YYK)$}PS-2*EbS=!azV~g_|_Y-pPOX<&E`)`KLO`9zWlXZSyRnli{BE zMfts>+A>CacHL*~U*+N$;&TdkA86vN966P1{?bCGdx+&s0$rmV{L)#Zu#QnVeaaE#R7S>SCo3Z^J-<_dJa~uH-RBGSsKHX!< zF$SN#Jr607^^2;HgREpubOHy;hS_A16aKrOgrdSk;B;oR{vq*gle81^3D^7k?^r*< z9&&rw_qAsJMK3X=y*#2`ejZ-pRj4e&Gos!(unCdq@|7G}?+aU5BB2=KHAOHms$i55 z3wtUvX3|B6C^8(`D`ku*PiwljdE8ZpGlx-9Qbe4_#9bhMvpkmzuU_@NCPKKVNtK4Tm`3!2Srqs@l&w`r~Il1S`E<5dIJ>2My@ zFpC0IXrU}U3aouxPStP!*xIMeR}e8g(p7(fuF7R^%;U-f51i9W^siV z?uj8};*7u}MCT5KBWeT_FvX8&GSIU{T8m*Bl-79lf~^9a)FhmojJ%!EE+8zpypeKq zl6%4Ea02h1i8MBv?~Vsazn2IDl7;6aNI`$siGHD74*3pG%f+-J>deowV(iS%ys~oq zhOZ~s3jia(q_wJ7kdKp>_is7uS^CXmC{_0;wageRN+%GqKS7nocBfHy1;30hs+%sE zXTYLv4pC5eahCv#H7IjMuS@>IRx5K=n^K$5{wE$V)?HbY2S;%0y7z5ir4_UmNl zn#Wzb)=is8s4HQZS%Z>rXI7GFd=Q%SZMA$L><&yh;_7hLXy(N@!EMRz87BGyFK}_K z0B=+f0&%oU!T6#cjxTE72|qUcatid3W^3%x6KvVjW!aq2w-v_ z5vM=^YgUIMtwxk}9~5tb3wrQR4vY-f>{p|j7H}{YO@%&`uq6i&Y7Z3lc2BnMTc_;H z&fif&IJfcwF#+4=0y^j?@%fhV8k-1}gM?|Oxn;MAQ{$cQft@H13zDj-BH`tLht7CCg6k z%0uE_FAxCQ3X=bJP5S1^pMBO?07duYi*i5)x1(i4eS~xj@SzjiG7!AwH~9xT=vl)H z8k}$~vQO*P*pz{vuNni>wGD@b$Bxy6)TJ+57 z{)b=a`aq3#*T>u4?}g`2SEHYZD=WF3`Nsh^sQc7V>BF@{p$j*oA)rf18A32rE+O80 z7V=|6q#S3ghBz7}GvGp26YG!#!AFxBZ&bZ$t|h&}x*lh|i`jeHYGYDf(pyArYQnjP zt8usm1cZP=0pSj$(rB)Dn(&26+q_Sc8#VhKYl8j`}KE9#$_QnJ(c*fAe{ZE=4p>7ECJpZxW@I&~^b zn9L9zQmQ}8S{TSH59N&EVNn@@R1jDITq(-?sBSjhSQ3`<*p&E~6`ZBCEez9Thyuo3fUrJ(0e+ zE^$>}IkAb5=GeB$u?g{&W?dn{{l^I(=0Rm*CXK87HbKE1@p*gSOw6&B(cE9b@W8{F zW19%~9yeOSs2C+=`@l^dIjpXo5Duh_c{EhRwy%8lI*P$%0iqG4O%YF6{&@mO?%tH> zA`!C3QT`w;v?VHC5ap6jE-EX)_>3YR09}@H1WS_|6^X}^bQEVPpCFnqW&>HdIuCy! z)3C(6RZb>HZt_PiuO5OhBSc2Eu!nZRP+CWd&AF{mSQN_pc)snZArWHJmMXRw{_@X^ z=cvU)4mrwTH*>Ti$(x-n;r9yIa_sKm0&xMUkX8TMEgHlPYn98}fgrY;6RBiRAez#? zvruK4MvxNTB(rR-40oQ5Mas;kxZ~N>mt5mQoJ{F$@6zymmtsTzOs|Fdr2+(xsQkUT zKn5eUrfMl9-*&{9NsP6Yg-ilp80gEodd_~SFp(Te zJk+L5ME;JgMb(Th*1tTPISs%qi*>4w5{q?*c(U$>8G5F8F+P-la>RW8Ml`kdqiusr zv~837s1NSQ9{{3vH~iT6BLPodVU2k)6)rO%;XBxUW^w<)^0bmS-|ZeMty~T_kGV<& zJ8pH=tMg`wC}&XA#mrR&RVmk;HZUut`?ST9sKX#fXOG{3``6h|xoEM3Xb ztTdG!Ucl^vG%k20OUel8GQ`l+B{V84jJm)G7#=<;J#S+PT<9K>Qz0yC2(@7HuOT;H z1B7AkFAFTrhd`klLMq^DMM?lXOUdnTSX*4OeHN_AB-+t-;0Rwv@Kw2BIZL8@|A~-4 z4}ONSx`b@Q8@830&xtE$y?h$baMbuD)K@Ci#l%4yY|>p5-Y@xpH*qvo{{O z-8vSjg4FY2e;RiOGoPEzzo;_OS0r_{77=NGywnin-|WtwsU zRSa@GkGWROovj}RH3=^JKUD`Y4*GLB-$!n+ks~9*z$QtMC|2WGD0`FUkAbT)vCr)Tz1ZH^aF=rW%T^;BXKK-j7GRQCH@Z|Yrfn8Z zD^S-3V@exY4;cSy__`%-^wG<+V&0x%J5R9jFiQDC}0!8O`exMb%*2hHn7Et!hQbIlgN_;|7_L!OZB@Vj z_==`~rKA~fG@j`sjW8Oa(CUS7{4=i(zl9TRP?3?Ve40$&-@5gr*4uX=er|U8I$nRC zKe}9kN_f@1-GLuInSO{lif2V59o|a+JAlb}$OIw%ARmHZqY;Fz0M33e6rtuQrDe8J z@f%P0PO;fZTiTbmQ+o$-+OYX)?ipMls?Q_MKY<9TmY?a-)4)>^mXt_o^_Vg6Y(c|* ze<=|SlE5ea2lp7`q(~z_ER_{3({z0HthK6hDi9fH0Ce9if??WScUo@1hMi~;WUgR9 zHe59Md!y7fp!D9Ql9G}Q&K$7#%~vSK#8TSe1*8x`$4o4c>S9Wy=_IEvO2+KHK|8Or zRJD)f5S-A+R?!ubnuS2u5=)CqFd@(i)c7X#UXLOY6K^IJLN!V0#Fq%;7DGWR8hKXK z6vmcECYUc2T@gcNT7jq;jk?j10X)CV5(XhSz zny(9(R6IQ4hbFA4&ivqq8aIpRzNLR!?RcVF|FmqAFf?|t|9^8x-u5KiC_fm-feqR%3KW;*6{>MCd9bAH z9Fz!=ncDv-ZF9-~W1i(!ztQL5eZN)z@eh*?4CN^)Imk@PxO4od>aM_j$F%{cN#+!6CdrWYA;Eipa0u7JqpJZ9ZNq zc)$p%mJ!R#N6JsW|A_sq(!696bI%%hQ@@nrAQZm;l>&w5Su*QR@h)Fb|Cb~lRp}oq z>aL=T#weGZQRz(D)xJ%dYw3&{g_@KOU&>D-^C?L4Y~@Gpe`{pkBTeIfb6HQ4!LvA6 z0DEOi6zkcPaOT*vfHEQr*}#m$gY$tobmHY$K*VXggv5NTPu%F0?0ynt*g&+b-*)K( z@+6i=abUuDzCrt-*^)%gLtt(#lk1s_QN7N|H%-m$>k4by4Z&(*;Hyh0ZbQi* z%<(|UJ}3UykL2F846i};QE|Y;HpqGR4B-L{eZUhCLHrIT2&+0xma?7)7R*;7;u;4Uy>q_gh_ z^pEDqeWSo9zZ5eU;;pX>NuM8;5x1XAl1dM}#F1YKQ)$pPaLlSnDCQL%ew;5qF$I$8 zk{`!|1wCVi3Ru}Riezg$pEGw~k=IqL#Z>HsR3KHECHc$|Jq!UI(3l>AJx0VH>X?xV zZPHNnh=6ocazuSGMedQ*!WdG(uK(VxP8c1Tc#ZAt75M_iEWXZDJFpgw}x!`#0!>e7!IqZZ~CY(I0YZc1hoq(+!&%AB_KW)j+J*^rn5oW{tN zM$)K`_YbB147JOBW;9j~DM7VP=6?_@YT!)R-^;0q)I0?HhKqXU6Sx$0dR$o`*B%Pe}<;YI589t;^H zlsHv#5Sh^>H%vQ!Q>S{2D74fQF&jf9;=LBR+XBZwKUZY!s$Mc;&uIlyiy(E>%I{$B zM%4JQ!xlvq?Vw+Z%PXh3ZW2P4R1VD)Uq|xj6iKOo^+$NsJqmO#wv#=ph2L#`i@+Rn z{p@!Ie6HF)A=zGh+*ka5(pmd0hI#$YrefL**+IsrREtt3B6LJc4Se~D;ubt(88P7@ z*}xb$EC>c0e{ceV6(Ff116O0hp5+Dy*f{XsnzMMU!v_5)r?V zUlAh3Qc@iV)V!6-JH&6BQd$lZJv`7~)o9`UDNcW7_R*9&M-xFF{6<`Zk>SIj3xDYNcP>Nv z4q1Ro4XC2rQ>UZlh4&1eC`zo*!*=;6J{JKK^*1gjI_gz|)^8##g?8I(srey+0heib z$6oq@Du^A%aZx}wU{Kj?Ma*6Os@%^VdQdOSI6BjnJmfUyQ9+{qjx4&*6oG|vfDWJ= zC6Ok~kb{b2K#S*Q7ib+CXq84l1B-geMyM#lOic_#JUt@%`X{~d^yCG zY(z(}BOn{oY~W9ih(6)qKjOnvBxc+ViyaI6in2woNAd%16bnc=D*)f9AHbwnk7Amc ziPcL(v-GvbW+O-mQI+u^NAn>gIj^)=GXYY@sEl%Wt-@K>tL{*NV=&En+bw+*8Vr$y zD#jjhl=I0LvQg#`AtADeKn-$gZ)^nz2z`OD$=j&JAny=3a96k{w^ZX z%Y-=|+YLgzCPCLZ@1uZFf4jN|8IF@vjpI#q^8zKVpgPiqiClk8BQ>HvNjPyK6-a~5 z=KkpcHiSZ9*NS34)qIylt-&WFr$s1~<71J&P#*O(R7=Q{OLL*p4|YCF7MA0K%9M!r zU7(4lSFxO5nBXkvIm)S19G*LdVvmu=;lmhoC$Z@a#$OW)J8o0gGVMb+x+}rB3ow^zqm7zfq-xV|4%5&|6y(aZ>8J+ zjH2}WK~d^lU`OAPj+NRS#*u8q+JEq9Th=d}nh>Eht}2Gafz|%IdfWNAlgcNdKHF21 z$+7$e1BTJp^K&L;-^<;7`sCNnPkQaGo__fBw{s$zfjO&oc}8+e?fj2>6+su1&5nL!1VXId1*kBG`=BB^J(G9E@4dc;@TH3EszGIbsoB8~tom0~0c5yd^NzUW15p~GU5br~nFF|wP z#_uq^E^Yx2-;c8hml?1BAW=4-32_aWQg%DzL^$WiWzb6s9`_LOb{Ag5fxSWoP~>hz zZ?)0`I&a+u!N>_z?QuC``iL-|!S2O2ghr=6{~mwg;?z`of*ZOWa{Xn83SdTubJD&RH}k zY{xHB3Uv{;g3eQXv*-98ycqb;I3PScD(c5SJeKzK%&)Axy}A4P7T53WJ;q;~LIypN zKdjX2;dk?VEg`)R=gm3lI+c2H_-*hG?u%0O+<*x4N0;Vx_nR~BX{LLp&4`_4UIla% zP3T^UQcAekS4axv55^aHlMRh0d3{D`4R{XjIELCltI9IRjT~ric=8DwZPFe) zf*A1vb2KV_l<_@C6NVu(?f7gAi~~_F;SIInf090TPwU2S<|J=V(YIfHJk&X3@&g87 zfFh3OiGU!E4y@mxe6Ys~B?;dbIScue$;8;L=4>W*lTkSVNze2cnbbfHUBcV}{w@S$ z!Ki5F355ej7nE817a5a*2aq64N^EVjvBMDX47oysplxxyO6z3U&RSisr1ymQ9F`D! z7Gj^3ky;B}?Q=s`CbL|yhH|wE1?JANb^yz=Usf*H6+5PN-VP%`fx2{c0dzjYY^wyD zX)&bysM)c;W`*+h9RZMAFKi68z#?b)6t22kFChLa7MvzmZO}4OoZg6nDz#dL(f;V3 z3zKM1B~6AI9I6LDP(Z^)KvXXTL^oIuc+~sFt-YQgmVfEOd~PxEX|={qn`@J5M-Op}tT-_n+9MQ6$xLTe2! z(zvx>sI4&roG?}3t-{r0?JybQS3KfxMtW3(0p$n=tU#1_tvE23qCz6{{{6uxLJFT_ zmM&k;?%(b*!@bdAJJ=U;0jfUpKLt=G=S>B_PGvI<(uNswi!9HB|K3USApE0a;xu5# z_1ZLca}9*3cx*OREJL|?tjLJGmdz){0j1P%q-%foRR;E3ZiF+iPjT=og3 z86Fgx>pK0Orc0dt-LbWwW=qbib31!c`a6jOZ3(p^L?hystv7A69LkWjbng#h7Myt1 zoR|}Av@Nt;!4VN=af9+X60T04zP}JX1|I08DUl&93eV<62cH3!=tW{k)j#wh#DZA* zc8GpN-x$MNM2|?ygWuOYX*h7yPdFC&g_2qkxTm~qOm>e%A|J__q%%NV`Ec|pM?9zS z#M4n5hO_LBJ`!{SIHEN`FM&HoZG-=0a}q-F*rPYv@{%NL=!PvX6aA=0Bm9hjEfbJp z7zvT`Lj#MrqWScxia7$kS%j}KwF)U~Ac1&dpydCNx?e!7+qQ!N$MSIye^wgweqk6e zBa1>DKq7{1@?x1DTtlHeZ&qH}BZ@9TK!@?U*s?r%5=yWF*c~EB!fyj%Z2MthiDm=q zfIbNz^TVA%ZvO<=;tq;m+s23F!9JR-82`f*0}TOMkL$yPC<0FkTE+2Lf(}Z^gzt+X zYeXH3fnh5=d@F-YK;i_(|4mkrhgxdk-Bs~n1~>J%=6ijinw|NMsIH#dsqd6#hWt-D zMd#nuWZ2kW(o0ZeQ-wdI;1q{Yn0E>OMRq{#zQ^Y<5T~+nmbmW*8AM+AD!AM=ws@60 zL=R~n@H4L8NM4vOrD=*!P{UJKM`ABCQ~!2@SnJ4;^8 zta?_D*_1vyEM;9UB!TuzDe0Qc!-`#n11784o!H20;X`umsUb^n%@T^Jvc!D-J;k)Z z6)LYI?6}e`_ML`d;_1iaxYwq*f`|YonC9u_tOG4sT}MU1BErdjkEpU5W$|4WW5Ua5 z)X*09V$xIB&|+h^gU1m_QPZvE<|ny`>D}?y0y+K{Zg#v|(c6r}(n_Z_7HFPa*W4M7 zC&VnH7Cg2b1%o77ewD;bi06y=Oart^yq$e_I^Sn6w>E1Rq^Wc=sZ@2hN{&%!e+T8=S<$gyWR25- zyXewf4jXfm=Ht9Xy+Ip(j}<9ClxQ;kwo4oGZCJhdC}qwkvHAy0+o7_XzXd~m6+{6B zE@e8|B=Eq1eT`1c9``y)4!BQa#?*+lHU8Z_spivFeSM0LKH?lAs@n{^G$eq>{K=DX zCp+gcnxYSFJZ;HZl+T#?Ocd5h3vPONR`dL2wk53TcTzIjtkj91aIs{PnCqjSJO* zX^?%|K5Muf{u)HoP}!d~?sKa_Smq`%tMJltpr_m@?oPx0vbA39+n)=vsd_TvfQv_z zv!DRi85TU-Z!*@rb&Hz;50~zOGRsU{jhms{lc&9XbrP=I>K@^954_cc$zL0=ZX z!bdHooL9V9Y$o*fN9xfgZ^SPvkP6 z&5~Tl<|RhbePwYd`DX_QLcy2{_GN;0%o2EPH;jswB=!7LXcEFsg;qnDvV$zX0Y#KWBhk-2&~rmMg)2B*s_dGeSL8 zs+mPf6&Zhpei{G9;MbN(2{9?SmIbUz@XC*Q?dnhnPgTVdUi6JpcK7rrv*Dkfl|3q0dZRQo(IVyeJW7$@~jFQR<~0eX)b7amLim_++jIISh>=9ehoP^%e)yZgx#VdDH%=k3IM0A>e}S?<~C7k zp6!-A79LQ_?(wtvuGp@KF)9Me0jXS;d}vDYeV8X4{H?V+f>vdf*gND+(T9Tu)s3eR zq|GlhPj;KJ)QCm2oXSBV6$3{=>Y#hq$K0P2jwq@qajb*>d+9LD0!@qYJLB3 zW(1tdyaVZ@hMStnnu^V)HN`ivm^^{D_6i=L5wOEt&?$DC*K*mb$&F{tAo(Gtk$^I<<5X% zY@YZsroo6N`Q=@_)4^1c<}mA%Gx_E9${Ru!lDP69$Swm+vbb2uSOVw) zKE5nN6XZ0^zja_##^)q@T^r|RDW(OqZEEzo+hBx^n3n2uSMe-QXvf})q)D?WE}J4* zHfT>}Ad1u*M+p@ITFVoYsU|a(gwr;s{*EFAp_ZWZv{=V+&`j@X2HPoH3Wau1$DKFG zOEbvKu?QulDLyjKuSVTMHrh4;dQGRX`dlnS18t$E0+Ug0qa`ec`E4gaI z-%fJSb@6jTd3E=ngUpF19LG3GNsE8kHBfR}*+-^Qn~!mmJ&#Kk3;42A*va>6tyD1N z*tggYm<7e3tJw%Ed_Ad#3l&EO-`-rLLZK6XrL-b#AmfWl+g1D_6JIANuwd~qjS?8p zq8Hb9*>uA11YbkVzITJ4Z@v%b;nXL_*mD^B6>2(N$xwi5?{cd0`%PrTy;YJnEn40u z!43YdXl8#p5mnRrWGz+`wtV#E zTI#Hpxs>XYSmE^TF4OOzpXZ3p(^BNI@l!6C9(A4VD@}Lh3soPpA#+~)pcz-cgG~_o z)VeZg-rcr_TDpBd75{!o)bQ`65^8CiuDou|%^gZndpsLr-<Z) zA=;`8demJv_QFKtN9dKtMm6y8jIx@PGDt zENx5`o$QTGot^ES{#zOj*V=xA>(1K`Tpf0kLWquAS{uyrf_Fu_PLs?HsoGrw4*{Hh zjssV7G3k%)j@|b=0-@Jh;{n+=Nqg)Z56c)f!U;d==|gyv-NyIPF`n;3ef{iIIih;H z?cpNd^^TCJxqPdv>v}QYoXL za<&pAGyz?~0_qj!9-G1?qR_r3!;>agFQU21t=CVR+8y`XFa1hH{DQ3raE-Awz=?w; zUQ+#5|CNI3A`tW*(RbJ(>fHi?6`LZwSWx_x za;!^~=>^-KOOL#yTQp}dBishX0*JS%Lf4bSf}ZPH(D!G>&(9}4#+0^t^=|L?r+=4Y z{&<@1Pq}Jnh1S9Suh(CNI07Mi6B<%@kR?p+HOJe1I@v?Ol#NX0oPCKlO;FQILh@dh z8Pq>{bXBiQ6BF^l5nuLHy$xzSDIP#?6ZjFbh8mLZWaC7Fe0EeNKdB#$qEsjdOzP?6 zT1c@#0x^`k0)I2s4O(9+G{-#R*=wyfp(|s;PPcIGa<9N2y9G^SivS>SWDF417;=0* z@F^L3>fr@}V}_V=c_3^e#B|~z{3)T>%a4k%O^~2TBLloyg;T|9DrE?0HAU{4C+YY$ zxn$k~9jRS0bjM_>Qh1=ciUe%nTpQE_M5nB1i1D%z1?tSDK@+}VpDUX96ShvbRYizC zQ#fdZt3F8vpskEK6uH0-#Ee#HH2h5z0|RaN`hGfYVvJhEblQJEwQ6M0l!136%}_4} zfisPB@QN0Q%72wi0vVUC;ddp-WUO{2=vF0PGz0D^65lxX>1h^9>Rl^kBF@Pm=3qgy zB?gn%Sv{4(yFwgKUokaCVG&@^-cAd=fuBZ|iA&cDpGDau0;bvj=>$(t%?4&ggN?8#F&~5YVPP)tPoGKR>4Sp$1BZcUc;lR_PV!O73D!@Z0& zGOb0zp&Sg&9-fEBU}cH`&YlH9V#r0KVy_@8Z?+D9y%fjJ^gNOW4htw6G>R=`!+C=@ zQzc~0y}4csB_6QOR7TMU83%WVR(sI=RRWwCoVK~Er^V)VO4|5lbk@~t^$>HLKQOFn zWOP;cvWg@yieZ)vPp~7?jSr5Qa-QQagyWpjq_dLNtAcs|lIa zps|u6D!IS4d==BKtMQItYjlO{dQ$(A z){SF5f?Gn5|q-+Uu-as}0i>dLHD6$t4Nh9G?4lkVHv7ojd=h2O57OuQ`Sj4Yn z1-RZO(+!02Y$0X~HhD@(1$mK4@K26l<@zCu=zbUnfX#TZgc71MNo zP#jCO`Mq`d@Ufv_+v^?em0wq{-P%jHx+|Js{#87G#Bg#`OnN@{AY)<-l(Cj*g;Wtm zwPhkV>^pD?0{MsyX+P_5X3&zLNy!CQX$8Q`-0Axi`VRB#^!;18I;QIWE>$`uV+vyu z?Hh7{^hJ7yPNJK$gbKWjVf;`a<(H}DJK=@q=4c|oI`^A zTkM|M`6DeuYH^T(v? z`fyD)7)t^k^GfY$JoOn`2WQOCe0eKw z&BkGuo-h1VUV$itx0KdAp>Mn*E-?jRV#AnAp`w@POWL+g6E=n8E@hLaV8Qk0DO4bB z3=-l<6o+~4lcr+*g&z(_d%<@O_!PhRSfcC#$}gb5G^35%dq=jdvFBCo?P!8*XH}py zgnhNEtg|UNcm6hhwxJgF)k^BnSW!PNFVp)6QmqjD+V8{(+1u!i#8PCqvjk-2LGt zGtYY@nn0y#pogu3_yr9Mvmx&;&Dn^xp+^h(vV?He3ZDZ+#s@A?jY=JC6_P^g*2k8R zu8cP9Y^eaJAwz~0OI&dIY483#n^s}q$kD`9N&1vrK^k0&mppHRSlB3)+0E}3Aww1L z*3U|lWcZT{y+~J2fyw-1!impwa4MP~)2a^Q6E41l(`?H_3vUib5}Rx7I~`r?ZiEco zpbqx9)0?%wyA+taOU$M_!ofMtYSU>QPyq~6bwc&Jlx~&ZRMl9}Cxj<$C^!J*-yhaODED~xW-wq@$^98tHcOx& z+V!P0*WZ*G2MyiN{>63BT-Xgh-#aNx`{`fg@6nA9UoXJ(SFpwiefd;vi+uUegyRFH4K! z)u+;nB2#VGWdJ^rXO0S#mRrs#=riIBf|8kn60e2l?_1}0$?38)N+PStHaf2u5t&}= z(L@*{X*=M|8v6Q>p1$~pkFE(TE5bc9=S1zCJ`MIEtE62$Xm@YQqb>R{nyIv^N351S zDyjLaU_(ueV(01$*}VQh|Ep5v6w42S|52(2Kkaxt|9_O~|47$}TDaO-tGF1t{CBYA zk7zw;yZsTZ3Xl&dL}_@GnqX_Ip~k$emZ(2I8Eu_7@+=CzGpQ_t^hUPcbFcf$?82S( z!TE6%R%eTtQ`le68L9S{!Y%9e-fh=e%I7DDEq>4imrd ze5fi_gP%%ZV1)d$<%BVG(jeca8*>ztF!0;CU2xxF)(c63b-~7&i?f5%Ip8P}7ufIm zQ6Rv~?A+SxT=@Nh@#0xqg&O}`0Vk3wSjnE=TmV%EB{Hg;H5+{XJBUNEulwLX#e!ZS zzs0Ujfi?%W(e0rOs2CAG3fGD7QjEJI#RSDg`p6#TT0oU~(qTZ@OhjUVo#QPEk^qUA zhE$gvkYWPkz%5tnY(%2rR--NDYkFPF5=^uG*4cz%WV&~ZyckBJNf1FZlDQsmZq{!> z=W0hoJD^BoES`vubXP9iq)TrofuQb!oyF9TS>km>5=7a=jXOLJc;CBH&du-0I~XEj zIMqUi)szpHfHPNB;M0=bJJx5fpHnt14edhb(C#iQ6KXye;B{bxK$ z8NV=W5a>9P{9>NBsUpDnM}?Qg9O=C_YwyVM^WaC`_)a|`I!GWS%-i47)7#TmK{};o zgjzGC0`1tfw-du(2rC9JJcl6R1Y?uAW9_IJ*5ZXD5u=lt@D4;;N=VGBgHiSL{6j^a zEdNo1r`gBBm!NXnoH>wJ!0MS#HyYp97~>YAEnzda<;p_lC^pgCTe!t)!qk3~te#{2o5cb&ZJc3n zjm>8T{7*jq*nnkG*JznU*uh01AdsH>C)Q#Rg7t?%hoO+v8zo;3>$c>%4y+FnbW>h} zQ>ZXU4jeKNxF_uyw=Y(TsWPCP*&u(H1N2A^^tE;<8&GyCbgG<*q%I9-gb%?H8$p^f z;v{x4ofG7)aya-_;3mW-7SOj0WfR*cj}%~Z4~>8-3S7PgZrcS+4t~qR@~*|{EV z3$N;yRK5rBQDYOy*$OcMm{rD&!w({uW)KhXgf{?&}I#ax$OcmtQqiP8p*U?VZiFOUxs(lwx@ z1oKqL(NzTyc@8kR;si1W9{$lXsYu4rF%jO7n6t-bZ~m1Uxzr+AE-p6yxBPt*oUE`E zupV0%4p(ryc(qOXzBqGta#u%>R;s>3UcSA7yaA1ZMVO(vXvxS;qL|w(eR#) zmIZm184xp}fYqGov=JM|(irSTDY3hmjA(yg7E zu<)kI(4}IOIgxb6oS-TmNHW>`fL``S%Y_hC2HOgxFbl55+i-Qj7EY3xE*H7rD~dVI zn1f2x(u%)8xMN`%@1*}$aKa12F9Ge|Mk7TbfhHJ-VQ6Nx_biveO7F*CP6O`uhJAk` z(*M358~i_?5zwSyjn@;5g{4TG(~6yo!UkgB9(KrTr z?5_R#ee?`@OWS2D!JFq(dz@nv?pXCR+Hk-QL(N9Q)=xw1}=bz(d6xwzpv zNxKYJN>P1(xwEEqpN$5;$5VBOlHzu;<8yi{&t0pk9M+%9c? zi__2Ot!>sszl<~RC4If3NaOD<`pZ6$>is$ic&-o2NAYWPxU-(oU+ z`yK1Gnao^932(8;!Gy z5sr_{95uS+b*bh>$_n6INBE_zm z@+X9pChzp%x|>R!rlmY)+R&vknT(5^$|Flv8Qv8M>caOnESf~5w?->%AuN|w?k2Pw zNE&)W=`J1VX_uCJJ-d;5`YrWn-IeJwrFqZ+yh!bFg{567*a4B{zb%M67}EVXoY%l3 zX^=G_uZec?TK2txEo2ORMjU|EtL4j^$>G`bjO2{8Xj<=*<7S9r`~+rnsA_ zoy&hSMgJel-XXlwu-(>;ZQHhO+qPA)ZQHh!ialf7s@P5{s+c?fTKl@rUY&E!?#=Gk zn$J6M51s$Bt$+gE8AMh>h029Y#K}#L6qe6ltMNPOoMRxRd_zD^5ZOIvLx@fATk5TSl0$=6cc>~*f_$QCmCSz5 z+?ADB66()J_EQbBE;jil{tUCjg3q_mO#n0;RxeIfHUh&HBU1{^#ZB-Ntz;q_61C=j zY6?HcW%0O(ssaW5R9oJWAvAXkFS0K3-SI-}DGfXR(R?UmXqQ+yhz#WM?>5T9&8V}maBDi$PMV&TfhC$@_ z8}XtyEuegY8IE08h<8DkSRjy_O3#%oOux$a12O2JQE=D3hH?f?<(Czi~_rXB$2TQau9D(uIQiYkr>A^H|Gf< zp?)e0xfQYbRwC8>7n1AdmRMx|V4wZ|(u8UIB6abhI>MA~AKQEDeOn@!~VvN9U2R?IoZy=~@fEgPaswd9}&d=cDF`9%KqNZXe? zc=8gRw9{Q=P&kNSXlrTP1z(oa;grTsj6ec7C&u&bkg#Z4c091~ z7YTtIVNUXaZis=AM8Ci>xU^=dqjrIv8fN;@$@FN1#;akXW@DwLR4x&58p&bg>2)Zp z?Q;@e9O$*4bUF_BR;*%T5QDZ8^Irz;gRr)I*@sMb*ih@BOw+mznq1Zj=>f1~3m-k) zlH9F55#yKXet`w7wshI(SMiDf-!#P7ANkaDD zrNQ&;kWMA|Z(BK2f#-hqPMfWwVxJgfVM1;xXDRW*1#)^@t*@zt7)?=nQ!l`!wXwyp zWb+J-m{ft{aF|}viRQ_A2)NgfVjT6Woc`t!A7d<0OVZ}xk|P?m7!M;}ymK2G9pm9@ zY>2ly<;~2236$U=6PjeQ%6#KQ^pn=RUfQGsN(GF z&$*L5cJhI`Mm7)N;?UuyTd>16=wqZT^$NbtuAb0Y7p@}=`blsE zF0?TVNy9=uF;6EQ#;?5)MxFiK996ccGt_fFKt7i98AlT%kyCL&{2xF@s4)_x8z%TP znq^ufn~Y$K*fsDVmr^m@!!25^C;=NfNRz3iNd3xxaf zy~CZFeWz%&q%~dC$&8ztMqOpp#JL{!5tA4bM+Zy&ZyQ+r;cJ=>D1m4!5j?jL{eI&^ z8iF>OP&CL|Ynx<;hZ{iwP{avxX!$9U^#0RTC}Z%1Mj-xAS0PhYWp>gaAjIQ+(Ntg} zrfMZeWGJK47-qy@ZDzxheq6l5qBRauic+<+ay-c}VCfB;kz%Y6kJ?~%mHjr5CKM(b z^o>{fw0Knt#$=x|+Htwj-cyMIzI9%I_mk<$ZvA6w+8-4HO{ZI-{@dJijo!1A;}ul>*rD7Hb1?76HTkb zfT~^T>WFXJqIptIqx?0-964=;5-h~?XxVD+AWc?Xy$Df$LBNqECT8m@(u%9B@WEv> zLYWOM(TIT?g^_|gqC#(D-ODO266MvJxh&+>nWnx=z+?4wOb^}mDP$42K^%+2PBsTg zb9f{a^1_hD9BgL$K$HVnz4svGqs4L&V967hIj=3UPKO#6MY~>CBa&Q+{Ao~}1J>OQ z6eQM04H4y_$d$7mJ-9>1CIcKzmkWnT=5?mt+P{e&1Hx=0tF#^l#6I4K$psY3TvQ}t zs}4p{Y;#PLePFc_22e+15vII+!4wihhvq=R>#mB{$c(=7aK7iQUcUF1-nAEF{GD+R zu3CTNZf|ecWe{C&oKK(eke0OIH*F1SpYbUuO%nN(lLwQTKU#^ev(BQ08-ha{c-I-Z zjW|NOgdIq)L<|om2SRV0PWbKMkeXWs5F7V;!E@nbWq@hwWKE-mlp66d_UtUlBT+|gVoQKZrM4ehkM(gfdg!xeB2xh|%t&h0tXa(TQ5>F1 z^#Y!P7k;Zn;cRoK{7E`(2Ud2U%Gx4SpPm|b1=gFTV3@hkeyE(Zl4G1^e%++~G^~Ap zyTkMn?7!bdmk2la9#^`YC#Do&Iq1D0g%Ji%7=inDlZ+r%bq+Tm-950kPYnH=T|nRM z9>9x0uNi*${kHpm;{w|`K@8sG0`+f;pbmziDxjLMrVldzSgib-{#zml{6CL73eDk( z7FZyl7ry^%1yRk|+E&TI*4p%c@8aRUJ8Ve3d3;4{*SE-$HHa>0^sqU~Km$%vg;G1Z zbkx<^*F-b_8o3+-PyT%j=)1|m?(0WdobOVzSuTI#>wVo}R8;im!FBxC={m$lbepFiY`0D;G)0RbQ4MAv83BByX*a#`a1fp-y>46 z>2B|YwNDXrq^b@UD#uiUAZ^wFqM+CjK%sCt+zW&>$Kr|=G4*cbp7@s?L{Nrd!tf0` z;3aZd98U=i5aZgx2eW=UQ29lxm<<#vtrXUl%=&Z*Y~3!6TAJc8RzRKB&y7jOm9rO8 z_6Y3kWMB!@w|u`FsLoW!O1*^Ix6Fq~E?AKq2sY-FnaJ@vwI4Biw~K?|Fd%4XaA_?b z;eCA^gDJ@vzsq|uZ_QO9l1SS;_d0L2?+6?2fSyQ*W?`^D?UH#us!Wt+@|p{-7F(=@mO-3nXyb$Ox~0?lo^!DfkIW zLWw)}w3Mvw@F>1R4$ZL`29PD?6at^Yr;H8qd4+U{;G7%tgguv)>(XXL(L514Sr*ef zcMf;eFaXDqK`du|3*CJ@S^kSvXG69B8a_>*LhLde7_^J48~i_D*9HMT`~DIs>GASp z@UyHOkQXD)0`n5yz9B?z##_G#KU0cw`CAhAOHZUytUxKVV)R_vEor}FGO{1vUGk!qH0Sv zEqx|}wq{@S{Q4vovoxk4PnzU~aQZBHl08LnRN%OMH7Eb@duqR@dx+(e=aC9s%~ zJj@Z$2>?XFzlK|&CEU{eB1D>op{wuj&zw}y2F5cfD&!-6GaJBzx`qx;)?87&~&znQi0U88W~6eHdo1q(1Ored1najsYjF3|`6M0ogskU7hV<*TJW|QZR%UBd$^<5GBV&u4mJkiWB&+^qVY+QL~Tms!uM50eI(nP9(mZhO~DU43X- zHMhF8d)Amct%y6nsVPc+SHse=Q4JLe7n=Zg0U)`vnkIuhhn%)S>BPX474TsCNCBtG zIIep~S}+Xt{yf`jKk0_wR7$&vbJfKHpY*OUxRLpjuDV4Zf#&8tQ~P1XBVH$drrw9kHXS zHN0>m9BN$YW`Nc)9|M9+$=Au+O_TVgWztKsOC#EVKs)9|*Z44In3&^H-b}0{iK04b zgQ0%<%XNHMR){vaV~os!bV+2wvFD84b*1z;_03yB`GIdF zy6|{egA+P@TsUu!PY_pY?a})T~HZslqfhg%p=E z{OC4`;R&Z9IXezLxD~3tn^7!^mpjo5^*R@?;y3rUa~Pe;&6+yp3eJ6v;_0(mtzvOU z@felBf2Zze8}~KZdVX^q1tu(yzaS;o^rSuMFRs{y_ey403y)QECZw)V{+2E)!wLD0 zAeJg8i&)$^FIBvRP=YZl_r89xjKut*T3?fjazvApdicikFy*W^ECs9)Dd#dQkj`j` z_Ax>;6tHGJMiQQI_d=e~2pHeV0lO?!Y-e5$*~rOJ=mp9%L)j!^R%Ma}H(F1gL7`CW zk-`5uA~A0yKDXK36@DPufBA+YMP9wd82!GvZSmi+qAi0`t7ON zo1-Jnv8*>v*ekRMh&*p4DT~4ip_qp)Fo9jK#1yH{00d4# z1VT~@L!(+8BY+TD4E0aj`(A8PY>~aR+sIT~YN5 zi~Op;!kkNH^&8K8ZuS4ZLI&oQg1jy$(BIOnX@~{vnViW{fdtIV(uD>=)1jjf4btoO z*@x0ntUzq2#k!^9;ctEwmX-Ft-rEVqa~gsI}}+h;_Xpkn$)^M;8jM^zHw z?b)gE(NBe5K`yHRh}rwDFeRtD4{MSV{k1=3?33xY==>;aoz-+F*ZIBb=(4^9;);z> zLKdF9zXX20PCECV9A*l{%UMK$TG>%5xP zay*$a0laTmS-=j=MKDYoSZvjUPvWXVNi*eIG*$|&h*T*k^^B2S8q`nkzJ`XYKiCCW zL!0X!%Y}qx?6!rovthYRuv#YB3t{zw8>vE4k7<-fWC-T>5P_8O?zV*tu(g#-}>*j z!vPPQJ23k_&dBG@>K^;5Mr+}rFf zvH-ezrBFEjKM@1m)yOGi(_lZ=TShW6JlKPhpZUrWmn&98b%iV0uCL>RBdkUw{{C-X z7O_WJS7$G``~8apxK>^Up4tN6c~mGGkVV%UE1}da)zPrO_u6Os#zOWMCCK~3H{nZJ zSWpVLVCq}U6{JC5Fs#L^rq3@M3v%&wlww9`2hi490#Fvj31PvZ#l{oRzaE!#K2;b< z3in|T$gH%Iv>?cEP)X>>(p8Djj&dBkshZ|9Qm=vVH??AP zN=O8gbuT-v#)|U*Uj>LGT_degM3MBZH`kriA9RgjA@aR7S(GneBHea$0ckiAs=Xec z8|%ev{Mf>7Sdh(8SCQdjm$>~q(z~{AyCwg?pocsN_#OmLe9yslW5~s^*;6;nQ($;2 z{0WO8k;2(ApT)Zfx@t#CaEgL=h-h749^vZrLHm_9xeK*T%(yw1(%_&|?kVzKDv%;N zGzYxVR>)D2Gzn^6mSSNqaWZ$i)>h#qH(8uMTb?45(Jm@ZquC+5)l4Y&lxbuKw(uNg zp~QY>!K}1vpj$q8?xm`o9+UjE;JHyo+BFI@?v*tN=v!Pk zSw*fzxF>?;hPgJaRhr`*RJjj0iBxHZ?5#NHA_jO)zFG#_h8TAOFl`aEmd-321m?Ya zmCDpl79P{W9a>B_I~2?doYc-aRcE+P^xYVH}h|8RZFOS2Nat^hX^Qen~?!VsF)g{bm*xK)-mfk3lWsLZ3uX zM6G!8`^6;GPTwAelfy!pHH@mxe0-QmE4*QoZsbCD@xmtI+Dbc5aBEK9UuU_Q1B^yo z5tg)ure>tbq*#fW$&S48pTfF3Txq}us>-k|hO|n~e@Qf=I7Yu^mOTsv(RMF5;;Ls2a z${7k1t-s2}u_G)Z?@v79Fm?tlgc((Zqo z#eU;DUL$v?VPVga)cv=V4;z|8$$-surq3hf(peDlCnvRXTM35&G!yU}pX-+5XM23Y z?-hMwiu3AoK{&}*X^o`u+|3&>k&8mH<&-A#W34SB^%L6w#KK89wdPzM>|ng_;q#?` z$-k|pG18U}6YfJE0SPhP>?Rqt*dQd)IW&gXb%Uvwh ztb6L~=%0?7Holz1|64i*{4d@7}d2U z_8VkUGs&osB$7nErN8Mxx_;9p$A`)@qv7kC*zeJC z$z%IV^viB!qbq_KHCP@-aBE&a!mrENv-|E8H~aD(6Ys{*u{&Vk?hAY@;S*dky7;@9 z&?%F=J7DbY3x5pp4S%d$t&A!!y1Ax z=Koi9>HqQS{|iu~Z}*=eudi#vpe9yL%h6&wUTOWY)jZP8THdJR#?(t!o;*0QpL;oa zJ}4DkzyABv9r#wAOkCTQq;-}I85#uEsL|8?2U0`1o9n^*Y3RT(uK4+UGd>g1epAOY zY{iz-hv%L>^Y07beY?2jkknh4e*=c_T)Am$pocq*1wL@pv7S3)adI_(bWpe6XBQvb z_}+Bxe9gLqU|Z7TaxY&ZT(^D|zQep|B?NLp%474dgOhpQ|3l zCjUMOQP*dZV>s|Dc4TsM&TmXg`80=9vuO|+J|2sTaCkS|;RA#I?!9H9?6}X6(J$n- zCAV%Ll1v|)mw_$wugJ!Jq5)qJaL^}iE1h14#3Z93)giW=g>aL9C^Xjhl91fG2jloTwRL~u@W|a_YJsWnr;J3|qF2Z|0BZZ~XKkee(BXSvH||Mv!4LH3*AY*+O2UFExX zv9CVvkZ|wR$IquUAOLDY>_H^BHqk^j`Qu-lt*8)W6L7s@509_gM-K88uFq)JW%6^i z)98&4y_~(UGb7NbP822N%Mnn%o|nH6e++p({(f`DZOstBYy;7qoTmJC;gCK@FtU1MV0 zKeyS6V7NkT0n`&|R94VDF{j+;ihaVx%YyAE>F4B!F3zL3t6hgV`=JUOcTivx!1A+j z-Rn`dKp_s%H{q<&$JO&p)QT%l0ZgD1)%Ysu{0QG5R9vurt# zr$xx;9fJ@%Z@p4=f8!!Utn%%Q*oI+7J;r7NBn~~#i~x0N4{5XDZ;FI5}Q&v zBh5)6Xi`9OBxFlF5!##RYt1bq$b&g~3(H-S!=~(o9LLKA(R17SDv%$y|<@{hC{*h(?gfh15r6m0PMeb|is1q9 z#Dcth5gjXtQt6zn25|P1DrS)KkkMCr|F|&vRjF$8Qhiu6Agfep;&wE7QEu)@mv=#r~V$ii5%CqeWzQ ztfyCSy2(|PmNHGSDVFD9*+alBcv+CNL{b9v2}JQ(-4cC43WWO?WeYxshX-mwXBItq zl%90ZT%3s!(UTMsP_5#l!9>$WTrWeA{RyU-Y*W+?T875jtsrAL;AR44TYf9Inc_rBW;ObcjdMMH7-Sjs$c9gu z2*Lde{ev+aZ92^q%k3O(&E^)*-d*pS^#SrpiZ9=CDNquzFqZxpd?Ep?v+;#c%lGeu z>t67m(oy1FhC+C zOQ&`U?odeIDZnIva=1~y|CpnuGo$%kIHLfAUZF^Ik(Tfzb9&C8uU+4ogqqrmFcK< ztk=jF>$eFFb4H_HNfoxr(9SYAD*8rAn~8&{JRP^TCHOi}Iszgr^XkK7NE1>SfQ++w z(L?(9a3-?A^?o}@I4ok^705^)VB3jwAIatswSdNHuh_XxD^+zm5s(EN#PSW;8S4VA zEektCdd`Uo}c>henDxb6D-OH2$DRVv(gtS6GIrmJ7+Aq&N87|yo` z!1|SsS(N8B5yxi`teT8G{Dx_F@J?kLS46aar&#K{T=TYNoD{IP# zt#VnY@0ZOSb8q=`MkEv6A-($F<}65Kgd;t3*lxrA7EOzicZWV(!peM=TE-_Mu9g( zJx+YWM16GCAvHJz4g$C5?00j=e#D9S#kRn%mRk`c{FB&Mp0jilC@&l{l3 zlF*=#tQGRp2}gz zq$%*~sKjtbLod&@o;LpIMP6%~4Nak&8>eJ2a$33`q@V9k=v&k0-3c}YQt={1AA};t zV9s4?(nhzm$#RA}#qWZ;(Vw_Jzsm65RMBY6u zp_D314X^YUi-))eYs|UDRd?BK>IX*`lg6*GK59h3gk)%y@nPAr0%OZZl1YrF-{7D6 z46m&YLujF@cajEwK%e+L;TmjuWD*ORIHph3q27l6bv2-*LYyZTO|dp_d0(-7{bn2^ zk6^~b)%RNB6i(7%CgeP37G@002y7XWs})s9G2CFf9lniuY(J#&t|4Ih>{kb8IPxkc zll+b>YObdYj@r<=@|Ai3((w`(N$%KOjJ~C_Lhj8GLJKFi2v&hf!)a4J8;aT>4o{MjahZVkS6SWTBbc4;;$d8hR+}|yb?uK9 z)w4W4){HIc<#J>6N^z~M=AQ+Ig;aG1ltvEoqdsS>#w{36vUrOOJiw{q7|)sntQrmc zuPt3(dz?IP{Rro?g76o3&59+}w9qJajqrnjsd+-MEx`RE|CFDW>M^R)ycXiusu)Wc z4K>?BLxxXoMV)jm|N7n8d8elsSw1<&Mz2rkr=^U30Agymr2c7NV(?Uflu1HtrQn6o z4!k|OtukC{Xs(Q5!f3QRpF$j}NlX+Tf^tr*|ttN8cTg?{b6?LKp5 zvK5D0qU=9jx;!{M8s1~Qvi6dUsx{J%6-$vpBqF;k`%w!H>9*Fhe#x-4%Fv@wxfw82 z^@HCm%9EZsQPMOf4hEU%6REZH+gn)W!PqGRbQ!VwlTzODMY3gs`EXMc=&u)djO=oe zVIl4dl@lQ%D?Kl^%st||?gv#wVx-S6v!O6NtCAk} zx7h<=kC+KJXL~|tDd852N}E8Lp(nIYB6Z|4;*=|q0+Xm|2)sC|FXmux5mCd)w1AfI zsr|cEV=0Oy=aIZy*X(X;8+QiC)?jKbJ2fKT1ZdQ1Xaxe&EL@On*@MLN5mG;V?SyRH znBRJ93Xcq_A1A8PezV*i2ei&=S7TU8C`u*_8g zSLu;zo5Czpugp(}@AmyE#yEV+x(G?v&pd<+H|Vd8E6If*{C&wlTdtV)@j_%%$ z;xT3M8Rjn^b*LSoQ{=nIe>w6t4gN9p8O&t#fgb)7@4wapXvGq4>iK5_PU(1f#J+4i z%Y<(#M<)O-9y-Wjq_dM=EP{5R2TFHFbxz(vo7x& z*}%A3+TH%dCqJ~hyEzG6u}c6&oi7^JD8@crMTJN0p&^btYCNo@T&Z%eXuqan53v=l zV7|tI{sZ2M-eZAn#DDb%<%2$YsjgtbnhA73Kg5J*IWb(n$$`6LNFA zP_4{YFWzdiM5sFj8w`zXJ5FzMktre)$gs=c#FoOq=v0Bny{tL@N%kp zerRTepv1vD5Av=`k6xZ%sWX2#{MFs$T7@n*5S%M};X_mv&rWh!#YhhV*sdm(_`0`1 zo}R~kJSLVV?%zRxgiF9y2YH|r{YRtJi#IkU+zm9)4&QqTt-r%2Xrqnx!ix7zzW;*l zJVnIm1J;l~lRr#7=sYifvaP?SwCi~^E!t6wSwq8;!pEzdFg`rykRce{2qV zY<@Q`O}`lxrAjNC-izYZJf@RRY#AdaRWMs6?|lSZAkzfOjk$25t-_(C0)r5-OvK7V z;v3aHuBW~Vnn4eVQ3qk)u~zG2W3jX~dR!6rl^##}rq81!+$&;HnBbAhmCzKaLm9~@ zWoFv3qI)5F^6DidjySYCJpv2Rm>7xKK~n>TxX6H~9}vp=#!bfxXEQ^X*F04Uer0$@63VMp3BMMbHW zuU1PH+{=>%lW5)ITv@W>+Kh3!R*PRHv9~=$JSH9uE3P?Kw zlI*N5a%m%C{9ip6sVgE4hej?u7@cC$wx-e&tFGSduV?(;Gky0fE|0&!&>LbD+(Y}* zw^7Q0!z9$9R{#c{Ku7F>z2zCB891Dqbgtw@|GZbu*%;RGN zs+*ZC%!8zBD?d9CAcIVl4B0jFmfijKXN9AUUdC+#d4z<;OhV7M-{Epfmmv6tdIWu4 ze1hUVL2(K?V>ioSxy}WySGeJp!)fV~#D^#F?w;csmBv5yTkbdBO3Cer%^_M@X*|6d zs4*&_#6Q_R(&cY>pFu7FzCL<8lf^nZ`poEM4xWh;7=H zQG-*WVhW&GZ*!r6bLWOb3@)FHnRhDQdhyNr2B^ka7x%c zbP4N@9y?ub`m7J!iM93e3JUV~eN+tSjwUTU`nlGV#RlN#MV_Eq^}?IPgGL;^F^KJA zKRgch8;730J%Fv9_RJ$<%bAePg*4ISuyaX1vOArPgk2x4_BQA+bQPBX#X=b zd^R_!*zeYTr#SrAv<@cI5YO3BF12x6dMG;(EwYBbYo z;HB<(`$XF`fuo{IUXa!>z!qkA8Ad3QH*PP(^RpNT8&>}yspk0$V6Oc1T_OU%ac9(% z)+gRs#7px6wyBXiy~${YucCxnzsQIsH*R zq=F7X&Arn}*lwXpk|!?kkgbfOQ!==-eJK#;OaR*U&l@RqMWNMQYK8E57UsbulMV*6 z5+lD%6X%ZD=K%8^Vm}qMs4Q+2&}Ki~%_|x6ZdNEf!C33tQVD$#7^&bJe?kb=)gsO+ zS{K#KD`uxFw7x(*_u|*#3WVThvnj{^*;%Vn?vYU> zkpRR^#COPpL9jm)5ip^|Qgapv>F)o%^=JaNy`EVeA&dAIaQZ~e(YgEWMo>^`m zCHrNRu0oR@Om$e(_6N)T!$C9?GX}F{U}alMHNlHl=+Ce9xQk??Eoh!C%zOjL#vP&y z9wRJJ&s+rN$~bW%_7IJg4@j?9>8N`SUIx;|Kn?n6&Xi!Y_v<~#JP&rl-E>%xWqo>u zlsC@&jRLS9X}ete;&jR*TYc1&>%Z@x=oD0Tvfg0qf6G%RNOz|#7A?YO>;M42I`KK| z?F(~{hsUAO9x7hb^U@hi8TB|65O!mxq7Uqh7+efYM%S+`^q^QLF%uYBOi8o1BQG0B z^0y-x@>GiZr^B6Vm1~GRB4|x$g!6@k_7SpUK6%L0+{ydz?hpD5S2VvgIH>rju&DEH z@%!OtudEeact_!gGBYMg_dOo#CfA_jr9t|@G0GSac@jeBv;&!RSn$M$!=xX+;3^`0 zz@WjYSZR9>>V|Il1GzXJ2ZB3JQo~qPWipRRS0!>W2o`w~=Zh@V{VVfV$kJu|`m2b5 zhRMJ4O$h_tWk9c%zJ*|i)d|QG5+h9OAx#sMkeqq+$pe686Oa(ca)C7ni^$9QzIkVE z=@od@i+?i!9ehUGC!Ie*x<5Z%w?^4JtKQMgskhT?JV%w|Np3uh3~<0c&$5Vs%)N%B z^g5~a1be9`;FyP?4Xsa7glWESs!!$FAc+5(P?5-xDe{MJYGI!3lvxRXF>iR2$!9Ef zseKOsDxB4Q1w}_l^I7RsrkXr(x0tjDUO1bIz*7urHW!19%-yQKo)R)Ba;^u2&sWxJ z8-Qm%*W^w3sSQLN;3`Pyv&2V&hKavBmFkX|tDDF>TRwtz)XVrfpYq`x!QTGPe&@-M z=b5}8t;LIn0+nAD_C%U<)G+#0LIhI#SVYm3GJne0a!Fy#67)bvlVel zu<-QB+W%`F{=Gj1hfVgi+dEg7ar-1Qv`GtJ|0y%XGpHnKgQB1+slq1P_^{c14}Up3 zQ1Cx5F=2@$%Ns->paNGQAm;zuOYHxgeFy-L&jRqUVjOF#{Au+q8FxR#?VHuu_%YS6 zBSYyp(5gVGX>I=7Q-fDd6{}F0%@-@a)dG4SHIdH$_*kSW0lhb8Bs{D|{S z%x;%t)8`}!@P0S5^XtIp2$01=CFLBl@UR>n4Eyk0h=S%9%<@X; zkv!#0h|pgdWf0IEX`qxe)4L#t4`QD{MDk%{`3{Pw1AOAP4#+RCuc;rzb+>cpDRzH; zHXk;I-TrIyq5bo(LvA6k5EdkYRhaK|ua~?I{UT5?+4h}-7`M?Z*kD|QXVEH80p92{ zbFN@}vSMZ|`y*vf4p8) z{Y}EJPknc{`iAuJQy+{Rf^zTkwFir-l%IKHlhXlV2k+Y?v}-he!Cl{(-qPfwvpHhK zN9h9zgrHV!Mqu?ybfye5bh%lp`WosIp{VZA2gB01S^-{uyWy})AYwo6Y$H*9t6*4t zp%qzi&0K$DsQOGtU76N3|JGxRNEc*A9z)|(O?>RF&bEe3cHBhvs^(Skr9 zQtQVv)dc6C@~gV2Sp~(+6Py6IlO}aReZ#mMaAXlmk8tEds~ zEWZdyVj~ewKqKx9JdYl?FqYyT1%cQ_uGy?L`JN#2*HMEsDHdWxs-pbz@6q#GnsnBX zS#2m%8$S^F+)GzVSyn%lW*XAI_QU|4{wB#^LbWmJr zU^(!waFJ*BAt_vrE=+`Ry@#c%`$o$mu^!y#_gL2VMclX{$bNeKNr1#ONjPP^Bv2=H zQ4UHcwkTvBqQr7c8I;^0e8UC0Bh!3-b48y|kI_RPecu+hV0}uAxxuEL*kVbv~RyeNxE2`2{a>(XzRt<4_vBQLjtc0{A2)q zgzkl^bwRR>*pi;-eE#-BAij(YL{1lGARAk1zw*eop9ls<1@TJ$inKp?PCq>3raa^6 zDfYEb0&?KoK`~J5t8^u}X`FIAm?NyuJXjeA;2IrX3#l+exo=dcIp*hdq8;`AGKl+Z|GWDZ%F%f1dhvRbY>YQ!Z&T%IY}j#4 zz|L^r-%mrJ+`l|FOWCKa2kn4SacgU!FN;w)6l7f; z*j5JoOB==z`WO#addU+4}%m>d35Sh0Ym0*!n+QbToj>IOcHcg#TVE3{#D0=3?G z@;BAUoUiNNJ93`=WqqB0bs9tLS!;^R5w5eLhWt}XALHNz2cqgbq_ zZv$^Yss#t&#h21VZ1O$%!&)v<$UqZt9<>DtRweTZ+c7VLC1)Cy$ z1Rm~S2=+7b;m7$fT-B11KM;WYWquHb^+XmJ#JD!+U*q;SE+0oF_>)`|(xNtU25#F# zbx!S&NMYu72}b@U&%vWIp9H zbF~G7(<}tk+#zb&aMCJdgQvd`g~g0*IuYI{_BRB?`70iq?bI5$IMjP7aw~EV{h`no zM0oSCL#5{75QQRZ>Q>DS(iS+e-_dlGbC^5SqwS00n&quRw`YizGI8so;w)Xz2!WG? zkk!prbKKJSEp-7m2&k+$F=%+?O0!SUyH;lRaY+CqxDmYHCUDpENNFdL3ndZFtG_1O zu6!NldoDSQ}4 z`EA$!1J+v4_w&HTW+K1?j1b;Yzg#D6<}BiP^O7}Q5nU07PD&YwmuFW=R?=mPQ0y1$ zy2g7kPmV@i(M0&45UX%>T2<=1RaDue#P#S#;00#~4__Bm#D?V~+S33_aM>5zSz3*B zrh8&Cat*~Ku)M!0MD0D?V&+31i0_mNIMQjj4B7}p!uuXBuDZ8Lk+$GA?{WVglzyq_Vtxdwzy>Hddr>$ z$?uGpNJsy=UP78v8JuNyD7b6_oJPQt-ua-k@W^tl8H}EA>`Szv$T;wuLy%-cB3CZT zsCN!@Cj8kc%?V#clKhOt z%Pq`h4^xrsJd(Pj6)aQI=PIIZgWH^Yzj^AExH(<$+x?;C*iZ{EvC84GUYMLHgmw<~ z_vBlib^YwJOyl?#O+6x{E*bbEe6mD8gI$I#aOwGDNV3E~8Qsb)yoq{$Ih^4JMgFn> z1*<;Z?|qNw6@x1c11bwQw|78X-6FG0$PWL*yi0UHojV4@fC?!u{mHhv9?a5@SD7My z;>cuTAv}sMa#1q=w$T%2(YHJ<-D45VCN5!0=-4A~^B615!w)3B#`ZEYPY5>Wwp z>P9|bH)_-8R6`tNVf`>!i@fe%>gXqvcdjqQuUw|d;%cmmt~M6W)Z>_}Iddt|4DM&{ zkc4mB0&>}TsP7N0pslRpkFkb%IhYikMgcO$4o7u2N^}PZCfBTweDBeSry`44`4JXJ zt6YI}i}_U+IoV=TFNlp2-SblCZx>hqP1-V;j@GgGOS?xW9%oesYNW06!6ecGB45!! zWoW0-eu^(ZJz<<^h8hqs-Y^Z|&q3SN+%v@MN!2}?+OKC5dUSW5R&J(a%u_87D&G6BHYXFUf6o zvXV~lig{;^u7jZ1&%uAKE=cP)TZFhU>G5}3Td>oVl#?wrYwsHId?O#(ZT+xEyts}w z7P39V2-FBX=DhwqP#d@K(=a(dY#-1ZH$hDTVR&xGFxfJc5&;*<3=f^LqlEU@e#>;; za@e582V1~>#R^yuC0-+GuON96wYNmKOX--2o5>JM{D}U^1Z3F8pgE;#y5;Mji;(p= zF(IGms)k8Oc~wU=IJA1w`cogKMQ4B??r20IEKfC9WT7_n!JFtd6HF4INl-k$d{AFP zhz$8b0D6sjnr(bLbJ%|!ckOZBE7rl1+k@da`;jR%B}kQru4>5Y*t=xBET&!dNJP43 zfoB638zg7moja3|0~{iCi`xo;UbRkfwi#~AJx zb!&kp_d$!uYu=nWz(pDz=c_Yl|ykM!9zR^gK&ra=<585yUhhf?`u7(ayeMCRV@qb|`1W z#f2r)Q0`LCC5dW;Ee4k%my7zW;%bKn-h&(*hXlh>0(U_cJR0@QZAQR(PWvm+1{u6x zrW3aqchn;ysROI{60T$hD~5bY|4HD}JUhzwCcxzPCcs68uWRU`0g;0+TxW(_vD8?e zDrd=j%#hxPZ43)@e!y7wDepQU>anFglr#}iHRwaK`1hHcHB}>0>ozO_OHjoz>cxPE z(-E>1tQXizSf+hP@|IXGSaAd@T0H2gj`+t;#lmU4|La+3W~E!DMHy4*%j= zh|7eKBhw7HVI)+)6}a3_{kB~O~8Hs7m-ck80sB4|_c)|Db;)1%QDHMot~ z%tB(*0~aopdf^gA#ViSIuf1KH;T3{5prab|_f<6`+RX5eW~+D;EKmZ1W>~i=C>pEl z#7dHZtnOu7-6F1SZaZ}qG!Z6$}0L_&<2Bj<~d>D8Sjrmm%nor*>@gslb{H|$-skp4a%owf0AehYIP5#)nY4!5T z_KEk}ufOCIfc?mSa$#?RLU)+OzTE(^ z{!iBfNoQw!5o?QoO0)iR>ia(sj{g4%;WYgV;dFmKijKa>gj`sfQuQJ>hJM2Aw#P9U=6z}|Sw#j^pKgEA5b{B2pt0gBC%qQiA`~XN?e2j;ZatOBv?-CrV9zN2LI% zasP@+O=6FmmUG;3#)v5G2mg(&2pr90`9j zUp4vr@A|A5G5nPNmSb*f?6;!}`(J<%aySKHPEsM6Tddb(#AeMhV2APHWBKUzNA4k8 z_GARpY96ug_N?+Z*Z408udY0CPWjU}*F8?=4W}ujA^Pxlu;#fNbQ?_!iD|nVm9Rde z<+tn0%cIMK+!S+7m&!rRjz#2^-t*ChSIi8%0nxoVl8_#!bvJ0AZOTVZq!4})idVIQun#c8tDZ`;*qxEF|OnQ5m?8(`6e@7TtnjxO(28rC6&4maOJf{r8 zT=HLIshOr&)125rSWx><#UzkHIe~3k-qnwgFRA%Ma`W1!XYNyEd%*iU-rTw$=tq^a6Vh;J&>8)iu{KA!xQ8-srwS&Yo z6nSEYpa6nsdj_j*p^(5B2-B$_yJNFFW8lHVaDDJ3Pr&@>MOj#hy)N!iQ;V#tP?1a7dDynj0$%uH$L znNbZV$KM(DIU{y6$Hw!o@VpzBw=(yCfW(yAZahw?A^^R&YE~OHrhcjXrsVnRu%eVb zlf(#nB?+MZklLSSgS1M7i``NgCtRr1R%)^E34f#W_bbVex|b@PrU>%SOv!;^9WW<8 zWyV4Puh=_*hH<{XQQkH{E)*L5>L!3r1#6#4^U2gMd|yVOEu&uH0ljd#}<2wBR(2(EwxmEl^fVWYvWaz(ChoyxU-%r z3)?Fr-HTh%{fTv(##nidYU@52z$+bUZwYW>wi9t3XT#@}VuQ22!FfSecL@th0NmDJ zz!S{g0NuWyc7pAxe5zE0@lqxaiCf|aso8vqH z%A~7=nu9ov!vydrt8r1hu>`Lu<>v3o?lw@HE|~3c{|aR=uaGh}pC?m8aSP zWX5F9WUE6;H5+7r*3WDI*y?#E$WNGBKA(^R#I$)d(~hbNTQO@MvxY# zrtsE-^&us0tf|M5fV`!ZMnig(cd3$7UCtJ^iMN2{rL9O?}F!erD_4 zgH%@8b{CnUM<(8#vTa^ItxisW4R4-qWRKsr7Z*5(0OdvWo|dc3NF7|Htdl8-oG1w{ zr{!|5)`q^nh4YCiH^S|%nwcYg0`@+C7ckOh30=@2M`LK|PaSAHUa)Cxt&lVBHPZcN zK|j=>_1ayPM{Xf0NyKRUiW*81?Yb+H{{(h5X55w^X`VQi^yTdV;V=H`mSjlPn~2d3 zP`7TYWMUh>oo#No8<@!1SxEM#?A<$Fq9{yrS9pph2rE(1-7j7#;_wjg2dsE#?1M=U z67#vMIO&~=&xmSlOV)&vjNr=uM7%y`$ufKyp)6~U7G4sx#ReP<`!3UJo5ZJ!mnse8 z_GUafsx_TyE%BwzwlD}&_pGUZ5tDx5A6fqC80@@Pqp;EojwT^0usG(y?YJ2;2ehb)y~H#f&Qe9@fUZ|9mdGi+PrVK1h$UaI4FD3Y3XFsnIx+zj3U zY!dbrTjt^28lGLJ@D6LI+H?Rmgk44eB9fEOF%M+(haEPYl)3w& z;~TOSEaqREVZXX~sfsjt&*vkS?!univ5k_>3tR7vb!`e_QnTByw7+8`^y^#Oo8FzR zjX$|1bQ+rLUss&-+Mw5joD#0s0lbDySVJtruj1hs3ztN4l zWS;d_wNzUD@zt7PLnqlDOY|71b~AqS2LI)rTLnH)SZ0hdx_>`srbqu~wfj&8ESd&(+?o`<{(MoiObjFhx+~-}e{!+FpVm!-Y z1@*D>_us%Y;ne9b0bSNl^Y^W4SDNDPl`7ipq#fk66jPJUEMUIyKpSG$l`Mp> zDE}dr5UwzNRu8;;*)Hni3vH)F1}96&2N3g;3Qn*UX^Tw!lnRKDAi*wCf&lu!mCOxn z4=f<-1khiK6}qX$sQ=Xm7Mecd8$72l1mJ3q%eKUnq%4H8V@;p#V&G-rp(b;{dVf&F zaBJGlqe9JCdDBmok%!CTAng0X^a;!j)4mzkog@zTT8KC z!3;ypMHB~egWCP>aK^kf(MBIEe-R zh`+6hU>L83hpJE57Z^^r#)wKJvze|=L_k!G(whgv0&qHUv8i*O4R08L?Saz(<2@w0PZR4ltSl@tbIj<^;>#Gd9d}!@7#4&l2LXvLi06Dv#hX#XJlKf+xa1 z=^uJYHQQYc#vkxmaD;v!!_aa4K)L3!P=Hm5ok6GsO(sEX!xn}}Vd?up6f$^9e#9=e^&I=zLu3>V2E@H4~-Q?%)?nzF`RNJ6y2)#xT9 zCq1wL%tI9Y-dQ_C3nf{5Xr%kL#kH+hobm*GC4D_(Fn01I1-EL5rSK-%AS$68#1a@L{AJ&@ zG--n$w9}F>^l?wI!n<6OhH6%VP*|AM9Y1fOEUM6O4?U3>Z=j}{@_;}z_aFGf*8OE& z`lGIcAZc59ijPfAyVgz^VTi03OU~5E!4`%^Y5!8JajiWE&%zUDnXI%@h%6xZ=jhp% zV>Q6R2s2?%GXrXy*A#?CWJg40#yps1`S?kiOW3m)Wa(sUXNF&0p3jX+y&Re+)>YDv zRpe^qX2AKcwkrOV^ENwLGjP^BimI_y6Yfz>$KoEwWsyh%#^Lbb-Z!;{NMNRajxA7z zER~bhCR<_G8&t7wk2M;UW$YTR z2Z4MnH8l>;b(<58SZQ6{*h3by4W~ZSBj_Ja-& z2Q98h!^bCEt%WFLFmWGOK z(&^vd(Aw!{jY`0D`K=5q`vs&2k`eom-NWqZBFaaBynzQJ5KQ63|svB z{M_fs(@}Jd!EkBt+svFnK>pUy4!;Gf+b!{sNHm6F(-CfMr&>?{2trBZ zQ+pXp|2&Lh<9%$iUZ6QUXtymNV4%B9^But_=S$q79RxBEA4{)+;U#X5)9xgg_Qn7- z$=pWSIL>M#3Eo&zWzHX|`k5tsO?b6=z7D8wkzmc2Djg7c)v}qxRVak=tq^oud|bgP zwIKW<{AjQ|NFBf(V{rbBT2sfu`bEQD#0%!n4;4jH>D^W^BN4rADB!MxBn4}^DWrgR zH4ud6q6Ab6VyA^@Xiw`tGUWgGMzYGO%lMO19d*dwv{z6FdSNZc% z!HqR%J{Qp8vITqc0XTwotO0G?K=hBMQhS}HCi>Z(yQa!!Hd-)hQ;E*u3m?~U^?g~n z0g#4mo!A1>Ks{8Spo+Nwkd1O>48+m>nFrE5-m?VI%qIx~)=WNT1&C6EQ%Hvr-|4!y zgZhNmhzTQa8R-&xg|hQ^e*-SA^P*m5TtfG%AkPeg^$6Bu*#Y5}rm>PK;T2QEQGxyg za>v%=R$pD4r}mA@N4!?++3Mic$~A{fs1?`BLgdm?y0a>vJQ~#yY6`d$=M&okF%@Zx zsS0Qc>c!<{*rNEm83M7Iw*`^3?yP#^Zd5fYV|=qUrjmFATgQw@$9hRwDS z#hqurq@R#f866wZn9SPLEo^+=@{d6V4zb31a1VT|LSDD%Y3_!?F%DjjPH`*83sJ_C zlw4r8BXX(2P7t=N${+1tf~3ZMT=@*~i%`d*q_aWx}2v|fuYjF@k5~|v*+Ax`Rm@aCnlLb z8Ysz>>S3$FY9CW0quXhWLTjbcD=OC;E8en(p-t1cDipbT7cPHX$ga~)eyCh#s_+fd zHC>*u=n;C15dN}3LI6!##x3)(6=b=wUYHEYLP~Zv7xRdCh6O1opLEXSk%?uM)ROj$ z^AzVYN2Bl|T^1_VaQXN|t*UX!J<`wzI#vaSX;d|PgdrFaK^|#qj)P=~5nHzgI%knqace;MxVNiG3oL=r@<^5S z_i;D9OZ)NlB9sfN0xBwYG4X_p!q>EWq5J^tXJW1M#Ll0`&w|ZvPMRJt%Y$S&zWgLi z)t=e~Ue7HW8oC&?-sS}bA0LO~izpfl@UT@3wVs}~`+kO+DgWEyp3VjM{l9;cYin!Y zv1@Cy(500_c%+(?(0bNhiY@dYYj-F76aWPODcFs|#GVA4C&4Zy|L+pI z|JHM&?e$M4=1U+quoC?G7h%eSHmb#?$T{ii7MVkQTdO)PI=Ia|8%M(*l=8No?vHB@ zkzevM4R}1=#;xKwGN@dnr+1k|VJqWqX4`T%rJGLo`EEX9wgNr99hZou^VXm4a~ABg zo@OWg`JJ5-oluxChZm8Mqvoi)TyO_-(}RTbJ8x5|)<)>^?-KPJG8) zSJjC(-@1LUr1g>IU!F|7gT+0kNvu$HqoFc0n$K)-+M-C0A_0=#1&Q+r;PoA+-Hy)O z*ry#tr1m7s=(Bb6Sjqb_oZfGpLi~8@Kp)prG z)cbtmFQ9>=$EW*gsl}yjZY<DZ$aIWB0jU5eQ-hS_L}DvwyiV?HsE35%49)-cv}H zr_3CO(j3Dxe&*#H>M1)B7K?}z;k4kc+K_)OY}C}`18lgS)uWw{36D^c$$}d>is2LX z^91Dt?ERAE07E-K2_?tIdhU&4teayubRYz1Gh=pd&;s6)Ej~YQ}M31>Qk7jCr9^e|`io2CaC zug{;WO;JofBt<|9aG>OWqrXn?ch21HT*nSRUq1JI@Yn5zJpq37`uUYYQEseO`*Ct} zb8>&KD|XJrI-LWKHWXZa*Vji6d?(-2&BAW0NCJh%luy1@`&$KxHckxCgAlWQiDYym*vgbL`Tq5L+8LPR9Bu z-(p%6^*2APNW&bT#XqXuB9?q3QsAh^&2yDx8)o5R=Xd6!U$;PaR4%p%7>Mzn5|z-$ z&`~IV;L5Nn`rIf#oDOB2P+*$)&kQ>%0{4ZbwdH5^Bhw$GD`3Zhp9y{|=Q4BZ{ld~w z^||hm4@Qn*yh+fUitKG;aib7$HEqh{K(@c-U{#BZX0U7BjrU2+7DJ;)jId|4MMX=u zn}@n&}7DJX5n1dPJ2zx(x_$7)ufml%MtqqIkwh{3W^A517Yw{1sl?6MGgCQcC zfsA+krF8>J0;5HqUQ+WIC~m62>MgyX@R#8M88HTBH--C%(LRl!J-{4_Jo+R#$)b6G zMdKd659Aq6%y(PnFX;h1Uqwi##KHX&(CGA1hvI2mGxHT0c>B6Ax4WyuvcAmr597l6 z%R`G0F@mu543+nL`OLEPSON2&#RWirhJFb_1&T;zamc=GnYq9Ex}MpnMSsD)+3;`W z1f~r&eY-5zR8FNjxe*=vFJ!&BMP`@7%nyYCK97H=Qmw~B1AeG4%mjn3t5ep0WYNL` z87E!s^qtikm{h=V$b$H%FMOdBl+>7yrQfupCkoZxqJ!7h5e=p8=@Sn{HF-#2&@bwXMI4zm)Z%xe-9vy#f4MjOUI5(Hd(b;ytO&z45q0qEl8%i>swj4sdBA&dTRPp*p zh@@HnW!*c|&feKgY+T%-vQQD@#f)Oe5*I=8jCI(2^NtqT_4SK769cx4RksCX+) zi?pWhOQU~YP$B;IwcbmE7Y#D9Y%CtmAupLDh@ZS0@@E5kOugm6 zT>wrTCG^1i@DlgeZo?x;`Gfg#6R%uSnt(hGYJO;ueaGUH}`f5g40^A<=wt{BN zt**21%!u(s%CuRs(zQ4rE36H6Nbo~+GqLREA;18SDo)cp*I-VISOTxzdcT3gpX@|U z^{}Agz}nH%$lI)wBQON_U5P||M3|Zx@v#2KJ5~g#ZLz{_d3ncgnQ(|dpow6d4p_3p zCZ^rs&-f`WB+01f%z1%B;J=ZKK{Uw*nBGp4sF6^%+JM1RuF>Z~15fLIlPX}0vIKAluJ-A zqFn@%`TtF;+|ZbD0@~Bl&e6+G0K~1XmbwWX=a{S2LEjCGJl z-MSZ!ih+t-Z<`g?>L>C+3M8@Q>fEE#r{m1e8FhHL>e~tmMR?@n{cg9((k3vaFbvy6 zMzBQYlWa$+gaLpcX~b7~LMk7oX%M9KlhgQT-OYb`>~URjBGy?2w{cBD!C|tJIjDSs z(@z*AfdfN{nhu(L!!_R9(Gl0TAP|e*vu-Pv&v-uIcgwFxL)7?%g&bb zDly;|$V50F2)lpFFnl@~2(&Nk_RlmhX5n?Z$(+w7<|@pZn-`End85q9VeSkr(Di(_Sv9j(p*! zDz2`6Q)n?^Uf&7s)=z)ks$UFRsAO_B`OeZCY2%LHOWr!$j(jwQ;9I(KuX+rvliCN| z#B1Znms6!x2ugZOkyRXMF;v;r^i2W<5xi1@m5y6WdMW!bpg+QqYi7L&Ix=-_V0*VdzfSNB&G~<3!%5{bMh`BB-JypmPK66tVCq>&nWGsC6@^^xVXZS9JL7{t>!NzX z*(V|l()iR{ix#&+kf{^cGe^X+4vM137^9t7?ObtH8hk|^ZqLOX{qQJdNIBjHS2Z<_ zqNlETH^e*@LH;2YIQDGi(bik=`8VVi3r-gmr~OixFvgozZIZbG5;mIT-hou5OHJ~P zowYQ*4`1Gkk{=>36-0fO4A?r-+YUxksEZiNUkOz>o6)ctSHS&BlZLi&7(zp5vVIWF zB?k!XWZ%S~^q8G?FHTm* zoOm4;%CVj4I;l_I^Vnw39xdZ3>zeiy4hl0PLSI5favH_Y2fmjOkGEEFm(>xvq$L>f z4h!ellyhZp7Te~8IByq3oWP5sZqPF=FFfjoe4fOWnk;&PcW)}F)~fz(z$*I%PCL79 zEr=u&SEnLr(L-NjS#fl)vM5Xj-R*39yxv|GC#KR+$M2yuydBb>`9i2+`@xt`gtsZ8 z-s(P$3UjBBz6~ThlaiiX&;%dADp?~CzA|rRRh!I%&{BX4jq}1Fiin04NG(MxhiEN` zN=y>z9hUif7#XV$?lstqIi-Ph^Y>ZH#G!9gqmADB6nin^@>w~n5F3VHb#6|DOCURg z0=_?4W?JTto=bl7@`ZJ}E%nMe)9h5QPo0HdaD#d+AzMbzDD3`iJLehghi?+yDjO|N z(3Rc-T#5WALatAI_1<8_nRM#A8#*g0D8J7<~5N@5AL!D{tfcxcPmk(puWT}_Ur z_6VE-6alMyPp_%KnQ6JCwS!N=Qw0x8Fzh|k-&HR7Lnw$c1H!Ig^`B8}ajzd=t5(?J z*#{zkw-cRQ@YE?C%ki{ zJuEe}EowIQor(#AXc8L5Ch5^8um{4;C2?PYIXRG_LGcT{$ryzZveyI=O1TR2)A$dj zlMR)#EPRHodC+E#nvQ=&$I4SBL_I}rvkve;N6RA@YvWti-Gx|{K+jK@sIu!{>oLDs zXj~Y|s66(k-eD{ko)^1ro;8v|gtQ|LRVeSy;bpdxxI4u0Hs9 z@$EM3-Cq6m-qoFLow<1ZMeE&c_oq?m<>_~i9mAOy6T?|0G}FXD9w#(4jFq+aV$)66 ziXEYy-G8_E$quO15y1fgf&2sl`gZyK-v=^(n%LMmdi=X4{ol>#|HY7ZzZtSw%}liD zTe>H%3`gXpwvUk(zgD|k>EgH`DQbTH4}2(1MX!(RRv3SVh$2$0vvs%mCh~|;!}>S^ zbQor{-7JK+!CYI0F@(Vj8b`qA)v`&hy3Oe8UEK}m>7bL2gYnH(qJd~onhZV2InT^+ zj967f(ti2jlqrjst9jI)LY6Kka>sK5t{z0DM!qwR?d(Ro4I9Tn)7D24k}LLq;(?2M zMx)pgYlZ`5X4s!G;Isw5J&ai?dKVzip;9leHz}TW!VW*wM8Uq}fqtXn#y7#2xmnk} z{CxbRA5lbHYny)6kn!4YRXkm$N=VbYdfY~cPTi>2X8~w)7|H2~Pl=q9E*qVJvB4aA zVvSJ+J4CmM^I7jT*SDji#;X|gVr-k72$_)h0A9=+-_b*ML<6L z_zM2YTmVHOpo| za^cQ?R4#ZaiRp|J+;Ukd&ICm_`!HIDH+ z)iKRcIZK3H6$v;BTyDdS@8My=+m8Rd$+h!xv#55JAr#ck9r@k^|6%tB6w~nB9oPqR zek}AJl{x(SXwGr=1!cCwQVoC}bqNwM)&EV91#aUe3ZUK?IDeWj#U{!*q*HiJ6{-h* z6J(k9B#uA!!$#>$_K9!>`y{9Be`XH?#1OKkHyoI=7tC!*_%*i!s8+IsPMJgEJ92>( zF}SzS7k=e}xY=1Onf3JgjSBkv(AwtFl8nHv6K$>BDrQBD4urRd@7NF=>2v3r6bf7z&x-l9?Wd(;J z{7>ZQgWDKILiVc~q5|<6Hhw(_1L9uPLykIsR_2=KrUde&c1r%Qj*-X5`$V}YaRRKW zI|9^`t|H&fOn;jbzL&PQ+UmKreubwC}0X6>r8DHID5r5gtS%+{rZ_T6yq! zRr|c3e${0_5KPJnc6AxXQCzYw17_|3SKqU%mD?|93@84b>;T81s>Of?=MVbC78QNt z!QUuv&asm#KMLaHsWJP2{9l>08jT1+QvNP72{W-z;Pw{5Tz!C}bgrsy&}^@aVb(46@q9*_rJ9#wo>YFX`VA$gO{e8_L>iY>pEt2t7OfLF0q&@ zun(^Zy`(Sl{uAPtAnyuXV#2J>G;FzU^I5pTr5bvqW|Nye17_dJg*=Z!dAZ ztEcyT?W+lt_cPpVPosT@_C|+13}Qq@#t>alFkM8pFb}FYNOs+Mh$}8cfM7uIq zIy_s{r5TaQc*fZu;@c|Q4$kyE7BY}V(YW|TT*(jMA!Jflv9hDIYUd1xqcdK&zbuRn zs3j%H#mWsfd?}tVO`T>nx9aIX>2`S4eXYUt!WDbz(3<bwn}DG?g}V3BV(rzn+8hipwAM1)w!-(?9)TY-*J zu__nhs)xXny`@8)dPOg~6PtEI*6!?$^ki|-tQ{Dwac*SApcor5Nj+1tW6vMqmBdcC zJJRv;pU4J{Bc^Bt5f}TaIhSX$$D{oSKG*}_UL{I6nbe;T+RM4~I7}&SiA)uMY0-|> z-SAgAF9}zSsSA!VYA!hi)47$)GX&KV z>eK{MV-7XPG!%lh&cd>8*xxXxtJSM%-ecWt1Il_*#;rE8prwOWs72hcBz(6ipE5yL zi@Gy}QrAtKy7Bjx{T(kUlt(3W-zF9+fuem#2sThADHg6QoW~cN-oa{l0D!B0ZvTFc zW#m2)2jyio)s*E8n`*+*+T;8bNH8EyzRD!k$|6T78D<5|XR?lD-A9))REA=YOk{lI zdT{*#OUgU^tJ_je*M2XQurFm>6s`6#5n4iHQ^|J-DMiNwH=_JkfU3en&jVEE=o-6) z_{lnFNww$N#W6jOTh^cJ(1x6t0_&kA!Oz~T6s1ig8z*^VQ9NE!CDren#Dx9OO5#KO zZtMrC>b`%+I0RnktZuD*y(wzA-{`gujF06!?8Ur5u${0IER|JT3wuOH zx%RkSwh^TC+kCsVx{LXSGJ{Eo^})dq^)zwUE#QJtX1sBs8OMVKTZ0CP_;u(8U(#g+ ztz&7BOQ*d;Q0gJveU=GOF%&-Lo5TU}-n{a)gs13It7quxiu6%_mBGqhy-C@tW-)h* z4G+hU@2|skZXV57m)@R~9n4&{2=+0TO42G^J0)sK%(l+P3N#_(^M)0e(vcJr8_d!+ zDUM? z6On`h<9JdAyRU^zo;&4jygTRQ>oO+U9F^i!50OI9z>&_vSDBzslP8d4Qrq+wi9H6{ zwr}c#72BgC$dAsWI_00N)yMA#xA7d2sY~w~uE|9wM425 z^nhYI#BGO7fg67($>g=WVSO?h4PpaY`2mJ+W${4!LJo9mGiCCyj4`@P`%eXwB;<*d zjL2O|2zL#)p^5{yKBt;G$EPP^aq`{L*0ZIe-4gpJGhhIQk@TTNZHq`KR@ekD<#QPm(QyX9wgE%BLv`WTb#;n zw^FuMPFWa6Z_q=q7sBOYDDCcYfLT?C8c&S5v2YxVelGC z3$mQ!dZ3@;`a5ivnyvU4Ezeui20L~1IpnZ=&rI4!9Oe&&XL zo^MNkQEt)wqvv*Di`{YHjK>W}z2+>@?zVDmN^gDxB=t;7cX|_MyCS{%ATw2q+hSaA zuS%{8;~=cbf-R0Fb~K|WwescD=GCkH-Ko7bXy4vm=X1dJ%&R>i{+BF`z~iclJYZ#a zZtec`Gvj=f;j`EGuGhBi@877eTD^CHx2P}NA9|M(U#8G{y@0Q`?XQ+zKrIYPg>X9S z?{es$vepM_et0q;EGFC8UqJs!|2%S2){wvHAGiq+5c~g|*!tHN)qewkI{!BA{v*0f z{}ElU=^e4hIK!@*yK5=4sx|**+_k0@1}CEF(Cr0Wf$Yh6hyPAqa=nV6g9by7@_Bc? zBXoM4wsOB`i`jzx5_YUV<$vUZ;wdc2`S3!eU z9ASXYqoXPb*Or#uKk!8qKCWAx#w7Hnr~U54XaFO6()CNY5RUjGJ;6-pnpr)9X6L^# zg-D4>V9rAuDKNC^L;C^70oGcQ9qrAFTik-KJ`69SU=N$BlxF-eVbM}iW9yjM(oY&K zS&U6%3Uxx84Ogn~4COYJ*cH1iE>Xjh9L~WUDHg(%K;Ozsfz#<|2@cRY$IZ{I=Px<= zqj7e7oj7BZ@*WOE;Mdd`!8x>F7x4OHyNKd8d+gv7NUF~@JbUlo0dhnGkf}Vn;b0#? zM$={yREAW>;cOaod=}hBX7ueqbaRPZRV!1y0LSm%z66#nV`0(mkM?=X{E?e-!n|%G zH<1N$KlPmym$vTZx-OfCb|Zeb>C>FoEsk8fsZ+O;hdys#g82w2>PWvH6&>jfwU6%g z-Q8`0_u=1Ks)Oe*{OwC!>b>l)b?%Unvq1_AeFo)TknVN}*V(syNU|l@>F{L?@@=!= z&W2*EDLrH_tUYKtT1;B}7xVl(ku}qF=aM)0y`yLiWD0a9GQe>RIyaw~%TAS7<1i5y zA!}n|sabasgg*Kt#smD82H!-`GPY(r)_2UN)@hMs`?+Yfn_MmXtLtJ*)U6p56!_qU z6}I2>^(AsAs9d}TYYxDV#-1dxC+u8^KHUN<;NhTj75!bqB8L>NgE$fJ-tAUuos$<9 zq=klVBruQoz`G7AAB;?@IJ7ks=N<%sp-X85QF9>2+DFP;%9pdt;&4-M!IBj%t~_Ne z`szfGn7!dZM(AMP9f*XZ?6G535$+#gC zqki0>*AfIr#u)j-1#D7OQnvD&%#qWVZt+f{htZ#XWQ&&)FBz80880ttl^iy*i9HR) z#AK=#um!~6OmG@9)X`SsKmKY$!0i5n0KLT?{%H(f0eS!qwz1jKUA?*K;8k~FFB|l~ zD0`j?T) z?rU9|lkt)pew#5(VbZl*6xg^(Zm^DD1~AVJ=q+|CL^EFob**?Nu{xXBeuoVNXfKuN zo_GuoJ}g!$EWgD(%qzeL(_i=jD$;WxxMt$zNuqpYVbCXt22!|hhF#{oy`!$RjxNo? zA1j#mZG9)G$^9i)?8!ooJW`t~k;za1mgh5=p!7zm6c+u${?GUoYm8g}kt=7qgxL~9 zjPX+;Bf-f-Th>NAOGPp;hY_KECY|@bx2zl95lP8T z&&0v(KhCyx6BcEwgjbC?V9JiArd(^`i^9XrvDE%dhA!>M1653BO5qG@(Pf#oqN?d+ zmnfs0%twH@0pq|k&W1R;490`X9@PzS!+_W)j;?J#*iOcUBj>JD;CVRlbjY?;w(C8~ zDvS2Iy#7*=BSi99))OvL$aG5_#*Tx*=%B6o#@2(o;u|kGOm_z6WtxP2 z4EYb3hham+3WdG^=4pUZN4+(PV_3kjmIj7j|7d4*D3iJ4Vo&GQmN&XBg`EJBy^CtuNKoLYkIXM67mcHk*fnO=o6j`lVK5`u}>(K^Vj>1979&m>h4~vHLjj?%xD=d&`Vvg>Tsh<)9w2EE14}BR zLZrEW4a+%2KHi7+X(nsS`?5@Xs%0pk5hqoH+B2pVF(&4x7|()6C(KavD#0eJvTumRlzRQjf%3llW=qx}5SYX`xD;wMB~ywNr% z3_=vNq2Q16*^{bUCXO_3#;z^kXz)YR9wr zYhEw`WNEeN0`e*%E7NePR|tgp*{+SZ-7(O{o+lG*Uk!J7<@61%qhjkro52_%^YNS3Yxk25WRH4(xUaCD_!OfX8`m?&K4cvm^f z9HwM+My6K5SjNm$^qZB?pNf)@`deEVq<8@V1)yp{0nkN(#*0fl1rIeyuL%=`#S+&f zyZQ78DsxWsspHFK#boNLG9}U|rKRa{Q>aKQAQ8&N7^p&x30@^6U6BB~KbS#|dv&L3 z5^t{)N6Uq8jgszglf-&|xl7VIO_v-DfGeh)Xn!0rM%oN?V~3wWoQnCYP)@fK$)K_P zniso|J>z(ZSIX;ao$b=I!v!SOX}yvv$is9Mtg95HNFm3j2PleNkorHdBilC_+`_!~ zyNc(+^_Nvc^(qp+NM%10EJ1ocLu1N+2YzOQs(aA4tE&p|)0YEtcOf9~F(eQX1(ix` zr8@dF7m?qyg;`+nvMzh-xlJcQA60cKzP$!PGH;zBIuaT$RhEZvt;TZ$r2u_jV30s< zjmOgBail!xqzQoOlDmSgT1p3pJj6>b;d1$44(uP2jA?W@$mQe%PNdLC(AWj=40qBc za;50q6}xCt2qku0yl-K)#iUKJ}6Zt?rg6g=VebWyoG1-fgl587K16C8Z-8bS3t24u>kl|t8f{H^)y|gFl)N-b2kKw78 z^kvM12&rdHjj!tGky+6$W12?4ORZ>4B1tD6_N5*WMO7H6xX@6Bu9(*u!xFP@&_at< zTB;8H>Go?tD_uq#7b?wH8&u%~oReX^ZC(+Gwg;ZgR*aUNP>2RAVDn?!pmy9QC+3>yyxJh0nmQe1M zXxZeV(nJnbR9Mk${Fez0YL4XxQ*_N7ol=(XnnCH}($nKxzod#*{Cl!KA_fU{x0OJU zc|tn^+%!^KLR#e;3jrbGf@OOBrr~R*pkYjryd5A9?ou9liGsGHSfHmL-86I^IT=h| z56y~di~8Nu8w&kPIZ40ckxYd#sPS+aJXed?^O}Lt*YcS#3R03}-ht2b_ALJ4#gy$1 z51ZYbohGl2{3;&;uA{nMum5ImbRI>m1T(x~?D`LU`!F*=IjOgR6Cf6n@X8>mr1Nt|`|4U}{1E{L|F_@Mu|&1B$0qj7Xh(8K znKpRo3n;mF1#!9Zo4Lwz{yYUDjEqHv92ImTNttkIQXLElDK_&}1j%W!E$h>}LyQ|c>tV%9@wndp98uAOhLXaM(?ljo<}ql(z=Fc&!wsiM zxv*5Y^EZnLZ{S(n4E?kvj{VjL-F180{c%S$S`qKa`w-QjNsh)LG&j z=s591$HkRe&Gi#`y(^MPz)|PXY@Sq}i<|tg;)D5i#^Jr;gO&?Y@42kqJ#u+V+akT` z^jf`o>P%Z(Jvh>JT|H5{SKQFw@rs}1V=y~n@&Zq=e2 z4v%^uY53M&UNQ;0y9Zy6Psi;61izDuN0?fK z{n|^4$mJ0ur-K$xY3U;Lcz^iF%^WaILK;&)bsygN$~P6}Gl&myGX$KVThoIH zIpIKaag*guF>jE5Z%wce*AHa5t&6Mk8hSo35-t(#$U_v61W*PSsYxeE2Q2Qeo7?Ry zuUnQS$C>9|BnE;pA#0ZmonDl5wh?DHd1c5X6Fx6MtR_1l;0bEv>iK>J6 zU`=xooSZFF6$BE8K7NM2ExyM>cL|JeS2InVI*nJfrjW@gaGT&A>bvT8o&-BjIF3kN zb-T>fO(Q>Ew!M3sCDSetY+s)$a1Z%*3;_!0C>XF}|Ac7-m-rwsk(AKcVCAE=!f7|j z`NLCQ+wY!@hcpXa`pt9eW5b`4?x?m+wk9l`aEYyG0z{h8j|i#^8kF4tDUN8SEZFY0 zS2Zh8#`Xu(O~G4%-+DWw`~@wfM|;`k+j*^`1}Lj9w*4omfE&y&3o|%({FfBKa8WSRH##?n_*rzhZC5m9=6$E=HLm>#1s#4oRZ~^!forK*;Du*=cmZ4%N`E9}oNU zRz}c*SEF7U-Cl;zT?mrwjdm=pNovh!=6roWG@v$!VbGNNd?fMM{HOL$sY8v!SPT4b z);gw#tt=N@5d}1mIQA44@$r@CW zRr3K-IFZpd3q-bbXKNFOSU>SANYY{9%JMzgV1dl3@3(m@+ zFOj51d$Dl}RIkQJsmH~FQ=~VF09;E#&iP~8^{cA?XSMtgM8ZKPOm$6)i$ zfPLsBYGN~3ilvFPcBvrAnnM?$@X(#a0};^(#gV!zz@&#s<=A?$Dp2Js^>~3+Ypu@s z;Eaq8A!dpcP)kLL!~h>h;2@8$fh;k~CdpVI=V6}H ze{1j!eR1{l2b*FhX<)kK=*WQpbS z*k^&tHjNq$gs4^;0n1Q}_kRYcAx3O!NHv0dhdGEWb4Asl@83^hfJN0+7(fvKHNjFC zHx6(;ATou_Fk1?5qjK%*&g=PCSaeZo=t#}qn8?Qiq*=9scAq9mNvB8cH!ycBVCQek zwb!NVHNpJs1gBifvyTooPTxL^xAb+jvJk3TUT<+CW@$TAqc}kZ_WeLPRXOvzvD2H5 zju?AGiQTD5H=ul(w14mlZTy3-m`XlFvR6x|?0EY{-LBCV>`D~8Kl%J_Xg$Ibghf3q z7A#wgI`d}({Xm3Q6HMl=5@z_{==oQ0ndALP=Ur2dO9w#BCAPgMTt)IH*8oc53BeTO zjBijXVM1pppBN>Y1@t>!QTBv21NApMC9hcG6KPnvZ*(a~($fVMVNH+Tprq-A$Yog4 zaez`6GFx439u_&O7f;+ENmG@viJrnblaDPIG!Zf{aG&Rzk&Jm%0+mIb zKz|l%uf>w(2-)&|scMUv%Nq31_RJ^S>SC$taItYw3VGo1if>q8>L_v^G*;!Dc+mfI z{S*}qP#u1o$%9`Z<-$Yc!9)D;f(KvZPgAw4=GUm+PVAHKe9y}M@HIHxqW{lgffkJ= zx(x;ZAW--JAgblR6$Ssj82GP30LS8YEalnD7gQY76sJGc5ls}!Yme(p4owng_#6%_ zN>otVd0Gvv2PJ2joBPKHA6}=G1m9t?_#nT96fZ6=?&h$_<9$i9?cm$jDc0Aej&5P5 z3_cAV*O(ROq-`knAiKk?bANn$L!55RKm^o;5Dw?$b6x1KLik<80S^z)Klm`V1GiYO z3z!iK4o9F-BEyftHZATlepam0OrFhM?m#S9ig+6Z|Dmo@*4@UDc>NugPwxN3e3kQy z>fQ1_XM|aPJac>9JluWL84`8|{@_dEU-bxo+{iueJwNZ91A?FeT6C<^ zT!K%3NDX!2?Y#uQ?1n(7IE7`yfxLtJi(h3$Z7GYt{Nuz${AGQK7hAmfhlKE;K_Nw! zk`}N(!(n;dkcPz_Kgr`$W_(mb(EE#^#&mKF^5KX(gX20k7)+IB3rfl@`eNx`4OnnJ)tn1Ot<^fab;PxhghAVAXS2xV^ED;!v0k0m+Ho z4@|qfnKW#Z-+pgO@&i)ZX%J_R0e^QKa5!$=FpAgv3m=P@M|{_x=DIZYskfc>zVR{a zgdKm3d*e^t@b6Fq0KKT*w2h60jgkK}4(F=2tqc0svKU|NJOOKZ1B{>>kl3Fl$ZTu;AG!m`jq@CB06@) z2|0lA<0#3%uU?*I=@^m;pq!L6sRzT#*<%xU3V4wDB8ZMj1f#zo@I?s{h(F{(<}nHT z*{B9!K=$$z!o-=;V(IcW6}UBOt0-2}`A&F)7+!jUd9%))3nd+Vn3sI|+k}Gke$xK_ zxSD?eHSL99G|=&+Z^vhc$&KWAD!Q-%=Lekmq@~gT3Y=wt!2`~`33t*?*+~Z40V7A9 zKTvgyH%RQRjI*J;eazjhY_WWIEApr7!L*=>c+$G&O|wKA=v3w zG)Aloz=T*t0LK2>Tf>gY?E?6T8{v@M166)trQajDqpD>jedG=KviRElRbaEB6)ce& zmTqp$p|pDugc4{ozS#JrTfhCR9q3emhJ>5Ox-#M?K)Dj^)Eu&fA~Z@SD&vX~>-iZbPj%36{hPcdL@g zD{6PdA|W0Cf~eVOG%l3*xYR51H%AIZ+?KZad7MF4{$d|lb`mJp9XS!=F~0`jpO}lZ zZ(OwNGVc#N^e!=JfSyts5V$<*u+u)|FOeEoRRfUws*bm;x$0S)D%~L#z-*UiN#FLn zs_2GV;6fk&g+|bKba<{4&gq!tssjilu7#GRDfDV0Ad^R1uS?G3lgwP^~R20n?jY0LkpoH z*;M2?(i|q=W5nOp(G598W#AI2%KCrm{lU#ar-m$l#h?oFpA+Mq%t~r5os#?`FfGCAbrP8MCkbY@oi(szx+M1FjX$0_xKWe-6(64)tiZl z?-2I4Zf2CA*TiPI+6>pV+I$b(dB_k(9N8d!l5>pA!iVBPBriMqGuU0NRz~J1FD@Q( zy?jkoTyBF4sYk%fh8`C4wU`hd6Pf1607zN#Eh50r7$(h z=QuQCOIyGraRa*qvBU%n9c$O8!8bg5N#*gA)%Gbm)&>-1U zzk$svr;D`VsTG!Oy>FsO?DwCvK|pugR3yX6C4HZW&`ETJ$DT^Z9RIM+fa zIK-9}Qvu}iZzvNQa~+2lsv|)+q~A5Gg|F%?5|L#Wrt5->Gairy$BMKvDk(7S zS{oZXpd#zh)|+BLuo@KwBqAo@FizpA4*8<1m;K98)DmYtFG`qX7Ea-`;~Vy?DfX4ctomeJ{xfAT<3LtRTjI^ zvsL_~fU${gStPf9AJG#Qm|&U{2D2{R35S`V<%rWsn9=ZqIgEb>D)Dd5YLYaskFv_9 zT!JLn6#dp9y5`0SNi?QXgNSjY#StKL-v{fxQNL}|yv$hIQKK&1T7Q;Zrqh#7I`b>2 z!C9F;A0eRAS>&Gxjp(`hP{Gs^b3rH$9hs0K#M&MRw0&Ez3{e0>;!Fw{QNglc0#FbD{B;7mZqZdLOh5-OU9!Tyy_E;qlc z+?fvjxQ9VgWs(rMbU9w0hMN?86lksfiusju^d6$ZeT-FXg2hB7ol1mW0dH z{3v1T8qJ2>pU{aJt0?-z=WRopw2(k=F(#XVcUc5WqEr7I%=m1OJ~~T?Rd)Gkv4W(oyl`VK%H~<{xFpv~lIyFL5EbhOL$`k@H=Fw+A#i9K z3wc1<#GAtzeOWwdIn$a8zZJ!0NhNk{gIV^7n0vHzL=ipKI3qDlWMb`Xndek1ve!{2 zOM7vtnBJ0R`z<3YMOxoNC<1oKkBlQAz>uHMe&$yIav3)n^mhS4dYeio?B0I3rKxKQ{l#O9SK?YLgi=*9|H52!wD{FAZ|yl<}=Mc1p8zH&QF}5D$ix z6Y0PIiX!8HkAk>ZZ(dbmJvk)}J72BmJ2THBEQ~-{ovR5BdBdCjuO<)q6%eD6 zCPTpVlug#t+JUY$gOfH-!$xiUQ;SF1K6gDHW}H3^T57hy@5X!$ZT*8JH3+EWn~#$L zN`R2RQX3)%`~%ptk8G|}-2nX-boiI$90=GAndbHex`bPNtHeH>F~Dl*;$cJ}dm~p~ zR3*=g{uJ>T4Ed}W3|<^-PeK@54$xc#4mKJ}FTAYK_CjcTBm74V)#gUn z`|-2&g|OBO->_0b?Q4fZ8|8CqX567{Tql>J!)ydEQ z?1o6qo$e!lfyYz7SxG$qzopavWz*6Af9Ldpx*!pxJ2W4eEIPB&p)#fs8#nQ;Mq*_$}YDpSSBo?^`>&@vX5J z_Ep?{7M`2DG2FR}cO7PjeLNf_y+x83RT`v8-kZh~1ac)y$77F&x6K^6JiNUd&OOS$yVIV|`G>Wp| zpe%5)Sl~Ab7I@@(;l|x(#pel4EQT_iBD`|`3JrS6=*1PnL=$4NV=g_Peft*b`~^pB zIe>7)J1p^cA}N>!nA7FLN|-eDOUTzJ%N9ESu=V#fli);OUs2}JuzbV%;}YWz*?mIz z@4_zw-zd1YMqJt*kQ(*gi?;Iin*n9ggZ0g+I8FGk5=@g=`uRaQzh%lnraE?q&M@dN zwb<{YopPH#JC#2{djieVBr_&HI}bcgzc5okyfGpeNM-M{knuUp?D}#q97MxBZ?DeI z?#|Zwa9nmTxou`AY6$JWd;Efj#2LJEiX+JYsb_L_HyIOQlu0e}BRQ%49aj+lNFeMR zuf}F18s^HItjg7*nepN7tGL>f2}tk^eS8L-L-43MdJ)}EG5r3>LV*w7IYdk6 zHj>g^9L5?#&Z0c1PRe?eVk2x0S4^Uw9tpvqp>U)0r&^wv)><+mu{LMnLS93#kX@)y~3MOtRHCT-XN`5t_Ah~~?9_dF?N-ldcR0xJTe zfTqiYU?^p}R|vStD_51&A7KjA2MUr>{%gVGOYDbN=H$-Y4K5b>!4!G4 z5k}YK>Rf0dq?&c_5s^8Mt%DA{9z>tVWR65eWYCdInKap|1c#fdmjOTtsxKhmfZ1pg z)!>fIfKs5qN*(q{Y1lZL_?O9O`mbhoG`CTg(GaCC^(Da24=5Qs(= zn6%ic35o=gS7WFvpZ!Ti&~h?2Q$UwV7rpX4oqo;M=}CCzlyu!J*(zDD9083wuH>A6 zxLi#tt>^lji?S+tG7kMWq^gt`Bi?qyF6p>)5K7v!^rOTw^8qm@M@?4Wq*6>AGx_35 z$kKj#0&&ycFA+d1wkRdyU#t8sJ%gVingU4V7O{r;hJ@g>Lj$+-$Iu*&LWuaq8JoPD zRlZk}aodD#Em_k0$nt%SlMrYA>Yp@kWTv3N)@WLm#m}g#E=P{#X%tg*N8VhF)3E1# ztnW!gSPf6Gy?n2Pd3RPc+pwr)1MEh5DDk#3sY7G|EfAPaP8uwyQ;3^GS_+xZkC)=OF~ zz19-A+&J#)xzftP^KEap-uUVIpUbwR$Cy_b+e=r{xfU)o)PRNy8fr%aoa5OEKe|?? zaJAH6l&>;76Lg3KBF!L^MXg4B@kd(Od(=)uXI{fw?$Poyy7+m`pS^n-Waie_=}-(q0r*LA!|Rd7Wfn z=e@?q*;6Hq8nD?J;GwR4@<`(v&zcQ!!(n@srnh7Z|5^;vnoLk8D!-j8s^@s-k|t){ z;a%q*J2*f8$XCkl7Ku5SS>X_5MbqQ$k%-X}Xdgr;Qk7^&HQ+Je;~ zVg|ei3D4);PrO+Th*+2!l-y>X5y3g8l(?CLN>DqW3m}-l)2HsoGs-4RXLBCP5--oHJ zf$GPnlD3?`nbGX&tPOWvWh3UgWT&@x&9yC|N5#Eyje%aE`ifajUZuhXpX4wy1E%dS z!Gfeu1N6hukOVRlD~bkk)dVoSe001Cz`aeK0{ddLtzYfO#S14xAe}-a;C;pcM zyS6uqHm*juZ0XFH0I^X+IT+5ry8JiO;y=*I6p@Xm|KxHkXrbap92@Ma$A|iIoMXHA z^>P#OJ5TT@j^b|kb8(UXgTU16wrQQ~EH5)=<>nRU3<_IP=Z&|RzsA#JAI_{|={;{P zSElUNdE)4>bg9c4W{J{m3zjW?>^bQa%Le!J*E}AYt*4khngwg#-$+7WC@Ym2fx~dT z+zk9XDMUtLgl949*MN=tG4kyob z;`(`3yUG7vwLi8Ko#zs?+wUTbef4$#W$h9!gkRxM4tK6Z!#Pv6q`9` z?MC#Ev{;vCux{JYA0y_$6ra5~RV;+<9t)RnlrJ2Pt-WuuoFd^5P=6L$Qm@S{+8~eM z$8CaJ`3TH6VZA+mKLNG?OO%)Okq`T?d80h;pcy-#H2?w`0QlzQ^m;qJ1hps@eeJ}v zS34O{h1rmr|1e;0TcyA{Y>&i$Z%TXvaeeKPAronx&&8M`zr4pn0co=z=919fhaK2) zgL7|a$MzZVyIq~+etFyQ@BEuT`s{3pn(3PNMw1d9;*);5GTN~^=mL zUHUa)Uq{yFVAS}#SipA`T5X7aO!f`k-1%EW!$>=*j2}qP^>GjSbh7<9lHPwqBKM$3 zVdg_D1~-==+Z-Z;1LLSTqu8oB#qYRot?Mj)2yo_3J1qRld%3DAUma%vAo%i^g3O*8 zLw|(BU_+Y!50LHW{gI$1o&4Rywb-DVOq`%M9YiXM0%tDuHeYg=9 zct|2ZM)8Hz)b4z*3hF?P%eKh;fatNKEZ zqQg)>^J_8dJUHO^BxrFp#6e(|S9Va#>2>%`OFte+XU2rQ*q3)BmBT^|IWiU@{;rl9 zNWWo8_#gj(git9sP#VL6UAVx2h%bQly(Ry>qmQ+Wwhn+F^;4kNpczVQ~x0o6p@QeMLRP)_!czET%JRx<6GTf|M6xn^h$bF>%Qs~yhUROgZy#jDM#!N@fwq12y;um#ZTW5>r)NrzMC*)x@THOcOIa6B6i&FDARhufR z`>>b=V6}bDK1&=Xtd-6-2xX5*p(j)pFRV<#5s_I@10yv;WcGj_W4;d=ynlzw<~}Cg zQ->Fh{RD&Y8WH41D|zG?F2mT8VZd$}kdehFu-w^#`y%vbuV5&O7ftinJRn_u;cN(1=rvFUFND^C=7V&HIAa((5pUMwUkGeV^y@hLoTZ)qNLD<8G3%jiko z>py?o>U?>wU2Dgm;!aMks`8wu+)#HLIw+d!9{@M)=dkE_6E%|H*PY>!<;R5Se>b9ISiUB2Dl@q>$~LCcK3$GHg9TLB_P{kj7aYR^kKslni%s;AkOyx+mcfg5jLJWRZaD%LP|3qj z1K6TOFSnO1nav8AV*R4B^IZK-v!~aRpQfewZmF6n$nrh(jS_W8?8L2+dJ-WQCcs;8 z!>~F)8e5nvXkLHg##j~V8ZU~;jCaR`k`D>s4&&w7-Sm2f{^+x<8NKYV9~(zX9iAE^UCGEU#})cgH!~W*WqkK4VSnl|B0=(6P8{+PIJT z%uV*8PEBjXOrfi0`#8U1=OaIfYQd(SQ{vDFLN<_=sv=vAX<8aGi<~>)F<|jga>0Ji zrwthunJ4IGgjPBO@5X49Y1hP*QToItWbs+h5FcJUowN!vBnZp$c9+Ys^3jz{ZAZei z4#WB=k#reQT^IpB-P@=_dWX{0pEq*;ke!ilB zZlvWfLMK!nS2jZ7G=A5RED>TrlPOgqzy}+JRVRDfsTpsOlh1A{#nuV5A;ZPi5cyz% zXlGjbCO0#IPZdLf%Po6$`0uPL%U8TZYM-8DeGrK_7MO*jfN zahNj>YVa8;%Wh*_1Q)Kf0rZ|2)o8jm36@@J!|yL>+hh}VgBuJnj0zh88>GLhAth}O z@;qubDNkbW@VgNcXPjqFM{MmD6ZW)J6>HXJNP*K2%dHI(H4)}*!W1A^yU#L(T*jVt z_mMQD2Oc4Jssqvd!(#bPLKscf{?1W77%e;HloSn-5*0bSxd0PE_(Pco_I=}Qq0ro9 z>Hc=e;Z5Z|avalRt7~}$J?&%S^@ChX04)T75bE{so!wXah z{L`7+@@Kde435tCJ;-w6>KMogoX1g6Ow&{&l>C62?0DXtYX7CxJg`-&Lzy^ux z)*=Hy!R%%R&$Ce6R$AWE|7dH2@>l~z=xcC6MjUXQmz!lqeT`XCR%${*Y+TMFy|VM?S3EIZ{;TJgl(RQJ9)>=eEQI;C;nl1c1(0p253Inp5x@nn8 zdZm77i53ShI;7x~Bgj{)4#!g+v$I_{%3DKNj-Brk4AS2MsB^c_^1RVuK`;-MB@5pxnr6>V_?pIqT6M?&8kop8JvNu)NcnMw z!#5QcR;$S5g4<{^t45}nj;XqxSgjRE0T(gc=61b>#2!O;n96|SYL<2kTa~73jB`LN zJ3?6?Owl;h-C5uFyqGPqMytvkK7BSX>z2s;d9KA5NSCV0rJ6{NFvC-+Rimz{lx4Zr z4pRkwF}tQPcyzVhv;L0J{xQ@s(3m#$53B>`9AF>~b|Dc0@E}p{oHS-)dn3oyp9+!b zXqO(@RG15 zKB<5%#q*u2{EF9w*TlzhsrER{uJ;4f%V*VG@7vv)6sodTj9+??wXRrOcgSlbvbr?J zNSpeKBeY7S(ca2nfLE@Tn2?^RZOS2Kc7m*Zudn4@(Zt}!rWnK}{mXNqVw%C|5mz3vok`nQVdZ<+*2Md3Izd*e zI;kv>TMSbQRw$Cf5>i|*{>v#lPcUKcG|ZVP!cNatrKF>;+!9;P1g38STUmBhmq~Z= zR}Nsb#!!RmkTywK9gFm4BqsArw!+&?e<;uWQ{N>aftO!?UIDr2U9g6j*NKs2iDWyshLMGay;lxDFATJj~`&@OS1N3nks7+EsN;*8Z>RXG( z55!!CG$b^SDJIqMJ(GtE;6^_5l+01$+&vM2gMu5hZrx4C2OlR1e?Tajd6~IJ#jI zR?869SwBfPkeZGynVJ}{*20Ei(gkHO;E0Tmae6@}BE9?_t@8{N4|sqP+abMahwyT> z35RgM&ObqX&3(SQh44@1GiEjYOnsZWf}}3i7sB@I`+9}^da#dAQxt7jj&FN{pCVCM zAS-+*MiKeviX~?;Y{?dP4@HgAaK8OB9`> z=`oFN2A)6p&KikI<%gs>zKsz)xBkScnixTpX2k}IdkPcSsN>v7=>GiR{iA@1VR_tL|ECrk7i;Yv5Ub<^P`oL*-w5fLSO2fCsMsgDLO-CNTW3 z<0EXVUq9Xbub)mG)E2ov_1;pkxB)&kN!KaspJ4U2fddChv&fjW@q+lGgOAtO4ZHWL z$y6k=RhK4#n3Xh%8AmqeY}E9b{K;4C&&3Sr`=Op*LDrm^dYaB53-3*yxXv8+%be_3 zLzkbwcdU^h=`Zex=ce$4z>MbTaroi*p@W;>5wq{%Q`?S)e4zoIkt`g0a^B)5`+M2C z5HDlr*H4!zYp!6V5PZ;;%DitmoW45`_lX?=IhGh~-Y%eb2Mnj_?+X7*y8KRS1NRCa zIsL_Ikq9^c;Nf=jbGp0TKSQ|Cdpo!L-OkDoR76W`+%&jjH0{&CVQcSD1y~WXpvQQ;Z@nItmdC2m(ftMwm<~mS=s0&3wH?ZibJ(geR3BL3D(N zV;~dZlAtRCBp+ry0ukb{92+k?{#lj&F)7mF6`I>{1gq5CLj^2T&JZug(AUBxajy@S zb8FWNS>kJ<_aAPW#%Z*_!Rm;66)&bs2;wmbZKXSn`rwse=(!V z^bfXI2ueL#)jn}CLh^w^R4DQlt|~yY99Te@ zK=!UH%D{kgaoX3jY7T?Id{6$0f5na8?Bwg7;G5-a6t7+i2>1s=Km$sRmGXW9bf#X` zVDQ5*x)ty?z>NcVv_nu{TR>U5E@7`69wQWcL97FQ0rxCPMJ=O+_$aPdA4{gTOC@m^ z;sj3|n+(qs2D1UQ7YdbvJT6K`hm4!g+G#!uyaJOxl%~s)rPKd0fy!~+VZ)vTXb(4t z4Dw>gl@?$xZ2?Fsx`uh6izp1z27y z#*5E6PyLs{$%%#6RIM}6b_)v;R(ltk=-1AVZsggk;nZ&XhAF^oO3a$3>UXQgsg|ao z?>Z>v03c)7K*1U4B)P>-^GZZ?erN4~d0kuJC*NViwVo4H|F8QuNOM>jU9pP`#c=>w zmbhC%SB6=;%jf7^l4Ly8pD{`j%B(QJnX1&!+59S#JQq7@~Uw@*>Jf+bIM4L@E_@-losBcPX%I6 zxF^U%to^j^yT&xVyJ1KHMyig}oU}0#NtHzW+!2PYs#$&iS#DqOmcO8kROMt`>Xe-* zdYUq2ItCQTN@HOW9xLb3Qnb-Y>&iiGh7=(0VI{G%WV8gt`X1Kdv&liDMuQb_#x<@K z+`E<5(^v3)i2|ld)uCRU2WyjCD$bq0vD6+;x;_3<(ML3MRhOA3*(5@Sm+`Pr%vvnR z)^O?_^Abtwg&5`88J4o-}K$PZnPPzK4}jX$?@ge)I(ReRN#B*e&cnJh_}a zuaXwMq8wHT(mw@Movpl%ccSqkX_mpHUQ7H^W#7q?WX6pp+HrUD2@mvhwP*P-6eK)L zIbbTN=y5aL5KQxT3U=h+P2F9{lHA$jC(ZSFCKG6}AjSwk#SgKA@fO4z z|$zstVgBDL(w)}|ITE0nUzPu%{V?2}AYT2~oiTQtln9QtBK)2OCbSDs87 z%g;Y<3h+)9BmqtH=$f&$z+A@Rb`1HejVKC7r}OJUTPQqGC>k^qD0nc6{+y zI;t!H{Ar4hrC{vZ0e3TP^8vhus`JML^%yp$aGlS-T+M(JPGiNZ=)+|~L&VvLv1~I3 zlv{c#vY8DZRf!(3A4NE!&{j65XkrB2u}oB!csej;3b==bQd30*F5PF=p^=v^pFDQj$G=kusLrct_5hET9XsM*0TS!ziMTdEE3Q?5DaC`k@ zBU1)9icyRT=_Wu#+^jdge{}Z<7tQJpC`)`W<8mmBULI`ff>@Y*^?z~pPC=rD(UNA_ zwr$(CZQHi(I%WHmPT96?+qSK)dvABobWg-g$Gq1Z(!xs9xS)oSQ-XF=E zhq%j?V2O%W1;oT>RIkyk7<)S$GMF*mUTm*GSMekrMSi03n=nUaRKL(In2+QAl32xr zUzUtn=M@~HJ>*)Obp(Xm2iFFd5U$NwBgP37Nd3{6mC|8p%`jC@e|BM1#4E*q)Aon5 zf29zuq|d-ZyX##2sw$EjBn#w+xzN_FGR;w@1~tGD&hyEN+(oqd0Uh6!*zd8;uI*9C zB(bcsVV)~mNs(dH=(;=pL{n2=Ra!bxy(<@_nde#wP0%Q*;g3@izCabf|MpGbM#Fly zlVa6=NCX(_G-Qzl#?|@2T^3nl9Fg1-v-L}{UB&#TpEUe6y~>r+;5F%5_&2mGm#>(K zVgIp)9p-(ShY^py5pF2%fi?ExEt*5YvJ6xGK<3k$CB~wS(MQw=l3+`~aW@7Yr;mTS zVH=B9p8E9$mm$xe>CYl5_G*x2Y z*Hk16%6CKAEf%>{LTO7!jayrrYd+aTZn-W_Q+e7(qZQle#m=$s+p(HQ8-61RFBpSj zM`lhA{Zr=b-ReroE`J479y$ghEn!Rhina%=Tf!httxAeKv?$RCoqr$$$A3Q}p%p3? z=k*Fsn>TCe=JVAYrj>9iU?KoOZ8EbCTpb-yEHD{S-0_XVcqF znD%sfQu}6l|CXT9ajvH_##^%Ft+>`y+R%OTQWMQyrgkj~n~`jzF@6B|NH2yva-zoyo~<`SYGA-{!ziu$ zxh0HDB-M;+YRT#ywxdzZ-g7YHV9w5WeVis^t#`!Y%J)Jx9_;qyQ;^*or{qf*v zE++Ys;A1Ddd`*wj-&PJR~QcZ0Q;cK+a@fbC&F=pG@@v2)*dW8W|2H*j;in_}SJA3GC(7>0b;YXf^J1m0LmZhNgX zMbOL(9w!PXkjyf~jkfX>n9PsFFp=->Y1}2LgY~XZyf`QVBh`C=reID30ebDU90>2T|KZS=a zHsE!`tpmqS3=?|?dUj%4dWaRl;|-wJ=S*F~dNu^N=*|Orl^nh^xKKFEgA~l=KZT}T zc@;5lk{G`?rG9|&uT8L(v5@ahQcWGdJlrUNbdqMH70|y7<9QEE{Owl=KF&V`eDTX~ zh`+y1ya7kE69V49w>k#g$$PMDW>#6>yW^@!#SRXx0qyw$jwc9=&L4TF_d%Z zkXQ;g7Uv*iPJq;Yz+9f7F}@PXDYN2DM3itZi<=C zmC|jXMI|V`a1n|M7!|5kE6W3OM0R8k%iZTD&)ik9a`dlUrwOCU(3sviIfx+D#|Jh! z$bHCa*e@lI^?tmzOlE04hYvrkw0}`-p^@1qCm5G^+ML1IIk7rSq!H8kYVU9kh$OQ4&kT(VQv6zCkCvxM_Ub6PEd?# zp7-%x!ioWUj^vT|8V4cE0Oa7-);dVv)+Q092iz8ij3mQDsTmWc0}2M zXUK^=+!62SAnMDl4(ui?lkq6*CEY$ZaP>~ms0F&3Yc23b;lXT|20IMRgSaxm{pBu zm8EVl9S>Y6LJ(zCR#%P4LU zxh6Z($ey_&y2r{oNLo(Iie%N;jmREP61DM-*|9w;ERrJixZ z-nD5LA@`Xof*kouDRmzkkRwl9USv*>9JjxzG*!_D#J(4^F54^8k5l&K7^~wzSf9cX zn&+GFWPvOt|7S#qLK*{(!VP2nW{4tNCp`?^J?-(#@lT+%aS+N{^|(WYtS#fopIAth zGMS!kQ^`Q|Z;*tNLlwnk8T|8rAApv+;pgj@%y6v5_I?9i?7zIC3LnSkH7k+E& zh4V-FM)L*4+q*;lK~mGw%;iIU@ZnYt*SY${LL@MX&F^mDvD`SNdnxXV^)75vtWh$s zF!1QE{IZ=_>^@0m$ir1|&dcYl^0P`l9&uN|pTc7k9A~C`a14Es;h!>;LKG8GjlMNO zmbDeA-aO&`u0#cG%>+TCNfzqPN12u$`r1(8Nh#TNs%W%mqa6**{Z2JSk@TUXsHJP9 z!NMo~D~tmb&Eb|5x1)_$)x^VT=yoxj3Jp=^Q$}!UUDEF0mX5^C$Qx<|hpt>Ls7gG6 zdU^W-fsV*$0h|y@;Na<*pQwjmp*9cmGAkL4S0_|%p9M6cs`({V!VZcxl>!mV0#bBf zb(b1zYLOGO<^5Ax?dV@nd{l^Tk9)>dDTtK`zf!SPUl7S}r?#0dp)3}~Xa;BDb_@l< z?0Z!6XgUJFR+$4~git(%MvJe5%uPN>u^Jz&7d)Z>2fvxk7>R@L4Ze}bfNZ+%svr_s z7HrlX9h9)v0?~iq+7!J`0m>MC3b+5UXRLsVb3w!RUN*NZW|{8|4d0iWyX7NIy(-ry zI_^si$0rFq4YkMkw6R<5i8_zVIS0p*l&e*7gy=xUPw!nxi2^i19K%&`kmX;~5t@a} z#6pv$j3AX|vTBi=M6ziq8H!Yd6cF=KpWEr=B6?PQ7N8F8JDcV5IYW%90cw|5LM5ox z6PLEFmg`^CuvLFr%UsqridoLZWeurcY$c&g)}P4bGE4#lDm_e6$*-FMfggd84YkPd5%=tgVb|W+R8bWETozk>Zf;7l-QwK{vlCL zi+hR3bbWovW@52;01M7H9uc#df7;;iaXA_E+aQlM?%w{i087oXqyhZjEIMa%nQG!Y z>-83YvqPU!R*Jn+yk@=jig0!7pc`aO*At)Zv~tVxnN6EA+y6GfSY1&~Q+4TfL@Wf^ zU1;_&T{SO2nML|pbG8jG77LgjyK+)4_x2t$D_>-+h8-QXbU0v@U7aws>I+a#G!>o~ zX-H!a1p%8=KN><7?CWTy@MPggTMO3GZ||d^XjN=8sN4?!Jz|F`rpI`9u-<4{S#w9C z?J~4LVM60W?T%LD)4Fl}10_CTZ<4IRPH(!|ne6zWG(07Z*|VO;^bhQDsXI+k*6_h< zc&Y-kCsUm{b%<27P8o*_bx4Q`qka*3VJP~_Tl;_4Q<;AZBXocD6y&d-V*UT4r~Wh4 z_}{sbJHK2>pcY62X~`s%HkRi;*LhnwPeQeuS`Hj2tpa0PQ%Ui8H>Y2g$M1`SrDQWQ zx9^&TapWOP_~E2|82rOyT0>Uu*T)s-yMexL!A9H-9lh76h2}CpyjQBLSzg&6VP|{% zH5Bm413e6bo%-n-Sd%{-adI@)Y*`r%z|2K2slMhhudDoxpA060E^XE>SS3A;TBn(l zc6YpjRcIs;Ors-xz8e@yibf)}70};eKthb)c`=Bjg|Ua;-$P;` z_Q3Yz5D}d2duhWNfnz8zn_(9k6a6hMl~d!Nnq#^p(0nq4yCTdnBcCf&fEmwGR>xo- z;LTj*o}d}(T=e0DUK|l;Vo&eDg5bk*-<0_x!^IT?`7892+9C5^v6l{0lBy7|v>)~rzR=yv||0_`nMZyX(i#^3s_%&TM7;bp5!g7urRnV z$sf~a#sW)sM_fIs>F(yZTVgx>kS~1Nk%@DJ=mf#Z%WzkrUox{~%{cExh`&f76p3n008+)r${CSGD{rdYr_l0g+wHX2?{=j%x;HUo- zOJ4BGh#C6UC7=xQj8Tq2)MSr`^y8AWXuMW0l7xAHfRS7R{8{-%@0=cK8H!9Pljb}! zi-SIi^O53U7TL64_EUq6p!E?$9;8){O3@%;JiBSzLF#moxB)He&qz97CJ;)@bc~!@ zBA{cga7fM!Kp|*>c1mX9n8XX*0^Z%%7dH^@D)Ja>HYce_L(^WJP^^u#4wB+N#Hiid zEPUoGjihc+Xh<5`v#+cV;da_zY(#!5z+sDe_}k3znjNr~b-*(X zY^DJwLCjG;pAQdo z6o=d3ID#WqA5PYL+Fz?p9#PJW$D#J1r#moECONOu3GfHA_487~85|LkXmi7Ox+d&; z;-=f((3>iZ@DO8>ImgDl3A7E$=gI=-H5TVCFanCl3z-m@ka|^ZDx~{C_FT)<7n5)? z2v2VXBD2fG(EmU@alqjexC#@5Qj$3yPwm3*-@3qDoLOnvq(W!oUh{+uHMNSYHOIEi zpOXd@LFs1l6d1LWd|HNhl>EZx3pf zLmz6$C!7Q(!jj`%fxbqB(;0*~+4n@s&%Nox7+d56i3%Z#2b!XYCE5pCJmU~St5t+ujfdM|n zk6;aK^bc8`nd|`2CE+*}j1bh=7TeoE9)VGO6*YL44Q`PerkZ$%P=5t}&red-YJFLR z2oH_8ghYIulkMm>z$gLyR$Y)u)uDFL09EiPQy@`;vLxQa0k2hzd{_ZjcF5*$nNZmq zMU%r%SNdGQtsDgp9|=HhST*~jKvL0kKy04Sqe@Z7peWOlo}hCoRvuZC$`FfLyo|eO zIXAi7$s(lgyrGpGt@8od7|iYo8fCFSCc_G)mB>Q+LsoR0`d$r>8c%gW)zNA`Sa7%n z%6m0LECN0vB&=dsni#-ZhE)VjSqZ4d=$g~bal8GF@8uf1`vuF<{OrHQL~qM6SZpUr zSyArkh^``3^YrS8FnfZ=sVpP0TXU?U-7hCK(#jK6O}PryBYkA=)wLxw#FtGfE7*2# zS3Cb!&R_EJNtr9-KHZW9>X@BI#zP9qlLmb%U2(sY+4xH$L__Up=@UA3_&L9k6n@I#Y-^?^Y;u|nWJHRn@Jdj{$1gVAyPQC>llB)Dj0&{bH zDbaHFVrG(TOx1Cvsx#X^-leup>?DVK+R~K^T86Fwuc~$(W!988DK9Sd-Htr?^WkWg z=2fU1$b&r%jLq4OJOzeYB=1VrhG2BzyGf^|1umwR?I+qy9kqUx&XXfGvAP2O8F-s8 zav1_LLC8fqk<|fo;nh5cQ+4cbtG~`9Me8%p6Vg`FIrTWUjz$gROc26(y8>2MSA#um!DUl@+o%w!SwW;H`h+3kj2;4<-<~ufkb`4zGP zpB#K|rU`xWjeq9^ycoYOxXnl<1kd|bs!tim`4u!djO883Bg1m|IY^YkU-M?`J=w;) z)Nlm125s3APgqM@iG~5W6VvW7EOJgK@a6<;(BL@lC& zDQL(&Y<$B*iGZ6zr_sWv|5n&qFg|S!Zk3kGZWKKofqPAt1 z*+BTgCPmjMpUFeU@WCS0FL%Nh4+V8lz^Ca8@@XCq!L#$Oo&B(kag0{e)8$UXwP# z3TFY!6$z>^qtFVvO&~4K7*Rqf2+Faf+11(JA->jxaA*s7wh3Gmqr;=+*{%{TG8ZV(5dC+~Uvi`25K(iDR+y+Ad2G)p zMbGHvZoI*+{^lKbY{!Tdf}_&&crTXn)cJwU8po=?SK4Z4@3^_W-}>fZ;vIePj5ac^ zjiVg#X-Dt0D7(6S)Y>(1XT5o(fohTrD&&Zxg0^}(Iy~P}II(fg9rM5ImB~V%AuV(O zfS7;(Cwj%u*+$sL($vo7e?9~K*WeiMm-9YHea}hFETd|Rq$jfrtY24P0pI<7#fmXd#&wpA1V*U@GB(%02- zw$GWKZemtVNg6t>QUyC!Pq!s2miZR*-ENhugG77&)o&#jc;^`_=D{syF-(z#&x*yY zA%oT17YkF=F`C)mwP>vEq_$i#a-cdUy5hrgm0G0mlU?;ZH^O{Lqt;YaUqzMXi#OV#yU0QrOteU2z{r}Ey1 zujz|{43f^D*c*ff(?I*OVy~jpO*oQP_{JLk*Capv0q+C4SYhQ2{O(w=MK6nRkO=k| z9Di_<_^qx5uTF0bdXDkNXIAbXVm^JS`FF-R>`R<$DQ?B##imV#~b!XhkIt7oZ~eKA>3 zeZHZhsbBJ;F&$}hPS;DWXQL>4r|ev2sRBPOt$@uC5c3%g{wSlBGBE}AIte{tQ3 zk`bCp=SaU30h^3Tm8|QM?4Wqrb z_h>;unrmADoKTdg`rP)cr#T)oI9zb%`RE{B;cp4B^M;B^1stAKTX^N!x_fs>*I~=p ztApW^rn-COt5l8m_j-alxtL|WveRTlXbLcB{<8hGl)y$*kBE^d8x?E8edSdcgRl0- zrH+2vACQgdfQ44tYX!|wD*!de;G6cR$Q@ZOF#Bgt793#_D3K>h%yV9D?uSX zs{{NVo{L;7ck`E)Y76L5hL9;jECySrYdCjUg*a3! zI4teSg!imi5_F8~1_DJ}o#LbCG)i4>f$4U491LD4xq;T5OZpH=T!1T%K>rl<)XF23 zvym$z@CUHLonV3R!^~|B`S%j>V9I;tZlDJfnpN~&D>m}QwC*(zz_qvXaU|`ebJoKI zJV?$7RqBxUggvJtZom^6fDv__$ba?bQzCR48Wr1IV}|z*31|45`>8QY;^-@ zN6W6MyW*g;EA2w;35@&rWamly3O=zomAVADM0TnA3y4TeKEJ;XPUpPqFNEI*ac^AH zVDB7CFnPa-Vqp_dVls1`^C5R7QdKiAqHbVNPSMi~Q}_JBSLh5Ad;@MFCIm>+9(d4y zkAE-dDwxe52x7LOyS`>-)V+F4GiO?FDeQtn1#mYFnaTw{z=`O@2p0^ojFHY94M486 zRXTP@1+X^Ozbl+Xpmd7ZD65nCv{@ViqwFNNiKcaccsMe(41MG^Nl*6s8aJx6AC&)nlI_$)kYDkn&f- zJ9o+2s=*D#{8|a~Jm&70)D{higrCS^UzxG7A`k0#`lsb&kQ)HNjKy=_%dR~k9Roh! zZs*?KqOZMmu|c(^f528h7h*xm%5Ecp;WeI#yk0Afg^D#>E)#8?XSS(syDQ&_jPT5! z3b>HOWp}}=_2;<{{m(I4FqN88jhgPQu$V{POQ+64=6oQw?hwz5`+UR7|u^7ibfy>X7>SAbvl(J4U@ZW1HTMYh5@hJ30 zrPZ$rbl=IKHT?i@eBVDK%w}%}6N!=l7cXHm+6CH#O^zFr)5vB_hE~+F5WLram)6ps z`;e~=+_)4d3kbDmxB!rM&pSVk+Rv*(FA3}B7!bfKv6~_1b4;cHF_kpNk#-Z%<^+9i zGayrvj)Tx{T7sJXsvdTAR$Ia<-5O8J0nx>-GNfO1Z+}E6%AeH=ZC&aZW7wxPKSZZ1WqNiulAw ze+UhB=_MHE?H~AObv;%Qo%6;xm`JF-Es1D6Y(tmKWT9eqtgfx`U0T59^(OGGIuYG6 z$JBTB6zmKzez}QCjt(?NIB&`QA{8yu)q<-47Ro%)jo!DSc)or*A}NLZbT_$^QCN9A zfh?1TxUtp|`v?sW;oRAw&OZFESWThRjtF1KID^IAFvboXL|We@HA8kv4QTKjhP=rp zT}zo_RWv|iL&B9JjcBEe!YO9D;<5a-71zB0E0vmiOiditp3>hV-0rGqGCTG{j2<=V z><^|ndk?^@Y?6oX$Zyj}8Utgnj=%~XSo}S{Q~e1TaVi7!i$nw0;M3g;^Dyp!9RPX$ zP-c|OUX2JwasxeRvHb4q{&W+m+wbh*5EaG}DvD2W{fYh2=k8O&ebLy<`#}OTvS&i@ z)~sG{h67teihCD5YzMtHK>#a!>I@xF{n`*|vL^?mEAz*9tf78WO?~2|v%OD6PM8dG zfHdQr>A-m4firA!%?B7Lar0Q~@`Ilbc~j-xjKXb_4J)z5RR3jc7Hgem?Z(=iMd=hQ z$E&0tNCZ%keYQN#8tY{9Kc8uAe)>fL;s&n?2{E5@%kBVrfiR1n6|Yc02^pftrT_lC zd@kLdbco&eli@#Xx&IDvP3|z!CB?({tJ@_h60HIERfNN`uH{w-pF24@ZFBnuN8hfl zp04o9mvKvxqHw+84EXC9i3a)I8b;GI?A*r34$C{3w6FFEe#srzl0pQqSbguD=l7zu zU3Td)S8eF4a*$&B{+JrB-c}Quayzk9+mZ*J$qkySn@o^b2tCp^EqK-K>`kGgIe>Jh z1?GLxY3*oWI|Yr-cht|d&ys_C(d%sctEtzwJPN0wf)lyD0XL~ZocsW(EPm22Ln-D z_{#4AU%Td_1djRzXP(D7L>>x?>}8_FO&StSRx+CkDb>Ft&-&WbG-Lo0A$2#Pd>){W z{(XT4A11r+%_ra3QUTOj5Jq`0wrnP+y$KN_NimR|GZfy*v?!{-5pQ}*mYL~U_VlWg9y)n+XVF}!v&6nD zB`mn}Q_biNbyjilF;>NrzNsOu4xd z4(Vl9r0S{7j|IYbAJrbtW2K;Py5MEt_WR!OV6vlzbuUt@AT1i|d>7bCsArEX>Sx zL2N2!lJIJI?j5Tci=Nyf*Q%u!A_GVDP$&(O;{Vv2j?Of#>^B%6sUh;6zV7fnb5aRX zHxI|=MnKy<_o-c=wVCC61k^1g#QJ1tVcU?dKAtgY>+=b+GB`b)v zmnCu5(cKI@bhA5pj8Cr3UcpP+*g!1E!`XmcGbg2**G1_HF4(Q?M z1+ttTq^3dNR|#G!#JW#eHZ$_35>zDPDTPT?lGPK#P<)<2QA^%1<97AvKG!9MD2D>q zPZVG$GQ}XYP%$Y1ebFi4*#cY8E=R+#A*9jQQ>=vhThp}1KZmfzWtF;6f82To#S%*S z=v63od@QszM1W4-xT)n0*xw^X(5d(;`mRYS-0~SN7}0(XmzJ8R23gUWdj}jry`sZl zqrdG7eMg3E;1A%p3*u*R3o(<^?qMiuKGfRd`={wxa+6f64qe613xmx~@XL>(kDG2$ zv)lEJR_K>oMAX*Nkf?p*#ynj`~NS2~Y@#TF72fZmjs;xavYuwD9 z#NDwAA`Tn_ZODN+K}tfarLl(BZsoI!x?Ng(G5~u$&SAJ61pw&U6|FDJ*ECia)tS9g zCNPaGmf6awHfTd!sfh_!k7TCN8&4#?V^)&O>g154n^n^ES&;c$hD$JClK>w z|7?P0tgaECw^Ke(L9g&LF^UQ)>-BiXnSSIQf5Y8*Y7u#&F;Of(<`CxxWuYo$5~QN! z=m6crw6>$D0LbdiLqm+1P%RaaQo-{tZHF#o%XGhaEj@%}x!t?tvq-U`+ktuWMFk`#2Gb51qi>s56{q13`Z!~R`q{9@Hs0_&j%T&qiCHZxqHTuwr z_>8&5R(&#C`|<5|DRa3}Y#r1q^}!7-2}$Mf>5##Gd~Iw@zwirFX)Qh1NG4fcwu+%Zb)YZ?XTkO7oyW3qCkpAOuk7 zH9+xfpNpZ8ZJHBvw+g2{_Y7}wiQ=A9&;j6tD(l2@nh&kvJeW1#S5T<-Rq=E6DJ!+{ zK}$;o*eh^W10NA*JD%2xbQ3<0xsaPp`!91zPe_RE%rTY;u`a?$bUYvT)kk!$kaJlP z-qMu~e}TmNMpmLk2woaXs;e1AS~_@JG@$R_@YcUL#l6-BO?K(oAZ8f+6aM9KeVG67 ziLh{2t_uuc%mCJhXu#8o^BaK~XFx4HnGZAa1Ft+8P2GjQHc6ux?Y||n{=+BYrUa6m zS#Yq$2#E)~OI62{hdl%WVohvW1!5Fj3seNpk)V)}aKbrRt~HoG+1EJ#Pvc15@P@e8 z5xj$$K!bss4~*q1fxopcJ%dT5%#OM#IZw6xYUNR zDVa+`QREaP=IZbwF;0c)3AEbdNIA?>k2Bzqcg9vP6U6I_96w-`7pvt^^H7R)5jkdP zN>r&%>8j!8ADSf#)T=8XH_?F@pwqmk>Pl9oRoDBZ%0zagDVlFEZ(Z$f)+L!KTgD}U zB?PNiAoGZP@^sSwqpabEuKV~G8UO(9cMzBN|1(_lYu5i48sz^n>;Fe-<3B@2|9uqq zKSD;JZvRnhwumN(^mWKF$r48TUFD44cc8F{j9na0Of5QieSY7v4=d7Z{*>CZy^jAY zOPa`xlgQlT8NvH?R=IKJ-_A>p|GuJr_o{#sWAvs(HWJI6A#*vFkNeTg<1)-W`oWj+9B_V9GZk{8ID|6Z0Lu`WL>QtsPQFk?Or0Q0(|F z;(C9V&Y$boE5ftvm$AO>Z*JZ|7?V-0FFaJkxI6ISlt;P~vkx8&seAYI zphkOocX?b{Rc>5HNl6j$N=r|INYPD>M4CidXmg88T$blpg>#08Zlvk{f24;jCjI6z zS|W1D1j(0*T-69@cbwR4v>R^q{BIW8F$xcCRd{T~`g`{T38G@H@a;=PK^@GOD&b$E z8db^r{3AN1r<>a4`VJ75%bfZe_4!AA}?pKZ7TOX_muzEur zXT$y-8b4pqS+Yq2!%>ir_d^7Ml@EKkJ_bB%fURUGvQGOX+vW|t)SRdB-P z{s13=z|F<+3T7V4Q?E9}zPy~P)yDn!aVr9o;FfN?+wb6Y^M03*zErj^!3jH6QC9gc z!PmY4WYQB8S{~L5?I1pP1$N8fv}KP89U(4*uXbvh8>guSk8 zK#)0_Zz^@iIx5iw`t?WFEl|*meHQK#Kghed6l4m?Cchr@L^AC+T*M308efa7+8;BZ z@*6IK3Yi3H9V447ji1nAS-^1lA~Z+}!-x}0mbVoVtXN{5(qbZ@bCxLmKy`2qJ5_5* zwSb!MD(M{Pcle3z19PkOgft(+WVZRZZ54>!m*PovI3^Nf7g_}u_DOB3?i1RR2oB39 z>>hk!J@r8&g9Shqeg@QoR+;7)+3n@oU8z{xO5QHC^- zDpjFgZZabQKK2%}3P^ zUzZmeR6B_wia2%d%;GNwis`HZ7jz6fDCnhSBk!_y#>EgUa)5pN6MsVvIv_Oq(~%yG zk)#8o@gl)S0GC0d)nJ2`WX(Zlwu(5eG>WaAqdCGh*xu$k8~Tp&pIjnesWyREOmN8xE+ zn$^4FwHeX`o$AGLfw3w`2D}^;WK;1CJMb2lP_)l5>JI56NHizj5y0pGd8UQsE8$u6j#luMgNE-Ir3d4Va72PFn#^IIDXTPO3y zua|v&Ks5qDf``n;&w&xF^OfLtKuk*auR*s1p{|6IrMuptx3vxzfGwTtu zzaOwJl@H2bCKawR8d5s&$T6ltAH*AU1km6^XoX00#1vLK039YAM*4^K7;Cr_tY%E3 z+;hJ!WQ3t`lLaeY0Ci60YIM4qF_uc_f?^Q}CTcaLh=-XtL2n4mgtQ*L70@$eF$t&9ZY!(~ zM(87x?EGpDZ4y^_lCkMbJ6-V2zezZ~=5^-9vXpj^zadQu{phwq&~`QB{dqcgxqYa+Es zajrp6Ir*(TV>D1%LZ4ayl~IIF^wJ(?=Nn+f(4z0K0__Y6Q%(k`5K^Dajic5?BmHsY z+~6JL8s#+p&=eZ`%7Y#aZ5ZMd!^(RFjxH}fM?Ph87Jm7NGIU$5e&H6e`p30dN#FHMsHDO6hAc= zqASVDZYi8awD0H|bXv|W*YPOW3=D&y05GHUROj3U5`(8nm2nM`*q=hRh5S^MIcE|X zBs7P+o0xE@G>4fJH&0AkwEFaleg}Xvo>-PE&;k)r%c7Pagxxi$PXeHtWw`x~>rp^x z$CesIn&FHDn&Z~!Pi<+XlO%B%JCOudc8`=Lx`Y*+?WMqAq+v6rnI)1i50|;3&AA%2 z(shaRN)<{O>%h;??%;7o^5DdEJs5}EIkko^UasS+4NOZ4KuWA zvHR&(AU}*{gd;KlL@Y2qv9$ysRkvDxv1slFHaQ}7FkuUi`Vi6Q0Bm45V&PmsEG=ra}a$cz86MWcD+aq+V( zqq7xD-!1UYKYPJ;xfy@oMZ`p8lEONK~_y1lyTmnUc6Fx|GqYx+=j zWE16sO=D$ss;0tjP#50s4Vj1-nqeG*7Lt~tZrsK6}dWDfHkY~#{Oq(Ym6Uc zTmGi95>jMsC#R$AqInQK0WYQGd(dL(Xq3kvF75d|Bh4ZA-F@?28=vOh_0O~&R=!U& z%8<5Xh4IHbDjIm6W$AS2$mqAA9o8xjDzREp^=!~22eJ_!riRV3v?xly6BbE{5ekwbUsU3(3`jD=h=Z~$6d))dqY{OuUaSs*GHC=b!o9>Rix+ChF%!`Yv zmlf@snwD*S`>vh|Fx$b-E|Xn{F~G9uKYjD>HP1f|9_tRyw=Y95{Wx+s7*41vABjITXAc8?i<)F z%_Y8u#(DYXc1FengbIc%v?OYzf7;gGZqhX2%Sfbz0#1joohMlo$|uXm)lHX)pZ4g@ z*{`*$Yu0#f7A1XA zM3WB8oY}H88&=d1_*lH%rxaP9w^_Of3>KY;O8m4wZqvkqT~05T{r(os1prkF^KAHY zl)(#EG8QxwQ-90&{=TQUO8Cq9wcy*5WBeZa7dfsTKhG9ysDrw+UgLFG&P{M)mAb+6N*&(f^WFZA^UqH^$x} zOq8%u(k$DyZQHhuQ?_l}wq2*}I%V6oZCg|Sz5U#o?#=Wvm$}Hy_#)qkfR|P5cs7tB z&U$@L&t1el70iJF;xF`dRuZ3#8BmWIa9h=$dFqLe_at{go8lc8OBQoMnj#0lm@6yi z)UT2gBgD;Jq^-pKNn31jhuyxG?1~x+PlFY5Lplq$|14~h)8H7*KY*{=(foQ0`UI57 zOicai&7dFfh(!5S|NjH(NIZAy>l3%q;`|q=(~f!lb=m+%P(UcrCy63=7WZ*@7|i0& z2+8p+dx=0{2KZ2F^hq?L6-)Z`!dSy^HP$m*&}SYOT3~rOqtzJk>Dwd>G>HugM@)Vg z*Y2gk&&S16-XVVfkn-tG%fB-^(|Z3v{`SWH_9o~1t-BY2NEIy(b(GNWQ5=s)StSm2 zg*ftY;8M2OAoxZ?iCe9@13UM3vem7YrxEI zSCjh|oG_-ztO0N%YCQlwcveE!r#4F5fFTP1@6FRcZM>^BAMfJs3GrtFNBlcC9YS58 zB^JQPpx4R+zFZ>Z4j~BLUsi`OKFE>>zLfAxm>mPQ8eX;v#+}8U1)Tgm&e^NF1Fx-( zpesvz-s0=N-lZ%TsstRwcy}#2ARjy__6y>^`f;rl|KmTb4wHlk0P7VC$;bY1zEIFF z#UL$=a6y|4{4V|yKn*3>2+;n^>bNcblPYlxo0D=5!EQq z8g0pdW}C&+rm?KK@HX}~g)X%DyAp;9%>c588S26HdjFXD+lpF1iCt`ob6YFVaJLr; z^s=F$>&FU7k*?!;Po0JFA%)2aarL$p>;dAE+-mA*0fDv}!EQW|+>(CN0kRiv7XuE< z1o{N#VW~Ks|Drlw?F_OXI;k=;H2WBn#cc5wB3X#7(Nhv@<7DjlHZ!1ESl9}4l%%Mg zxWAmvtOigF>8u7L7J?mH{g;NWzU!&K%%6aApd{h80hRknUONse$N!G=ZqRQ-CCO^QSR6j%w5ea2VOb)V1Brp*)`w zC`YpcOiDkisOuTFsQsHRoVGccx%tMQemR|3rH_iGtHegNT2Z-s9@1zuinzY{2Q~N@ zhp(nyu*#a)Ka>+wE+Oev>bxzBKsLUz;d*~CPn0mD0K@!uyH6d7emR}Of(aiJN_KO@ z-%_XQtly4N1X3QFP;DR64Rbs?ck?Hfic@6KI{+v~EXtY*t7*3wL^xD5x%M1M^?#VM zEGrt9_Qr_QIERirh^Dyx0n)GRIP1XUu>mhUuJ$0%TfLTEfJGQ=IPt-i)fOm&@BqVm zNR8 z=JFWzUj#q~1WcLV3=lY(LVeJ15`I_-kP6%oBhk*G|-l)JYz5$!- zqg{_r2S(fxO==oWkeDm8;820w0YUvzI$NBmo_$35!7NOc5}$y(P7U#$!bl9FD1CDz z@o&e1YKVLW2`D@EG-MOWtU`7-BbHqMK*KpM`V zvn=Mo7TRoWyx78Q*co7S;gkg@YRgPL@kfUOrQCXNQI=I=f72)dt5!_3EMJ1@XR3-0 zINs3E(c98mU{QTWZ35(Tj2swzQtPE|@%m^xYG)GZ7G$jX%O(V4H`P`+sI23cxf>3o zN*@07G`&_{t>?>1^-o(5*UjhVhYG(g4Rr|t_D055(e#tYhjOLUT37c?Q_ai`|MxQY zO`tcXlzQ=OR6^dyvYk46H8Ul7q)_SnjcRCnm)eb!x}w-mvq{F=a1=K8Q1D;)g&g*< z3@Xh59#)i8r=`RqI7le_B3&_{ol9DJ7d(lN(uJ!nAKMq(>k6H62D(>l-EdbWr-|6$ zf|4rk0+)_rOe0T>75#5@`Azh+;t|(4`3%nk&!2Kb{R3 zxB?8AQ?y=KF*G{Hmm5L!YTCYUAdC0rs}!wV+oRf@F)mK@83^SrdCk35&9glCu3}y35BBug{%}@y$# z4cHsNIabbx)wM3-ff@!Q1Reij-AIEH#06YjroX^b5s%ND#@9N7f2+HCpO=O5S)b2V z?afpjO0oZhRQIvJQSK4p^W)^F_gyH%mWc!+iz9abO{c+>r*6&X1?{XT!g&Msg#Aui_r zQA)i=*T96tKb-H5x35)4S(QzV?4C}Ylw*7f5L;z7uKct#tnz@2dpMbj49uyIhv70M z9T{?q4=}_ zuclb|>7mFmJUkg9H6K$PNP^YKlKB-)u@J71ap!lHdmY`;AKaMFJx~Aqj1C? z6+n=-zDlXPt>=%VO1kYiztoRo?BW^LB_uyLW#rQU+qf0I@o)!fN;Q5jiOC1|FlgGA zOnICN`p&pg8@e22F548U&88oq_a=Xg&-^P2GS9J@MxSVmV;qYE)6dr%_jf?CeI1Zb z0y^j)eueEAU*kb|0-)Pl<9QxYTYkP^9pvN{IehdH&B_{v%WXV*rJ?}xi&$;gQ{0~( z-^dcKyZV0qA5xsbZ)b`^!*VLAK!cXSB45OwYXDx%&_4Gr^F8yWS2o70jxm4gbAAz? zb1C1H6dyV1tj;|dl12g@Ax*kRx<8KT!3-Pi3jSrcmYtV^JwMikpB0FB0C!5EN+Sh%Cs~?i!(>ZMb)&77zagZ zYtyC}WWE5gFwcliFL?DLc5N`%E8r>_;qj>~KsBw*Rp;>WsC++#g-)6?N_8kc(eLgC zX`))ZvPSlbz`;xax*bFFcE6+`gs_DISLZX5wyF!+;ju6^hNIcUxnRzZv41uKI!%GkHE;Ybl+^aFn!1nf|BvNp`aM~*;D2_7RRn%u0YSJ4gjZU5Uw$`Ciwk2Y;6_JHi`W)9e*3t(F-d044H*cUdp+(*?S~Qn|uE_S*JZfD$RL?|(Qua!B@d`%gh|j9?W!Z-! z8#YofpH5@$8Zc2NjPchlc(dn(cm$lnAvMUB;v*!L_<)M2I3?1Q=I=G^aq>EpC8eU* zM{0>z^DE+7*h^$;>TA=}hnN)WXc>_O-}E?qGdL+E0}7#Y_QT$6wLozg_3WspkeOev z9fxE_p579>Z&U&K=hcU$9tdGuIv(X0tbE$D?1lbVHiv;q6%2xXyA;){KRkSl|6vzgeY7`Y}L(ECcm$o8f{e4UIAR5(R!;OdR8Xh%cB=(f!W?MB|dtw8~%Z98}%F}Z@ zo%2)bc8|Z`xe;sSw?L*b`NBb{Z&`pULi!2v_7D%k^MR!E;k0a_O8~+#qY~OVCCr-- zn~9=Q^kd^)d5hy!Yh!bip54J7P51*+;Al2c4bJX{A)@TQM&+(Z>jGc!TV~ zlcuhWJKZUbF>kjfS4PnWUTjLN_0uIaJQt1AIW@^Ce{GCSnbb;6JLPO|xtl79P{ZxL zH;UUwkF9ie5PgzzcA_$@3)R2-E}=%#+*-KfG9z#qgs-pYm4SW5Oo}f1H#i!bb-ZG@ zaO?)HM(-D!$AfNJ9m(O&>ru=p;;_k1n881_W&=e`4Y(g%^niDCT4paGNdY+sZDOJ!}=p}dD`!sC%rsxyB^ zAB0_H68CwLuFnU%Xb3sDbbMD^_7f7JtVNDh#vK>pfi%7@rMf9Mry*;kB$7En)IudF zu-3kPq9UTNFe0tIIKPz?I7^r$iRcT#L zV}BSZ6ypR%Djx- zs(S;Qpa#!O?O%VRX3}zcyobAZm2~pmuQ5!6>e*MR=!)aY3`*A+Nm2DEgr4s&iTsmF zU~f&%8n(7GoykDrM7FsTm4yQ>CNw$cg?pW+x`c$GOJ8D2l$KHJZK(1Iw)fGo+-q#S z=!3Wou{79CASCeYOEQ)wZX~OTY}4Ps4@e;`WpWYi4m=avY|v}?OR(LXVsgjKB)2gM zFF-e^tmz$~@fnGgW-`x-vs+^29U~hz>Ez%h!?1d6!OVx{+clbZqQ`+ zTGNP7Trt7UdUEcZy1IWD6|SvN)F}eD-b}u-G9!JX6qti<@T7xg-klel^v|t!VL2UZE*8s`MPdzzbq!#L4MU_YlntonpovyM+ z60GI?(aiz8F!=j?1BQ~v>Y|ntP{-swOGvNan=U=aggW1IIbBMPFKLk3V*>V$bgsC; zf%UGfElgXwps`>vqT?R|#%#eyv1_)^dvZkWTji7W$%lp>jfTu3MzD08bsHM(pST)< zBqjE$v>O)7C3IT@Z1m{dELT-$z0SZRYDo6Zo!^GQ2BS%SpXPm1F^yQ2C$A0LGsDq8#Wzuf8?M$)0W$qS_d0=6% z_mjrJgxUm2qy;Dyr6WPs^J1BOsigeD9%ZG$Y)-KJMX6R2E^edXu z+;WQZF~n_^x}>BMi4SHH8YbSMP0_K1liwim=!O*EN8@a6_!%m@tA4w&Av^xcs2Ll@ zUyBr;$|>&3-U*~*K0VbxQyE~ivn?(Cv$>T5C?&k3w)TNqBun&yj=8V4WO#CMMqJ$E zLLQ6q`88MMZalcievxktv&>ON;DX<>Fesj1n4QlANZhTUt9pSu_<8FYcP21E6{x|C z%C`cBZ33RuXj-KJTKf+VS`#skOw2h}<#~C3>GDABR$wmg2LpCWB96d?O6Nf24RlLWZb-BNh)sT|KudI75 zvsF%N502LEjCXVS@2+R|^u@IJ9Lwgg$!R6X!e~cRGpL(n_>Zf#G&3e$~)r$NzjaixelrCLLs^w;2(L z2J--4V9DR^yc}Okh}JO3iWen%!tvn@L!hd6i{gQGs+L@;-?Z)1G{E-MS;YMwPW?*_ z`TsXHv>sH;`86xPufR|P%;F2{ZPoz77bPv7Z_mhKC9q2z;8CXrWGm7oIRFWUbcy`A zn14Sn*Ige@Z%ghO)9k)k zK4EEOCtcr3aRMZnF@zrDy-NO`YHb)g#_`mk^iJD@`9wXk0iART;>G=x1ae#v*Pg=4 zvz2i&g2ym4%rDrRks%&ChkTSbV~22(e&uWM*_^(GuDQ$K@c;Xd1FmFq&Ls!{fSTVO zZI1sNX6S!tAyIcD6MJV1JKO)x_-dco9kd|*nBH>yIOH)aXT;Tn9g@x5<+}AVyalmWR0+AMBR$}=L1jR*~ zsWzvpI;SfQYJtF8Bzm@eXebhik61)QqRNl}<*?D7XPTD9$XKh@dPCB$VY}tL;BdLR z-a6I0Z6r|R5K|KQR1MnUnAfNbZ#D1V(my8l-a*FWY>{tE?3qxOcf`Ored@=s_QX8> z$XJU*0}BT2*a0}9Ja0VNxE^?S*mMN200new!ES!RC$5SBJ0{1s2u9$EwcVZ}oj>XI z*O#alWyxE5;%n@uhf}eTMiHGou{h!$yo~}FC2795i}5rg>rjB=zP)$BLjD1>s!jUl z{e`6DliiNSX1htmX@r{ceCC&IcDgL*L~hPOp;LM_S*>HrxbD3G9w<(5sj>TnzCgg_ zfT;Urkfv-+)SQZv@zhS!(*MnT+vw*~E`%%0HK{r@$8s3l0BHMr84Tt>FY^m<}RZ z{^9yHDq}PIjO=j@&UjinR*@C=i%GbWc~F8OR@X9fs@K*ixgnhJ4j6LS;!8sjvV0&k z?b(Rsf1t>DzQ_J4x!PRnS53Vm-%}_Hu;&+-+XJlS%GQhjDSSkjKM*Tvu6@1_gTgAg z=xJ>?f&D_D{VnQ>_|nKJ17uMOuc`CUQmm0hjUN={b5B? zxW)O^_JP6q5V2eXuAD4Vy^7slU?o~#$L`VVvaJ#4sv1&2T7_y*L*vKeRW___uat@| z&uo%+mQ)3ipQa_4x=!1xnEuZj^O;s?u)9#VlI5r~hP}bRs~(1d0>^~fHDQ-?hsbv# z$5py#0Nmozn)A=(Q?O?2^SBq)9cnBs27yfC?VL~dA?E~C$LFRle>cF#E;AUOG3UjW zRqrzL4(R_)hqTB$8!-CwFKDRN($uH0eMDx&gJM4&*VmNRAzYA_N9pxjD^;@TiJK#= z0k8ne1nsyue{^R$B+f;TvDSP7-EM`WBV)O1(NKY#xeJlZ)-t6ES%^DYV88e7<3kmU zGb98}%4lE^l8@~ItQC?S&6z-PAv>kUhGB2?Tbg3kx6Qvyp^IdqWZMhr?iyG8-iu8X zigMdaOt}zfVE^2e%exIrH#SUWD?YTmisV|DhZY=aL%kCfpC0ZEopYBMn2@0EKlg+> z;l2b*RTCU6NC~M~DvRg1BHQSz{fH@nQQ4Y|gzJ74Do%>Lh}o!lfBkB+qy zaMYRqeA~_ID|Tsg3rB0({xEZnL_I8Z_ZbXV;pg}8K$;eoN{IZ{wWQz&H}zrr`e6S^ zjWMcodO9DVs)`2f-olC%yS34g%H6Iz!A~#2S8|ax@3A%R$tNu$lsYXknmtJ#oB@ZH zDFPGkvc&~_C`}Ple*^BQ_bs#|jCi-m%fr48C|D~kBsEN#=w&#If3$d91`)>hNpz2? zR%Otxd1_$dr#pUsUdBxpLKRD%Guw(a<~W?(8Vnh&LXx(#-` zJ8%!S_cQF`6%)pO#vO40E6Zs=uh2rkf*uF@k~h$R zM}UptH8nf^yaM0Dv!0v5LxJtMHc#3#!9nT{8cO4$lt0 zuJQr>S_VZ8{3>?i@(I3+L*n_TwFdSP8{FtFcmYhm?Tn?DE;PNXvL^JFrpK!+sHm_t zxYiS%=BC~Tn4&L2Z_2-=U@k414PLCfA5dK&7x?uBl+ZBO(_|*d(KbB?7z_byV9uiBX3qx(JPJFD|M@ism~NX#(46w)T6=@`wjNLOQmoi zX99v>spLQo06_QuE0s)4tPBjTO~fp$P5xUTX?fZ0OCbI5=M}C{Zy`~xf+Ws`M{pt% zuy2wgfZpV)l`WLpu=iyR+caZiG_mjaRO0*INu^IoYEn`_y1J;lxbXVfoScV!|2z5e zdSf|Gu`Kx zkl{ch5&6dY3QglM2CT^0z`q(!n|M$jG;{{>3t2MN zalv0af&w}bdqoAhgl83@4D518snW^BRv_Fc`n1vhD|<4Q zYP7GVe$*9lkm!vptjjBEffEJ?edzX~AC@T}wwJ@M{okwPHChQp?}$m!d8CmO-4>XsVn<6Kdyj!`+O9; zgFK@SgiTB=n|$!6nroP;r71a=g=qfpT1hz~j}CC4a==MgTnfcDlSJh~#R4lvXMi%G z@`_=GiB?^%&kJW)-xpl2k1rJt4s_#;*GwVMAkiNA@D)e}Sd!E^EnzFBPbiBbDEptGv9Z?=V9p<+Y+j>juj20dlTVR=Vyj|Bi=R> z^JXr?p;fHF#}&aK;PMJI?CIC6&Hc*r*H{mD1&^Nr{(xSI-U1D~!5H;;I@fbWok{T| z*&q$S9dfIE3@=XS&?4npN+Zcw#|52!fIHE%#c-fQbv~gRNNJ7v_qDEeoat!YktMov zJco?tMi`SU#IXvZu|3bWTe0&?Ig;Sj}NgF)p*Ive_l&0)Y%m+831 zVX4%TbN&2GwMDhZT0-841Gc|JQM0k(JWIW*UU)vj&vI-c)>_F?Lg-X{D@IAa3ZbXa zl|P?tTJ_6Etf^L*`rx|$8n5GGo&NJvYz-5QMmb|QC-q1Qg@va`NL#ru(AX&Y`D;Bt z*VF=ZQkQZ8M0+uzI@bck!}gdJyx)AO$(J8VzI13}M9xA=Zyc>D ze4Zv`T?lQVoz(ylj3`;)Y;pd>25v_r^b+%g;SbzxR(JXbt8le6RvR}44Nhb(_1MS1 z6md)G^T`={3CK%z!#peN%DvLW6h`%x0prOnC=7-#xeQ&u$ZaD>Mxp1zC7}b}Mq*KV zk+4wfgI9C2YC0e@^)Hu|X^K5Wd7eC@K(~}Z-F-uu$#n)8L}yzga>fG4E2s>v9VIpr z?hKd|N?(3rX?RG^p~4aX;RVRM`lK2o)--a?xZ-EHjBT?ZbqM6Z%^8k=pz!2?V+>EJ zlL|;W24qS>@ijBu49z_}L4;hxtp$qz=wyG#2HbOm2%YLhRt@n`Hcu3+j1ZpHwUkE3 zsqL;0-pkzKNk_-^Ky3*ka@h#PjFWYvxpmRJ=0q_yQwXe3EoofWJVwSTXU50uZ4AmG zGn~i17Hqhwe*`4lfCOHz_B&oQdbt+{J9USe3!;w{r!dm@*ecUWEi=e=h@MEd&|IvO z1dcxHJQ&Al4F#45nN7CAW3k*BL26s$zV9Xc{_MFi>l8;Pi(>VBlN1ctongaMZHJUCmn0{@*eZn&uO^_`K z-N0gdr<(a8nd)@WFdsm<9&k!K{eFDlaV4c%ZCn>cM~SP&@^nr?O0BI|kM6tASwH&& zCW_1OwE+&za7diR+t2D%Kz&0=YKwTPBZ&!?IGBh@rh^dos8Y&G6KmzA-)h#TSQzZ_ z{gGBf7^!`6#w4~`b#dFTeR>@#rToPbdi{s{_D&bcUN70Uf!_VB|b$oo5cL!+6f0`rc={;PuwWA zi>*}2iGeoRi9xgI_u;9`fnarpQbDXXNRyZaGG*dn1-o?|QFM1uFXI>zb_qq9Cj~Sv zyLFPI>sz9t(`}bghW4?`aAeN9IY+te3ZGmH=dfJLD|fM`FPXpY#m>CXop-uVl#9#E zq!@gEiPTOHl;Ytu|uLL{z2kI2<G^=g_grf*B44{k!!B|m`Av1fo!nt(qVqd@+PtKFP(Su{b%?&; z)7#mt|Hr85iCd3daNuq~SgpY)NZU(S7EHnrk9AsVjz@)J{fsKmt5OJ3XuZvHQ3s8us@4w@0RTv%3H~7^gUlZaRmcf~= z22Uo9hZ8QLVu0^U*jK+I?y(pMVPJ{~SA##B!mwafg1W}Xj?AJl&8I`ZvZD`! zG%p(6#<*ry{kFz>1jYC_Nux_1{I(o$EKrpv5iZTrL2y`SZ_ui>&A^{(Pb!4<<(s?t zIXSsFKjKKwm%EoDiJZ$QtMp#rO&$nYb_R8JSII-VmDk*0e6C2IF%d)fm;qx&xFe9j zk~Gd5OFA@|CfeuCsFA6O=$?)L6X&X~wBpXk0Zo=J z6yRFn$zV7Pz{qC!=uZd=kPpz|vLOD-@80mVSG>V$>+)K(`MPL$ihs6L2LT(6V>r>b z8v7Sjrf>LHddU6Uz*N`^i!7eZ(LN)Qe?D4;dyad}7#+j72KcJiS1N2=E#XndK5X2S zQ@(xBB;yj$M8}`3A~;LrueE@^blWJ%scF(_?{ApvaS^1-TWYLon7jzl)Jc0-q;ie< zzr$P@Mn8y!r$BREwzP97zwNeFvW2I+0scT64IZ#&eGrV+y6!rJ;tr&Mn9TbV;kr=* z@S*>bnr(Z9LK3lJiG;n0ci8ixC0S|&c^H4ap=N<28KSr9)>d;FWcf9vC9;|g#!)+r zMHD3Qa*4xm7Cz1+jM8GsDM49(^JxF=<;RxNR%XvSE52ceV{(Ly4*lp>{i3>#Xc@m~ zUOql{FY+)p_StDLATz}06q9QqAr0!r?X2p@+Gvrnw})fxdZwIW=wWLKf-FBJ#?#C` zs8^_^?qCP@xpj?9{S-U|Sgd$5q9vJEa@-WY42d==QBFZxIWR}M1I+kQs0~HJ0N2Er zct9D$f1_QYzbuxs#;vNz;la@-*{Uw#Pp-^{a~*dOtgLAaSW`(x`{cUX?r7*COYE%< z83#PVXpz(h(^67+5-j8a2^nUN7_g{!a!C06pHmJ+hKcUjb~CM%wg_j)Fpe_qpVn0m zS;?jf`WaIIYQiNM?*xVo5V!E93dQTCq(`ik!(uF-D#oUgAs2wNd2mAy}2SF~MshOUy^s2jk_I ztScZ3DvP%auzlm%bD@kQX3p($>+NjI}-M_Qv!NE!8aDJ#v< zul%J`drh}ebE^5;0Oel?I8}0##1d7Y40P=J0_Y26K_6Iqha>+Zmo(T9QzoOvqWeDUKDk`t;k#$UY$-;x8UH-e;q_j7T6waGf;~FOQ-35}be+*}GJ@n&+dHHT zws`Wu2o-SJ%dd+3!Xv4H@s|uYSsuoO;wGMwZhn6Adm%SjRoy!vL=gFI5Hgp}Dx6x{ zI*A5J4Ie@4!+#gpLz6Lwn_603vo1j1FZ!#8>FAs%$59?9 z20x5ap{!WaUMzM>v0ruy>YWefI8A~6M{th7dh7p8xc79VOvHSc>p#O2HU2q^Bt|e) zP&WH8OCDw+3g8Q(3h5ms>{)TX?Q_mG=D57|QnuPrTo?&(9kxQo0_?(=M-#v6nPVaq z#Ev{GhI_1r)_+jQf#6Oq^!OV*CrG>p0*bARGs}qHbx284=cQS)`V5ch{aON1&C@9x z?QK3+TC}{;J`E}h;3Hx$lx5BTe79=OuZ|`$Pu%)FOn7}G3n$^-^ z-8UErKGiC+R4sJ~TBT6!K%jOeo=@x+DsAjgzH5sKX%mz_iK!rBEPn|p-bD@E)1$n> zqonb!Ty3TJEoi)l^h*azh^3@4IIm1x8(`qodZP+E`EZ1n-q4q1{*Q*JXhm`KI_hwJb940p%#Fkz>vaWlM8V-4ND-NFCB0*5 zhx;>Yok;Ea6S2)OZ!HAaLI?emxU=4& zw|#jPPeGD)`vZKDwAE^Sb2Yb3FK!1XaWYBz(c#r|3P+L#Xw|_>cAb7Ix=ov8ynzeF z7k`NFpOo#*wZrM^+*o~pn3NpsJgAilud6*6B{U|q)_`E*h5BxDQd8v zxnRwy?G1*e^MiDGUSO)^nOI`88X>@z=lj@ zega=RHi+3<95g@^Tg+ER>(DLgMoZkQ12*a=sZK7?U&k_fxd;10qZ5AU#DK=)v|eXRyNWxwT@J-Fa7-uX%pa@)88pFPuIg}Y zUX`d_zB18_nv`0f?#f8@-nyck{0+Ce3^tNv(g+;;cg>rF%9#3%nD^yyopcL+@XD7+o&3k!&oO7wvKbg;5ZW9kXi)Tk z+7mo5l|oJ8=3Qk~AvYbQFaSp@INHtwszUWloTkAELJ2g`QNVA+E_o1XQC=Z(-0+ed zbDu``**{7Hh`b^^3k1>zz`oBY1Ia$cwQx#U%;}FFF~TSJ^mW#qF-xJLWzkpTx~_5+ zCGaj$DC3iDpJA#$-`PBnOlydlXop3yK&z?NVOq0~~n(yB@S%!hl^ z6!jP4Ih8c2#0x*L#f7-^$5v@8X2J0=o=Nw6`>etNL9P0PfjF#V29`N4QNTxCc}fi` zsP&6#1qkQ`oCz!*UmJqD%#G7VUIyQ6{pd&cWq0)eWboBIJy2le|rfL{_l?J#aNdvEW)9yfP#g@52Y z?f6!^!^R@6wP`7&aa<9btBDA)y=OV{l^>0KAlPkFUc}>O0@Ig3V2a{P?71jL!G-^l zQcQ;YF3lodSR8m3Yibfg@Q2cX4VY4cwA2q#tkpBRVcq+gfZ%gLe{#BDI)*d%UC8iY zM!>jjdLBLw@)A~i6u=E{$ z)hlgO+^MnztorrLe`UD9OhVRiEQ*-+_YM#u>x8t5Va>9w{$ptD_^O>uTC1WB^(yC= z%9##JNL+@Q-}+;f>>I;0B}_U{te+x3-igW0Il<7*;O~It>F_iF*YE)b-*y1K(U2 zjJKqh|9}Y^AyQ6G+UXxMgs5yZLyS2;`)$uB6XDK#t__SGfl<>W$_(bCtWp85Q(1^w zvJPk>*=K2SUxK8=$ggb7^>VeGl)rg6IvRVjBZY2)dbS=?KASR4;~4-x*bir8AC?a+ z;OxCZP0lXPLd1Rw&;>(369=j?m{<#SDrx)-5Q2P%6z3NA)x>Xkh?B1IrJcDDz=fVAqUHZUVFj@|!Mc z7KCFC!t(A-Awswj#ZVFibgvmb0ggoi5oycE86j9U`3J29ws0VtzA(vzp&;%?g9LKM z29)~FeApD%HEMSC`+P@_lL;%K`p?h{Qw7542T*#7H8OmYRR)**ewFh{=;DQIhVYq1tA_(HxvsCT|?h#HI`_Op~e5JJgEW~(+{U`(T zlKavGgXUbT&UAfmI&`dDL_<-f6{IYeCpCNTr{@=zIZDJ6cbE#q3%A$U=VLb{s?Q*P zOYFq{>j?@H+xxCpSX8MDK{%h@6Hd!{?bdhL%#L_bmha%jmtt<35ypphJ^nb1ran6x zt=xrrJ#w)xRpgKcUNC%?@A4mToH-&!lQpJ&?h+`_>MwGx3#Y|2TJo$W#z;W`@W~lW zR0y0(k<};E3ehMaukW*4wyqT&j2ExGwIB`fP%`Zn2#{{BQP2{XeSl>VKG2cG^_?fW zagOGL?1KkW9@5ms$?$1WCo5gbuC@X}cXG2K>KdkW59rtR%5was@|ZL3niuUsLxr+~ z?lf+{%|kaAX7TYj_PxxV7FmmfZkjk@O<`=|1NYd!ZC{n-Y+(D#+8k)*1UuF#toY317KfdXIjarKqsmTs&txj$wH&+8vOur%f#Wt@y0 ziYGGcww}!b)L;x6bh+EsR@*GiiIxBoHSrmC$%7(ysLo8piT!e!RXConJY!@OQN}6D zFtnz<4Mz|6jQaCZRgxeS@Z*N~q6Y=d!xP>=R~d#1-rZBUs|rRyAA-y-gZ9aNTddMV z!vp*Q6?+-3Nn!NMD35qwqpImom6g_n1rdC1`d0LUPX2KyH z@1htlV_Nk1aYM?zWqah}xo$-oOFP^ zvS$$!y}HS98MrYdP)S#ZOEEaj=0E0>h7>Q?HNajhZz;!6g})*0mj!vwjaP*@JwlYj z(pVrbns$>seCb#Y%XT_jVvT$SHJj75d|hL>>$i2c1G%ivU8xT-om5{gG9rbZLq(sg z<$8SB1j>CRPW_|355@8rHz`Q}bX^UxnQvE>yF54vv7K%=8OjbtO(XEt zs&CVOB!f3*6;OH}Tf;pNv)|6%3>9B(NmRcczbqiMlL*VlqdjxZ`SoO>EcmPxQgljZ zkz6FTk5x=f{hA37+`R?_q8WnbA%yAZ6W!<1(UEXsm-!ios>(yW>-8*=Hx3Kv~tuz@C{DNbF?Osn0xIldo*X9X3n#=Hy;5hN+o?Xu0=+E zjy&@<( z^W^KR?!ZI0$BHX<(-Zg&NSrYxSv=iiTXaTnT4a3f?+Gm$w41}JBjfWYw;fU0<)~5i z$RMoAX_M=;U&WF_9F6T=`hR@mMT|jv7F#aj0x=l~xT{|Nq;Lot$?(v)Q)u5_LikzR z0bYlTyf|#HaPd>HZ@MvrC3%H|!=}6M$5#XwI&WtMyH0jw2`WsBH((;X@Y%$ffAO|n z7}5d2ZHwDz2N+lH$b#ZXU!bKTR~waGPBZpvoOwtQios>YXTby+K|pwtNMof%rd3Pu zmQTpdP+~=1BoJ0y_1?xLxd=qKB=}|m6k~St(EF=`$bw?BBQ9N!dTi@U#E+e_X8D<@ zI~)kkWDn8Fe`G3y3=wJS7jUoBRxNTiu=V#fap65)Ur}aK8wTM5<51#G-F!;;oP%94 z;p^^!)T;+d6eWBw;#~a-9DXrB!0owYLpk3y;VH6;fIcS2rwjwYOsBr`hrjK0Rz4Yj zvm2dbYq{6hA+TgzBM>4G^xSyl-$sDZAfmbU45Bkn-NKf07Q}pZ3Sd9H^!?zMZdRCO z3GNi)eEqz=-M!!8#g}t@%BC>d8MCwfuJOx{fz7)k4I_&D58vffb`T$3+)*HioP1n? zCXK_G>GYAv+gxSRcB7i8+gz3EG4AdZTu4`1pclpQ7k#+$SAhl`;gIegnTp|QOEv=> zkg$s4ha)LeHf|DTK(PWb7!j}A%D{m0aN5>~rw)U_d_ShezoZXe>=bLiTH&ucidU@F z^!{NrB zNofP^S<0d@lU#GZLgqRg%3isf0@-#NY0ZB(bC?M=KTXcCP>jsU_xIiR0WO8s?9P{C zcz0S+e%AEfvL*pGC<@1nvniadOVrL<4Vszlj9+((FpT8}g0iak|1frr?Uk-;myT^) zGqzQ+ZC7mDwry9OidC^~+jhlvXRY1G(cSyY+aKrr1=n-lW1M3WJ-e7_p#EXkF$V7? zCD@o;BG1q>CV+s}fx~9gKO~lgZ6cklOX&%BMiwe-k!VGuKF&U?@b*Z?2lwtM$AWL6 zOT~16I!X{?Ag=`arYKe+S7tA@8D-~>K!o@S7g7vTtvx*Ka;?2G#?IOeocO6)z{n=3 zUk3ySI4JDxH9gKy1B(?O+n>gOz;ct4d2B!$TEQSkVmqW{p^~jpLDfW_kLdVIX%($f zf@7kp5fgd*BmcR(GnGE}4Gw;Hx>p=-XXQk_93VVYb_7?3Bk8#TTKSjFiFRpabRNb{ zLgu(F`iM1Gf3k$W>!cVb2zi}$@***E@hKsOcW-#x`?WjzWp#p|{Gl87nvTE4OTlVz z6KOG~W;>2lYkZX{9DjK<2Uv$=%}qcbSn!~+a9_AMX)#MJaa_qJJ7ggY(z=dk7*l9!mlVdTrbbV)t_~lM0Gcc%U%}c)T+EKPiJQ zz?jNS^-ULph-`(&62BCxk$tJ07yyAOl{rXg$P=P9KV$V!z>)}acXOs(ych*Go3_O! zUHruZ91EoL3}0_ly4cL%f9OJ=^E~d=0diIM1S7n-c!`x(YUnGdXD7_&L+v|9g z{S~s~^wH8FwWe9AEa6F+rZzN%WD&oZXA+^HmzmIMWrdQ^+g+Ah-#BqkdYqU^ z97uc6MT_dr-=OoqrcKs&g3=~RT`%}N>G2xw4(y~@?$jz)qZ{El@?E`BSx!XJ7zz3l zV^;NyN7R9G#(C5Za-m$x^SXehn@#VC3xWHVw4u)Qp`T2v9f`ujf~%(P_#?P+Y%WQo z)q=vbW~Y({17-8pFL#8NPVT)xzb=)BueS4hOS7^bH*2Idjc|`FhG@W{D;m!ZW{z}u zQ8X7o6kinZOUlOhGmNE5gs;uUVc=W+-xrj`4k;z#hQpjcA>*ZA{2H*xvq{(j5^P*G+z?-ZddZbpPnja@B>a%7PJpa z;T_$3H4}7A5|1WnUC|?}hN8Aw--7)*B&gZullNJuhcco_zBG8cc=K;a(;S^1R$V|H z;x_x|lfJc!nN4;|n{E8v0`@q!Q0WrP$6Q zw|bCnXOaI6R36pKG9HUS5dg

    Ht~W3}L!ver!0u5u&F*_@DD;gU_# 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 X>Lj4)1%VWTf9```vS9~E$szv-k;qx~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/libthrift-0.9.2.jar b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/lib/libthrift-0.9.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..a06e276d39a6620fd3310858e24d43b00bf0a083 GIT binary patch literal 227705 zcmagFW3Xtkmae^Q+qP}nHukb@+qP{Rd)c;aYcHGM?t4!6*L~{ry|XG+^T(TsN;2~1 z8Hs{4FbEU?00aO)UA%+@z<;|S0YCs`MO6f8CFR8Ezb60y6#glN0I2;dojo~mAprsa zSOo(BK>1tkzofE)a*|@A$|`iSVkxSVwwnwHUC?v<5PYouqWtk-HL&0=SOlW< zydYMYtw&0Q0t@g@mz~8(ycGl8n%T=!SN7_@fh;?WC4+e~l^VrO`a&Z;zh$h*Ct=Ko zfOv#&soS5rQ;hT1*}7(BztEX{KX@S7lREbn-5`^j^hu4$NX)%|Mqcm|qnm4Yq%`JwYHDd7a)h!}Y1>c`Qn-=z==XUGep2P)?DRb}>yjwAx_hq1Hz3KA<;XBJyL&63q6AvDn*dk|v+OC{+^5r}YU|+`0`=eYJAjFGXeybx<#L3XLgm+%T#c zJNYB)R3n*nyoubNB#>XaUDhugqIp;bd~;JV+XvrcsFyogfBFZDxFA%=y6g-JBb5?2 zsMci5ijqg6aH~hE%bQR=QYZ#eP$-7*;E&obAr|z#fr)=aPGL!|_uv$rhHun{Sv5~J z6U2S~)a)7VY9S}hssd|U=nvhtg2FzH#Fv>pyhlKdpAcZ?Rvnx}tid}TMlJTNorF-I z`oO`D2;N|zKr^SwK>9Z8t%lU=Y3}{W5yH#naYyAcThposNfdXPqJ<`fWfp}XJLGjJUtqUF~%p{?PDriMyAV6Q|ykogLm#=cd=){(dFGi@Mv(?=<|KgTug`j%r;O3 zK5~)0V;P;w6k8YgsrL0DC*~*eOsL-pF0@#r+Vg{wUMAS&#@Z1J&8T%q)JDU5DumS+ z)fJ&g_~^MPJ=zwl+TA#}?eTIdZ6%dMj^ubM<08L+e5^vB#JbQ-LGf9-%q9vHZF*er;{v~-{u!plrfbQaX1vpdsM7bY5Tv^m_ugF z(f;U$?}RG_F5L0Thx8IbYRr$R)uK|tzqkmu-$kPub}Bl1&++}Cj&P;Rs1dUQq9VuQ zAbe_zxsG3usuRe}X(UbLd%GUSm$TpoJ}~G97ZSeljOV%lSTat5MhQ4lY9R<#3ZfEU zV&+Sl@M9ZP$?ntooRpJysu|=@9xti|D>f0e#n1Kk1hQ=r7W2Om;}!>#cO8)vu;gTD z0bi>DK?ixUe5S2wvMi|%Iez>TN%9T(+gzq(-#oF4ibCVJ32!__AEc<2r{bm9;dQ>a znc5fH^yGYKelk=szIPmi2h*nz;-_E9YEa3IAZ^RU!04ZQzkU=r&9pzUc>!FZnV&`` zvcP(&*y}*6{epc|T48n*`U;Q5&-m&>P-yT8)Fa@JEYGo!wu=_d6v9()Mz#G&doZ`| z&U-wb{gU{cp4`QQJ)7lH((^YRpKJIrU(N_9t+(+Ur5wSjsX79`_c7)HHJraSVyX$^ zd8BkFO>jT?qohH_lv(4ML|4E@uL+>IprCo_krKJc8NB`NGLCA0egmy)cx z)-ch8%)yyYLtalrS1H%tAhRpjHWx`kq)ncPCGHdN6_FDfKgcU81>iF1;D>z&Tj5I{pY4T`4aWh_G`__X|0zp<~zd%jMW-TN*0be8lzkQDpTN^s7YSh zF(!ZD_^BLz@FD23ZPG){aqEngB*2rfEkLf@A16rU8*8vNL-qK@z7aV^;uZA-)LbI8 zZr2B|?FWhX;Tr1>aW?#69<@5KN(lA9&o}o2>tm zIm{@{MLYe#NHs{P><6p~(AUXFOKl|M-q6xnMS8{1qW1~-6%VaTDp-*1nU)=LbQ3vS zT8Pnk&%39007+C>>)-$zk5q0#Ni9V9+o{`92XBDz6b?#RLXvZ#xBp^vYSf(6utw)h z6irM_EnX7)7!2b#4vvY(Mni%7xxtZmq&p>RMHxZxon{d4fTB*>WIqgC_V0ve zIYob+iE|g}27DPr7m+|-%Lt6>Qg#A6N=LmMS$JJ{c)d|0aQIKzu_S1OL!+kO6>9*@ z(xA^E@rsHh;H3{fiO5_}FMwBNBR0~&_b1LV{_IZta3Xc42jao1ZGSf1KmDtR2K&aB zH!tQ5$()*asHn#hiIC&_5P*1)BZ+kY_7LPCA?lQQCCJk8gL^tQEQhdaEM_Gh;N+t5 zX91qpSkdH6$uE7~S{tGGEC5{NN{0k|j6PWTJubD7;i8 z49K!!MEkg)IwxwY8n#$yDRPRV8z!67R+NIe-nOso2}Fq!rP)WO(YjVSEm%EHCxjj$ zQDYVeUyft_4&(}8*lO-E5eM)I62mVn*1rSo32NSG#n^iUCFLhcQ7;OS7NqG##-@12;eUKZN%=* zm?`2^0_zdkunEQza0v?oezMXNMopN@Zq0}^6Ql@{B$#T%C|B+$mK2a3eBm1|WyhMx z?~~=Z{7Y&Q^o-*!VHK)Ei4Er_3hb)k?oRje6YmFoN$+?|=Ic+HHj}W~A*GCPL!P+V zU1%~9lHofi}PyyM^NO@Gj`{uv*8)FVb z#|fYw>yvSz?Y2QfhouN@shAi9$u`K{9?TBWh7f(9g{i(tjz;F0=Lk-yg#FPPVepWL z$MMWQlG|QM!YVvznlDg-)RubbKNXf2vo?o6|16_q-&Bx$6m7ooA~>3T9POlp_!H+k z5@;@{i%})#A~{n~S28BeR}>iz=aV$dW+mJS#t;GH2gfRSN9Zs!jgoq+)EZk06sav3 zaHhDOehWKe$yE#Tpm4mEw2losiL#6friyoO3 zdO~ettCnn7ngdzmYRW*+==^}XT#vFK*_#{sW5jYHyHw?y8sg}O`Ft4l^RWNspej^R zMX)Y0VpDCVtqys982b@}6Y4qH_3=5IY>H=!n3d7b z02x}Vn$CCsj=gwT$kAQ!*~p@kT(DVN(KW~-RNW4^5TKlLAc)W*Sc=q(SOjewABbWk z*&Lb~3*&dn8%)LYR6Id5q`Vgc)L=O1b9!Bme6W0=WY?M_-CO zMd*MXHnuDQJDzDT776Z56)_6#Y6fzhnYix*7#cB1)yJm`)=B<-})~R82l!-5TpEt^93stp|tl1?58v;l2zV z-te0Nm0yQv3O~@Ee+Hd@+gBqz4*lf?ojvMpIjF6BcJ%)D&0nKBd(eBro(AB?BJZD9 z&wa5V$ugWmWtBt*U&vPh<6sFcN*56cMdXEHD3~7gcJQSNsMO1uwcFL1xBKbt;^Wdp zG4!4u#HEE7BmyRXF^c{P*F zl{${I^p%~`(eRf4RG)6L`SF734M#LAdefqFkr{gGG}Q&PC%=h|F9VFXymSSESFkXn zMQe}<3bu4g8>Cia1$$PdQYM=1ie98n^DICoR%s*eFZi=S<5Zga)W_A!j&Esmb zroTF(qOE({Jt!ZaEW0Xsg+xS#5r3Dm^rX*;J?_cc47sI%#N&tzQU+k&)z0H?blhh@ z2Zxw{!+yXMvnG?aTvSSUKB2b@0Dmh4k%rCV@$A3K?4W2UCqNlI7R9YsERw@HJPIrH z($IMg56#bQ3r*3yg)ykBaN!&q`e(@rbgNYfMV?>@F|3gm6~FM1tvt?`yODdj*}a8? zbx5PyWluNVd`xQV zOerCv(?RNqT*gXscw?Cja?)eT9OYO-vJnnLX@ zl)%Vx!b*EHtY{%XZ4pWmH~dPeMaB(|uuNzrPL!%`AzGNv;qgpRjB`G&6u~%4;G2zU z45oE-S3RKKwvOR1URT)Ip5C_3AoY`<2QXEMZJ_XSZa*Kw-j1+cMCwfr>A<{UbUKPp z)<_3-!ahsjUq%HmH^S;g5-FcjRUM8%NFW^C;9sP2l&Bgfk7;^kjJJwr17@AN3}lg& zJr|Qy=NTOBEPqz-dIV020$zJ_pek1?WLyB~`;Y(*#QD5k;!FNmvqkkBxFXEv9S|f( zdYS?pfY4Oq!j-?;?2^MOX78AE0#XYPO_-qfPtlPaGHB^mI-7)$6$c=PL6`O6u+}ny z$up`)ljnWkLpMT(mL2l!NYhQ}8hMeiau(CFb2OM5Nem9@x!yihy@tGk@x7E*_by!S zNK{svVr9uE=s}>8zY29ZdA#!`LOel$0mBbMLzW?2xpA zmx$4T5R+>FvjK}+tpa1<2mnby|M{Ng+ohFs-^R^_p1Qco`_ACm>e23ltXmM>sgmaE z(D-!b_xtV6oI#UVL(8UC_wL+Fe@XOPxalZx5>}dpcyVDa;2pC;YUhQx_D%dxj;3`v zNaq1HCUQq2A_@2pXUp%DQpD}~h#TW2wYAH6FsIK|5_j;ueGXl`fc)$W;hXMU`oI(O zSm4(Wo%Q#v_4`jPUnQ0K2~(!_K|W?2Rf7_}+^in%!6+-U+>>g*3*|YS3$7>fvHr_l zBiwzs_+Wxx6Yn~FUp9~eRX^B{3|2j`xY*9656kyi=)2kcAC^ie*)LU!AVU!|Rp|8J zFwZ7f;cWy;>b8B^D+lzvyzkV-*Ap%*zRgWiU!zA=62v<3oL7x+udW;ggC!o|@pTeO zqfb4fsbJm>I?u`w-$53v|A%&i!beG%VGhxRtkQa(_J5U5sgX-;O+# zeb_%rwm!L1AKviEi3NLkQR(%1eRcEO^yY5V4+_ONmJWQd1yB`;1IPj90HyE!*^G4T zFDXI&uh33c7ji6Kp4tT6Fc1Pp*jkOnOc+yztZlt3;F+Jm=42>vfW044!4aTPb*-aD z%M%zSt#?am(_P=}u^A6kNhnNm)$i(j-6E4&P4}UQ*Aq5bgQiqN*!*4 z)%h=U8}J*H9swHq1DRw!_3k-HZjz3t7C4sN9{0=dGP5gtPM2kdu?yz9opwDNh_WD<>tyF8UdszEQif+hbO_lszFv*!HLBb~7 z4C;eT!6WSfl+URt7!>PoLwhUG?UWV)_iq8LU9#xf=Z9k)2R+AwhqPl!Nz1Qcd5eS< zWzKr$i5{*1%2PG$Sx*w|mL+G2)=5m-F@msU{advJ2p%@mAw~atsiF%u6-Q9`1+97vJ%J<(@l}<%Gje0-Iwz9`at&z ztKCy_d%O9$IC%KDu=$e03z3`-Vvx*moJ3j8E$$7qoPT&SaRNCv1(y!RvEvVUg`^a` zCYZ*zv=vF4BIXcV zQm+3%Ts~6`a03Jg{`)y)ZHnN4+#GGJWIX~OKp?dt#rt&j65bzdSn8)gll+Yjhz7Bw zw1s#>H;F403>sdYFwd58!3@63B2muj2)Rp+_K6f$B`4`r_62iY0u#PgfYeKQu&)C# z7{DBgKW6rkMBePBFSXlY7F1Q7m$?5);{g5-=vp}z-m#USs_^(Nz_UaNfxPB>Fxanw8!Sp!Vt8; zKv!UM0M5hEV32%U5<$w#&=5K1seILul)h-PK7ig**0uucVYx*OYNsw#o6|V#4BTIs zApQf}R6jTbL8 zkZUEvN|WLUnGibai6L<-Vg;!88g#~}a3u9th6iS=%4AMuAPhRi&N46wZ}yIVsT##6 z*zs~H*CO4ibzux(12qpyiIl7hL4&fH1{bot^IY*Yl<-N)ujMZ_jSp5^VxrA5^*X8x8A>1MDiHQM> z724>7!Vp;RY5T9Xc=hpY_K*-B)0E@V09t6a9>#i`eeJE^w*vjVLvCO_zi)$-e22JF z4vf=)6@QL(Fm|FX`t~reUn2@U!FX5E5gN>+F?x0)Hge2+1)cd#4`(E;smYD5kMVfT zA{g;+!FxO)j01Wz)O|!^?X4Z+3DQ}|WNBl;xD|&Gua*w&7 zi^0xZamtY?H~;|YzYQj$wnlcw7Pe-p&KA~A|A-E&}$r*)H$p+5ZMDPrU@u|&26*aAtL45k6_|D!6OXz$7^!Iy7(eSV&9hjO>-M9ON6(tfT5O4Xvo5@mi_^gzu*M?p%x6Hj+$VXkkH z@dao%k$?OMXJbnjK<+Y%t%6vlQn4eS-m>ga^(9?2eQYwzJ_R~#Z-x4FvcUqHm>NQ7 zgx?V;UP@J{MY5*q$i_r`j%h1>kNz+k1FQN{i&RqL0cp%5i~OhxB)Cxo5?O8ilx&TL zutzW|lqo~H!Ki2uY==J>+C+w9P2%DyZ0QYQe=W}(TMGfmzB_`P00)HP8JrM23KtSdmmXQ2#nZLZ=0X2l)+^qn2 zEfRF7U_YxlslEYuRE~dAmpfWlI{aQ7NjLbOMd~CCkAJ#gD2Gi+KV`GOrdd8TAqce7 z8eHq`ffEbnrN16x$>sU;wGtCqEu(w`Pu?*ojl3aV=JZTiLLdx|CkzooY@lo(giIsl zjFz`oq#_@vCL)^=hG^WKM{S|JmlDwI$=6k)=?r1a5Jz8Sr-uuih^r|pB5pt7@08ja z5fz;#Ym=(n@b@-k0`bP|j?QV_FmEb5VYC?O`zHZ}WKz*WaDom_YPi^7p-0A8 zkW=fKx1WP8H-~p^4&dyh12i+xyFc$FT4-FQ-S+r1;1T;c#WH7p_aAH~r908O-RM$dI;z+Z5}6F?$ip zx`zMh9gu%u&3%k13Nx&#SmQ+zk3;MXgRgR^!}f}Aoqh4T1+e+3#j|6)#C>+Zxo~)8 zWAk)R;G2Lj>iw4-p>CSeLlfxV%rguC0QtWi&Hsxl*w#i-#rT1}x~3T{_lKZ;1+;9- zZ%Z+4MF53r4JByIG|w1hq7j~);^L+@Onv_Pve=A{jl-QL@L9 zn{?L|NH9YYe-{|t1XM7Np`K4bihwLs7`0yPUVHSEu9aztY7Bx|8b%UUv;O}UxwY$$F+U2^IO?7@7Dkt(?f>&84~ zg0AVhqu0%yaVAC9=_x^M#+wj)XI>ahHXNJM$kcG8=(o}$wUpxz6DNO3ISL!@EGXoK z8E9SUA!mw3g;tLx@3>bLsqpBgCn?N_W`0DtF*Cl`hKGH?*D9yVyv#;n79? zBpaOyLRIV0ASA3P=9M&dCgcv<0!jm}4jao1wCz^f&SCy`2n)qKydCvBz)%zK@&jV; zYD0i94W}1gXcOLK-zMF4uH}T zcH?QT@}ILAGh%flQ4w&*Q*~&6U`u8+tP-An&`|E%2;b7|FDFI{ z2Z7eWht~~4OtaG;v|)*!E^4?A03r$u6b6(CS4x;ixqYr0Qn^g~Si!)){e{k+G1HGJca z;-`=QJ!JHX9oOkGRhTKWIra!aZOBXN6%Laystujw6X^LtVX~8Y-z{+D%RUQj9ND>C z?@u>FwXMmXtKS`bi{9GX&9@!MHO-Rc(QH21%+ZlXA{0*QEd{j3o_}lXX7|?;i zNfAjMNIeoUjB9?2 zyd5^qwv(E$(AEi1+qUpn+Zq9unAWJK06CX>l;I+F{9pHm)bq|(3jcL+Cx2r<(Z7xR z%I0>C&dSaPMppl@a6Zbi^2mxPymh!6=Nh7w;S#8Gg(axa5WWHxP?3ae`ILeo7?>Lg za4T}mFc{C@kZvO}*yx!ASga#0(0+-YJ61MT`4*0+zTHl>aqGliIZ<&u#XaZKMbz4o@bE`G3yV{iu$r4@eO)dJJZ7^38Gu4|{ zLFJ5b-B?Z3ro88+JVaN0k4hXxN1q&XGyHhuI5>ycq?H>-pIgWBi7;Oezl@7i*;b+w z1?89^#>S}Pb7^WiW|WslrOK^&b<1lCRB0|71f+Y6Ghke1$31Fwf1z^V+|1TyWSLeP zr>ZM2(@;WWb=K8EIA2%F*{+oY9ygAUabnxB_h7hU8?UuBIFKnm(M-BJ9I7Xo8PbqIK zf+xgQl+hGU1)d0cq5plX6Tt8Yq^tV==)92pfZbqTTQBTxq1s;j{Hn{VzhyY(n0-q- z7$rybZ!ncTcTPI8fS$S6=3{h-#1^%%l~i=d?Uq~iCl0vVQeue%lo>X~xaEpb`$Seg zsJAssWc>uFppmQR-(nEu($@7%OOKN}rqz&y3gUZu`JuPCzTf`G@(^2o zar$hS^KJ+omwDlpF?xnX?>J&ihGW%JZ@U5+$V_A_!sr2uK(*ndqsY zpbq8Jj2bdw4ZEE5{ai;*2Xd1exW29lOW@yHgd$5lU zd!Xs;Yl`C0IoNN6SO09o>H|CSZaWd@5m>4HKz!JD34kNcmJn%?SerZW6yrrxM0QMN zN<0rItf$qYk$*OmUf)Vyx06q)QFisK&}oipH|*J!SU*0`?$*=Sl#wkND6%vaQ7#$; z(neRsZkYO%T!6wrj_8o8H%zUu_MM_puQnvCNsz!HJCSHmXlMfUqRGl*>n{I>1k}^w zFB~0p*(miWhN+3AKvs?szB7<_Ih2ychZb+ymzfrCov?xhnjB4X@L5{Vn;&Fs-$OLV zhJrU!x|naS6km!aYsVTFl94W9S&*o#a9+}{NGr~?EtllQnJynU<{4igOC(ElAjXU6 zEaq#}co>lgeOi*>!8`=zAJ)?@uW0Df)R)zgFF}rQUr-2RPAD(E5aSK>_h0SNU}6T6 z1y<{CgokkV^c)4jA|6g63qfpwD&_Ne4%TFAB)=!Ih(mKqKBhU&tS7c^E~}0dxB*gS z9w<@TnJ}@Tiu5EjOLZ4&vAUWs#$}_g?+}m5oynbiK5Ysa_qBwsVrb7>^)Z{4BITxp z{V@ybtIQQIm(6S?%%H@HnM$6%k_;%~je1rc$oTWaAK*?)hH$2Z#Y&ld@LY0T)1+|G zbvl_Ud;LteEDW`vU9I&De{?T*2UKz3%xM;@p_B3i-O&|a3EXIzt-r>fd-Eij>mwIhIhASLhvud1cuZ|Jc@o`6X__F596hP^VI|qUNV936 z-^&V>ZZO(s+kc8bIKrR2A(M2fQF}oc2#4_-_V2AmQ6?3HE{MK7saw=y1q*js_4}?qLVuQOD0N3LKK> z0BRt8!-Sj=2xsYUw^Baf=hvWo3!W2C@K}=Eun0>!u)`cg_|~Wj;gqwRvCe+i%%E)C zBIt4>1^`toz#@F*7whP%I#GC_CB-tgU&rH@@m|R=JRad-;ZOS_{4#`Bc(p;{YqG1o zSY8i;c~2+i^gAz{!_XZoc93cAH}fT4Z_nQTQrlB4H<4 z6*KFJa|6@vDT_Bn44>9l4=3#{Gy&UooYvD-hMUrV`qYxPk&>P?{Wg85fuCcT7X&r` zsK5)3MRj~sTH=!;?%a`@sr!o}4=`M&9jHd4P>v>>GYgh!rsevMW{t9iAeGw$b|+UM zw*?f*h*eX7BpL5~Mz%Z#TVpB*rH)A#DQv@VN(4vodhVt$ocVuFA8irJ%0 zj=w$g*JsW}YF1wvaYU*5G$}QUMV7NPX;6zcX^8(^ow2)wN?8)$d>gxkn5j(uI8`hi@?Q1YWo~>;hY-o9}Xj#d<;T z^_50ElLykqIIVfZQ7P>81lRm~2 zi_rd6^jBHBPXPW2_cF^MC83UVubFe+(`VE7ySHaJ0C9W$zF5Fcuq(`Zc>+SrKM3W? zSwhb;7s@ZG85e5zwM;&g$@U>;T;U>N=0$V95|9_@wGEZ**qAM$sAr zLQ5QrkPOb(-gCstcJOz!L6~TFE|po6*K!BoM#Y%M!D&mIhgpIqVr&P=bdNk`Ko3}- zLeJcIy1PBZ@ypNWeP_F@cNx_U-nI77OOC+&faOZTqC3yNP@RREldl<0^dNpR1R8MK zd!4xSQ+K9Co~9gVV9L*BJMfAU1-h!I^=7jd7bA3+EvFlcp62B%W8nD)bi%#zq&A)d zDJ}Vt&`qNx<#@jfNpWa4k%Z5gvb^4RK!9;B)E&N%Pl)Sp`O^jXsNT}P)1>s72e`T> zD1kr>Uxx?-ek8d9HiJ+c!3sfgGsmMDHPibo(K0ZO5N7+m!_g7w2b99o5Kj$AhpNI? z^AQeQhOiZ2F6>N^TLYawp#LX%oqPaeQu#|=x&P*TsQ>rY{qMOPJI8;tb+@{Xif!X@svtpP7&LkU6U!J1^yq6V&U@L+~>Yqle;9nn`Z*wJ~_@Y^XnIP#I}M%%&{f zb@~(c;ass(VJ_zvq#|*hiOZeSFYSeeQd86gH|A53QL2nq7=XDmK$|+mY24(q4t~XFGUiQevAl2&1>n; zc8qCT#9_WjEXHSCAb(jGf5j=&s9(yCsFOCoTZ-Y>DB{x`KXecaPHUuI!(?P$UdXHz z82byUyQMml^D(eWH1S+{3H$a>Mf7j< z4WM3h9Us3S4%Jv<2dm!u5-N%8yseL{JH%$fQ@oSqp*mzl-5ofjdM2(pply>K#&xfX zwyS!D%T>4|$yK^z$xXbAjx@W=j=VYWz}!{71Nvnwl@;|n__=CWgoOliSKR@OU*S%e zXKH7~*h6}4zHI_rIy3{B+TLqKYe9y1wWr+6$+dRdQ1rR^M)i(3`?zxNh?IxQ@ZJcr zGqb!=K;^P6n3>8q&`IdQ1J$Iuyv_eFokHvH4bGeRONP{kMrVg_seA?L*(iijdxu0J zKX&FWRPU(w*Xr)DQG182bVOubJX#w@29oL@EK|r2-H<|S1*0HZmD7&xm99V?u0egp zQ|et>wm-~$h*tYk!H_mtL`N*d2U=N?mT?QP-rkEwArLobm}W6hYT`A{#-AE<1j|yf zYp(=_TP-epzmP{$6I;wrqq};6Kg^P!jSmI&w{usdKrpK`?$wm1(9&QmzXEJjuCkFy z?PA=;nHyQI&a`T^=7Ky0oo~A9j9#UvV>NucHUkTNwz1GN)D5k}ZCj3Az;Hhjr~CM2 z{)p_;VX(woHd??(zHjK9KG&xla>`MoxiGGyr~kle!3T`+b_y9{OPK;0ThLxyki%T0 zGF1-%d<9|td^#;K^7z=$C91nwvZD4N>Scq6k{uElw=QKp9_BO2GRK;>i*DYDC*YLyT_Xx+2WPTNU*lK}%}X}u_(ZPnaczkm4n~REdH8F)jyUp8Pt z<2Z^JE7aIUxv-RUk}h%=YjP^noGr9)#+d{H6+qTbh;f|Q@d{^J%>3Qh<4{HDy?-?o ziXODO{=%+Cr{uO5!yTgSVRQv%g=1ii3=a515;PqsgicBs#Ifs4|6_SexU0+pD5e8Q~_}-7vE}i3XI29N{iR zbw6{dFFW%RVWr#FK$Er7UlBb5d=ndr}jE z(QjlKOQC)uzu2RZUHIukEz&IOzB1F|kgZxw9YX9#Ppd~BI<|1c-XmHart9I2R)w$+ z(<{~&+-8I(a{p3)EWj#^j}yK(dwC77)qtvLLa9wX`ndJ|`2rM!ehgS;ubo1a_yPT& zlQSi38gJ3xNqPNm`S)p2mH)6_5+>I6CXOVG|72>>vQPsI2qAjSnOdM;fb$_%!gcu+ z9SG>20UD#<2#JXz@TUX7?i7r}G1R-aI}EocUfuZe0GOdT*+zZwIMdT7%@rt&#bqVV z&7{lmx=Z(Tm?Ks>)Q42MSL10X0|^W=F|@(f#=jD8OKNI=eR|I@htA7cHByu25Tp0e z%1~55J8-NfdxehciE#l7gX_5r66hd$8i=2TMF%C#8Q2iU{7dq8|897$;O{|2iNDy8 z_kXt_|NKii6DMaAV`XPY7b9mEM-yQ?8+!vs1LyxVB{?daa({`UuGxgWIi)(FsHlK| zmKNr1D2Ie$7KS7hkAVBW1%)`5@fpjave75LHbGC zfJ4e5mheNiZu2pZFiC=riTOkac3=Uq8TzoHiI=WB^-71ZjN8n#_DtpRIu-mlnP&YY z%vV$)&G1O$BbA5doyf{Ion|hnZX98c0u2=XrN(h1!MXL!6B}%m@iFv3Jm{=1K}<@t zD%wl1GSbeO-i?KT5 z1hQ5pTMFYw5oPE;atTa>$?t>XVO?#^B~A4l71^Qr5Zh4K-h#+xTw=2{($N?WQ~RWX zKlSxA#YAR51UK5GqC175D@;^{mCN&lJO=~8@;ci*kMlk*u;M|? zh4~7FHgTZSeM??I6v+G`%G?RTt57PoQblD~Ri;N=7Zkq$C9-&5-Bb1yI2So*WucA) zMf{KH!FW-Jj(^nL?Z?FMMc@eVYf3WO1yGQt97n3f3~m;@)ZQ z5wN!x#vN=sqsP8`D&i1clU2m_0hCuh43b(|Z-oD!BRuE>+xz-2tBb_~03iN<_5FX0 z?-X@Nca>$-Z#z?uqzv%jJ`xfV1P0ha7zE^S z&)fIkUqHMBlR>`e?qhK`g?g#HzA*X^li%+wg85?g;e5)Z=6&2je=4Qw zjo)X}^gi!C4;_0Ovvub`@ z?z!-%9>4`Hp{7t-=)tE~5`%y%BUWTb; z?`F)C!itmF)3v#W9XV<>4uO@*9eo(7VagCx-TWB~^ku=gtc0O}G__vs$=2exlFj@x z2V)8Cc&xd%EDLIq8Tk2(b*y64IqkTLn@={?0mCJHR?@+h*U#O z)N-myI%=a!ggEl{Q`P2dJr`3<5o1#pYGfiTk^53cHcsIlWQ`uZG1bJb=l2Ha>Qb?T zEYR;(%Qn@$6H{1r=q|^SP<5y->x|H}V@k2K5v1+E^@Vh~uxj*!*;s7m27v$g{9Ot; zCq^pn!Y+}=$L6pH*3PD$1P9C6&_tuQnuNrmz(JXa{w7VuyFVRk>iU%!r-CudGqF}} zcy26YAjVdvMje*G1CUW7irU8HEV39Fg{XM zQF0@!#Zr2rQ(A;TmD>8&niBM9jC+X^S=J>=?r>I8)N6s-^Uxt|IGItSeyt3RZ)2`_ zvWvsSCZe$+0&b6(>#EIZ)=9Aj2(?M?Q5L zidh_lW%N+ZEt&4m_4a^}hOceda#Dn3OIln4_tlwnQG^JS@?rCz%wpTF^GsuP+0YgR zqk|jw%^~jBFoB!QwNSrEiyx-j+=!PuJHa;Nb86I+%qYTsy5B@c zbKQK+)FpM-U*e_3u*BoVa;E@3))_bNA6xJtDEbUC)zKJnt|`gOV?vsklOug_r&!nc z&0W0bvimrkT|k!sSMCG!5DmuR`9Wpd_uylTCTP^W6Lp8W-zul2RuuMVop)IbF(^%8KpPpf;I{ zvk&x_2>>it(;qXTlU8GAj%2FjI`gau4o?UhDK3S=c}v&X=p)Sa&BmjCYAKf|gUOa> z?Jsq)*Z==0`^MnPqIKKu*tTukwr%uIvSZsF z+h)hMZQEAIcG5{YdO7c&`(B+>_x!k3Yu2h-zxJAYu8(7k4{F@3z+3DELWz#*(-kcI z?q1Ny4ixHQ9oA{fAWF9da$lD6p@3{NHvFCHa-@(y?QOO8>>lYi4=jX8TF_b}ZxoLh zQ>vl6q&pwa!0o%BEnTYHC+Qh1&&^PrRd8!_n#5G1{K4V8UObI?{Y1{-7RfzicQh z2t|fVU6v{@NEIKt#772tqOCeN$e3zZOGYc5a`yoMUBZjP@%6l-?UxWVrAoha(rgMP zF%KQ_nUuL3StTH#tu0ldqV0$RS(#P-4+zULGsyW%c8~uXXTpkwHj9kMdLA(8t}~D; zelDG{fWbL11-ZNrlBJ!>*y$IXl~%~%=!v5VoipDdyyRcyUpef$_0R5O zCA#;w35qTIu~P^+yuar&*n*zK|G@tkk5}K=En7d-(ZkyQF6O>TCRAk=PGuMiixd7= z3@cQd*!OaeVvPoW%U{xu-rlU!sv9@-G5wKv13tT>L^P3cc7KDli(f}s^E_m*P-9M| zLl=A$(qf)Y z;g?t)mYC7@V6vZ=J`hZ5v8ST3M%KE5HO=bp#;lIE1#(FN@=E$`K(}FLh%C{YN%eMJ za&fxJ%?%jAM{Gv_zR#!wj~_%r2s)Qiep{};yR7@r2m0U-xbq|I%eyn%nixJqSl9uM zb|UWWaT$6qS0g$a8DpC0^C9QgK`|FVEiV0&_WiN-Smh`&U+`zp&WoNjn8>FA86Kl< z0)L@Ano6df_*^K<$O#nZ5na|*UD|$S06WMF`Pn<59;CIbqh<-O;*EL6Q0Kt*q5v>8 ztqQMYKC8whP%*xqcup8NF*9I)!YQMLCyOY3JSV0}kL`c?a4|mFAAjIBmFTZ8P|o%A zZaqx$2VE7FTo>56Itgqk&hYt>yCY4xhq0O=%3An+V4DaC$bDWHT@&W*Jl!5J3-HHC z-jc19ID>J_s~*o59Pi&p4RJ_3fQSg(5)?S*#f&FLjR*74Ai_x=x=H{mV#bqsFl;UD zk@p*tm9=HzFG}?e(2C_vS%{(hta3_OnJFN1V9RidJJoIuQFW&TEQ3NKF zwB7BJ?+3s*9hJ5H9P|wHj~EAHHCKHM4+nonJH5MTT;pnmaC)43M7H-#L%(pmKJhm0 z>0kCFmOg=OqZMY5r|wsNFk03OY2T;L3n22|01FvOu3i6tl>JqiPN#Jitt1O&M7>j5 z7xAPn=O3t%D*;wHW*BN8iUn7pE`7ja+-}$A5{7oX-mYy8a6Gdwd2Q~@ScU>Uizmv$ zYq%5RcXAP~saCz=Yq?hW4q7w$=+wZT)a ztkGH>EXNTL;8-B%QD2?p5+hf4?kTAfks*^=gH{|lM1!1vPpzWP?>DsMp{k8OQ1EtB z@hxDpq!fA}J3|i-8e~la+Bvuy6fxk!QF+U*xnbG*g_7rK_wI)Epkw1tH6>lIGAI|% zOpztZrX@>fIo!S)w|wO&OHJ0)0>^bR;E(1Vy~7hqXcq$3OY>?>_Ae_YLOl_Y2DiI} z%~k{d!a!VSP=!nH!u_>XpjPRFo49PNWZDxaj%q9_Xy!93&6`dws{H0~y z@?`Gv%S1UxaXo+m8^-Z*LWI&b-gt$i5PsBHIWeV^-EwN+w@+IK2FMoppAL&>W73qD zL-Q_{h$;MGG-YPVF7&13IU7xb_*twdteBLQrB?$g3j3xSLwJtwSuM|>|C%lZ75_p! z`68WoeWgqk|2bXyC%p8(YXV&w=bE_cNS|9K0MT|dC@3QfX!>Ay|Kdk~m@o{m=)G20~CyutxHqTMM zR=3Z$^Oc=%dVR3~XXEzo$2S>R28g8Loc*mK=@5;8KWIlxjK;#lnSjn<@w&tW2mN6c ztmrg^T^r^e)c*Q3yP&+^`qPL~;Z24kw~@1<;n_aHmWxzX3tDG^Dh~@*&eo zB{h~7(@5#sE6t5TdFg9|Z{s|Q9R+akk)F$oo1LN{eQF6@fQ`C&zSPVm>yYBT^v()g zXroz!_H_L0x-4svhNcG`#a64B?lTIE2%3_6)Ac2Krzp4~pFtH=otW5| zh1fh_IZhY1tUS%CVIMGc>u}+WMi#wq%kl!LJ9@hcGP=xsEme)CbQUoT%jCre)u-Gc z_n%<-V5^Q$(u37v*WkrnD(5z@LQbFIG{H~(1MtaVpX3=N0`%Hf3`wjVh4(glWp(9m zrm=S)4R8}htt^uj0{M;SIu;XBg%~nPIr@ZUtMCxb14#D`KbM-}`KzF#RCz6IVFPNx zoD=hEINsH$G`5QzSW|(m?iYF5cZw5^06;RG9v8P`KFGwVBg-;&@kj#c5co2sa5G;cwq$C6xj=?dNcFzsMUM}axv=^}03`wDb0H9Ga{_${pt`-;$nv**WucP;Q$4nM zy*y-2S9UIr7GZ^@NJ;*tvb4o_sYdKQLK20#(z{QlDlD%K1gT9bI>vJCcq#0K-_Mf% zrY6x=5}pfoywU%u1q#u|FDq7j89&mR&> zAmBk2TfS?=?g@!XJRK!q0v!)fRr!ZwXoRexM1PQm^)@?^+q)?;FH)E`t6^uQtw%GF1n4nDXE4 zt3G)h2S>@0*|jA3P!P9RN2&lOg)6;+M_Bjx=|tnhpbI0g0s|peW(hUFKi9v>d63Cy zAq<9TlNLt+8}z}KH1Fhla!HA-($L8Fi#z{nD{tJSo4ddI_Q+p-dxrmDD?OZn!j6sr z4@DPedzUX@rXvtw^Iuh_=y-iARAID`owY4*=Z1HtCAE%sTbTuPy~q=J@mdjCVl^2N zyUvV33zh`a2@{Rdo)K9_G`jEcAATQHr|Dw}7~w>)X4BkG)A!wz+ix!}@INqh1tOqI zlzI~s`%EW_Ta4UP1WgCk1*_3d=xLo z)q(cymgEJcy;_dS+CW}6zxG}=8>MDuD%wEx;T8ILlSn9U=8BVG$b$3v6aMq)y9^YF zTpwbs|I|11NyyTEv(on(-Vk751Q6wOf7_nFngWN(-S0mdShkp9vuAP{EkfqB z!;Y3i?63X0^|vJm*kNHMjIpD3i3xyVt0ZGK52)Ku%tUsXir4hV!xPDMAJWBy5(CJ; zGXn0>7vi~pV%GfL@}L=L@Fe(!YKa-?{w0JEa|`Rv*QfijVYqD||L|u}fqon0Ur$0d z_H+2u7x~kU@IST@#DGpfM+<pv-{@on(Ok3ONdx>g09#Qdb9?s==Zm%eq-3ltQo#o%QwQX4i(ub@2}E zCd<4`nVB}bBl2_)?Pugqk7I`8U)OX`zr3!z{%%qJ{Z2;_8WP(fym~2tEwDT6v0AmO z!I`z1Jx$sI{GIrm)F?m?mlGep!Dj$sWrppVKXWqXK#)F%=5%z>(lJb(LFPQlH`I~bN(-eddW3)RR#p2<2`OQz z1=(@k$Lb~>*g@y*F4?t!-=QpY6YHO|S8aWV>F;0Km9lckC7oR~MU&hh=}R$p@NQo< z#I>p-Yt4@rDoxa+tJBUq;^~h!ulpHY$BwtQ3+v)6{(h^h?W@3q7L|gm(iMpV6{Egu z8p!0}!eml;xxQ{L_U1qAN-(B_Zwu4N2}UA(Is$<|*ZhML5CdP|(|^L2*2eE1jSR?Y z=rm?2rI|$ovTH^#pz?+wpui|fLl75u2toJL@uI&S`YRY87CQpHNn4vRz3RacoGl1mF6XbU`%1BQ`+u zmiOAt$*?S&u#x-9^oL#7SS(qv7^)FnTwSF6qL0RvR9n+u=+xJsB%O$G;^HWvNzLVL z{KHgODoByS>#u1bUT-4eD;qP*VQ?;|1T+e)&d22on8WA?sn!D7a4X$q8snMDhV+zi z!NwX_0ugn8HSmAY=rsKq&B-BIW5-$Sp>|3+#%iQ=T@lA@u*g^6DOdbo!XCwHD zLoB}^OnM{iQ+a-$kKoRuP3EqR<#rEEK*8@vYps}4@bLDMlV1yy`Q(+(l{@~zKdApw zgd@@nU0Q2`F7&A02^7+SHV%1r?IJ>fwjbW+ifJXDwkB!stSAzHar+hBCBfD_k6C^U zPOPwYcEI`+mKv%v#8N^&QOUAmct%fXM!3vo%ba0i$5SwekMF%1#+V%C+HGFoFxz~4 zyQ4){LKKKNo&eTWMoU6(SgL)6=_X6o$=;n8p>VjI(0Nr2>n5JD%AhU}M~xU^;vYhY zBqO2H$cF_Z<~nHi@}i-ht4+U!34MD%4L=Sl31Rw4hsnGvhl_}i@hjzI?3HH`vdV<)6-PnpsbRo%DS^p^+o;Gifnyw<#fsJUOKE)Z&+rGKWghDmaMD z^Kwu@oppquA|KR?gWmnR(I>s@IvuKfCnj*6XcE)Jf!n0hVR_?{Q@D&?CGd$fR2r(*&lb4SS z+23$1U-{!W*_=44AxFq}WfvJ#lLDFia)zA4WTmOvxM>c5_g(h{f9-{WwLm_u$WnD! zg8>T&$vkzN$eVcIll_oaa87ySplW~|H+ z(#cV**nPt0Os%DMh!uuaBkU)wb%m_FmOB5Kx65sJlGo-_IE}y;sKO+PBpSOyJkc^! zWCA}j9;WLoEi~b&-L2JV=#-r>J<(nAZ*r{hY2a`C34`ibh_%F+Y1%;iETUm|BeZ;5 zn@E|pLj=Za&q-nIY0$U;y0*>MWOB}5`DC1wKPy@_Bh+ladu{_}LktQZNFM!k+=zc} z$@!C*&1#rOw8~?T_Vk^+;Gi9l9~1O z?Hs=GA+JK)VX@RfR};4^V?HecEX%iW{ys< zbJKg+F7BZKgK^K5MmBwIdELom0gEF{f88g^Kad|`O-*?{w9Em`As*^2My$fvWAoj)iw;=YxCq8DkT#YY zu859l`p3Lv1EK~Jk4@YWp8qUl=ON_$vi)|WmZ(HJzb<#?b%`&-)rzYnDoaRi| zk^`|<{%M0rE}b)(uyk6}oWTn?aapyC6dKF*)RC0$`gk1`9v?h0TaS1hxM^09BhNTT zod~oZl?hh$kx73T2;4|}1>(&$w3{{R%;a<{D$O(Lf zV~3WFG(My-;U}}?d2Uf zJE>&}eMC*AST?ZF72?gROQ&Zy|AZgZf*6@_|LI$g&5BxeK)vx$z%mG;@eD_|ubZm_ z%mdHb&HF1-!9BsL1;J>H+I#)WxibRVJ-XrSeDWtAI9H#O-A%^6_iN5?b-TN&7mOOd z>9+fz2Vv844IPbA`Y!?Y*;X*;tY*=wO_W^OVrysVIIMdoeVXWJs-9?(vl`jftxtGlE~z4 zZbZB$OrbBp#Y{7vkl0JNh@o%UCC;oP#>`7$s=^;a`}4@LKEP{Fd8P6Iz*By}?kqfU z7)O#ZQwh(nC>5U5XqTANcdpn&EUYCH?8X;*9 zf9;@(eWc6hZS4xZJN2c>m2CSNH#z=7qCjrjE}G3jxh1HCtn~A((c#>)noO$62>pA@ zKNbpYK=$1ZWlCj0ok^3TNcv7-1MDk)X6%n(vZ}>^_C?^dwHe?OH0{j6gcm;(wjrC` zg_GCfdQ8)Oe3OW#0?5mcU}_Z(Y*9%a8N$6FFoAs>-%AjsBIg^_xKPB}0F9+nrTtqw zkLEDFofyj;NBwjV=#bS#d3~gB9_)mV8IfBgRRBzrn}`=RBTdyH$~iUS!IVAqrYmvG zl0u+Fn=T)^2BVs8z$bl_cbXnkK5eRL1v_<~~Yi|zF}PoJNwJ8qd3HT!5- zZv5j`x5$D0RPQvjCd>VUP{k_so}H}E37)#vZaB0`Qo8(+>a?#-&ybQ&rWE_sBKR_k^@vHv}CiG9Jgqn@wf)bi913oRS zDi#eb=hSp`n#aUI1yb~vO4Yn9AV$9OBV z?#buCJP+UsorjLYOtq!~Oa;xRJj4*v_Wix6?b4VPaXRmznO;Myjd=$~%@Rk0We4pj zw+^zw8aDt7`lT)31bS=Xt`9qp#I;H!RWXF=RUxlB6*sJ_rM=X%*cerfg`2oUWV8|p z9jMFO&S2Rzp)@n|Oz7Y62b+0sAY!xVuHS%JI2|&XnM@}Fcp_lM)K?D|m>SMs^Fi#k zTfVPRPA`ouXx_(WeYK>2H`T1PIoC$|F4I@m(e4iTEBzSyH{*}!paZH8To?I*K--D^ zPV#RSf{{A^aIRl|wilmX-uB)yCc|~XB`hosd;=Tc#3`1ZLoynWrwjW&i{vsWnwEm3H**=IKArtvqAAxDd864#xA>o+FMRB?h_K`dk(RCt5D_2MD%dJ@m}7n=p!vzzn} z!%Rj`uNe-j5=gd~U9KvcG)%r?9;Fn$zqklJ0AnIZ$3H?{q-u`Rfq#@v^cFQ~2`PlS zKwHO+Swy9XJ;ICZ*dlsYKzcmkEFFqU3Kd^fZ7DGF?5)9Kp7lFugNYYbC;88R`$Au8 zm1IMm>9>tgL~f_WHj+4B9ME-6$HFM{?7)c) z-zS51c!!-`nc^d@D0H}EC#|R#n?vMg%a{!oaYZc~i@!FS{C`dN@0JqybKJPd4*C=mKLI_ANb~AZhGK?mU3*Oo6kE>>V(ZUQG8-w9aZsz=99vI_9wWM zT<$*I$PwtbN>({3pZrY&Yh8kgR8P(f z2N$|K@9GQ4`mc7kVk7i4|I6lnjcWKt_Ou=EtUv?IXFHeQMjn?1VV-WO;hG!C;uz~J)cY4%3?L+^FOph&# z^{b8RFAUbuM5R?e49#MKDF|X}3H_e!P7hVV#FO$itv!T0hEnjQm=i=~!J8efrM|3P zyc6ZKu#~w?QK?Ih-E&)sGzs@}wFmfxx|&HZGg7UY999gWDiBhP5pyC6g*QTREHt_b_|Y& z$x+QtF{&ssuQW9Ot|Wn_qC=;ON;r`m4olb@$}+8nNvGG^mVSMZ)z)@=fBp{IOCCdy z#l_@cz89v1{dhGJs9YnPt1Hr!IA}Fygk4Lu9|9A1=kE5=i`%R}1s*pIzD6s_sg9y?lPsItdZ?e< z?SKzGcK-G?Kym^3=eXE-DqqUSM1&!7Whj}f=r$(L&f9`Z-H(~ckZ79Sha5rFGoC{+ zx?kMeCVir1>oi0?D3nzBU@n!_--`FfA?&D|Iox%-q-r#sB&ijqg-+k#A2M_;EmNH8 z!rL?c#D4EEKUuCz?fCQWVk?#(v1H|6o8A6pDn$S1LnZHG?QCIh4Ri;Z{J+i^nd%p0 z7HA^>rOgH~1AaYrwllV~{x7##q@t{dDvb2e%&%aTI_Lv+T`jdGk``iN^pD5F{ znUd#{yR=i`egI>Mo-&jWjp-_B%=~mGXEyU1`gJFXQ0GMYIJ*M5W|0%xU6QS(KNEsK zE;W0UpDhyb>S2#ganTKsyCss9j1v$rBmHhI-Azs^iiKr*f`IL+p0RNjTOYywvD6M@ zU_H1ZoS8Nvts*1&QrRq;@*l=HplU;U?;oB!rDQjRc*<9SfBWgYe*PRDNZ{~ z(n{WKCt=SU&@%WCqm_gC!;QQYnNBP&HkZghGFY4$4P1v>CXfO^9f9iJ0qt;tl0uFJ zXTv?x=ne?jXx2GUO*u{TP&JEV4e6^w)^D=0g>9NUU7H*|d0TXLHDODgP?%AKlV@&> zVl1n${E`#pXU|J{#l~^cnNz}F*@F{RtVU4#JS$h0JH(S^jdY zDp-a{9fZeNJQ|XB-uRiCPpgLrk#J8S;W5MNT~uIu&+8lfUXE(dO(f&6JyQ44XkxqV zp@8Edk6xvGZ%(&&k)%EMj>bIWWw~f^S8l+!wSmQEAp4+o5^fqhS}spHPCTn0vBLxd zuh82m++PcWQ;|<6&b*nUUvWIf_Fxr^5zraag(H@yV{*Qp3WA#~_ixmz!V9T3%UFhy z)3TKCuVJo*D^i}~tuDWYa*4bwl@M-frb!^?X-_!@O0vS=@nx{;)6UqLlXOUWJGmT%0vYXS_4Hkz}90Q*p^tLAlxr9Ju9-9&#Tk7Rei7OjA9D zu3o0PMnV!NwWe~{J`5k4_4ga$_%jsY#535_dtf8!Lg+hmvBlFW0s}hypG<5LEoyqgk;p) zAjnL8T2K5r_fZ%UIZ!2|yTPXMf{^l>M!L|0C}#wM(7gRPZj%XeJy4^a>P{dse96P{ zHZ+B04QuJ2;XQ}ODRjn~-s`l$AqRPUj39?*B}BnPn=e3Y`e4=NsmU5)7w*gXa{SMZSHaHK$lA`>>Pxrq{~BHi zptG^LsI|pc(DUDHo#cPAb#|UtzSufo;49I;gwga$VY`HIMmTU#EDA!McE9r_rR^Em z6R-{h#$G@A@_nCV4nq<@K~3oDP>;}DX975`@?_$cFsx%_X5M-Z86?9Nto^;9yG~%z z(E;jheY=o#i;6=st)>a;lu@t00TwA5ys5|^2koxwRAWdiv#$g-*1?k65WBvlCsUey zN-r=&(R-KR2h8%EgzN}2ZgN?pU|IUHef--7i0fT+Zo_~32L4q;5d7b7!2jQoe?}eJ z(B5drE}uPX@uuv&AjC-S-}^xNr9jA#zCe-^SX#6G@o-RjXFxYHc!Nutjt0C_Af+qA zNZrDqMKCTUvBE*I3$A4+Mz@G3m+Sl>_XUqx89rreo~sit{P06px;B0-3G&PB!jsRv z&$aKh*R{_?>W=T5#W&egQ+%)6ITV7cg}QHq3%8ojR`~B+7`^Y$xY|B?BcRVgA&TQ8 zCC+#wCEy>z@Hz3>GnQDh%*cfI`^4#=8j{oklod1JH*U{f{vKMA&>zAYpHvkyutTW* zzjMBNj>h~7<2R*n+}H$(0HqO{tob^SSSxoCrC$&G)bNVuY1DA#CeI)Wuosx%7dhZZ zh9=Knlxq1A*5?GcnTXk$ms?pKR?pylIn1c0lL|%9teJ=sh~npo8s!4ZsPYt3 zV#VECy!zr)&0dvqODO#bM{4aI0_&L3k73%ccu4 zk8I?0tQN3Wmb4aYR?rjWBawOyk+~d2dlUephGaI~hAzlSXUPYl0Jrf>)jD${O*Wgc zmX@-JTri(Bw7#%ffzx6!wnXL^>m{zDQk?A{Hr}V!2_u%s(P@BSE3RhU!pjg+=7yPO z6={Fg1&jDOZh5i9t;b8(jItUW5eE**d^EGk2V$onR=Ey=eo@{D;5zQ!ZDaZv6J8yP z6U@tmzm=n)c#!T?LC|d4FJSe?RDsCsUQgIyV5pqZ1;qA-1QoaaA_pt)l=&tyQ=Ps! zhW1#iM^GMJCesiwuBl4QXOLq-nbQQ#i`t7m{qj<3ZBDGC00*`jIBDW-+#Jc|vQuk< zn+|Q~njT=mG(QZe9v46^pvAvr->7oSsPC&!c@)dOpCWyFVp*C~c4%ZI#Eu3Z)O+u+ zZb%uTjv!aTRvlo3K58X(@2qQH4EH!3MZsS6gWsp@o!j{}UTl11D*N!uiTs9VZl{<2 zH$d=1O9PVqZM?VUwm4)5>sjzkW55H{Za2Wc#X;Hl2`OGAO|RDj;zeqybTrp!9&R&A zaC{)Tn-JoqEQslHexi=qihR!zwD^csm1@b1f|a;iuFRRsBu?RbARNt-d4Mo#*<`M? zn(eGfhLIAuJi9rLzOhmqT43=4T>nFzT>=#MLas~(aMs#r-APL_L-ro7JpTnkUl#Um zKDN6YLVceokH&aC&)Se`9|?Y~EY9nv=zZux_RM!f4!OL`USSQH0-Qigi#&hCyqVjGC2u)?ZE(^-UDxk$1QB{uB(gwT9wS^~!e zNvZ*Dkx|zo)h@YQhDK`gMXyP|7wcg-7cOY>?f4i9R-dxQt{8gng18-O<|PGuh%GX{ z3_JpGXhx%O?!#aNF1LPu{;Y9|J>o>s(Wp=qjT&+ooJQGvmlk&bq68TeV#O6^Nogfw;_B(%ykDF*GMYF>KSncQ)Zwl`+xW z2{RDp%X?_sRtWoG0ZgsmH|TBC_dbSU#swUli|x^C;>M?HH<10hl+~&$oyy~?@}w&T zAhO<9?VAatFuu=$?Q>1m>}uhFT1F&Car?I{MB(r0mjv!-F4(La)r?A^b_B=8AE6`o z%i^p_>xs5kURkeio!CF;!Zv+0kGP$QBaG)vXHd2{vSOo_8PY5uQ zDmy!b0&s|JB^B3CUu5sa`(FusM7Q)YN*Bk&;1^D<31xp5o_1Za4mq^!GE8#4`oGAP z6Qtj6$TJ(CmcqMs9`eHvYO@C$avY{!*C)R4&s!42C&W7!&ygU$RB_q-DMm1?w=>Sa~H%W|HY2K28OfXL+7es?r)5h~y4|kCbp*#Wg!%I4df{l54 z1IEJH=<_!@r2h0-;hQsBHpYxLW0a% zVG6(${b7DqxJeDbiXDOj<%{Nu4QW^g={N>c?=@dO+7 z>pY28O!hHOjF%{}K>4&x0-El|gj!4Qr1|yqUJ7xREg_NJ(T2Yrg}w)--GEWJ3WU_( zNpmMbzH`eRafecuDCPYQs+lv~t>KF?3$P5{0kW`%T3lY;Wx(`sgylXJS#Zle6_(%R z^uvLdFth530J8i2h1EhHbFU@<%U8JsbYlRH88}<8M?4YkNodFbf0z_=TZDU8#9VS~ zcW0+GLtmRYRjt`m)XuX%3hd?wN(%yE>-N+YNOUfR@Mkl*YNhmeLdxzUOgC_EeL@J4 zS2qj2LpMlGL!uS!x*;i#BR-r6M$!nfuX(?a+8oV)Fk?iq%(Ki$v6Duz+20aldcRQX zNkY8_R(g}>8MYD8UM(pai?@m`({d};L+mbSB@diQjKEp_og=?r_q|B<*s`d^R6VHm zU$aAml+Xeg*BJ-HWLFJpjN#PsI!Hhy1T;0xl`;|Jb_B}(Ir6J%9sfqMD{~KCrv$JbWcp+pz|4>-&R-m&0 zPe<~56Mxt=@eTeVC&s721#cvuwLdl0MDR$c^W!u84*T5B+9crkDt_-49qqgfKL-AF zj>@#^>E`gi7+8myJ98PGe=d{ER);0wYul@OkeP3dC0#-z!8L8D^PwlK!qM?)>yB^OkLwOC2-Ie*Z4@*P%ejAs%^G2p_T}Ncq0NZkw1Dsx zy}#8hAMz+4!ETQU%aF?3Dx9ZR8(dGW^({&w%1%Jb?HJ4TvLN9X0zM$g=O?NuC@O*T z%Py>fu%4i2jJc*s9+xH$_)Rlbl6-i$$jXRJk_32s9Lp&R$?Lv8hY>wA)i%2^Po5!VD zjvb0$q>WoE3RB(ui+dZAyx!F9b8fgU&jNCsFIOe{-J#~O*W70hKG`db^9DQEMmw`p z-3`u>*L>nj&}gc()Ya1kwl3`WYMirGXRb1(yrr63irVZlK9*72d4E(Sx>Ao{M>Pb6 zLzniQ#opoYlOrT)nKFIQ`>UjSXEc6=8jx{YP8-o)7qyZIM7iZ5UdMf&^%>SOvg#2M z_T@P8nIQkDJhq1l#pVoeLkP(+*wyg}+69q;AAsQxG#D{GX3M<*&^Z23cTMY!cBRlQ0hK6$i5{_OXLf9&Q%XHO{+p-gt717MIpRNkR{MD03z z_Ll6;XoL2sIn?x5oH=X`C$*^qd0JSr5M9oYm!G%rPA3-Ou6nbn`eE3^pMG~$uHY>7 zf9XM(Kl^Pkx;tMRwUhNQdg70G6c^s%Ih`+5`&K$@c4W&ebSy zndC+?cKr5&U~2IYL%%pUYq?2K=(EsSE(qT`($iq8{gJz&b-KYEy&a6yh1=u|iF2ZG z^p~JI_|qJ46_QBo#HD>`^7B&kVd*Ew(@A``)11Js6Ic z3^)uhXWU>#(my}{O;fB);-!H0Yov9@*I;V4|8?s4U-@FT=H*W`O>|$=hB30t-L9Y~ zjvu)lumDsk3t5t8XlSte`Fd(7b?3A$X$ou8g|#&#%P-oyjqIGIdIY*n8GZ9S4%M1a z-6MYEU&!Y^JKvkgpMiooysQ(p9Jr%*fT!)Yr>x`7O{W>|r-o0TH)=oAw*m;{sEMBa zJ3En&?6{wb6FoJdwcsSF!FCf($5yu>-KhO;xA_sNB3c2d z>RB)VY=g2P3-20;oso*Wdq^5zs*x47H>#i|_hKBulzl}Jt#DRH*J6yC{mO_Ojs0k( z<^8CL9QA!YD0s(nHeZIhpLu&zNZb7{NZZ4V>YW99`rtY(KYum|J*7+5d8 zRhT4O@CgX=Q9o`P6>Lg|sHEh$=Vo^r(s_h*G`ef-xsk^-V6hR3zf~Z^-5uZD)uh%u zoAZdAHq2sUq+;3-f!Q!~VjThNWn3ABErND?VqI`RmH38DH_`53`wONb_DImZISC-r zx!nabopvGS3W@Uwr#$v_xHgP?pqcw*5aO@O@*J7AoE6n|cB=_diKQ2VlG4)w-jP~U zddlgA3KG1VTWTS7Glip&a4l(aE_I}*oa_ToA{NF=NH7EK3V`K#=VzOFw_ym!GeGfZ zm(lWpFRiLIZ|B0gs}OZa^z=n)T;5h73b=AFC&%LEQ{0bjeZALZXm%+ zADBy+2Tk^zQ{^7-=d#FXavwR-ic_V(5|?Hr9*<5O7rs`gf|ERoNc5AgS@Fu0-onY} zh^f7tOe00fMh(GAY!RA=o=3+Kmc+*1IPw_gp$v+TcV@-HW7#y!=zDS{_Gq#fR^iK# zZ%IsWRGei4^AITj_b6zZq_Q4mY#diwUKl~EWTbDWC9Qe>CM~sYPnpqN%GVQTi^Vq) za#TzKe!1&-Efr1#Bgb|KXpz=>XZSG@otM>nDZhb+N3Hwgv^A3#k22$)M7J>d>Dj?h z4a$)XQ7VJq?R;DN?tYnL%tVdjLeKTk-c4%r@^GI;Q@sUSTCjxGgSjtwuPn+Yj6s!R z`mtqyhbDQx7Jh@B&kr9bW4022*`1pQpR;m7Fb7v!9dA#cF4{?BF#tX zuHrMR(+-~#`9j0!ROAnI>nzO=ll^^n*~dU?-kL?j*_vGlE&k?|V|R2;_BVB%drtVA z-D_*#JKIx19uhc>_F@*qL{2a5@QpqOnq5x4sQp8aKwgzGGVnQpHE&?$oLWDgGcH8U zye-s>CBT$&N`{o$d0dOjDHL1KMu6T?m|3$b?>Bl17eNWPwQ7h>9wm?6Qkng8^J8tT zN_f4UciU3s+NB4{Zh%a;pt1J6ZWaHK+3`Hbq@>%Q3fISKa5WQ>y;38x(#}VfoKa{{K07mq9nq-E+H#z+teOV2m_OR7^fi+F6yu-XimQAbT=wd3cuyA%E;EJToJG#yTrv% z%o$UEwj@?26%+P!9-d$tdK-KG;J}u~VzV-Tj8iAbPAoU0hEwC)G)O%~t8t`YJzwj7 z;K%6vH*nr9589uVm{(atf%_y^`~i|LThld9%KkDjb0=(zCmGaKb4{wHF&qlSNc!km zBI*x3mI(5sY{BEDEWy9YRWx%0KXFUZnSzKyUgX&8kVw6K2nJ}P?u0Fr@6lWn^M?}s z6r8_b$?4>_vRa7tW=qr3Y^E;?hVf@v2`q^=lAh=`rV5-63tUOP8{?7710P_LA{qSE zs>byj^=}EJiWq(QyR{P9+S5Eb$(#^9eU1hSQ@kEc5H`h%SjMC;<>|hNu5^vmi{r^- zx~(qNgbE@<4G$|$T9cR`IDCdgB_AnS0uQg0i@UUKK|j>Fxz#o6h!8txT{dOGeA9bt z(7rL;e&=7|m-szW*Aw)ZoG8BBqci`P3xdz|FozG(V(RBsS{#(Nj>3@bk8HeZKzu+$ z^}IhWlr&_Hv6jBD{T+?r;Y!_sl3M!k{Pww)t2wOM(}Rs|XUO4qHkoxyh6092bV$bE z2h%@{nIhF884LD!G+0qq==3v(+STem5vFo1S;G%SArMI=5q~-`UIN zo$2+;#Ji3=W>MY_?)#V+^m32iDRIYC{L(UpC%idlQ5GCz)2&sshyLtGf6Ju(6kg^} z?c%cp#k~bXxWQ9!az!%Sv(9J`jhf8m!~R@!jXRe1Uh8_qyhR^JP>Q{Ors zo%c*|CFW@sBqahv+R*#kd#{4+9*H%4WK(9##6YPa6H!rmCDo|rUW(7v z&6H(`8Vm=3bLY3*{vZ@*Mz5SCf~G=|UTJ!co0ij!!MbUE#N9}5N-&^$FKtAgmhNU# z=yOEh?Y}-Rg)vvL`i4xyu*I?{3;%v~SmP`?GBoppcBCkaUB7Qg5@GEIf7Gazu)5-X=ZG+)Ev8#kxCCl`Q+xr2dBcGXDL(o)Y%%uHv#}~Y8?f%!q z(M-?Jcl=&`K6#SpQ0a#s%)&mRE6&j?qBD7x-~ z;fS@_V#vHW1hlQ@9G1K(1)7ol0vN9P{t241ipw^6si~Fg%IaMCc;1chh|G*Dp`Ye7#&qEDW|Y{m~eaf{mD{IUe-~mW>Xu>U#gWgTKY|l{gJAi_Pe;) z0e)ox3osWsVewFRV&)J$^es{tLzK>7Kpp&Nu!gm5As>hLbO5_g!Wo->to%krn**JW zzRfEqr(-QM2cAJ6g}g3zW{mxso|hByY2I+856^Gi*BL5h_zny2uvoT>x(}@Z)a4xW zXSV2>o3?=4&nCAAer_M}ZD%p@Ss2SCZBc9G<5zPB7#n0(GZx)uoc}}FJ4Q*icG<#J ziAvi>rES}`ZQIUD+qP}nwr!)*&Pv_rK7IT4Ip5oTzZ)ZBM2r{_KlZctSo2wP&pFrC zvF=Sf2{a4P&FF_L?Nz8*tH%QABnchSi;#5OxL+eB9 z{h$rdi}13jX!cpQ>?5z}WzuA3CmasD7UFx&Vtc7O&q!}VG_iIwu9Q^wSqq;D*K*+5 z0UHsWL>c*K?y?JG&opV{mEt-1k7l$i)UTY}idHnzgkz2lbcE+{zb8 zqJ0SOQQI$gt#eGK_-DKC&-7vBmHL<=N>?XFo_^}j4Bk5ZpT;_~iow;xFk=c3otDxG zNd=1+@Jo-4X62fpuc)|7CwmL%O_}b)M_d}IrhB|@B&DFz*`b_h7EgcDNIbaUW{%p< z?=~ThjpuVxlw4xc;k_m95lJ+y&fF+YU$ohUBgqZ)!->g8Cltax`Snl2 z@(aZCU=e~ai`C4_Bq&M&&#R3)FT_k)LaAnoDO1Gj7i4zd0{6wHYr)+nR6D9~J(QrL z1G}BbUb>LcL4Cg!ZW58PAp-Ek`xX@JxS(mo`WO{zF@M;K^))Ei5khY#`k&n3e{%)d zJ)D4dlZ4E6EkONebTc?!<3cH*!XX20QT{hF!v7Qm{nb=OMg0{XxU;x!hVt+Ymyh+w zO0_ew(ri)()8MCEdc4T36%E&~5JV(+?bCig{cXeUG*@3O+i$4o3=bFvK$elo<<<~m zP6g7#!at3wTc@P$8#k@1lH2#+E+whI3QWKRI@`sTRs~k52YO$#crePAg^R#{&ipa5 zJ}zQ|>OXwD4Izl+9-@>tU2bSH ze<(Eu7K@_${?|MNIS^bG;ZC-?t2-1rSiAb#ZG9{Ckb&Go6P_@LY$)Q_kla()l^ z#6&y~hzBfZ;g{nVm@mAKa&jQtAYD(Q!lo;d2Ko$ip3`f#K5tnK_pgsnuzGM~WXM#a z@Vye?6$F(*wbSs{;*x01)?=2zMsxAZQ7x@HXz7Y6!&L=IlHUB;1a4-j!H$EmPzeVT-5dIg_Kv#@ddsj_1U;x)dYwn&aU2jaUQFaH z`^i5FO?}-RiC8a_iNjQ`LS8R?KPa~8gTun0?FV?8Ig5FWMsvn=<_c-6niqxp>^h|1 z&&^x5z^2OixE(13V61%zkdPkEZR?;^s&C!;EXK`j!K*`(TAh+QDP+pmm z-zj2?1U``&gT9!3pWCEVvpE6nCLQ-m&G!y&>?J`^DBSUvP|vRzX6gz;8wwpa8=~JZ z#GPGGCT}x+!3Ar@Px5EYbM$ z51k~e6$dgj0H8SlqeXxI>(iLqqz)?9+Te?MV{=2^C$u6)WfJG&k8QlAvo@&8($if!&zUvH9MA0;?azPBwP2C(^ZtJ zU=l$XOG#TNDoLJPbLXv8|E9)WS2r92`e`Qk6{T)uOw19_n^A6(vHVH#Oti{Hj$G?R zj*}RpvIF}4egK<{WC>L>>XL{&9ud$na=qPLZWO6m9CS7+{a46I#Z_`= z9%hpeS{EiKW&UEznx#&?Pkn1hHVIZ4ZVj1N& zJ0hdb7%ZSh!zW2OFJo*Y;V$#J`oI^b&P zMVLUe~zoYqMrfvQdAYSy8mqC3!p15*7rv zM{>@#33__Di(_=y&C3KPR$S0Wr3+znxiNi{Z-J8Cl<^`wNI~cQ{)yQT^LQM>e8h(l zb6vMu%9=7`FbzMMwQw2uvNUgV4EG z!a5}5BiT?KDO^5<{Xt3Fz31I;cXfH{4p3^O#PT3@Le->op^1i0%@wVtiH;Eu;131r zh1@ni8DyeCZDoQWtr)M=)o!yWAUmza)pCP;sDuu!;qSk~YAp#PQT`b6tzh2j6&8D zN&;jm@FeGWlThJy+6XlB;?322_>ah#2rwEHYd|p}1BfF3o5&bIF>x_BH2zDN^A|7x z>WM0nD!h+Py*`1}cRvC1vLEu`5V75A=5ysB`~?WLg^lv-?L;X?=BrT|F#B+)*Ji!~ zp0FU)fZ^L8t9XZJlhV-mlF~h!oUT`sjEpnW7gswqU++-8C2qLGqNz}Z=wq<)$L?)a zhWsOh5w88igts5#Zh(DARy%v6*xQo)>OzO%!` zwMKbe98bVkaB8(#OLi61BV5Ov9Zdhla(!6D=ek~hq~Po+*pA^?Ae6q{n7}A$S!{XR zmbciMuZ+-o8jz!&bQPVHa8E3`j!Rr-FXVTGnqba-6ss%>%l_C^g5Q;>UF~6836eh- zrqaeGx;>$M9q8#Py#89Ko)=zHa7OJoB9$oB5v%s7H9_-Il&)`?r0u5ZAxzq1WJ8H4 z%Z@}}tci~pG95?|8?=>4<(X`#>NI0~UU!C9ZSpk7^aU@v2klHNaKTCGK+&Yl3w z{L{g=tzLl|p{eguf`9kU*Wr~RhPE7QG~Qo#Y>c=zHkJ(J;X5ht9DMNCiJ2v0K3I!YZ$cw9z;3WMi2grzTzZ5g9oa;y&BK10Q2UCBgu$-92)K`axl+Cspo-&16Qke0t%fz8)>;dm@Mf$>}9&)X&5`oWL-u)qR~)zlTl<* zBsSPSKbb>i`;J4KQ1E@0%YqNHg(xiY=S}UB>g`wRbhRNlg}=Z#C7+>X@+TmG+j5^xo=S~XxQNf!R~4nr{T!TmSz zVUp)O9KR<8)ZA6fG}qYTh};n+^rK~vYY{EK1}1TZUx(yUto=kvYWT<-f;Z13ZW#(b z#owaZ`GMtPBXSy^n(r%P8iHj{ONeqaefc}aor1IA5XOg_)Lh`&pAP4E9)KHHX6eUV zX%S$51z~dh&X6DQ6cvJo=dugHU6$t9$tOIqLm4wPnq(SF%}eJ|C7;@b?8XnQprGbA zh0)!w5OMf|Cn>0Aq-J)amcGpExMYRCc?I<_Y5FtNMsSIu{WvfFg@OhNq` z37xXMoHB6({&jLc-NOIT#QS%vj4}kVebM*+$z4kWQnyM4ekuD4&98r?b!d6Mx-J8D zJrV$~+kd0t{#(KN+lKc4xb=8ke&D+N&=L7D{ji95k~z89i74`e7AEIC-|1t}fABC; z=_5Wef3gwr!$1E${{8SB`y=)n*@OmCM1Ab;Vt)PPp;D;&GG9Od6`#_&(DM1?%m&%$P^06MFQXT zu4P7}=HunCWku8*tX>0iY9{LIlq>w7MIW0*_z(V;)O=>ZM!| z0ItygdvfZpgH!tVHvlJPW2En3q-bac@Y4K+T}1#TKY*P2@&>_FFCSA+w@9=n3@MOEK-CPdA8>xBePY(^4{HUkfDH z+E-71E>`E7o*-456uLF~nXLdAZKT6HHR8zCG1)-Ln_QcXn8_d7ws(8F)7(oscLllB_j~` zQX@z@gUI&cX1+A|0zrASsFDM(EmBfN(mte7Wq#ID2~0Qd)Mwurv$bMED_$2O?QZa3 zgj)DMF$By6qWU3`Q>9Q`idqmsU2qC9WM$WMe;{$4pDKum1-VWdkl#z9NqREYy;`U_ zJ)Vr!gq^BkF^Z!TYjYV&xCdT912OjSK|Wbs7sd%zby+<*g)f(rI$@>t-5=!T!<*SW^e{hSq86{Uy_|9WWAl z_1Q_UySuyeZ0EDa9#o#wrahh+w=I^k6BvIsc)ap;@NNcSGh;n?x?6}YvKQ{B&{X5(p&TdnKx z`^JUTmENs)k>E~S*NtTdj5Tg?*RxqJN8vABfyJgTLhAa0TscAJZK4{94sfn)4c8Tn zmG#v%GR83U4-{V5Pxe3#A5MN4$qJ$<|KZ@hjZ)7P66e$VM7Mj!Onh>0(9FSaQT~8j z5rYF)IoY0GQ02}L@Q6P`5HJx$uv29g28DrSmt`$-zF^kn91c)X#7uEC=46#a5aq@k zNuz!qatf^ZH-b*jvTDd2SaXEUrYcCry5`Q#-a%;a@cn*_Zr(8aBIDO!gE(eB=ascAd5Sucu1Jhk%*SDsoZ@l~J&9$5FJriIbK#y|n z^G4jWiGG1RO2h)(5iGt3$Gv?R3DvPKF%D6 zk;BA!5&>}|`Zow?pqkBXBK*$%c>JuUotC?sw|e|%9oZ7wyzY&aJSR$b!8;i`T)9jZ zoxRsSN46$(peCwMo0;lS(I%S9?yD=veXny-k1En*yU~qE-#uk=D`I55fBAJLn9AtP zCt-uIn2HhnFnB;!ZlIUVt?fBghV@t(>-;i5$U+>kk;CQCy{3id`XvRy2UfTqa+l>! z@>{fqo@%OE8$4^j5Mpq&d;eXIiCiZF(g!+G<(FwoU}CxLQlMsCv;^8bEI5?4>-->& zEibixqc-BgJFGK2$7|kjUfJ5(Z-W^FNh{9e>|E{};eavId;~91)*KUXKDa-t@#)-z zfN?^qZHG_>rVoKH-U+=UtbRshvFpZud3Z~Bb8}KQ^4vv6B7}D&n$#9q8ZA87K>5o{ z*2so1>u$ijdC0H0hRZ}Ac|4ayKUQHW-OBI(fo-q$?1W8#E1(dd{Gj{4Uj<6e0MFvz zfz8@+K?L4snKrIUD>Q-496S~rT&Wq9Bxv4$p>dF?Y6F>!rT8I=BHC_{O+h5t{T1qi zHS0TL5u-J4A2e^czU(qvHoweP8Fx4L))n{Lg`+2CkNevl?KjF7syvC9m0NVjEbs=`@&KWn9qw>B#=*rG0Xt?rCWo?9Dd5f*Ad@F^Uw%a>rCv zvrjeiq0aQJQgHr~SoaIBs4~Mkf>K_NfJ%5TP@)>-XgFI7ADfpdJhpmWdgOrH1z`>=mL8X-i-#72T$s zQ@bA2xY@sA_1`si!BZg0a`}ND5w%bYCSgZiRXGG1+7KQmmhx^bxu9M#1f{ka;CXgS z2sI5dCVTiUT(bx1@IY<}5u)$39)N0pAz6vLu#1jO^$_&w;@i$T4j#plImKx)M)rr% z48P2|1rJh!5A2!-8NxD93Fy}n#WVd#LY7j16eWj=QaTg^NxSEMplir9XTzu+J3y9U zoF|Ib$1sH-QP+{Ky%zjD^A46>Lo(H*YZvSCA1C?1MDi8rV&(n>+P?;3jQsM05I_@! zHsN*WvyYDWVQd#zOef38Ca8XB&XQaFsQ0!AIU2MGNzlZTH_1$r2nV4J2~qaye+$O| zh~Xw_$J~cApoSeu|Fl)x<)Q26Y3*l0eflmuF!>1dhnUnJ_GAt3ge3kJ?PVvV5pR!e z!#sQH1~1GovlV}UvCQ@FO#NgcjCvUW2qpk!fc5{W1pEyJk`$#S0Vv@87Ye*p_^6iQ zMh+#A`Gfn*J?Nou*&M8k7!aCM{Hb{WfB@VLZP>n5LcpTPLp>ws{q{zh{?q0CD+(XP z#1Dp1tl78~dPDpmb(FLP`kH^^V+a~9-DFw?#ZXjbAkMhIv=IMHM3cg0s48P92`wFs z>aDc|c~St0ZXM`xRC2=fyB!TWdezK#x*XMMr>HvUuIAxwB1{6$B=ludV#17#M%Cjj zQrT0Z8wWl1wt-iLYKhIS5*k@DL>dJ8;j#5=*dO7wQ>mSbnKc3s0D3_le-bqzNmA3o zVEvMV;0u5N*l$z400h9)kWEzUKn5THYH&1h|M?DMD06IzHC%3GCOqW$#e}%f} zlB9V^;L)IYqdjTD+ab4@gh6zR3|L;q3ImL^^Hd9Nx4KoB^~yO?BbW7J!%!~fy(`vsPrk~4~ZoW~Ji2FcpD4v6R6fU73bW!Sa+|vE~*-zpRhFt+PHt@LL zz5$;9ZRhq^ACsjH=7v3l@+rz;F6(Nkj(7z+(QK78yw`ATlx)4igsY6#*vZ&mJH$GWyjH zJI3;*ayDo7hCPk9W-oA3*5btKcn75;zxW>(cT6R(|#@5PTXq;gV#*N^~8H8oa8NV+=n2B z579u3@k`k1gCd?!Fq+Wv4D)+`4D(A7UQd5b&>m~O$6UnDpBv8i?Fe4*+ZcxTGDzQH z-OiVa)IY4>58P=#tM~9QKhFfwK8yBtFh36jTd2M&_IxpQ6lOaN=^5uRnB&D6%gD(V zpS0m41`WN>_Da{Vwyj~)AREHXv_;rZWG_|{6;e&EpNb>Zdg4xJu+x8wxJ;8PT`}jI z-y;UKOM6CkiAXMn!ZcfLHH|=*tRt7lo0L-;h`f!-^^j+yThRx@=*-5iXN5u+YW%63 zy848vdx))l7WrW)LXnlbde=>(&{#-JQ%1Mc&6^c2q{)Icuo;1-uzrtR`^yZjO|0?S z@~nBvOmjsgy`)#cVSe>Vj4ED3^auzbcjL;s^-*Ms7@VX&%hNW=pIJp=290oA4YgrJ zM0j-x&0f3$zf3*&5fDTNI!VUW>dWTnCO@Wl>FsSDD6y!ClM24S&x**|nWm~xTAQ7a zjkue2wRx{yw2C_FBh1ybAw@<-K9#bh{!;NK?byo5)47wJSIe|ZxH{FLq}7+hE)AC( z13K(3t{AtXlvI^rjxu8+bAllBi1I_vXQlTfzyAN5*YbADcNw zDtU*O`G&*13T^2rCGs0Y%;(Ooew~u{L1B(h#fWEi=T?ju$$`hmYwYwaHG!(b6_<`! zBzs**f<^GPS#AuK$|Nq-z&U696O+K>$q zE}ZjmW<6=K;BcbS0Y?KHxX~O-F1nsO>+?-S=vphwP0L9Hx(m)UV+%)OA#qIi66H0l z*)oAs)uG7xJ=FGXT7?G&TKR^YIu!>%RtxrMKb)1Tx!TL+k|6JgnSW-9FeF8>;Lz8) zOi>Z&s;1vjWEyGnhf(9aDVm6S==DmOl}o7d9GR|BNtJMH2eK|aLNYW*uN=UD3M~WU zqy)SyABSQ^9onqPwWsG-STHLqGPjoxO|_Q~IAaJyM&wk>^gFkwlMFa97o76MRhvK} zx|ghwA_gmSI5A63kpx=6-uu9oU70OnGv)tA3OFN3KBLkJEDszY%iJ^{G`Lmb7A(n* z675>*T^s>Bufo=;sc5svhQ1%u=$U}VIxAGqNp`i8T4vl~_lh&>ik98ykv})WS(&Ht zg2qc(dgQR_r{M5bq2|*8?+U>DeY|+BBhr3=^#^ z)?6VI1kGc@&{oD-!OQ)4*JT`6Z^m)T>bjXo$k3bje2$BdL2&QJg&3t2Mw$kDv;=Xb z%&LWw1@I7eZVD*1{>@$?-004g%jsbmWpTadx;0Tt>YG~?sfl#bV8zI$E%3?W=-nQZ ztBhlxY5bIL+uRK1k+?`TQ$;r&b{JZMDO+kEB?sJ4klsFAGacX1K~coDz+cm5qz(qxyC0HKGdeDyjyM z>0K*F7^5~96Y4F)GP|^be(TI2&$d!{On%|mFHt#n)_22M7i_<0HM$4*agcA*N22n| z-v+Ri9JsPvtBHxM-+6!|YNPcs&CRWT*K<|eItaBXxO>pdoRfP3t8<5#F$2=AxOqT~ z*V>q0*u22#h~2QeQ^DTVF~x z6wY`)H!uqJObA++QYD<}Tni^T*8x^kY826Ya*9>2&L7rM&mYybT-*U|Q%$rJO*suw zuSrb)ANc{VSmFpjHHPgNqSWw34uA7bEa!}Co-e0_wbKSVq^_S|6+)sJd{+i%m`t8~ zWjLq7KlaZen-{QGRX=A@*s7@9HRkJSxha!yaR$oqJ!`5ST@-@C0qG5$V{xLUrwEkH%J<}aCu(R|}aE5(B z=SfcfwG$7JiDnXZ{^m$aUqkwZ9W&;6knT0Ca(^| z8%wvAq$>Zuww9RPM1;m@*0*skzt^(sAL%7`-)>C5w?eRTuDEi#$soMR@ZDnvmb`b{ z167X?I7=W@E8bOi4fQ=5kXoutH060pZhAUr?=PtjRYb&=PZKI@|5~g{o^(wXvKVsn zTj@3^v>CXJ76+bwyvOa8XzweRucR@w&|nN#L=k{)To{j&eB+6D7MVN}JT{u17|#sh zv@`XabdR2N<+sS~?|A*Hwj%EAFAHo^LE+*?kM~%(P_VNtE^C?nr716Hb&bX<&_dwhmPItTv8q7u&rkFX9?YQ#sLm<|-G$d4Kp@{k0vqrPATfIVAr3=hYZ+ zPc!;U2l%@mzbC;`(|ePl_P~I%wcvl#ZIa&MfH-Cef=l; zm|TdMdSMp0$$s;s1VmLErjySNo_-K`p;X=z0 z4u8iB7C|wrky+|ON9*~Ie&R_6)hxfiVppQ8P4Yyo^Yl%4G17aL-~BJ=M9jP z2iF=s7hx}as>WECp+H#!{$bR842PO7O@dm{6z}8qCSXPzFcD#==(@(@uVVGqx7!!v_&v^6XAv>mI+}5$Ims9c71uqTrd& z%8BX4Z4gImEZgBxzQ5E36R9An9W$E1xbDeWpb12X-@R_4xKNP3-NItVl?Vg&6Q-q~((e7WRBri~Sz)eGEzS62U zhVTCJMKSSH6^ZgprD)JA`XGG0c%cu`{h7Z1-PF}3lSHs0^-*O7*kMUC|FAMPKDV~b z?i5i7(KIehk)Iz7at# zh1;~~nYy9_sP4=Va(#Tlf^kHKpV<%KUsZ+u^K~#32d5R07~Tr$;nyj+j1gMl>J{`U z-PCQ%e}bRWFnIUFtJ#p6TXs{OJ&Zm=)+saJg`3(+(?HZ&Di%}yF61qyG2HgDdDOEG zYBxVHXuXa@aJuP!$ZB#})Xc}DLkcw1qsBg{-748#2) zBwi}*#`(i_Nbe|x<)$clm$Hx@L>EosmkzAVC%~HgN;wE}R4*vOL=p7F|Q=hjC}F3)12|*?Hi3&j{9eb1^0D zhj>5m+M*iBO^zZeQ7uSSD%>xh!v3ZfFfk-xH6&P&w?q+K7tZghgbTZuhYCPs>=cE8 zz)&HNA8`=p_C$vl^4eY^(Uj=SLo{#b?TPZ%qn?r&nv&S__Gs*^ZUJ?9!uxwcvk`bH zSO65V%>PTl|E~q@Z;WA<%#;NXJ^ZIgm1dJzjCY_!US3N+Vd$>-dO({yrr@MW2N7by zZiV|P@I#(N!@7SWZXxi%B@wp*Y9!$$%N9kLZdq&v?azH7z9*smcGsH3|Xsk4M!rInln36YF3pj0oPWFl4c<> z$n1O0c2WCCzg3jXw4X7MV}P7T?zIq)IW32jgS*gV$wZnMtgxDRpYnnCj_`&JK>I;j z+(RQ?h}|Ny^e`DCQbdDAa!0HGevv>j+vza?5U(EP+c%#7pQ!i0mq5|j%Gl6J$qX<7 z$>=}mM^$${z0$xJxyp%{{mJbZwDsf{BW0>$(ZUP?w5z=^` zMdYLE0rM9LCcfZcc5)AH5(A|EZW_Tc<}XI@Gl4hcUK-FZQt&w_$1|X}R^Smg?rC29 zjc*3vGkcN@ANAmW!Y@88;B^=NEwM@teBESRiY+a(|DkzmSmkGOGeezFO`J>yIp^|O z4UNjI!>iM}#4}lG6eLXalBvnvw8wz>gG+jJzmToxcAY|9b*6dzsJ3&KitM`G9lN6b znpiZkb()s!LAR#zEshkH#b4-uDpWLu($ z_^K7nzx%4^KJ;@qkrT;!WR(3R{fsD~)ycrRABH(-tpHNoUc{6nM>5q^)8Nk{1=xg&@CCN9}y{e`Z&D(G0yKGGZUvJ96G%- zPVd;X=P#f-^EZ+>J^jQSK2a&oorF`iH{}9GjoXX2np`z|t{gtJqMiP{r!PNsibE(5 zOQU)BW~9iCd7u4}_ZwotWiuO3K9B)2WhWb z41eB2!d6z^oqb&c7tgXGiwY}Dpck5-y9FhTJVefDobnt_#no#%ovPTan8Z9ZWHm|1 zp0u@1s!Vi!_g|Z*)3|M_YK&Sb&K^rY%S-t)>Z$6q;YEog^IBnT)Rx9J714;}!%Usc z=zqAQvZ*$3p38jJ{p7V&BC3KH#eQnUg}5^@Dkehy-Fo4S?vOiONgSbHO*Fazx{FMEvyB_Kj6%JWe^%335^?<^bB#34$vR*DSsVz^vYA_hxD zkDDQ~q_WZ+Q@rTf1EwRuIXi+L>VGBoCtEId-ZV9#)LzEm0aWq@!#2EMN0){erpjiV0P z6a)r}Dy8+MmWgtlL*n>UAyCr!2*px^}czr?N|wCN;$*Tm8gG2BQ#Oq7QC)RH2rlVS5I`@%5d>=Q`Ld zkubU_Wf8354v{e?^7KI~q^-GCVtKq_RO5YJbmL>@R;WhwFXp-AF1a~=C1JRHj{$xV zmQwyj=zJI2##0^;sM3uHIi^~)$HQ4xXalW<7a+`hP$pEmykEsYBqG3|*exU6H$cs# zH*|7+9GL-UN{%ebR(bIirRx?HEq)aoOMADgp)GYiqs&3Z;5`xc5SsD~!#b@N`Lcu$ zZsJ~5k{47+iU$$$bhDSXIx;ruSa?;aTjY7a#D9k*V$bw=#5M#s*e5a*S$m0V}!uHF2m{NiDv$RPKQcu_8R8Fwyn-ocird`ijZQ2N|m9} zO_hN$lgW+Ou14B@?wUoL@G(U2b$dybYTV#!d`8OZ82N}P-0C&$6 z_T`~jgyhd;o@r$T<~OzoRiHxaC+O%a(Fg&os;r7ys1rLn**%O&+Y_>4x|Uy{9rB!Z zr=ZcOh%eFZ*qK~4zgVw^*<4DH?apaV_c5krGm$u(KpJC$q-(`D|M1>QbrrZ5z1BX>j*wN7BAMP9GwQb`rF; zw$pde2lyBN+M-q|X#;}Vk+~OYsGT(}_y=wI5`Df=cB3l_2&AVjBD_}2J>2%2cP%UIC&hvsPn^N+8gg2#d%2A^^}Nc~ZF9LE&R zURYdR-SHoJ97vQjpD>O!Gd@_eyNH!Gc53WbtjDTvz{-zZJ-K$r;m{}BPr`DK?|gLS z#$^WJup^#Zw@{NU!0!0ewGz|>tJ5iiN}5|oa1f}X4{I3EU0MsOb&y44a}bnAVyKqP zbyTs*g703`p~v_*tR*xkSUBEMTC}d%m#1|^SIhsDlqj**PTsgJg7^GxP+7XBdHRD8 z;5;T299HbaRsBPweR{_Oo9s-()T1V*rdMPT-@AhR^r`i(s+&uRZQ%jTk2+i2JIRFB z%vPB+y%lI-5K={2P0g4rT62AnsTu=czWMXFvEgWrYMA~X!Zex96BARlwna&URKU2T zKeNR(ZY^j&^)ndtPRq!&VEqlk-Z^;=5H^!@cmz@CB(ZtCqWm7!AZeM2RjCkSo;)@wNh`B z)Oz+fxS9FQ|A9fx&Dj(@;~}1fTapc7}MWN&C;5U#_K(ee78>v?)}?fqj0&lf0F zxCkqtl~i|vqIwqzG^hMD{vbS@jVA$+?Co70-&C$g?dOcb{UR{*qdT!%ckHM#T-r+9 zQnR~T#ZGq!)`8;gMWnCVpZkaPKyy$=UF!*iY#(qi)+@?&nza>V&jm8$X8oOsFdH-P zfl~SAQTKs@l8jpa&AqYe4WS@cM^|@u`v6_6^Je^&I@o=P$1-_RV29ZBHu*_VZ-{D} zJZihH%M`HgNxVE<7-KTIm2bjEX8(w07?Fzds_+7hxHj&9(o-z&p2rj`^_HDg!Erls zg(;@Va$}6pt&j8~h_LI)Wc<`eIwd-;6MXx_kFhBYY8oVIudzmH-!y`BsY?bY<4i(? zC&b*WPt@A>O!Ln)|W}zikoD3KH96j(g!c?QT z`J!bv;+Lsd8{X(quAMRkcWK)alZ{4h{&P5S6jtax_k#vTM(BXCMd6WyrkTtK_Xm=$ zl6x8F=C8OCp*S^$%0Hi_>?OyT22+VaJs#it8Ut7CfUnKnz*d+$V<5_<-wL5!zpl+w zjNq6%Bj{mb=<@aiCmFRk;Zkg^xChKA`%}-N)}ncjgEI)f_bA_}4Y(p+dA{fR73B8L z$_eoY#4dov8`lHRL4vnIEB56D|D4VH4Rvm4-%)6b1}hGmH6T+?H&MG5=8J{4e8d-j zc8aw@y_9}-($d%KPI4j4nG0AY!p|qpNy=JpP_n@lH4^sd~Z z9!&R##?NDF9Rz)}oQcf6@wI84gZLASEl6Zc8G0!#rKbB7Am&Yc@7G^sB1SuL%=lOY z=w%pvb_o~Y!+C&dk>XEaO!ukX-jTx@XGlT|HM32={;QI73oglkr>BBMdQ-#A#n&4s0rRLd$V~ARXXPDfB3u(q8XH#YH1V12Bbn;An z`8fNEdPrh!QRnC}J)Z@(yA2<%ncGB92cRbvG4b;7T2mNC@&Z1Y2aJ64?@c_tS7 zxb%2$(hFMr@E^VZ)`5{hG{c#we_FPZW>7CQGc!x1X=b1lJNC;aFYeqeO9Ts@Yk2k= z{Sze)%@nZzZAIUu*}KeLmDft*Co&9_StUFC%IA;AentB`n?q8v?Suuu&ryI>@L#Ki z|0|*Of3Wg@+kTQ1H*6LFO7V;gBttWBbMc8PxdoE%`#(Ssfd~Zl^FtTO?KMEWOIf1D zwJf*B8^YzXJBqyvqER4($TbD{; zDLyKRNCRar+^hV31%yhnl}0~kFVCXeRlu@!3{Hs`z4ZN;rl2NFh~GVn((7q}Y1vkK zt~4k1pAQaK?Imb;GsZ!e4Cu3w1$oTqo$lG$1l zEv+2`z@n#RiYy=YdTUtG@b_OP z*1^Pe!j5gMv(P)(ngcK+E^i+2FMj@<2I|7UNc3=wgBg;lq{o*@j4kEY*6Zpkpd}XW zFLJN$=0Z3fL>Lziou&#=5%d-o4C$cbXc+FZw5$i0 z$)?~vM?9_>drX_2x;I$yH)^Pf9bg}aHWcy@%AnSM0AHM@yrb07?nn5F63%@F4n~L- zi;P%F^QX#FcK}qy+;x;j4r?>2z{qiBi0$v-X!(;g^4-H(X59!VwW8q7Y=(5 z!`_b`#YQ8ff_py*K?T2^8}~CuD$*)FpH}bje=+us(Ux_|wrJ+IZQHhOo4IY<%G|bX z+qP}nw#~b%>ei`O->LJ?ZEdx-{;auv#E2Oq(4+U0-M@5Bi2@K1F1{V@?mJQY&t!!E zgQNY85a|EzTxI-IX^zqY9e7X|?~09|MQ*UnMsOVsIB8s3wO>kF3>{cP!bC)Lx9hrS zSghZa$@4mnchvQ=03WaadqaWCZIYXIiv8qbN=K&?FnMr}L@XJ08|QK?c-R$<4;9BQ zPHq}IyALQzO>TPVrpDJhG7JKQjYpntn7%|e*g&F(ZipD&ERc^QYs~DVLCQKIN8SZ` z$xx0l(m-Xl(au&Ehfd09EFq)$W|Hh8)y}0!->S`SZ@WV=w5ouOi*aM)R%NyN0$v`k zXZocydWV@6Vl^x&wX-qDMB8GiIq7yxIM9|~k~*v9;pip3(rrie!{mngC>=D~xUG}K`HT+L8_}nr|xUIy3BKP#q^waw!qOX%y}uX0gF*}V~dH>Vz5veM}2<6hLK9N z&SNkKz6sidw6YC(Y(>2P^a^P-Q8KW@T8V12`;35nuybUp(lL7kg=)wi6}`0*K02gA zv9Zl!W?#CsVGqr^K_J0X-aDHr-jdesM4<9e=?V2zxl>F5z`aF-JcSZv3G0*5Hr7SX zF3#r=9(ioqu$)e6aY<|dO+|UVM+aD(?u%O&n zx3Es5pOPP9)vFs%$I@ zUkE%)DSbtlGhil>LtG3kE)Er&&PJ3Yry-DiVEX;lyATLa5C8xS;kB7Eb8hZpwEuYq z>&3X$boGQYd61V{mKR z#^{ZH#hWW!b~~>D{?2Bf~CeV&s8)lcc zznoTSk2m0i+*9)Y*%|H&x!0xl7{QKqr>*zeL*RK!;Q0g28?T-hY3x%J%$umm8%trk zMuAKIPc%iGH2Z=o^1Hfnpb}lNK)<3gurgb5DRR9lhm{&PId>X!Eq?*IQuuPK6&ce2 z=w67c>en*gRrmDuvD(v3XXoZlP0VwNHZZcP+ESdji50h1*0f@s2)dVNR_|-M-Bfvu z493k(=D6i53sr#W*T!py`%t-6AxCVAqy1uSc>PAsT8bIt%FF@RE91$C48&Ax@6)|W z`3Q`ch^!1c_G7$}Of-)NO~$#H!ncZt+-|a$`YJ9V7afN^@tw)7MdC zzb=UvNrHGL^ITlWfuenJMh$~ANs9Qxi8!Z0hT^i8?-YZ)=xrhi;+tTXwI4qm`{z4C^N>zO66}+k(45PCF^1jHLP7L_Iwlr`KRL!fOhW z?CBfh{WMMEfPoVvcya$~`aDgMN%J8z z1@pNuDiB|e-Qq+p|)0!R(;gXDQ~LT)qJmV#gAH_S7?I>cm7ELlq|hk|1m zh`g~ZMkg_-P-2uvOb;^x4oNPxRRgAzH>uM?chMEz-x~&9;UR!9o@kGaMz0*2iX*_U(`BNw+}n|i zR`c8B*NM0or&lwPCvbf#+}6NM$Ro|tn!9^W83^K@W|o~T#2N^;qK|AfnV4^8q-ahSF&qv_J_%;rfUh`PfUaFHo|&3+aGj$Zyo<`=j31L zg*%gzn!mL@ge>`IhrmWrWOX9)Ou4Q{5ZoX!SmdsEK;CYDep)31kWlcl|J-alR-_up zQ4bS*`m~}t0do%rS_&gUTzhd5q2SPo$}VIG*Ve%aqkZIpcdGPs9Y4nT?-YrVV&yUW$x(D!Qfh_s)t7Ti8CA~?zndbQOM#|(kHqf{|`mQV-%7qI_BS({xKY4~nMtxCjim|NT zNuruYKeps@y>5osC6B;rncZ7CadavME?UbYWwNkj_j%gP*%|C`oF_LP70@HHE>X%G zcXhHe>vs{%ACD0aM9>Ks4z%!;K8-HoOp? z6T=SFIB?uWB)KYyHCbtNw}+xM4KFHa)vd-)8949eq?Ct~TFl^?8q12oC&@}@+>sNO z;Ok^+`egjsO-zhopOcY+K4wI?qo(Qp+ec=+sXWp1&zv2)CY21TyM$#L{vuLqTYPyg zVb!|}%5+k9ZZwaf$vWXHvxd~NI>V95hx0bnDkm2g)3|PvTD!xZDnF3Ks!|QlF;xKp zN4ofvVWEjaAm5DKC{W5$K2o#Y(L&&5PG8>mAG;b_d@*hrDo0&&9Fs!*ljJb`Kf5_9T1LqLw4Hqjm>x2k)kI6Fy^NlPSIF zl_~bO-{XFsEV=1`duPpG=$G33=oByK5!Czx^8f%f+jTj>@dGruoO&(#f(_ARyTh*nEDo%q$k+W|EgCL{;vI9sWvcu@a{8gn=F5RKKmw(U z2~vYC*bFmN4e1hNos2}t77nC6g$b%(1WLp8;gFL|l%m74?=_ zos-ooU?po{@B^?$E6h}PkO?QgeMQN6LD*8eJF!em!5Lnf{;9?3=bHUXJvM&jk=#VT zRep4Z5~F~TvtkQo$t?b00~wA3ut%us9toE}t9*}0{m#?%n-ZO`aeE4IG1XK#4Qy#T zd$$|cdCDDt8S&a{vDyJaB}bIB)JIu?(sed-J zGJ%H7q2=nx=noM2WWD;#&92n!OT2Oqu>FepH|Nt8N$$jp)lmtc}Cb|FG53dv+Png$qO;L^6sCG?jLSF4ctyY z+ww7}^k9BE2yO1q5`aim18M7WI4_Vc2Fh*gvY;Z<7uUw`L zO-eR<-y>L~Y4t`tuu|_DCw+asYCd-cYbH&!q)7z8FvM8 z|9oeFxkYTj@QDOz54*S#SD==gAbt!BJ4c+VX8om4?@i17h-I+>NhNn>!0O5i*$t}p z#4DDGi@yX*KdWQd?wQQv4Q?|e`Y~*V*KISDcfXOQhO*A;d-yH0MnKDR>NjEIHswN2 ztDTxZJkz-L48>3c3(^hNngJglmf=nc%R5;9!M4Twhx*x2`<>|}HVw<_mYCHo7Vwr9 zfL39PuhO2D0-ZRfE?6*1cZ1k5V$p>*=g95p{JQU(qH{WJE^o%}t_Uq5YtYy;5ax@@ zLGWx$@VbAy{}^LVGmZ*fWdGhY1D6^2wOOlAOVFmo{Ghdl)|JN4(C z^D`Xx;nF(ju$K4Q6@NW7Y%V8Pa3edMRbi_g zxsr7Tw>!K`?JLUZ69oPn1^ycb{u_tJ4fJ}r&Edh(XYTvD4nVofD~)Hb!%j>(?$Eoy=Z7Qw?c35kXQ8817G9;-(v(@BY+_~%#}tAybMw44|64SmNE!S)dW-J z94;{f;pjmL(>s4yvqiu9lomG6OvU0kYZ07BBndW%n{1LB29u#FVCX}Bx=6kUDw*p8rjug?H93i%q z?OSO471uL(>JNPWOY-5r1HG~SW0`1WM|6Le812Vw`nZF0r)E2ausT`k*PhFWc+Iphk*G}qe>}=|@ zI!$;8B=7e=dM3&)q~Q8`io@X~J7Y@IQ<5ryxg5DL#04?A#G4&Q@Em?#e)Wgh((WC5 zUb*+sRg1BmM|pq};zK9a+V>t|&+)rUhf^u%rP>~&wT%Cv^e?wFGe1c(mbK%EhJ5M{ zmORgbIsz?bG;%Eypp9@EE4vHXpkD0j9AJ_nPLd|5%h4aS;sa@7QtEGg4isG8jJr5X z0C$wxkiU(m@8|?6&va8?>?e9v%GgCCDsfBmPq9DWDhE4M779l>YK2RzU;dnP0E z{Dqt8@VUiD`+G{X^9{qJ{a;S`?>gZBepmx4nu=J$NS~>|#^@xd!vZw9*1>@tKrH=| z`iXpMYEU4-#^7R1Bomf(P?M9Db&R_2(66BPp!*AwKaoomvOYLFH8U?)y0r&Gx$?_P zI5zGw9A4A!GA=W}6^M0w0O=x2Bk}h=t}zbtpXEY16~>=-v3O#4Ds$70|SbBo})GC5#RXgA#e5)a#0OzqamC+!B0&V!Wnm8G*#CdMMbx zy$j-5u+BLbe*!&i$sF+{`gn|88*ydCGR&s9WYnfJ+2!5-@gM+ekxm>|@X7x`ZIh_) zS8hhvx}BSNC7t7>Qm8J?wubgwq+aSwWK)gW;OtwqVZBCT{#B@3#m#mD zTI=!ao8g#bdUL-6r~@}CZx|ZrZ92g(uD+94xIy8c{RPqejsY7CApnLr^lK<@lM;HA@6KBh2tU zPkyCr@r^?pKo6gx;v30|rstbrhzC`yD~lHoN{vvYfxqntbODQr$(nAPN9WC>Oz@7p z1XD5U4-PG+++h3o{G})l0;t&@_N0UacvV(f$$Daqb;`q5{!Ah~p`VNMKs&0UaWz~# zmE*MSaXpWdTQ*hQX#2zK;zx(Y8{Mny`3@1e%*?b;s*pRZ7t?u;53Y%~4Fk3*D>fGc zG(pBiH!j-~Auww(GrfdFq#_d}1dd3&VdAu={}EVL|BsU*+q6tGOFb2Mc+$6@6bC3L z=w|zt5;Gl&q(`l}+rR|m;K9w(@P%dv**AotAlXkpj!J?dyRs!~r!barbLjbp!|k&^ zK>vNdbR0QF>hXQ0K>v?z|9@R8e-BkEdX`Q`{~oUr6vn=1Oi0{_oOW@o(wMK=u-Q4Z zL)3PV2nevqiu{pEN#6-wxHio=LG|!BE>NKeb2Z_yanczLwL>GpT+n7!4yu(% zAGNxKyo8LO-0x{=Z`xK?T<2;;jz}%wvxw%lZ0xL>!zX5-PX+xEWIH0>^jxrn3 zT{bt-oF2Uo8cvrF>rMV0B*9FE7&QPJrNb?ZDn@dpp2H+K=uBloFhgtBYHil`qZAwZ zaktux`31q3m0RHKDG+G(px(5mtsVjz$=LC#iH0N)WNBytX8KTjB)7?Q^yGB_mvmIn z8a$Bi(>AY}ieWsWFJFzlban^3T6_HoqeVzWo=4pU6CS&Y^{%Tz*ut;uwRpVK;%MXr zStWP_rE&MA4hkEh#gUGR>A7p5`Pnng=qrdcn>PYzv@9i1SK&~N?02HWsAn6bX>br<;(S`8!{TXB>}YY$$?*AB zKYw0WFc9T+7lqQ9%MAHLJ>BSv)qP%w+}-6&NRI5ANPtHd9nSl|pa*^ezy1!)uwZ)e zFHD|p4>1c3CGq)VmJqJhtu*p%)t_L|Kj80be{4LQP*p_*ZmBjeQ>*$#;%~ z_y3S1Ntrn~{>6>u|3RmMXkf6qZ2r;jKCP*lFMnO=8a%6rBs8MjIAX3ETbPg8lXbuk z1pE2JC!Q@NlslvY>dyFZ!lUi(^X3&~`$w8`vRVy&kTRqN$|87VxRE_g0~?|S+~WsR zo5O&bzu?KKUZHhEn(Y(GZsVFNLnHwF(QS~OP%&0n%q*#YUn47J8zS8J98;`+V3o)% zfh-6^8;V~tr8F@^hQ%X-+C!s}IGCd2SI_>Z{$j(k)oyyO+fS#YCOlqjHUl zTk2dJDs1nc0BF#=Vz|{WWx{*oHvs3QM~rG+3Vj z&u@4H-tV?%4J7)ny<#w!d29+Lih_&^P8&Jy~z zc*M8G|1(YJzru&Kp6!1#xNPq?e+^)O2HEXSQ#Lqhj(n*}1SnH_cUYln-L$d_1aU+3 zbsZNR;@{0}r@?H?V4vdlX1vv&kr6f3_Ox8EkvSc{7n#hJLq=Zf{+mZl!qaVYucZPQYJYs>zA6L_25nIWvk6haW zU|={=p5Fd&+~L}S0jti_{v~j*MK?i*fAIzj{LC)v3`9I*~q!^y3N^NxW#DsXKeoV0$~3?9EYOOfAW7hxb%n`dMitd zzxjWhbc{$(+Ah9?tbDXYWZc+dupt z(&#|w+Y)?JM`f%XQYc#- zZ#bdAiCRPg4?b4oyZVZ?7@cgK7=rm9jIl7w`J|JCKqGwpIbzC@U15bdr5?U- zMT)YgCBV`jYovo{sA}7$jII7Xh>q<~gGYTE{6E7p{^kFQj`mIlf3bOly!78+ z0muX!Vg74CCU-y~j7c~cT`px>xJqMk%5rjQvnG;HD%ipPzZu*p9VM3^>ZX?QYGTrZ zG3D>CfONd#v~9EyQji_ifZcfXWBgfKsfpc`!7?MxGvN}owd{SgIX%&vy}rXioA1u8 zONW;p+ojNvgSAXRWnpEz>TC8G_sprBO*yqy2?tbwgo|`5hvBsQWU^yjVEsS^FDAH4 zwTkQR=19HzPw^fF|=Kt_&o`DC()1`6Q{QcDt5x(%<81XDnH!_#euiK9fe0?GG7VI4#%+e*rJ1M*{66`VCnLB%%Hmr;a&P%F@IM3Ae=oo>|6^%pYj5LdV_;+X zm--vjm;J2<66L@I-fTQf1`BUS!`75h`C%aj+b|3{F^C4TNqJdQ95hHk+hcqXz?5Jd^1fEhSSXlAn3{PyD9 zX2Y6}?CSFV?B-gMA&8)fy=#_b3P10rCcRw#jWEwmzUduk6?U!(8g<2Avrf`#PC5LE zTun>Z>6UV?8tw`Fg#jYi%&(?|DimX89W-3f8rw8xJ?hO#J0OCg#<1b zfuQd)BO%BS4qkfIUoNyu`h6P{@WC(e-=wr$SHnHCm*TSHC%UiSIB6b5%bWJ*D zk$Svjf$))Jz8WObEU#kH2Xh_E_%Z5ngf&)%O(fLJn0O=WgZIV@Lk$br#_}Rz1eOIn zJ*%DZ#&9A<>BNQvgH?fKLNmr$1ePY-Oewl0!Zma3wVucuY) zFvQOWm>mNr)ZAS=1v47rY1bDD>1?dgycVXALq(p2Ii%as@*l`E7!-w0ObIO0Osi6i zrlb@39ZZm_!`8g0p+hkiRZYL9_^P7rd#BGRS8VSQh>c^VW@qXO{IE?hW1(#lhT`Ip zB}G^BQK0fEpeicx*)8rwN=3AWjx_X7leCXbr2Gz~vHA72t9)r!wn zh;|1wXnbURZxdPOu*`EPG=$4aDkLXzCQ}77n1eVhV4N1QPK()nW1~954*^}-N7^|T zv$fzM`})oyrDw-ysb}3VC18m~^oUhL6x}I0;#~`xVzck% zUnxQ)Vq?qi6<;X<Zv-{?3-Zo3I}*3MtJkzS-Am zS7H)L)3v@ibSStYoj9``lS`Og*-TLdvIfbwsAp~m{aVTug$pwia4O)a=WYl1TA&$3 z8;CYAsk^}zyB$dzgf>XEn{r3_+T0bo9Yq_oDu}fkbI08ku^rv|H|7rYwMsMiCWuXt zOZUXJj4Nt8<|g1(fabPJGxR3tRnXcF%<~UVxJ!T79xYqeb-<@yuWP+$Fi#{N5ZoZy zZqgmaYqMrt9>A=Csh*=9$ZO$e1W)u%0G$BPZHsHCXAn=sPT;M;t8SMak87{zpYL$q zK)iuj-LgCU&*<-1-aotib$Y6HSg$povAKY{g1#@m9ocJ>XUKQtPY|CVpKjhAoogFc zG#v0c8^XFzT{NxFkYc#E9nt(R-hW2?e_YXpOh|B^-`6wbckpKW|Bv`e0%q2F_HN%Q zNq@fqi2iMNIzjQDYX%Kt1aguIzGBD?RHLE3Ji1c;V)-cetGef5=!p$l3eIUKy1i+< z;&Cj}OgEsvJ1fU7a64s>4Y^ED=#q;=1ypG&UINL*L8< zBq`V^xa9O!fcgXhqoB&s)QpDf^RN9hRv^u5wI8EAU;g|_KqJ|pi(ZH2x_Md&ZrvVb z#o?7pPzEV$x|4aH&8wJK*vXd+-#h9gL<@DU%3yqwuB+S(K(O$yZVkM*LFijpm+$&MkJU-HOy}a*gC5cbzs5 z6yQjZz^$bI#U_#^55Ba79%x*Mz7;ss`@rILVDcDFDjD>SXi^>IGSf?BtV~uMT}Kya z2Z=~wXgeUF5+Kf1ICT2;g%M~+JZyHIeRzJ3>rRu>$`;NF2w-ArAwm2Am(5qzL)HPD z6q8LWEqEm_0G-b`k?+7VDg`ZlLs6juPYQ(Q%rzr?PT7N2DbGX>I2F^&Q3$5q!LVcXEo)ho9R3nr?yQj-5kIqvEN6T+9IXZ!fl_ z(t@&djFLl?F}3HMZ=B|;yfE)l{S@Y$HeW9;nU-I#=S+WVghx^k;^MUT>uNUp2I+E} zCSyo${sA(1Muh(2mTA`KFYV<|PVjI)_#Z#QDgLLV^Z%2I{F_JrV;GR34(=IuwYJGtz>S+9Ou>F15_f;hgOgKqp(#9%}QCMc_nHAJ(W9b-V6fOTlIode^7 zy#yS)X~Q*LhZz^ep*(n0;oUI^=mI1xYXMhAP6z|26}-0fXiLgTwq`$-HJ$msJYm#r zzh%*N2s_K{mzGm#i#|?VvJEP-%qbislYB`CMO(4+tp1KmC`L_mn(#W+VPRqvZOyL^ ziTscP=bCYGO5qHW#JkrB8NOe7sFZHCp=oK!XXZE+GyNKEYDYk)Y0Nd7;K`V-UU?*^ z8GNnch-n$!Eg|^UJI0i(Yt1bIuq?K7!_hVe@^M;B7P$fPO}8l^I95$z*x|JiY0lC> z>Gh(H%fh5joGmR8X*6xi1tA+Ur|{UR%XuMdz-F3$+#_n9YSCr*7|;W(!oDFwWcb4! zH3ba?Wi1VPUN#=t6$XlY)9;09?OiNvXy+@qrP7yCL2t1Qem80ii-=+KAgggVIhp(4 zlxEZw9%+sBmXPbUO(i)kKT(DAvdPo*XM`Bgq@6(s1@WuT)@K(tr&nv6+zj3-*kC1&8_o;Y)HAz9Md}FR8UDzmw0|9TeFV7NBK0*)HkE)>7s#W(3Fc+2h54-UJ_VyuEWuEurR4<%0?y8~k!y39$Nzt@w0Ml;}&=;M~S` zGN*MBnsQbN7$d3W$$At9pw{iRSiOO(ZeOqC^R5rx{jne^nB-¬!oMa>S}~Ten}8 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%0DO`*=<$B*U)84zbqh$7PTh0-V#1pbX2 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 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/plugin.xml b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/plugin.xml new file mode 100644 index 0000000..86e6831 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/plugin.xml @@ -0,0 +1,265 @@ + + + + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/Activator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/Activator.java new file mode 100644 index 0000000..d974881 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/Activator.java @@ -0,0 +1,86 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +import com.irtsaintexupery.fiacre.simulator.core.FiacreSimulator; +import com.irtsaintexupery.fiacre.simulator.perspective.ViewsController; + +import fr.laas.libtts.LibTTS; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "com.irtsaintexupery.fiacre.simulator"; //$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; + LibTTS libtts = FiacreSimulator.getLibTTS(); + if (libtts != null) { + ViewsController.INSTANCE.deleteMarkers(); + //ViewsController.INSTANCE.clearAllViews();//////////////////////////// + libtts.quit(); + FiacreSimulator.setLibtts(null); + System.out.println("quit simulator"); + } + super.stop(context); + + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + + /** + * Returns an image descriptor for the image file at the given + * plug-in relative path + * + * @param path the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return imageDescriptorFromPlugin(PLUGIN_ID, path); + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/DelayEvent.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/DelayEvent.java new file mode 100644 index 0000000..c492687 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/DelayEvent.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.core; + +import org.apache.thrift.TException; +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.jface.window.Window; +import org.eclipse.ui.handlers.HandlerUtil; + +import com.irtsaintexupery.fiacre.simulator.perspective.ViewsController; +import com.irtsaintexupery.fiacre.simulator.staticjson.extractor.DynamicJsonExtractor; + +import fr.laas.libtts.LibTTS; +import tts.Error; +import tts.InvalidDelay; +import tts.StateNotFound; + +public class DelayEvent extends AbstractHandler { + + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + ReadDelay dialog = new ReadDelay(HandlerUtil.getActiveShell(event)); + dialog.create(); + if (dialog.open() == Window.OK) { + dialog.getValue(); + LibTTS libtts = FiacreSimulator.getLibTTS(); + DynamicJsonExtractor dje = FiacreSimulator.sendDje(); + try { + libtts.getTTSSimulator().delay(dialog.getValue()); + dje.extractExecutableStatements(); + dje.saveInstanceResource(); + + + //Jorge Gutierrez 03/08/2016 + ViewsController.INSTANCE.updateTransitionView(); + ViewsController.INSTANCE.addDelayToAction(dialog.getValue()); + ViewsController.INSTANCE.updateExecutedActionView(); + + + } catch (Error e) { + // TODO Auto-generated catch block + Utils.showException("Error",e); + //e.printStackTrace(); + } catch (StateNotFound e) { + // TODO Auto-generated catch block + Utils.showException("StateNotFound",e); + //e.printStackTrace(); + } catch (InvalidDelay e) { + // TODO Auto-generated catch block + Utils.showException("InvalidDelay",e); + //e.printStackTrace(); + } catch (TException e) { + // TODO Auto-generated catch block + Utils.showException("TException",e); + //e.printStackTrace(); + } catch (NumberFormatException e) { + // TODO Auto-generated catch block + Utils.showException("NumberFormatException: "+dialog.getValue()+" is not numeric value",e); + //e.printStackTrace(); + } + } + return null; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/FiacreSimulator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/FiacreSimulator.java new file mode 100644 index 0000000..2046244 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/FiacreSimulator.java @@ -0,0 +1,316 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.core; + +import java.lang.reflect.InvocationTargetException; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.PlatformUI; +import org.eclipse.xtext.resource.XtextResource; +import org.json.simple.JSONObject; + +import com.irtsaintexupery.fiacre.simulator.perspective.ViewsController; +import com.irtsaintexupery.fiacre.simulator.staticjson.extractor.DynamicJsonExtractor; +import com.irtsaintexupery.fiacre.simulator.staticjson.extractor.StaticJsonExtractor; + +import fr.laas.libtts.LibTTS; + +public class FiacreSimulator { + private static LibTTS libtts; + private static XtextResource fiacreResource; + private static JSONObject fiacreStaticJson; + private static Resource instanceResource; + private static Resource mscResource; + private static StaticJsonExtractor sje; + private static DynamicJsonExtractor dje; + + + + public FiacreSimulator(final IFile file){ +// /* +// * If a current libtts exists and the user forgets to kill it, we kill +// * it automatically +// */ +// +// +// if (libtts != null) { +// ViewsController.INSTANCE.clearAllViews(); +// ViewsController.INSTANCE.deleteMarkers(); +// libtts.quit(); +// FiacreSimulator.setLibtts(null); +// } +// +// // Compile Fiacre model +// Utils.compileFiacreModel(file); +// Utils.callPythonCommand(file); +// +// // initialize libtts +// libtts = new LibTTS(Utils.getTTSFilePath(file)); +// /* +// * This condition allows to catch whether an exception was thrown during instantiating +// * LibTTS. We can't do a try catch block because libTTS is a static field. +// */ +// if (libtts.getTTSSimulator() != null) { +// // Get the static json file +// String static_json_file_path = Utils.getStaticJsonFilePath(file); +// fiacreStaticJson = Utils.getStaticJsonObject(static_json_file_path); +// +// // get the fiacre xtext resource +// fiacreResource = Utils.getFiacreXtextResource(file); +// +// // create fiacre instance model +// setInstanceResource(Utils.createInstanceModel(file)); +// sje = new StaticJsonExtractor(fiacreResource, fiacreStaticJson, instanceResource); +// sje.extract(); +// dje = new DynamicJsonExtractor(fiacreResource, instanceResource, libtts.getTTSSimulator(), fiacreStaticJson, sje.getMapping()); +// simulate(); +// } +// else{ +// // It set LibTTS to null in order to check the first condition in this constructor +// // in the next simulation. +// // We do it here because we can't do it in the LibTTS initialize_tts_model method +// FiacreSimulator.setLibtts(null); +// } +// +// //Jorge Gutierrez 05/08/2016 +// ViewsController.INSTANCE.setFile(file); + + + //Progress bar + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow() + .getActivePage().getActivePart().getSite().getShell(); + IRunnableWithProgress runnable = new IRunnableWithProgress() + { + + @Override + public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException + { + monitor.beginTask("Loading", 6); + monitor.subTask("part 1"); + monitor.worked( 2 ); + part1(file); + + monitor.subTask("part 2"); + monitor.worked( 2 ); + part2(file); + + monitor.subTask("part 3"); + monitor.worked( 1 ); + part3(file); + + + monitor.subTask("finished"); + monitor.worked( 1 ); + + + monitor.done(); + } + }; + + + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); + try + { + dialog.run(true, true, runnable); + } + catch (InvocationTargetException e) + { + e.printStackTrace(); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + + + + + } + + private static void part1(final IFile file){ + Display.getDefault().asyncExec(new Runnable() + { + @Override + public void run() + { + /* + * If a current libtts exists and the user forgets to kill it, we kill + * it automatically + */ + if (libtts != null) { + ViewsController.INSTANCE.deleteMarkers(); + ViewsController.INSTANCE.clearAllViews(); + libtts.quit(); + FiacreSimulator.setLibtts(null); + } + + // Compile Fiacre model + Utils.compileFiacreModel(file); + Utils.callPythonCommand(file); + + + } + }); + } + + private static void part2(final IFile file){ + Display.getDefault().asyncExec(new Runnable() + { + @Override + public void run() + { + // initialize libtts + libtts = new LibTTS(Utils.getTTSFilePath(file)); + + } + }); + } + + private static void part3(final IFile file){ + Display.getDefault().asyncExec(new Runnable() + { + @Override + public void run() + { + /* + * This condition allows to catch whether an exception was thrown during instantiating + * LibTTS. We can't do a try catch block because libTTS is a static field. + */ + if (libtts.getTTSSimulator() != null) { + // Get the static json file + String static_json_file_path = Utils.getStaticJsonFilePath(file); + fiacreStaticJson = Utils.getStaticJsonObject(static_json_file_path); + + // get the fiacre xtext resource + fiacreResource = Utils.getFiacreXtextResource(file); + + // create fiacre instance model + setInstanceResource(Utils.createInstanceModel(file)); + mscResource= Utils.createMSCModel(file); + + sje = new StaticJsonExtractor(fiacreResource, fiacreStaticJson, instanceResource, mscResource); + sje.extract(); + dje = new DynamicJsonExtractor(fiacreResource, instanceResource, libtts.getTTSSimulator(), fiacreStaticJson, sje.getMapping(), mscResource); + ViewsController.INSTANCE.setFile(file); + simulate(file); + } + else{ + // It set LibTTS to null in order to check the first condition in this constructor + // in the next simulation. + // We do it here because we can't do it in the LibTTS initialize_tts_model method + FiacreSimulator.setLibtts(null); + } + } + }); + } + + public static LibTTS getLibTTS() { + return libtts; + } + + public static DynamicJsonExtractor sendDje() { + return dje; + } + + public static void simulate(IFile file) { + // try { + + dje.extractStates(); + dje.extractExecutableStatements(); + + dje.extractValues(); + dje.saveInstanceResource(); + + try { + file.getParent().refreshLocal(1, null); + } catch (CoreException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + //msc + dje.mscFirstStepExtract(); + //launch perspective + ViewsController.INSTANCE.openPespective(); + + //libtts.getTTSSimulator().printCurrent(); + } + + public LibTTS getLibtts() { + return libtts; + } + + public static void setLibtts(LibTTS _libtts) { + libtts = _libtts; + } + + public XtextResource getXtextResource() { + return fiacreResource; + } + + public void setXtextResource(XtextResource xtextResource) { + FiacreSimulator.fiacreResource = xtextResource; + } + + public JSONObject getStatic_json() { + return fiacreStaticJson; + } + + public void setStatic_json(JSONObject static_json) { + FiacreSimulator.fiacreStaticJson = static_json; + } + + public Resource getInstanceResource() { + return instanceResource; + } + + public static void setInstanceResource(Resource instanceResource) { + FiacreSimulator.instanceResource = instanceResource; + } + + static public EditingDomain getEditingDomainFor(EObject object) { + Resource resource = object.eResource(); + if (resource != null) { + IEditingDomainProvider editingDomainProvider = + + (IEditingDomainProvider) EcoreUtil.getExistingAdapter(resource, IEditingDomainProvider.class); + if (editingDomainProvider != null) { + return editingDomainProvider.getEditingDomain(); + } else { + ResourceSet resourceSet = resource.getResourceSet(); + if (resourceSet instanceof IEditingDomainProvider) { + EditingDomain editingDomain = ((IEditingDomainProvider) resourceSet).getEditingDomain(); + return editingDomain; + } else if (resourceSet != null) { + editingDomainProvider = (IEditingDomainProvider) EcoreUtil.getExistingAdapter(resourceSet, + IEditingDomainProvider.class); + if (editingDomainProvider != null) { + return editingDomainProvider.getEditingDomain(); + } + } + } + } + // todO + return null; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/FireEvent.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/FireEvent.java new file mode 100644 index 0000000..37eeaa9 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/FireEvent.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.core; + +import java.util.Map; + +import org.apache.thrift.TException; +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.handlers.HandlerUtil; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock; +import com.irtsaintexupery.fiacre.simulator.staticjson.extractor.DynamicJsonExtractor; + +import fr.laas.libtts.LibTTS; +import tts.Error; +import tts.NotFireable; +import tts.StateNotFound; +import tts.Transition; +import tts.TransitionNotFound; + +public class FireEvent extends AbstractHandler { + + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + + ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection(); + if (selection != null & selection instanceof IStructuredSelection) { + + try { + IStructuredSelection strucSelection = (IStructuredSelection) selection; + String tr_name = ((FireableStatementBlock) strucSelection.toList().get(0)).getName(); + LibTTS libtts = FiacreSimulator.getLibTTS(); + DynamicJsonExtractor dje = FiacreSimulator.sendDje(); + long tr_long = -1; + for (Map.Entry tr : libtts.getTTSSimulator().getAllTransitions().entrySet()) { + if (tr.getValue().getName().equals(tr_name)) { + tr_long = tr.getKey(); + } + } + libtts.getTTSSimulator().fireTransition(tr_long); + dje.extractExecutedStatements(libtts.getTTSSimulator().getAllTransitions().get(tr_long).name); + dje.extractStates(); + dje.extractExecutableStatements(); + dje.extractValues(); + dje.saveInstanceResource(); + } catch (Error e) { + Utils.showException("Error", e); + // e.printStackTrace(); + } catch (StateNotFound e) { + Utils.showException("StateNotFound", e); + // e.printStackTrace(); + } catch (TransitionNotFound e) { + Utils.showException("TransitionNotFound", e); + // e.printStackTrace(); + } catch (NotFireable e) { + Utils.showException("NotFireable", e); + // e.printStackTrace(); + } catch (TException e) { + Utils.showException("TException", e); + // e.printStackTrace(); + } catch (NullPointerException e) { + Utils.showException("NullPointerException", e); + // e.printStackTrace(); + } + + } + return null; + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/QuitSimulator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/QuitSimulator.java new file mode 100644 index 0000000..14e7041 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/QuitSimulator.java @@ -0,0 +1,43 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.core; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; + +import com.irtsaintexupery.fiacre.simulator.marking.MarkingController; +import com.irtsaintexupery.fiacre.simulator.perspective.ViewsController; + +import fr.laas.libtts.LibTTS; + +public class QuitSimulator extends AbstractHandler { + + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + + LibTTS libtts = FiacreSimulator.getLibTTS(); + if (libtts != null) { + //resets Marking on current file + ViewsController.INSTANCE.deleteMarkers(); + libtts.quit(); + FiacreSimulator.setLibtts(null); + //clean all content in each view + ViewsController.INSTANCE.clearAllViews(); + System.out.println("quit simulator"); + MarkingController.file = null; + } + + return null; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/ReadDelay.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/ReadDelay.java new file mode 100644 index 0000000..96a834c --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/ReadDelay.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.core; + +import org.eclipse.jface.dialogs.IMessageProvider; +import org.eclipse.jface.dialogs.TitleAreaDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; + +public class ReadDelay extends TitleAreaDialog { + + private Text textValue; + + private String value; + + private Shell shell; + + public ReadDelay(Shell parentShell) { + super(parentShell); + shell = parentShell; + } + + @Override + public void create() { + super.create(); + setTitle("Delaying Fiacre model"); + final ReadDelay read_delay = this; + setMessage("This is a TitleAreaDialog", IMessageProvider.INFORMATION); + this.getButton(OK).setEnabled(false); + + textValue.addListener(SWT.Modify, new Listener() { + public void handleEvent(Event event) { + try { + value = textValue.getText(); + read_delay.getButton(OK).setEnabled(true); + } catch (Exception e) { + read_delay.getButton(OK).setEnabled(false); + } + } + }); + + shell.addListener(SWT.Traverse, new Listener() { + public void handleEvent(Event event) { + if (event.detail == SWT.TRAVERSE_ESCAPE) + event.doit = false; + } + }); + + } + + @Override + protected Control createDialogArea(Composite parent) { + Composite area = (Composite) super.createDialogArea(parent); + Composite container = new Composite(area, SWT.NONE); + container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + GridLayout layout = new GridLayout(2, false); + container.setLayout(layout); + + createTextValue(container); + + + return area; + } + + private void createTextValue(Composite container) { + Label lbtTextValue = new Label(container, SWT.NONE); + lbtTextValue.setText("enter delay"); + + GridData dataTextValue = new GridData(); + dataTextValue.grabExcessHorizontalSpace = true; + dataTextValue.horizontalAlignment = GridData.FILL; + + textValue = new Text(container, SWT.BORDER); + textValue.setLayoutData(dataTextValue); + } + + @Override + protected boolean isResizable() { + return true; + } + + // save content of the Text fields because they get disposed + // as soon as the Dialog closes + private void saveInput() { + value = textValue.getText(); + } + + @Override + protected void okPressed() { + saveInput(); + super.okPressed(); + } + + public String getValue() { + return value; + } + +} \ No newline at end of file diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/Utils.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/Utils.java new file mode 100644 index 0000000..8fbbd1c --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/core/Utils.java @@ -0,0 +1,455 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.core; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.MultiStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Status; +import org.eclipse.emf.common.CommonPlugin; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.ui.resource.XtextResourceSetProvider; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +import com.google.inject.Injector; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstanceFactory; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FiacreinstancePackage; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance; +import com.irtsaintexupery.fiacre.simulator.Activator; +import com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MSC; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscFactory; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Site; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Step; +import com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep; + +import fr.irit.fiacre.xtext.fiacre.ArrayExpression; +import fr.irit.fiacre.xtext.fiacre.ConstructionExpression; +import fr.irit.fiacre.xtext.fiacre.FalseLiteral; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FieldExpression; +import fr.irit.fiacre.xtext.fiacre.IdentifierExpression; +import fr.irit.fiacre.xtext.fiacre.NaturalLiteral; +import fr.irit.fiacre.xtext.fiacre.QueueExpression; +import fr.irit.fiacre.xtext.fiacre.RecordExpression; +import fr.irit.fiacre.xtext.fiacre.TrueLiteral; +import fr.irit.fiacre.xtext.ui.internal.XtextActivator; +import fr.laas.libtts.Tools; + +public class Utils { + + private static FiacreinstanceFactory fiacre_instance_factory; + private static MscFactory fiacre_msc_factory; + private static FiacreFactory fiacre_factory = FiacreFactory.eINSTANCE; + //private static String FRAC_PATH = "/home/faiez.zalila/.local/bin/frac-2.5.0/"; + + public static VariableDeclarationInstance createVariableDeclarationInstance() { + return fiacre_instance_factory.createVariableDeclarationInstance(); + } + + public static TrueLiteral createTrueLiteral() { + return fiacre_factory.createTrueLiteral(); + } + + public static FalseLiteral createFalseLiteral() { + return fiacre_factory.createFalseLiteral(); + } + + public static NaturalLiteral createNaturalLiteral() { + return fiacre_factory.createNaturalLiteral(); + } + + public static IdentifierExpression createIdentifierExpression() { + return fiacre_factory.createIdentifierExpression(); + } + + public static ComponentDeclarationInstance createComponentDeclarationInstance() { + return fiacre_instance_factory.createComponentDeclarationInstance(); + } + public static CompositionInstance createCompositionInstance() { + return fiacre_instance_factory.createCompositionInstance(); + } + + public static ProcessDeclarationInstance createProcessDeclarationInstance() { + return fiacre_instance_factory.createProcessDeclarationInstance(); + } + + public static InstanceExecutedStatementBlock createInstanceExecutedStatementBlock() { + return fiacre_instance_factory.createInstanceExecutedStatementBlock(); + } + + public static InstanceFireableStatementBlock createInstanceFireableStatementBlock() { + return fiacre_instance_factory.createInstanceFireableStatementBlock(); + } + + public static InstanceEnabledStatementBlock createInstanceEnabledStatementBlock() { + return fiacre_instance_factory.createInstanceEnabledStatementBlock(); + } + + public static ExecutedStatementBlock createExecutedStatementBlock() { + return fiacre_instance_factory.createExecutedStatementBlock(); + } + + public static FireableStatementBlock createFireableStatementBlock() { + return fiacre_instance_factory.createFireableStatementBlock(); + } + + public static EnabledStatementBlock createEnabledStatementBlock() { + return fiacre_instance_factory.createEnabledStatementBlock(); + } + + + public static Site createSite() { + return fiacre_msc_factory.createSite(); + } + public static Step createStep() { + return fiacre_msc_factory.createStep(); + } + public static SynchronisationStep createSynchronisationStep() { + return fiacre_msc_factory.createSynchronisationStep(); + } + public static SendStep createSendStep() { + return fiacre_msc_factory.createSendStep(); + } + public static EnterStateStep createEnterStateStep() { + return fiacre_msc_factory.createEnterStateStep(); + } + protected static Resource createInstanceModel(IFile file) { + // Initialize the model + FiacreinstancePackage.eINSTANCE.eClass(); + + // Retrieve the default factory singleton + fiacre_instance_factory = FiacreinstanceFactory.eINSTANCE; + // create the content of the model via this program + InstanceModel instanceModel = fiacre_instance_factory.createInstanceModel(); + + // As of here we preparing to save the model content + + // Register the XMI resource factory for the .website extension + + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("fiacreinstance", new XMIResourceFactoryImpl()); + + // Obtain a new resource set + ResourceSet resSet = new ResourceSetImpl(); + // create a resource + Resource resource = resSet.createResource(URI.createFileURI(getInstanceFilePath(file))); + // Get the first model element and cast it to the right type, in my + // example everything is hierarchical included in this first node + resource.getContents().add(instanceModel); + + // now save the content. + try { + resource.save(Collections.EMPTY_MAP); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return resource; + } + + protected static Resource createMSCModel(IFile file) { + // Initialize the model + MscPackage.eINSTANCE.eClass(); + + // Retrieve the default factory singleton + fiacre_msc_factory = MscFactory.eINSTANCE; + // create the content of the model via this program + MSC mscModel = fiacre_msc_factory.createMSC(); + + // As of here we preparing to save the model content + + // Register the XMI resource factory for the .website extension + + Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + Map m = reg.getExtensionToFactoryMap(); + m.put("mscmodel", new XMIResourceFactoryImpl()); + + // Obtain a new resource set + ResourceSet resSet = new ResourceSetImpl(); + // create a resource + Resource resource = resSet.createResource(URI.createFileURI(getMscFilePath(file))); + // Get the first model element and cast it to the right type, in my + // example everything is hierarchical included in this first node + resource.getContents().add(mscModel); + + // now save the content. + try { + resource.save(Collections.EMPTY_MAP); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return resource; + } + protected static String nameWithoutExtension(IFile file) { + String fileName = file.getName(); + int pos = fileName.lastIndexOf("."); + if (pos > 0) { + fileName = fileName.substring(0, pos); + } + return fileName; + } + + protected static String getTTSFilePath(IFile file) { + return file.getParent().getLocation() + "/" + nameWithoutExtension(file) + ".tts"; + } + + protected static String getInstanceFilePath(IFile file) { + return file.getParent().getLocation() + "/" + nameWithoutExtension(file) + ".fiacreinstance"; + } + protected static String getMscFilePath(IFile file) { + return file.getParent().getLocation() + "/" + nameWithoutExtension(file) + ".mscmodel"; + } + + protected static void callFracCommand(IFile file) { + try { + ProcessBuilder pb_make = new ProcessBuilder(Tools.FRAC_PATH+"frac","-g", "-j", file.getLocation().toString(), + getTTSFilePath(file)); + pb_make.directory(new File(file.getParent().getLocation().toString())); + Process p = pb_make.start(); + p.waitFor(); + System.out.println("Compiling Fiacre model ..."); + } catch (IOException e) { + e.printStackTrace(); + + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + } + + protected static void callFrac_G_Command(IFile file) { + try { + ProcessBuilder pb_make = new ProcessBuilder(Tools.FRAC_PATH+"frac", "-G", file.getLocation().toString(), + getTTSFilePath(file)+"/"+file.getName()+".fcriG"); + pb_make.directory(new File(file.getParent().getLocation().toString())); + Process p = pb_make.start(); + p.waitFor(); + } catch (IOException e) { + e.printStackTrace(); + + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + } + + protected static void callFrac_g_G_Command(IFile file) { + try { + ProcessBuilder pb_make = new ProcessBuilder(Tools.FRAC_PATH+"frac","-g","-G", file.getLocation().toString(), + getTTSFilePath(file)+"/"+file.getName()+".fcrigG"); + pb_make.directory(new File(file.getParent().getLocation().toString())); + Process p = pb_make.start(); + p.waitFor(); + } catch (IOException e) { + e.printStackTrace(); + + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + } + + protected static void callPythonCommand(IFile file) { + try { + ProcessBuilder pb_make = new ProcessBuilder("python", "-m", "json.tool", + nameWithoutExtension(file) + ".json", "f_" + nameWithoutExtension(file) + ".json"); + pb_make.directory(new File(getTTSFilePath(file))); + Process p = pb_make.start(); + p.waitFor(); + } catch (IOException e) { + e.printStackTrace(); + + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + } + + protected static void callMakeCommand(IFile file) { + try { + ProcessBuilder pb_make = new ProcessBuilder("make", "-f", Tools.FRAC_PATH+"Makefile", + " NAME=" + nameWithoutExtension(file),"FRACLIB="+Tools.FRAC_PATH+"lib"); + pb_make.directory(new File(file.getParent().getLocation().toString())); + Process p = pb_make.start(); + p.waitFor(); + System.out.println("Compiled Fiacre model"); + } catch (IOException e) { + e.printStackTrace(); + + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + } + + protected static JSONObject getStaticJsonObject(String static_json_file_path) { + JSONParser parser = new JSONParser(); + try { + FileReader fr = new FileReader(static_json_file_path); + Object obj = parser.parse(fr); + // The most important statement + // It is necessary to close the FileReader in order to + // unlock the file locked during its opening + fr.close(); + return (JSONObject) obj; + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static JSONObject getJsonObject(String string) { + JSONParser parser = new JSONParser(); + try { + Object obj = parser.parse(string); + return (JSONObject) obj; + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + protected static String getStaticJsonFilePath(IFile file) { + return getTTSFilePath(file) + "/" + nameWithoutExtension(file) + ".json"; + } + + protected static XtextResource getFiacreXtextResource(IFile file) { + Injector injector = XtextActivator.getInstance().getInjector("fr.irit.fiacre.xtext.Fiacre"); + XtextResourceSetProvider provider = injector.getInstance(XtextResourceSetProvider.class); + ResourceSet resourceSet = provider.get(file.getProject()); + + URI xtextURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true); + + return (XtextResource) resourceSet.getResource(xtextURI, true); + + } + + public static void saveResource(Resource resource) { + try { + resource.save(Collections.EMPTY_MAP); + } catch (IOException e) { + e.printStackTrace(); + } + //Added + URI resolvedFile = CommonPlugin.resolve(resource.getURI()); + IResource dfile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(resolvedFile.toFileString())); + try { + dfile.refreshLocal(IResource.DEPTH_INFINITE, null); + } catch (CoreException e) { + e.printStackTrace(); + } + } + + protected static void compileFiacreModel(IFile file) { + try { + Tools.getProperties() ; + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + // Call Frac compiler + callFracCommand(file); + // Call make + callMakeCommand(file); + callFrac_g_G_Command(file); + callFrac_G_Command(file); + } + public static QueueExpression createQueueExpression() { + return fiacre_factory.createQueueExpression(); + } + + public static ArrayExpression createArrayExpression() { + return fiacre_factory.createArrayExpression(); + } + + public static RecordExpression createRecordExpression() { + return fiacre_factory.createRecordExpression(); + } + + public static FieldExpression createFieldExpression() { + return fiacre_factory.createFieldExpression(); + } + + public static ConstructionExpression createConstructionExpression() { + return fiacre_factory.createConstructionExpression(); + } + + public static void showException(String message, final Exception ex) { + + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + ex.printStackTrace(pw); + // ex.printStackTrace(); + + final String trace = sw.toString(); // stack trace as a string + + // Temp holder of child statuses + List childStatuses = new ArrayList(); + + String error = null; + // Split output by OS-independend new-line + for (String line : trace.split(System.getProperty("line.separator"))) { + if (error == null) + error = line; + else + childStatuses.add(new Status(IStatus.ERROR, Activator.PLUGIN_ID, line)); + } + + MultiStatus multiStatus = new MultiStatus(Activator.PLUGIN_ID, IStatus.ERROR, + childStatuses.toArray(new Status[] {}), // convert to array of + // statuses + error, ex); + + ErrorDialog.openError(null, "Unexpected Error", message, multiStatus); + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CountMarkersForFile.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CountMarkersForFile.java new file mode 100644 index 0000000..c346a7d --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CountMarkersForFile.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.marking; + +import java.util.List; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IMarker; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.ui.IEditorActionDelegate; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.PlatformUI; + +public class CountMarkersForFile implements IEditorActionDelegate { + + public CountMarkersForFile() { + super(); + } + + @Override + public void setActiveEditor(IAction action, IEditorPart editor) { + } + + /* + * I am using this method to find the markers that are directly related to the specified ifile. + * Then output the number of markers that are returned + * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) + */ + @Override + public void run(IAction action) { + IFile file = (IFile) PlatformUI.getWorkbench().getActiveWorkbenchWindow(). + getActivePage().getActiveEditor().getEditorInput(). + getAdapter(IFile.class); + List markers = MarkerFactory.findMarkers(file); + MessageDialog dialog = new MessageDialog(MarkerPluginActivator.getShell(), "Marker Count", null, markers.size() + " marker(s)", MessageDialog.INFORMATION, new String[] {"OK"}, 0); + dialog.open(); + + } + + @Override + public void selectionChanged(IAction action, ISelection selection) { + // TODO Auto-generated method stub + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CountMarkersForFiles.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CountMarkersForFiles.java new file mode 100644 index 0000000..1edc10e --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CountMarkersForFiles.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.marking; + +import java.util.List; + +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.jdt.core.IOpenable; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.TreeSelection; +import org.eclipse.ui.IEditorActionDelegate; +import org.eclipse.ui.IEditorPart; + +public class CountMarkersForFiles implements IEditorActionDelegate { + + public CountMarkersForFiles() { + super(); + } + + @Override + public void setActiveEditor(IAction action, IEditorPart editor) { + } + + /* + * This is used to find all the markers for an IResource and any sub resources. + * Then output the number of markers that are returned + */ + @Override + public void run(IAction action) { + TreeSelection selection = MarkerFactory.getTreeSelection(); + if (selection.getFirstElement() instanceof IOpenable) { + IResource resource = (IResource) ((IAdaptable) selection.getFirstElement()).getAdapter(IResource.class); + List markers = MarkerFactory.findAllMarkers(resource); + + MessageDialog dialog = new MessageDialog(MarkerPluginActivator.getShell(), "Marker Count", null, markers.size() + " marker(s)", MessageDialog.INFORMATION, new String[] {"OK"}, 0); + dialog.open(); + } + } + + @Override + public void selectionChanged(IAction action, ISelection selection) { + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CreateMarkerAction.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CreateMarkerAction.java new file mode 100644 index 0000000..7d57b16 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/CreateMarkerAction.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.marking; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.text.Position; +import org.eclipse.jface.text.TextSelection; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.ui.IEditorActionDelegate; +import org.eclipse.ui.IEditorPart; + +public class CreateMarkerAction implements IEditorActionDelegate { + + public CreateMarkerAction() { + super(); + } + + @Override + public void setActiveEditor(IAction action, IEditorPart editor) { + } + + /* + * This action creates a new marker for the given IFile + */ + @Override + public void run(IAction action) { + try { + TextSelection selection = MarkerFactory.getTextSelection(); + IFile file = (IFile) MarkerPluginActivator.getEditor().getEditorInput().getAdapter(IFile.class); + IMarker mymarker = MarkerFactory.createMarker(file, new Position(selection.getOffset(), selection.getLength())); + } catch (CoreException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @Override + public void selectionChanged(IAction action, ISelection selection) { + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/FileDecorator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/FileDecorator.java new file mode 100644 index 0000000..370bce8 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/FileDecorator.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.marking; + +import org.eclipse.core.resources.IResource; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.IDecoration; +import org.eclipse.jface.viewers.ILightweightLabelDecorator; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Font; + +public class FileDecorator extends LabelProvider implements ILightweightLabelDecorator { + + public static final String ICON = "/icons/sample.gif"; + private static Font font = new Font(null, "Arial", 10, 0); + private static Color color = new Color(null, 0, 0, 255); + + @Override + public void decorate(Object resource, IDecoration decoration) { + int markers = MarkerFactory.findMarkers((IResource) resource).size(); + if (MarkingController.file == resource) { + decoration.addOverlay(ImageDescriptor.createFromFile(FileDecorator.class, ICON), IDecoration.TOP_RIGHT); + decoration.addPrefix(""); + decoration.addSuffix(" - running "); + decoration.setFont(font); + decoration.setForegroundColor(color); + } + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerFactory.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerFactory.java new file mode 100644 index 0000000..0f63adf --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerFactory.java @@ -0,0 +1,117 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.marking; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.jface.text.Position; +import org.eclipse.jface.text.TextSelection; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.TreeSelection; + + +public class MarkerFactory { + + //Marker ID + public static final String MARKER = "com.irtsaintexupery.fiacre.simulator.marking.marker"; + + //Annotation ID + public static final String ANNOTATION = "com.irtsaintexupery.fiacre.simulator.marking.annotation"; + + /* + * Creates a Marker + */ + public static IMarker createMarker(IResource res, Position position) + throws CoreException { + IMarker marker = null; + //note: you use the id that is defined in your plugin.xml + marker = res.createMarker(MARKER); + marker.setAttribute(IMarker.MESSAGE, "My Marker"); + //compute and set char start and char end + int start = position.getOffset(); + int end = position.getOffset() + position.getLength(); + marker.setAttribute(IMarker.CHAR_START, start); + marker.setAttribute(IMarker.CHAR_END, end); + return marker; + } + + /* + * returns a list of a resources markers + */ + public static List findMarkers(IResource resource) { + try { + return Arrays.asList(resource.findMarkers(MARKER, true, IResource.DEPTH_ZERO)); + } catch (CoreException e) { + return new ArrayList(); + } + } + + /* + * Returns a list of markers that are linked to the resource or any sub resource of the resource + */ + public static List findAllMarkers(IResource resource) { + try { + return Arrays.asList(resource.findMarkers(MARKER, true, IResource.DEPTH_INFINITE)); + } catch (CoreException e) { + return new ArrayList(); + } + } + + /* + * Returns the selection of the package explorer + */ + public static TreeSelection getTreeSelection() { + + ISelection selection = MarkerPluginActivator.getActiveWorkbenchWindow().getSelectionService().getSelection(); + if (selection instanceof TreeSelection) { + return (TreeSelection)selection; + } + return null; + } + + /* + * Returns the selection of the package explorer + */ + public static TextSelection getTextSelection() { + + ISelection selection = MarkerPluginActivator.getActiveWorkbenchWindow().getSelectionService().getSelection(); + if (selection instanceof TextSelection) { + return (TextSelection)selection; + } + return null; + } + +// public static void addAnnotation(IMarker marker, ITextSelection selection, ITextEditor editor) { +// //The DocumentProvider enables to get the document currently loaded in the editor +// IDocumentProvider idp = editor.getDocumentProvider(); +// +// //This is the document we want to connect to. This is taken from the current editor input. +// IDocument document = idp.getDocument(editor.getEditorInput()); +// +// //The IannotationModel enables to add/remove/change annoatation to a Document loaded in an Editor +// IAnnotationModel iamf = idp.getAnnotationModel(editor.getEditorInput()); +// +// //Note: The annotation type id specify that you want to create one of your annotations +// SimpleMarkerAnnotation ma = new SimpleMarkerAnnotation(ANNOTATION, marker); +// +// //Finally add the new annotation to the model +// iamf.connect(document); +// iamf.addAnnotation(ma,new Position(selection.getOffset(),selection.getLength())); +// iamf.disconnect(document); +// } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerPluginActivator.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerPluginActivator.java new file mode 100644 index 0000000..dab7036 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerPluginActivator.java @@ -0,0 +1,93 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.marking; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.ui.texteditor.ITextEditor; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class MarkerPluginActivator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "MyMarker"; + + // The shared instance + private static MarkerPluginActivator plugin; + + /** + * The constructor + */ + public MarkerPluginActivator() { + } + + /* + * (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); + } + + public static Shell getShell() { + return getActiveWorkbenchWindow().getShell(); + } + + public static IWorkbenchWindow getActiveWorkbenchWindow() { + return PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static MarkerPluginActivator getDefault() { + return plugin; + } + + /** + * Returns an image descriptor for the image file at the given + * plug-in relative path + * + * @param path the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return imageDescriptorFromPlugin(PLUGIN_ID, path); + } + + /** + * Always good to have this static method as when dealing with IResources + * having a interface to get the editor is very handy + * @return + */ + public static ITextEditor getEditor() { + return (ITextEditor) getActiveWorkbenchWindow().getActivePage().getActiveEditor(); + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerUpdater.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerUpdater.java new file mode 100644 index 0000000..d9fb427 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkerUpdater.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.marking; + +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.text.Position; +import org.eclipse.ui.texteditor.IMarkerUpdater; + +public class MarkerUpdater implements IMarkerUpdater { + /* + *Returns the attributes for which this updater is responsible. + *If the result is null, the updater assumes responsibility for any attributes. + */ + @Override + public String[] getAttribute() { + return null; + } + + @Override + public String getMarkerType() { + //returns the marker type that we are interested in updating + return MarkerFactory.MARKER; + } + + @Override + public boolean updateMarker(IMarker marker, IDocument doc, Position position) { + try { + int start = position.getOffset(); + int end = position.getOffset() + position.getLength(); + marker.setAttribute(IMarker.CHAR_START, start); + marker.setAttribute(IMarker.CHAR_END, end); + return true; + } catch (CoreException e) { + return false; + } + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkingController.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkingController.java new file mode 100644 index 0000000..a4dd43b --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/marking/MarkingController.java @@ -0,0 +1,95 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.marking; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.jface.text.Position; +import org.eclipse.xtext.nodemodel.impl.CompositeNode; +import org.eclipse.xtext.nodemodel.util.NodeModelUtils; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.ui.resource.XtextResourceSetProvider; + +import com.google.inject.Injector; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock; + +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.ui.internal.XtextActivator; + +public class MarkingController { + // added selection attribute + public static IFile file; + + protected static XtextResource getFiacreXtextResource(IFile file) { + Injector injector = XtextActivator.getInstance().getInjector("fr.irit" + + ".fiacre.xtext.Fiacre"); + XtextResourceSetProvider provider = injector + .getInstance(XtextResourceSetProvider.class); + ResourceSet resourceSet = provider.get(file.getProject()); + + URI xtextURI = URI.createPlatformResourceURI(file + .getFullPath().toString(), true); + + return (XtextResource) resourceSet.getResource(xtextURI, true); + } + + // Jorge Gutierrez 05/08/2016 + public static void highlightCode(StatementBlock statementblock) { + + for (InstanceStatementBlock isb : statementblock + .getInstanceStatementBlocks()) { + CompositeNode tr_source_cn = (CompositeNode) NodeModelUtils + .findActualNodeFor(isb.getTransitionSource()); + try { + IMarker tr_src_marker = MarkerFactory.createMarker(file, + new Position(tr_source_cn.getOffset(), tr_source_cn + .getLength())); + } catch (CoreException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + for (Statement s : isb.getStatements()) { + CompositeNode s_cn = (CompositeNode) NodeModelUtils + .findActualNodeFor(s); + try { + IMarker smarker = MarkerFactory.createMarker(file, + new Position(s_cn.getOffset(), s_cn.getLength())); + } catch (CoreException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + } + + //Jorge Gutierrez 08/08/2016 + public static void deleteMarkers (IFile file){ + try { +// int markers = MarkerFactory.findMarkers(file).size(); +// System.out.println("#marks before " + markers); +// System.out.println("file " + file); + file.deleteMarkers("com.irtsaintexupery.fiacre.simulator" + + ".marking.marker", true, 0); +// markers = MarkerFactory.findMarkers(file).size(); +// System.out.println("#marks after " + markers); + + } catch (CoreException e) { + //TODO Auto-generated catch block + e.printStackTrace(); + } + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/PerspectiveSimulatorFactory.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/PerspectiveSimulatorFactory.java new file mode 100644 index 0000000..17d74ab --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/PerspectiveSimulatorFactory.java @@ -0,0 +1,83 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective; + +import org.eclipse.ui.IFolderLayout; +import org.eclipse.ui.IPageLayout; +import org.eclipse.ui.IPerspectiveFactory; + +public class PerspectiveSimulatorFactory implements IPerspectiveFactory { + + @Override + public void createInitialLayout(IPageLayout layout) { + defineActions(layout); + defineLayout(layout); + + } + + public void defineActions (IPageLayout layout){ + //Add "new wizards" + layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.folder"); + layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.file"); + + //Add "show views" + layout.addShowViewShortcut(IPageLayout.ID_RES_NAV); + layout.addShowViewShortcut(IPageLayout.ID_BOOKMARKS); + layout.addShowViewShortcut(IPageLayout.ID_OUTLINE); + layout.addShowViewShortcut(IPageLayout.ID_PROP_SHEET); + layout.addShowViewShortcut(IPageLayout.ID_PROP_SHEET); + layout.addShowViewShortcut(IPageLayout.ID_TASK_LIST); + } + + public void defineLayout(IPageLayout layout) { + //Editors are placed for free + String editorArea = layout.getEditorArea(); + + //Place navigator and outiline to left of editor area. + IFolderLayout navigator = layout.createFolder("navigator", + IPageLayout.LEFT, (float) 0.18, editorArea); + IFolderLayout instances = layout.createFolder("instances", + IPageLayout.RIGHT, (float) 0.75, editorArea); + IFolderLayout values = layout.createFolder("values", + IPageLayout.BOTTOM, (float) 0.75, editorArea); + IFolderLayout transitions = layout.createFolder("transitions", + IPageLayout.BOTTOM, (float) 0.25, "instances"); + IFolderLayout executedAction = layout.createFolder("executedAction", + IPageLayout.BOTTOM, (float) 0.5, "transitions"); + IFolderLayout savedStates = layout.createFolder("savedStates", + IPageLayout.BOTTOM, (float) 0.4, "executedAction"); + + navigator.addView("org.eclipse.ui.navigator.ProjectExplorer"); + instances.addView("com.irtsaintexupery.fiacre.simulator.perspective" + + ".instancesView"); + transitions.addView("com.irtsaintexupery.fiacre.simulator.perspective" + + ".transitionsView"); + values.addView("com.irtsaintexupery.fiacre.simulator.perspective" + + ".valuesView"); + executedAction.addView("com.irtsaintexupery.fiacre.simulator.perspective" + + ".executedActionView"); + executedAction.addView("com.irtsaintexupery.fiacre.simulator.perspective" + + ".savedStatesView"); + } + + public interface IPerspectivePlugin { + //*plugin id + public final static String PLUGIN_ID = "com.irtsaintexupery.fiacre" + + ".simulator.perspective"; + + //*perspective id + public final static String TEST_PERSPECTIVE_ID = "com.irtsaintexupery" + + ".fiacre.simulator.perspective.fiacreSimulator"; + + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/ViewsController.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/ViewsController.java new file mode 100644 index 0000000..591c8c6 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/ViewsController.java @@ -0,0 +1,1018 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Stack; + +import org.apache.thrift.TException; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.IWorkspaceDescription; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Platform; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.text.Position; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IPartListener; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.WorkbenchException; +import org.eclipse.ui.actions.ImportResourcesAction; +import org.eclipse.ui.part.ViewPart; +import org.eclipse.ui.texteditor.AbstractTextEditor; +import org.eclipse.ui.texteditor.ITextEditor; +import org.eclipse.xtext.nodemodel.ICompositeNode; +import org.eclipse.xtext.nodemodel.INode; +import org.eclipse.xtext.nodemodel.impl.CompositeNode; +import org.eclipse.xtext.nodemodel.impl.LeafNode; +import org.eclipse.xtext.nodemodel.util.NodeModelUtils; + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceStatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.StatementBlock; +import com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance; +import com.irtsaintexupery.fiacre.simulator.core.FiacreSimulator; +import com.irtsaintexupery.fiacre.simulator.core.Utils; +import com.irtsaintexupery.fiacre.simulator.marking.MarkerFactory; +import com.irtsaintexupery.fiacre.simulator.marking.MarkingController; +import com.irtsaintexupery.fiacre.simulator.perspective.model.ActionState; +import com.irtsaintexupery.fiacre.simulator.perspective.model.TreeObject; +import com.irtsaintexupery.fiacre.simulator.perspective.model.TreeParent; +import com.irtsaintexupery.fiacre.simulator.perspective.model.ValuesData; +import com.irtsaintexupery.fiacre.simulator.perspective.model.ValuesDataProvider; +import com.irtsaintexupery.fiacre.simulator.perspective.views.*; +import com.irtsaintexupery.fiacre.simulator.staticjson.extractor.DynamicJsonExtractor; +import com.sun.javafx.css.Declaration; +import com.sun.xml.internal.ws.spi.db.FieldSetter; + +import fr.irit.fiacre.xtext.fiacre.ArrayExpression; +import fr.irit.fiacre.xtext.fiacre.ConstructionExpression; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.FalseLiteral; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.FieldExpression; +import fr.irit.fiacre.xtext.fiacre.IdentifierExpression; +import fr.irit.fiacre.xtext.fiacre.NaturalLiteral; +import fr.irit.fiacre.xtext.fiacre.ProcessDeclaration; +import fr.irit.fiacre.xtext.fiacre.QueueExpression; +import fr.irit.fiacre.xtext.fiacre.RecordExpression; +import fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration; +import fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.TrueLiteral; +import fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration; +import fr.irit.fiacre.xtext.fiacre.ValueExpression; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; +import fr.laas.libtts.LibTTS; +import tts.Error; +import tts.NotFireable; +import tts.StateNotFound; +import tts.TTSState; +import tts.Transition; +import tts.TransitionNotFound; + +/** + * @author jorge.gutierrez + * Class for control the views in the simulator + *

    + * it makes the communication between simulator model and visual interface + */ +/** + * @author jorge.gutierrez + * + */ +/** + * @author jorge.gutierrez + * + */ +/** + * @author jorge.gutierrez + * + */ +public enum ViewsController { + INSTANCE; + + //variables to make instance of active views and to call their functions + private InstancesView instancesView; + private TransitionsView transitionsView; + private ValuesView valuesView; + private ExecutedActionView executedActionView; + private SavedStatesView savedStatesView; + + //variables to take control of Workbench + private IWorkbench wb = PlatformUI.getWorkbench(); + private IWorkbenchWindow win = wb.getActiveWorkbenchWindow(); + private IWorkbenchPage page = win.getActivePage(); + + //variable to store the current simulated file + private static IFile file = null; + + //variable to store the current Json model + private DynamicJsonExtractor djeViews; + + //HashMap to store the instances assigned to a TreeObject key + // and to make mapping with + private HashMap instancesMap; + + //Jorge Gutierrez 05/08/2016 + //to store the transition assigned to a String key + private HashMap transitionExecutableMap; + + //Jorge Gutierrez 10/08/2016 + //Stack to store a copy of each new action. + private Stack actionStack; + + //Jorge Gutierrez 26/08/2016 + //HasMap to store a state model from the simulation + private HashMap stateMap; + + //HasMap to store a action stack linked to saved state tag + private HashMap activitiesStackMap; + + private class StateStructure{ + public Stack interfaceStack; + public Stack modelStack; + + public StateStructure() { + interfaceStack = new Stack(); + modelStack = new Stack(); + } + } + + //Constructor + ViewsController() { + instancesMap = new HashMap(); + transitionExecutableMap = new HashMap(); + stateMap = new HashMap(); + actionStack = new Stack(); + activitiesStackMap = new HashMap(); + page.getActivePart().getSite().getWorkbenchWindow(). + getPartService().addPartListener(partListener); + djeViews = FiacreSimulator.sendDje(); + + } + + private IPartListener partListener = new IPartListener() { + public void partOpened(IWorkbenchPart part) { + } + + @Override + public void partActivated(IWorkbenchPart part) { + + } + + @Override + public void partBroughtToTop(IWorkbenchPart part) { + // TODO Auto-generated method stub + + } + + @Override + public void partClosed(IWorkbenchPart part) { + // TODO Auto-generated method stub + + } + + @Override + public void partDeactivated(IWorkbenchPart part) { + // TODO Auto-generated method stub + + } + }; + + public IFile getFile() { + return file; + } + + // Jorge Gutierrez 20/07/2016 + /** + * displays the Fiacre Simulator perspective + *

    + * displays perspective by its id, calls every view updates and resets the marking + * and data values. + * + * Takes the current simulation model and looks for the InstanceView instance to call an update + * Takes the current simulation model and looks for the transitionView instance to call an update + * Takes the current simulation model and looks for the ExecutedActionView instance to call an update + * Looks for the ExecutedActionView instance to call an update + */ + public void openPespective() { + //displays perspective by its corresponding id + try { + PlatformUI.getWorkbench().showPerspective("com.irtsaintexupery" + + ".fiacre.simulator.perspective.fiacreSimulator", + PlatformUI.getWorkbench().getActiveWorkbenchWindow()); + } catch (WorkbenchException e) { + e.printStackTrace(); + } + + //Takes the simulated model + djeViews = FiacreSimulator.sendDje(); + + //looks for a active ValuesViews instance. + ViewPart valuesPart = (ViewPart) wb.getActiveWorkbenchWindow() + .getActivePage().findView("com.irtsaintexupery.fiacre.simulator" + + ".perspective.valuesView"); + if (valuesPart instanceof ValuesView) { + valuesView = (ValuesView) valuesPart; + } + + ////looks for a active InstancesView instance + ViewPart instancesPart = (ViewPart) wb.getActiveWorkbenchWindow() + .getActivePage().findView("com.irtsaintexupery.fiacre.simulator" + + ".perspective.instancesView"); + if (instancesPart instanceof InstancesView) { + instancesView = (InstancesView) instancesPart; + } + + //looks for a active TransitionView instance and call update. + ViewPart transitionsPart = (ViewPart) wb.getActiveWorkbenchWindow(). + getActivePage().findView("com.irtsaintexupery.fiacre.simulator" + + ".perspective.transitionsView"); + if (transitionsPart instanceof TransitionsView) { + transitionsView = (TransitionsView) transitionsPart; + //calls update by passing a list of transitions names as parameter. + transitionsView.update(returnTransitions()); + } + + //looks for a active ExecutedActionView instance. + ViewPart executedActionPart = (ViewPart) wb.getActiveWorkbenchWindow(). + getActivePage().findView("com.irtsaintexupery.fiacre.simulator" + + ".perspective.executedActionView"); + if (executedActionPart instanceof ExecutedActionView) { + executedActionView = (ExecutedActionView) executedActionPart; + //calls update by passing a list of Executed Action as parameter. + executedActionView.update(returnActions()); + } + + //looks for a active SavedStatesView instance. + ViewPart savedStatesPart = (ViewPart) wb.getActiveWorkbenchWindow(). + getActivePage().findView("com.irtsaintexupery.fiacre.simulator" + + ".perspective.savedStatesView"); + if (savedStatesPart instanceof SavedStatesView) { + savedStatesView = (SavedStatesView) savedStatesPart; + } + + //resets values and updates views + ValuesDataProvider.removeData(); + reinitializeValuesView(); + updateInstanceView(); + updateTransitionView(); + updateExecutedActionView(); + updateSavedStatesView(); + //resets marking + MarkingController.file = file; + MarkingController.deleteMarkers(file); + //refreshes Project Explorer part + refresh(); + + } + + + /** + * Makes an update to show the currents transitions on transition window (views part). + *

    + * Calls an update by giving the transitions instances names. + */ + public void updateTransitionView() { + //updates current model. + djeViews = FiacreSimulator.sendDje(); + //calls update by passing a list of transitions names as parameter. + transitionsView.update(returnTransitions()); + } + + /** + * Shows the values data from a selected Instance(TreeObject) on the ValuesView. + *

    + * Takes the current simulation model, uses a Instance converted into TreeObject + * to found their values, looks for the ValuesView instance to call an update. + * @param object The object of the Instance-set converted into a TreeObject. + */ + public void showValuesView(TreeObject object) { + //updates current model. + djeViews = FiacreSimulator.sendDje();////////////////////////////////////////////////////////////!!!!!!!!!!!!!! + //search with the TreeObject key the mapped DeclarationInstance and give a list of contained variables. + if(instancesMap.get(object) instanceof DeclarationInstance){ + DeclarationInstance declarationInstance = (DeclarationInstance) instancesMap.get(object); + EList variableList = declarationInstance. + getVariableDeclarationInstances(); + //reinitializes ValuesTable + ValuesDataProvider.removeData(); + //sets ValuesTable with the list of variables + for (VariableDeclarationInstance value : variableList) { + ValuesData v = new ValuesData(); + //set nomenclature value + v.setCurrent(getStringValue(value.getCurrentValue())); + v.setName(value.getVariableDeclaration().getName()); + ValuesDataProvider.addValues(v); + } + //looks for a active ValuesView instance and call update. + ViewPart valuesPart = (ViewPart) wb.getActiveWorkbenchWindow(). + getActivePage().findView("com.irtsaintexupery.fiacre.simulator" + + ".perspective.valuesView"); + if (valuesPart instanceof ValuesView) { + valuesView = (ValuesView) valuesPart; + valuesView.update(); + } + } + } + + //Jorge Gutierrez 25/08/2016 + /** + * Treats variable value and returns the corresponding nomenclature value. + *

    + * Recursive function that returns a character String by following the next rules. + * @param ve the valuesExpression given by Fiacre Model. + * @return the character String according to the embedded type. + */ + public static String getStringValue(ValueExpression ve){ + //returns false when ValueExpression is of type FalseLiteral + if(ve instanceof FalseLiteral){ + return "False"; + } + //returns true when ValueExpression is of type TrueLiteral + else if (ve instanceof TrueLiteral) { + return "True"; + //returns number when ValueExpression is of type NaturaLiteral + }else if (ve instanceof NaturalLiteral) { + return ((NaturalLiteral) ve).getValue()+""; + //returns the ValueExpression * contained by [*] when is of type ArrayExpresion + }else if (ve instanceof ArrayExpression) { + ArrayExpression ae = (ArrayExpression)ve; + String text = "["; + for (int i = 0; i < ae.getValues().size(); i++) { + Expression e = ae.getValues().get(i); + if (i == ae.getValues().size() - 1) { + text = text + getStringValue((ValueExpression)e); + }else { + text = text + getStringValue((ValueExpression)e) + ", "; + } + } + return text + "]"; + //returns the ValueExpression * contained by {*} when is of type RecordExpression + }else if (ve instanceof RecordExpression) { + RecordExpression re = (RecordExpression)ve; + String text = "{"; + for (int i = 0; i < re.getFields().size(); i++) { + FieldExpression fe = re.getFields().get(i); + RecordFieldDeclaration rfd = (RecordFieldDeclaration)fe.getField(); + //if it is the last element, does not add the separator ", " + if (i == re.getFields().size() - 1) { + text = text + rfd.getName() + " = " +getStringValue((ValueExpression)fe.getValue()); + }else { + text = text + rfd.getName() + " = " +getStringValue((ValueExpression)fe.getValue()) + ", "; + } + } + return text + "}"; + //returns the ValueExpression * contained by {|*|} when is of type QueueExpression + }else if (ve instanceof QueueExpression) { + QueueExpression qe = (QueueExpression)ve; + String text = "{|"; + for (int i = 0; i < qe.getValues().size(); i++) { + Expression e = qe.getValues().get(i); + //if it is the last element, does not add the separator ", " + if (i == qe.getValues().size() - 1) { + text = text + getStringValue((ValueExpression)e); + }else { + text = text + getStringValue((ValueExpression)e) + ", "; + } + } + return text + "|}"; + }else if(ve instanceof IdentifierExpression) { + //returns a ValueExpression contained by TagDeclaration name (*) when is of type ConstructionExpression + if (ve instanceof ConstructionExpression) { + ConstructionExpression ce = (ConstructionExpression)ve; + String text = ""; + for (int i = 0; i < ce.getParameters().size(); i++) { + Expression e = ce.getParameters().get(i); + //if it is the last element, does not add the separator ", " + if (i == ce.getParameters().size() - 1) { + text = text + ((UnionTagDeclaration)ce.getDeclaration()).getName() + "(" + getStringValue((ValueExpression)e) + ")"; + }else { + text = text + ((UnionTagDeclaration)ce.getDeclaration()).getName() + "(" + getStringValue((ValueExpression)e) + "), "; + } + } + return text; + //returns the TagDeclaration name when is of type IdentifierExpression + } else { + IdentifierExpression ie = (IdentifierExpression)ve; + ExpressionDeclarationUse edu = ie.getDeclaration(); + UnionTagDeclaration utd = (UnionTagDeclaration)ie.getDeclaration(); + return utd.getName(); + } + } + return ""; + + } + + + /** + * Cleans the Values Table. + *

    + * Removes data from ValuesDataProvider and looks for the ValuesView instance to + * call an update. Show an empty table in the updating + */ + public void reinitializeValuesView() { + ValuesDataProvider.removeData(); + valuesView.update(); + } + + /** + * Makes an update to show the currents instances on instance window (views part). + *

    + * Calls an update by giving the Tree head (TreeObject) which contains the instances name in the root and + * their children from the Fiacre Model. + */ + public void updateInstanceView() { + //updates current model. + djeViews = FiacreSimulator.sendDje(); + //call update by passing a TreeObject. + instancesView.update(returnInstances()); + } + + //Jorge Gutierrez 17/08/2016 + /** + * Adds a delay element (ActionState) in the actionStack when the DelayAction is launched + * @param dl The value about the delay given by the user + */ + public void addDelayToAction (String dl){ + ActionState obj = new ActionState("DELAY: " + dl, true); + actionStack.add(obj); + } + + /** + * Adds a fire element (ActionState) in the actionStack when the FireAction is launched + * @param dl The value about the delay given by the user + */ + public void addFireToAction (String tr_name){ + //Jorge Gutierrez 16/08/2016 + ActionState actionFire = new ActionState(tr_name, false); + actionStack.add(actionFire); + } + + /** + * executes a transition selected by the user in the Fiacre Model + *

    + * Adds the action to the stackAction, search in the Map the StatementBlock + * to get the fireable Transition in the Fiacre Model, fires the transition + * and updates every view. + * @param tr_name the transition name taken from transition table, it will + * be used as key in transitionExecutableMap. + */ + public void fireTransition(String tr_name) { + try { + + //stores the fire action in the stakeAction + addFireToAction(tr_name); + //Maps the StatementBlock by transition name key + StatementBlock transition = transitionExecutableMap.get(tr_name); + LibTTS libtts = FiacreSimulator.getLibTTS(); + long tr_long = -1; + djeViews = FiacreSimulator.sendDje(); + //gets simulated transition + for (Map.Entry tr : libtts.getTTSSimulator() + .getAllTransitions().entrySet()) { + if (tr.getValue().getName().equals(transition.getName())) { + tr_long = tr.getKey(); + } + } + //fires transition + libtts.getTTSSimulator().fireTransition(tr_long); + + updateAll(); + + djeViews.extractExecutedStatements(libtts.getTTSSimulator() + .getAllTransitions().get(tr_long).name);///////////////////////////////////// + //update all views to show a consistent feedback. + //updateAll(); + } catch (Error e) { + Utils.showException("Error", e); + // e.printStackTrace(); + } catch (StateNotFound e) { + Utils.showException("StateNotFound", e); + // e.printStackTrace(); + } catch (TransitionNotFound e) { + Utils.showException("TransitionNotFound", e); + // e.printStackTrace(); + } catch (NotFireable e) { + Utils.showException("NotFireable", e); + // e.printStackTrace(); + } catch (TException e) { + Utils.showException("TException", e); + // e.printStackTrace(); + } catch (NullPointerException e) { + Utils.showException("NullPointerException", e); + // e.printStackTrace(); + } + + } + + + + // Jorge Gutierrez 05/08/2016 + /** + * Returns a list of executable transitions names given by executed model + *

    + * Takes a list of StatementsBlocks from the model and looks for the executable + * StatementsBlocks to put in a transition map and to put its name in a List of String + * @return List of character String according to executable transition name and date. + */ + private ArrayList returnTransitions() { + //Takes all statement blocks by the instance model + EList statementList = djeViews.getInstanceModel() + .getStatementBlocks(); + ArrayList statementListString = new ArrayList(); + transitionExecutableMap.clear(); + //Puts the executable statements in a List + for (StatementBlock s : statementList) { + if (s instanceof ExecutableStatementBlock) { + String statementAndDate = ""; +// if (s instanceof EnabledStatementBlock) { + statementAndDate = s.getName() + " - " + ((ExecutableStatementBlock)s).getDate(); +// }else { +// statementAndDate = s.getName(); +// } + statementListString.add(statementAndDate); + //Maps the statements by the String key. this key is defined by statements name and time needed to execute it + transitionExecutableMap.put(statementAndDate, s); + } + } + return statementListString; + } + + // Jorge Gutierrez 05/08/2016 + /** + * Indicates if statementBlock mapped by the given string key is Fireable + *

    + * Function used by TransitionViews to know if a transition is fireable or not + * @return true if this transition is fireable or false, is not fireable. + */ + public Boolean isFireable(String s) { + if (transitionExecutableMap.get(s) instanceof FireableStatementBlock){ + return true; + }else { + return false; + } + } + + // Jorge Gutierrez 22072016 + /** + * Returns a TreeObject that has the model Instance root and it is connected + * with their children + *

    + * A TreeObject is a Node with a Tree structure performance that contains a instance name. + * When a TreeObject has children it is of type TreeParent that has a Array of TreeObject instances. + * The function takes all instances which are on the root and makes depth iteration for each one. + * @return Root with all instances as children + */ + public TreeObject returnInstances() { + //Takes a Declaration Instance list from the simulated model. + EList instanceListDeclaretion = djeViews + .getInstanceModel().getInstance(); + int i = 0; + TreeParent rootParent = new TreeParent(""); + //clears the map that store instances objects. + instancesMap.clear(); + //iterate each instances content. + while (i < instanceListDeclaretion.size()) { + iterateInstances(instanceListDeclaretion.get(i), rootParent); + i++; + } + return rootParent; + } + + /** + * Build a Tree of block Instances and maps them to instanceMap until there are not + * more embedded Instances + *

    + * Checks if Instance is a Process then adds to Parent else checks if it is Component to + * iterate recursively its instances and in the same way when it is a Composition. + * The instance is mapped by TreeObject key containing its instance name. + * @param blockInstance The BlockInstance given as point reference to read through its children. + * @param instanceTreeParent The TreeParent given as a reference point to add its children. + */ + private void iterateInstances(BlockInstance blockInstance, + TreeParent instanceTreeParent) { + //Checks if instance is a Process then adds to Parent reference and instance map. + if (blockInstance instanceof ProcessDeclarationInstance) { + String nameProcess = ((ProcessDeclarationInstance) + blockInstance).getProcess().getName(); + String currentStateProcess = ((ProcessDeclarationInstance) + blockInstance).getCurrentState().getName(); + TreeObject processNodeObject = new TreeObject(nameProcess + " - " + + currentStateProcess); + instanceTreeParent.addChild(processNodeObject); + // Jorge Gutierrez 01/08/2016 // + instancesMap.put(processNodeObject, blockInstance); + //Checks if instance is a Component then adds to Parent reference and instance map, and iterate its instances contained. + } else if (blockInstance instanceof ComponentDeclarationInstance) { + ComponentDeclarationInstance component = ((ComponentDeclarationInstance) + blockInstance); + String nameComponent = component.getComponent().getName(); + TreeParent componentNodeParent = new TreeParent(nameComponent); + instanceTreeParent.addChild(componentNodeParent); + // Jorge Gutierrez 01/08/2016 + instancesMap.put(componentNodeParent, component); + for (int i = 0; i < component.getBlockInstances().size(); i++) { + iterateInstances(component.getBlockInstances().get(i), componentNodeParent); + } + //Checks if instance is a Composition then adds to Parent reference and instance map, and iterate its instances contained. + }else { + CompositionInstance composition = ((CompositionInstance) blockInstance); + String namecomposition = new String(""); + TreeParent compositionNodeParent = new TreeParent(namecomposition); + instanceTreeParent.addChild(compositionNodeParent); + instancesMap.put(compositionNodeParent, composition); + for (int i = 0; i < composition.getBlockInstances().size(); i++) { + iterateInstances(composition.getBlockInstances().get(i), compositionNodeParent); + } + } + } + + // Jorge Gutierrez 05/08/2016 + /** + * Updates the simulated file. + *

    + * the function is called by FiacreSimulator class + * @param newFile the File selected to be executed. + */ + public void setFile(IFile newFile) { + file = newFile; + } + + // Jorge Gutierrez 05/08/2016 + /** + * Highlights on editor part the corresponding statement block by selected Transition. + *

    + * Finds a Transition Statement Block from the simulated model and marks it on code editor + * Selects on Instance view, the instance involved in transition statements code. + * @param tr_name The string allocated for a transition. + */ + public void showSelectedTransition(String tr_name) { + //takes a Statement Transition block by its name and find stamentBlock on the simulated model. + StatementBlock transition = transitionExecutableMap.get(tr_name); + InstanceModel instanceModel = djeViews.getInstanceModel(); + StatementBlock statementblock = null; + for (StatementBlock stb : instanceModel.getStatementBlocks()) { + if (stb.getName().equals(transition.getName())) { + statementblock = stb; + } + } + //reinitializes the marking and highlights the code fragment which are attached to statement block. + MarkingController.deleteMarkers(file); + MarkingController.highlightCode(statementblock); + //selects on the Instance view table, the Transitions elements which has a statement transition in common. + instancesView.selectInstanceObject(returnInstanceContent(statementblock)); + } + + //Jorge Gutierrez 11/08/2016 + /** + * Returns the instances that contains the Statement block given + *

    + * Browses in all Instances Statement Blocks to find the Statements Blocks which have the same reference to + * Statement Block given. + * @param statementblock The Transition Statement Block selected by user. + * @return a list of Instance(TreeObject) to be selected by showSelected function + */ + public ArrayList returnInstanceContent(StatementBlock + statementblock) { + ArrayList instanceList = new ArrayList(); + for (Map.Entry iterator : instancesMap + .entrySet()) { + if (iterator.getValue() instanceof ProcessDeclarationInstance ){ + EList listISB = ( + (ProcessDeclarationInstance)iterator.getValue()) + .getInstanceStatementBlocks(); + int i = 0; + boolean b = true; + do { + if (listISB.size() != 0) { + for (InstanceStatementBlock isb : listISB) { + if (statementblock.getInstanceStatementBlocks() + .get(i) == isb) { + if (!instanceList.contains(iterator.getKey())) { + instanceList.add(iterator.getKey()); + b = false; + } + } + } + } + i++; + } while (i < statementblock.getInstanceStatementBlocks().size() + && b); + + } + } + return instanceList; + } + + //Jorge Gutierrez 08/08/2016 + /** + * Removes highlighted text from editor part. + */ + public void deleteMarkers (){ + try { + MarkingController.deleteMarkers(file); + } catch (Exception e) { + // TODO: handle exception + } + } + + //Jorge Gutierrez 08/08/2016 + /** + * Deletes data and content from every view + *

    + * clearAllViews function is called by QuitSimulator class when the simulator + * is stopped by user. + */ + public void clearAllViews (){ + file = null; + + instancesView.update(new TreeParent("")); + + transitionExecutableMap.clear(); + transitionsView.clearContent(); + + ValuesDataProvider.removeData(); + valuesView.update(); + + actionStack.clear(); + executedActionView.update(returnActions()); + + stateMap.clear(); + activitiesStackMap.clear(); + savedStatesView.update(returnSavedStates()); + refresh(); + } + + //Jorge Gutierrez 12/08/2016 /////////////////TOCHANGE + /** + * + */ + public void launchFeedBack() throws InvocationTargetException, InterruptedException { + } + + //Jorge Gutierrez 16/08/2016 + /** + * Makes an update to show the currents executed actions on ExecutedAction window (view part). + *

    + * Calls an update by giving a list of actions implemented during execution. + */ + public void updateExecutedActionView() { + //updates current model. + djeViews = FiacreSimulator.sendDje(); + //calls update by passing a list of Executed Action as parameter. + executedActionView.update(returnActions()); + } + + /** + * Creates and returns a list from the stack reserved for executed action. + * @return list of actions names. + */ + private ArrayList returnActions() { + ArrayList list = new ArrayList(); + for (ActionState t : actionStack) { + list.add(t.getAction()); + } + Collections.reverse(list); + return list; + } + + //Jorge Gutierrez 17/08/2016 + /** + * Indicates if a executed action is a Delay + *

    + * Function used by ExecutedActionViews to know if a action searched by its name, is a delay or not + * @param obj the obj is the Action name given by ExecutedActionViews + * @return true if this action state is a delay or false, is not a delay or it does not exist. + */ + public boolean isDelay (String obj){ + for (ActionState t : actionStack ) { + if (t.getAction().equals(obj)) { + return t.getDelay(); + } + } + return false; + } + + //Jorge Gutierrez 17/08/2016 + /** + * Undoes the last executed action + *

    + * Takes the last element from the actionStack and undoes the action in the simulated model, + * then makes a Feedback about all views (updateAll). + */ + public void undoAction() { + try { + ActionState undo_action = actionStack.pop(); + FiacreSimulator.getLibTTS().getTTSSimulator().undo(); + updateAll(); + if(undo_action.getAction().contains(" ")){ + String tr_name= undo_action.getAction().substring(0, undo_action.getAction().indexOf(" ")); + if(!tr_name.contentEquals("DELAY:")){ + if(djeViews.gettr_gl_tr_ins().get(tr_name).size() == 1){ + djeViews.getMSCModel().getSteps().remove(djeViews.getMSCModel().getSteps().size()-1); + + } + else{ + djeViews.getMSCModel().getSteps().remove(djeViews.getMSCModel().getSteps().size()-1); + djeViews.getMSCModel().getSteps().remove(djeViews.getMSCModel().getSteps().size()-1); + } + djeViews.saveMscResource(); + } + } + } catch (Exception e) { + // TODO: handle exception + } + } + + /** + * Refreshes every view and reinitialize selections, values and markings. + */ + private void updateAll() { + //djeViews.extractExecutedStatements(libtts.getTTSSimulator().getAllTransitions().get(tr_long).name); + djeViews.extractStates(); + djeViews.extractExecutableStatements(); + djeViews.extractValues(); + //updates all views + updateInstanceView(); + updateTransitionView(); + updateExecutedActionView(); + reinitializeValuesView(); + MarkingController.deleteMarkers(file); + djeViews.saveInstanceResource(); + } + + /** + * Refreshes Project Explorer Part to display the launched file. + */ + private void refresh(){ + for(IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()){ + try { + project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); + + } catch (CoreException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + /** + * Selects on editor code the Instances declarations selected in the instances table by the user/ + *

    + * Gets editor instance to use the Select Service, takes a TreeObject key to get a corresponding block Instance, + * then checks if the block Instance is the type of Declaration, Component or Composition, to select it in the code. + * @param obj the TreeObject is given by InstanceView to search the Instance form the model. + */ + public void showInstanceSelected(TreeObject obj) { + + IEditorPart part = page.getActiveEditor(); + if (!(part instanceof AbstractTextEditor)) + return; + ITextEditor editor = (ITextEditor)part; + + + BlockInstance bi = instancesMap.get(obj); + EObject element = null ; + if (bi instanceof DeclarationInstance){ + if(((DeclarationInstance)bi).getInstance() != null){ + element = ((DeclarationInstance)bi).getInstance(); + LeafNode tr_source_cn = (LeafNode) NodeModelUtils.findNodesForFeature(element, FiacrePackage.eINSTANCE.getComponentInstance_Component()).get(0); + editor.selectAndReveal(tr_source_cn.getOffset(), tr_source_cn.getLength()); + } + else{ + if(bi instanceof ComponentDeclarationInstance) + { + element = ((ComponentDeclarationInstance)bi).getComponent(); + LeafNode tr_source_cn = (LeafNode) NodeModelUtils.findNodesForFeature(element, FiacrePackage.eINSTANCE.getNamedElement_Name()).get(0); + editor.selectAndReveal(tr_source_cn.getOffset(), tr_source_cn.getLength()); + } + else + element = ((ProcessDeclarationInstance)bi).getProcess(); + LeafNode tr_source_cn = (LeafNode) NodeModelUtils.findNodesForFeature(element, FiacrePackage.eINSTANCE.getNamedElement_Name()).get(0); + editor.selectAndReveal(tr_source_cn.getOffset(), tr_source_cn.getLength()); + } + } + else{ + element = ((CompositionInstance)bi).getComposition(); + ICompositeNode tr_source_cn = NodeModelUtils.findActualNodeFor(element); + for (INode i: tr_source_cn.getChildren()){ + if(i instanceof LeafNode && i.getText().equals("par")) + editor.selectAndReveal(i.getOffset(), i.getLength()); + } + + } + + + } + + + /** + * Maps a Executed Model State with Tag key and maps its activities Stack associated with the same key + * @param tag The Tag is a character string given by the user. + */ + public void addStateToMap(String tag) { ////////////////not enough necessary + stateMap.put(tag, FiacreSimulator.getLibTTS().getTTSSimulator().getState()); + Stack tagActionStack = (Stack) actionStack.clone(); +// Stack tagActionStack=new Stack(); +// for (ActionState a : actionStack) { +// tagActionStack.push(a); +// } + StateStructure ss = new StateStructure(); + ss.interfaceStack = tagActionStack; + ss.modelStack = (Stack) FiacreSimulator.getLibTTS().getTTSSimulator().getPrevious_states().clone(); + activitiesStackMap.put(tag, ss); + updateSavedStatesView(); + } + + /** + * Makes an update to show the saved States on SavedStates window (view part). + *

    + * Calls an update by giving a list of saved states during execution. + */ + public void updateSavedStatesView() { + //calls update by passing a list of SavedStates as parameter. + savedStatesView.update(returnSavedStates()); + } + + /** + * Takes each element from the state map and puts it in a list + * @return list of Tag character string contained by stateMap + */ + private ArrayList returnSavedStates() { + ArrayList list = new ArrayList(); + for (Map.Entry iterator : stateMap.entrySet()){ + list.add(iterator.getKey()); + } + return list; + } + + /** + * Removes a saved state chosen by user on the SavedStateView and its activities stack associated. + * @param tag The state that will be removed from stateMap + */ + public void deleteState(String tag) { + stateMap.remove(tag); + activitiesStackMap.remove(tag); + updateSavedStatesView(); + + } + + /** + * Returns the simulation to saved state selected and updates all views. + * @param tag The state that will be updated in simulator + */ + public void goToState(String tag) { + FiacreSimulator.getLibTTS().getTTSSimulator().setState(stateMap.get(tag)); + actionStack = (Stack) activitiesStackMap.get(tag).interfaceStack.clone(); + FiacreSimulator.getLibTTS().getTTSSimulator().setPrevious_states((Stack) activitiesStackMap.get(tag).modelStack.clone()); + updateAll(); + } + + /** + * Display a temporary label attached to the Instance Flat name. + * @param obj The treeObject representative of the instance selected. + */ + public String returnFlatName(TreeObject obj) { + BlockInstance bI = instancesMap.get(obj); + if (bI instanceof DeclarationInstance) + return ((DeclarationInstance) bI).getFlatname(); + return "Composition"; + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ActionState.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ActionState.java new file mode 100644 index 0000000..2d21904 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ActionState.java @@ -0,0 +1,46 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective.model; + +public class ActionState { + String action; + Boolean delay; + + public ActionState() { + super(); + } + + public ActionState(String action, Boolean delay) { + super(); + this.action = action; + this.delay = delay; + } + + public String getAction() { + return action; + } + + public void setAction(String action) { + this.action = action; + } + + public Boolean getDelay() { + return delay; + } + + public void setDelay(Boolean delay) { + this.delay = delay; + } + + + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/TreeObject.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/TreeObject.java new file mode 100644 index 0000000..2bd61c0 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/TreeObject.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective.model; + +import org.eclipse.core.runtime.IAdaptable; + +public class TreeObject implements IAdaptable { + private String name; + private TreeParent parent; + + public TreeObject(String name) { + this.name = name; + } + public String getName() { + return name; + } + public void setParent(TreeParent parent) { + this.parent = parent; + } + public TreeParent getParent() { + return parent; + } + public String toString() { + return getName(); + } + public T getAdapter(Class key) { + return null; + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/TreeParent.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/TreeParent.java new file mode 100644 index 0000000..d68d0ed --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/TreeParent.java @@ -0,0 +1,36 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective.model; + +import java.util.ArrayList; + +public class TreeParent extends TreeObject { + private ArrayList children; + public TreeParent(String name) { + super(name); + children = new ArrayList(); + } + public void addChild(TreeObject child) { + children.add(child); + child.setParent(this); + } + public void removeChild(TreeObject child) { + children.remove(child); + child.setParent(null); + } + public TreeObject [] getChildren() { + return (TreeObject [])children.toArray(new TreeObject[children.size()]); + } + public boolean hasChildren() { + return children.size()>0; + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ValuesData.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ValuesData.java new file mode 100644 index 0000000..2fa3295 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ValuesData.java @@ -0,0 +1,49 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective.model; + +public class ValuesData { + private String name; + private String initial; + private String current; + + public ValuesData(){ + name = ""; + initial = ""; + current = ""; + } + + public ValuesData(String n, String i, String c){ + name = n; + initial = i; + current = c; + } + + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getInitial() { + return initial; + } + public void setInitial(String initial) { + this.initial = initial; + } + public String getCurrent() { + return current; + } + public void setCurrent(String current) { + this.current = current; + } +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ValuesDataProvider.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ValuesDataProvider.java new file mode 100644 index 0000000..8b027bb --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/model/ValuesDataProvider.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective.model; + +import java.util.ArrayList; +import java.util.List; + +public enum ValuesDataProvider { + INSTANCE; + + ///faire atention avec la privacité + + private static List data = new ArrayList(); + + ValuesDataProvider() { + } + + public static void addValues(ValuesData values){ + data.add(values); + } + + public ValuesData getValues(Integer index){ + return data.get(index); + } + + public List getData(){ + return data; + } + + public static void removeData(){ + data.clear(); + } + + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/ExecutedActionView.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/ExecutedActionView.java new file mode 100644 index 0000000..f131b30 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/ExecutedActionView.java @@ -0,0 +1,171 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective.views; + +import java.util.ArrayList; +import java.util.Vector; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.ArrayContentProvider; +import org.eclipse.jface.viewers.ITableLabelProvider; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.part.ViewPart; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +import com.irtsaintexupery.fiacre.simulator.perspective.ViewsController; + +public class ExecutedActionView extends ViewPart { + + public static final String ID = "com.irtsaintexupery.fiacre.simulator" + + ".perspective.executedActionView"; + + private TableViewer viewer; + private Action undo; + + private Vector elementsTable = new Vector (); + + class ViewLabelProvider extends LabelProvider implements ITableLabelProvider { + public String getColumnText(Object obj, int index) { + return getText(obj); + } + public Image getColumnImage(Object obj, int index) { + return getImage(obj); + } + public Image getImage(Object obj) { + if (ViewsController.INSTANCE.isDelay(getText(obj))) { + Image im = getImage("icons/time_add.png"); + return im; + }else { + return PlatformUI.getWorkbench().getSharedImages() + .getImage(ISharedImages.IMG_OBJS_TASK_TSK); + } + + } + } + /** + * The constructor. + */ + public ExecutedActionView() { + // TODO Auto-generated constructor stub + } + + @Override + public void createPartControl(Composite parent) { + viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); + + viewer.setContentProvider(ArrayContentProvider.getInstance()); + //TODO add elements to the table + viewer.setInput(elementsTable); + viewer.setLabelProvider(new ViewLabelProvider()); + + // Create the help context id for the viewer's control + PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), + "ExecutedActionView.viewer"); + getSite().setSelectionProvider(viewer); + makeActions(); + contributeToActionBars(); + undo.setEnabled(false); + undo.setDisabledImageDescriptor(PlatformUI.getWorkbench().getSharedImages() + .getImageDescriptor(ISharedImages.IMG_TOOL_UNDO_DISABLED)); + } + + private void contributeToActionBars() { + IActionBars bars = getViewSite().getActionBars(); + fillLocalPullDown(bars.getMenuManager()); + fillLocalToolBar(bars.getToolBarManager()); + } + + private void fillLocalPullDown(IMenuManager manager) { + manager.add(new Separator()); + manager.add(undo); + } + + private void fillLocalToolBar(IToolBarManager manager) { + manager.add(undo); + } + + private void makeActions() { + + undo = new Action() { + public void run() { + if (!elementsTable.isEmpty()) { + ViewsController.INSTANCE.undoAction(); + } + } + }; + undo.setText("Undo"); + undo.setToolTipText("Undo"); +// ImageDescriptor imageDescriptorUndo = AbstractUIPlugin +// .imageDescriptorFromPlugin( "com.irtsaintexupery.fiacre" +// + ".simulator.perspective", "/icons/arrow_undo.png" ); + + undo.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages() + .getImageDescriptor(ISharedImages.IMG_TOOL_UNDO)); +// +// redo = new Action() { +// public void run() { +// showMessage("Redo executed"); +// } +// }; +// redo.setText("Redo"); +// redo.setToolTipText("Redo tooltip"); +// ImageDescriptor imageDescriptorRedo = AbstractUIPlugin +// .imageDescriptorFromPlugin( "com.irtsaintexupery.fiacre" +// + ".simulator.perspective", "/icons/arrow_redo.png" ); +// redo.setImageDescriptor(imageDescriptorRedo); + } + + private void showMessage(String message) { + MessageDialog.openInformation( + viewer.getControl().getShell(), + "Executed Action View", + message); + } + + @Override + public void setFocus() { + viewer.getControl().setFocus(); + + } + + public void update(ArrayList list) { + elementsTable.clear(); + for (String s : list) { + elementsTable.add(s); + } + if (elementsTable.isEmpty()) { + undo.setEnabled(false); + undo.setDisabledImageDescriptor(PlatformUI.getWorkbench().getSharedImages() + .getImageDescriptor(ISharedImages.IMG_TOOL_UNDO_DISABLED)); + }else{ + undo.setEnabled(true); + undo.setDisabledImageDescriptor(PlatformUI.getWorkbench().getSharedImages() + .getImageDescriptor(ISharedImages.IMG_TOOL_UNDO)); + } + viewer.setContentProvider(ArrayContentProvider.getInstance()); + viewer.setInput(elementsTable); + viewer.setLabelProvider(new ViewLabelProvider()); + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/InstancesView.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/InstancesView.java new file mode 100644 index 0000000..ca8e6e7 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/InstancesView.java @@ -0,0 +1,264 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective.views; + +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.part.*; + +import com.irtsaintexupery.fiacre.simulator.perspective.model.TreeObject; +import com.irtsaintexupery.fiacre.simulator.perspective.model.TreeParent; +import com.irtsaintexupery.fiacre.simulator.perspective.ViewsController; + +import org.eclipse.jface.viewers.*; +import org.eclipse.swt.graphics.Image; + +import java.util.ArrayList; + +import org.eclipse.jface.action.*; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.ui.*; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.SWT; + +public class InstancesView extends ViewPart { + + /** + * The ID of the view as specified by the extension. + */ + public static final String ID = "com.irtsaintexupery.fiacre.simulator" + + ".perspective.instancesView"; + + private TreeViewer viewer; + private DrillDownAdapter drillDownAdapter; + private Action doubleClickAction; + private Action oneClickAction; + private TreeObject instanceTree; + + + + class ViewContentProvider implements ITreeContentProvider { + @Override + public void dispose() { + // TODO Auto-generated method stub + + } + @Override + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + // TODO Auto-generated method stub + + } + + private TreeParent invisibleRoot; + + public Object[] getElements(Object parent) { + if (parent.equals(getViewSite())) { + if (invisibleRoot==null) initialize(); + return getChildren(invisibleRoot); + } + return getChildren(parent); + } + public Object getParent(Object child) { + if (child instanceof TreeObject) { + return ((TreeObject)child).getParent(); + } + return null; + } + public Object [] getChildren(Object parent) { + if (parent instanceof TreeParent) { + return ((TreeParent)parent).getChildren(); + } + return new Object[0]; + } + public boolean hasChildren(Object parent) { + if (parent instanceof TreeParent) + return ((TreeParent)parent).hasChildren(); + return false; + } + + public void initialize() { + invisibleRoot = (TreeParent) instanceTree; + } + + + } + + class ViewLabelProvider extends ColumnLabelProvider { + @Override + public String getText(Object obj) { + return obj.toString(); + + } + @Override + public Image getImage(Object obj) { + String imageKey = ISharedImages.IMG_OBJ_ELEMENT; + if (obj instanceof TreeParent) + if (((TreeParent) obj).getName().equals("")) { + imageKey = ISharedImages.IMG_TOOL_UP_DISABLED; + }else { + imageKey = ISharedImages.IMG_TOOL_UP; + } + return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey); + } + + @Override + public String getToolTipText(Object obj) { + return ViewsController.INSTANCE.returnFlatName((TreeObject) obj); + } + + @Override + public int getToolTipDisplayDelayTime(Object object) { + return 0; + } + + @Override + public int getToolTipTimeDisplayed(Object object) { + return 5000; + } + + + } + +/** + * The constructor. + */ + public InstancesView() { + } + + /** + * This is a callback that will allow us + * to create the viewer and initialize it. + */ + public void createPartControl(Composite parent) { + + //create the content + viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); + drillDownAdapter = new DrillDownAdapter(viewer); + + viewer.setContentProvider(new ViewContentProvider()); + + ColumnViewerToolTipSupport.enableFor(viewer); + + viewer.setInput(getViewSite()); + viewer.setLabelProvider(new ViewLabelProvider()); + + viewer.expandAll(); + + // Create the help context id for the viewer's control + PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), + "viewDemo2.viewer"); + getSite().setSelectionProvider(viewer); + makeActions(); + hookContextMenu(); + hookDoubleClickAction(); + hookOneClickAction(); + contributeToActionBars(); + } + + private void hookContextMenu() { + MenuManager menuMgr = new MenuManager("#PopupMenu"); + menuMgr.setRemoveAllWhenShown(true); + menuMgr.addMenuListener(new IMenuListener() { + public void menuAboutToShow(IMenuManager manager) { + } + }); + Menu menu = menuMgr.createContextMenu(viewer.getControl()); + viewer.getControl().setMenu(menu); + getSite().registerContextMenu(menuMgr, viewer); + } + + private void contributeToActionBars() { + IActionBars bars = getViewSite().getActionBars(); + } + + private void makeActions() { + + doubleClickAction = new Action() { + public void run() { + ISelection selection = viewer.getSelection(); + Object obj = ((IStructuredSelection)selection).getFirstElement(); + //showMessage("Double-click detected on "+obj.toString()); + if (!selection.isEmpty()) { + ViewsController.INSTANCE.showInstanceSelected((TreeObject)obj); + } + } + }; + + oneClickAction = new Action() { + public void run() { + ISelection selection = viewer.getSelection(); + Object obj = ((IStructuredSelection)selection).getFirstElement(); + if (selection != null & selection instanceof IStructuredSelection + && obj != null) { + ViewsController.INSTANCE.showValuesView((TreeObject)obj); + } + } + }; + } + + private void hookDoubleClickAction() { + viewer.addDoubleClickListener(new IDoubleClickListener() { + public void doubleClick(DoubleClickEvent event) { + doubleClickAction.run(); + } + }); + } + + private void hookOneClickAction() { + viewer.addSelectionChangedListener(new ISelectionChangedListener() { + + @Override + public void selectionChanged(SelectionChangedEvent event) { + oneClickAction.run(); + } + }); + } + + private void showMessage(String message) { + MessageDialog.openInformation( + viewer.getControl().getShell(), + "Instances View", + message); + } + + /** + * Passing the focus request to the viewer's control. + */ + public void setFocus() { + viewer.getControl().setFocus(); + } + + + public void update(TreeObject rood) { + instanceTree = rood; + viewer.setContentProvider(new ViewContentProvider()); + viewer.setInput(getViewSite()); + viewer.setLabelProvider(new ViewLabelProvider()); + + viewer.expandAll(); + } + + public void selectInstanceObject(TreeObject obj) { + viewer.setSelection(new StructuredSelection(obj), true); + } + + public void selectInstanceObject(ArrayList instanceList) { + + TreeObject[] array = new TreeObject[instanceList.size()]; + for (int i = 0; i < instanceList.size(); i++) { + array[i] = instanceList.get(i); + } + viewer.setSelection(new StructuredSelection(array), true); + } + + +} + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/SavedStatesView.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/SavedStatesView.java new file mode 100644 index 0000000..e6eac5e --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/SavedStatesView.java @@ -0,0 +1,286 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective.views; + +import java.util.ArrayList; +import java.util.Vector; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.dialogs.IMessageProvider; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.dialogs.TitleAreaDialog; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.ArrayContentProvider; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.ITableLabelProvider; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.window.Window; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Dialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.part.ViewPart; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +import com.irtsaintexupery.fiacre.simulator.perspective.ViewsController; +import com.irtsaintexupery.fiacre.simulator.perspective.views.ExecutedActionView.ViewLabelProvider; + +public class SavedStatesView extends ViewPart { + + public static final String ID = "com.irtsaintexupery.fiacre.simulator" + + ".perspective.SavedStatesView"; + + private TableViewer viewer; + private Action save; + private Action goTo; + private Action delete; + + private Vector elementsTable = new Vector (); + + class ViewLabelProvider extends LabelProvider implements ITableLabelProvider { + public String getColumnText(Object obj, int index) { + return getText(obj); + } + public Image getColumnImage(Object obj, int index) { + return getImage(obj); + } + public Image getImage(Object obj) { + return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages + .IMG_OPEN_MARKER); + + } + } + /** + * The constructor. + */ + public SavedStatesView() { + // TODO Auto-generated constructor stub + } + + @Override + public void createPartControl(Composite parent) { + viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); + + viewer.setContentProvider(ArrayContentProvider.getInstance()); + //TODO add elements to the table + viewer.setInput(elementsTable); + viewer.setLabelProvider(new ViewLabelProvider()); + + // Create the help context id for the viewer's control + PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), + "ExecutedActionView.viewer"); + getSite().setSelectionProvider(viewer); + makeActions(); + contributeToActionBars(); + save.setEnabled(false); + goTo.setEnabled(false); + delete.setEnabled(false); + + } + + private void contributeToActionBars() { + IActionBars bars = getViewSite().getActionBars(); + fillLocalPullDown(bars.getMenuManager()); + fillLocalToolBar(bars.getToolBarManager()); + } + + private void fillLocalPullDown(IMenuManager manager) { + manager.add(new Separator()); + manager.add(save); + manager.add(new Separator()); + manager.add(goTo); + manager.add(new Separator()); + manager.add(delete); + + } + + private void fillLocalToolBar(IToolBarManager manager) { + manager.add(save); + manager.add(goTo); + manager.add(delete); + } + + private void makeActions() { + + save = new Action() { + public void run() { + SaveStateDialog dialog = new SaveStateDialog(viewer.getControl().getShell()); + dialog.create(); + if (dialog.open() == Window.OK) { + elementsTable.add(dialog.getTag()); + ViewsController.INSTANCE.addStateToMap(dialog.getTag()); + } + } + }; + save.setText("Save"); + save.setToolTipText("Save"); + ImageDescriptor imageDescriptorSave = AbstractUIPlugin + .imageDescriptorFromPlugin( "com.irtsaintexupery.fiacre" + + ".simulator", "/icons/brick_add.png" ); + save.setImageDescriptor(imageDescriptorSave); + + goTo = new Action() { + public void run() { + ISelection selection = viewer.getSelection(); + Object obj = ((IStructuredSelection)selection).getFirstElement(); + if (!selection.isEmpty()) { + if (selection != null && selection instanceof IStructuredSelection) { + ViewsController.INSTANCE.goToState(obj.toString()); + } + } + } + }; + goTo.setText("GoTo"); + goTo.setToolTipText("GoTo"); + ImageDescriptor imageDescriptorGoTo = AbstractUIPlugin + .imageDescriptorFromPlugin( "com.irtsaintexupery.fiacre" + + ".simulator", "/icons/brick_go.png" ); + goTo.setImageDescriptor(imageDescriptorGoTo); + + delete = new Action() { + public void run() { + ISelection selection = viewer.getSelection(); + Object obj = ((IStructuredSelection)selection).getFirstElement(); + if (!selection.isEmpty()) { + if (selection != null && selection instanceof IStructuredSelection) { + ViewsController.INSTANCE.deleteState(obj.toString()); + } + } + } + }; + delete.setText("Delete"); + delete.setToolTipText("Delete"); + ImageDescriptor imageDescriptorDelete = AbstractUIPlugin + .imageDescriptorFromPlugin( "com.irtsaintexupery.fiacre" + + ".simulator", "/icons/brick_delete.png" ); + delete.setImageDescriptor(imageDescriptorDelete); + + } + + private void showMessage(String message) { + MessageDialog.openInformation( + viewer.getControl().getShell(), + "Executed Action View", + message); + } + + @Override + public void setFocus() { + viewer.getControl().setFocus(); + + } + + + public class SaveStateDialog extends TitleAreaDialog { + private Text tagLabel; + private String tag; + + public SaveStateDialog(Shell parentShell) { + super(parentShell); + // TODO Auto-generated constructor stub + } + + @Override + public void create() { + super.create(); + setTitle("Save state"); + setMessage("write a identifier Tag to current state", IMessageProvider.INFORMATION); + } + + @Override + protected Control createDialogArea(Composite parent) { + Composite area = (Composite) super.createDialogArea(parent); + Composite container = new Composite(area, SWT.NONE); + container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + GridLayout layout = new GridLayout(2, false); + container.setLayout(layout); + + createTagLabel(container); + + return area; + } + + private void createTagLabel(Composite container) { + Label lbtFirstName = new Label(container, SWT.NONE); + lbtFirstName.setText("State Tag"); + + GridData dataFirstName = new GridData(); + dataFirstName.grabExcessHorizontalSpace = true; + dataFirstName.horizontalAlignment = GridData.FILL; + + tagLabel = new Text(container, SWT.BORDER); + tagLabel.setLayoutData(dataFirstName); + } + + + @Override + protected boolean isResizable() { + return true; + } + + // save content of the Text fields because they get disposed + // as soon as the Dialog closes + private void saveInput() { + tag = tagLabel.getText(); + + } + + @Override + protected void okPressed() { + saveInput(); + super.okPressed(); + } + + public String getTag() { + return tag; + } + } + + public void update(ArrayList list) { + elementsTable.clear(); + for (String s : list) { + elementsTable.add(s); + } + if(ViewsController.INSTANCE.getFile() != null){ + save.setEnabled(true); + goTo.setEnabled(true); + delete.setEnabled(true); + }else { + save.setEnabled(false); + goTo.setEnabled(false); + delete.setEnabled(false); + } + viewer.setContentProvider(ArrayContentProvider.getInstance()); + viewer.setInput(elementsTable); + viewer.setLabelProvider(new ViewLabelProvider()); + } + +} \ No newline at end of file diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/TransitionsView.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/TransitionsView.java new file mode 100644 index 0000000..b8fc099 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/TransitionsView.java @@ -0,0 +1,260 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective.views; + +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.part.*; +import org.eclipse.jface.viewers.*; +import org.eclipse.jface.window.Window; +import org.eclipse.swt.graphics.Image; + +import java.util.ArrayList; +import java.util.Vector; + +import org.apache.thrift.TException; +import org.eclipse.jface.action.*; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.*; +import org.eclipse.ui.handlers.HandlerUtil; +import org.eclipse.swt.SWT; +import org.eclipse.ui.part.ViewPart; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +import com.irtsaintexupery.fiacre.simulator.core.DelayEvent; +import com.irtsaintexupery.fiacre.simulator.core.FiacreSimulator; +import com.irtsaintexupery.fiacre.simulator.core.ReadDelay; +import com.irtsaintexupery.fiacre.simulator.core.Utils; +import com.irtsaintexupery.fiacre.simulator.perspective.ViewsController; +import com.irtsaintexupery.fiacre.simulator.staticjson.extractor.DynamicJsonExtractor; + +import fr.laas.libtts.LibTTS; +import tts.Error; +import tts.InvalidDelay; +import tts.StateNotFound; + + + +public class TransitionsView extends ViewPart { + + public static final String ID = "com.irtsaintexupery.fiacre.simulator" + + ".perspective.transitionsView"; + + private TableViewer viewer; + private Action doubleClickAction; + private Action oneClickAction; + private Action delay; + + private Vector elementsTable = new Vector (); + + class ViewLabelProvider extends LabelProvider implements ITableLabelProvider { + public String getColumnText(Object obj, int index) { + return getText(obj); + } + public Image getColumnImage(Object obj, int index) { + return getImage(obj); + } + public Image getImage(Object obj) { + if (ViewsController.INSTANCE.isFireable(getText(obj))) { + return PlatformUI.getWorkbench().getSharedImages() + .getImage(ISharedImages.IMG_OBJ_ADD); + }else { + return PlatformUI.getWorkbench().getSharedImages() + .getImage(ISharedImages.IMG_ELCL_STOP); + } + } + } + /** + * The constructor. + */ + public TransitionsView() { + // TODO Auto-generated constructor stub + } + + @Override + public void createPartControl(Composite parent) { + viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); + + viewer.setContentProvider(ArrayContentProvider.getInstance()); + //TODO add elements to the table + viewer.setInput(elementsTable); + viewer.setLabelProvider(new ViewLabelProvider()); + + // Create the help context id for the viewer's control + PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), + "TransitionView.viewer"); + getSite().setSelectionProvider(viewer); + makeActions(); + hookDoubleClickAction(); + hookOneClickAction(); + contributeToActionBars(); + delay.setEnabled(false); + + } + + private void contributeToActionBars() { + IActionBars bars = getViewSite().getActionBars(); + fillLocalPullDown(bars.getMenuManager()); + fillLocalToolBar(bars.getToolBarManager()); + } + + private void fillLocalPullDown(IMenuManager manager) { + manager.add(new Separator()); + manager.add(delay); + } + + private void fillLocalToolBar(IToolBarManager manager) { + manager.add(delay); + } + + + private void makeActions() { + + doubleClickAction = new Action() { + public void run() { + ISelection selection = viewer.getSelection(); + Object obj = ((IStructuredSelection)selection).getFirstElement(); + //showMessage("Double-click fire on "+obj.toString()); + if (!selection.isEmpty()) { + if (selection != null && selection instanceof IStructuredSelection + && ViewsController.INSTANCE.isFireable(obj.toString()) + ) { + ViewsController.INSTANCE.fireTransition(obj.toString()); + } + } + } + }; + + oneClickAction = new Action() { + public void run() { + ISelection selection = viewer.getSelection(); + Object obj = ((IStructuredSelection)selection).getFirstElement(); + if (selection != null & selection instanceof IStructuredSelection + && obj != null) { + ViewsController.INSTANCE.showSelectedTransition(obj + .toString()); + } + } + }; + + delay = new Action() { + public void run() { + ///////////////DELAY + delay(); + } + }; + delay.setText("delay"); + delay.setToolTipText("Delay"); + ImageDescriptor imageDescriptordelay = AbstractUIPlugin + .imageDescriptorFromPlugin( "com.irtsaintexupery.fiacre" + + ".simulator", "/icons/time_add.png" ); + + delay.setImageDescriptor(imageDescriptordelay); + } + + private void hookDoubleClickAction() { + viewer.addDoubleClickListener(new IDoubleClickListener() { + public void doubleClick(DoubleClickEvent event) { + doubleClickAction.run(); + } + }); + } + + private void hookOneClickAction() { + viewer.addSelectionChangedListener(new ISelectionChangedListener() { + @Override + public void selectionChanged(SelectionChangedEvent event) { + oneClickAction.run(); + } + }); + } + + private void showMessage(String message) { + MessageDialog.openInformation( + viewer.getControl().getShell(), + "Transition View", + message); + } + + @Override + public void setFocus() { + viewer.getControl().setFocus(); + + } + + public void update(ArrayList list) { + delay.setEnabled(true); + elementsTable.clear(); + for (String s : list) { + elementsTable.add(s); + } + viewer.setContentProvider(ArrayContentProvider.getInstance()); + viewer.setInput(elementsTable); + viewer.setLabelProvider(new ViewLabelProvider()); + } + + public void clearContent() { + elementsTable.clear(); + delay.setEnabled(false); + viewer.setContentProvider(ArrayContentProvider.getInstance()); + viewer.setInput(elementsTable); + viewer.setLabelProvider(new ViewLabelProvider()); + } + + //Jorge Gutierrez 22/08/2016 + public void delay(){ + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow() + .getActivePage().getActivePart().getSite().getShell(); + ReadDelay dialog = new ReadDelay(shell); + dialog.create(); + if (dialog.open() == Window.OK) { + dialog.getValue(); + LibTTS libtts = FiacreSimulator.getLibTTS(); + DynamicJsonExtractor dje = FiacreSimulator.sendDje(); + try { + libtts.getTTSSimulator().delay(dialog.getValue()); + dje.extractExecutableStatements(); + + + //Jorge Gutierrez 03/08/2016 + ViewsController.INSTANCE.updateTransitionView(); + ViewsController.INSTANCE.addDelayToAction(dialog.getValue()); + ViewsController.INSTANCE.updateExecutedActionView(); + + dje.saveInstanceResource(); + } catch (Error e) { + // TODO Auto-generated catch block + Utils.showException("Error",e); + //e.printStackTrace(); + } catch (StateNotFound e) { + // TODO Auto-generated catch block + Utils.showException("StateNotFound",e); + //e.printStackTrace(); + } catch (InvalidDelay e) { + // TODO Auto-generated catch block + Utils.showException("InvalidDelay",e); + //e.printStackTrace(); + } catch (TException e) { + // TODO Auto-generated catch block + Utils.showException("TException",e); + //e.printStackTrace(); + } catch (NumberFormatException e) { + // TODO Auto-generated catch block + Utils.showException("NumberFormatException: "+dialog.getValue()+" is not numeric value",e); + //e.printStackTrace(); + } + } + } +} + diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/ValuesView.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/ValuesView.java new file mode 100644 index 0000000..6826e14 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/perspective/views/ValuesView.java @@ -0,0 +1,139 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.perspective.views; + +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.part.*; + +import com.irtsaintexupery.fiacre.simulator.perspective.model.ValuesData; +import com.irtsaintexupery.fiacre.simulator.perspective.model.ValuesDataProvider; + +import org.eclipse.jface.viewers.*; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; + +import java.util.ArrayList; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.jface.action.*; +import org.eclipse.ui.*; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.SWT; + + +public class ValuesView extends ViewPart { + public static final String ID = "com.irtsaintexupery.fiacre.simulator" + + ".perspective.valuesView"; + + private TableViewer viewer; + private Action doubleClickAction; + + + + class ViewLabelProvider extends LabelProvider implements ITableLabelProvider { + public String getColumnText(Object obj, int index) { + return getText(obj); + } + public Image getColumnImage(Object obj, int index) { + return getImage(obj); + } + public Image getImage(Object obj) { + return PlatformUI.getWorkbench().getSharedImages() + .getImage(ISharedImages.IMG_OBJ_ELEMENT); + } + } + /** + * The constructor. + */ + public ValuesView() { + // TODO Auto-generated constructor stub + } + + @Override + public void createPartControl(Composite parent) { + viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL + | SWT.FULL_SELECTION | SWT.BORDER); + createTable(parent); + final Table table = viewer.getTable(); + table.setHeaderVisible(true); + table.setLinesVisible(true); + + viewer.setContentProvider(new ArrayContentProvider()); + // get the content for the viewer, setInput will call getElements in the + // contentProvider + viewer.setInput(ValuesDataProvider.INSTANCE.getData()); + // make the selection available to other views + getSite().setSelectionProvider(viewer); + // set the sorter for the table + + // define layout for the viewer + GridData gridData = new GridData(); + gridData.verticalAlignment = GridData.FILL; + gridData.horizontalSpan = 2; + gridData.grabExcessHorizontalSpace = true; + gridData.grabExcessVerticalSpace = true; + gridData.horizontalAlignment = GridData.FILL; + viewer.getControl().setLayoutData(gridData); + + } + + @Override + public void setFocus() { + viewer.getControl().setFocus(); + + } + + private void createTable(Composite parent){ + String[] titles = { "Name", "Current Value" }; + int[] bounds = { 100, 100 }; + + // Name + TableViewerColumn col = createTableViewerColumn(titles[0], bounds[0], 0); + col.setLabelProvider(new ColumnLabelProvider() { + @Override + public String getText(Object element) { + ValuesData e = (ValuesData)element; + return e.getName(); + } + }); + + // Current Value + col = createTableViewerColumn(titles[1], bounds[1], 1); + col.setLabelProvider(new ColumnLabelProvider() { + @Override + public String getText(Object element) { + ValuesData e = (ValuesData)element; + return ""+e.getCurrent(); + } + }); + + } + + private TableViewerColumn createTableViewerColumn(String title, int bound, + final int colNumber) { + final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, + SWT.NONE); + final TableColumn column = viewerColumn.getColumn(); + column.setText(title); + column.setWidth(bound); + column.setResizable(true); + column.setMoveable(true); + return viewerColumn; + } + + public void update() { + viewer.setInput(ValuesDataProvider.INSTANCE.getData()); + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/popup/actions/FiacreSimulationAction.java b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/popup/actions/FiacreSimulationAction.java new file mode 100644 index 0000000..f3a5518 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/popup/actions/FiacreSimulationAction.java @@ -0,0 +1,86 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.popup.actions; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.core.resources.IFile; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IActionDelegate; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; + +import com.irtsaintexupery.fiacre.simulator.core.FiacreSimulator; +import com.irtsaintexupery.fiacre.simulator.perspective.ViewsController; + + +public class FiacreSimulationAction implements IObjectActionDelegate { + + private Shell shell; + // added selection attribute + private ISelection selection; + + /** + * Constructor for Action1. + */ + public FiacreSimulationAction() { + super(); + //toto + } + + /** + * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + shell = targetPart.getSite().getShell(); + } + + /** + * @see IActionDelegate#run(IAction) + */ + public void run(IAction action) { + // charger le fichier .fcr + + //Jorge Gutierrez 12/08/2016 + try { + ViewsController.INSTANCE.launchFeedBack(); + } catch (InvocationTargetException | InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + IFile file = getFile(); + + FiacreSimulator simfcr = new FiacreSimulator(file); + + } + + // added getFile() method + private IFile getFile() { + return (IFile) ((IStructuredSelection) selection).getFirstElement(); + } + + /** + * @see IActionDelegate#selectionChanged(IAction, ISelection) + */ + public void selectionChanged(IAction action, ISelection selection) { + // Don't forget this line. + // It is the most important line. + this.selection = selection; + } + + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/popup/actions/old.txt b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/popup/actions/old.txt new file mode 100644 index 0000000..01cb5ac --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/popup/actions/old.txt @@ -0,0 +1,247 @@ +package com.irt.ingequip.fiacre.simulator.popup.actions; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +import org.eclipse.core.resources.IFile; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.xtext.nodemodel.INode; +import org.eclipse.xtext.resource.EObjectAtOffsetHelper; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.ui.editor.IURIEditorOpener; +import org.eclipse.xtext.ui.editor.XtextEditor; +import org.eclipse.xtext.ui.editor.model.XtextDocument; +import org.eclipse.xtext.ui.editor.utils.EditorUtils; +import org.eclipse.xtext.ui.resource.XtextResourceSetProvider; +//import org.xtext.example.mydsl.ui.internal.MyDslActivator; +import org.eclipse.xtext.util.TextRegion; +import org.eclipse.xtext.validation.AbstractDeclarativeValidator; +import org.eclipse.xtext.validation.AbstractDeclarativeValidator.StateAccess; +import org.eclipse.xtext.validation.ValidationMessageAcceptor; + +import com.google.inject.Injector; + +import fr.irit.fiacre.xtext.fiacre.BlockStatement; +import fr.irit.fiacre.xtext.fiacre.CaseStatement; +import fr.irit.fiacre.xtext.fiacre.ConditionalStatement; +import fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement; +import fr.irit.fiacre.xtext.fiacre.ForeachStatement; +import fr.irit.fiacre.xtext.fiacre.SelectStatement; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.StatementChoice; +import fr.irit.fiacre.xtext.fiacre.StatementSequence; +import fr.irit.fiacre.xtext.fiacre.UnlessStatement; +import fr.irit.fiacre.xtext.fiacre.WhileStatement; +import fr.irit.fiacre.xtext.ui.internal.FiacreActivator; +import fr.irit.fiacre.xtext.validation.FiacreValidator; + +public class Simulate implements IObjectActionDelegate { + + private Shell shell; + // added selection attribute + private ISelection selection; + + /** + * Constructor for Action1. + */ + public Simulate() { + super(); + } + + /** + * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + shell = targetPart.getSite().getShell(); + } + + /** + * @see IActionDelegate#run(IAction) + */ + public void run(IAction action) { + IFile file = getFile(); + Injector injector = FiacreActivator.getInstance().getInjector("fr.irit.fiacre.xtext.Fiacre"); + XtextResourceSetProvider provider = injector.getInstance(XtextResourceSetProvider.class); + ResourceSet resourceSet = provider.get(file.getProject()); + + URI xtextURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true); + + XtextResource xtextResource = (XtextResource) resourceSet.getResource(xtextURI, true); + + System.out.println("resource" + xtextResource); + + IURIEditorOpener editorOpener = injector.getInstance(IURIEditorOpener.class); + final XtextEditor xtextEditor = (XtextEditor) editorOpener.open(xtextURI, true); + System.out.println("editor 2" + xtextEditor); + XtextDocument xtextDocument = (XtextDocument) xtextEditor.getDocument(); + System.out.println("document " + xtextDocument); + for (int i = 0; i < xtextDocument.getNumberOfLines(); i++) { + try { + System.out.println("getLineLength " + i + " " + xtextDocument.getLineLength(i)); + System.out.println("getLineOffset " + i + " " + xtextDocument.getLineOffset(i)); + } catch (BadLocationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + EObjectAtOffsetHelper eObjectAtOffsetHelper = injector.getInstance(EObjectAtOffsetHelper.class); + for (int i = 0; i < xtextDocument.getLength(); i++) { + try { + EObject object = eObjectAtOffsetHelper.resolveElementAt(xtextResource, i); + EObject object2 = eObjectAtOffsetHelper.resolveContainedElementAt(xtextResource, i); + EObject object3 = eObjectAtOffsetHelper.resolveCrossReferencedElementAt(xtextResource, i); + INode object4 = eObjectAtOffsetHelper.getCrossReferenceNode(xtextResource, new TextRegion(i, 1)); + + int line = xtextDocument.getLineOfOffset(i); + int column = (i - xtextDocument.getLineOffset(xtextDocument.getLineOfOffset(i))); + + System.out.println("----- "); + System.out.print("o " + i); + System.out.print(" (l " + line + " "); + System.out.print("c " + column + ") "); + System.out.print("(el = " + (line + 1) + ", "); + System.out.print("ec = " + (column + 1) + ") "); + System.out.println("calculated offset " + getOffset(xtextDocument, line , column)); + System.out.println("object " + object); + System.out.println("cross " + object3); + System.out.println("contained " + object2); + System.out.println("containerStatement " + getStatement(object2)); + System.out.println("object4 " + object4); + + } catch (BadLocationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + FiacreValidator validator = injector.getInstance(FiacreValidator.class); + System.out.println("validator " + validator); + System.out.println("getmsgacceptor " + validator.getMessageAcceptor() + this); + +// StateAccess access = new StateAccess((AbstractDeclarativeValidator) validator.getMessageAcceptor()); +// validator.getMessageAcceptor().acceptError("Assigning any value not allowed in a function ",eObjectAtOffsetHelper.resolveElementAt(xtextResource, 14773),null,ValidationMessageAcceptor.INSIGNIFICANT_INDEX, null); +// validator.state.get().hasErrors = true; + // try { + // BufferedReader bufferRead = new BufferedReader(new + // InputStreamReader(System.in)); + // String s = bufferRead.readLine(); + // int x = Integer.parseInt(s); + // String r = bufferRead.readLine(); + // int y = Integer.parseInt(r); + // + // //EObjectAtOffsetHelper eObjectAtOffsetHelper = new + // EObjectAtOffsetHelper(); + // EObject object3 = + // eObjectAtOffsetHelper.resolveElementAt(xtextResource, + // getOffset(xtextDocument, x, y)); + // System.out.println("object3 " + object3); + // try { + // System.out.println("line of offset " + + // xtextDocument.getLineOfOffset(getOffset(xtextDocument, x, y))); + // } catch (BadLocationException e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // + // } catch (IOException e) { + // e.printStackTrace(); + // } + } + + // added getFile() method + private IFile getFile() { + return (IFile) ((IStructuredSelection) selection).getFirstElement(); + } + + /** + * @see IActionDelegate#selectionChanged(IAction, ISelection) + */ + public void selectionChanged(IAction action, ISelection selection) { + // Don't forget this line. + // It is the most important line. + this.selection = selection; + } + + public int getOffset(XtextDocument xtextDocument, int x, int y) { + int offset = 0; + + for (int i = 0; i < x; i++) { + try { + offset += xtextDocument.getLineLength(i); + } catch (BadLocationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + offset += y; + System.out.println("offset" + offset); + return offset; + + } + + public EObject eContainer(EObject root, Class type) { + EObject current = root; + while (current != null) { + if (type.isInstance(current)) { + return current; + } else { + current = current.eContainer(); + } + } + return null; + } + + public EObject eContainerStatement(EObject root) { + EObject current = root; + while (current != null) { + if (StatementSequence.class.isInstance(current.eContainer())) { + return current; + } else { + current = current.eContainer(); + } + } + return null; + } + + public EObject getStatement(EObject root) { + EObject current = root; + while (current != null) { + if (!(isAtomicStatement(current.eContainer()))) { + return current; + } else { + current = current.eContainer(); + } + } + return null; + } + + public boolean isAtomicStatement(EObject root) { + if (eContainer(root, Statement.class) != null) { + if (UnlessStatement.class.isInstance(root) || StatementChoice.class.isInstance(root) + || StatementSequence.class.isInstance(root) || ConditionalStatement.class.isInstance(root) + || ExtendedConditionalStatement.class.isInstance(root) || SelectStatement.class.isInstance(root) + || WhileStatement.class.isInstance(root) || ForeachStatement.class.isInstance(root) + || CaseStatement.class.isInstance(root) || BlockStatement.class.isInstance(root) + ) { + return false; + } else { + return true; + } + + } else { + return false; + } + + } + +} diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/DynamicJsonExtractor.xtend b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/DynamicJsonExtractor.xtend new file mode 100644 index 0000000..3080fce --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/DynamicJsonExtractor.xtend @@ -0,0 +1,878 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.staticjson.extractor + +import com.google.inject.Injector +import com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance +import com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance +import com.irtsaintexupery.fiacre.instance.fiacreinstance.EnabledStatementBlock +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutableStatementBlock +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ExecutedStatementBlock +import com.irtsaintexupery.fiacre.instance.fiacreinstance.FireableStatementBlock +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceEnabledStatementBlock +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutableStatementBlock +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceExecutedStatementBlock +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceFireableStatementBlock +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance +import com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance +import com.irtsaintexupery.fiacre.simulator.core.Utils +import com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep +import com.irtsaintexupery.fiacre.simulator.msc.msc.MSC +import com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep +import com.irtsaintexupery.fiacre.simulator.msc.msc.Step +import com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep +import fr.irit.fiacre.xtext.fiacre.ArrayExpression +import fr.irit.fiacre.xtext.fiacre.ArrayType +import fr.irit.fiacre.xtext.fiacre.BasicType +import fr.irit.fiacre.xtext.fiacre.BlockStatement +import fr.irit.fiacre.xtext.fiacre.CaseStatement +import fr.irit.fiacre.xtext.fiacre.ConditionalStatement +import fr.irit.fiacre.xtext.fiacre.ConstructionExpression +import fr.irit.fiacre.xtext.fiacre.Expression +import fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement +import fr.irit.fiacre.xtext.fiacre.FalseLiteral +import fr.irit.fiacre.xtext.fiacre.FieldExpression +import fr.irit.fiacre.xtext.fiacre.ForeachStatement +import fr.irit.fiacre.xtext.fiacre.IdentifierExpression +import fr.irit.fiacre.xtext.fiacre.IdentifierPattern +import fr.irit.fiacre.xtext.fiacre.Model +import fr.irit.fiacre.xtext.fiacre.NaturalLiteral +import fr.irit.fiacre.xtext.fiacre.PortDeclaration +import fr.irit.fiacre.xtext.fiacre.QueueExpression +import fr.irit.fiacre.xtext.fiacre.QueueType +import fr.irit.fiacre.xtext.fiacre.RangeType +import fr.irit.fiacre.xtext.fiacre.ReceiveStatement +import fr.irit.fiacre.xtext.fiacre.RecordExpression +import fr.irit.fiacre.xtext.fiacre.RecordType +import fr.irit.fiacre.xtext.fiacre.ReferencedType +import fr.irit.fiacre.xtext.fiacre.SelectStatement +import fr.irit.fiacre.xtext.fiacre.SendStatement +import fr.irit.fiacre.xtext.fiacre.Statement +import fr.irit.fiacre.xtext.fiacre.StatementChoice +import fr.irit.fiacre.xtext.fiacre.StatementSequence +import fr.irit.fiacre.xtext.fiacre.TransitionSource +import fr.irit.fiacre.xtext.fiacre.TrueLiteral +import fr.irit.fiacre.xtext.fiacre.Type +import fr.irit.fiacre.xtext.fiacre.TypeDeclaration +import fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration +import fr.irit.fiacre.xtext.fiacre.UnionType +import fr.irit.fiacre.xtext.fiacre.UnlessStatement +import fr.irit.fiacre.xtext.fiacre.ValueExpression +import fr.irit.fiacre.xtext.fiacre.VariablesDeclaration +import fr.irit.fiacre.xtext.fiacre.WhileStatement +import fr.irit.fiacre.xtext.ui.internal.XtextActivator +import fr.laas.libtts.TTSSimulator +import java.util.ArrayList +import java.util.HashMap +import java.util.LinkedHashMap +import java.util.Map +import org.eclipse.emf.ecore.EObject +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.jface.text.BadLocationException +import org.eclipse.xtext.resource.EObjectAtOffsetHelper +import org.eclipse.xtext.resource.XtextResource +import org.eclipse.xtext.ui.editor.IURIEditorOpener +import org.eclipse.xtext.ui.editor.XtextEditor +import org.eclipse.xtext.ui.editor.model.XtextDocument +import org.json.simple.JSONArray +import org.json.simple.JSONAware +import org.json.simple.JSONObject + +///Jorge Guiterrez 10/08/2016 +class DynamicJsonExtractor{ + var XtextResource fiacreResource + var Resource instanceResource + var Resource mscResource + val TTSSimulator tTSSimulator + var HashMap mapping_blockinstance_jsonelement + var JSONObject fiacreStaticJson + val HashMap> tr_gl_tr_ins = new HashMap>(); + val HashMap> tr_in_stmts = new HashMap>(); + + new(XtextResource _fiacreResource, Resource _instanceResource, TTSSimulator _TTSSimulator, JSONObject _fiacreStaticJson, HashMap _mapping, Resource _mscResource) { + fiacreResource = _fiacreResource + instanceResource = _instanceResource + tTSSimulator = _TTSSimulator + mapping_blockinstance_jsonelement = _mapping + fiacreStaticJson = _fiacreStaticJson + mscResource = _mscResource + extractTransitionsMappings + } + def mscFirstStepExtract(){ + var Step step = Utils.createStep + MSCModel.steps.add(step) + for (pdi: instanceModel.eAllContents.toList.filter(ProcessDeclarationInstance)){ + var EnterStateStep esst = Utils.createEnterStateStep + step.microSteps.add(esst) + esst.stateName = pdi.currentState.name + esst.site = MSCModel.sites.filter[site|site.name == pdi.flatname].get(0) + } + Utils.saveResource(mscResource) + } + def ArrayList getallInstanceTransitionsObjects() { + // Get all Instance transitions from the mapping between block instances and json object + val ArrayList allInstanceTransitions = new ArrayList() + for (element : ( mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof ProcessDeclarationInstance].values.map[value|(value as JSONObject).get("transitions")])) { + for (jelement : element as JSONArray) { + allInstanceTransitions.add(jelement as JSONObject) + } + } + allInstanceTransitions + } + + def extractTransitionsMappings() { + val Injector injector = XtextActivator.getInstance().getInjector("fr.irit.fiacre.xtext.Fiacre") + val IURIEditorOpener editorOpener = injector.getInstance(IURIEditorOpener) + val XtextEditor xtextEditor = editorOpener.open(fiacreResource.URI, true) as XtextEditor + val XtextDocument xtextDocument = xtextEditor.document as XtextDocument + val EObjectAtOffsetHelper eObjectAtOffsetHelper = injector.getInstance(EObjectAtOffsetHelper) + // The following code line is just to show what performed inside mappings + /* + * It exists two kinds of transitions + * Global transitions: which can be find in the json model root + * and Instance transitions which can be find in the process instances + * So from global transitions, we must find the instance transitions + * to obtain, after, the locations for each transition + */ + // Get global transitions from the json model + val JSONArray global_transitions = fiacreStaticJson.get("gtransitions") as JSONArray + +// // Get all Instance transitions from the mapping between block instances and json object +// val ArrayList allInstanceTransitions = new ArrayList() +// for (element : ( mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof ProcessDeclarationInstance].values.map[value|(value as JSONObject).get("transitions")])) { +// for (jelement : element as JSONArray) { +// allInstanceTransitions.add(jelement as JSONObject) +// } +// } + // for each global transition name (a_global_tr_name) + for (a_global_tr_name : global_transitions.map[agtr|(agtr as JSONObject).get("name")]) { + + // Get the corresponding json object (a_g_tr_jobject) from the global transitions array list + val JSONObject a_g_tr_jobject = global_transitions.filter[gtr|(gtr as JSONObject).get("name") == a_global_tr_name].get(0) as JSONObject + // create an array list of instance transition of the current global transition + val ArrayList in_trs_of_gl = new ArrayList() + + // for each instance transition name, found in the transitions array of the global transition object + for (a_i_tr_name : a_g_tr_jobject.get("transitions") as JSONArray) { + // add the instance name in the array list + in_trs_of_gl.add(a_i_tr_name as String) + // Get the instance transition object (a_i_tr_jobject) + val JSONObject a_i_tr_jobject = getallInstanceTransitionsObjects.filter[aatr|(aatr as JSONObject).get("name") == a_i_tr_name].get(0) + + // Get the Process Declaration Instance that contains the instance transition object (a_i_tr_jobject) + // just to print it and verify + // val c_pdi = mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof ProcessDeclarationInstance].filter[p1, p2|((p2 as JSONObject).get("transitions") as JSONArray).contains(a_i_tr_jobject)].keySet.get(0); + // Get locations of each instance transition + // statements_ins_tr allows to save an eobject (an atomic statement or a transition source) + // with its first position + // for example fr.irit.fiacre.xtext.fiacre.impl.TransitionSourceImpl@53c7c937 = 325 3 + val LinkedHashMap statements_ins_tr = new LinkedHashMap() + + // for each identified location in the locations table of an instance transition + for (a_location_jsonobject : (a_i_tr_jobject as JSONObject).get("locations") as JSONArray) { + // we find the from location + val JSONObject from_location = (a_location_jsonobject as JSONObject).get("from") as JSONObject + val long line_from = from_location.get("line") as Long + val long char_from = from_location.get("char") as Long + // we calculate the from offset + val int offset_from = xtextDocument.getOffset(line_from.intValue, char_from.intValue) + + // we find the to location + val JSONObject to_location = (a_location_jsonobject as JSONObject).get("to") as JSONObject + val long line_to = to_location.get("line") as Long + val long char_to = to_location.get("char") as Long + // we calculate the to offset + val int offset_to = xtextDocument.getOffset(line_to.intValue, char_to.intValue) + // from to from offset to the to offset + for (var int i = offset_from; i <= offset_to; i++) { + // we calculate the line column position from the offset + val int line = xtextDocument.getLineOfOffset(i) + val int column = (i - xtextDocument.getLineOffset(xtextDocument.getLineOfOffset(i))) + + // we find the corresponding statement + val statement = eObjectAtOffsetHelper.resolveContainedElementAt(fiacreResource, i).getStatement + // We insert the statements in the list with its line column location + /* + * We insert only transition source (from) + * or atomic statement + * In addition + */ + if((statement instanceof TransitionSource) + //&& ! statements_ins_tr.keySet.contains(statement) + && statements_ins_tr.keySet.filter(TransitionSource).size == 0 + ) + statements_ins_tr.put(statement, (line + 1) + " " + (column + 1)) + + if(statement.isAtomicStatement) + // TODO à voir l'histoire des to statement et les loop +// if(statement instanceof ToStatement){ +// if(statements_ins_tr.keySet.filter(ToStatement).size == 0) +// statements_ins_tr.put(statement, (line + 1) + " " + (column + 1)) +// } +// else + // if(! statements_ins_tr.keySet.contains(statement)) + statements_ins_tr.put(statement, (line + 1) + " " + (column + 1)) + } + } + tr_in_stmts.put(a_i_tr_name as String, statements_ins_tr) + } + // mapping global transition = instance transitions. en gros, c'est gtransitions de json dynamique + tr_gl_tr_ins.put(a_global_tr_name as String, in_trs_of_gl) + } + } + + def extractValues() { + val HashMap variablesMappings = getVariablesMappings + for (element : Utils.getJsonObject(tTSSimulator.state.getValues).keySet) { + if(variablesMappings.filter[p1, p2|(p1 as JSONObject).get("flatname") == element].size > 0) { + val JSONObject jo = variablesMappings.filter[p1, p2|(p1 as JSONObject).get("flatname") == element].keySet.get(0) + val DeclarationInstance decl = variablesMappings.filter[p1, p2|(p1 as JSONObject).get("flatname") == element].values.get(0) + val Object value = Utils.getJsonObject(tTSSimulator.state.getValues).get(element) + val VariableDeclarationInstance vd_i = decl.variableDeclarationInstances.filter[vdi|vdi.variableDeclaration.name == jo.get("sourcename")].get(0) + val HashMap mapping_jsonType_fiacreType = getJSONTypeFiacreTypeMapping(jo.get("vartype"), (vd_i.variableDeclaration.eContainer as VariablesDeclaration).type) + val HashMap mapping_value_type = getValueTypeMapping(value, jo.get("vartype")) + vd_i.currentValue = (getFiacreValue(value, mapping_value_type, mapping_jsonType_fiacreType) as ValueExpression) + } + } + } + /* + * This method allows to obtain a mapping between jsontype (from "vartype" of a json variable) + * and the fiacre type of this variable. + * It consists to do the optimization on fiacre types, in the ecore side, as done in the json side + * It can contain something like this + * bool = fr.irit.fiacre.xtext.fiacre.impl.BooleanTypeImpl@19569e44 + * {"interval":{"high":3,"low":0}} = fr.irit.fiacre.xtext.fiacre.impl.RangeTypeImpl@3138f7b9 + * {"record":{"val":"bool","active_probes":{"interval":{"high":3,"low":0}}}} = fr.irit.fiacre.xtext.fiacre.impl.RecordTypeImpl@1f72ed22 + */ + def HashMap getJSONTypeFiacreTypeMapping(Object json_type, Type fiacre_type) { + var HashMap mapping_jsonType_fiacreType = new HashMap() + if(fiacre_type instanceof ReferencedType) { + // If it is a referenced type, we get the the type of the referenced type + val referenced_fiacre_type = ((fiacre_type as ReferencedType).type as TypeDeclaration).value + mapping_jsonType_fiacreType.putAll(getJSONTypeFiacreTypeMapping(json_type, referenced_fiacre_type)) + } else { + if(fiacre_type instanceof BasicType) { + mapping_jsonType_fiacreType.put(json_type, fiacre_type) + } else { + if(fiacre_type instanceof RangeType) { + mapping_jsonType_fiacreType.put(json_type, fiacre_type) + } else { + if(fiacre_type instanceof QueueType) { + // get the element type of the queue type, both in json and ecore + mapping_jsonType_fiacreType.put(json_type, fiacre_type) + val queue_json_element_type = ((json_type as JSONObject).get("queue") as JSONObject).get("elemtype") + val queue_fiacre_element_type = (fiacre_type as QueueType).type + mapping_jsonType_fiacreType.putAll(getJSONTypeFiacreTypeMapping(queue_json_element_type, queue_fiacre_element_type)) + } else { + if(fiacre_type instanceof ArrayType) { + // get the element type of the queue type, both in json and ecore + mapping_jsonType_fiacreType.put(json_type, fiacre_type) + val array_json_element_type = ((json_type as JSONObject).get("array") as JSONObject).get("elemtype") + val array_fiacre_element_type = (fiacre_type as ArrayType).type + mapping_jsonType_fiacreType.putAll(getJSONTypeFiacreTypeMapping(array_json_element_type, array_fiacre_element_type)) + } else { + if(fiacre_type instanceof UnionType) { + mapping_jsonType_fiacreType.put(json_type, fiacre_type) + // get only typed union tags exemple: type xx is union toto | titi of int end + // So we get only titi type which is int + for (json_tag : ((json_type as JSONObject).get("union") as JSONObject).entrySet) { + if((json_tag.value as JSONArray).size > 0) { + val tag_fiacre_type = (fiacre_type as UnionType).tags.filter[fs|fs.tags.map[f|f.name].exists[an|an == json_tag.key]].get(0).type + val tag_json_type = (json_tag.value as JSONArray).get(0) + mapping_jsonType_fiacreType.putAll(getJSONTypeFiacreTypeMapping(tag_json_type, tag_fiacre_type)) + } + } + } else { + if(fiacre_type instanceof RecordType) { + mapping_jsonType_fiacreType.put(json_type, fiacre_type) + // get all fields types + for (json_field : ((json_type as JSONObject).get("record") as JSONObject).entrySet) { + val field_json_type = json_field.value + val field_fiacre_type = (fiacre_type as RecordType).fields.filter[fs|fs.fields.map[f|f.name].exists[an|an == json_field.key]].get(0).type + mapping_jsonType_fiacreType.putAll(getJSONTypeFiacreTypeMapping(field_json_type, field_fiacre_type)) + } + } + } + } + + } + } + } + } + mapping_jsonType_fiacreType + } + + def Expression getFiacreValue(Object value, HashMap mapping_value_type, HashMap mapping_jsonType_fiacreType) { + if(value instanceof Long) { + val NaturalLiteral nl = Utils.createNaturalLiteral + nl.value = (value as Long).intValue + nl + } else { + if(value instanceof String) { + if((value as String) == "false" || (value as String) == "true") { + // Fiacre boolean type + if((value as String) == "false") { + val FalseLiteral fl = Utils.createFalseLiteral + fl + } else { + val TrueLiteral tl = Utils.createTrueLiteral + tl + } + } else { + val UnionType union_type = mapping_jsonType_fiacreType.get(mapping_value_type.get(value)) as UnionType + // val TypeDeclaration typ_dec = model.declarations.filter(TypeDeclaration).filter[td|td.name == type_name].get(0) + val UnionTagDeclaration tag = union_type.tags.map[tgs|tgs.tags].flatten.filter[atag|atag.name == value].get(0) + val IdentifierExpression ide = Utils.createIdentifierExpression + ide.declaration = tag + ide + } + } else { + if(value instanceof JSONArray) { + if((mapping_value_type.get(value) as JSONObject).get("array") != null) { + val ArrayExpression eae = Utils.createArrayExpression + for (element : ( value as JSONArray)) { + eae.values.add(getFiacreValue(element, mapping_value_type, mapping_jsonType_fiacreType)) + } + eae + } else { + if((mapping_value_type.get(value) as JSONObject).get("queue") != null) { + val QueueExpression qe = Utils.createQueueExpression + for (element : ( value as JSONArray)) { + qe.values.add(getFiacreValue(element, mapping_value_type, mapping_jsonType_fiacreType)) + } + qe + } + } + } else { + // otherwise JSON Object + if((mapping_value_type.get(value) as JSONObject).get("record") != null) { + val RecordExpression re = Utils.createRecordExpression + // val String type_name = (getFiacreType(mapping_value_type.get(value) as JSONObject) as JSONObject).get("name") as String + val RecordType record_type = mapping_jsonType_fiacreType.get(mapping_value_type.get(value)) as RecordType //getFiacreType(mapping_value_type.get(value) as JSONObject) as RecordType + // val TypeDeclaration typ_dec = model.declarations.filter(TypeDeclaration).filter[td|td.name == type_name].get(0) + for (element : (value as JSONObject).keySet) { + val FieldExpression fie = Utils.createFieldExpression + re.fields.add(fie) + fie.field = record_type.fields.map[fis|fis.fields].flatten.filter[atag|atag.name == element].get(0) + fie.value = getFiacreValue((value as JSONObject).get(element), mapping_value_type, mapping_jsonType_fiacreType) + } + re + } else { + // an union element with constructor + if((mapping_value_type.get(value) as JSONObject).get("union") != null) { + val ConstructionExpression cstre = Utils.createConstructionExpression + val UnionType union_type = mapping_jsonType_fiacreType.get(mapping_value_type.get(value)) as UnionType // model.declarations.filter(TypeDeclaration).filter[td|td.name == type_name].get(0) + val UnionTagDeclaration tag = union_type.tags.map[tgs|tgs.tags].flatten.filter[atag|atag.name == (value as JSONObject).keySet.get(0)].get(0) + cstre.declaration = tag + cstre.parameters.add(getFiacreValue((value as JSONObject).values.get(0), mapping_value_type, mapping_jsonType_fiacreType)) + cstre + } + + } + } + } + } + } + +// def Type getFiacreType(JSONObject type) { +// println("types " + (fiacreStaticJson.get("deftyp") as JSONArray).filter[t|(t as JSONObject).get("tdef").equals(type)]) +// if((fiacreStaticJson.get("deftyp") as JSONArray).filter[t|(t as JSONObject).get("tdef").equals(type)].size == 1) { +// val String type_name = ((fiacreStaticJson.get("deftyp") as JSONArray).filter[t|(t as JSONObject).get("tdef").equals(type)].get(0) as JSONObject).get("name") as String +// val TypeDeclaration typ_dec = model.declarations.filter(TypeDeclaration).filter[td|td.name == type_name].get(0) +// typ_dec.value +// } +// } + + def HashMap getValueTypeMapping(Object value, Object type) { + var HashMap mapping_value_type = new HashMap() + if(value instanceof Long) { + mapping_value_type.put(value as Object, type) + } else { + if(value instanceof String) { + mapping_value_type.put(value as Object, type) + } else { + if(value instanceof JSONArray) { + if((type as JSONObject).get("array") != null) { + mapping_value_type.put(value, type) + val length = (value as JSONArray).size + for (var i = 0; i < length; i++) { + // mapping_value_type.put((value as JSONArray).get(i), ((type as JSONObject).get("array") as JSONObject).get("elemtype")) + mapping_value_type.putAll(getValueTypeMapping((value as JSONArray).get(i), ((type as JSONObject).get("array") as JSONObject).get("elemtype"))) + } + } else { + if((type as JSONObject).get("queue") != null) { + mapping_value_type.put(value, type) + val length = (value as JSONArray).size + for (var i = 0; i < length; i++) { + // mapping_value_type.put((value as JSONArray).get(i), ((type as JSONObject).get("queue") as JSONObject).get("elemtype")) + mapping_value_type.putAll(getValueTypeMapping((value as JSONArray).get(i), ((type as JSONObject).get("queue") as JSONObject).get("elemtype"))) + } + } + } + } else { + // It is a JSONObject so It can be record value or union value + if((type as JSONObject).get("record") != null) { + mapping_value_type.put(value, type) + for (ite : (value as JSONObject).keySet) { + // mapping_value_type.put((value as JSONObject).get(ite), ((type as JSONObject).get("record") as JSONObject).get(ite)) + mapping_value_type.putAll(getValueTypeMapping((value as JSONObject).get(ite), ((type as JSONObject).get("record") as JSONObject).get(ite))) + } + } else { + mapping_value_type.put(value, type) + // mapping_value_type.put((value as JSONObject).values.get(0), ((type as JSONObject).get("union") as JSONObject).get((value as JSONObject).keySet.get(0))) + mapping_value_type.putAll(getValueTypeMapping((value as JSONObject).values.get(0), (((type as JSONObject).get("union") as JSONObject).get((value as JSONObject).keySet.get(0)) as JSONArray).get(0))) + + } + } + } + } + mapping_value_type + } + +// def getType(JSONObject vartype) { +// (fiacreStaticJson.get("deftyp") as JSONArray).filter[atype|((atype as JSONObject).get("tdef") as JSONObject).equals(vartype) == true] +// } + + def HashMap getVariablesMappings() { + /* + * Ce mapping permet d'identifier le couple suivant: + * - une variable sous forme d'un object json + * - La DeclarationInstance correspondante + * Il y a deux sources de redondance à résoudre + * D'abord une variable est instancié dans chacune des instances + * Ceci est resolu à travers la flatname qui contient le numéro d'instance + * Le deuxième niveau de redondance est les paramètres qui portent les mêmes noms + * des variables. Ceci est résolu par le fait de vérifier s'il y a une variable instance qui + * a le même nom dans la declaration instance + */ + var HashMap map_var_job_cdi = new HashMap() + val ArrayList fiacreVariablesAsJsonObjects = new ArrayList + // Get all json objects of vars from the mappings + // TODO why just flatten doesn't work + for (element : ( mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof DeclarationInstance].values.map[value|(value as JSONObject).get("vars")])) { + for (jelement : element as JSONArray) { + fiacreVariablesAsJsonObjects.add(jelement as JSONObject) + } + } + for (json_object_var : fiacreVariablesAsJsonObjects) { + var ArrayList decls = new ArrayList + for (decl : mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof DeclarationInstance].filter[p1, p2|((p2 as JSONObject).get("vars") as JSONArray).contains(json_object_var)]. + keySet) { + decls.add(decl as DeclarationInstance) + } + if(decls.filter[decl|decl.variableDeclarationInstances.map[vdi|vdi.variableDeclaration].exists[v|v.name == json_object_var.get("sourcename")]].size > 0) { + map_var_job_cdi.put(json_object_var, decls.filter[decl|decl.variableDeclarationInstances.map[vdi|vdi.variableDeclaration].exists[v|v.name == json_object_var.get("sourcename")]].get(0)) + } + } + map_var_job_cdi + } + + def extractStates() { + val ArrayList allJsonStates = new ArrayList + + // Get all json variables objects from the mappings + // TODO why just flatten doesn't work + for (element : ( mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof ProcessDeclarationInstance].values.map[value|(value as JSONObject).get("states")])) { + for (jelement : element as JSONArray) { + allJsonStates.add(jelement as JSONObject) + } + } + //msc + + + for (place : tTSSimulator.currentPlaces) { + // cette condition permet d'éliminer les états qui ne sont pas dans le modèle Fiacre + // et qui sont ajoutés par le compilateur + if(allJsonStates.filter[a|a.get("flatname") == place].size > 0) { + // json_object_state is the concerned json object corresponding + // to the "place" name + val JSONObject json_object_state = allJsonStates.filter[a|a.get("flatname") == place].get(0) + // we find the c_pdi key whose the "states" json array of the corresponding value element + // contains the json_object_state + val c_pdi = mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof ProcessDeclarationInstance].filter [ p1, p2 | + ((p2 as JSONObject).get("states") as JSONArray).contains(json_object_state) + ].keySet.get(0); + // c_pdi is the concerned process declaration instance where the state must be updated. + // According to the c_pdi and json_object_state, we update the currentState reference of c_pdi + (c_pdi as ProcessDeclarationInstance).currentState = (c_pdi as ProcessDeclarationInstance).process.states.filter[state|state.name == json_object_state.get("sourcename")].get(0) + } + } + } + + def extractExecutedStatements(String executed_tr_name) { + clearAllExecutedStatements + val ExecutedStatementBlock esb = extractExecutedStatementsBlock(executed_tr_name) + // frac compiler adds some intermediate transitions + // that don't exist in the static json description, + // like in mouse_property example (__presentAfter__1_1_t1 transition) + // Therefore for this global transition, it doesn't exist instance transitions + // and the mapping doesn't exist for this transition + // So, using this conditional statement, we eliminate this case + if(tr_gl_tr_ins.filter[p1, p2|p1 == executed_tr_name].values.size > 0) { + // for each instance transition (instance_tr) of the global transition (tr_name) + for (instance_tr : tr_gl_tr_ins.filter[p1, p2|p1 == executed_tr_name].values.get(0)) // add the created instance statement block in the current instanceStatementBlocks + { + esb.instanceStatementBlocks.add(extractInstanceExecutedStatements(instance_tr)) + } + } + //msc + //if it is sychronisation + if(esb.instanceStatementBlocks.map[isb|isb.statements].flatten.exists[s|s instanceof IdentifierPattern && (s as IdentifierPattern).declaration instanceof PortDeclaration]){ + var Step step = Utils.createStep + MSCModel.steps.add(step) + var SynchronisationStep st = Utils.createSynchronisationStep + step.microSteps.add(st) + for (pdi : esb.instanceStatementBlocks.map[isb|isb.eContainer]){ + st.sites.add(MSCModel.sites.filter[site|site.name == (pdi as ProcessDeclarationInstance).flatname].get(0)) + } + // + var Step step2 = Utils.createStep + MSCModel.steps.add(step2) + for (pdi : esb.instanceStatementBlocks.map[isb|isb.eContainer]){ + var EnterStateStep esst = Utils.createEnterStateStep + esst.stateName= (pdi as ProcessDeclarationInstance).currentState.name + esst.site =MSCModel.sites.filter[site|site.name == (pdi as ProcessDeclarationInstance).flatname].get(0) + step2.microSteps.add(esst) + } + } + else{ + if((esb.instanceStatementBlocks.map[isb|isb.statements].flatten.exists[s|s instanceof SendStatement])){ + var Step step = Utils.createStep + MSCModel.steps.add(step) + var SendStep st = Utils.createSendStep + step.microSteps.add(st) + for (ss : esb.instanceStatementBlocks.map[isb|isb.statements].flatten.filter(SendStatement)){ + st.senderSites.add(MSCModel.sites.filter[site|site.name == (esb.instanceStatementBlocks.filter[isb|isb.statements.contains(ss)].get(0).eContainer as ProcessDeclarationInstance).flatname].get(0)) + } + for (ss : esb.instanceStatementBlocks.map[isb|isb.statements].flatten.filter(ReceiveStatement)){ + st.receiverSites.add(MSCModel.sites.filter[site|site.name == (esb.instanceStatementBlocks.filter[isb|isb.statements.contains(ss)].get(0).eContainer as ProcessDeclarationInstance).flatname].get(0)) + } + // + var Step step2 = Utils.createStep + MSCModel.steps.add(step2) + for (pdi : esb.instanceStatementBlocks.map[isb|isb.eContainer]){ + var EnterStateStep esst = Utils.createEnterStateStep + esst.stateName= (pdi as ProcessDeclarationInstance).currentState.name + esst.site =MSCModel.sites.filter[site|site.name == (pdi as ProcessDeclarationInstance).flatname].get(0) + step2.microSteps.add(esst) + } + } + else{ + var Step step = Utils.createStep + MSCModel.steps.add(step) + for (pdi : esb.instanceStatementBlocks.map[isb|isb.eContainer]){ + var EnterStateStep esst= Utils.createEnterStateStep + esst.site = MSCModel.sites.filter[site|site.name == (pdi as ProcessDeclarationInstance).flatname].get(0) + esst.stateName = (pdi as ProcessDeclarationInstance).currentState.name + step.microSteps.add(esst) + } + } + } + Utils.saveResource(mscResource) + } + + def extractInstanceExecutedStatements(String instance_tr_name) { + // gel the instance transition json object whose the name is equal to instance_tr_name + val JSONObject a_i_tr_jobject = getallInstanceTransitionsObjects.filter[aatr|(aatr as JSONObject).get("name") == instance_tr_name].get(0) + // Get the Process Declaration Instance that contains the instance transition object (a_i_tr_jobject) + val ProcessDeclarationInstance c_pdi = mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof ProcessDeclarationInstance].filter [ p1, p2 | + ((p2 as JSONObject).get("transitions") as JSONArray).contains(a_i_tr_jobject) + ].keySet.get(0) as ProcessDeclarationInstance; + // the following if then else allows to forbid duplicate instance statements blocks + // If the process declaration instance contains a block which have the same name + if(c_pdi.instanceStatementBlocks.filter(InstanceExecutedStatementBlock).filter[ifst|ifst.name == instance_tr_name].size > 0) { + // so, return this found block (this block will not be added again because the list doesn't accept duplicates) + c_pdi.instanceStatementBlocks.filter(InstanceExecutedStatementBlock).filter[ifst|ifst.name == instance_tr_name].get(0) + } else { + // there is no block with this name, so create a new block + val InstanceExecutedStatementBlock block = Utils.createInstanceExecutedStatementBlock + block.name = instance_tr_name + // get the LinkedHashMap that contains the statements of this instance transition + for (element : tr_in_stmts.filter[p1, p2|p1 == instance_tr_name].values.get(0).keySet) { + // and for each element + // add it in the appropriate location + if(element instanceof TransitionSource) { + block.transitionSource = element + } else { + block.statements.add(element as Statement) + } + } + c_pdi.instanceStatementBlocks.add(block) + block + } + } + + def clearAllExecutableStatements() { + // delete all executable block statements in the instance model + instanceModel.statementBlocks.removeAll(instanceModel.statementBlocks.filter(ExecutableStatementBlock)) + // delete all instance executable block statements in different process declaration instance + instanceModel.eAllContents.toList.filter(ProcessDeclarationInstance).forEach[pdi|pdi.instanceStatementBlocks.removeAll(pdi.instanceStatementBlocks.filter(InstanceExecutableStatementBlock))] + } + + def clearAllExecutedStatements() { + // delete all executable block statements in the instance model + instanceModel.statementBlocks.removeAll(instanceModel.statementBlocks.filter(ExecutedStatementBlock)) + // delete all instance executable block statements in different process declaration instance + instanceModel.eAllContents.toList.filter(ProcessDeclarationInstance).forEach[pdi|pdi.instanceStatementBlocks.removeAll(pdi.instanceStatementBlocks.filter(InstanceExecutedStatementBlock))] + } + + def ExecutedStatementBlock extractExecutedStatementsBlock(String transition_name) { + val ExecutedStatementBlock esb = Utils.createExecutedStatementBlock + esb.name = transition_name + instanceModel.statementBlocks.add(esb) + esb + } + + def extractExecutableStatements() { + clearAllExecutableStatements + // this for statement allows to iterate in a map + for (Map.Entry entry : tTSSimulator.enabledTransitions.entrySet()) { + val String tr_name = entry.getKey() + val String tr_interval = entry.getValue() + // for each (tr_name, tr_interval), we create an EnabledStatementBlock + val EnabledStatementBlock esb = extractEnabledStatements(tr_name, tr_interval) + // frac compiler adds some intermediate transitions + // that don't exist in the static json description, + // like in mouse_property example (__presentAfter__1_1_t1 transition) + // Therefore for this global transition, it doesn't exist instance transitions + // and the mapping doesn't exist for this transition + // So, using this conditional statement, we eliminate this case + if(tr_gl_tr_ins.filter[p1, p2|p1 == tr_name].values.size > 0) { + // for each instance transition (instance_tr) of the global transition (tr_name) + for (instance_tr : tr_gl_tr_ins.filter[p1, p2|p1 == tr_name].values.get(0)) { + // add the created instance statement block in the current instanceStatementBlocks + esb.instanceStatementBlocks.add(extractInstanceEnabledStatements(instance_tr)) + } + } + } + // Idem for fireable + for (Map.Entry entry : tTSSimulator.fireableTransitions.entrySet()) { + val String tr_name = entry.getKey() + val String tr_interval = entry.getValue() + val FireableStatementBlock fsb = extractFireableStatements(tr_name, tr_interval) + // frac compiler adds some intermediate transitions + // that don't exist in the static json description, + // like in mouse_property example (__presentAfter__1_1_t1 transition) + // Therefore for this global transition, it doesn't exist instance transitions + // and the mapping doesn't exist for this transition + // So, using this conditional statement, we eliminate this case + if(tr_gl_tr_ins.filter[p1, p2|p1 == tr_name].values.size > 0) { + for (instance_tr : tr_gl_tr_ins.filter[p1, p2|p1 == tr_name].values.get(0)) { + fsb.instanceStatementBlocks.add(extractInstanceFireableStatements(instance_tr)) + } + } + } + } + + def extractInstanceFireableStatements(String instance_tr_name) { + // gel the instance transition json object whose the name is equal to instance_tr_name + val JSONObject a_i_tr_jobject = getallInstanceTransitionsObjects.filter[aatr|(aatr as JSONObject).get("name") == instance_tr_name].get(0) + // Get the Process Declaration Instance that contains the instance transition object (a_i_tr_jobject) + val ProcessDeclarationInstance c_pdi = mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof ProcessDeclarationInstance].filter [ p1, p2 | + ((p2 as JSONObject).get("transitions") as JSONArray).contains(a_i_tr_jobject) + ].keySet.get(0) as ProcessDeclarationInstance; + // the following if then else allows to forbid duplicate instance statements blocks + // If the process declaration instance contains a block which have the same name + if(c_pdi.instanceStatementBlocks.filter(InstanceFireableStatementBlock).filter[ifst|ifst.name == instance_tr_name].size > 0) { + // so, return this found block (this block will not be added again because the list doesn't accept duplicates) + c_pdi.instanceStatementBlocks.filter(InstanceFireableStatementBlock).filter[ifst|ifst.name == instance_tr_name].get(0) + } else { + // there is no block with this name, so create a new block + val InstanceFireableStatementBlock block = Utils.createInstanceFireableStatementBlock + block.name = instance_tr_name + // get the LinkedHashMap that contains the statements of this instance transition + for (element : tr_in_stmts.filter[p1, p2|p1 == instance_tr_name].values.get(0).keySet) { + // and for each element + // add it in the appropriate location + if(element instanceof TransitionSource) { + block.transitionSource = element + } else { + block.statements.add(element as Statement) + } + } + c_pdi.instanceStatementBlocks.add(block) + block + } + } + + // Idem + def extractInstanceEnabledStatements(String instance_tr_name) { + // Get the Process Declaration Instance that contains the instance transition object (a_i_tr_jobject) + val JSONObject a_i_tr_jobject = getallInstanceTransitionsObjects.filter[aatr|(aatr as JSONObject).get("name") == instance_tr_name].get(0) + val ProcessDeclarationInstance c_pdi = mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof ProcessDeclarationInstance].filter [ p1, p2 | + ((p2 as JSONObject).get("transitions") as JSONArray).contains(a_i_tr_jobject) + ].keySet.get(0) as ProcessDeclarationInstance; + if(c_pdi.instanceStatementBlocks.filter(InstanceEnabledStatementBlock).filter[ifst|ifst.name == instance_tr_name].size > 0) { + c_pdi.instanceStatementBlocks.filter(InstanceEnabledStatementBlock).filter[ifst|ifst.name == instance_tr_name].get(0) + } else { + val InstanceEnabledStatementBlock block = Utils.createInstanceEnabledStatementBlock + block.name = instance_tr_name + for (element : tr_in_stmts.filter[p1, p2|p1 == instance_tr_name].values.get(0).keySet) { + if(element instanceof TransitionSource) { + block.transitionSource = element + } else { + block.statements.add(element as Statement) + } + } + c_pdi.instanceStatementBlocks.add(block) + block + + } + } + + def EnabledStatementBlock extractEnabledStatements(String transition_name, String interval) { + val EnabledStatementBlock esb = Utils.createEnabledStatementBlock + esb.name = transition_name + esb.date = interval + instanceModel.statementBlocks.add(esb) + esb + } + + def FireableStatementBlock extractFireableStatements(String transition_name, String interval) { + val FireableStatementBlock fsb = Utils.createFireableStatementBlock + fsb.name = transition_name + fsb.date = interval + instanceModel.statementBlocks.add(fsb) + fsb + } + + def int getOffset(XtextDocument xtextDocument, int line, int character) { + var int offset = character + for (var i = 0; i < line; i++) { + try { + offset += xtextDocument.getLineLength(i) + } catch(BadLocationException e) { + // TODO Auto-generated catch block + e.printStackTrace + } + } + return offset + } + + def EObject eContainer(EObject root, Class type) { + var EObject current = root + while(current != null) { + if(type.isInstance(current)) { + return current + } else { + current = current.eContainer + } + } + return null + } + +// def EObject eContainerStatement(EObject root) { +// var EObject current = root +// while(current != null) { +// if(StatementSequence.isInstance(current.eContainer())) { +// return current +// } else { +// current = current.eContainer +// } +// } +// return null; +// } + def EObject getStatement(EObject root) { + var EObject current = root + while(current != null) { + if(!(isAtomicStatement(current.eContainer))) { + return current + } else { + current = current.eContainer + } + } + return null + } + + def boolean isAtomicStatement(EObject root) { + if(eContainer(root, Statement) != null) { + if(UnlessStatement.isInstance(root) || StatementChoice.isInstance(root) || StatementSequence.isInstance(root) || ConditionalStatement.isInstance(root) || + ExtendedConditionalStatement.isInstance(root) || SelectStatement.isInstance(root) || WhileStatement.isInstance(root) || ForeachStatement.isInstance(root) || + CaseStatement.isInstance(root) || BlockStatement.isInstance(root)) { + return false + } else { + return true + } + + } else { + return false + } + } + + def InstanceModel getInstanceModel() { + return instanceResource.contents.get(0) as InstanceModel + } + def MSC getMSCModel() { + return mscResource.contents.get(0) as MSC + } + + def Model getModel() { + return fiacreResource.contents.get(0) as Model + } + + def saveInstanceResource() { + Utils.saveResource(instanceResource) + } + def saveMscResource() { + Utils.saveResource(mscResource) + } + + def Resource getInstanceResource() { + instanceResource + } + + // this method just to print to detect errors + def println_elements(XtextResource xtextResource, XtextDocument xtextDocument) { + for (var i = 0; i < xtextDocument.getNumberOfLines(); i++) { + try { + print("Line " + i + " Line length " + xtextDocument.getLineLength(i)) + println(" Line " + i + " LineOffset " + xtextDocument.getLineOffset(i)) + } catch(BadLocationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + for (var i = 0; i < xtextDocument.getLength(); i++) { + val Injector injector = XtextActivator.getInstance().getInjector("fr.irit.fiacre.xtext.Fiacre") + val EObjectAtOffsetHelper eObjectAtOffsetHelper = injector.getInstance(EObjectAtOffsetHelper) + try { + val EObject object = eObjectAtOffsetHelper.resolveElementAt(xtextResource, i) + val EObject object2 = eObjectAtOffsetHelper.resolveContainedElementAt(xtextResource, i) + val EObject object3 = eObjectAtOffsetHelper.resolveCrossReferencedElementAt(xtextResource, i) + val int line = xtextDocument.getLineOfOffset(i) + val int column = (i - xtextDocument.getLineOffset(xtextDocument.getLineOfOffset(i))) + if(i != xtextDocument.getOffset(line, column)) { + println("error") + } + println("----- ") + print("o " + i + " offset " + xtextDocument.getOffset(line, column) + " line of offset " + xtextDocument.getLineOfOffset(i)) + print(" (l " + line + " ") + print("c " + column + ") ") + print("(el = " + (line + 1) + ", ") + println("ec = " + (column + 1) + ") ") + println("object " + object) + println("cross " + object3) + println("contained " + object2) + println("containerStatement " + getStatement(object2)) + + } catch(BadLocationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + def gettr_gl_tr_ins(){ + tr_gl_tr_ins + } +} \ No newline at end of file diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/StaticJsonExtractor.xtend b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/StaticJsonExtractor.xtend new file mode 100644 index 0000000..62dbab2 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/StaticJsonExtractor.xtend @@ -0,0 +1,209 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package com.irtsaintexupery.fiacre.simulator.staticjson.extractor + +import com.irtsaintexupery.fiacre.instance.fiacreinstance.BlockInstance +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ComponentDeclarationInstance +import com.irtsaintexupery.fiacre.instance.fiacreinstance.CompositionInstance +import com.irtsaintexupery.fiacre.instance.fiacreinstance.DeclarationInstance +import com.irtsaintexupery.fiacre.instance.fiacreinstance.InstanceModel +import com.irtsaintexupery.fiacre.instance.fiacreinstance.ProcessDeclarationInstance +import com.irtsaintexupery.fiacre.instance.fiacreinstance.VariableDeclarationInstance +import com.irtsaintexupery.fiacre.simulator.core.Utils +import com.irtsaintexupery.fiacre.simulator.msc.msc.MSC +import com.irtsaintexupery.fiacre.simulator.msc.msc.Site +import fr.irit.fiacre.xtext.fiacre.ComponentDeclaration +import fr.irit.fiacre.xtext.fiacre.CompositeBlock +import fr.irit.fiacre.xtext.fiacre.Composition +import fr.irit.fiacre.xtext.fiacre.InstanceDeclaration +import fr.irit.fiacre.xtext.fiacre.Model +import fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration +import fr.irit.fiacre.xtext.fiacre.ProcessDeclaration +import java.util.HashMap +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.resource.XtextResource +import org.json.simple.JSONArray +import org.json.simple.JSONAware +import org.json.simple.JSONObject + +class StaticJsonExtractor { + var XtextResource fiacreResource + var JSONObject fiacreStaticJson + var Resource instanceResource + var Resource mscResource + var HashMap mapping + // The constructor + new(XtextResource _fiacreResource, JSONObject _fiacreStaticJson, Resource _instanceResource, Resource _mscResource) { + fiacreResource = _fiacreResource + fiacreStaticJson = _fiacreStaticJson + instanceResource = _instanceResource + mapping = new HashMap() + mscResource = _mscResource + } + + // This method extracts static information from the json model + // and creates the fiacre instance model + def extract() { + extractFiacreModel() + if (fiacreStaticJson.get("arch_var") instanceof JSONObject){ + extractMainDeclaration(fiacreStaticJson.getJSONObject("arch_var")) + } + else{ + for (element : fiacreStaticJson.get("arch_var") as JSONArray){ + extractMainDeclaration(element as JSONObject) + } + } + + Utils.saveResource(instanceResource) + Utils.saveResource(mscResource) + } + + def extractFiacreModel() { + //instanceModel.name = (fiacreModel.root as Declaration).name + "Instance" + instanceModel.model = fiacreModel + } + + def extractMainDeclaration(JSONObject jsonob) { + val String name = jsonob.getJSONString("name") + if(jsonob.component) { + val ComponentDeclarationInstance cdi = Utils.createComponentDeclarationInstance + instanceModel.instance.add(cdi) + val ComponentDeclaration fcr_component = fiacreModel.declarations.filter[decl|decl.name==jsonob.get("name")].get(0) as ComponentDeclaration + cdi.component = fcr_component + cdi.name = fiacreModel.declarations.filter(ComponentDeclaration).filter[cd|cd.name == name].get(0).name + jsonob.extractVariable(fcr_component, cdi) + jsonob.getJSONArray("body").extractBody(cdi, fcr_component.body) + mapping.put(cdi,jsonob) + cdi.flatname = jsonob.getJSONString("flatname") + } else { + val ProcessDeclarationInstance pdi = Utils.createProcessDeclarationInstance + instanceModel.instance.add(pdi) + val ProcessDeclaration fcr_process = fiacreModel.declarations.filter[decl|decl.name==jsonob.get("name")].get(0) as ProcessDeclaration + pdi.process = fcr_process + pdi.name = fiacreModel.declarations.filter(ProcessDeclaration).filter[cd|cd.name == name].get(0).name + jsonob.extractVariable(fcr_process, pdi) + mapping.put(pdi,jsonob) + pdi.flatname = jsonob.getJSONString("flatname") + //msc part + val Site site = Utils.createSite + site.name = jsonob.getJSONString("flatname") + MSCModel.sites.add(site) + } + } + + def void extractBody(JSONArray json_composition, BlockInstance instance, Composition fiacre_composition) { + for (element : json_composition) { + if(element instanceof JSONArray) { + // It is a composition + val CompositionInstance ci = Utils.createCompositionInstance + instance.blockInstances.add(ci) + ci.composition = ((fiacre_composition.blocks.get(json_composition.indexOf(element))) as CompositeBlock).composition + element.extractBody(ci, ((((fiacre_composition.blocks.get(json_composition.indexOf(element))) as CompositeBlock).composition))) + } else { + if((element as JSONObject).component) { + // It is a component instance + val String name = (element as JSONObject).getJSONString("name") + val ComponentDeclarationInstance cdi = Utils.createComponentDeclarationInstance + instance.blockInstances.add(cdi) + cdi.instance = (((fiacre_composition.blocks.get(json_composition.indexOf(element))) as InstanceDeclaration).instance) + (element as JSONObject).getJSONArray("body").extractBody(cdi, + ((((fiacre_composition.blocks.get(json_composition.indexOf(element))) as InstanceDeclaration).instance.component) as ComponentDeclaration).body) + cdi.component = fiacreModel.declarations.filter(ComponentDeclaration).filter [ cd | + cd.name == name + ].get(0) + cdi.name = (fiacreModel.declarations.filter(ComponentDeclaration).filter [ cd | + cd.name == name + ].get(0).name) + (element as JSONObject).extractVariable(fiacreModel.declarations.filter(ComponentDeclaration).filter[cd|cd.name == name].get(0), cdi) + mapping.put(cdi,element as JSONObject) + cdi.flatname = (element as JSONObject).getJSONString("flatname") + } else { + // It is a process instance + val String name = (element as JSONObject).getJSONString("name") + val ProcessDeclarationInstance pdi = Utils.createProcessDeclarationInstance + pdi.instance = ((fiacre_composition.blocks.get(json_composition.indexOf(element))) as InstanceDeclaration).instance + instance.blockInstances.add(pdi) + pdi.process = fiacreModel.declarations.filter(ProcessDeclaration).filter [ cd | + cd.name == name + ].get(0) + pdi.name = (fiacreModel.declarations.filter(ProcessDeclaration).filter [ cd | + cd.name == name + ].get(0).name) + (element as JSONObject).extractVariable(fiacreModel.declarations.filter(ProcessDeclaration).filter[cd|cd.name == name].get(0), pdi) + mapping.put(pdi,element as JSONObject) + pdi.flatname = (element as JSONObject).getJSONString("flatname") + //msc part + val Site site = Utils.createSite + site.name = (element as JSONObject).getJSONString("flatname") + MSCModel.sites.add(site) + } + } + } + } + + def boolean isComponent(JSONObject jsonob) { + if(jsonob.containsKey("body")) + return true + else + return false + } + + def extractVariable(JSONObject jsonob, ParameterizedDeclaration comp_decl, DeclarationInstance cdi) { + for (jvar : jsonob.getJSONArray("vars")) { + val String var_name = (jvar as JSONObject).getJSONString("sourcename") + + if(var_name.isVariableDeclaration(comp_decl)) { + val VariableDeclarationInstance vi = Utils.createVariableDeclarationInstance + cdi.variableDeclarationInstances.add(vi) + vi.variableDeclaration = comp_decl.variables.map[vars|vars.variables].flatten.filter [ avar | + avar.name == (jvar as JSONObject).getJSONString("sourcename") + ].get(0) + } + // else + // vi.referenceDeclaration = comp_decl.parameters.map[vars|vars.parameters].flatten.filter[avar |avar.name == (jvar as JSONObject).getJSONString("sourcename")] .get(0) + } + } + + def boolean isVariableDeclaration(String name, ParameterizedDeclaration declaration) { + if(declaration.variables.map[vars|vars.variables].flatten.map[avar|avar.name].filter [ aname | + aname == name + ].size > 0) + return true + else + return false + } + + def getJSONObject(JSONObject jsonOb, String key) { + jsonOb.get(key) as JSONObject + } + + def getJSONString(JSONObject jsonOb, String key) { + jsonOb.get(key) as String + } + + def getJSONArray(JSONObject jsonOb, String key) { + jsonOb.get(key) as JSONArray + } + + def Model getFiacreModel() { + return fiacreResource.contents.get(0) as Model + } + def MSC getMSCModel() { + return mscResource.contents.get(0) as MSC + } + def InstanceModel getInstanceModel() { + return instanceResource.contents.get(0) as InstanceModel + } + def HashMap getMapping(){ + return mapping + } +} \ No newline at end of file diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/methods.txt b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/methods.txt new file mode 100644 index 0000000..a6a353d --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/src/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/methods.txt @@ -0,0 +1,150 @@ +def HashMap> getVariablesMappings() { + var HashMap> map_var_job_cdi = new HashMap>() + val ArrayList fiacreVariablesAsJsonObjects = new ArrayList + // Get all json objects of vars from the mappings + // TODO why just flatten doesn't work + for (element : ( mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof DeclarationInstance].values.map[value|(value as JSONObject).get("vars")])) { + for (jelement : element as JSONArray) { + fiacreVariablesAsJsonObjects.add(jelement as JSONObject) + } + } + println("allJsonVariableValues "+fiacreVariablesAsJsonObjects) + // for each value element generated in the dynamic json + // for example "Process_1_vx" = 5 + for (element : fiacreVariablesAsJsonObjects.map[jvv|jvv.get("flatname")].toSet) { + + // this if allows to eliminate added variables by frac like Main_w1 + if(fiacreVariablesAsJsonObjects.filter[a|a.get("flatname") == element].size > 0) { + + // json_object_var is the concerned json object corresponding to the a fiacre variable + // It may be possible that there is many json_object_var that have the same name + // like the fp variable in the clock2.fcr + for (json_object_var : fiacreVariablesAsJsonObjects.filter[a|a.get("flatname") == element]) { + var ArrayList decls = new ArrayList + for (decl : mapping_blockinstance_jsonelement.filter[p1, p2|p1 instanceof DeclarationInstance].filter [ p1, p2 | + ((p2 as JSONObject).get("vars") as JSONArray).contains(json_object_var)].keySet) + { + decls.add(decl as DeclarationInstance) + } + if (decls.filter[decl|decl.variableDeclarationInstances.map[vdi|vdi.variableDeclaration].exists[v|v.name==json_object_var.get("sourcename")]].size>0){ + var HashMap map = new HashMap() + println("declaration instances "+decls.filter[decl|decl.variableDeclarationInstances.map[vdi|vdi.variableDeclaration].exists[v|v.name==json_object_var.get("sourcename")]]) + map.put(json_object_var,decls.filter[decl|decl.variableDeclarationInstances.map[vdi|vdi.variableDeclaration].exists[v|v.name==json_object_var.get("sourcename")]].get(0)) + map_var_job_cdi.put(element as String, map) + } + } + } + } + map_var_job_cdi + } + +def extractdoc(XtextResource xtextResource) { + + val Injector injector = FiacreActivator.getInstance().getInjector("fr.irit.fiacre.xtext.Fiacre") + + System.out.println("resource" + xtextResource); + + val IURIEditorOpener editorOpener = injector.getInstance(IURIEditorOpener) + val XtextEditor xtextEditor = editorOpener.open(xtextResource.URI, true) as XtextEditor + println("editor 2" + xtextEditor) + val XtextDocument xtextDocument = xtextEditor.document as XtextDocument +// System.out.println("document " + xtextDocument); +// for (var i = 0; i < xtextDocument.getNumberOfLines(); i++) { +// try { +// println("getLineLength " + i + " " + xtextDocument.getLineLength(i)) +// println("getLineOffset " + i + " " + xtextDocument.getLineOffset(i)) +// } catch(BadLocationException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// } + val EObjectAtOffsetHelper eObjectAtOffsetHelper = injector.getInstance(EObjectAtOffsetHelper) + for (var i = 0; i < xtextDocument.getLength(); i++) { + try { + val EObject object = eObjectAtOffsetHelper.resolveElementAt(xtextResource, i) + val EObject object2 = eObjectAtOffsetHelper.resolveContainedElementAt(xtextResource, i) + val EObject object3 = eObjectAtOffsetHelper.resolveCrossReferencedElementAt(xtextResource, i) + val int line = xtextDocument.getLineOfOffset(i) + val int column = (i - xtextDocument.getLineOffset(xtextDocument.getLineOfOffset(i))) + + println("----- ") + print("o " + i + " offset " + xtextDocument.getOffset(line, column)) + print(" (l " + line + " ") + print("c " + column + ") ") + print("(el = " + (line + 1) + ", ") + println("ec = " + (column + 1) + ") ") + println("object " + object) + println("cross " + object3) + println("contained " + object2) + println("containerStatement " + getStatement(object2)) + + } catch(BadLocationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + /* + * It exists two kinds of transitions + * Global transitions: which can be find in the json model root + * and Instance transitions which can be find in the process instances + * So from global transitions, we must find the instance transitions + * to obtain, after, the locations for each transition + */ + // Get global transitions from the json model + val JSONArray global_transitions = fiacreStaticJson.get("gtransitions") as JSONArray + + // Get all Instance transitions from the mapping + val ArrayList allInstanceTransitions = new ArrayList() + for (element : ( mapping.filter[p1, p2|p1 instanceof ProcessDeclarationInstance].values.map[value|(value as JSONObject).get("transitions")])) { + for (jelement : element as JSONArray) { + allInstanceTransitions.add(jelement as JSONObject) + } + } + // for each global transition name (a_global_tr_name) + for (a_global_tr_name : global_transitions.map[agtr|(agtr as JSONObject).get("name")]) { + + // Get the corresponding json object (a_g_tr_jobject) from the global transitions array list + val JSONObject a_g_tr_jobject = global_transitions.filter[gtr|(gtr as JSONObject).get("name") == a_global_tr_name].get(0) as JSONObject + println(a_global_tr_name + " " + a_g_tr_jobject) + + // for each instance transition name find in the transitions array of the global transition object + for (a_i_tr_name : a_g_tr_jobject.get("transitions") as JSONArray) { + + // Get the instance transition object (a_i_tr_jobject) + val JSONObject a_i_tr_jobject = allInstanceTransitions.filter[aatr|(aatr as JSONObject).get("name") == a_i_tr_name].get(0) + + // Get the Process Declaration Instance that contains the instance transition object (a_i_tr_jobject) + val c_pdi = mapping.filter[p1, p2|p1 instanceof ProcessDeclarationInstance].filter[p1, p2|((p2 as JSONObject).get("transitions") as JSONArray).contains(a_i_tr_jobject)].keySet.get(0); + println("process instance " + c_pdi) + println("tr in process " + a_i_tr_jobject) + + // Get locations of each instance transition + println("locations " + (a_i_tr_jobject as JSONObject).get("locations")) + // + for (a_location_jsonobject : (a_i_tr_jobject as JSONObject).get("locations") as JSONArray) { + val JSONObject from_location = (a_location_jsonobject as JSONObject).get("from") as JSONObject + val long line_from = from_location.get("line") as Long + val long char_from = from_location.get("char") as Long + val int offset_from = xtextDocument.getOffset(line_from.intValue, char_from.intValue) + + println(line_from + " " + char_from + " " + offset_from) + val JSONObject to_location = (a_location_jsonobject as JSONObject).get("to") as JSONObject + val long line_to = to_location.get("line") as Long + val long char_to = to_location.get("char") as Long + val int offset_to = xtextDocument.getOffset(line_to.intValue, char_to.intValue) + println(line_to + " " + char_to + " " + offset_to) + for (var int i = offset_from; i <= offset_to; i++) { + val int line = xtextDocument.getLineOfOffset(i) + val int column = (i - xtextDocument.getLineOffset(xtextDocument.getLineOfOffset(i))) + + val statement = eObjectAtOffsetHelper.resolveContainedElementAt(xtextResource, i).getStatement + if(statement instanceof TransitionSource || statement.isAtomicStatement) + println("(" + line + ", " + column + ") " + "(" + (line + 1) + ", " + (column + 1) + ") " + statement) + } + } + println(" ") + } + println("---") + } + } \ No newline at end of file diff --git a/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/xtend-gen/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/.gitignore b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/xtend-gen/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/.gitignore new file mode 100644 index 0000000..7e1e07b --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupery.fiacre.simulator/xtend-gen/com/irtsaintexupery/fiacre/simulator/staticjson/extractor/.gitignore @@ -0,0 +1,5 @@ +/.DynamicJsonExtractor.java._trace +/.StaticJsonExtractor.java._trace +/.*.xtendbin +/DynamicJsonExtractor.java +/StaticJsonExtractor.java diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.classpath b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.classpath new file mode 100644 index 0000000..22f3064 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.gitignore b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.project b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.project new file mode 100644 index 0000000..7b36199 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/.project @@ -0,0 +1,28 @@ + + + com.irtsaintexupey.fiacre.simulator.msc.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/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/META-INF/MANIFEST.MF b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/META-INF/MANIFEST.MF new file mode 100644 index 0000000..72003d6 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: com.irtsaintexupey.fiacre.simulator.msc.edit;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: com.irtsaintexupery.fiacre.simulator.msc.msc.provider.MSCEditPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: com.irtsaintexupery.fiacre.simulator.msc.msc.provider +Require-Bundle: org.eclipse.core.runtime, + com.irtsaintexupey.fiacre.simulator.msc;visibility:=reexport, + org.eclipse.emf.edit;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/build.properties b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/build.properties new file mode 100644 index 0000000..6e3e902 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.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/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateMSC_sites_Site.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateMSC_sites_Site.gif new file mode 100644 index 0000000000000000000000000000000000000000..0231726db96b59e4f24efbb6a568066a1c914789 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OvNL2> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateMSC_steps_Step.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateMSC_steps_Step.gif new file mode 100644 index 0000000000000000000000000000000000000000..cce61835884a8fc95cc25e92ef52c6d1b2aa6d2b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>Cs9>l7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateStep_microSteps_EnterStateStep.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateStep_microSteps_EnterStateStep.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e449c6284a9087b2efbc2774bdbd1c9999bec84 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO54h;t!92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaum8ebFu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateStep_microSteps_MicroStep.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateStep_microSteps_MicroStep.gif new file mode 100644 index 0000000000000000000000000000000000000000..1376267cc66b397e3317cc97936f85bb0248739d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|#{nqn;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateStep_microSteps_SynchronisationStep.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/ctool16/CreateStep_microSteps_SynchronisationStep.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcbb6405902ee778c70618c569442e794a8f1691 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|$D!eXgM-7a>1sfCMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wTp3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9XYA@gb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/MicroStep.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/MicroStep.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4bc22dd17e82d9350631bd55ad9671957cdaf50 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Noa>?Adg)XXcr- zh64_YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwrZD0F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/SendStep.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/SendStep.gif new file mode 100644 index 0000000000000000000000000000000000000000..83afb9b3c9a3c3e261dd043d2232d39254ac8e4a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyTt{n?Lw#ITz zn@*eJPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9V)-T`y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/Site.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/Site.gif new file mode 100644 index 0000000000000000000000000000000000000000..c00aedf4135a384d1a98a5344c27454f488cbe42 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np;#e|_`j=>7Zi zFI}os{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuauFf$AQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/Step.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/Step.gif new file mode 100644 index 0000000000000000000000000000000000000000..35ef84e20e26f1cef1dcd7ae80d192fd40472368 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH-5+2OJz6 z6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqynw9sg T)a2J)&e-X8WTKETBZD;nnfEVV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/SynchronisationStep.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/icons/full/obj16/SynchronisationStep.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea58a657dc0c287f6bb84e6cbd38008c96713db3 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%cT)Nq_=}g+p z0}c&}KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwr!e9G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/plugin.properties b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/plugin.properties new file mode 100644 index 0000000..d392b3a --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/plugin.properties @@ -0,0 +1,38 @@ +# + +pluginName = MSC Edit Support +providerName = www.example.org + +_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_MSC_type = MSC +_UI_Site_type = Site +_UI_Step_type = Step +_UI_MicroStep_type = Micro Step +_UI_EnterStateStep_type = Enter State Step +_UI_SynchronisationStep_type = Synchronisation Step +_UI_SendStep_type = Send Step +_UI_Unknown_type = Object + +_UI_Unknown_datatype= Value + +_UI_MSC_sites_feature = Sites +_UI_MSC_steps_feature = Steps +_UI_Site_name_feature = Name +_UI_Step_microSteps_feature = Micro Steps +_UI_MicroStep_time_feature = Time +_UI_EnterStateStep_stateName_feature = State Name +_UI_EnterStateStep_site_feature = Site +_UI_SynchronisationStep_sites_feature = Sites +_UI_SendStep_senderSites_feature = Sender Sites +_UI_SendStep_receiverSites_feature = Receiver Sites +_UI_Unknown_feature = Unspecified + +_UI_Site_currentState_feature = Current State diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/plugin.xml b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/plugin.xml new file mode 100644 index 0000000..d0ecd30 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/plugin.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/EnterStateStepItemProvider.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/EnterStateStepItemProvider.java new file mode 100644 index 0000000..7204f80 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/EnterStateStepItemProvider.java @@ -0,0 +1,155 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.provider; + + +import com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep} object. + * + * + * @generated + */ +public class EnterStateStepItemProvider extends MicroStepItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public EnterStateStepItemProvider(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); + + addStateNamePropertyDescriptor(object); + addSitePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the State Name feature. + * + * + * @generated + */ + protected void addStateNamePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_EnterStateStep_stateName_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_EnterStateStep_stateName_feature", "_UI_EnterStateStep_type"), + MscPackage.Literals.ENTER_STATE_STEP__STATE_NAME, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Site feature. + * + * + * @generated + */ + protected void addSitePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_EnterStateStep_site_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_EnterStateStep_site_feature", "_UI_EnterStateStep_type"), + MscPackage.Literals.ENTER_STATE_STEP__SITE, + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns EnterStateStep.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/EnterStateStep")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((EnterStateStep)object).getStateName(); + return label == null || label.length() == 0 ? + getString("_UI_EnterStateStep_type") : + getString("_UI_EnterStateStep_type") + " " + label; + } + + + /** + * This 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(EnterStateStep.class)) { + case MscPackage.ENTER_STATE_STEP__STATE_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/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MSCEditPlugin.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MSCEditPlugin.java new file mode 100644 index 0000000..7df9b0d --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MSCEditPlugin.java @@ -0,0 +1,89 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.provider; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the MSC edit plugin. + * + * + * @generated + */ +public final class MSCEditPlugin extends EMFPlugin { + /** + * Keep track of the singleton. + * + * + * @generated + */ + public static final MSCEditPlugin INSTANCE = new MSCEditPlugin(); + + /** + * Keep track of the singleton. + * + * + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * + * + * @generated + */ + public MSCEditPlugin() { + 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/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MSCItemProvider.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MSCItemProvider.java new file mode 100644 index 0000000..0ebdfed --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MSCItemProvider.java @@ -0,0 +1,175 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.provider; + + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MSC; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscFactory; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.MSC} object. + * + * + * @generated + */ +public class MSCItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public MSCItemProvider(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(MscPackage.Literals.MSC__SITES); + childrenFeatures.add(MscPackage.Literals.MSC__STEPS); + } + 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 MSC.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MSC")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_MSC_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(MSC.class)) { + case MscPackage.MSC__SITES: + case MscPackage.MSC__STEPS: + 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 + (MscPackage.Literals.MSC__SITES, + MscFactory.eINSTANCE.createSite())); + + newChildDescriptors.add + (createChildParameter + (MscPackage.Literals.MSC__STEPS, + MscFactory.eINSTANCE.createStep())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return MSCEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MicroStepItemProvider.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MicroStepItemProvider.java new file mode 100644 index 0000000..fd87001 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MicroStepItemProvider.java @@ -0,0 +1,156 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.provider; + + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep} object. + * + * + * @generated + */ +public class MicroStepItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public MicroStepItemProvider(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); + + addTimePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Time feature. + * + * + * @generated + */ + protected void addTimePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_MicroStep_time_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_MicroStep_time_feature", "_UI_MicroStep_type"), + MscPackage.Literals.MICRO_STEP__TIME, + true, + false, + false, + ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns MicroStep.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MicroStep")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + MicroStep microStep = (MicroStep)object; + return getString("_UI_MicroStep_type") + " " + microStep.getTime(); + } + + + /** + * This 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(MicroStep.class)) { + case MscPackage.MICRO_STEP__TIME: + 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 MSCEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MscItemProviderAdapterFactory.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MscItemProviderAdapterFactory.java new file mode 100644 index 0000000..d133d17 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/MscItemProviderAdapterFactory.java @@ -0,0 +1,319 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.provider; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.util.MscAdapterFactory; + +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; + +/** + * 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 MscItemProviderAdapterFactory extends MscAdapterFactory 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 MscItemProviderAdapterFactory() { + 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 com.irtsaintexupery.fiacre.simulator.msc.msc.MSC} instances. + * + * + * @generated + */ + protected MSCItemProvider mscItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.MSC}. + * + * + * @generated + */ + @Override + public Adapter createMSCAdapter() { + if (mscItemProvider == null) { + mscItemProvider = new MSCItemProvider(this); + } + + return mscItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site} instances. + * + * + * @generated + */ + protected SiteItemProvider siteItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site}. + * + * + * @generated + */ + @Override + public Adapter createSiteAdapter() { + if (siteItemProvider == null) { + siteItemProvider = new SiteItemProvider(this); + } + + return siteItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Step} instances. + * + * + * @generated + */ + protected StepItemProvider stepItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Step}. + * + * + * @generated + */ + @Override + public Adapter createStepAdapter() { + if (stepItemProvider == null) { + stepItemProvider = new StepItemProvider(this); + } + + return stepItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep} instances. + * + * + * @generated + */ + protected EnterStateStepItemProvider enterStateStepItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep}. + * + * + * @generated + */ + @Override + public Adapter createEnterStateStepAdapter() { + if (enterStateStepItemProvider == null) { + enterStateStepItemProvider = new EnterStateStepItemProvider(this); + } + + return enterStateStepItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep} instances. + * + * + * @generated + */ + protected SynchronisationStepItemProvider synchronisationStepItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep}. + * + * + * @generated + */ + @Override + public Adapter createSynchronisationStepAdapter() { + if (synchronisationStepItemProvider == null) { + synchronisationStepItemProvider = new SynchronisationStepItemProvider(this); + } + + return synchronisationStepItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep} instances. + * + * + * @generated + */ + protected SendStepItemProvider sendStepItemProvider; + + /** + * This creates an adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep}. + * + * + * @generated + */ + @Override + public Adapter createSendStepAdapter() { + if (sendStepItemProvider == null) { + sendStepItemProvider = new SendStepItemProvider(this); + } + + return sendStepItemProvider; + } + + /** + * 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 (mscItemProvider != null) mscItemProvider.dispose(); + if (siteItemProvider != null) siteItemProvider.dispose(); + if (stepItemProvider != null) stepItemProvider.dispose(); + if (enterStateStepItemProvider != null) enterStateStepItemProvider.dispose(); + if (synchronisationStepItemProvider != null) synchronisationStepItemProvider.dispose(); + if (sendStepItemProvider != null) sendStepItemProvider.dispose(); + } + +} diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SendStepItemProvider.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SendStepItemProvider.java new file mode 100644 index 0000000..e06108b --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SendStepItemProvider.java @@ -0,0 +1,145 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.provider; + + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep; + +import java.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; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep} object. + * + * + * @generated + */ +public class SendStepItemProvider extends MicroStepItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public SendStepItemProvider(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); + + addSenderSitesPropertyDescriptor(object); + addReceiverSitesPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Sender Sites feature. + * + * + * @generated + */ + protected void addSenderSitesPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_SendStep_senderSites_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_SendStep_senderSites_feature", "_UI_SendStep_type"), + MscPackage.Literals.SEND_STEP__SENDER_SITES, + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Receiver Sites feature. + * + * + * @generated + */ + protected void addReceiverSitesPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_SendStep_receiverSites_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_SendStep_receiverSites_feature", "_UI_SendStep_type"), + MscPackage.Literals.SEND_STEP__RECEIVER_SITES, + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns SendStep.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SendStep")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + SendStep sendStep = (SendStep)object; + return getString("_UI_SendStep_type") + " " + sendStep.getTime(); + } + + + /** + * This 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/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SiteItemProvider.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SiteItemProvider.java new file mode 100644 index 0000000..fdf98e8 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SiteItemProvider.java @@ -0,0 +1,182 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.provider; + + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Site; + +import java.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; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site} object. + * + * + * @generated + */ +public class SiteItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public SiteItemProvider(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); + addCurrentStatePropertyDescriptor(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_Site_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Site_name_feature", "_UI_Site_type"), + MscPackage.Literals.SITE__NAME, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Current State feature. + * + * + * @generated + */ + protected void addCurrentStatePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Site_currentState_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Site_currentState_feature", "_UI_Site_type"), + MscPackage.Literals.SITE__CURRENT_STATE, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns Site.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Site")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((Site)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_Site_type") : + getString("_UI_Site_type") + " " + label; + } + + + /** + * This 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(Site.class)) { + case MscPackage.SITE__NAME: + case MscPackage.SITE__CURRENT_STATE: + 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 MSCEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/StepItemProvider.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/StepItemProvider.java new file mode 100644 index 0000000..d6e49a6 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/StepItemProvider.java @@ -0,0 +1,178 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.provider; + + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscFactory; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Step; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Step} object. + * + * + * @generated + */ +public class StepItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public StepItemProvider(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(MscPackage.Literals.STEP__MICRO_STEPS); + } + 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 Step.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Step")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Step_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(Step.class)) { + case MscPackage.STEP__MICRO_STEPS: + 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 + (MscPackage.Literals.STEP__MICRO_STEPS, + MscFactory.eINSTANCE.createEnterStateStep())); + + newChildDescriptors.add + (createChildParameter + (MscPackage.Literals.STEP__MICRO_STEPS, + MscFactory.eINSTANCE.createSynchronisationStep())); + + newChildDescriptors.add + (createChildParameter + (MscPackage.Literals.STEP__MICRO_STEPS, + MscFactory.eINSTANCE.createSendStep())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return MSCEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SynchronisationStepItemProvider.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SynchronisationStepItemProvider.java new file mode 100644 index 0000000..e46d6a0 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.edit/src/com/irtsaintexupery/fiacre/simulator/msc/msc/provider/SynchronisationStepItemProvider.java @@ -0,0 +1,122 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.provider; + + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep; + +import java.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; + +/** + * This is the item provider adapter for a {@link com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep} object. + * + * + * @generated + */ +public class SynchronisationStepItemProvider extends MicroStepItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public SynchronisationStepItemProvider(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); + + addSitesPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Sites feature. + * + * + * @generated + */ + protected void addSitesPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_SynchronisationStep_sites_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_SynchronisationStep_sites_feature", "_UI_SynchronisationStep_type"), + MscPackage.Literals.SYNCHRONISATION_STEP__SITES, + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns SynchronisationStep.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SynchronisationStep")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + SynchronisationStep synchronisationStep = (SynchronisationStep)object; + return getString("_UI_SynchronisationStep_type") + " " + synchronisationStep.getTime(); + } + + + /** + * This 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/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.classpath b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.classpath new file mode 100644 index 0000000..22f3064 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.gitignore b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.project b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.project new file mode 100644 index 0000000..76bdd77 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/.project @@ -0,0 +1,28 @@ + + + com.irtsaintexupey.fiacre.simulator.msc.editor + + + + + + 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/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/META-INF/MANIFEST.MF b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/META-INF/MANIFEST.MF new file mode 100644 index 0000000..ca8fbb3 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/META-INF/MANIFEST.MF @@ -0,0 +1,18 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: com.irtsaintexupey.fiacre.simulator.msc.editor;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: com.irtsaintexupery.fiacre.simulator.msc.msc.presentation.MSCEditorPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: com.irtsaintexupery.fiacre.simulator.msc.msc.presentation +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.resources;visibility:=reexport, + com.irtsaintexupey.fiacre.simulator.msc.edit;visibility:=reexport, + org.eclipse.emf.ecore.xmi;visibility:=reexport, + org.eclipse.emf.edit.ui;visibility:=reexport, + org.eclipse.ui.ide;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/build.properties b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/build.properties new file mode 100644 index 0000000..5fb0771 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/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/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/icons/full/obj16/MscModelFile.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/icons/full/obj16/MscModelFile.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ae2f8c75fd4f40042714b544fcf8c831d02cdb6 GIT binary patch literal 346 zcmZ?wbhEHb6krfwxXQrL(9jScAHRS9{{Q#qA2@IT$YuD?z`*by$o~Hy%=-WT#hyzy zdp4a(n|Z*YVao(tAllGxx2DHodAHM|4(GY8uG5>`n#+CbO8u&f1Fme!ytTLH!HNE# zzy5sx`TOgS-=Dtz{_yqp+fTn{VWq*Bve(~S{F&UN~*1@;$NjE W=_<8Js(@v)l#de=|9lrm25SJB5_#kR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/icons/full/wizban/NewMsc.gif b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/icons/full/wizban/NewMsc.gif new file mode 100644 index 0000000000000000000000000000000000000000..25f312d6b5fa914fc7af40d101b8a3e5fdf4f86c GIT binary patch literal 2462 zcmd6m`8OMg8ivzyXM`x-QPZJfTAHHK&QR5AsWql$w2Ic!kg?USY8f{w=)@9er5!BYj=!_Znuek4d&imtcp6{IRvvaUDGxu`>TnBsx>}7X% zcXj>C>iTB}dwftJ85GP)Wg9E&Uo1Q`ExocVy)qZOUQcE<^AUKK71G)-_XZqiHx8gT0}<`(a|NHnI&CVG7GoIi-M|Nd~F}T zmQAehFKytI?J+=U=G8HVX`Lf<_Bf+&qL(k?jLrzA7RRO*#>Fz>yQOLAsz|atFW;2P z)-T`7x^h3;@?Pdu@0_dN+1GqAHV^*Y0&5qLXX}r3{52mIRNxYZcMZe4MLctlBDzNr zJYq;5d-A2e2^Bu^<-Q5!@Fa3Ta%Cv0HUw1@ji$zCHN<0@kOgh2#dK6LJ%hkRle*BP z&g`=8obsNW@@_1Jg`=>r~U0+!vr?g?9tZ{(c!mDcI*D{8wog=ia zk*1#4tuMzq2ZTM`w=emkfzg@4G0D)lbYyaVctR?eT6iOtiKVMklI5BC57W|><+V@6 zb!;N_Rq4M28waY|`P8lvdf#{t?`_{7)122cys=q{nsTl(;6 zab;`Z^~})3oItejW?CkkS$a4BK`dRFlE~$2pO!v+TwK}wu=!h@8r$8H@LHd z#R=-}Py}~lNjyjor+IZmoJ-n)uClA64@-i_>5&wFjGaEYP0w7Kwj>w9ZOKWAkcVsn23VJgN6FoWZ{5XHZl6Be^X%jD`=(#nyIPpD5r~&1u{)PNENMcfh04;Yu*>-O_O0-Y<7)Eo zZLdx#RGe_~p)?YF#f+dZ zMH2Mz9PM z3mvq6KUl>D5Y)ahD!@;BpWux;K!;%p-P(De5}$NiM^YlKLRJN&wQGl}(+uj+PYW*r zjF=EC9|}^^%cA5P?QS2b!iUw#NI*?fWpJMCr>U|7ie8InaV*z5NdE!k@_mp-%OEAc z-Hx}fbt7n{E%_uxB|4~%i%_WOG58%K9gfFA;&eAd>vgaO=ralZA@VMurOL^Nt+zBG zjF2C71{qSGYE?+P~4%BcNE9Mp&Q5AL>6dAfSJk*a=N3hg=i2cN~)R1xWB z;MTrQRZ{p5n$I|v@f&$UnyYcopF9yj!QWKeAdt)Mz)U^1@3p-FhID`AB_$7$YaZlL z>64+*-8Ec7Q$1Ax2|r70>$0BuGZv%PSKm6FC=f9)4-dM5On*7--ORnFHytbf_FOlD zA8&ntIZ5{7Bj1M(*qDht28Y&o3@tE3R!K;{w3KHt;&HyLHG5&oePA_SazhQA@PR2G z-l0ENQ~WxU7I)<*F;LZ7WiH33e&;prv+832+n1C#-*}=FDlYq;@|ReQ>9%+wasPS5 zYoG>-eQvfh2mn zNMY~s92FNW%J-_4XVl3cYfajJ05<`gg@YwjS<#Lg&cR4Gm>0iJuB>+Kr>Z&E+X5RMfZ)t*o3wfaVz(8STZ zz{ci=+L~sWa2>Q}adx+K2Mj14d`X`W;)OJSjn<3@fBOy4lmmkYbIb_XcCG4S^> zfJ+lM{RC8c6IRRfCgBP&A~O2{-idXP7f#kzIvmFZ_*5J^GK8!GXRj%N@5%41m_9XL zq?~jyXi1;TOf%77Wg$$+#0A)b`A|F$wgE(mta?6<-~BndqJ=1c z^;$4(TT!9Wg+4NuEfC)7qoR(6)UDbEuj`zmoE_F?!7&aM-b(qBQ=TT}J3rCQ3V^ki zVzg_zXxojbuh)wh+PU`o7U}|oTUGKT@S&R9)JZD8vOo`H8Q{qo&UMqYzn$(d7>_FX z0rW&jbl3RLeo)4bV?W$cHJo{JFpENq&dIgEOZqd;GT|ur81C-%+i6;_{n5?E`_1bd z^zo?gT%GGxLhiclxaIDnT-59ar2BsBB<$7t)R=zs8!LA*$`zp6;IAKenV^xm4+JSBa0kb6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/plugin.properties b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/plugin.properties new file mode 100644 index 0000000..1173524 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/plugin.properties @@ -0,0 +1,53 @@ +# + +pluginName = MSC Editor +providerName = www.example.org + +_UI_MscEditor_menu = &Msc Editor + +_UI_CreateChild_menu_item = &New Child +_UI_CreateSibling_menu_item = N&ew Sibling + +_UI_ShowPropertiesView_menu_item = Show &Properties View +_UI_RefreshViewer_menu_item = &Refresh + +_UI_SelectionPage_label = Selection +_UI_ParentPage_label = Parent +_UI_ListPage_label = List +_UI_TreePage_label = Tree +_UI_TablePage_label = Table +_UI_TreeWithColumnsPage_label = Tree with Columns +_UI_ObjectColumn_label = Object +_UI_SelfColumn_label = Self + +_UI_NoObjectSelected = Selected Nothing +_UI_SingleObjectSelected = Selected Object: {0} +_UI_MultiObjectSelected = Selected {0} Objects + +_UI_OpenEditorError_label = Open Editor + +_UI_Wizard_category = Example EMF Model Creation Wizards + +_UI_CreateModelError_message = Problems encountered in file "{0}" + +_UI_MscModelWizard_label = Msc Model +_UI_MscModelWizard_description = Create a new Msc model + +_UI_MscEditor_label = Msc Model Editor + +_UI_MscEditorFilenameDefaultBase = My +_UI_MscEditorFilenameExtensions = msc + +_UI_Wizard_label = New + +_WARN_FilenameExtension = The file name must end in ''.{0}'' +_WARN_FilenameExtensions = The file name must have one of the following extensions: {0} + +_UI_ModelObject = &Model Object +_UI_XMLEncoding = &XML Encoding +_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1 +_UI_Wizard_initial_object_description = Select a model object to create + +_UI_FileConflict_label = File Conflict +_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes? + diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/plugin.xml b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/plugin.xml new file mode 100644 index 0000000..44344ff --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/plugin.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + %_UI_MscModelWizard_description + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MSCEditorPlugin.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MSCEditorPlugin.java new file mode 100644 index 0000000..ef5a6a9 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MSCEditorPlugin.java @@ -0,0 +1,91 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.presentation; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.ui.EclipseUIPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the MSC editor plugin. + * + * + * @generated + */ +public final class MSCEditorPlugin extends EMFPlugin { + /** + * Keep track of the singleton. + * + * + * @generated + */ + public static final MSCEditorPlugin INSTANCE = new MSCEditorPlugin(); + + /** + * Keep track of the singleton. + * + * + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * + * + * @generated + */ + public MSCEditorPlugin() { + 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 EclipseUIPlugin { + /** + * Creates an instance. + * + * + * @generated + */ + public Implementation() { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscActionBarContributor.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscActionBarContributor.java new file mode 100644 index 0000000..2225ab3 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscActionBarContributor.java @@ -0,0 +1,423 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.presentation; + +import java.util.ArrayList; +import java.util.Collection; + +import org.eclipse.emf.common.ui.viewer.IViewerProvider; + +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; + +import org.eclipse.emf.edit.ui.action.ControlAction; +import org.eclipse.emf.edit.ui.action.CreateChildAction; +import org.eclipse.emf.edit.ui.action.CreateSiblingAction; +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; +import org.eclipse.emf.edit.ui.action.LoadResourceAction; +import org.eclipse.emf.edit.ui.action.ValidateAction; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.ActionContributionItem; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IContributionItem; +import org.eclipse.jface.action.IContributionManager; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.action.SubContributionItem; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.Viewer; + +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.PartInitException; + +/** + * This is the action bar contributor for the Msc model editor. + * + * + * @generated + */ +public class MscActionBarContributor + extends EditingDomainActionBarContributor + implements ISelectionChangedListener { + /** + * This keeps track of the active editor. + * + * + * @generated + */ + protected IEditorPart activeEditorPart; + + /** + * This keeps track of the current selection provider. + * + * + * @generated + */ + protected ISelectionProvider selectionProvider; + + /** + * This action opens the Properties view. + * + * + * @generated + */ + protected IAction showPropertiesViewAction = + new Action(MSCEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) { + @Override + public void run() { + try { + getPage().showView("org.eclipse.ui.views.PropertySheet"); + } + catch (PartInitException exception) { + MSCEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * This action refreshes the viewer of the current editor if the editor + * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}. + * + * + * @generated + */ + protected IAction refreshViewerAction = + new Action(MSCEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) { + @Override + public boolean isEnabled() { + return activeEditorPart instanceof IViewerProvider; + } + + @Override + public void run() { + if (activeEditorPart instanceof IViewerProvider) { + Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer(); + if (viewer != null) { + viewer.refresh(); + } + } + } + }; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * + * + * @generated + */ + protected Collection createChildActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateChild actions. + * + * + * @generated + */ + protected IMenuManager createChildMenuManager; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * + * + * @generated + */ + protected Collection createSiblingActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateSibling actions. + * + * + * @generated + */ + protected IMenuManager createSiblingMenuManager; + + /** + * This creates an instance of the contributor. + * + * + * @generated + */ + public MscActionBarContributor() { + super(ADDITIONS_LAST_STYLE); + loadResourceAction = new LoadResourceAction(); + validateAction = new ValidateAction(); + controlAction = new ControlAction(); + } + + /** + * This adds Separators for editor additions to the tool bar. + * + * + * @generated + */ + @Override + public void contributeToToolBar(IToolBarManager toolBarManager) { + toolBarManager.add(new Separator("msc-settings")); + toolBarManager.add(new Separator("msc-additions")); + } + + /** + * This adds to the menu bar a menu and some separators for editor additions, + * as well as the sub-menus for object creation items. + * + * + * @generated + */ + @Override + public void contributeToMenu(IMenuManager menuManager) { + super.contributeToMenu(menuManager); + + IMenuManager submenuManager = new MenuManager(MSCEditorPlugin.INSTANCE.getString("_UI_MscEditor_menu"), "com.irtsaintexupery.fiacre.simulator.msc.mscMenuID"); + menuManager.insertAfter("additions", submenuManager); + submenuManager.add(new Separator("settings")); + submenuManager.add(new Separator("actions")); + submenuManager.add(new Separator("additions")); + submenuManager.add(new Separator("additions-end")); + + // Prepare for CreateChild item addition or removal. + // + createChildMenuManager = new MenuManager(MSCEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + submenuManager.insertBefore("additions", createChildMenuManager); + + // Prepare for CreateSibling item addition or removal. + // + createSiblingMenuManager = new MenuManager(MSCEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + submenuManager.insertBefore("additions", createSiblingMenuManager); + + // Force an update because Eclipse hides empty menus now. + // + submenuManager.addMenuListener + (new IMenuListener() { + public void menuAboutToShow(IMenuManager menuManager) { + menuManager.updateAll(true); + } + }); + + addGlobalActions(submenuManager); + } + + /** + * When the active editor changes, this remembers the change and registers with it as a selection provider. + * + * + * @generated + */ + @Override + public void setActiveEditor(IEditorPart part) { + super.setActiveEditor(part); + activeEditorPart = part; + + // Switch to the new selection provider. + // + if (selectionProvider != null) { + selectionProvider.removeSelectionChangedListener(this); + } + if (part == null) { + selectionProvider = null; + } + else { + selectionProvider = part.getSite().getSelectionProvider(); + selectionProvider.addSelectionChangedListener(this); + + // Fake a selection changed event to update the menus. + // + if (selectionProvider.getSelection() != null) { + selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection())); + } + } + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener}, + * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings + * that can be added to the selected object and updating the menus accordingly. + * + * + * @generated + */ + public void selectionChanged(SelectionChangedEvent event) { + // Remove any menu items for old selection. + // + if (createChildMenuManager != null) { + depopulateManager(createChildMenuManager, createChildActions); + } + if (createSiblingMenuManager != null) { + depopulateManager(createSiblingMenuManager, createSiblingActions); + } + + // Query the new selection for appropriate new child/sibling descriptors + // + Collection newChildDescriptors = null; + Collection newSiblingDescriptors = null; + + ISelection selection = event.getSelection(); + if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) { + Object object = ((IStructuredSelection)selection).getFirstElement(); + + EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain(); + + newChildDescriptors = domain.getNewChildDescriptors(object, null); + newSiblingDescriptors = domain.getNewChildDescriptors(null, object); + } + + // Generate actions for selection; populate and redraw the menus. + // + createChildActions = generateCreateChildActions(newChildDescriptors, selection); + createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection); + + if (createChildMenuManager != null) { + populateManager(createChildMenuManager, createChildActions, null); + createChildMenuManager.update(true); + } + if (createSiblingMenuManager != null) { + populateManager(createSiblingMenuManager, createSiblingActions, null); + createSiblingMenuManager.update(true); + } + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in descriptors, + * and returns the collection of these actions. + * + * + * @generated + */ + protected Collection generateCreateChildActions(Collection descriptors, ISelection selection) { + Collection actions = new ArrayList(); + if (descriptors != null) { + for (Object descriptor : descriptors) { + actions.add(new CreateChildAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in descriptors, + * and returns the collection of these actions. + * + * + * @generated + */ + protected Collection generateCreateSiblingActions(Collection descriptors, ISelection selection) { + Collection actions = new ArrayList(); + if (descriptors != null) { + for (Object descriptor : descriptors) { + actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This populates the specified manager with {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the actions collection, + * by inserting them before the specified contribution item contributionID. + * If contributionID is null, they are simply added. + * + * + * @generated + */ + protected void populateManager(IContributionManager manager, Collection actions, String contributionID) { + if (actions != null) { + for (IAction action : actions) { + if (contributionID != null) { + manager.insertBefore(contributionID, action); + } + else { + manager.add(action); + } + } + } + } + + /** + * This removes from the specified manager all {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the actions collection. + * + * + * @generated + */ + protected void depopulateManager(IContributionManager manager, Collection actions) { + if (actions != null) { + IContributionItem[] items = manager.getItems(); + for (int i = 0; i < items.length; i++) { + // Look into SubContributionItems + // + IContributionItem contributionItem = items[i]; + while (contributionItem instanceof SubContributionItem) { + contributionItem = ((SubContributionItem)contributionItem).getInnerItem(); + } + + // Delete the ActionContributionItems with matching action. + // + if (contributionItem instanceof ActionContributionItem) { + IAction action = ((ActionContributionItem)contributionItem).getAction(); + if (actions.contains(action)) { + manager.remove(contributionItem); + } + } + } + } + } + + /** + * This populates the pop-up menu before it appears. + * + * + * @generated + */ + @Override + public void menuAboutToShow(IMenuManager menuManager) { + super.menuAboutToShow(menuManager); + MenuManager submenuManager = null; + + submenuManager = new MenuManager(MSCEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + populateManager(submenuManager, createChildActions, null); + menuManager.insertBefore("edit", submenuManager); + + submenuManager = new MenuManager(MSCEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + populateManager(submenuManager, createSiblingActions, null); + menuManager.insertBefore("edit", submenuManager); + } + + /** + * This inserts global actions before the "additions-end" separator. + * + * + * @generated + */ + @Override + protected void addGlobalActions(IMenuManager menuManager) { + menuManager.insertAfter("additions-end", new Separator("ui-actions")); + menuManager.insertAfter("ui-actions", showPropertiesViewAction); + + refreshViewerAction.setEnabled(refreshViewerAction.isEnabled()); + menuManager.insertAfter("ui-actions", refreshViewerAction); + + super.addGlobalActions(menuManager); + } + + /** + * This ensures that a delete action will clean up all references to deleted objects. + * + * + * @generated + */ + @Override + protected boolean removeAllReferencesOnDelete() { + return true; + } + +} diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscEditor.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscEditor.java new file mode 100644 index 0000000..2c7565d --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscEditor.java @@ -0,0 +1,1819 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.presentation; + + +import java.io.IOException; +import java.io.InputStream; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.EventObject; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceDeltaVisitor; +import org.eclipse.core.resources.ResourcesPlugin; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; + +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IStatusLineManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; + +import org.eclipse.jface.util.LocalSelectionTransfer; + +import org.eclipse.jface.viewers.ColumnWeightData; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.ListViewer; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.StructuredViewer; +import org.eclipse.jface.viewers.TableLayout; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.viewers.Viewer; + +import org.eclipse.swt.SWT; + +import org.eclipse.swt.custom.CTabFolder; + +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.FileTransfer; +import org.eclipse.swt.dnd.Transfer; + +import org.eclipse.swt.events.ControlAdapter; +import org.eclipse.swt.events.ControlEvent; + +import org.eclipse.swt.graphics.Point; + +import org.eclipse.swt.layout.FillLayout; + +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.swt.widgets.TreeColumn; + +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IPartListener; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PartInitException; + +import org.eclipse.ui.dialogs.SaveAsDialog; + +import org.eclipse.ui.ide.IGotoMarker; + +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.part.MultiPageEditorPart; + +import org.eclipse.ui.views.contentoutline.ContentOutline; +import org.eclipse.ui.views.contentoutline.ContentOutlinePage; +import org.eclipse.ui.views.contentoutline.IContentOutlinePage; + +import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.eclipse.ui.views.properties.PropertySheet; +import org.eclipse.ui.views.properties.PropertySheetPage; + +import org.eclipse.emf.common.command.BasicCommandStack; +import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.command.CommandStack; +import org.eclipse.emf.common.command.CommandStackListener; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.ui.MarkerHelper; +import org.eclipse.emf.common.ui.ViewerPane; + +import org.eclipse.emf.common.ui.editor.ProblemEditorPart; + +import org.eclipse.emf.common.ui.viewer.IViewerProvider; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.URI; + + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; + +import org.eclipse.emf.ecore.util.EContentAdapter; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; + +import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; + +import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; + +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; + +import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor; + +import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter; +import org.eclipse.emf.edit.ui.dnd.LocalTransfer; +import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter; + +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider; + +import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper; +import org.eclipse.emf.edit.ui.util.EditUIUtil; + +import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.provider.MscItemProviderAdapterFactory; + +import org.eclipse.ui.actions.WorkspaceModifyOperation; + + +/** + * This is an example of a Msc model editor. + * + * + * @generated + */ +public class MscEditor + extends MultiPageEditorPart + implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker { + /** + * This keeps track of the editing domain that is used to track all changes to the model. + * + * + * @generated + */ + protected AdapterFactoryEditingDomain editingDomain; + + /** + * This is the one adapter factory used for providing views of the model. + * + * + * @generated + */ + protected ComposedAdapterFactory adapterFactory; + + /** + * This is the content outline page. + * + * + * @generated + */ + protected IContentOutlinePage contentOutlinePage; + + /** + * This is a kludge... + * + * + * @generated + */ + protected IStatusLineManager contentOutlineStatusLineManager; + + /** + * This is the content outline page's viewer. + * + * + * @generated + */ + protected TreeViewer contentOutlineViewer; + + /** + * This is the property sheet page. + * + * + * @generated + */ + protected List propertySheetPages = new ArrayList(); + + /** + * This is the viewer that shadows the selection in the content outline. + * The parent relation must be correctly defined for this to work. + * + * + * @generated + */ + protected TreeViewer selectionViewer; + + /** + * This inverts the roll of parent and child in the content provider and show parents as a tree. + * + * + * @generated + */ + protected TreeViewer parentViewer; + + /** + * This shows how a tree view works. + * + * + * @generated + */ + protected TreeViewer treeViewer; + + /** + * This shows how a list view works. + * A list viewer doesn't support icons. + * + * + * @generated + */ + protected ListViewer listViewer; + + /** + * This shows how a table view works. + * A table can be used as a list with icons. + * + * + * @generated + */ + protected TableViewer tableViewer; + + /** + * This shows how a tree view with columns works. + * + * + * @generated + */ + protected TreeViewer treeViewerWithColumns; + + /** + * This keeps track of the active viewer pane, in the book. + * + * + * @generated + */ + protected ViewerPane currentViewerPane; + + /** + * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer. + * + * + * @generated + */ + protected Viewer currentViewer; + + /** + * This listens to which ever viewer is active. + * + * + * @generated + */ + protected ISelectionChangedListener selectionChangedListener; + + /** + * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor. + * + * + * @generated + */ + protected Collection selectionChangedListeners = new ArrayList(); + + /** + * This keeps track of the selection of the editor as a whole. + * + * + * @generated + */ + protected ISelection editorSelection = StructuredSelection.EMPTY; + + /** + * The MarkerHelper is responsible for creating workspace resource markers presented + * in Eclipse's Problems View. + * + * + * @generated + */ + protected MarkerHelper markerHelper = new EditUIMarkerHelper(); + + /** + * This listens for when the outline becomes active + * + * + * @generated + */ + protected IPartListener partListener = + new IPartListener() { + public void partActivated(IWorkbenchPart p) { + if (p instanceof ContentOutline) { + if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) { + getActionBarContributor().setActiveEditor(MscEditor.this); + + setCurrentViewer(contentOutlineViewer); + } + } + else if (p instanceof PropertySheet) { + if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) { + getActionBarContributor().setActiveEditor(MscEditor.this); + handleActivate(); + } + } + else if (p == MscEditor.this) { + handleActivate(); + } + } + public void partBroughtToTop(IWorkbenchPart p) { + // Ignore. + } + public void partClosed(IWorkbenchPart p) { + // Ignore. + } + public void partDeactivated(IWorkbenchPart p) { + // Ignore. + } + public void partOpened(IWorkbenchPart p) { + // Ignore. + } + }; + + /** + * Resources that have been removed since last activation. + * + * + * @generated + */ + protected Collection removedResources = new ArrayList(); + + /** + * Resources that have been changed since last activation. + * + * + * @generated + */ + protected Collection changedResources = new ArrayList(); + + /** + * Resources that have been saved. + * + * + * @generated + */ + protected Collection savedResources = new ArrayList(); + + /** + * Map to store the diagnostic associated with a resource. + * + * + * @generated + */ + protected Map resourceToDiagnosticMap = new LinkedHashMap(); + + /** + * Controls whether the problem indication should be updated. + * + * + * @generated + */ + protected boolean updateProblemIndication = true; + + /** + * Adapter used to update the problem indication when resources are demanded loaded. + * + * + * @generated + */ + protected EContentAdapter problemIndicationAdapter = + new EContentAdapter() { + @Override + public void notifyChanged(Notification notification) { + if (notification.getNotifier() instanceof Resource) { + switch (notification.getFeatureID(Resource.class)) { + case Resource.RESOURCE__IS_LOADED: + case Resource.RESOURCE__ERRORS: + case Resource.RESOURCE__WARNINGS: { + Resource resource = (Resource)notification.getNotifier(); + Diagnostic diagnostic = analyzeResourceProblems(resource, null); + if (diagnostic.getSeverity() != Diagnostic.OK) { + resourceToDiagnosticMap.put(resource, diagnostic); + } + else { + resourceToDiagnosticMap.remove(resource); + } + + if (updateProblemIndication) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + updateProblemIndication(); + } + }); + } + break; + } + } + } + else { + super.notifyChanged(notification); + } + } + + @Override + protected void setTarget(Resource target) { + basicSetTarget(target); + } + + @Override + protected void unsetTarget(Resource target) { + basicUnsetTarget(target); + resourceToDiagnosticMap.remove(target); + if (updateProblemIndication) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + updateProblemIndication(); + } + }); + } + } + }; + + /** + * This listens for workspace changes. + * + * + * @generated + */ + protected IResourceChangeListener resourceChangeListener = + new IResourceChangeListener() { + public void resourceChanged(IResourceChangeEvent event) { + IResourceDelta delta = event.getDelta(); + try { + class ResourceDeltaVisitor implements IResourceDeltaVisitor { + protected ResourceSet resourceSet = editingDomain.getResourceSet(); + protected Collection changedResources = new ArrayList(); + protected Collection removedResources = new ArrayList(); + + public boolean visit(IResourceDelta delta) { + if (delta.getResource().getType() == IResource.FILE) { + if (delta.getKind() == IResourceDelta.REMOVED || + delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) { + Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false); + if (resource != null) { + if (delta.getKind() == IResourceDelta.REMOVED) { + removedResources.add(resource); + } + else if (!savedResources.remove(resource)) { + changedResources.add(resource); + } + } + } + return false; + } + + return true; + } + + public Collection getChangedResources() { + return changedResources; + } + + public Collection getRemovedResources() { + return removedResources; + } + } + + final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor(); + delta.accept(visitor); + + if (!visitor.getRemovedResources().isEmpty()) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + removedResources.addAll(visitor.getRemovedResources()); + if (!isDirty()) { + getSite().getPage().closeEditor(MscEditor.this, false); + } + } + }); + } + + if (!visitor.getChangedResources().isEmpty()) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + changedResources.addAll(visitor.getChangedResources()); + if (getSite().getPage().getActiveEditor() == MscEditor.this) { + handleActivate(); + } + } + }); + } + } + catch (CoreException exception) { + MSCEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * Handles activation of the editor or it's associated views. + * + * + * @generated + */ + protected void handleActivate() { + // Recompute the read only state. + // + if (editingDomain.getResourceToReadOnlyMap() != null) { + editingDomain.getResourceToReadOnlyMap().clear(); + + // Refresh any actions that may become enabled or disabled. + // + setSelection(getSelection()); + } + + if (!removedResources.isEmpty()) { + if (handleDirtyConflict()) { + getSite().getPage().closeEditor(MscEditor.this, false); + } + else { + removedResources.clear(); + changedResources.clear(); + savedResources.clear(); + } + } + else if (!changedResources.isEmpty()) { + changedResources.removeAll(savedResources); + handleChangedResources(); + changedResources.clear(); + savedResources.clear(); + } + } + + /** + * Handles what to do with changed resources on activation. + * + * + * @generated + */ + protected void handleChangedResources() { + if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) { + if (isDirty()) { + changedResources.addAll(editingDomain.getResourceSet().getResources()); + } + editingDomain.getCommandStack().flush(); + + updateProblemIndication = false; + for (Resource resource : changedResources) { + if (resource.isLoaded()) { + resource.unload(); + try { + resource.load(Collections.EMPTY_MAP); + } + catch (IOException exception) { + if (!resourceToDiagnosticMap.containsKey(resource)) { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + } + } + } + + if (AdapterFactoryEditingDomain.isStale(editorSelection)) { + setSelection(StructuredSelection.EMPTY); + } + + updateProblemIndication = true; + updateProblemIndication(); + } + } + + /** + * Updates the problems indication with the information described in the specified diagnostic. + * + * + * @generated + */ + protected void updateProblemIndication() { + if (updateProblemIndication) { + BasicDiagnostic diagnostic = + new BasicDiagnostic + (Diagnostic.OK, + "com.irtsaintexupey.fiacre.simulator.msc.editor", + 0, + null, + new Object [] { editingDomain.getResourceSet() }); + for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) { + if (childDiagnostic.getSeverity() != Diagnostic.OK) { + diagnostic.add(childDiagnostic); + } + } + + int lastEditorPage = getPageCount() - 1; + if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) { + ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic); + if (diagnostic.getSeverity() != Diagnostic.OK) { + setActivePage(lastEditorPage); + } + } + else if (diagnostic.getSeverity() != Diagnostic.OK) { + ProblemEditorPart problemEditorPart = new ProblemEditorPart(); + problemEditorPart.setDiagnostic(diagnostic); + problemEditorPart.setMarkerHelper(markerHelper); + try { + addPage(++lastEditorPage, problemEditorPart, getEditorInput()); + setPageText(lastEditorPage, problemEditorPart.getPartName()); + setActivePage(lastEditorPage); + showTabs(); + } + catch (PartInitException exception) { + MSCEditorPlugin.INSTANCE.log(exception); + } + } + + if (markerHelper.hasMarkers(editingDomain.getResourceSet())) { + markerHelper.deleteMarkers(editingDomain.getResourceSet()); + if (diagnostic.getSeverity() != Diagnostic.OK) { + try { + markerHelper.createMarkers(diagnostic); + } + catch (CoreException exception) { + MSCEditorPlugin.INSTANCE.log(exception); + } + } + } + } + } + + /** + * Shows a dialog that asks if conflicting changes should be discarded. + * + * + * @generated + */ + protected boolean handleDirtyConflict() { + return + MessageDialog.openQuestion + (getSite().getShell(), + getString("_UI_FileConflict_label"), + getString("_WARN_FileConflict")); + } + + /** + * This creates a model editor. + * + * + * @generated + */ + public MscEditor() { + super(); + initializeEditingDomain(); + } + + /** + * This sets up the editing domain for the model editor. + * + * + * @generated + */ + protected void initializeEditingDomain() { + // Create an adapter factory that yields item providers. + // + adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE); + + adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new MscItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); + + // Create the command stack that will notify this editor as commands are executed. + // + BasicCommandStack commandStack = new BasicCommandStack(); + + // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus. + // + commandStack.addCommandStackListener + (new CommandStackListener() { + public void commandStackChanged(final EventObject event) { + getContainer().getDisplay().asyncExec + (new Runnable() { + public void run() { + firePropertyChange(IEditorPart.PROP_DIRTY); + + // Try to select the affected objects. + // + Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand(); + if (mostRecentCommand != null) { + setSelectionToViewer(mostRecentCommand.getAffectedObjects()); + } + for (Iterator i = propertySheetPages.iterator(); i.hasNext(); ) { + PropertySheetPage propertySheetPage = i.next(); + if (propertySheetPage.getControl().isDisposed()) { + i.remove(); + } + else { + propertySheetPage.refresh(); + } + } + } + }); + } + }); + + // Create the editing domain with a special command stack. + // + editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap()); + } + + /** + * This is here for the listener to be able to call it. + * + * + * @generated + */ + @Override + protected void firePropertyChange(int action) { + super.firePropertyChange(action); + } + + /** + * This sets the selection into whichever viewer is active. + * + * + * @generated + */ + public void setSelectionToViewer(Collection collection) { + final Collection theSelection = collection; + // Make sure it's okay. + // + if (theSelection != null && !theSelection.isEmpty()) { + Runnable runnable = + new Runnable() { + public void run() { + // Try to select the items in the current content viewer of the editor. + // + if (currentViewer != null) { + currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true); + } + } + }; + getSite().getShell().getDisplay().asyncExec(runnable); + } + } + + /** + * This returns the editing domain as required by the {@link IEditingDomainProvider} interface. + * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain} + * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}. + * + * + * @generated + */ + public EditingDomain getEditingDomain() { + return editingDomain; + } + + /** + * + * + * @generated + */ + public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider { + /** + * + * + * @generated + */ + public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * + * + * @generated + */ + @Override + public Object [] getElements(Object object) { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * + * + * @generated + */ + @Override + public Object [] getChildren(Object object) { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * + * + * @generated + */ + @Override + public boolean hasChildren(Object object) { + Object parent = super.getParent(object); + return parent != null; + } + + /** + * + * + * @generated + */ + @Override + public Object getParent(Object object) { + return null; + } + } + + /** + * + * + * @generated + */ + public void setCurrentViewerPane(ViewerPane viewerPane) { + if (currentViewerPane != viewerPane) { + if (currentViewerPane != null) { + currentViewerPane.showFocus(false); + } + currentViewerPane = viewerPane; + } + setCurrentViewer(currentViewerPane.getViewer()); + } + + /** + * This makes sure that one content viewer, either for the current page or the outline view, if it has focus, + * is the current one. + * + * + * @generated + */ + public void setCurrentViewer(Viewer viewer) { + // If it is changing... + // + if (currentViewer != viewer) { + if (selectionChangedListener == null) { + // Create the listener on demand. + // + selectionChangedListener = + new ISelectionChangedListener() { + // This just notifies those things that are affected by the section. + // + public void selectionChanged(SelectionChangedEvent selectionChangedEvent) { + setSelection(selectionChangedEvent.getSelection()); + } + }; + } + + // Stop listening to the old one. + // + if (currentViewer != null) { + currentViewer.removeSelectionChangedListener(selectionChangedListener); + } + + // Start listening to the new one. + // + if (viewer != null) { + viewer.addSelectionChangedListener(selectionChangedListener); + } + + // Remember it. + // + currentViewer = viewer; + + // Set the editors selection based on the current viewer's selection. + // + setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection()); + } + } + + /** + * This returns the viewer as required by the {@link IViewerProvider} interface. + * + * + * @generated + */ + public Viewer getViewer() { + return currentViewer; + } + + /** + * This creates a context menu for the viewer and adds a listener as well registering the menu for extension. + * + * + * @generated + */ + protected void createContextMenuFor(StructuredViewer viewer) { + MenuManager contextMenu = new MenuManager("#PopUp"); + contextMenu.add(new Separator("additions")); + contextMenu.setRemoveAllWhenShown(true); + contextMenu.addMenuListener(this); + Menu menu= contextMenu.createContextMenu(viewer.getControl()); + viewer.getControl().setMenu(menu); + getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer)); + + int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK; + Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() }; + viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer)); + viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer)); + } + + /** + * This is the method called to load a resource into the editing domain's resource set based on the editor's input. + * + * + * @generated + */ + public void createModel() { + URI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter()); + Exception exception = null; + Resource resource = null; + try { + // Load the resource through the editing domain. + // + resource = editingDomain.getResourceSet().getResource(resourceURI, true); + } + catch (Exception e) { + exception = e; + resource = editingDomain.getResourceSet().getResource(resourceURI, false); + } + + Diagnostic diagnostic = analyzeResourceProblems(resource, exception); + if (diagnostic.getSeverity() != Diagnostic.OK) { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter); + } + + /** + * Returns a diagnostic describing the errors and warnings listed in the resource + * and the specified exception (if any). + * + * + * @generated + */ + public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) { + boolean hasErrors = !resource.getErrors().isEmpty(); + if (hasErrors || !resource.getWarnings().isEmpty()) { + BasicDiagnostic basicDiagnostic = + new BasicDiagnostic + (hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING, + "com.irtsaintexupey.fiacre.simulator.msc.editor", + 0, + getString("_UI_CreateModelError_message", resource.getURI()), + new Object [] { exception == null ? (Object)resource : exception }); + basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true)); + return basicDiagnostic; + } + else if (exception != null) { + return + new BasicDiagnostic + (Diagnostic.ERROR, + "com.irtsaintexupey.fiacre.simulator.msc.editor", + 0, + getString("_UI_CreateModelError_message", resource.getURI()), + new Object[] { exception }); + } + else { + return Diagnostic.OK_INSTANCE; + } + } + + /** + * This is the method used by the framework to install your own controls. + * + * + * @generated + */ + @Override + public void createPages() { + // Creates the model from the editor input + // + createModel(); + + // Only creates the other pages if there is something that can be edited + // + if (!getEditingDomain().getResourceSet().getResources().isEmpty()) { + // Create a page for the selection tree view. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), MscEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + Tree tree = new Tree(composite, SWT.MULTI); + TreeViewer newTreeViewer = new TreeViewer(tree); + return newTreeViewer; + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + + selectionViewer = (TreeViewer)viewerPane.getViewer(); + selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + + selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + selectionViewer.setInput(editingDomain.getResourceSet()); + selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true); + viewerPane.setTitle(editingDomain.getResourceSet()); + + new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory); + + createContextMenuFor(selectionViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_SelectionPage_label")); + } + + // Create a page for the parent tree view. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), MscEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + Tree tree = new Tree(composite, SWT.MULTI); + TreeViewer newTreeViewer = new TreeViewer(tree); + return newTreeViewer; + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + + parentViewer = (TreeViewer)viewerPane.getViewer(); + parentViewer.setAutoExpandLevel(30); + parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory)); + parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(parentViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_ParentPage_label")); + } + + // This is the page for the list viewer + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), MscEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new ListViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + listViewer = (ListViewer)viewerPane.getViewer(); + listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(listViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_ListPage_label")); + } + + // This is the page for the tree viewer + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), MscEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new TreeViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + treeViewer = (TreeViewer)viewerPane.getViewer(); + treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory); + + createContextMenuFor(treeViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_TreePage_label")); + } + + // This is the page for the table viewer. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), MscEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new TableViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + tableViewer = (TableViewer)viewerPane.getViewer(); + + Table table = tableViewer.getTable(); + TableLayout layout = new TableLayout(); + table.setLayout(layout); + table.setHeaderVisible(true); + table.setLinesVisible(true); + + TableColumn objectColumn = new TableColumn(table, SWT.NONE); + layout.addColumnData(new ColumnWeightData(3, 100, true)); + objectColumn.setText(getString("_UI_ObjectColumn_label")); + objectColumn.setResizable(true); + + TableColumn selfColumn = new TableColumn(table, SWT.NONE); + layout.addColumnData(new ColumnWeightData(2, 100, true)); + selfColumn.setText(getString("_UI_SelfColumn_label")); + selfColumn.setResizable(true); + + tableViewer.setColumnProperties(new String [] {"a", "b"}); + tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(tableViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_TablePage_label")); + } + + // This is the page for the table tree viewer. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), MscEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new TreeViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + + treeViewerWithColumns = (TreeViewer)viewerPane.getViewer(); + + Tree tree = treeViewerWithColumns.getTree(); + tree.setLayoutData(new FillLayout()); + tree.setHeaderVisible(true); + tree.setLinesVisible(true); + + TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE); + objectColumn.setText(getString("_UI_ObjectColumn_label")); + objectColumn.setResizable(true); + objectColumn.setWidth(250); + + TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE); + selfColumn.setText(getString("_UI_SelfColumn_label")); + selfColumn.setResizable(true); + selfColumn.setWidth(200); + + treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"}); + treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(treeViewerWithColumns); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label")); + } + + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + setActivePage(0); + } + }); + } + + // Ensures that this editor will only display the page's tab + // area if there are more than one page + // + getContainer().addControlListener + (new ControlAdapter() { + boolean guard = false; + @Override + public void controlResized(ControlEvent event) { + if (!guard) { + guard = true; + hideTabs(); + guard = false; + } + } + }); + + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + updateProblemIndication(); + } + }); + } + + /** + * If there is just one page in the multi-page editor part, + * this hides the single tab at the bottom. + * + * + * @generated + */ + protected void hideTabs() { + if (getPageCount() <= 1) { + setPageText(0, ""); + if (getContainer() instanceof CTabFolder) { + ((CTabFolder)getContainer()).setTabHeight(1); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y + 6); + } + } + } + + /** + * If there is more than one page in the multi-page editor part, + * this shows the tabs at the bottom. + * + * + * @generated + */ + protected void showTabs() { + if (getPageCount() > 1) { + setPageText(0, getString("_UI_SelectionPage_label")); + if (getContainer() instanceof CTabFolder) { + ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y - 6); + } + } + } + + /** + * This is used to track the active viewer. + * + * + * @generated + */ + @Override + protected void pageChange(int pageIndex) { + super.pageChange(pageIndex); + + if (contentOutlinePage != null) { + handleContentOutlineSelection(contentOutlinePage.getSelection()); + } + } + + /** + * This is how the framework determines which interfaces we implement. + * + * + * @generated + */ + @SuppressWarnings("rawtypes") + @Override + public Object getAdapter(Class key) { + if (key.equals(IContentOutlinePage.class)) { + return showOutlineView() ? getContentOutlinePage() : null; + } + else if (key.equals(IPropertySheetPage.class)) { + return getPropertySheetPage(); + } + else if (key.equals(IGotoMarker.class)) { + return this; + } + else { + return super.getAdapter(key); + } + } + + /** + * This accesses a cached version of the content outliner. + * + * + * @generated + */ + public IContentOutlinePage getContentOutlinePage() { + if (contentOutlinePage == null) { + // The content outline is just a tree. + // + class MyContentOutlinePage extends ContentOutlinePage { + @Override + public void createControl(Composite parent) { + super.createControl(parent); + contentOutlineViewer = getTreeViewer(); + contentOutlineViewer.addSelectionChangedListener(this); + + // Set up the tree viewer. + // + contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + contentOutlineViewer.setInput(editingDomain.getResourceSet()); + + // Make sure our popups work. + // + createContextMenuFor(contentOutlineViewer); + + if (!editingDomain.getResourceSet().getResources().isEmpty()) { + // Select the root object in the view. + // + contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true); + } + } + + @Override + public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) { + super.makeContributions(menuManager, toolBarManager, statusLineManager); + contentOutlineStatusLineManager = statusLineManager; + } + + @Override + public void setActionBars(IActionBars actionBars) { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + } + + contentOutlinePage = new MyContentOutlinePage(); + + // Listen to selection so that we can handle it is a special way. + // + contentOutlinePage.addSelectionChangedListener + (new ISelectionChangedListener() { + // This ensures that we handle selections correctly. + // + public void selectionChanged(SelectionChangedEvent event) { + handleContentOutlineSelection(event.getSelection()); + } + }); + } + + return contentOutlinePage; + } + + /** + * This accesses a cached version of the property sheet. + * + * + * @generated + */ + public IPropertySheetPage getPropertySheetPage() { + PropertySheetPage propertySheetPage = + new ExtendedPropertySheetPage(editingDomain) { + @Override + public void setSelectionToViewer(List selection) { + MscEditor.this.setSelectionToViewer(selection); + MscEditor.this.setFocus(); + } + + @Override + public void setActionBars(IActionBars actionBars) { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + }; + propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory)); + propertySheetPages.add(propertySheetPage); + + return propertySheetPage; + } + + /** + * This deals with how we want selection in the outliner to affect the other views. + * + * + * @generated + */ + public void handleContentOutlineSelection(ISelection selection) { + if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) { + Iterator selectedElements = ((IStructuredSelection)selection).iterator(); + if (selectedElements.hasNext()) { + // Get the first selected element. + // + Object selectedElement = selectedElements.next(); + + // If it's the selection viewer, then we want it to select the same selection as this selection. + // + if (currentViewerPane.getViewer() == selectionViewer) { + ArrayList selectionList = new ArrayList(); + selectionList.add(selectedElement); + while (selectedElements.hasNext()) { + selectionList.add(selectedElements.next()); + } + + // Set the selection to the widget. + // + selectionViewer.setSelection(new StructuredSelection(selectionList)); + } + else { + // Set the input to the widget. + // + if (currentViewerPane.getViewer().getInput() != selectedElement) { + currentViewerPane.getViewer().setInput(selectedElement); + currentViewerPane.setTitle(selectedElement); + } + } + } + } + } + + /** + * This is for implementing {@link IEditorPart} and simply tests the command stack. + * + * + * @generated + */ + @Override + public boolean isDirty() { + return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded(); + } + + /** + * This is for implementing {@link IEditorPart} and simply saves the model file. + * + * + * @generated + */ + @Override + public void doSave(IProgressMonitor progressMonitor) { + // Save only resources that have actually changed. + // + final Map saveOptions = new HashMap(); + saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER); + saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED); + + // Do the work within an operation because this is a long running activity that modifies the workbench. + // + WorkspaceModifyOperation operation = + new WorkspaceModifyOperation() { + // This is the method that gets invoked when the operation runs. + // + @Override + public void execute(IProgressMonitor monitor) { + // Save the resources to the file system. + // + boolean first = true; + for (Resource resource : editingDomain.getResourceSet().getResources()) { + if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) { + try { + long timeStamp = resource.getTimeStamp(); + resource.save(saveOptions); + if (resource.getTimeStamp() != timeStamp) { + savedResources.add(resource); + } + } + catch (Exception exception) { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + first = false; + } + } + } + }; + + updateProblemIndication = false; + try { + // This runs the options, and shows progress. + // + new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation); + + // Refresh the necessary state. + // + ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone(); + firePropertyChange(IEditorPart.PROP_DIRTY); + } + catch (Exception exception) { + // Something went wrong that shouldn't. + // + MSCEditorPlugin.INSTANCE.log(exception); + } + updateProblemIndication = true; + updateProblemIndication(); + } + + /** + * This returns whether something has been persisted to the URI of the specified resource. + * The implementation uses the URI converter from the editor's resource set to try to open an input stream. + * + * + * @generated + */ + protected boolean isPersisted(Resource resource) { + boolean result = false; + try { + InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI()); + if (stream != null) { + result = true; + stream.close(); + } + } + catch (IOException e) { + // Ignore + } + return result; + } + + /** + * This always returns true because it is not currently supported. + * + * + * @generated + */ + @Override + public boolean isSaveAsAllowed() { + return true; + } + + /** + * This also changes the editor's input. + * + * + * @generated + */ + @Override + public void doSaveAs() { + SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell()); + saveAsDialog.open(); + IPath path = saveAsDialog.getResult(); + if (path != null) { + IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path); + if (file != null) { + doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file)); + } + } + } + + /** + * + * + * @generated + */ + protected void doSaveAs(URI uri, IEditorInput editorInput) { + (editingDomain.getResourceSet().getResources().get(0)).setURI(uri); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + IProgressMonitor progressMonitor = + getActionBars().getStatusLineManager() != null ? + getActionBars().getStatusLineManager().getProgressMonitor() : + new NullProgressMonitor(); + doSave(progressMonitor); + } + + /** + * + * + * @generated + */ + public void gotoMarker(IMarker marker) { + List targetObjects = markerHelper.getTargetObjects(editingDomain, marker); + if (!targetObjects.isEmpty()) { + setSelectionToViewer(targetObjects); + } + } + + /** + * This is called during startup. + * + * + * @generated + */ + @Override + public void init(IEditorSite site, IEditorInput editorInput) { + setSite(site); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + site.setSelectionProvider(this); + site.getPage().addPartListener(partListener); + ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE); + } + + /** + * + * + * @generated + */ + @Override + public void setFocus() { + if (currentViewerPane != null) { + currentViewerPane.setFocus(); + } + else { + getControl(getActivePage()).setFocus(); + } + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * + * + * @generated + */ + public void addSelectionChangedListener(ISelectionChangedListener listener) { + selectionChangedListeners.add(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * + * + * @generated + */ + public void removeSelectionChangedListener(ISelectionChangedListener listener) { + selectionChangedListeners.remove(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection. + * + * + * @generated + */ + public ISelection getSelection() { + return editorSelection; + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection. + * Calling this result will notify the listeners. + * + * + * @generated + */ + public void setSelection(ISelection selection) { + editorSelection = selection; + + for (ISelectionChangedListener listener : selectionChangedListeners) { + listener.selectionChanged(new SelectionChangedEvent(this, selection)); + } + setStatusLineManager(selection); + } + + /** + * + * + * @generated + */ + public void setStatusLineManager(ISelection selection) { + IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ? + contentOutlineStatusLineManager : getActionBars().getStatusLineManager(); + + if (statusLineManager != null) { + if (selection instanceof IStructuredSelection) { + Collection collection = ((IStructuredSelection)selection).toList(); + switch (collection.size()) { + case 0: { + statusLineManager.setMessage(getString("_UI_NoObjectSelected")); + break; + } + case 1: { + String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next()); + statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text)); + break; + } + default: { + statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size()))); + break; + } + } + } + else { + statusLineManager.setMessage(""); + } + } + } + + /** + * This looks up a string in the plugin's plugin.properties file. + * + * + * @generated + */ + private static String getString(String key) { + return MSCEditorPlugin.INSTANCE.getString(key); + } + + /** + * This looks up a string in plugin.properties, making a substitution. + * + * + * @generated + */ + private static String getString(String key, Object s1) { + return MSCEditorPlugin.INSTANCE.getString(key, new Object [] { s1 }); + } + + /** + * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu. + * + * + * @generated + */ + public void menuAboutToShow(IMenuManager menuManager) { + ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager); + } + + /** + * + * + * @generated + */ + public EditingDomainActionBarContributor getActionBarContributor() { + return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor(); + } + + /** + * + * + * @generated + */ + public IActionBars getActionBars() { + return getActionBarContributor().getActionBars(); + } + + /** + * + * + * @generated + */ + public AdapterFactory getAdapterFactory() { + return adapterFactory; + } + + /** + * + * + * @generated + */ + @Override + public void dispose() { + updateProblemIndication = false; + + ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener); + + getSite().getPage().removePartListener(partListener); + + adapterFactory.dispose(); + + if (getActionBarContributor().getActiveEditor() == this) { + getActionBarContributor().setActiveEditor(null); + } + + for (PropertySheetPage propertySheetPage : propertySheetPages) { + propertySheetPage.dispose(); + } + + if (contentOutlinePage != null) { + contentOutlinePage.dispose(); + } + + super.dispose(); + } + + /** + * Returns whether the outline view should be presented to the user. + * + * + * @generated + */ + protected boolean showOutlineView() { + return true; + } +} diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscModelWizard.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscModelWizard.java new file mode 100644 index 0000000..43adabd --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc.editor/src/com/irtsaintexupery/fiacre/simulator/msc/msc/presentation/MscModelWizard.java @@ -0,0 +1,628 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.presentation; + + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.MissingResourceException; +import java.util.StringTokenizer; + +import org.eclipse.emf.common.CommonPlugin; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; + +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.emf.ecore.xmi.XMLResource; + +import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; + +import org.eclipse.core.resources.IContainer; +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.resources.ResourcesPlugin; + +import org.eclipse.core.runtime.IProgressMonitor; + +import org.eclipse.jface.dialogs.MessageDialog; + +import org.eclipse.jface.viewers.IStructuredSelection; + +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.jface.wizard.WizardPage; + +import org.eclipse.swt.SWT; + +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.ModifyEvent; + +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; + +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; + +import org.eclipse.ui.INewWizard; +import org.eclipse.ui.IWorkbench; + +import org.eclipse.ui.actions.WorkspaceModifyOperation; + +import org.eclipse.ui.dialogs.WizardNewFileCreationPage; + +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.part.ISetSelectionTarget; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscFactory; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.provider.MSCEditPlugin; + + +import org.eclipse.core.runtime.Path; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.StructuredSelection; + +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; + + +/** + * This is a simple wizard for creating a new model file. + * + * + * @generated + */ +public class MscModelWizard extends Wizard implements INewWizard { + /** + * The supported extensions for created files. + * + * + * @generated + */ + public static final List FILE_EXTENSIONS = + Collections.unmodifiableList(Arrays.asList(MSCEditorPlugin.INSTANCE.getString("_UI_MscEditorFilenameExtensions").split("\\s*,\\s*"))); + + /** + * A formatted list of supported file extensions, suitable for display. + * + * + * @generated + */ + public static final String FORMATTED_FILE_EXTENSIONS = + MSCEditorPlugin.INSTANCE.getString("_UI_MscEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", "); + + /** + * This caches an instance of the model package. + * + * + * @generated + */ + protected MscPackage mscPackage = MscPackage.eINSTANCE; + + /** + * This caches an instance of the model factory. + * + * + * @generated + */ + protected MscFactory mscFactory = mscPackage.getMscFactory(); + + /** + * This is the file creation page. + * + * + * @generated + */ + protected MscModelWizardNewFileCreationPage newFileCreationPage; + + /** + * This is the initial object creation page. + * + * + * @generated + */ + protected MscModelWizardInitialObjectCreationPage initialObjectCreationPage; + + /** + * Remember the selection during initialization for populating the default container. + * + * + * @generated + */ + protected IStructuredSelection selection; + + /** + * Remember the workbench during initialization. + * + * + * @generated + */ + protected IWorkbench workbench; + + /** + * Caches the names of the types that can be created as the root object. + * + * + * @generated + */ + protected List initialObjectNames; + + /** + * This just records the information. + * + * + * @generated + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + this.workbench = workbench; + this.selection = selection; + setWindowTitle(MSCEditorPlugin.INSTANCE.getString("_UI_Wizard_label")); + setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(MSCEditorPlugin.INSTANCE.getImage("full/wizban/NewMsc"))); + } + + /** + * Returns the names of the types that can be created as the root object. + * + * + * @generated + */ + protected Collection getInitialObjectNames() { + if (initialObjectNames == null) { + initialObjectNames = new ArrayList(); + for (EClassifier eClassifier : mscPackage.getEClassifiers()) { + if (eClassifier instanceof EClass) { + EClass eClass = (EClass)eClassifier; + if (!eClass.isAbstract()) { + initialObjectNames.add(eClass.getName()); + } + } + } + Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator()); + } + return initialObjectNames; + } + + /** + * Create a new model. + * + * + * @generated + */ + protected EObject createInitialModel() { + EClass eClass = (EClass)mscPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName()); + EObject rootObject = mscFactory.create(eClass); + return rootObject; + } + + /** + * Do the work after everything is specified. + * + * + * @generated + */ + @Override + public boolean performFinish() { + try { + // Remember the file. + // + final IFile modelFile = getModelFile(); + + // Do the work within an operation. + // + WorkspaceModifyOperation operation = + new WorkspaceModifyOperation() { + @Override + protected void execute(IProgressMonitor progressMonitor) { + try { + // Create a resource set + // + ResourceSet resourceSet = new ResourceSetImpl(); + + // Get the URI of the model file. + // + URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true); + + // Create a resource for this file. + // + Resource resource = resourceSet.createResource(fileURI); + + // Add the initial model object to the contents. + // + EObject rootObject = createInitialModel(); + if (rootObject != null) { + resource.getContents().add(rootObject); + } + + // Save the contents of the resource to the file system. + // + Map options = new HashMap(); + options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding()); + resource.save(options); + } + catch (Exception exception) { + MSCEditorPlugin.INSTANCE.log(exception); + } + finally { + progressMonitor.done(); + } + } + }; + + getContainer().run(false, false, operation); + + // Select the new file resource in the current view. + // + IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); + IWorkbenchPage page = workbenchWindow.getActivePage(); + final IWorkbenchPart activePart = page.getActivePart(); + if (activePart instanceof ISetSelectionTarget) { + final ISelection targetSelection = new StructuredSelection(modelFile); + getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + ((ISetSelectionTarget)activePart).selectReveal(targetSelection); + } + }); + } + + // Open an editor on the new file. + // + try { + page.openEditor + (new FileEditorInput(modelFile), + workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId()); + } + catch (PartInitException exception) { + MessageDialog.openError(workbenchWindow.getShell(), MSCEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage()); + return false; + } + + return true; + } + catch (Exception exception) { + MSCEditorPlugin.INSTANCE.log(exception); + return false; + } + } + + /** + * This is the one page of the wizard. + * + * + * @generated + */ + public class MscModelWizardNewFileCreationPage extends WizardNewFileCreationPage { + /** + * Pass in the selection. + * + * + * @generated + */ + public MscModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) { + super(pageId, selection); + } + + /** + * The framework calls this to see if the file is correct. + * + * + * @generated + */ + @Override + protected boolean validatePage() { + if (super.validatePage()) { + String extension = new Path(getFileName()).getFileExtension(); + if (extension == null || !FILE_EXTENSIONS.contains(extension)) { + String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension"; + setErrorMessage(MSCEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS })); + return false; + } + return true; + } + return false; + } + + /** + * + * + * @generated + */ + public IFile getModelFile() { + return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName())); + } + } + + /** + * This is the page where the type of object to create is selected. + * + * + * @generated + */ + public class MscModelWizardInitialObjectCreationPage extends WizardPage { + /** + * + * + * @generated + */ + protected Combo initialObjectField; + + /** + * @generated + * + * + */ + protected List encodings; + + /** + * + * + * @generated + */ + protected Combo encodingField; + + /** + * Pass in the selection. + * + * + * @generated + */ + public MscModelWizardInitialObjectCreationPage(String pageId) { + super(pageId); + } + + /** + * + * + * @generated + */ + public void createControl(Composite parent) { + Composite composite = new Composite(parent, SWT.NONE); + { + GridLayout layout = new GridLayout(); + layout.numColumns = 1; + layout.verticalSpacing = 12; + composite.setLayout(layout); + + GridData data = new GridData(); + data.verticalAlignment = GridData.FILL; + data.grabExcessVerticalSpace = true; + data.horizontalAlignment = GridData.FILL; + composite.setLayoutData(data); + } + + Label containerLabel = new Label(composite, SWT.LEFT); + { + containerLabel.setText(MSCEditorPlugin.INSTANCE.getString("_UI_ModelObject")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + containerLabel.setLayoutData(data); + } + + initialObjectField = new Combo(composite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + initialObjectField.setLayoutData(data); + } + + for (String objectName : getInitialObjectNames()) { + initialObjectField.add(getLabel(objectName)); + } + + if (initialObjectField.getItemCount() == 1) { + initialObjectField.select(0); + } + initialObjectField.addModifyListener(validator); + + Label encodingLabel = new Label(composite, SWT.LEFT); + { + encodingLabel.setText(MSCEditorPlugin.INSTANCE.getString("_UI_XMLEncoding")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + encodingLabel.setLayoutData(data); + } + encodingField = new Combo(composite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + encodingField.setLayoutData(data); + } + + for (String encoding : getEncodings()) { + encodingField.add(encoding); + } + + encodingField.select(0); + encodingField.addModifyListener(validator); + + setPageComplete(validatePage()); + setControl(composite); + } + + /** + * + * + * @generated + */ + protected ModifyListener validator = + new ModifyListener() { + public void modifyText(ModifyEvent e) { + setPageComplete(validatePage()); + } + }; + + /** + * + * + * @generated + */ + protected boolean validatePage() { + return getInitialObjectName() != null && getEncodings().contains(encodingField.getText()); + } + + /** + * + * + * @generated + */ + @Override + public void setVisible(boolean visible) { + super.setVisible(visible); + if (visible) { + if (initialObjectField.getItemCount() == 1) { + initialObjectField.clearSelection(); + encodingField.setFocus(); + } + else { + encodingField.clearSelection(); + initialObjectField.setFocus(); + } + } + } + + /** + * + * + * @generated + */ + public String getInitialObjectName() { + String label = initialObjectField.getText(); + + for (String name : getInitialObjectNames()) { + if (getLabel(name).equals(label)) { + return name; + } + } + return null; + } + + /** + * + * + * @generated + */ + public String getEncoding() { + return encodingField.getText(); + } + + /** + * Returns the label for the specified type name. + * + * + * @generated + */ + protected String getLabel(String typeName) { + try { + return MSCEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type"); + } + catch(MissingResourceException mre) { + MSCEditorPlugin.INSTANCE.log(mre); + } + return typeName; + } + + /** + * + * + * @generated + */ + protected Collection getEncodings() { + if (encodings == null) { + encodings = new ArrayList(); + for (StringTokenizer stringTokenizer = new StringTokenizer(MSCEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) { + encodings.add(stringTokenizer.nextToken()); + } + } + return encodings; + } + } + + /** + * The framework calls this to create the contents of the wizard. + * + * + * @generated + */ + @Override + public void addPages() { + // Create a page, set the title, and the initial model file name. + // + newFileCreationPage = new MscModelWizardNewFileCreationPage("Whatever", selection); + newFileCreationPage.setTitle(MSCEditorPlugin.INSTANCE.getString("_UI_MscModelWizard_label")); + newFileCreationPage.setDescription(MSCEditorPlugin.INSTANCE.getString("_UI_MscModelWizard_description")); + newFileCreationPage.setFileName(MSCEditorPlugin.INSTANCE.getString("_UI_MscEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0)); + addPage(newFileCreationPage); + + // Try and get the resource selection to determine a current directory for the file dialog. + // + if (selection != null && !selection.isEmpty()) { + // Get the resource... + // + Object selectedElement = selection.iterator().next(); + if (selectedElement instanceof IResource) { + // Get the resource parent, if its a file. + // + IResource selectedResource = (IResource)selectedElement; + if (selectedResource.getType() == IResource.FILE) { + selectedResource = selectedResource.getParent(); + } + + // This gives us a directory... + // + if (selectedResource instanceof IFolder || selectedResource instanceof IProject) { + // Set this for the container. + // + newFileCreationPage.setContainerFullPath(selectedResource.getFullPath()); + + // Make up a unique new name here. + // + String defaultModelBaseFilename = MSCEditorPlugin.INSTANCE.getString("_UI_MscEditorFilenameDefaultBase"); + String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0); + String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension; + for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) { + modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension; + } + newFileCreationPage.setFileName(modelFilename); + } + } + } + initialObjectCreationPage = new MscModelWizardInitialObjectCreationPage("Whatever2"); + initialObjectCreationPage.setTitle(MSCEditorPlugin.INSTANCE.getString("_UI_MscModelWizard_label")); + initialObjectCreationPage.setDescription(MSCEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description")); + addPage(initialObjectCreationPage); + } + + /** + * Get the file from the page. + * + * + * @generated + */ + public IFile getModelFile() { + return newFileCreationPage.getModelFile(); + } + +} diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.classpath b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.classpath new file mode 100644 index 0000000..22f3064 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.gitignore b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.project b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.project new file mode 100644 index 0000000..71cbd3f --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/.project @@ -0,0 +1,28 @@ + + + com.irtsaintexupey.fiacre.simulator.msc + + + + + + 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/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/META-INF/MANIFEST.MF b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/META-INF/MANIFEST.MF new file mode 100644 index 0000000..8a8bf17 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: com.irtsaintexupey.fiacre.simulator.msc;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: com.irtsaintexupery.fiacre.simulator.msc.msc, + com.irtsaintexupery.fiacre.simulator.msc.msc.impl, + com.irtsaintexupery.fiacre.simulator.msc.msc.util +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.ecore;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/build.properties b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/build.properties new file mode 100644 index 0000000..4465407 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/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/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/model/MSC.ecore b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/model/MSC.ecore new file mode 100644 index 0000000..9434af1 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/model/MSC.ecore @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/model/MSC.genmodel b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/model/MSC.genmodel new file mode 100644 index 0000000..ec4cec4 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/model/MSC.genmodel @@ -0,0 +1,36 @@ + + + MSC.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/plugin.properties b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/plugin.properties new file mode 100644 index 0000000..3cabfcd --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/plugin.properties @@ -0,0 +1,4 @@ +# + +pluginName = MSC Model +providerName = www.example.org diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/plugin.xml b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/plugin.xml new file mode 100644 index 0000000..509758d --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/plugin.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/EnterStateStep.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/EnterStateStep.java new file mode 100644 index 0000000..e02b161 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/EnterStateStep.java @@ -0,0 +1,76 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc; + + +/** + * + * A representation of the model object 'Enter State Step'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep#getStateName State Name}
    • + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep#getSite Site}
    • + *
    + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getEnterStateStep() + * @model + * @generated + */ +public interface EnterStateStep extends MicroStep { + /** + * Returns the value of the 'State Name' attribute. + * + *

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

    + * + * @return the value of the 'State Name' attribute. + * @see #setStateName(String) + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getEnterStateStep_StateName() + * @model + * @generated + */ + String getStateName(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep#getStateName State Name}' attribute. + * + * + * @param value the new value of the 'State Name' attribute. + * @see #getStateName() + * @generated + */ + void setStateName(String value); + + /** + * Returns the value of the 'Site' reference. + * + *

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

    + * + * @return the value of the 'Site' reference. + * @see #setSite(Site) + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getEnterStateStep_Site() + * @model required="true" + * @generated + */ + Site getSite(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep#getSite Site}' reference. + * + * + * @param value the new value of the 'Site' reference. + * @see #getSite() + * @generated + */ + void setSite(Site value); + +} // EnterStateStep diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MSC.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MSC.java new file mode 100644 index 0000000..6feb145 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MSC.java @@ -0,0 +1,59 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'MSC'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.MSC#getSites Sites}
    • + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.MSC#getSteps Steps}
    • + *
    + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getMSC() + * @model + * @generated + */ +public interface MSC extends EObject { + /** + * Returns the value of the 'Sites' containment reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site}. + * + *

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

    + * + * @return the value of the 'Sites' containment reference list. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getMSC_Sites() + * @model containment="true" required="true" + * @generated + */ + EList getSites(); + + /** + * Returns the value of the 'Steps' containment reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Step}. + * + *

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

    + * + * @return the value of the 'Steps' containment reference list. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getMSC_Steps() + * @model containment="true" required="true" + * @generated + */ + EList getSteps(); + +} // MSC diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MicroStep.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MicroStep.java new file mode 100644 index 0000000..5cc797a --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MicroStep.java @@ -0,0 +1,50 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Micro Step'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep#getTime Time}
    • + *
    + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getMicroStep() + * @model abstract="true" + * @generated + */ +public interface MicroStep extends EObject { + /** + * Returns the value of the 'Time' attribute. + * + *

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

    + * + * @return the value of the 'Time' attribute. + * @see #setTime(int) + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getMicroStep_Time() + * @model + * @generated + */ + int getTime(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep#getTime Time}' attribute. + * + * + * @param value the new value of the 'Time' attribute. + * @see #getTime() + * @generated + */ + void setTime(int value); + +} // MicroStep diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MscFactory.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MscFactory.java new file mode 100644 index 0000000..7ff14d1 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MscFactory.java @@ -0,0 +1,87 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc; + +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 com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage + * @generated + */ +public interface MscFactory extends EFactory { + /** + * The singleton instance of the factory. + * + * + * @generated + */ + MscFactory eINSTANCE = com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscFactoryImpl.init(); + + /** + * Returns a new object of class 'MSC'. + * + * + * @return a new object of class 'MSC'. + * @generated + */ + MSC createMSC(); + + /** + * Returns a new object of class 'Site'. + * + * + * @return a new object of class 'Site'. + * @generated + */ + Site createSite(); + + /** + * Returns a new object of class 'Step'. + * + * + * @return a new object of class 'Step'. + * @generated + */ + Step createStep(); + + /** + * Returns a new object of class 'Enter State Step'. + * + * + * @return a new object of class 'Enter State Step'. + * @generated + */ + EnterStateStep createEnterStateStep(); + + /** + * Returns a new object of class 'Synchronisation Step'. + * + * + * @return a new object of class 'Synchronisation Step'. + * @generated + */ + SynchronisationStep createSynchronisationStep(); + + /** + * Returns a new object of class 'Send Step'. + * + * + * @return a new object of class 'Send Step'. + * @generated + */ + SendStep createSendStep(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + MscPackage getMscPackage(); + +} //MscFactory diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MscPackage.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MscPackage.java new file mode 100644 index 0000000..305854a --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/MscPackage.java @@ -0,0 +1,756 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +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 com.irtsaintexupery.fiacre.simulator.msc.msc.MscFactory + * @model kind="package" + * @generated + */ +public interface MscPackage extends EPackage { + /** + * The package name. + * + * + * @generated + */ + String eNAME = "msc"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://irtsaintexupery.com/msc"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "msc"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + MscPackage eINSTANCE = com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl.init(); + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MSCImpl MSC}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MSCImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getMSC() + * @generated + */ + int MSC = 0; + + /** + * The feature id for the 'Sites' containment reference list. + * + * + * @generated + * @ordered + */ + int MSC__SITES = 0; + + /** + * The feature id for the 'Steps' containment reference list. + * + * + * @generated + * @ordered + */ + int MSC__STEPS = 1; + + /** + * The number of structural features of the 'MSC' class. + * + * + * @generated + * @ordered + */ + int MSC_FEATURE_COUNT = 2; + + /** + * The number of operations of the 'MSC' class. + * + * + * @generated + * @ordered + */ + int MSC_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SiteImpl Site}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SiteImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getSite() + * @generated + */ + int SITE = 1; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SITE__NAME = 0; + + /** + * The feature id for the 'Current State' attribute. + * + * + * @generated + * @ordered + */ + int SITE__CURRENT_STATE = 1; + + /** + * The number of structural features of the 'Site' class. + * + * + * @generated + * @ordered + */ + int SITE_FEATURE_COUNT = 2; + + /** + * The number of operations of the 'Site' class. + * + * + * @generated + * @ordered + */ + int SITE_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.StepImpl Step}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.StepImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getStep() + * @generated + */ + int STEP = 2; + + /** + * The feature id for the 'Micro Steps' containment reference list. + * + * + * @generated + * @ordered + */ + int STEP__MICRO_STEPS = 0; + + /** + * The number of structural features of the 'Step' class. + * + * + * @generated + * @ordered + */ + int STEP_FEATURE_COUNT = 1; + + /** + * The number of operations of the 'Step' class. + * + * + * @generated + * @ordered + */ + int STEP_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MicroStepImpl Micro Step}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MicroStepImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getMicroStep() + * @generated + */ + int MICRO_STEP = 3; + + /** + * The feature id for the 'Time' attribute. + * + * + * @generated + * @ordered + */ + int MICRO_STEP__TIME = 0; + + /** + * The number of structural features of the 'Micro Step' class. + * + * + * @generated + * @ordered + */ + int MICRO_STEP_FEATURE_COUNT = 1; + + /** + * The number of operations of the 'Micro Step' class. + * + * + * @generated + * @ordered + */ + int MICRO_STEP_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.EnterStateStepImpl Enter State Step}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.EnterStateStepImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getEnterStateStep() + * @generated + */ + int ENTER_STATE_STEP = 4; + + /** + * The feature id for the 'Time' attribute. + * + * + * @generated + * @ordered + */ + int ENTER_STATE_STEP__TIME = MICRO_STEP__TIME; + + /** + * The feature id for the 'State Name' attribute. + * + * + * @generated + * @ordered + */ + int ENTER_STATE_STEP__STATE_NAME = MICRO_STEP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Site' reference. + * + * + * @generated + * @ordered + */ + int ENTER_STATE_STEP__SITE = MICRO_STEP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Enter State Step' class. + * + * + * @generated + * @ordered + */ + int ENTER_STATE_STEP_FEATURE_COUNT = MICRO_STEP_FEATURE_COUNT + 2; + + /** + * The number of operations of the 'Enter State Step' class. + * + * + * @generated + * @ordered + */ + int ENTER_STATE_STEP_OPERATION_COUNT = MICRO_STEP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SynchronisationStepImpl Synchronisation Step}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SynchronisationStepImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getSynchronisationStep() + * @generated + */ + int SYNCHRONISATION_STEP = 5; + + /** + * The feature id for the 'Time' attribute. + * + * + * @generated + * @ordered + */ + int SYNCHRONISATION_STEP__TIME = MICRO_STEP__TIME; + + /** + * The feature id for the 'Sites' reference list. + * + * + * @generated + * @ordered + */ + int SYNCHRONISATION_STEP__SITES = MICRO_STEP_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Synchronisation Step' class. + * + * + * @generated + * @ordered + */ + int SYNCHRONISATION_STEP_FEATURE_COUNT = MICRO_STEP_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Synchronisation Step' class. + * + * + * @generated + * @ordered + */ + int SYNCHRONISATION_STEP_OPERATION_COUNT = MICRO_STEP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SendStepImpl Send Step}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SendStepImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getSendStep() + * @generated + */ + int SEND_STEP = 6; + + /** + * The feature id for the 'Time' attribute. + * + * + * @generated + * @ordered + */ + int SEND_STEP__TIME = MICRO_STEP__TIME; + + /** + * The feature id for the 'Sender Sites' reference list. + * + * + * @generated + * @ordered + */ + int SEND_STEP__SENDER_SITES = MICRO_STEP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Receiver Sites' reference list. + * + * + * @generated + * @ordered + */ + int SEND_STEP__RECEIVER_SITES = MICRO_STEP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Send Step' class. + * + * + * @generated + * @ordered + */ + int SEND_STEP_FEATURE_COUNT = MICRO_STEP_FEATURE_COUNT + 2; + + /** + * The number of operations of the 'Send Step' class. + * + * + * @generated + * @ordered + */ + int SEND_STEP_OPERATION_COUNT = MICRO_STEP_OPERATION_COUNT + 0; + + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.MSC MSC}'. + * + * + * @return the meta object for class 'MSC'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MSC + * @generated + */ + EClass getMSC(); + + /** + * Returns the meta object for the containment reference list '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.MSC#getSites Sites}'. + * + * + * @return the meta object for the containment reference list 'Sites'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MSC#getSites() + * @see #getMSC() + * @generated + */ + EReference getMSC_Sites(); + + /** + * Returns the meta object for the containment reference list '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.MSC#getSteps Steps}'. + * + * + * @return the meta object for the containment reference list 'Steps'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MSC#getSteps() + * @see #getMSC() + * @generated + */ + EReference getMSC_Steps(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site Site}'. + * + * + * @return the meta object for class 'Site'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.Site + * @generated + */ + EClass getSite(); + + /** + * Returns the meta object for the attribute '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.Site#getName() + * @see #getSite() + * @generated + */ + EAttribute getSite_Name(); + + /** + * Returns the meta object for the attribute '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site#getCurrentState Current State}'. + * + * + * @return the meta object for the attribute 'Current State'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.Site#getCurrentState() + * @see #getSite() + * @generated + */ + EAttribute getSite_CurrentState(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.Step Step}'. + * + * + * @return the meta object for class 'Step'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.Step + * @generated + */ + EClass getStep(); + + /** + * Returns the meta object for the containment reference list '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.Step#getMicroSteps Micro Steps}'. + * + * + * @return the meta object for the containment reference list 'Micro Steps'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.Step#getMicroSteps() + * @see #getStep() + * @generated + */ + EReference getStep_MicroSteps(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep Micro Step}'. + * + * + * @return the meta object for class 'Micro Step'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep + * @generated + */ + EClass getMicroStep(); + + /** + * Returns the meta object for the attribute '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep#getTime Time}'. + * + * + * @return the meta object for the attribute 'Time'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep#getTime() + * @see #getMicroStep() + * @generated + */ + EAttribute getMicroStep_Time(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep Enter State Step}'. + * + * + * @return the meta object for class 'Enter State Step'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep + * @generated + */ + EClass getEnterStateStep(); + + /** + * Returns the meta object for the attribute '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep#getStateName State Name}'. + * + * + * @return the meta object for the attribute 'State Name'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep#getStateName() + * @see #getEnterStateStep() + * @generated + */ + EAttribute getEnterStateStep_StateName(); + + /** + * Returns the meta object for the reference '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep#getSite Site}'. + * + * + * @return the meta object for the reference 'Site'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep#getSite() + * @see #getEnterStateStep() + * @generated + */ + EReference getEnterStateStep_Site(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep Synchronisation Step}'. + * + * + * @return the meta object for class 'Synchronisation Step'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep + * @generated + */ + EClass getSynchronisationStep(); + + /** + * Returns the meta object for the reference list '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep#getSites Sites}'. + * + * + * @return the meta object for the reference list 'Sites'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep#getSites() + * @see #getSynchronisationStep() + * @generated + */ + EReference getSynchronisationStep_Sites(); + + /** + * Returns the meta object for class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep Send Step}'. + * + * + * @return the meta object for class 'Send Step'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep + * @generated + */ + EClass getSendStep(); + + /** + * Returns the meta object for the reference list '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep#getSenderSites Sender Sites}'. + * + * + * @return the meta object for the reference list 'Sender Sites'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep#getSenderSites() + * @see #getSendStep() + * @generated + */ + EReference getSendStep_SenderSites(); + + /** + * Returns the meta object for the reference list '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep#getReceiverSites Receiver Sites}'. + * + * + * @return the meta object for the reference list 'Receiver Sites'. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep#getReceiverSites() + * @see #getSendStep() + * @generated + */ + EReference getSendStep_ReceiverSites(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + MscFactory getMscFactory(); + + /** + * + * 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 com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MSCImpl MSC}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MSCImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getMSC() + * @generated + */ + EClass MSC = eINSTANCE.getMSC(); + + /** + * The meta object literal for the 'Sites' containment reference list feature. + * + * + * @generated + */ + EReference MSC__SITES = eINSTANCE.getMSC_Sites(); + + /** + * The meta object literal for the 'Steps' containment reference list feature. + * + * + * @generated + */ + EReference MSC__STEPS = eINSTANCE.getMSC_Steps(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SiteImpl Site}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SiteImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getSite() + * @generated + */ + EClass SITE = eINSTANCE.getSite(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute SITE__NAME = eINSTANCE.getSite_Name(); + + /** + * The meta object literal for the 'Current State' attribute feature. + * + * + * @generated + */ + EAttribute SITE__CURRENT_STATE = eINSTANCE.getSite_CurrentState(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.StepImpl Step}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.StepImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getStep() + * @generated + */ + EClass STEP = eINSTANCE.getStep(); + + /** + * The meta object literal for the 'Micro Steps' containment reference list feature. + * + * + * @generated + */ + EReference STEP__MICRO_STEPS = eINSTANCE.getStep_MicroSteps(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MicroStepImpl Micro Step}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MicroStepImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getMicroStep() + * @generated + */ + EClass MICRO_STEP = eINSTANCE.getMicroStep(); + + /** + * The meta object literal for the 'Time' attribute feature. + * + * + * @generated + */ + EAttribute MICRO_STEP__TIME = eINSTANCE.getMicroStep_Time(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.EnterStateStepImpl Enter State Step}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.EnterStateStepImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getEnterStateStep() + * @generated + */ + EClass ENTER_STATE_STEP = eINSTANCE.getEnterStateStep(); + + /** + * The meta object literal for the 'State Name' attribute feature. + * + * + * @generated + */ + EAttribute ENTER_STATE_STEP__STATE_NAME = eINSTANCE.getEnterStateStep_StateName(); + + /** + * The meta object literal for the 'Site' reference feature. + * + * + * @generated + */ + EReference ENTER_STATE_STEP__SITE = eINSTANCE.getEnterStateStep_Site(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SynchronisationStepImpl Synchronisation Step}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SynchronisationStepImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getSynchronisationStep() + * @generated + */ + EClass SYNCHRONISATION_STEP = eINSTANCE.getSynchronisationStep(); + + /** + * The meta object literal for the 'Sites' reference list feature. + * + * + * @generated + */ + EReference SYNCHRONISATION_STEP__SITES = eINSTANCE.getSynchronisationStep_Sites(); + + /** + * The meta object literal for the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SendStepImpl Send Step}' class. + * + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SendStepImpl + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MscPackageImpl#getSendStep() + * @generated + */ + EClass SEND_STEP = eINSTANCE.getSendStep(); + + /** + * The meta object literal for the 'Sender Sites' reference list feature. + * + * + * @generated + */ + EReference SEND_STEP__SENDER_SITES = eINSTANCE.getSendStep_SenderSites(); + + /** + * The meta object literal for the 'Receiver Sites' reference list feature. + * + * + * @generated + */ + EReference SEND_STEP__RECEIVER_SITES = eINSTANCE.getSendStep_ReceiverSites(); + + } + +} //MscPackage diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/SendStep.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/SendStep.java new file mode 100644 index 0000000..7578116 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/SendStep.java @@ -0,0 +1,57 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Send Step'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep#getSenderSites Sender Sites}
    • + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep#getReceiverSites Receiver Sites}
    • + *
    + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getSendStep() + * @model + * @generated + */ +public interface SendStep extends MicroStep { + /** + * Returns the value of the 'Sender Sites' reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site}. + * + *

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

    + * + * @return the value of the 'Sender Sites' reference list. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getSendStep_SenderSites() + * @model required="true" + * @generated + */ + EList getSenderSites(); + + /** + * Returns the value of the 'Receiver Sites' reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site}. + * + *

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

    + * + * @return the value of the 'Receiver Sites' reference list. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getSendStep_ReceiverSites() + * @model required="true" + * @generated + */ + EList getReceiverSites(); + +} // SendStep diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/Site.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/Site.java new file mode 100644 index 0000000..5868755 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/Site.java @@ -0,0 +1,77 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Site'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site#getName Name}
    • + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site#getCurrentState Current State}
    • + *
    + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getSite() + * @model + * @generated + */ +public interface Site extends EObject { + /** + * Returns the value of the 'Name' attribute. + * + *

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

    + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getSite_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Current State' attribute. + * + *

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

    + * + * @return the value of the 'Current State' attribute. + * @see #setCurrentState(String) + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getSite_CurrentState() + * @model + * @generated + */ + String getCurrentState(); + + /** + * Sets the value of the '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site#getCurrentState Current State}' attribute. + * + * + * @param value the new value of the 'Current State' attribute. + * @see #getCurrentState() + * @generated + */ + void setCurrentState(String value); + +} // Site diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/Step.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/Step.java new file mode 100644 index 0000000..5fa7d62 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/Step.java @@ -0,0 +1,42 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Step'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Step#getMicroSteps Micro Steps}
    • + *
    + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getStep() + * @model + * @generated + */ +public interface Step extends EObject { + /** + * Returns the value of the 'Micro Steps' containment reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep}. + * + *

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

    + * + * @return the value of the 'Micro Steps' containment reference list. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getStep_MicroSteps() + * @model containment="true" required="true" + * @generated + */ + EList getMicroSteps(); + +} // Step diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/SynchronisationStep.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/SynchronisationStep.java new file mode 100644 index 0000000..913d240 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/SynchronisationStep.java @@ -0,0 +1,40 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Synchronisation Step'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep#getSites Sites}
    • + *
    + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getSynchronisationStep() + * @model + * @generated + */ +public interface SynchronisationStep extends MicroStep { + /** + * Returns the value of the 'Sites' reference list. + * The list contents are of type {@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site}. + * + *

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

    + * + * @return the value of the 'Sites' reference list. + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#getSynchronisationStep_Sites() + * @model required="true" + * @generated + */ + EList getSites(); + +} // SynchronisationStep diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/EnterStateStepImpl.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/EnterStateStepImpl.java new file mode 100644 index 0000000..a5adb96 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/EnterStateStepImpl.java @@ -0,0 +1,224 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.impl; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Site; + +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; + +/** + * + * An implementation of the model object 'Enter State Step'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.EnterStateStepImpl#getStateName State Name}
    • + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.EnterStateStepImpl#getSite Site}
    • + *
    + * + * @generated + */ +public class EnterStateStepImpl extends MicroStepImpl implements EnterStateStep { + /** + * The default value of the '{@link #getStateName() State Name}' attribute. + * + * + * @see #getStateName() + * @generated + * @ordered + */ + protected static final String STATE_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getStateName() State Name}' attribute. + * + * + * @see #getStateName() + * @generated + * @ordered + */ + protected String stateName = STATE_NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getSite() Site}' reference. + * + * + * @see #getSite() + * @generated + * @ordered + */ + protected Site site; + + /** + * + * + * @generated + */ + protected EnterStateStepImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return MscPackage.Literals.ENTER_STATE_STEP; + } + + /** + * + * + * @generated + */ + public String getStateName() { + return stateName; + } + + /** + * + * + * @generated + */ + public void setStateName(String newStateName) { + String oldStateName = stateName; + stateName = newStateName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, MscPackage.ENTER_STATE_STEP__STATE_NAME, oldStateName, stateName)); + } + + /** + * + * + * @generated + */ + public Site getSite() { + if (site != null && site.eIsProxy()) { + InternalEObject oldSite = (InternalEObject)site; + site = (Site)eResolveProxy(oldSite); + if (site != oldSite) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, MscPackage.ENTER_STATE_STEP__SITE, oldSite, site)); + } + } + return site; + } + + /** + * + * + * @generated + */ + public Site basicGetSite() { + return site; + } + + /** + * + * + * @generated + */ + public void setSite(Site newSite) { + Site oldSite = site; + site = newSite; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, MscPackage.ENTER_STATE_STEP__SITE, oldSite, site)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case MscPackage.ENTER_STATE_STEP__STATE_NAME: + return getStateName(); + case MscPackage.ENTER_STATE_STEP__SITE: + if (resolve) return getSite(); + return basicGetSite(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case MscPackage.ENTER_STATE_STEP__STATE_NAME: + setStateName((String)newValue); + return; + case MscPackage.ENTER_STATE_STEP__SITE: + setSite((Site)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case MscPackage.ENTER_STATE_STEP__STATE_NAME: + setStateName(STATE_NAME_EDEFAULT); + return; + case MscPackage.ENTER_STATE_STEP__SITE: + setSite((Site)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case MscPackage.ENTER_STATE_STEP__STATE_NAME: + return STATE_NAME_EDEFAULT == null ? stateName != null : !STATE_NAME_EDEFAULT.equals(stateName); + case MscPackage.ENTER_STATE_STEP__SITE: + return site != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (stateName: "); + result.append(stateName); + result.append(')'); + return result.toString(); + } + +} //EnterStateStepImpl diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MSCImpl.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MSCImpl.java new file mode 100644 index 0000000..58385e0 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MSCImpl.java @@ -0,0 +1,189 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.impl; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MSC; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Site; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Step; + +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; + +/** + * + * An implementation of the model object 'MSC'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MSCImpl#getSites Sites}
    • + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MSCImpl#getSteps Steps}
    • + *
    + * + * @generated + */ +public class MSCImpl extends MinimalEObjectImpl.Container implements MSC { + /** + * The cached value of the '{@link #getSites() Sites}' containment reference list. + * + * + * @see #getSites() + * @generated + * @ordered + */ + protected EList sites; + + /** + * The cached value of the '{@link #getSteps() Steps}' containment reference list. + * + * + * @see #getSteps() + * @generated + * @ordered + */ + protected EList steps; + + /** + * + * + * @generated + */ + protected MSCImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return MscPackage.Literals.MSC; + } + + /** + * + * + * @generated + */ + public EList getSites() { + if (sites == null) { + sites = new EObjectContainmentEList(Site.class, this, MscPackage.MSC__SITES); + } + return sites; + } + + /** + * + * + * @generated + */ + public EList getSteps() { + if (steps == null) { + steps = new EObjectContainmentEList(Step.class, this, MscPackage.MSC__STEPS); + } + return steps; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case MscPackage.MSC__SITES: + return ((InternalEList)getSites()).basicRemove(otherEnd, msgs); + case MscPackage.MSC__STEPS: + return ((InternalEList)getSteps()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case MscPackage.MSC__SITES: + return getSites(); + case MscPackage.MSC__STEPS: + return getSteps(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case MscPackage.MSC__SITES: + getSites().clear(); + getSites().addAll((Collection)newValue); + return; + case MscPackage.MSC__STEPS: + getSteps().clear(); + getSteps().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case MscPackage.MSC__SITES: + getSites().clear(); + return; + case MscPackage.MSC__STEPS: + getSteps().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case MscPackage.MSC__SITES: + return sites != null && !sites.isEmpty(); + case MscPackage.MSC__STEPS: + return steps != null && !steps.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //MSCImpl diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MicroStepImpl.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MicroStepImpl.java new file mode 100644 index 0000000..63af15d --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MicroStepImpl.java @@ -0,0 +1,163 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.impl; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; + +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; + +/** + * + * An implementation of the model object 'Micro Step'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.MicroStepImpl#getTime Time}
    • + *
    + * + * @generated + */ +public abstract class MicroStepImpl extends MinimalEObjectImpl.Container implements MicroStep { + /** + * The default value of the '{@link #getTime() Time}' attribute. + * + * + * @see #getTime() + * @generated + * @ordered + */ + protected static final int TIME_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getTime() Time}' attribute. + * + * + * @see #getTime() + * @generated + * @ordered + */ + protected int time = TIME_EDEFAULT; + + /** + * + * + * @generated + */ + protected MicroStepImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return MscPackage.Literals.MICRO_STEP; + } + + /** + * + * + * @generated + */ + public int getTime() { + return time; + } + + /** + * + * + * @generated + */ + public void setTime(int newTime) { + int oldTime = time; + time = newTime; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, MscPackage.MICRO_STEP__TIME, oldTime, time)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case MscPackage.MICRO_STEP__TIME: + return getTime(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case MscPackage.MICRO_STEP__TIME: + setTime((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case MscPackage.MICRO_STEP__TIME: + setTime(TIME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case MscPackage.MICRO_STEP__TIME: + return time != TIME_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (time: "); + result.append(time); + result.append(')'); + return result.toString(); + } + +} //MicroStepImpl diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MscFactoryImpl.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MscFactoryImpl.java new file mode 100644 index 0000000..5246189 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MscFactoryImpl.java @@ -0,0 +1,150 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.impl; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.*; + +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; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class MscFactoryImpl extends EFactoryImpl implements MscFactory { + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static MscFactory init() { + try { + MscFactory theMscFactory = (MscFactory)EPackage.Registry.INSTANCE.getEFactory(MscPackage.eNS_URI); + if (theMscFactory != null) { + return theMscFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new MscFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public MscFactoryImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case MscPackage.MSC: return createMSC(); + case MscPackage.SITE: return createSite(); + case MscPackage.STEP: return createStep(); + case MscPackage.ENTER_STATE_STEP: return createEnterStateStep(); + case MscPackage.SYNCHRONISATION_STEP: return createSynchronisationStep(); + case MscPackage.SEND_STEP: return createSendStep(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + public MSC createMSC() { + MSCImpl msc = new MSCImpl(); + return msc; + } + + /** + * + * + * @generated + */ + public Site createSite() { + SiteImpl site = new SiteImpl(); + return site; + } + + /** + * + * + * @generated + */ + public Step createStep() { + StepImpl step = new StepImpl(); + return step; + } + + /** + * + * + * @generated + */ + public EnterStateStep createEnterStateStep() { + EnterStateStepImpl enterStateStep = new EnterStateStepImpl(); + return enterStateStep; + } + + /** + * + * + * @generated + */ + public SynchronisationStep createSynchronisationStep() { + SynchronisationStepImpl synchronisationStep = new SynchronisationStepImpl(); + return synchronisationStep; + } + + /** + * + * + * @generated + */ + public SendStep createSendStep() { + SendStepImpl sendStep = new SendStepImpl(); + return sendStep; + } + + /** + * + * + * @generated + */ + public MscPackage getMscPackage() { + return (MscPackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static MscPackage getPackage() { + return MscPackage.eINSTANCE; + } + +} //MscFactoryImpl diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MscPackageImpl.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MscPackageImpl.java new file mode 100644 index 0000000..407db89 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/MscPackageImpl.java @@ -0,0 +1,416 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.impl; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscFactory; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Site; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Step; +import com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class MscPackageImpl extends EPackageImpl implements MscPackage { + /** + * + * + * @generated + */ + private EClass mscEClass = null; + + /** + * + * + * @generated + */ + private EClass siteEClass = null; + + /** + * + * + * @generated + */ + private EClass stepEClass = null; + + /** + * + * + * @generated + */ + private EClass microStepEClass = null; + + /** + * + * + * @generated + */ + private EClass enterStateStepEClass = null; + + /** + * + * + * @generated + */ + private EClass synchronisationStepEClass = null; + + /** + * + * + * @generated + */ + private EClass sendStepEClass = 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 com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage#eNS_URI + * @see #init() + * @generated + */ + private MscPackageImpl() { + super(eNS_URI, MscFactory.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 MscPackage#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 MscPackage init() { + if (isInited) return (MscPackage)EPackage.Registry.INSTANCE.getEPackage(MscPackage.eNS_URI); + + // Obtain or create and register package + MscPackageImpl theMscPackage = (MscPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof MscPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new MscPackageImpl()); + + isInited = true; + + // Create package meta-data objects + theMscPackage.createPackageContents(); + + // Initialize created meta-data + theMscPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theMscPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(MscPackage.eNS_URI, theMscPackage); + return theMscPackage; + } + + /** + * + * + * @generated + */ + public EClass getMSC() { + return mscEClass; + } + + /** + * + * + * @generated + */ + public EReference getMSC_Sites() { + return (EReference)mscEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getMSC_Steps() { + return (EReference)mscEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getSite() { + return siteEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getSite_Name() { + return (EAttribute)siteEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getSite_CurrentState() { + return (EAttribute)siteEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getStep() { + return stepEClass; + } + + /** + * + * + * @generated + */ + public EReference getStep_MicroSteps() { + return (EReference)stepEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getMicroStep() { + return microStepEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getMicroStep_Time() { + return (EAttribute)microStepEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getEnterStateStep() { + return enterStateStepEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getEnterStateStep_StateName() { + return (EAttribute)enterStateStepEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getEnterStateStep_Site() { + return (EReference)enterStateStepEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getSynchronisationStep() { + return synchronisationStepEClass; + } + + /** + * + * + * @generated + */ + public EReference getSynchronisationStep_Sites() { + return (EReference)synchronisationStepEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getSendStep() { + return sendStepEClass; + } + + /** + * + * + * @generated + */ + public EReference getSendStep_SenderSites() { + return (EReference)sendStepEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getSendStep_ReceiverSites() { + return (EReference)sendStepEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public MscFactory getMscFactory() { + return (MscFactory)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 + mscEClass = createEClass(MSC); + createEReference(mscEClass, MSC__SITES); + createEReference(mscEClass, MSC__STEPS); + + siteEClass = createEClass(SITE); + createEAttribute(siteEClass, SITE__NAME); + createEAttribute(siteEClass, SITE__CURRENT_STATE); + + stepEClass = createEClass(STEP); + createEReference(stepEClass, STEP__MICRO_STEPS); + + microStepEClass = createEClass(MICRO_STEP); + createEAttribute(microStepEClass, MICRO_STEP__TIME); + + enterStateStepEClass = createEClass(ENTER_STATE_STEP); + createEAttribute(enterStateStepEClass, ENTER_STATE_STEP__STATE_NAME); + createEReference(enterStateStepEClass, ENTER_STATE_STEP__SITE); + + synchronisationStepEClass = createEClass(SYNCHRONISATION_STEP); + createEReference(synchronisationStepEClass, SYNCHRONISATION_STEP__SITES); + + sendStepEClass = createEClass(SEND_STEP); + createEReference(sendStepEClass, SEND_STEP__SENDER_SITES); + createEReference(sendStepEClass, SEND_STEP__RECEIVER_SITES); + } + + /** + * + * + * @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 + enterStateStepEClass.getESuperTypes().add(this.getMicroStep()); + synchronisationStepEClass.getESuperTypes().add(this.getMicroStep()); + sendStepEClass.getESuperTypes().add(this.getMicroStep()); + + // Initialize classes, features, and operations; add parameters + initEClass(mscEClass, com.irtsaintexupery.fiacre.simulator.msc.msc.MSC.class, "MSC", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMSC_Sites(), this.getSite(), null, "sites", null, 1, -1, com.irtsaintexupery.fiacre.simulator.msc.msc.MSC.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMSC_Steps(), this.getStep(), null, "steps", null, 1, -1, com.irtsaintexupery.fiacre.simulator.msc.msc.MSC.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(siteEClass, Site.class, "Site", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getSite_Name(), ecorePackage.getEString(), "name", null, 0, 1, Site.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getSite_CurrentState(), ecorePackage.getEString(), "currentState", null, 0, 1, Site.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(stepEClass, Step.class, "Step", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getStep_MicroSteps(), this.getMicroStep(), null, "microSteps", null, 1, -1, Step.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(microStepEClass, MicroStep.class, "MicroStep", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getMicroStep_Time(), ecorePackage.getEInt(), "time", null, 0, 1, MicroStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(enterStateStepEClass, EnterStateStep.class, "EnterStateStep", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getEnterStateStep_StateName(), ecorePackage.getEString(), "stateName", null, 0, 1, EnterStateStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEnterStateStep_Site(), this.getSite(), null, "site", null, 1, 1, EnterStateStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(synchronisationStepEClass, SynchronisationStep.class, "SynchronisationStep", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSynchronisationStep_Sites(), this.getSite(), null, "sites", null, 1, -1, SynchronisationStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(sendStepEClass, SendStep.class, "SendStep", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSendStep_SenderSites(), this.getSite(), null, "senderSites", null, 1, -1, SendStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getSendStep_ReceiverSites(), this.getSite(), null, "receiverSites", null, 1, -1, SendStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Create resource + createResource(eNS_URI); + } + +} //MscPackageImpl diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SendStepImpl.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SendStepImpl.java new file mode 100644 index 0000000..41d1174 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SendStepImpl.java @@ -0,0 +1,166 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.impl; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Site; + +import java.util.Collection; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +/** + * + * An implementation of the model object 'Send Step'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SendStepImpl#getSenderSites Sender Sites}
    • + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SendStepImpl#getReceiverSites Receiver Sites}
    • + *
    + * + * @generated + */ +public class SendStepImpl extends MicroStepImpl implements SendStep { + /** + * The cached value of the '{@link #getSenderSites() Sender Sites}' reference list. + * + * + * @see #getSenderSites() + * @generated + * @ordered + */ + protected EList senderSites; + + /** + * The cached value of the '{@link #getReceiverSites() Receiver Sites}' reference list. + * + * + * @see #getReceiverSites() + * @generated + * @ordered + */ + protected EList receiverSites; + + /** + * + * + * @generated + */ + protected SendStepImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return MscPackage.Literals.SEND_STEP; + } + + /** + * + * + * @generated + */ + public EList getSenderSites() { + if (senderSites == null) { + senderSites = new EObjectResolvingEList(Site.class, this, MscPackage.SEND_STEP__SENDER_SITES); + } + return senderSites; + } + + /** + * + * + * @generated + */ + public EList getReceiverSites() { + if (receiverSites == null) { + receiverSites = new EObjectResolvingEList(Site.class, this, MscPackage.SEND_STEP__RECEIVER_SITES); + } + return receiverSites; + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case MscPackage.SEND_STEP__SENDER_SITES: + return getSenderSites(); + case MscPackage.SEND_STEP__RECEIVER_SITES: + return getReceiverSites(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case MscPackage.SEND_STEP__SENDER_SITES: + getSenderSites().clear(); + getSenderSites().addAll((Collection)newValue); + return; + case MscPackage.SEND_STEP__RECEIVER_SITES: + getReceiverSites().clear(); + getReceiverSites().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case MscPackage.SEND_STEP__SENDER_SITES: + getSenderSites().clear(); + return; + case MscPackage.SEND_STEP__RECEIVER_SITES: + getReceiverSites().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case MscPackage.SEND_STEP__SENDER_SITES: + return senderSites != null && !senderSites.isEmpty(); + case MscPackage.SEND_STEP__RECEIVER_SITES: + return receiverSites != null && !receiverSites.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //SendStepImpl diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SiteImpl.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SiteImpl.java new file mode 100644 index 0000000..997d6e0 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SiteImpl.java @@ -0,0 +1,217 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.impl; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Site; + +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; + +/** + * + * An implementation of the model object 'Site'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SiteImpl#getName Name}
    • + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SiteImpl#getCurrentState Current State}
    • + *
    + * + * @generated + */ +public class SiteImpl extends MinimalEObjectImpl.Container implements Site { + /** + * 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; + + /** + * The default value of the '{@link #getCurrentState() Current State}' attribute. + * + * + * @see #getCurrentState() + * @generated + * @ordered + */ + protected static final String CURRENT_STATE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getCurrentState() Current State}' attribute. + * + * + * @see #getCurrentState() + * @generated + * @ordered + */ + protected String currentState = CURRENT_STATE_EDEFAULT; + + /** + * + * + * @generated + */ + protected SiteImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return MscPackage.Literals.SITE; + } + + /** + * + * + * @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, MscPackage.SITE__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public String getCurrentState() { + return currentState; + } + + /** + * + * + * @generated + */ + public void setCurrentState(String newCurrentState) { + String oldCurrentState = currentState; + currentState = newCurrentState; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, MscPackage.SITE__CURRENT_STATE, oldCurrentState, currentState)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case MscPackage.SITE__NAME: + return getName(); + case MscPackage.SITE__CURRENT_STATE: + return getCurrentState(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case MscPackage.SITE__NAME: + setName((String)newValue); + return; + case MscPackage.SITE__CURRENT_STATE: + setCurrentState((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case MscPackage.SITE__NAME: + setName(NAME_EDEFAULT); + return; + case MscPackage.SITE__CURRENT_STATE: + setCurrentState(CURRENT_STATE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case MscPackage.SITE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case MscPackage.SITE__CURRENT_STATE: + return CURRENT_STATE_EDEFAULT == null ? currentState != null : !CURRENT_STATE_EDEFAULT.equals(currentState); + } + 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(", currentState: "); + result.append(currentState); + result.append(')'); + return result.toString(); + } + +} //SiteImpl diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/StepImpl.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/StepImpl.java new file mode 100644 index 0000000..96ade1f --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/StepImpl.java @@ -0,0 +1,152 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.impl; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep; +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Step; + +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; + +/** + * + * An implementation of the model object 'Step'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.StepImpl#getMicroSteps Micro Steps}
    • + *
    + * + * @generated + */ +public class StepImpl extends MinimalEObjectImpl.Container implements Step { + /** + * The cached value of the '{@link #getMicroSteps() Micro Steps}' containment reference list. + * + * + * @see #getMicroSteps() + * @generated + * @ordered + */ + protected EList microSteps; + + /** + * + * + * @generated + */ + protected StepImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return MscPackage.Literals.STEP; + } + + /** + * + * + * @generated + */ + public EList getMicroSteps() { + if (microSteps == null) { + microSteps = new EObjectContainmentEList(MicroStep.class, this, MscPackage.STEP__MICRO_STEPS); + } + return microSteps; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case MscPackage.STEP__MICRO_STEPS: + return ((InternalEList)getMicroSteps()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case MscPackage.STEP__MICRO_STEPS: + return getMicroSteps(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case MscPackage.STEP__MICRO_STEPS: + getMicroSteps().clear(); + getMicroSteps().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case MscPackage.STEP__MICRO_STEPS: + getMicroSteps().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case MscPackage.STEP__MICRO_STEPS: + return microSteps != null && !microSteps.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //StepImpl diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SynchronisationStepImpl.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SynchronisationStepImpl.java new file mode 100644 index 0000000..d7f88df --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/impl/SynchronisationStepImpl.java @@ -0,0 +1,132 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.impl; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage; +import com.irtsaintexupery.fiacre.simulator.msc.msc.Site; +import com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep; + +import java.util.Collection; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +/** + * + * An implementation of the model object 'Synchronisation Step'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link com.irtsaintexupery.fiacre.simulator.msc.msc.impl.SynchronisationStepImpl#getSites Sites}
    • + *
    + * + * @generated + */ +public class SynchronisationStepImpl extends MicroStepImpl implements SynchronisationStep { + /** + * The cached value of the '{@link #getSites() Sites}' reference list. + * + * + * @see #getSites() + * @generated + * @ordered + */ + protected EList sites; + + /** + * + * + * @generated + */ + protected SynchronisationStepImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return MscPackage.Literals.SYNCHRONISATION_STEP; + } + + /** + * + * + * @generated + */ + public EList getSites() { + if (sites == null) { + sites = new EObjectResolvingEList(Site.class, this, MscPackage.SYNCHRONISATION_STEP__SITES); + } + return sites; + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case MscPackage.SYNCHRONISATION_STEP__SITES: + return getSites(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case MscPackage.SYNCHRONISATION_STEP__SITES: + getSites().clear(); + getSites().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case MscPackage.SYNCHRONISATION_STEP__SITES: + getSites().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case MscPackage.SYNCHRONISATION_STEP__SITES: + return sites != null && !sites.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //SynchronisationStepImpl diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/util/MscAdapterFactory.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/util/MscAdapterFactory.java new file mode 100644 index 0000000..a2ad2e8 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/util/MscAdapterFactory.java @@ -0,0 +1,228 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.util; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.*; + +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; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage + * @generated + */ +public class MscAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * + * + * @generated + */ + protected static MscPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public MscAdapterFactory() { + if (modelPackage == null) { + modelPackage = MscPackage.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 MscSwitch modelSwitch = + new MscSwitch() { + @Override + public Adapter caseMSC(MSC object) { + return createMSCAdapter(); + } + @Override + public Adapter caseSite(Site object) { + return createSiteAdapter(); + } + @Override + public Adapter caseStep(Step object) { + return createStepAdapter(); + } + @Override + public Adapter caseMicroStep(MicroStep object) { + return createMicroStepAdapter(); + } + @Override + public Adapter caseEnterStateStep(EnterStateStep object) { + return createEnterStateStepAdapter(); + } + @Override + public Adapter caseSynchronisationStep(SynchronisationStep object) { + return createSynchronisationStepAdapter(); + } + @Override + public Adapter caseSendStep(SendStep object) { + return createSendStepAdapter(); + } + @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 com.irtsaintexupery.fiacre.simulator.msc.msc.MSC MSC}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.simulator.msc.msc.MSC + * @generated + */ + public Adapter createMSCAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.Site Site}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.simulator.msc.msc.Site + * @generated + */ + public Adapter createSiteAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.Step Step}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.simulator.msc.msc.Step + * @generated + */ + public Adapter createStepAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep Micro Step}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.simulator.msc.msc.MicroStep + * @generated + */ + public Adapter createMicroStepAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep Enter State Step}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.simulator.msc.msc.EnterStateStep + * @generated + */ + public Adapter createEnterStateStepAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep Synchronisation Step}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.simulator.msc.msc.SynchronisationStep + * @generated + */ + public Adapter createSynchronisationStepAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep Send Step}'. + * + * This default implementation 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 com.irtsaintexupery.fiacre.simulator.msc.msc.SendStep + * @generated + */ + public Adapter createSendStepAdapter() { + 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; + } + +} //MscAdapterFactory diff --git a/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/util/MscSwitch.java b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/util/MscSwitch.java new file mode 100644 index 0000000..0134562 --- /dev/null +++ b/eclipse/plugins/com.irtsaintexupey.fiacre.simulator.msc/src/com/irtsaintexupery/fiacre/simulator/msc/msc/util/MscSwitch.java @@ -0,0 +1,239 @@ +/** + */ +package com.irtsaintexupery.fiacre.simulator.msc.msc.util; + +import com.irtsaintexupery.fiacre.simulator.msc.msc.*; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +/** + * + * 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 com.irtsaintexupery.fiacre.simulator.msc.msc.MscPackage + * @generated + */ +public class MscSwitch extends Switch { + /** + * The cached model package + * + * + * @generated + */ + protected static MscPackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public MscSwitch() { + if (modelPackage == null) { + modelPackage = MscPackage.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 MscPackage.MSC: { + MSC msc = (MSC)theEObject; + T result = caseMSC(msc); + if (result == null) result = defaultCase(theEObject); + return result; + } + case MscPackage.SITE: { + Site site = (Site)theEObject; + T result = caseSite(site); + if (result == null) result = defaultCase(theEObject); + return result; + } + case MscPackage.STEP: { + Step step = (Step)theEObject; + T result = caseStep(step); + if (result == null) result = defaultCase(theEObject); + return result; + } + case MscPackage.MICRO_STEP: { + MicroStep microStep = (MicroStep)theEObject; + T result = caseMicroStep(microStep); + if (result == null) result = defaultCase(theEObject); + return result; + } + case MscPackage.ENTER_STATE_STEP: { + EnterStateStep enterStateStep = (EnterStateStep)theEObject; + T result = caseEnterStateStep(enterStateStep); + if (result == null) result = caseMicroStep(enterStateStep); + if (result == null) result = defaultCase(theEObject); + return result; + } + case MscPackage.SYNCHRONISATION_STEP: { + SynchronisationStep synchronisationStep = (SynchronisationStep)theEObject; + T result = caseSynchronisationStep(synchronisationStep); + if (result == null) result = caseMicroStep(synchronisationStep); + if (result == null) result = defaultCase(theEObject); + return result; + } + case MscPackage.SEND_STEP: { + SendStep sendStep = (SendStep)theEObject; + T result = caseSendStep(sendStep); + if (result == null) result = caseMicroStep(sendStep); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'MSC'. + * + * 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 'MSC'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMSC(MSC object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Site'. + * + * 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 'Site'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSite(Site object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Step'. + * + * 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 'Step'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStep(Step object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Micro Step'. + * + * 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 'Micro Step'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMicroStep(MicroStep object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Enter State Step'. + * + * 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 'Enter State Step'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEnterStateStep(EnterStateStep object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Synchronisation Step'. + * + * 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 'Synchronisation Step'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSynchronisationStep(SynchronisationStep object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Send Step'. + * + * 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 'Send Step'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSendStep(SendStep 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; + } + +} //MscSwitch diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/.classpath b/eclipse/plugins/fr.irit.fiacre.xtext.edit/.classpath new file mode 100644 index 0000000..22f3064 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.edit/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/.project b/eclipse/plugins/fr.irit.fiacre.xtext.edit/.project new file mode 100644 index 0000000..a17fe79 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/.project @@ -0,0 +1,28 @@ + + + fr.irit.fiacre.xtext.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/eclipse/plugins/fr.irit.fiacre.xtext.edit/META-INF/MANIFEST.MF b/eclipse/plugins/fr.irit.fiacre.xtext.edit/META-INF/MANIFEST.MF new file mode 100644 index 0000000..a52edfe --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: fr.irit.fiacre.xtext.edit;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: fr.irit.fiacre.xtext.fiacre.provider.FiacreEditPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Export-Package: fr.irit.fiacre.xtext.fiacre.provider +Require-Bundle: org.eclipse.core.runtime, + fr.irit.fiacre.xtext;visibility:=reexport, + org.eclipse.emf.edit;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/build.properties b/eclipse/plugins/fr.irit.fiacre.xtext.edit/build.properties new file mode 100644 index 0000000..302faa6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/build.properties @@ -0,0 +1,20 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +# generated by Xtext 2.10.0 + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin/ diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebd9b3e620ac38d6dfc5312a6472c40c980e6660 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2goQ^^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&SL8Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b36c8a973d5d22810604b4baed7e7a95543ab79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5Kt{2e&#vieK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_0qrUpW8( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..13e215edfc7a3de605b8f403bd8cbd80bdd11751 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA3}yIY36Sn$NE3YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7sk7Jeq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbdb41d845284b66aaac6cb927dd0db4591dad77 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3l}d|^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&N^pVK4vy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_after_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0c070475d5d3eb93f7c7217f8f3e985d1ef83077 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_4vC>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&K`iV7&kU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebd9b3e620ac38d6dfc5312a6472c40c980e6660 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2goQ^^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&SL8Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b36c8a973d5d22810604b4baed7e7a95543ab79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5Kt{2e&#vieK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_0qrUpW8( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..13e215edfc7a3de605b8f403bd8cbd80bdd11751 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA3}yIY36Sn$NE3YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7sk7Jeq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbdb41d845284b66aaac6cb927dd0db4591dad77 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3l}d|^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&N^pVK4vy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_before_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0c070475d5d3eb93f7c7217f8f3e985d1ef83077 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_4vC>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&K`iV7&kU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_DecimalLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_DecimalLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..b901f6eda446627cc840670b6117dbb2cd2f7b3c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6T)WnE>{#%cHI{8{I{*L2&yTnNf8V~L zq2a)R19Rrg0Wyl!e0EJ&1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@SsV9fvk literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_LowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_LowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..73f16499bfc4d1e66af197790ef31079812e1b16 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&CGIaA3}yIY36Sn$NE3YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7txMP+8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_NaturalLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_NaturalLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..ddf43a182466c805a8286df0e8469b209524f993 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuY}HDJ^L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_VariableLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_lower_VariableLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..852e79072090cf21c6e55aeb778ad93f639817d3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8X689I520<93Z1u&1ctiH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm!2xBt< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebd9b3e620ac38d6dfc5312a6472c40c980e6660 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2goQ^^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&SL8Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b36c8a973d5d22810604b4baed7e7a95543ab79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5Kt{2e&#vieK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_0qrUpW8( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..13e215edfc7a3de605b8f403bd8cbd80bdd11751 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA3}yIY36Sn$NE3YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7sk7Jeq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbdb41d845284b66aaac6cb927dd0db4591dad77 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3l}d|^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&N^pVK4vy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_max_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0c070475d5d3eb93f7c7217f8f3e985d1ef83077 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_4vC>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&K`iV7&kU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebd9b3e620ac38d6dfc5312a6472c40c980e6660 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2goQ^^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&SL8Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b36c8a973d5d22810604b4baed7e7a95543ab79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5Kt{2e&#vieK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_0qrUpW8( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..13e215edfc7a3de605b8f403bd8cbd80bdd11751 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA3}yIY36Sn$NE3YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7sk7Jeq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbdb41d845284b66aaac6cb927dd0db4591dad77 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3l}d|^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&N^pVK4vy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_min_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0c070475d5d3eb93f7c7217f8f3e985d1ef83077 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_4vC>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&K`iV7&kU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebd9b3e620ac38d6dfc5312a6472c40c980e6660 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2goQ^^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&SL8Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b36c8a973d5d22810604b4baed7e7a95543ab79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5Kt{2e&#vieK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_0qrUpW8( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..13e215edfc7a3de605b8f403bd8cbd80bdd11751 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA3}yIY36Sn$NE3YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7sk7Jeq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbdb41d845284b66aaac6cb927dd0db4591dad77 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3l}d|^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&N^pVK4vy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_subject_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0c070475d5d3eb93f7c7217f8f3e985d1ef83077 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_4vC>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&K`iV7&kU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebd9b3e620ac38d6dfc5312a6472c40c980e6660 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2goQ^^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&SL8Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b36c8a973d5d22810604b4baed7e7a95543ab79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5Kt{2e&#vieK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_0qrUpW8( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c61195fdb5b0b00c4d60cada64b1d700569a10 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~hR`c04T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubZreKr+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..13e215edfc7a3de605b8f403bd8cbd80bdd11751 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA3}yIY36Sn$NE3YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7sk7Jeq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbdb41d845284b66aaac6cb927dd0db4591dad77 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3l}d|^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&N^pVK4vy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_until_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0c070475d5d3eb93f7c7217f8f3e985d1ef83077 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_4vC>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&K`iV7&kU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_DecimalUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_DecimalUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..506a19bf586b9a22bcaf4bdfac52b7a211515a53 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2goQ^^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&SL9Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_InfiniteUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_InfiniteUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbdb41d845284b66aaac6cb927dd0db4591dad77 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3l}d|^Vv0B4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&N^pVK4vy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_NaturalUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_NaturalUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d51bba34adc9ada6a22ace37b4172e4dc00d013 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kWsAWvunB<5N(~Lysk@rX_M5vO0k(G!vFrh2co~9&jZn)=Zk;eZ3dbK0g69a z7(px@5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunxQpuUlff}=y zpI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW8FFfxQX8AH IRTUYm0S8%NyZ`_I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_UpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_UpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..f82b4be32271d99e9a63b7ece1503ce41cbd9b43 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJ*C}4E} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_VariableUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAbsencePattern_upper_VariableUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7bbdc88b6bf5b818c43b64293a94a88c46c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}LtNHAjt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJUPhdg- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..4e7f8d9ecc77d2246f6efbf7e636a4e6a1e90759 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHZd|;RW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2142c4fc466ee030a548d0195aa9cd7a0bffbec6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..87b5b4a76864aceefaa30dc5b102a2078b696a47 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9M6_@UdXaHI_PUI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US63U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7403d3965a5fbd8083b5a49bafc6a3446e112dc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp`qzoQ}D51%QcodZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5723f6db8948360c15d7d50adb937ef4b14c550f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI0ZC`}| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..738febb4e7f6f5f5c24b5cb86fdfcdd255335a5d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHeG89J{D}b#!{zEXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4EzUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..2142c4fc466ee030a548d0195aa9cd7a0bffbec6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..5336acbe9ae6bea053e1628f857b0ca62f8d36a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau;HeVC~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a5b36204c5fbbd79eb11cbf23000acdab8a9688 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlT0D6nre$a*d@MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9DUS7-q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..87b5b4a76864aceefaa30dc5b102a2078b696a47 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9M6_@UdXaHI_PUI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US63U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..99ba18b9b4974ea0474e37b11cfeb2cf7084dbb5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG&Egn3O*KWxyDkbO=s71H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOzFq<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_g7Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b01cc94e974c556fd543b0d574808108fffa8f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm4#nu3o7TduLxY17#?T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaMM`1_+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d3a8e05ac1b24d089bf6a0b90ee05b925651abc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHY&0v@S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b01cc94e974c556fd543b0d574808108fffa8f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm4#nu3o7TduLxY17#?T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaMM`1_+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..e22a3704b9e74a82e457d3875ac7350249df3a69 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&D3_YYILVY`Ml#r%h+qbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruT(@Fh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3fdc2eae153e76b68d396db2eb3028f0c27dfb27 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z+jOld_*k&z8cUrvon6z_fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~Uxokx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..87b5b4a76864aceefaa30dc5b102a2078b696a47 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9M6_@UdXaHI_PUI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US63U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..79cec2bc9d96be525c15fb34a330f8612ddd24eb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHY%wU)R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc083830b7b3ef6cd8c6237595f4aaee8d3e611d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6eH3c6Fwp?SW)26d)x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;kvtj%I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57dc6d37b83a0f74988a2086858ca2d9349508d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMxPJd@R^<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_g7Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..502523ba85c03a27a17c5b050b6fc36daa2b4250 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9E@?OjU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e3921e9f9712eb8abf8282fe83e6c1952bd508a0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D3_YYILVY`Ml#r%h+qbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrurTb#S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..7403d3965a5fbd8083b5a49bafc6a3446e112dc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp`qzoQ}D51%QcodZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..2142c4fc466ee030a548d0195aa9cd7a0bffbec6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..79cec2bc9d96be525c15fb34a330f8612ddd24eb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHY%wU)R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..2142c4fc466ee030a548d0195aa9cd7a0bffbec6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2371ef2aa07f25ae1387c1a406e0c09b189ca682 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&Egn3O*KWxyDkbO=s71H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkR=3W8- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c06fe3615d0750e0e4d145a71becedeccd95011e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zHeG89J{D}b#!{zEXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4F^Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d4ed5a27baa6b543ac41f955f1ad7cde47e8f557 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlT0D6nre$a*d@MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9E@?OjU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d50e1dbe66bdb42bd04c05f1d2ff745285d5870 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^`T#U!4E| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57dc6d37b83a0f74988a2086858ca2d9349508d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMxPJd@R^<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_g7Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57dc6d37b83a0f74988a2086858ca2d9349508d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMxPJd@R^<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_g7Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c4c52215277ceca4d2f097d843f245aa42f9b52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHZd|;RW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1368d9acca4abd6661874318bc77a434cce9afed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp`qzoQ}D51%QcodZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR8=wImo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..28e491c2adb5300c834607d6889ff3bebba3d15b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SH~yI+L> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d3a8e05ac1b24d089bf6a0b90ee05b925651abc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHY&0v@S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6967b75767e57e2b5b5c0e7349911ffc1b9c4cc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`qzoQ}D51%QcodZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RRAM_=gx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..eab3c353c4fab174c8006e33a33762c19ee58cf7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHeG89J{D}b#!{zEXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{{e>Up@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d4ed5a27baa6b543ac41f955f1ad7cde47e8f557 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlT0D6nre$a*d@MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9E@?OjU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..4e7f8d9ecc77d2246f6efbf7e636a4e6a1e90759 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHZd|;RW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2142c4fc466ee030a548d0195aa9cd7a0bffbec6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..87b5b4a76864aceefaa30dc5b102a2078b696a47 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9M6_@UdXaHI_PUI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US63U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7403d3965a5fbd8083b5a49bafc6a3446e112dc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp`qzoQ}D51%QcodZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5723f6db8948360c15d7d50adb937ef4b14c550f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI0ZC`}| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..738febb4e7f6f5f5c24b5cb86fdfcdd255335a5d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHeG89J{D}b#!{zEXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4EzUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..2142c4fc466ee030a548d0195aa9cd7a0bffbec6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..5336acbe9ae6bea053e1628f857b0ca62f8d36a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau;HeVC~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a5b36204c5fbbd79eb11cbf23000acdab8a9688 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlT0D6nre$a*d@MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9DUS7-q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..87b5b4a76864aceefaa30dc5b102a2078b696a47 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9M6_@UdXaHI_PUI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US63U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..99ba18b9b4974ea0474e37b11cfeb2cf7084dbb5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG&Egn3O*KWxyDkbO=s71H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOzFq<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_g7Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b01cc94e974c556fd543b0d574808108fffa8f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm4#nu3o7TduLxY17#?T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaMM`1_+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d3a8e05ac1b24d089bf6a0b90ee05b925651abc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHY&0v@S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b01cc94e974c556fd543b0d574808108fffa8f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm4#nu3o7TduLxY17#?T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaMM`1_+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..e22a3704b9e74a82e457d3875ac7350249df3a69 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&D3_YYILVY`Ml#r%h+qbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruT(@Fh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3fdc2eae153e76b68d396db2eb3028f0c27dfb27 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z+jOld_*k&z8cUrvon6z_fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~Uxokx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..87b5b4a76864aceefaa30dc5b102a2078b696a47 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9M6_@UdXaHI_PUI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US63U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..79cec2bc9d96be525c15fb34a330f8612ddd24eb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHY%wU)R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc083830b7b3ef6cd8c6237595f4aaee8d3e611d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6eH3c6Fwp?SW)26d)x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;kvtj%I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57dc6d37b83a0f74988a2086858ca2d9349508d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMxPJd@R^<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_g7Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..502523ba85c03a27a17c5b050b6fc36daa2b4250 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9E@?OjU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e3921e9f9712eb8abf8282fe83e6c1952bd508a0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D3_YYILVY`Ml#r%h+qbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrurTb#S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..7403d3965a5fbd8083b5a49bafc6a3446e112dc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp`qzoQ}D51%QcodZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..2142c4fc466ee030a548d0195aa9cd7a0bffbec6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..79cec2bc9d96be525c15fb34a330f8612ddd24eb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHY%wU)R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..2142c4fc466ee030a548d0195aa9cd7a0bffbec6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2371ef2aa07f25ae1387c1a406e0c09b189ca682 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&Egn3O*KWxyDkbO=s71H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkR=3W8- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c06fe3615d0750e0e4d145a71becedeccd95011e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zHeG89J{D}b#!{zEXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4F^Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d4ed5a27baa6b543ac41f955f1ad7cde47e8f557 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlT0D6nre$a*d@MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9E@?OjU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d50e1dbe66bdb42bd04c05f1d2ff745285d5870 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^`T#U!4E| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57dc6d37b83a0f74988a2086858ca2d9349508d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMxPJd@R^<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_g7Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57dc6d37b83a0f74988a2086858ca2d9349508d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMxPJd@R^<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_g7Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c4c52215277ceca4d2f097d843f245aa42f9b52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHZd|;RW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1368d9acca4abd6661874318bc77a434cce9afed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp`qzoQ}D51%QcodZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR8=wImo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..28e491c2adb5300c834607d6889ff3bebba3d15b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SH~yI+L> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d3a8e05ac1b24d089bf6a0b90ee05b925651abc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8nVO~J>4E!SA;wCU`ct_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHY&0v@S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6967b75767e57e2b5b5c0e7349911ffc1b9c4cc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`qzoQ}D51%QcodZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RRAM_=gx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..eab3c353c4fab174c8006e33a33762c19ee58cf7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHeG89J{D}b#!{zEXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{{e>Up@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAddition_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d4ed5a27baa6b543ac41f955f1ad7cde47e8f557 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlT0D6nre$a*d@MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9E@?OjU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..16048d0b3f3d4ff540a99491f105990504ed260a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG`zU9=jNuKGc(f;G&t;M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJxU0|31 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ced536d9d7e6a24748444644b1491a24cf286ef3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0KA7|E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b954c54bf0553c42c690d7837e7c867ca5b27c9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnH#ha1nVEK=!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOrD9J2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f1e2d49e68323eb933eac4511913a52cf6a8ecce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a})JvTS?oSB(+puu6+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_lIIE literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..140c1752dcc38e15e8ef4c102a3bc28c38268d9b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK3iH_T1dmb7p4Rfd+?N)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFkVVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b954c54bf0553c42c690d7837e7c867ca5b27c9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d6c3b9e88557f6417d389e4815257c7f9d83cd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXn1jH&&^FeXJ)1yXmHpyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ(cwu4y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2b20e53ddd9d564200d0fc2b2096dd335fcff13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_r;|>H#ha1nVEK=!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOrD9J2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac035ea13adefd77814c57ead471ce4e665f332c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG`zU9=jNuKGc(f;G&t;M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv$zYfO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..c345ca5a1bf04f1d3b86d485cdef23d5499278ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeQ{~e%}qULW~LozaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S{(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fb29f45dd82f765152ec1571a321c4910d7b321 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gk|Y?YX(B=giEs0}T$lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJz-m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJz-6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5H#ha1nVEK=!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOrD9J2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e863d31a0c197e3ceaf235c4f5adce8babf3067f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3iH_T1dmb7p4Rfd+?N)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S{(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..90bc42c7025b56f053dd37023470bfc18c915541 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ*3}Ipb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..72cfbd01f7fb099044767358d3f2090ee21cdd4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&H=pwCCogo-;Gk4m3FInyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJy@nDz$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bfbb66ec7501857a70dad1aac2d1228d352f0ad GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zzPPmK=BA!AGt&+3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFlmVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5472ecdc660416beedd7d598fadf0dbc1f05a54 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn1jH&&^FeXJ)1yXmHpyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ*3}Ipb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..83969f9eb0d0b6db46e48be511417459a2e39feb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`c_VQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebeaeeb73c81e0cbbf9a3038aec0a9ea9948eb85 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zeQ{~e%}qULW~LozaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K#qVlw~$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c345ca5a1bf04f1d3b86d485cdef23d5499278ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeQ{~e%}qULW~LozaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S{(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c345ca5a1bf04f1d3b86d485cdef23d5499278ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeQ{~e%}qULW~LozaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S{(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ced536d9d7e6a24748444644b1491a24cf286ef3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0KA7|E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c8ac08b76206804bd1e1c53eb0a8c5657b75421 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a})JvTS?oSB(+puu6+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruHv(dR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d01836d01e406e1da79acd6f62538f714b2c396f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK3iH_T1dmb7p4Rfd+?N)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG^VVblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_child_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5472ecdc660416beedd7d598fadf0dbc1f05a54 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn1jH&&^FeXJ)1yXmHpyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ*3}Ipb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_index_VariableDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_index_VariableDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..223e215586cd1ed586901c4ea03db1a978d27f37 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zUtHRAb5qZmnP~?a9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`c_VQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllExpression_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..d799c183313f4f63203daf66d686a59038639040 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gk|Y?YX(B=giEs0}T$lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OKEPw% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_AbsencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_AbsencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f92d6f95da5afa4a32a709407a858cfa358dd7a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqO=KL7v6&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2?@=V9fvk literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..e01fab445e08617c0c0c17bba6c526ebcc08b88a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp#fQZ*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZXf>=5r z0%RuxYm9q!{Ee2H+qqh&U#90X+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW7uQ! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_DeadlockFreePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_DeadlockFreePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..66b71850f162273bdc938b3cc47c00a85c971863 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru55{6F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c98ad11a90832721e771aa06f26666d7661490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;Er9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ExistsProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ExistsProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..1613d1d4c7fd6e76299b52fd942ccd57f94674ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmmm&Cwh8=kLE%x$OV{`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OWdURJ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_InfinitelyOftenPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_InfinitelyOftenPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6ad66a4ab7979006ddcf2a1bc3e5768c4ca4b26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP?2w#=} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_LTLPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_LTLPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0b400c3f014d9ec584b43eb3efd44d037a67d61 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>9fMBQq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_LeadsToPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_LeadsToPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..29daffe9796ec1894cdd7be0f374de3fafe50e55 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@@GVDSI| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6ad66a4ab7979006ddcf2a1bc3e5768c4ca4b26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP?2w#=} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_MortalPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_MortalPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..67ba99c291d37cefaf85b79bb7ece651c8a049d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OWIJQ? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..574943bb647857b02c0fd2d7ca21f9e5e62c83c7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW?{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..29daffe9796ec1894cdd7be0f374de3fafe50e55 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@@GVDSI| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..29daffe9796ec1894cdd7be0f374de3fafe50e55 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@@GVDSI| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..67ba99c291d37cefaf85b79bb7ece651c8a049d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OWIJQ? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..574943bb647857b02c0fd2d7ca21f9e5e62c83c7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW?{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f9f86f07131fc54f9f337ffaa75eb1d9220b563 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z+jQ+(@Udf-Yu4zrwe6a&21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFr3VT}L) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..a8473096049ebf562f2e1d947397c3b90ddddabf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gm4#t_2@EX1QjKPFvfq>1sf;N literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PatternProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PatternProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9ccde5dc5be294dcd96c79612c9c1b746597f3b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou0>>4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PrecedesPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PrecedesPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb31e4b052870ef16e83dda4417cdae34e7297b3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW7uQ! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PresencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PresencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..574943bb647857b02c0fd2d7ca21f9e5e62c83c7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW?{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6ad66a4ab7979006ddcf2a1bc3e5768c4ca4b26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP?2w#=} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c98ad11a90832721e771aa06f26666d7661490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;Er9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c98ad11a90832721e771aa06f26666d7661490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;Er9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6ad66a4ab7979006ddcf2a1bc3e5768c4ca4b26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP?2w#=} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_PropertyNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2df954b265da6f828fdced94f49a7749ed3b53e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`q#8wcumNEZ3~jX=~dxT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPkzsuR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_SequencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_SequencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..af3c30f475f2071e9457fc214755e64f047e2965 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z+jQ+(@Udf-Yu4zrwe6a&21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCr$VHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_child_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..946cda2c3638b11eec31026e579608db32a7141f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z+jQ+(@Udf-Yu4zrwe6a&21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCs{VHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..a8473096049ebf562f2e1d947397c3b90ddddabf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gm4#t_2@EX1QjKPFvfq>1sf;N literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_variable_VariableDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAllProperty_variable_VariableDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f7d7ca62aca12227bedde682ecb5d6169f8212c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zo3338K6cD<%^IDywq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_after_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_before_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_max_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_min_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_subject_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAlwaysPattern_until_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dac10e77328c20fcc1c7799b7479bf5ac44cc6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ca73bf37b945f8f611c536255703ec7421cb627 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW{yV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b033b9d17bec867a04fbef0481c6e0bbd76f9000 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>B6kwsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..26345fdc848e94df877dcfbde51fdb538c817f96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..582e5bbcceda00d40eca8e130b154f476ce72c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tt{n?Lw#ITzn@-!V>1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW|d>} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7186b71a1d2358d52b247d5014402917be2e0bd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#&l(vEXBCEZ4N@wC$R%21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxyVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{ZnlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83dd4cb5be1e809acef0718933cf68869a95d61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b84f5fc5edad940a0caaa376b331d70ba994e132 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oui0c) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8db9bb002c804e55dcdbbe90cb8be2db785e379a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2639c9c9d27c80ee2a93a8915baaa4df0fcdec1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW|@V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2914f06dbd3f4343bbb479d879b990307f11d414 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou%BdB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..644241290572ac1a1195288e03978840f5207c63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuQgpe7JO`t<(f8~wq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_w1VKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaP#$kN` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Zy7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRC1HI4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8713703c7cae92c88f25fe26087045f5127178b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPM=VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dac10e77328c20fcc1c7799b7479bf5ac44cc6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ca73bf37b945f8f611c536255703ec7421cb627 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW{yV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b033b9d17bec867a04fbef0481c6e0bbd76f9000 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>B6kwsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..26345fdc848e94df877dcfbde51fdb538c817f96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..582e5bbcceda00d40eca8e130b154f476ce72c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tt{n?Lw#ITzn@-!V>1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW|d>} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7186b71a1d2358d52b247d5014402917be2e0bd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#&l(vEXBCEZ4N@wC$R%21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxyVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{ZnlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83dd4cb5be1e809acef0718933cf68869a95d61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b84f5fc5edad940a0caaa376b331d70ba994e132 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oui0c) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8db9bb002c804e55dcdbbe90cb8be2db785e379a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2639c9c9d27c80ee2a93a8915baaa4df0fcdec1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW|@V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2914f06dbd3f4343bbb479d879b990307f11d414 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou%BdB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..644241290572ac1a1195288e03978840f5207c63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuQgpe7JO`t<(f8~wq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_w1VKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaP#$kN` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Zy7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRC1HI4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8713703c7cae92c88f25fe26087045f5127178b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPM=VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAppendExpression_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8b8f87ce358919c1024d16bb085e515f63e7706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-eOMx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1f6c556f8aeade1bfbfee681e0a5eba0247b19a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR>RC}6?> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e7b42fac3728c7e5381ce574debd02677775a20 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQq7U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c2235ab275bedac8c4eb6801f5b8a70a63f83b6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkjjbcv# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..decea7bad6ac8e698fff47e25f89cf30eb9ce1a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OFSVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1370956a88c5d836c8f0d82e431b296783257cc4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kYPM?=C0{#K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`)pVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..78e35c70ee2dd44810c9363a1a894af25efa0c70 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR>Q!eGJx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..01c271236da5e9c429d23a2c3bc5afa4c9b64e13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?B0{{e8V9Nji literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..355b14013fa8083d85913b926cefc96632b7cbab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}+RV1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f42e7e758c5904edcb96d392a7f2ba8a75b199b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQlSU%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..c382aa6ed049489606e4cee7fbb0edcc000b68d3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v=9ybLOt;YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9ASYrPG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8b8f87ce358919c1024d16bb085e515f63e7706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-eOMx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..c382aa6ed049489606e4cee7fbb0edcc000b68d3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v=9ybLOt;YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9ASYrPG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b18d4243bf2fb17ac10d6cf304975dc40464237 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIY5T-%$d8Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR3$Yd4( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b806b6dcf6cd017d188e02867f46ffa24d1fc980 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l}$@Idj)^H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWl9!C^fB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ef55d20e042c2fe1af8c0df39a9d43d8a4086e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-C|Dw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7dcab430b73befb8e8fba12e4b483c2b2d3207f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689I520<93aDZ=FDBw)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08=#ACAn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..78cd3d75314740645c1cc70c3e32beb151c0980c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..60a381877ef3b71359671426a7e53f65956f1db1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIY5T-%$d8Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR@3}kr# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..decea7bad6ac8e698fff47e25f89cf30eb9ce1a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OFSVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ef55d20e042c2fe1af8c0df39a9d43d8a4086e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-C|Dw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..75d8cae4d333c95985ae17a3f8c40a5d3595456e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQu-U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1f6c556f8aeade1bfbfee681e0a5eba0247b19a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR>RC}6?> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a9f5b6928b2456bf9f6fc47ae2535889b5c0e62 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b5f0b5bbbfa64971ff93fa90727dadb22b3955b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR@(qwr6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..00edc85b95e8ddff91086e2565f95c81b4403e4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFftXU^O;T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubGPhgJ# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d6deb4e8bb54a14b9b7a894b044db6b542c5411 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruY^Y&W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c2235ab275bedac8c4eb6801f5b8a70a63f83b6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkjjbcv# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5f41eacb8f9a205a5219576d2f36e6fc2321342 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QaTVW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..373052d301a78075876fe67b40aa9ce82057c9a8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kYPM?=C0{#K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`&hVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8b8f87ce358919c1024d16bb085e515f63e7706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-eOMx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d1b6d68c5bf556493cf80c85cad27de004c7643 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QeeVW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa715663b5e8463fe21b4b3aa3bcd8a9f69d7ace GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;$s$lg1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessExpression_indexes_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a9f5b6928b2456bf9f6fc47ae2535889b5c0e62 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..205071f21539ca12f3279c9bd7998159be53ad48 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^Ani;Vkm2Cquxq*+5N(~Lysk@rX_M5vO0k(G!vFrh2co~9&jZn)=Zk;eZ3dbK z0g69a7(px@5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunxQpuUl zff}=ypI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW8FFfx MQX8AHRTUYm0i!Nn*Z=?k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b498f6d4bfcfeb85a3b6f6e4dadeb3dd9e6effd2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{`aVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d24f7932047d7899826ce34b57485caa9ad80c1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubbXJC&2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..db9d0e3f51e696a5986f2ab2cf477b38fb426e23 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R18HZ{fD8u*hh5XvfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=wNnl$5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d3fded756270a52d4ea4f0d41c738ad091f29bf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>#tLq(Q`YO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74Aua1Az$hM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbeac469f50e1f74b80f9ea6a0992039392c20af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-K-!r!Aj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}WnU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ceba771f04f1ec47bae097bdec901925bd97a308 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bu=~CJo4NaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubbXJC&2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c7384ee85c9b7f4dd7c4bf3d098aa29450bcc5b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^Ani;Vkm2Cquxq*+5N(~Lysk@rX_M5vO0k(G!vFrh2co~9&jZn)=Zk;eZ3dbK z0g69a7(px@5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunxQpuUl zff}=ypI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW8FFfx MQX8AHRTUYm0il{+*Z=?k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..932fde3646a1a408d21ec75d491c7cef6c8841bb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&XJgNrQ;*nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXBEAVjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..199994a5652992e6c6209c5ebc72551bf1b64dbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4y2t)12P;O9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^VVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f00aa632e4fbd85e12f14d6943654402da6c1ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl97sEp24pxmIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXBEAVjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..8cda162a788423687fd81885973d174e46b52780 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIa3JkW8j#`O;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5JK( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d1bf162dab6094d49126bd880c14aa2ff7bcd031 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lvW~lLllsI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJvj9^>< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ceba771f04f1ec47bae097bdec901925bd97a308 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bu=~CJo4NaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubbXJC&2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7e40a39e70c8281c71a18eb5846c2e618336992 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4x|AE8yXxO9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^UVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..7aba2681465f3fa4f19fec8be627907937acc4d6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689IFNQG4ajhCaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QZ8V$uKr literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..932fde3646a1a408d21ec75d491c7cef6c8841bb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&XJgNrQ;*nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0{}bSU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..85812b6ce681f6557b1f2c2d72030c11aae85a25 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIa3JkW8j#`O;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm51OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^UVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d24f7932047d7899826ce34b57485caa9ad80c1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~#r{;=87+0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^5TN*zg%QNk z0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6>9H=pS`3ZKB zKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBFDYdaFTUC+4 F8USqqU*P}% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5a6c99798137ee01301e464c63f2884a5221a76 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-K-!r!Aj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}bSU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c572b64fd356d67b1491cccc2f32b7e2025d1e0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$C>8X>ZF?$gO1vLZx;)JpoZBm5YLM_VN?#B7ItO zPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=O;c)PQ?{xigEas~ CDPOJt literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..83d4e79151d0029b22f409aea061764c026fe847 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&XJgNrQ;*nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{`aVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2dde1a2a0e519b5c9361bac9e304b2b1564f5f72 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a)R18HZ{fD8u*hh5XvfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=vmtb1} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..199994a5652992e6c6209c5ebc72551bf1b64dbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4y2t)12P;O9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^VVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_index_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7f28e19c613d6368979c00d820ea4f615633092 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R13*C_!@=5r0%RuxYm9q!{Ee2H+qqh&U#90X#tLq(Q`YO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_B0{}bSU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d619ab3370db043d4a1b5cbeda19e35d1f603fe GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zk;QjSR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F(;z_cCkrEpr2`^B zb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItO zPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=O;c)PQ?{xigEas~ CDPOJt literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..70f48d3a5b5bb05f55bb3f2a43580af47d5f36fe GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}B0{}WnU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..191a36a5fad4c2239b1d74a234679930ab095653 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6bQ`+L<&U11P?0x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=wNnl$5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayAccessPattern_source_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb95b9aa0cff3a6b081b8fbcfd777617fecd8d53 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c z0L9bJqyZT~@m1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{2vGdV z!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb4%C>v z`~7J{D}b#!{zE=l}os`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..66b71850f162273bdc938b3cc47c00a85c971863 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru55{6F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..535fd3825892ffa2a8b3b75ec542f783f1cbed9c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cc3c1b0c50afe436f1e8d10162b308cf68948df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9Qro;A6)u*R0WLYuhzl4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OPIVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e01fab445e08617c0c0c17bba6c526ebcc08b88a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp#fQZ*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZXf>=5r z0%RuxYm9q!{Ee2H+qqh&U#90X$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruLAPNU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..574943bb647857b02c0fd2d7ca21f9e5e62c83c7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW?{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..535fd3825892ffa2a8b3b75ec542f783f1cbed9c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0b400c3f014d9ec584b43eb3efd44d037a67d61 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>9fMBQq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..f2eedabaf1519a23bd85f71a48861eeae1fbfec0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlS~2E%?|m%Qb6s+S+zaR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauNs9<0K literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cc3c1b0c50afe436f1e8d10162b308cf68948df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9Qro;A6)u*R0WLYuhzl4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OPIVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6ad66a4ab7979006ddcf2a1bc3e5768c4ca4b26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP?2w#=} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0666f7248ba4c8981e3cf8983f10e6e3e61e786 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c9b7c6bc32cfd7faf75ff5872a7fac489be5a0a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm4#t_2@EX1QjKPFvfq>1sf$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;NxA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c9b7c6bc32cfd7faf75ff5872a7fac489be5a0a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm4#t_2@EX1QjKPFvfq>1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OWdURJ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..946cda2c3638b11eec31026e579608db32a7141f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z+jQ+(@Udf-Yu4zrwe6a&21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCs{VHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cc3c1b0c50afe436f1e8d10162b308cf68948df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9Qro;A6)u*R0WLYuhzl4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OPIVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c98ad11a90832721e771aa06f26666d7661490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;Er9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6fc892d00e399712f38096d8b6d2035b1251fb8a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6eT?;;T%yP{dowl}J)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..306a991c36f8e31c3b37bf4e71a8459ea1e628d9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9ccde5dc5be294dcd96c79612c9c1b746597f3b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou0>>4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..e01fab445e08617c0c0c17bba6c526ebcc08b88a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp#fQZ*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZXf>=5r z0%RuxYm9q!{Ee2H+qqh&U#90X$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c98ad11a90832721e771aa06f26666d7661490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;Er9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..535fd3825892ffa2a8b3b75ec542f783f1cbed9c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..86fde1e236e11f6c4dc311658422f3043fe630ec GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..65e9a41807f7a448b15e2b038cb1af59ac7b000e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW^DV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e18f0492dc2de5dcdb9164f32144eb1eaa006393 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlS~2E%?|m%Qb6s+S+zaR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f2cec76f794fb1cf0b730f5d7a6c1c561713878 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OuM1>W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f7d7ca62aca12227bedde682ecb5d6169f8212c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zo3338K6cD<%^IDywq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_rMVKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0666f7248ba4c8981e3cf8983f10e6e3e61e786 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0666f7248ba4c8981e3cf8983f10e6e3e61e786 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..66b71850f162273bdc938b3cc47c00a85c971863 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru55{6F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..52be1a507e595868ea240e4883649cdda2bddded GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp`q#8wcumNEZ3~jX=~dxT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOGGToH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3e3b45a82b4059837740bbcd25d1812ddfb32416 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruK?PwM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bed4f36c2aa77232d6c159714450adb63438202 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;NxA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2df954b265da6f828fdced94f49a7749ed3b53e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`q#8wcumNEZ3~jX=~dxT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPkzsuR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bef1cde0b83065184cff3421cf90a82a8faaae0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPIAVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayExpression_values_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e18f0492dc2de5dcdb9164f32144eb1eaa006393 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlS~2E%?|m%Qb6s+S+zaR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ae0144c11d07c9376009f511c82d953a9e8fdd6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG<^O2_2`?U^Y72Eyi~bsx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=bG-3Pz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..203f89aaa4ba111a051efa91f6ae6c7a1bbc1922 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0BLZDX?l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0e24345d74a34e688b06a5762594926f93a9a4b7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTAuSee;oqvCR<)zA9)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_C>8X>ZF?$gO1vLZx;)JpoZBm5m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OgC}DS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..79caa88a211d31a82d8812c0ee7dfcef995980f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zX!!d3>(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruN>5_O literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cd0b7b14262504c6baf22783841867b6dbd9e14 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_v`PkN8cQse}8`ErOI8?)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0BLZDX?l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..16c6f5a98e3fc009aecfa9756b5034935e193074 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG<^O2_2`?U^Y72Eyi~bsx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=Zpke#~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..737366aca5bd777a14563f7f8654c6022ab204b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdas(Kkou-=AN3sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmlSz~tq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1623e88e3d38aef2c3dd3351e320beb066eacf6b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gmv^e?9u<==}ThD=$^6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`GRzdyh7Qsu7cYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9vl4F1X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cd0b7b14262504c6baf22783841867b6dbd9e14 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_v`PkN8cQse}8`ErOI8?)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0BLZDX?l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc09417698616eeccdfdf845a2e32c1bd6b8f4f2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8@dzaD*abpHMMm6s}aO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a7dfdefa08aed9f82f5746225e78565661f7ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0I`*2_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..737366aca5bd777a14563f7f8654c6022ab204b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdas(Kkou-=AN3sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmlSz~tq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa1f35938cd3aa14c2d27450e9fecab5a4547761 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruOXFh3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f72fe57a5c5570b3a0fdabe9c3545b2f028462b0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Fqu{q^XZqx0|2ue?;bYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nMC@j~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..0e24345d74a34e688b06a5762594926f93a9a4b7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTAuSee;oqvCR<)zA9)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..aae1b35c590e4cca1816e1e6f819ef58848c75e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecnm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=c$YJ~d literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..527e4e884c3eac8b32765523ca2393b83e489aa9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ ze*OLR=$oVS@6WHiRJm)q8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruOXFh3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..81ee371c55ca6e36fe48bc9997b0d35b6e3e47ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nMY3kR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9fa11c04719de9bf1575ef98e9f7ab6fe0f549fa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zzyAJu^v%)v_vcq$s@yeQ4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&N#7V$uKr literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..c432db27f72b3fc52752e9da5dd929df5100740c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z{rdas(Kkou-=AN3sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm-d1IFV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..737366aca5bd777a14563f7f8654c6022ab204b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdas(Kkou-=AN3sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmlSz~tq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..737366aca5bd777a14563f7f8654c6022ab204b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdas(Kkou-=AN3sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmlSz~tq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..203f89aaa4ba111a051efa91f6ae6c7a1bbc1922 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giC>8X>ZF?$gO1vLZx;)JpoZBm5kc+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_size_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f67fa30721e42bab0f9b5661e8555250bb40b4ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zX!!d3>(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruOXFh3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_ArrayType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_ArrayType.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a7dfdefa08aed9f82f5746225e78565661f7ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0I`*2_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_BasicType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_BasicType.gif new file mode 100644 index 0000000000000000000000000000000000000000..79caa88a211d31a82d8812c0ee7dfcef995980f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zX!!d3>(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruN>5_O literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_BooleanType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_BooleanType.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1718109915b9f7f1539e1b881633f53ea483258 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*OLR=$oVS@6WHiRJm)q8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5Um4mOV*ROub(! zIny~%WA^eB>>_(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruOXFh3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_QueueType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_QueueType.gif new file mode 100644 index 0000000000000000000000000000000000000000..7765d4457f52c2bc4a94fa85bc0968fc24c7ca5f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ ze*OLR=$oVS@6WHiRJm)q8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5kc+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c29533ccf01f6806891a91f18f2568c163f12d6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^e?9u<==}ThD=$^6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`}}5E literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_ReferencedType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_ReferencedType.gif new file mode 100644 index 0000000000000000000000000000000000000000..0e24345d74a34e688b06a5762594926f93a9a4b7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTAuSee;oqvCR<)zA9)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giGRzdyh7Qsu7cYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9vEMtHG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_Type.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateArrayType_type_Type.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6388bf07a4199626e3b7a5f6fe60923c39415ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zeEt3P=$oVS@6WHiRJm)q8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0BLZDX?l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dac10e77328c20fcc1c7799b7479bf5ac44cc6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ca73bf37b945f8f611c536255703ec7421cb627 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW{yV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b033b9d17bec867a04fbef0481c6e0bbd76f9000 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>B6kwsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..26345fdc848e94df877dcfbde51fdb538c817f96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..582e5bbcceda00d40eca8e130b154f476ce72c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tt{n?Lw#ITzn@-!V>1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW|d>} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7186b71a1d2358d52b247d5014402917be2e0bd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#&l(vEXBCEZ4N@wC$R%21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxyVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{ZnlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83dd4cb5be1e809acef0718933cf68869a95d61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b84f5fc5edad940a0caaa376b331d70ba994e132 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oui0c) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8db9bb002c804e55dcdbbe90cb8be2db785e379a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2639c9c9d27c80ee2a93a8915baaa4df0fcdec1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW|@V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2914f06dbd3f4343bbb479d879b990307f11d414 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou%BdB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..644241290572ac1a1195288e03978840f5207c63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuQgpe7JO`t<(f8~wq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_w1VKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaP#$kN` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Zy7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRC1HI4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8713703c7cae92c88f25fe26087045f5127178b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPM=VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_exp_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..dbeab5e6c6b087364004479686cafe641eeda77d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&LSEYsZ3*t+8Cwrqi}-x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=mRA6WT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..644241290572ac1a1195288e03978840f5207c63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuQgpe7JO`t<(f8~wq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXEI#VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d52b42ea34b0987ef4e5d4e695fe57d31f88365 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ca73bf37b945f8f611c536255703ec7421cb627 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OWo%>f literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignAnyStatement_patterns_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+;@%I1k+cz{c zTx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXJUV5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..64eb22ea49ac0427d7c163a1134e27924437430e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLjy$o07%$j*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZX zf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=AL0~EX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..6246f895c4484bef69193e6dd1f26cbfcaf52f58 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z3lTqXzySz$O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~*Pf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..64b3c8ac9ebca26e2c8d54bbc12149fe8e257119 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6afEfdfEchh5XvfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{2vGdV z!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb4%C>v z`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7;kz=s{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b489fdd24da723b6410366124a1cb0dc2d31c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S^mVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_patterns_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..bdcb71c7dd2054cab09e72644cee5600b4055058 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zK*bM$#CJ_s1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq;AVBda3nPf7 z10q0nGO)%dDDA99YNmER{Un)7%IZ$Kv@)PVL zeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7TQ)**VwyGk7 FH2}srU}gXS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3893b15236a9a449d00ff7eef3320aa1bf4b77b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO52M#y@!LI3QK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1R&UsM19 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b489fdd24da723b6410366124a1cb0dc2d31c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S^mVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..847c1de4ea92a92857dcd6b0dac8461376938441 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@_OVCVn< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b4b69fc695281a897de6ec9292e11df7c48d0069 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b1S(fCCWhnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@=jVCVn< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..64b3c8ac9ebca26e2c8d54bbc12149fe8e257119 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6afEfdfEchh5XvfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{2vGdV z!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb4%C>v z`~$UdnRDO(P}pJDbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruzO-On literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..847c1de4ea92a92857dcd6b0dac8461376938441 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@_OVCVn< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..62e68eb56148cc9ab16df336a9e8cc89c62a9899 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?=5r0%RuxYm9q!{Ee2H+qqh&U#90X1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~*Pf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b4b69fc695281a897de6ec9292e11df7c48d0069 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b1S(fCCWhnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1N2UsM19 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ca2167bf6fdc7a61cc9f9326051d70aa10773a4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv~kops>TP>1sfC>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S?hVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..23ab758267155decc6b25fd40efdbe9b4a7a4813 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_&Vd6CK(K4N8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7Um4mOV*ROub(!Iny~%WA^eB z>>_6>ylsEBsH&6Y-Wk@zrXK+=Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S?gVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..b447e9ab5dd2bbe5e0113b6c4ceb10da53a691f2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689I520JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm_r(;e4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ca2167bf6fdc7a61cc9f9326051d70aa10773a4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv~kops>TP>1sf1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~*Pf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2067b0c31a6c1501a9f466efa086fe3ace10f9c5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIR_3n0Ku;5YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8z{$vyY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..e01d292ec409d45567216700f69e706334bae343 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19RrgIdH%M2zE_Z1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@=jVCVn< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..847c1de4ea92a92857dcd6b0dac8461376938441 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@_OVCVn< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5279d7bfc655a5eeb4b7c58944b1ea4b977b819a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|=fD96AlNls4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S?gVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..847c1de4ea92a92857dcd6b0dac8461376938441 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@_OVCVn< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c1fbe127e0f74f4bc7d4b601a3d151c23f25d60d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO52M#y@!LI3QK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1WjUsM19 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ac69d31c5f89630040ddb6252989a4ed817ba64 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnRDO(P}pJDbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruzZzg& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..22997f51130b4ec5776f0efce7944828ef7708cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aA4jga*f?d1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~*Pf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d167a0f74445e07de4201fb3608433a3f480bc4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8!#AFlz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a149010ace45f1daf33e36b4e9ab4c91b35d0ab1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%sFrXDD1Fnx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=AL0~EX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..32e4f432c6fda82cfe811e1a05a2e36eb911f871 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv~kops>TP>1sfTP>1sfTP>1sfY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S^mVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b14c5082ff466afa82cfc7fba7ac24b761070e6b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a)R19RrgIdH%M2zE_Z1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`AkVLJc- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dcb65c3c2e28aa8ec0e020833f9db583a490c22 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6afEfdfEchh5XvfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{2vGdV z!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb4%C>v z`~Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S?hVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..777a45bfe8dbe6e13d7487fb6572f60b7cdc686c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19RrgIdH%M2zE_Z1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`EvVLJc- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5280ff3dddd294d406d6a4888ba7d5f43e889dfa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnRDO(P}pJDbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru<&9vF literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateAssignStatement_values_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..22997f51130b4ec5776f0efce7944828ef7708cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aA4jga*f?d1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~*Pf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d289e3e8549d310320b3af753f47bc23940a304 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&Kg+FM2lJOq+Seq2a);>1sfv*~8q%rg!R2X;+Y1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`UvVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9245bcdf6ce78f567069d1828d7daae12c2b8c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&R#+Vd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..09741e808c9c16faf187577d743db5e4fb4144da GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0JjTcE&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_CaseStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_CaseStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..88d12d28a3ce5ede320a95228e36d83a960d9a3d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt zyXVr2o=rE?W}b0qIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5;@%I1k+cz{c z?78%!XVcBJnP(gt4(yt)21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFy$VX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..88d12d28a3ce5ede320a95228e36d83a960d9a3d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt zyXVr2o=rE?W}b0qIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ$x?y4f literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a441d452d66a0873467508409ff4cd3b53cdc63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XERodeO7#X4=d%4h;u(O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi$+ka literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..0eef083b9d6f7918ded800342f7d4f0b28d385f1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&JnF^rC0e&9s?k92ySnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi;@%I1k+cz{c z?78%!XVcBJnP(gt4(yt)21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFy$VX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..425d7ff3c0a29c5e4e66dc5e0af89a407b9309f3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c z?78%!XVcBJnP(gt4(yt)21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFy$VX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f10ef759c7c525c558f044489ae2b825432bf492 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zH0-(bqG!|1w3%ld8V>B5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJwGhmni literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..edb52e8b7cc502ef5f9d46c00ac514aa4ba2c800 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?C>8X>ZF?$gO1vLZx;)JpoZBm5m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1sf$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ(7-3=n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..294329570316a2cff1183e3596924b3249557d38 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&R0)Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_UnlessStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_UnlessStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..99e6aae4cd6dc952c35ae1fb8ce9e1be14830a93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&OZ7d@M9rp-L#&~RYabTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru^vPl@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..6544d144643b1662aa7aae701dfeb0554969f9dc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zp<&OZ7d@M9rp-L#&~RYabTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruHv(dR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateBlockStatement_body_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a7113645a44ea0b8682a7f47a964d506c7b7ae4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&JnF^rC0e&9s?k92ySnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+={#%cHI{8{I{*L2&yTnNf8V~L zq2b5Z-#3oF*+2jOvdT-lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OB#UG7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7724b60a256bb8a9c510625f4562fa74aaa4350 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLjyz{$T$`pylc7|5N(~Lysk@rX_M5vO0k(G!vFrh2co~9&jZn)=Zk;eZ3dbK0g69a z7(px@5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunxQpuUlff}=y zpI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW8FFfxQX8AH IRTUYm0omMOk^lez literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..17508af6a6c1ab5d47b1c812cee6e6a1787ce586 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFfv1qbh%t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJ^q+pf+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bd29bdb694ebed0a531cdea6cd65968a5b5f0a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE6>VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..78bc4558b3db8cbb1b0a17757a067a308d5707a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|NrsxUm4mOV*ROub(!Iny~%WA^eB z>>_C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4vzMP>7wOZQ zbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E8LR<_ C?qPla literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d7b8954babd63784c24ee760728349d9dbe4f93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zK*WKJW5L0@rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O3aen! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3acaf1956991312868335f48af16d35abab5dc86 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt zi!8otx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)iKUo+-EFBO5 zvXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4vzMP>7wOZQ zbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E8LR<_ C?qPla literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..c6b4517283273fec02fa60070011f7accadf8de8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec} z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWD5V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..057c18d28f2a2a9297ef7935bc1b9721a4fe8e97 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8X689I520<93bOZaPY3_YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7)-($J} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a66ef85f68e38e9748ab052c98ab20e6893082 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kZ~+Hc-M3_Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{~vrVM71_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..943d22ac75018c2ff1c2ddf53200f230592ef1ea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09(^kf|X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_LoopStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_LoopStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..943d22ac75018c2ff1c2ddf53200f230592ef1ea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09(^kf|X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_NullStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_NullStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..46a3c0c3fe713cb46ceac2310beaf8f1caf1876d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0Aun`D3h literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_OnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_OnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ac7789850d07067f213b908f5a6c3b05b40464c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3l~2Y9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pcSr|bq z9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@Um!Du4 z>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5;@%I1k+cz{c zK*WKJW5L0@rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O3aen! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d7b8954babd63784c24ee760728349d9dbe4f93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zK*WKJW5L0@rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O3aen! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..290c50386bd155169aa324d64908434db5e28a6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO5Kn75D*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_ z6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90XC>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXGRNVW$89 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..a51b1f63675e28a5857cb8cb77bd4a0c67663aac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zXgF}-z??aAfQ)0o!Mmob0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWKGV2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3a1336d8cb8fe3c12393553d26945de5a5e6ceb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2go=U9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&M1bVD|t3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_UnlessStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_UnlessStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..1bcce98a01dcdb42423edafe4a7cb6d308a6bb74 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WyvS2k)A$21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE2BVN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f1417748c016fa75b749aba316447a1b038ae135 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zq2a)R19Rrg0WyvS2k)A$21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXGVYVW$89 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_body_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8f51cfbeb2e4560f206491897494d0c1923ae45 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09)S7aRk literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7724b60a256bb8a9c510625f4562fa74aaa4350 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLjyz{$T$`pylc7|5N(~Lysk@rX_M5vO0k(G!vFrh2co~9&jZn)=Zk;eZ3dbK0g69a z7(px@5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunxQpuUlff}=y zpI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW8FFfxQX8AH IRTUYm0omMOk^lez literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..17508af6a6c1ab5d47b1c812cee6e6a1787ce586 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFfv1qbh%t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJ^q+pf+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3acaf1956991312868335f48af16d35abab5dc86 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt zi!8otx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)iKUo+-EFBO5 zvXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4vzMP>7wOZQ zbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E8LR<_ C?qPla literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..c6b4517283273fec02fa60070011f7accadf8de8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec} z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWD5V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a66ef85f68e38e9748ab052c98ab20e6893082 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kZ~+Hc-M3_Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{~vrVM71_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..943d22ac75018c2ff1c2ddf53200f230592ef1ea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09(^kf|X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_pattern_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a20f5daae462f1bbacc7587424753c7873561291 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+C>8X>ZF?$gO1vLZx;)JpoZBm5;@%I1k+cz{c zK*WKJW5L0@rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O3aen! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..aedabe1ea23f87674ffde64ebbf1d7758a2cb7b7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5K*q7);9b+zfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE6>VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c7ede6f34616d1803eb45b127077c55cdf857f8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cPD*IC$4|H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlp@nLrW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1bcce98a01dcdb42423edafe4a7cb6d308a6bb74 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WyvS2k)A$21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE2BVN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a66ef85f68e38e9748ab052c98ab20e6893082 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kZ~+Hc-M3_Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{~vrVM71_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..59ae8d865a4beec391c928a383c9988f078d5dd6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}T3l82jT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuYxCSb_` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bd29bdb694ebed0a531cdea6cd65968a5b5f0a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE6>VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b3bc875d1e766d5ee247680262b31588210dc53 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F? z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWD5V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c7ede6f34616d1803eb45b127077c55cdf857f8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cPD*IC$4|H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlp@nLrW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..6102025642c646a07bce99a4e50d2a8203dcf68b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5K*q7);9b+zfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm9tz!lN literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..201754f6409c20e4f398218d90453177b59a9925 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2go=U9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm9tz!lN literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..1852a3ffac01ad6fa702dc7a1bed9981394a6a35 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09*9b_E< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d36652c8326550a13e13daf1abe85ea99599161d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l~2Y9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pcSr|bq z9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@Um!Du4 z>C>8X>ZF?$gO1vLZx;)JpoZBm5J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlp@nLrW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3a1336d8cb8fe3c12393553d26945de5a5e6ceb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2go=U9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7)8DqKt literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb228a3ccd1bcf7560401e897794807d1c1029ee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~x796~5x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWH*V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..669fba2024a61ddae843f0bea8c3af170ba7d3cf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AvVPt>+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..1bcce98a01dcdb42423edafe4a7cb6d308a6bb74 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WyvS2k)A$21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE2BVN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bd29bdb694ebed0a531cdea6cd65968a5b5f0a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE6>VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3a1336d8cb8fe3c12393553d26945de5a5e6ceb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2go=U9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE6>VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..290c50386bd155169aa324d64908434db5e28a6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO5Kn75D*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_ z6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X$UdnFC}T3l82jT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuYxj9|$C literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..294545323507a7e929d452c7b51d72b0398b9172 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfQ)0o!Mmob0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWH*V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..79ceed0345ae313ac0453ab69d946775807012b2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AwCuD#C literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..17508af6a6c1ab5d47b1c812cee6e6a1787ce586 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFfv1qbh%t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJ^q+pf+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6b90e067e2dd8cf04f943c118531a7bb16c10d77 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~x796~5x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXGNCVW$89 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..00da844bb39721a6b117d055c12bde522647dba5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kZ~+Hc-M3_Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{~tjVM71_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..201754f6409c20e4f398218d90453177b59a9925 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2go=U9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXGRNVW$89 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4f9a608ed4450bca2e5320149157b7d49639f513 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}T3l82jT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZC|6u$8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCaseStatement_value_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..294545323507a7e929d452c7b51d72b0398b9172 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfQ)0o!Mmob0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UWH*V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelDeclaration_value_ChannelType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelDeclaration_value_ChannelType.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a30bfdcc11a435716d8109b11cf2013b7208fab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XCTS{eAT4oB8waS5{uyHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW7J{D}b#!{zE=l}os`SJGu@7p&t zG<^O2_2`?U^Y72Eyi~bsx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=bG-3Pz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..203f89aaa4ba111a051efa91f6ae6c7a1bbc1922 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0BLZDX?l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0e24345d74a34e688b06a5762594926f93a9a4b7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTAuSee;oqvCR<)zA9)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_C>8X>ZF?$gO1vLZx;)JpoZBm5m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OgC}DS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..79caa88a211d31a82d8812c0ee7dfcef995980f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zX!!d3>(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruN>5_O literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cd0b7b14262504c6baf22783841867b6dbd9e14 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_v`PkN8cQse}8`ErOI8?)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0BLZDX?l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..16c6f5a98e3fc009aecfa9756b5034935e193074 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG<^O2_2`?U^Y72Eyi~bsx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=Zpke#~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..737366aca5bd777a14563f7f8654c6022ab204b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdas(Kkou-=AN3sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmlSz~tq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1623e88e3d38aef2c3dd3351e320beb066eacf6b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gmv^e?9u<==}ThD=$^6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`GRzdyh7Qsu7cYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9vl4F1X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cd0b7b14262504c6baf22783841867b6dbd9e14 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_v`PkN8cQse}8`ErOI8?)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0BLZDX?l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc09417698616eeccdfdf845a2e32c1bd6b8f4f2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8@dzaD*abpHMMm6s}aO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a7dfdefa08aed9f82f5746225e78565661f7ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0I`*2_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..737366aca5bd777a14563f7f8654c6022ab204b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdas(Kkou-=AN3sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmlSz~tq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa1f35938cd3aa14c2d27450e9fecab5a4547761 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruOXFh3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f72fe57a5c5570b3a0fdabe9c3545b2f028462b0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Fqu{q^XZqx0|2ue?;bYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nMC@j~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..0e24345d74a34e688b06a5762594926f93a9a4b7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTAuSee;oqvCR<)zA9)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..aae1b35c590e4cca1816e1e6f819ef58848c75e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecnm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=c$YJ~d literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..527e4e884c3eac8b32765523ca2393b83e489aa9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ ze*OLR=$oVS@6WHiRJm)q8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruOXFh3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..81ee371c55ca6e36fe48bc9997b0d35b6e3e47ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nMY3kR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9fa11c04719de9bf1575ef98e9f7ab6fe0f549fa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zzyAJu^v%)v_vcq$s@yeQ4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&N#7V$uKr literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..c432db27f72b3fc52752e9da5dd929df5100740c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z{rdas(Kkou-=AN3sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm-d1IFV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..737366aca5bd777a14563f7f8654c6022ab204b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdas(Kkou-=AN3sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmlSz~tq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..737366aca5bd777a14563f7f8654c6022ab204b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdas(Kkou-=AN3sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmlSz~tq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..203f89aaa4ba111a051efa91f6ae6c7a1bbc1922 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giC>8X>ZF?$gO1vLZx;)JpoZBm5kc+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_size_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f67fa30721e42bab0f9b5661e8555250bb40b4ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zX!!d3>(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruOXFh3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_ArrayType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_ArrayType.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a7dfdefa08aed9f82f5746225e78565661f7ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0I`*2_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_BasicType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_BasicType.gif new file mode 100644 index 0000000000000000000000000000000000000000..79caa88a211d31a82d8812c0ee7dfcef995980f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zX!!d3>(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruN>5_O literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_BooleanType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_BooleanType.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1718109915b9f7f1539e1b881633f53ea483258 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*OLR=$oVS@6WHiRJm)q8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5Um4mOV*ROub(! zIny~%WA^eB>>_(Mty=ii@Sd8u;ObTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruOXFh3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_QueueType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_QueueType.gif new file mode 100644 index 0000000000000000000000000000000000000000..7765d4457f52c2bc4a94fa85bc0968fc24c7ca5f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ ze*OLR=$oVS@6WHiRJm)q8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5kc+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c29533ccf01f6806891a91f18f2568c163f12d6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^e?9u<==}ThD=$^6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`}}5E literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_ReferencedType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_ReferencedType.gif new file mode 100644 index 0000000000000000000000000000000000000000..0e24345d74a34e688b06a5762594926f93a9a4b7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTAuSee;oqvCR<)zA9)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giGRzdyh7Qsu7cYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9vEMtHG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_Type.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateChannelType_type_Type.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6388bf07a4199626e3b7a5f6fe60923c39415ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zeEt3P=$oVS@6WHiRJm)q8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0BLZDX?l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..33440bf55cc725c839c37e7d2c43698cf812fef2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3O?Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ce91c4366f6ff9a31c11bd0d962844cbe316c0c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXZ{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..42bfbe3c15dec4bb514e3a7052d1e08a2119d553 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bre6?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;gAz;D) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ffbd19e5e886491de46e0e731c6f73f10333d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R12fak02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXVHV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..2af4cd3edf1abbc3e85bcc778ff080098af6fce0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6bSc%(OE=22gz0bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru>GWWZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e471a09f814bcd8a812f1ebdef9f9c4b1469c11 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXZ{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..85afdbb7febfe644598bfefa0bb2e29f6e9085a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=6%wQb= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..79e1b2d13f64a325ecc0614059a05916cf0a8ec0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z|6EWK!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^`?1U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..42bfbe3c15dec4bb514e3a7052d1e08a2119d553 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bre6?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;gAz;D) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..07919a46dc259eec2fea94b7f3980d079d0860dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3KCUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..046b1b05c396a5ad459bcee495e9f4c8736fffd7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&Mx&Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc6993fa46e901d58c7b7dc6e01719b39a744456 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-YVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a80c2d8e75627d9f0bf78e3f28471817a40801f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GIDQ2FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&Mx&Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebb77932ee69c343f7f70624e88be894b7f9d66d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA0QI86d;K!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkJO=D;P literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0140163874ccc7630ef767ed2ad1ef53645555f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubYH(-wd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..42bfbe3c15dec4bb514e3a7052d1e08a2119d553 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bre6?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;gAz;D) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a30c785be8657ff059c450544216ea977b6c94e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689I50Eq43OdA;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^``%U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ddd2316b4efe6d3d04944cb0cbcc78f4dd15de16 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA0QI86d;K!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWl7kz>mM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ffbd19e5e886491de46e0e731c6f73f10333d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R12fak02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXVHV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e471a09f814bcd8a812f1ebdef9f9c4b1469c11 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXZ{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e471a09f814bcd8a812f1ebdef9f9c4b1469c11 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXZ{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..afa6bafdb656bd49ae039258345da177d181c78b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3TtUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a10c850374ede7cd0d26c2b8e21f6ec413add835 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zg2dC#K*V=VR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F(;z_cCkrEp zr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?# zB7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=O;c)PQ?{xi GgEat-tzZ-Y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9045d9740ef7674e313350fbf36fea619c590ca2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z|6EWK!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^``%U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..33f4da09f6ae3cf4e89a3dfd5ddefdd1200bbdeb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWl8S7XZn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a571571f3be4d2a6654e0c01f9a6f9471460f753 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#NgM&OpR>O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQkWVDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7dade8c41939a9ada0385e207d24042465204877 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6bSc%(OE=22gz0bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru=|W(R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc6993fa46e901d58c7b7dc6e01719b39a744456 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-YVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..03d63cb2d8d1840a6765fc6d7870cc38cd344f23 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R12fak02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQohVDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdb5a6733519dbb6073b50668fd52b155b307dbd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>x*-#CJ_s1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq;AVBda3nPf7 z10q0nGO)%dDDA99YNmER{Un)7%IZ$Kv@)PVL zeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7TQ)**VwyGk7 FH2}3BU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9045d9740ef7674e313350fbf36fea619c590ca2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z|6EWK!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^``%U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..33440bf55cc725c839c37e7d2c43698cf812fef2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3O?Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ce91c4366f6ff9a31c11bd0d962844cbe316c0c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXZ{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..42bfbe3c15dec4bb514e3a7052d1e08a2119d553 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bre6?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;gAz;D) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ffbd19e5e886491de46e0e731c6f73f10333d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R12fak02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXVHV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..2af4cd3edf1abbc3e85bcc778ff080098af6fce0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6bSc%(OE=22gz0bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru>GWWZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e471a09f814bcd8a812f1ebdef9f9c4b1469c11 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXZ{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..85afdbb7febfe644598bfefa0bb2e29f6e9085a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=6%wQb= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..79e1b2d13f64a325ecc0614059a05916cf0a8ec0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z|6EWK!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^`?1U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..42bfbe3c15dec4bb514e3a7052d1e08a2119d553 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bre6?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;gAz;D) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..07919a46dc259eec2fea94b7f3980d079d0860dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3KCUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..046b1b05c396a5ad459bcee495e9f4c8736fffd7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&Mx&Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc6993fa46e901d58c7b7dc6e01719b39a744456 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-YVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a80c2d8e75627d9f0bf78e3f28471817a40801f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GIDQ2FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&Mx&Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebb77932ee69c343f7f70624e88be894b7f9d66d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA0QI86d;K!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkJO=D;P literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0140163874ccc7630ef767ed2ad1ef53645555f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubYH(-wd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..42bfbe3c15dec4bb514e3a7052d1e08a2119d553 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bre6?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;gAz;D) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a30c785be8657ff059c450544216ea977b6c94e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689I50Eq43OdA;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^``%U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ddd2316b4efe6d3d04944cb0cbcc78f4dd15de16 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA0QI86d;K!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWl7kz>mM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ffbd19e5e886491de46e0e731c6f73f10333d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R12fak02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXVHV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e471a09f814bcd8a812f1ebdef9f9c4b1469c11 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXZ{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e471a09f814bcd8a812f1ebdef9f9c4b1469c11 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXZ{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..afa6bafdb656bd49ae039258345da177d181c78b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3TtUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a10c850374ede7cd0d26c2b8e21f6ec413add835 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zg2dC#K*V=VR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F(;z_cCkrEp zr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?# zB7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=O;c)PQ?{xi GgEat-tzZ-Y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9045d9740ef7674e313350fbf36fea619c590ca2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z|6EWK!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^``%U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..33f4da09f6ae3cf4e89a3dfd5ddefdd1200bbdeb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWl8S7XZn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a571571f3be4d2a6654e0c01f9a6f9471460f753 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#NgM&OpR>O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQkWVDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7dade8c41939a9ada0385e207d24042465204877 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6bSc%(OE=22gz0bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru=|W(R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc6993fa46e901d58c7b7dc6e01719b39a744456 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-YVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..03d63cb2d8d1840a6765fc6d7870cc38cd344f23 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R12fak02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQohVDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdb5a6733519dbb6073b50668fd52b155b307dbd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>x*-#CJ_s1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq;AVBda3nPf7 z10q0nGO)%dDDA99YNmER{Un)7%IZ$Kv@)PVL zeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7TQ)**VwyGk7 FH2}3BU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonEqual_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9045d9740ef7674e313350fbf36fea619c590ca2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z|6EWK!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^``%U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf79eff6d9297da9fed58d5783115da4b0470230 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO54h;t!92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaukhF=r_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..11bcd0b81bd42d3eec40270f7cf099b21745bb8f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+1sf`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..79adbf5eb3edbe9c062eb70e3b5f7ab098b62f1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b5P^aKORAVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{|1wV9Nji literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc0908232bacb714f6e34e29a33cd895d4bebd93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19RrgacDT;;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>LuwbYF literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6678f806946a78b5bda02d4f339724d4fd792d8c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6aeZL&E`}_^#<{K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1A&V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..791d85c3da71a6668bdd16153d66ee6d20d68e8a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$Udnd8uK04Tm|x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=5^k5wT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..0be9b536eea7e6458e0434c7f3d6e77fd06950ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..c31e7a2bca96a72adbfc36bbcfb3e5ef83866ace GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?xcZEVU`Rb;RR E0GfGVCIA2c literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9adee75ff3bbc2ba8c103bd4696c6e848c47514 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z??aA92yQdI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIepB0{|1wV9Nji literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..2dd2a40235888f350e563bbb03b8c5bf29f124c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO54h;t!92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaui@?R7H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cd8911d56a0f52a97021644bf3529931d5d4ee8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsmIf08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru>Z@Rn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9771af8209a0f7a2c2e326f05601e713073f767 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_jzhx%2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_B0{|1wV9Nji literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1376267cc66b397e3317cc97936f85bb0248739d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|#{nqn;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O$me4Y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cd8911d56a0f52a97021644bf3529931d5d4ee8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsmIf08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru>Z@Rn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..b665bc8c37fab4fc32019e3b1905265dc7e1c9f9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIgHDBHU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe10b8e7be48682bff854c1ea3c88372d2107ac0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yISvg692^{WO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>LuwbYF literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..0be9b536eea7e6458e0434c7f3d6e77fd06950ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1376267cc66b397e3317cc97936f85bb0248739d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|#{nqn;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e449c6284a9087b2efbc2774bdbd1c9999bec84 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO54h;t!92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaum8ebFu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e292d2a97334eff311ee590a9e290968589a23a6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$Udnd8uK04Tm|x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=6T3{Uj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..44d35f2c078c10c9288ceba57ee701f79540069f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aA92yQdI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIgHDBHU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2bcab8a03614b63044472de612bc36f82074150b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$Um4mOV*ROub(! zIny~%WA^eB>>_$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZ`fnVwX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..614b70edf3db00a46a2c8cab615682be2d46c9da GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsmIf08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru0@`4& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cd8911d56a0f52a97021644bf3529931d5d4ee8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsmIf08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru>Z@Rn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cd8911d56a0f52a97021644bf3529931d5d4ee8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsmIf08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru>Z@Rn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..11bcd0b81bd42d3eec40270f7cf099b21745bb8f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+1sf`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;~D`5Ko literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c1f6bdf87ace86afc86bb6d3026518fe161dd8cc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6aeZL&E`}_^#<{K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_18wV3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcbb6405902ee778c70618c569442e794a8f1691 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|$D!eXgM-7a>1sf`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR<0ieUQy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..78b83636c6dcdab887003498aba682ae71f1347d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$Udnd8uK04Tm|x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=i&0tUf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..44d35f2c078c10c9288ceba57ee701f79540069f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aA92yQdI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIgHDBHU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf79eff6d9297da9fed58d5783115da4b0470230 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO54h;t!92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaukhF=r_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..11bcd0b81bd42d3eec40270f7cf099b21745bb8f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+1sf`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..79adbf5eb3edbe9c062eb70e3b5f7ab098b62f1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b5P^aKORAVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{|1wV9Nji literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc0908232bacb714f6e34e29a33cd895d4bebd93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19RrgacDT;;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>LuwbYF literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6678f806946a78b5bda02d4f339724d4fd792d8c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6aeZL&E`}_^#<{K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1A&V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..791d85c3da71a6668bdd16153d66ee6d20d68e8a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$Udnd8uK04Tm|x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=5^k5wT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..0be9b536eea7e6458e0434c7f3d6e77fd06950ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..c31e7a2bca96a72adbfc36bbcfb3e5ef83866ace GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?xcZEVU`Rb;RR E0GfGVCIA2c literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9adee75ff3bbc2ba8c103bd4696c6e848c47514 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z??aA92yQdI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIepB0{|1wV9Nji literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..2dd2a40235888f350e563bbb03b8c5bf29f124c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO54h;t!92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaui@?R7H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cd8911d56a0f52a97021644bf3529931d5d4ee8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsmIf08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru>Z@Rn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9771af8209a0f7a2c2e326f05601e713073f767 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_jzhx%2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_B0{|1wV9Nji literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1376267cc66b397e3317cc97936f85bb0248739d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|#{nqn;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O$me4Y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cd8911d56a0f52a97021644bf3529931d5d4ee8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsmIf08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru>Z@Rn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..b665bc8c37fab4fc32019e3b1905265dc7e1c9f9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIgHDBHU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe10b8e7be48682bff854c1ea3c88372d2107ac0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yISvg692^{WO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>LuwbYF literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..0be9b536eea7e6458e0434c7f3d6e77fd06950ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1376267cc66b397e3317cc97936f85bb0248739d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|#{nqn;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e449c6284a9087b2efbc2774bdbd1c9999bec84 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO54h;t!92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaum8ebFu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e292d2a97334eff311ee590a9e290968589a23a6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$Udnd8uK04Tm|x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=6T3{Uj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..44d35f2c078c10c9288ceba57ee701f79540069f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aA92yQdI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIgHDBHU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2bcab8a03614b63044472de612bc36f82074150b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$Um4mOV*ROub(! zIny~%WA^eB>>_$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZ`fnVwX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..614b70edf3db00a46a2c8cab615682be2d46c9da GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsmIf08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru0@`4& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cd8911d56a0f52a97021644bf3529931d5d4ee8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsmIf08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru>Z@Rn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cd8911d56a0f52a97021644bf3529931d5d4ee8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsmIf08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru>Z@Rn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..11bcd0b81bd42d3eec40270f7cf099b21745bb8f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+1sf`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;~D`5Ko literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c1f6bdf87ace86afc86bb6d3026518fe161dd8cc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6aeZL&E`}_^#<{K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_18wV3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcbb6405902ee778c70618c569442e794a8f1691 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|$D!eXgM-7a>1sf`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR<0ieUQy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..78b83636c6dcdab887003498aba682ae71f1347d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$Udnd8uK04Tm|x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=i&0tUf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreaterEqual_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..44d35f2c078c10c9288ceba57ee701f79540069f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aA92yQdI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIgHDBHU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dac10e77328c20fcc1c7799b7479bf5ac44cc6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ca73bf37b945f8f611c536255703ec7421cb627 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW{yV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b033b9d17bec867a04fbef0481c6e0bbd76f9000 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>B6kwsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..26345fdc848e94df877dcfbde51fdb538c817f96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..582e5bbcceda00d40eca8e130b154f476ce72c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tt{n?Lw#ITzn@-!V>1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW|d>} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7186b71a1d2358d52b247d5014402917be2e0bd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#&l(vEXBCEZ4N@wC$R%21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxyVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{ZnlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83dd4cb5be1e809acef0718933cf68869a95d61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b84f5fc5edad940a0caaa376b331d70ba994e132 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oui0c) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8db9bb002c804e55dcdbbe90cb8be2db785e379a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2639c9c9d27c80ee2a93a8915baaa4df0fcdec1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW|@V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2914f06dbd3f4343bbb479d879b990307f11d414 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou%BdB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..644241290572ac1a1195288e03978840f5207c63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuQgpe7JO`t<(f8~wq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_w1VKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaP#$kN` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Zy7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRC1HI4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8713703c7cae92c88f25fe26087045f5127178b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPM=VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dac10e77328c20fcc1c7799b7479bf5ac44cc6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ca73bf37b945f8f611c536255703ec7421cb627 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW{yV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b033b9d17bec867a04fbef0481c6e0bbd76f9000 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>B6kwsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..26345fdc848e94df877dcfbde51fdb538c817f96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..582e5bbcceda00d40eca8e130b154f476ce72c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tt{n?Lw#ITzn@-!V>1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW|d>} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7186b71a1d2358d52b247d5014402917be2e0bd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#&l(vEXBCEZ4N@wC$R%21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxyVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{ZnlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83dd4cb5be1e809acef0718933cf68869a95d61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b84f5fc5edad940a0caaa376b331d70ba994e132 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oui0c) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8db9bb002c804e55dcdbbe90cb8be2db785e379a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2639c9c9d27c80ee2a93a8915baaa4df0fcdec1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW|@V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2914f06dbd3f4343bbb479d879b990307f11d414 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou%BdB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..644241290572ac1a1195288e03978840f5207c63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuQgpe7JO`t<(f8~wq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_w1VKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaP#$kN` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Zy7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRC1HI4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8713703c7cae92c88f25fe26087045f5127178b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPM=VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonGreater_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e7b42fac3728c7e5381ce574debd02677775a20 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQq7U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c2235ab275bedac8c4eb6801f5b8a70a63f83b6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkjjbcv# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..decea7bad6ac8e698fff47e25f89cf30eb9ce1a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OFSVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1370956a88c5d836c8f0d82e431b296783257cc4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kYPM?=C0{#K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`)pVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..78e35c70ee2dd44810c9363a1a894af25efa0c70 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR>Q!eGJx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..01c271236da5e9c429d23a2c3bc5afa4c9b64e13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?B0{{e8V9Nji literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..355b14013fa8083d85913b926cefc96632b7cbab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}+RV1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f42e7e758c5904edcb96d392a7f2ba8a75b199b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQlSU%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..c382aa6ed049489606e4cee7fbb0edcc000b68d3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v=9ybLOt;YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9ASYrPG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8b8f87ce358919c1024d16bb085e515f63e7706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-eOMx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..c382aa6ed049489606e4cee7fbb0edcc000b68d3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v=9ybLOt;YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9ASYrPG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b18d4243bf2fb17ac10d6cf304975dc40464237 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIY5T-%$d8Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR3$Yd4( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b806b6dcf6cd017d188e02867f46ffa24d1fc980 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l}$@Idj)^H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWl9!C^fB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ef55d20e042c2fe1af8c0df39a9d43d8a4086e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-C|Dw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7dcab430b73befb8e8fba12e4b483c2b2d3207f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689I520<93aDZ=FDBw)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08=#ACAn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..78cd3d75314740645c1cc70c3e32beb151c0980c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..60a381877ef3b71359671426a7e53f65956f1db1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIY5T-%$d8Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR@3}kr# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..decea7bad6ac8e698fff47e25f89cf30eb9ce1a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OFSVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ef55d20e042c2fe1af8c0df39a9d43d8a4086e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-C|Dw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..75d8cae4d333c95985ae17a3f8c40a5d3595456e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQu-U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1f6c556f8aeade1bfbfee681e0a5eba0247b19a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR>RC}6?> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a9f5b6928b2456bf9f6fc47ae2535889b5c0e62 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b5f0b5bbbfa64971ff93fa90727dadb22b3955b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR@(qwr6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..00edc85b95e8ddff91086e2565f95c81b4403e4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFftXU^O;T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubGPhgJ# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d6deb4e8bb54a14b9b7a894b044db6b542c5411 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruY^Y&W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c2235ab275bedac8c4eb6801f5b8a70a63f83b6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkjjbcv# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5f41eacb8f9a205a5219576d2f36e6fc2321342 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QaTVW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..373052d301a78075876fe67b40aa9ce82057c9a8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kYPM?=C0{#K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`&hVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8b8f87ce358919c1024d16bb085e515f63e7706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-eOMx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d1b6d68c5bf556493cf80c85cad27de004c7643 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QeeVW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa715663b5e8463fe21b4b3aa3bcd8a9f69d7ace GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;$s$lg1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a9f5b6928b2456bf9f6fc47ae2535889b5c0e62 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e7b42fac3728c7e5381ce574debd02677775a20 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQq7U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c2235ab275bedac8c4eb6801f5b8a70a63f83b6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkjjbcv# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..decea7bad6ac8e698fff47e25f89cf30eb9ce1a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OFSVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1370956a88c5d836c8f0d82e431b296783257cc4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kYPM?=C0{#K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`)pVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..78e35c70ee2dd44810c9363a1a894af25efa0c70 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR>Q!eGJx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..01c271236da5e9c429d23a2c3bc5afa4c9b64e13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?B0{{e8V9Nji literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..355b14013fa8083d85913b926cefc96632b7cbab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}+RV1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f42e7e758c5904edcb96d392a7f2ba8a75b199b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQlSU%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..c382aa6ed049489606e4cee7fbb0edcc000b68d3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v=9ybLOt;YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9ASYrPG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8b8f87ce358919c1024d16bb085e515f63e7706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-eOMx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..c382aa6ed049489606e4cee7fbb0edcc000b68d3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v=9ybLOt;YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9ASYrPG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b18d4243bf2fb17ac10d6cf304975dc40464237 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIY5T-%$d8Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR3$Yd4( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b806b6dcf6cd017d188e02867f46ffa24d1fc980 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l}$@Idj)^H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWl9!C^fB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ef55d20e042c2fe1af8c0df39a9d43d8a4086e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-C|Dw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7dcab430b73befb8e8fba12e4b483c2b2d3207f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689I520<93aDZ=FDBw)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08=#ACAn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..78cd3d75314740645c1cc70c3e32beb151c0980c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..60a381877ef3b71359671426a7e53f65956f1db1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIY5T-%$d8Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR@3}kr# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..decea7bad6ac8e698fff47e25f89cf30eb9ce1a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OFSVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ef55d20e042c2fe1af8c0df39a9d43d8a4086e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-C|Dw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..75d8cae4d333c95985ae17a3f8c40a5d3595456e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQu-U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1f6c556f8aeade1bfbfee681e0a5eba0247b19a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR>RC}6?> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a9f5b6928b2456bf9f6fc47ae2535889b5c0e62 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b5f0b5bbbfa64971ff93fa90727dadb22b3955b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR@(qwr6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..00edc85b95e8ddff91086e2565f95c81b4403e4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFftXU^O;T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubGPhgJ# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d6deb4e8bb54a14b9b7a894b044db6b542c5411 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruY^Y&W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c2235ab275bedac8c4eb6801f5b8a70a63f83b6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkjjbcv# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5f41eacb8f9a205a5219576d2f36e6fc2321342 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QaTVW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..373052d301a78075876fe67b40aa9ce82057c9a8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kYPM?=C0{#K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`&hVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8b8f87ce358919c1024d16bb085e515f63e7706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-eOMx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d1b6d68c5bf556493cf80c85cad27de004c7643 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QeeVW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa715663b5e8463fe21b4b3aa3bcd8a9f69d7ace GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;$s$lg1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesserEqual_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a9f5b6928b2456bf9f6fc47ae2535889b5c0e62 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d6ebc8241a6f5dc80fac47db4c959a479ada0c9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG^}a5))RcJ*m6yzPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8_ZeGj) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e75c32f5b8cb739ec2b8589d44d5e32ea89b7a29 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPm|YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..edd1d322b1d9bf60407a0c5916271e7cc15165ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zcTLl^p5SA}mTMw)+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~qKV1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..113f7a44f3e6614fd99faa645042ebfdf70d41b3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zpYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaugm|$Q4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..98e9acdecb67a78ef2baab8e11f46f2770a3d3ca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua>iC|9v literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b8968fd3aa38ebbad455cd46ac960bd42aef448 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zu4%f~6MU@La!sU8+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{8)U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..96837ab1f63c383dc6998ad6a5ee07a74736eed9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4b2d24d6fc2677b73de7a8a080a882559f1524e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?a^{et_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIlVPD<= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a06919132fcb4e2c61ab294e481c90e19b7a299 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXh0U&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~qKV1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbf69c454fb8cee8f6c92441cf6e14332529debe GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG^}a5))RcJ*m6yzPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8@+Fr~6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2d746f67b66257055a87fb7f4062f02205f8820 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zUDI@}C-_*g<(f#Hwq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;ea$*ty literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..33a4341fb727270b4f7759446d015b5d578d7c13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO>0x33 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9df58ca4d62febc28a4741abbf768afdee88712 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gn9WuJr^TE4Ew{snfP=x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;ea$*ty literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c6d3a00ffa636f9b3c007fcbf7a7833f366b955 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&HPfy4DkXtk`l*q)ywe>1sf z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UVb^U{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..edd1d322b1d9bf60407a0c5916271e7cc15165ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zcTLl^p5SA}mTMw)+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~qKV1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca891bc6966da97b661eca9d61bf349573e1613d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO=wV_2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ff152568d600b9deef8567ac87e2f7ae25a6a96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XDF#UF!)xR&2Q@Qm1X#bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrumd|3w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2d746f67b66257055a87fb7f4062f02205f8820 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zUDI@}C-_*g<(f#Hwq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<9bc9J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c575cb55287bba649c4575143813501f4f870f89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&HPfy4DkXtk`l*q)ywe>1sfYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaugm|$Q4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96837ab1f63c383dc6998ad6a5ee07a74736eed9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca891bc6966da97b661eca9d61bf349573e1613d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO=wV_2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..96837ab1f63c383dc6998ad6a5ee07a74736eed9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..acadf38bd0af0854aad4f2567fe44c88befcf967 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG^}a5))RcJ*m6yzPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8{0$$7j literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ac0e01b5150116d9496cda96c11f29f19d001a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zu4%f~6MU@La!sU8+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{A0U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0643d859aabe7afee0c01690e145fabaebc61eee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXjs#9tta?cvE`abowi-m)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<9bc9J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..24bda01ac6c1129ed2298e811c6e357be9db4de9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$1sfB0{}Z|U!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f44e117a6b7f5bbb111ae79fbb778fdd1eeba78 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zUDI@}C-_*g<(f#Hwq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPm|YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasK6JWCd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..27cf4fd3517293c3a0ed510d5cf2bac0e9c9f7f8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=*I-Wo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..33a4341fb727270b4f7759446d015b5d578d7c13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO>0x33 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6257c64aaf918f00384f292635565df5067b20d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zpYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasLa$vIn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..16070ea4e75f824aba14aa87c681b0ebc66bc120 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zu4%f~6MU@La!sU8+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|e)U3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<9bc9J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d6ebc8241a6f5dc80fac47db4c959a479ada0c9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG^}a5))RcJ*m6yzPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8_ZeGj) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e75c32f5b8cb739ec2b8589d44d5e32ea89b7a29 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPm|YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..edd1d322b1d9bf60407a0c5916271e7cc15165ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zcTLl^p5SA}mTMw)+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~qKV1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..113f7a44f3e6614fd99faa645042ebfdf70d41b3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zpYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaugm|$Q4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..98e9acdecb67a78ef2baab8e11f46f2770a3d3ca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua>iC|9v literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b8968fd3aa38ebbad455cd46ac960bd42aef448 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zu4%f~6MU@La!sU8+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{8)U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..96837ab1f63c383dc6998ad6a5ee07a74736eed9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4b2d24d6fc2677b73de7a8a080a882559f1524e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?a^{et_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIlVPD<= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a06919132fcb4e2c61ab294e481c90e19b7a299 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXh0U&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~qKV1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbf69c454fb8cee8f6c92441cf6e14332529debe GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG^}a5))RcJ*m6yzPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8@+Fr~6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2d746f67b66257055a87fb7f4062f02205f8820 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zUDI@}C-_*g<(f#Hwq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;ea$*ty literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..33a4341fb727270b4f7759446d015b5d578d7c13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO>0x33 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9df58ca4d62febc28a4741abbf768afdee88712 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gn9WuJr^TE4Ew{snfP=x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;ea$*ty literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c6d3a00ffa636f9b3c007fcbf7a7833f366b955 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&HPfy4DkXtk`l*q)ywe>1sf z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UVb^U{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..edd1d322b1d9bf60407a0c5916271e7cc15165ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zcTLl^p5SA}mTMw)+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~qKV1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca891bc6966da97b661eca9d61bf349573e1613d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO=wV_2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ff152568d600b9deef8567ac87e2f7ae25a6a96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XDF#UF!)xR&2Q@Qm1X#bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrumd|3w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2d746f67b66257055a87fb7f4062f02205f8820 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zUDI@}C-_*g<(f#Hwq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<9bc9J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c575cb55287bba649c4575143813501f4f870f89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&HPfy4DkXtk`l*q)ywe>1sfYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaugm|$Q4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96837ab1f63c383dc6998ad6a5ee07a74736eed9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca891bc6966da97b661eca9d61bf349573e1613d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO=wV_2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..96837ab1f63c383dc6998ad6a5ee07a74736eed9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..acadf38bd0af0854aad4f2567fe44c88befcf967 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG^}a5))RcJ*m6yzPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8{0$$7j literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ac0e01b5150116d9496cda96c11f29f19d001a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zu4%f~6MU@La!sU8+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{A0U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0643d859aabe7afee0c01690e145fabaebc61eee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXjs#9tta?cvE`abowi-m)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<9bc9J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..24bda01ac6c1129ed2298e811c6e357be9db4de9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$1sfB0{}Z|U!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f44e117a6b7f5bbb111ae79fbb778fdd1eeba78 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zUDI@}C-_*g<(f#Hwq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPm|YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasK6JWCd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..27cf4fd3517293c3a0ed510d5cf2bac0e9c9f7f8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=*I-Wo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..33a4341fb727270b4f7759446d015b5d578d7c13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4mw*Ls4F6$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO>0x33 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6257c64aaf918f00384f292635565df5067b20d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zpYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasLa$vIn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonLesser_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..16070ea4e75f824aba14aa87c681b0ebc66bc120 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zu4%f~6MU@La!sU8+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|e)U3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<9bc9J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..c18e273c28f23fd9f3a73a4b52314389114a7d15 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG&D6`3l2VJX}Ly6r)}4CH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOzFqM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHX=wO%t literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0210704f77bc1ab940800a083b471467fe32490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c448f2d6e15b8cff8d1d6caeb7de0783f5bb7084 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx2fq`aPTop%QZSWZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US1OU%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0bed64eef0909ba523cd80c467dad819cfa3cda GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp`oeiT5#|&OUpGnI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQS=wFrq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..22bd4d1738e281260cd69f0ad88c85039bc64ff6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SH}*B0|49|Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0210704f77bc1ab940800a083b471467fe32490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..0fae0b12c2aff0ff25a5c36063a4f6a3cd2b2a2f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?RDblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau+qF)pM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..ff11711c0ae968d1accc4ffcd91e59d6d669535d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlQD>794!c(sGTCPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9B%3jO> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..c448f2d6e15b8cff8d1d6caeb7de0783f5bb7084 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx2fq`aPTop%QZSWZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US1OU%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_bSUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8daccd8af27cf250d9688c627570e84ccf73924 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm3A*MftOSz4~q(P`T?T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaKvtdX8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd919f9b107737934769c4054e2731dd5f0097eb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIbfIo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8daccd8af27cf250d9688c627570e84ccf73924 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm3A*MftOSz4~q(P`T?T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaKvtdX8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..51bab8f637e7c0d859a5ac69d31a30b595f5087f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruTO(p$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d9a8b0c656032be2f7e6c9e90aed25b7848c8205 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z+thR|IQW>Q1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~ z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US1OU%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0131b567575594c4c7503c17944aa883ca4b6e6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..542f33aab83f3a0c3364c6444544704363e0c266 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6Kt_24lv$R~Jqtmu)x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;jA7T6e literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0dbd48f304fd1377f202ce11f4b029d965fe185 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_bSUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d1f9adc07271d5b68acf8452a552891f4ae5810 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM794!c(sGTCPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9DUS7-q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e03542c865bc06f8a72d6d83f9319e6943b21e24 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruq-SEn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0bed64eef0909ba523cd80c467dad819cfa3cda GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp`oeiT5#|&OUpGnI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQS=wFrq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0210704f77bc1ab940800a083b471467fe32490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..0131b567575594c4c7503c17944aa883ca4b6e6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0210704f77bc1ab940800a083b471467fe32490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..81f5389f36dbc5d83d8dfce1d122e33ab4991f0c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&D6`3l2VJX}Ly6r)}4CH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkQQeFZ8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..debadf00c3c245e10503821ae40217709c400728 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zHZ@%f4nAgSxkg8)ZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4BEUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..889a6ddb258f18eafa42e2606c3513a93c4351be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlQD>794!c(sGTCPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9DUS7-q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a75fd205d20c1ce23b7db36c868cd392bb6d9446 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^`O~U!4E| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0dbd48f304fd1377f202ce11f4b029d965fe185 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_bSUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0dbd48f304fd1377f202ce11f4b029d965fe185 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_bSUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..258ef9873e783db6531fce214069104538e2221e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHX=wO%t literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3c089243b1cc9cd85db5782cca040a94e69d40f6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp`oeiT5#|&OUpGnI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR7RA1=; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6b00e67503769fc50bf87973408ab2a44241137d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SH}CtrmC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd919f9b107737934769c4054e2731dd5f0097eb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIbfIo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c525027841fe79d3baaa9e6a4ff3a5ed1abf57a3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`oeiT5#|&OUpGnI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR8vtQ`| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4a2fd2eb8e8997364714b2a82e75af3707550cd6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHZ@%f4nAgSxkg8)ZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{{aBUp@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..889a6ddb258f18eafa42e2606c3513a93c4351be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlQD>794!c(sGTCPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9DUS7-q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..c18e273c28f23fd9f3a73a4b52314389114a7d15 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG&D6`3l2VJX}Ly6r)}4CH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOzFqM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHX=wO%t literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0210704f77bc1ab940800a083b471467fe32490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c448f2d6e15b8cff8d1d6caeb7de0783f5bb7084 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx2fq`aPTop%QZSWZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US1OU%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0bed64eef0909ba523cd80c467dad819cfa3cda GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp`oeiT5#|&OUpGnI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQS=wFrq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..22bd4d1738e281260cd69f0ad88c85039bc64ff6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SH}*B0|49|Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0210704f77bc1ab940800a083b471467fe32490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..0fae0b12c2aff0ff25a5c36063a4f6a3cd2b2a2f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?RDblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau+qF)pM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..ff11711c0ae968d1accc4ffcd91e59d6d669535d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlQD>794!c(sGTCPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9B%3jO> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..c448f2d6e15b8cff8d1d6caeb7de0783f5bb7084 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx2fq`aPTop%QZSWZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US1OU%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_bSUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8daccd8af27cf250d9688c627570e84ccf73924 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm3A*MftOSz4~q(P`T?T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaKvtdX8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd919f9b107737934769c4054e2731dd5f0097eb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIbfIo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8daccd8af27cf250d9688c627570e84ccf73924 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm3A*MftOSz4~q(P`T?T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaKvtdX8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..51bab8f637e7c0d859a5ac69d31a30b595f5087f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruTO(p$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d9a8b0c656032be2f7e6c9e90aed25b7848c8205 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z+thR|IQW>Q1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~ z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48US1OU%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0131b567575594c4c7503c17944aa883ca4b6e6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..542f33aab83f3a0c3364c6444544704363e0c266 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6Kt_24lv$R~Jqtmu)x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;jA7T6e literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0dbd48f304fd1377f202ce11f4b029d965fe185 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_bSUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d1f9adc07271d5b68acf8452a552891f4ae5810 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM794!c(sGTCPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9DUS7-q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e03542c865bc06f8a72d6d83f9319e6943b21e24 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruq-SEn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0bed64eef0909ba523cd80c467dad819cfa3cda GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp`oeiT5#|&OUpGnI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQS=wFrq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0210704f77bc1ab940800a083b471467fe32490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..0131b567575594c4c7503c17944aa883ca4b6e6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0210704f77bc1ab940800a083b471467fe32490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQUd|#FT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..81f5389f36dbc5d83d8dfce1d122e33ab4991f0c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&D6`3l2VJX}Ly6r)}4CH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkQQeFZ8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..debadf00c3c245e10503821ae40217709c400728 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zHZ@%f4nAgSxkg8)ZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4BEUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..889a6ddb258f18eafa42e2606c3513a93c4351be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlQD>794!c(sGTCPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9DUS7-q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a75fd205d20c1ce23b7db36c868cd392bb6d9446 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^`O~U!4E| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0dbd48f304fd1377f202ce11f4b029d965fe185 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_bSUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0dbd48f304fd1377f202ce11f4b029d965fe185 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_bSUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..258ef9873e783db6531fce214069104538e2221e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHX=wO%t literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3c089243b1cc9cd85db5782cca040a94e69d40f6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp`oeiT5#|&OUpGnI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR7RA1=; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6b00e67503769fc50bf87973408ab2a44241137d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SH}CtrmC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd919f9b107737934769c4054e2731dd5f0097eb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIbfIo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c525027841fe79d3baaa9e6a4ff3a5ed1abf57a3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`oeiT5#|&OUpGnI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR8vtQ`| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4a2fd2eb8e8997364714b2a82e75af3707550cd6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHZ@%f4nAgSxkg8)ZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{{aBUp@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComparisonNotEqual_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..889a6ddb258f18eafa42e2606c3513a93c4351be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlQD>794!c(sGTCPTQ{OYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9DUS7-q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_body_Composition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_body_Composition.gif new file mode 100644 index 0000000000000000000000000000000000000000..52c578c8c0b592443095ccb98dc95b5acca8b12d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEs_S=+QUx=ijfay!8Kn{QP+P|M%@1 z8XCU-{&DopjrsTYS6*7SYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n@Wp0X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_localPorts_LocalPortsDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_localPorts_LocalPortsDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..561bc08cff3b17cf9f9c6445784498956f2013c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gmv^|2X>Q#{B#HD=#hEHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_ports_PortsDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_ports_PortsDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cdecb1607bb46e28996cc5ec1fd97b18e022be0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_C>8X>ZF?$gO1vLZx;)JpoZBm5JK( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..2230e4556d64ca65d160350d213888c143fce213 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBKKqS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..968035a2b88ed0266f20024e920153f5d60c38ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|NrsxMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A0-D9x; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a3d7b11cb142a7892b91046729fd636d71e104b4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=095Z)6<+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..27a63b5c44ab1a4c8bee5cdc221696ba70980bee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zeEt37=$jk!@9(d?v~1UOH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmW9b<6- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fd40f1869f2f0d10da7370d1156639ba136800a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z`}Oyaqi=4^zrVlo(z0FC)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=095Z)6<+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..55d7be5a9128f0d36af3f3cc3b8845552495c686 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}1sft$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n@=<14 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a52f706ce3c45ef529352b1ec3ba414051d035 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+==5r0%RuxYm9q!{Ee2H+qqh&U#90X Q=5r0%RuxYm9q!{Ee2H+qqh&U#90X Q=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_OnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_OnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9813e10fad3088afee0cc0457d1650e125c3266 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}Oyaqi=4^zrVlo(z0FC)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kpJY}5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..de48ec6202d66c29b7b51d9f444714367ab8ef44 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=;@%I1k+cz{c zeEt37=$jk!@9(d?v~1UOH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmW9b<6- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..27a63b5c44ab1a4c8bee5cdc221696ba70980bee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zeEt37=$jk!@9(d?v~1UOH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmW9b<6- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..7ea4283fe9477a8fd0eda0c5282f3d3219c5a0f6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG<^O2Um4mOV*ROub(! zIny~%WA^eB>>_tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OVlHGx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2585040a1a3f9d52b7cf7f11e2c607991f24bca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zX!!d3$I&-8=HK66d1=|M>1sfI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..12de541e7f51dbe972531c980d9fa8e567388362 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9$@MD$$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_UnlessStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_UnlessStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..2e9fe7e1ba3e59fbaa3fe93ad72b1f429e082ea5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTAA4lKZn16qN<)vl2rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OA!B3n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..e12e1fd3707816febe2092394ac043e072e17ce6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zq2cTAA4lKZn16qN<)vl2rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OV~u1+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_prelude_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f809a28cc7227bf020f4f5d0187bb1ce201458d5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&CTK@0zX#L|Z2*uj`Uu+9WlvQfy|4@V~$Bf#~n&^FZ|H`QqPqn}Mc5fZ|UUMi5H} zM1bsMV2x2w=u3&TQ)8HU_VAPoTPO85_f0DCH2!STb1i$4rkHxaRC1$ zwC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF)W)W4RYeAC E06N%ayZ`_I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_priorities_PriorityDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentDeclaration_priorities_PriorityDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..5e6c9c1b28bde83429e8552cc884794a5941d678 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z`}Oyaqi=4^zrVlo(z0FC)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lF=OKZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..6bdda3a99876093f1f932255cda26ec2dbde3dc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG&HTb7Tj~pvUrV7WZSOkYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8^q+ZMb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7884addd495ff8c64a9f05992c0b2c35ffa66b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO&S7Ez literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d6b7f5f135cc53415c84640fe81e11500d468bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zw`t9_;GSca#cOmT+jdP?1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~nYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauf&R}2w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb602a6157687473f4ed1eaf14a659b8a43193c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=zhF-Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..59c4adae079e982b2d51d81f354063921fa96ef3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{6aU)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0a1713d5daad6e3348320b4eecb90b0f9cc0dfa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIkmtWoh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..4583981b80f6ec9f238fbc659b91a589ebd1ff33 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlPn3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08+zh9OB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d6b7f5f135cc53415c84640fe81e11500d468bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zw`t9_;GSca#cOmT+jdP?1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~nMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8@5MImx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..b64344705496297fb7de2335e329ce834ce9b1c3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..34d83037854af10f5eefe253edc28a2090dd36f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm3et_AlTvn*bt6WO+Fx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;dsA3WT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d35ecbc594eb15d278c9188512f8015bce85903 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOA7Nqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..34d83037854af10f5eefe253edc28a2090dd36f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm3et_AlTvn*bt6WO+Fx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;dsA3WT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d9d6929f50e8188a993c0ea4344755cc61d4413 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sf z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UVZkU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d6b7f5f135cc53415c84640fe81e11500d468bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zw`t9_;GSca#cOmT+jdP?1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~n$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO9${ht literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..62a12266859d325e0bdb7c50550f0fccfd22b953 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6`Tnp|wW?8&OC$eqVbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrumIY$Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b64344705496297fb7de2335e329ce834ce9b1c3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0468c112d117366c51992603b49de33b3c2cc66 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08;Q(u+< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..08d7d5221061a7dfe11b142270f8685878e8b04c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sfYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauf&R}2w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..eeca32a9bec88cf255731c63f1f5fb7dc8f774ea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO9${ht literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c59dd44ebe127b3ffb15778e0420656c7bcc598 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&HTb7Tj~pvUrV7WZSOkYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8`I9|*E literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..454398ffa0c5acfe2ebd17024a5217eea29406cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{7rU)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2255e98604375f14c9f922e2ce07e21bc0be710c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlPn3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08;Q(u+< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca7960758092b23157287c2926f63980860b1c22 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$1sfzyhbOoZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}XoU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..4375ccf689cccf0dc7a4a49ff524b6aa59f509a4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b64344705496297fb7de2335e329ce834ce9b1c3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7884addd495ff8c64a9f05992c0b2c35ffa66b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO&S7Ez literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d7a6e0f66544dbb89ebeb6469d435ca00dd2188 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp`mHbwcws(mc?syBHMONR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasJNno=8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f352d7156a7971feb9c2f7fc9ecbf2d98bee52a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=4PZ|I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d35ecbc594eb15d278c9188512f8015bce85903 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOA7Nqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..66eed056387130b4b9a1ac950f0b0962019b1864 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`mHbwcws(mc?syBHMONR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasKs9>`I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_parameters_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4df8fc516f7bf5a6f14a8f06727ccb8b8915a69a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|caU3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08;Q(u+< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..6bdda3a99876093f1f932255cda26ec2dbde3dc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG&HTb7Tj~pvUrV7WZSOkYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8^q+ZMb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7884addd495ff8c64a9f05992c0b2c35ffa66b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO&S7Ez literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d6b7f5f135cc53415c84640fe81e11500d468bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zw`t9_;GSca#cOmT+jdP?1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~nYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauf&R}2w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb602a6157687473f4ed1eaf14a659b8a43193c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=zhF-Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..59c4adae079e982b2d51d81f354063921fa96ef3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{6aU)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0a1713d5daad6e3348320b4eecb90b0f9cc0dfa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIkmtWoh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..4583981b80f6ec9f238fbc659b91a589ebd1ff33 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlPn3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08+zh9OB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d6b7f5f135cc53415c84640fe81e11500d468bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zw`t9_;GSca#cOmT+jdP?1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~nMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8@5MImx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..b64344705496297fb7de2335e329ce834ce9b1c3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..34d83037854af10f5eefe253edc28a2090dd36f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm3et_AlTvn*bt6WO+Fx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;dsA3WT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d35ecbc594eb15d278c9188512f8015bce85903 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOA7Nqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..34d83037854af10f5eefe253edc28a2090dd36f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm3et_AlTvn*bt6WO+Fx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;dsA3WT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d9d6929f50e8188a993c0ea4344755cc61d4413 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sf z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UVZkU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d6b7f5f135cc53415c84640fe81e11500d468bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zw`t9_;GSca#cOmT+jdP?1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~n$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO9${ht literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..62a12266859d325e0bdb7c50550f0fccfd22b953 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6`Tnp|wW?8&OC$eqVbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrumIY$Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b64344705496297fb7de2335e329ce834ce9b1c3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0468c112d117366c51992603b49de33b3c2cc66 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08;Q(u+< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..08d7d5221061a7dfe11b142270f8685878e8b04c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sfYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauf&R}2w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..eeca32a9bec88cf255731c63f1f5fb7dc8f774ea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO9${ht literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c59dd44ebe127b3ffb15778e0420656c7bcc598 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&HTb7Tj~pvUrV7WZSOkYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8`I9|*E literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..454398ffa0c5acfe2ebd17024a5217eea29406cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{7rU)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2255e98604375f14c9f922e2ce07e21bc0be710c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlPn3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08;Q(u+< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca7960758092b23157287c2926f63980860b1c22 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$1sfzyhbOoZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}XoU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..4375ccf689cccf0dc7a4a49ff524b6aa59f509a4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b64344705496297fb7de2335e329ce834ce9b1c3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7884addd495ff8c64a9f05992c0b2c35ffa66b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO&S7Ez literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d7a6e0f66544dbb89ebeb6469d435ca00dd2188 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp`mHbwcws(mc?syBHMONR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasJNno=8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f352d7156a7971feb9c2f7fc9ecbf2d98bee52a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=4PZ|I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d35ecbc594eb15d278c9188512f8015bce85903 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOA7Nqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..66eed056387130b4b9a1ac950f0b0962019b1864 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`mHbwcws(mc?syBHMONR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasKs9>`I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComponentInstance_ports_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4df8fc516f7bf5a6f14a8f06727ccb8b8915a69a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|caU3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08;Q(u+< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCompositeBlock_composition_Composition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateCompositeBlock_composition_Composition.gif new file mode 100644 index 0000000000000000000000000000000000000000..99a4283bbe78b326fcd1950e5f2d7eb03f6efb48 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEs_S=+QUx=ijfay!8Kn{QP+P|M%@1 z8X7L`d9kVI=FGG+4Gsr(O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`VD4T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComposition_blocks_CompositeBlock.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateComposition_blocks_CompositeBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..20b24c94f6b76cfdb614823223b4483af605b797 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6T-x(uQ_szrX=fT74*dTgKR@37|9$(0 zhK8?Se;+;iX8!#9m6exvO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_{#%cHI{8{I{*L2&yTnNf8V~L zq2cS--$#$WnLq!2W#y$^)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO52O1oJVApgtAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3j0UlafU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3408e141df3acd347555a1cd39dc39c05b7d9d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj- z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXu5V5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b61a66864fb7c788fbc0b04c86344306e7b0c7fd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b1S3!2t+%O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_ z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXpQV5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..28525dfe9c2e02c9d9f61cd810cf0b233051bd54 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6afEfd-(k!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1D(V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..517abc71fc31b8c73f46d78e074974c2ec1b2121 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnR5Un?67OP8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pc zSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@U zm!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5yJe literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..d56a04bddf1dea2014e520f41042568e2226198e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXu5V5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc9ca0a94820c0022c45884fac1e1180b220f9ab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?B0|1+OU?u<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{BAU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b61a66864fb7c788fbc0b04c86344306e7b0c7fd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b1S3!2t+%O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_B0|3eLUlafU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f0a0b2b5bda61f3ff66d5c2fdd9db36122c8c75 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv@$E*kRXnH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@ zvM_>JIv@gMCj)DYfrlb&nYlQhND`=ydIodY#y zFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+ KWvePOSOWm-t6+}+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..860276f4bbc86b28a21e481336d49a56df9c9b4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_&VdF8AlNls4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M_>Vp;$I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8eb45613da261b3206ce70b281d0003fe04fb19d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|=Rku45bT<+21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6hVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..860276f4bbc86b28a21e481336d49a56df9c9b4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_&VdF8AlNls4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M_>Vp;$I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..15849811ea967913ded6aa37f39326c8efbec633 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkP`eShb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a6d6b3def689de6a19bb781156ca4c495eb11ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lTri-~a@>rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O@8n>Z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b61a66864fb7c788fbc0b04c86344306e7b0c7fd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b1S3!2t+%O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6gVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..2146504282c7ca718111e1821c7e58d47608791d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689I520C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydIodY#y zFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+ KWvePOSOWm-t6+}+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..b68de5e26d9428e5a465918c0dab2e30d003f0cc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{F=U)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5fc9320ef7731caed334a70573523974be4fe561 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlEK4a7X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad157ff4a143ada78236552b28a1ac28fef9ab26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19RrgIndw$1iPlI0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXpQV5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..d56a04bddf1dea2014e520f41042568e2226198e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXu5V5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a308e534a38ad6bc21b6e3c786a0bd44d242290 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|=Rku45bT<+21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6gVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..d56a04bddf1dea2014e520f41042568e2226198e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXu5V5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..18a3c3f392430940b5790278107a84dd8b986909 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO52O1oJVApgtAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3n$UlafU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..327451149c2180bfb3d349e160dd69593534fd3b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnR5Un?67OP8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pc zSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@U zm!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5yJe literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9e96e9954d6d4bf70cf208a74232237b172f7d6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aA4m3Cb!LI3QK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{F=U)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f82670c55d5978738d2bee16a6ec9be7f615ed93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlF1Y^_y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..57fa1bbb6eb46818734c374c7dd090aaf9f254c2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%sBuOcGxvt4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B! zEQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w z%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd J*{X^R)&OpSU+Mq= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f8c2018a1c8f73a9321b5aab5c542bdb17ca0b2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv@$E*kRXnH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@ zvM_>JIv@gMCj)DYfrlb&nYlQhND`=ydIodY#y zFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+ KWvePOSOWk9+F-8$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f0a0b2b5bda61f3ff66d5c2fdd9db36122c8c75 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv@$E*kRXnH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@ zvM_>JIv@gMCj)DYfrlb&nYlQhND`=ydIodY#y zFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+ KWvePOSOWm-t6+}+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f0a0b2b5bda61f3ff66d5c2fdd9db36122c8c75 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv@$E*kRXnH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@ zvM_>JIv@gMCj)DYfrlb&nYlQhND`=ydIodY#y zFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+ KWvePOSOWm-t6+}+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3408e141df3acd347555a1cd39dc39c05b7d9d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj- z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ&fVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c200e691abd4deb48fdbbe790765c9a97d5e30a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6afEfd-(k!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1BxV3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8eb45613da261b3206ce70b281d0003fe04fb19d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|=Rku45bT<+21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6hVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ebcee0d966c0ef848cd406a1e731af638b17179 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19RrgIndw$1iPlI0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ+qVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_condition_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf50c763b2b7aaaf918b52f8aef3fe7f364e73e4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnR5Un?67OP8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pc zSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@U zm!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{F=U)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..26942d5f053606c9512d38f8d0925ea61dd426ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLjy$oKm$B0|0BeU*-S+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..57fa1bbb6eb46818734c374c7dd090aaf9f254c2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%sBuOcGxvt4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B! zEQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w z%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd J*{X^R)&OpSU+Mq= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..d56a04bddf1dea2014e520f41042568e2226198e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXu5V5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..4937a9c8b59d21e99eb3ddbf17046fdb2c147cca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|NrsxVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq;AVBda3nPf7 z10q0nGO)%dDDA99YNmER{Un)7%IZ$Kv@)PVL zeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7TQ)**VwyGk7 FH2};xU}gXS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed60866cc6d328d6a6a476bf2b0ebe87e867b4c4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK2(N4$PS|=Rku45bT<+21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH0QVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_CaseStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_CaseStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..3daea53959d1125f28a3891c89b438a110ada9e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z3lTri-~a@>rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O8p~kP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ef6854209fdf8ebf3bcbdf5c599345ab7eacf9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zAdByst_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJE Cd0-|0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3daea53959d1125f28a3891c89b438a110ada9e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z3lTri-~a@>rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O8p~kP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4565dfc944c556925009ee81478b8fbb4b04a3a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{BAU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..daf990a78b3f8cb1825bf07243a5c36dc2e456ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8X689I520C>8X>ZF?$gO1vLZx;)JpoZBm5;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1D(V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ed27624c11be000e64c53c3d5dcc1c0f3dadc5b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkO(PMD{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_LoopStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_LoopStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ed27624c11be000e64c53c3d5dcc1c0f3dadc5b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkO(PMD{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_NullStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_NullStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..ecde3358fa7e9e801735d79978e96e355b86d167 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlDcw^K6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_OnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_OnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..997e434522761bb0741f11f33b621c2db8f51096 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lTri-~a@>rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`OL;GP1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3408e141df3acd347555a1cd39dc39c05b7d9d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj-3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6hVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ReceiveStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ReceiveStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ef6854209fdf8ebf3bcbdf5c599345ab7eacf9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zAdByst_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJE Cd0-|0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ef6854209fdf8ebf3bcbdf5c599345ab7eacf9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zAdByst_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJE Cd0-|0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..18a3c3f392430940b5790278107a84dd8b986909 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO52O1oJVApgtAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3n$UlafU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc9ca0a94820c0022c45884fac1e1180b220f9ab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?B0|1+OU?u3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6hVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_Statement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_Statement.gif new file mode 100644 index 0000000000000000000000000000000000000000..159895b0ded6470aa67d2b056b19cf907f479b93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@wm6seG9RB~0pC51k|Gs@g zLjy$oKm$B0|3rkU}^vW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_StatementChoice.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_StatementChoice.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ebcee0d966c0ef848cd406a1e731af638b17179 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19RrgIndw$1iPlI0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ+qVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..64ea1744a2e94fb96cf6f4090fcba8595a964316 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zXgF}-z??aA4m3Cb!LI3QK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{ILU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a308e534a38ad6bc21b6e3c786a0bd44d242290 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|=Rku45bT<+21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6gVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ToStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_ToStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..eabf210dc76f23eb24d312ec6d4647d61cb4f52d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqO=KL7v6&yTnNf8QR+ zg@_+$Z~%f`)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV*&@>28{K>)y zV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXpQV5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..1afc3cec3c984a204151dc860e56c717f26f4d07 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zq2a)R19RrgIndw$1iPlI0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ=#VEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_else_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..8897aa89d948c5c38f57e9d05ca26136bd57b9d1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkPG-Gi9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_elseif_ExtendedConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_elseif_ExtendedConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..28525dfe9c2e02c9d9f61cd810cf0b233051bd54 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6afEfd-(k!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1D(V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..26942d5f053606c9512d38f8d0925ea61dd426ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLjy$oKm$B0|0BeU*-S+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..57fa1bbb6eb46818734c374c7dd090aaf9f254c2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%sBuOcGxvt4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B! zEQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w z%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd J*{X^R)&OpSU+Mq= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..d56a04bddf1dea2014e520f41042568e2226198e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXu5V5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..4937a9c8b59d21e99eb3ddbf17046fdb2c147cca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|NrsxVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq;AVBda3nPf7 z10q0nGO)%dDDA99YNmER{Un)7%IZ$Kv@)PVL zeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7TQ)**VwyGk7 FH2};xU}gXS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed60866cc6d328d6a6a476bf2b0ebe87e867b4c4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK2(N4$PS|=Rku45bT<+21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH0QVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_CaseStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_CaseStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..3daea53959d1125f28a3891c89b438a110ada9e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z3lTri-~a@>rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O8p~kP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ef6854209fdf8ebf3bcbdf5c599345ab7eacf9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zAdByst_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJE Cd0-|0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3daea53959d1125f28a3891c89b438a110ada9e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z3lTri-~a@>rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O8p~kP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4565dfc944c556925009ee81478b8fbb4b04a3a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{BAU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..daf990a78b3f8cb1825bf07243a5c36dc2e456ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8X689I520C>8X>ZF?$gO1vLZx;)JpoZBm5;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1D(V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ed27624c11be000e64c53c3d5dcc1c0f3dadc5b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkO(PMD{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_LoopStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_LoopStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ed27624c11be000e64c53c3d5dcc1c0f3dadc5b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkO(PMD{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_NullStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_NullStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..ecde3358fa7e9e801735d79978e96e355b86d167 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlDcw^K6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_OnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_OnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..997e434522761bb0741f11f33b621c2db8f51096 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lTri-~a@>rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`OL;GP1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3408e141df3acd347555a1cd39dc39c05b7d9d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj-3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6hVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ReceiveStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ReceiveStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ef6854209fdf8ebf3bcbdf5c599345ab7eacf9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zAdByst_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJE Cd0-|0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ef6854209fdf8ebf3bcbdf5c599345ab7eacf9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zAdByst_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJE Cd0-|0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..18a3c3f392430940b5790278107a84dd8b986909 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO52O1oJVApgtAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3n$UlafU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc9ca0a94820c0022c45884fac1e1180b220f9ab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?B0|1+OU?u3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6hVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_Statement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_Statement.gif new file mode 100644 index 0000000000000000000000000000000000000000..159895b0ded6470aa67d2b056b19cf907f479b93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@wm6seG9RB~0pC51k|Gs@g zLjy$oKm$B0|3rkU}^vW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_StatementChoice.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_StatementChoice.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ebcee0d966c0ef848cd406a1e731af638b17179 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19RrgIndw$1iPlI0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ+qVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..64ea1744a2e94fb96cf6f4090fcba8595a964316 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zXgF}-z??aA4m3Cb!LI3QK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{ILU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a308e534a38ad6bc21b6e3c786a0bd44d242290 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|=Rku45bT<+21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6gVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ToStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_ToStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..eabf210dc76f23eb24d312ec6d4647d61cb4f52d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqO=KL7v6&yTnNf8QR+ zg@_+$Z~%f`)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV*&@>28{K>)y zV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXpQV5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..1afc3cec3c984a204151dc860e56c717f26f4d07 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zq2a)R19RrgIndw$1iPlI0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ=#VEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditionalStatement_then_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..8897aa89d948c5c38f57e9d05ca26136bd57b9d1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkPG-Gi9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ede289a77ed9c1c6dcb44960c17b09e08ceaa81 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^VE_I3K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^K6Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc67848944b4718245ec02a24ec72471fbaa2ad3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ea8e02c5d3206af1769599c2b442bd2dbb3ebc8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bw2}{(KVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^;uVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..953143344d92df6a5e8a4adeb596c239c9c4cff7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6bSc{`>QR450X~>1sf$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW4G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1667bbeb6b9e4b34c37c51db5637b3d31c0bd819 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^FRUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1543d3c0c751be1de5e6e46f3602780fa1dba564 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9N2$C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K))ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1543d3c0c751be1de5e6e46f3602780fa1dba564 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9N2$C>8X>ZF?$gO1vLZx;)JpoZBm5WH>lD?3%6yL|Z2*uj`Uu+9WlvQfy|4@V~$Bf#~n&^FZ|H`QqPqn}Mc5 zfZ|UUMi5H}M1bsMV2x2w=u3&TQ)8HU_VAPoTPO85_f0DCH2!STb1i$4rkHxaRC1$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC09jOH+5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3d99584b3b6d4a352364d1bbde082a5c98e76b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l!gfe?E}m;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;{O<@55 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ea8e02c5d3206af1769599c2b442bd2dbb3ebc8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bw2}{(KY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K)(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdfcd34fd55768c0ba3facbd0635e3b020819f94 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689II#czd?3TY!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkLP-Axh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..69105600742fee2846d32493e8514342ea04f377 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%94m}ETw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ae660dc39a4da243a50fa4c760e677f8b174014 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R1N-mK2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^;uVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a87700f4c7cdeae66d88a9f69e203fe883a50f7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4(z`_AINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K)(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a3ab4a77c4dd1f455e800db90f59bd1520558af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^VE_I3K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^O+Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec5665904c12b10ce0a836eae5e629d943c4cea1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%95USvH0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..44d87cb33c9fd1e7611631e4d354fa3cafc52462 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#Un`&xeTbnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@;$(hc98nc(5 zU>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiGa%!4V8=JCK H6&b7nNi<;? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc67848944b4718245ec02a24ec72471fbaa2ad3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{8vVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2de4789c272524dd324d68d7c07d9e693c268595 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6bSc{`>QR450X~>1sfY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K))ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bddb0b8c9737526cb556bd2bcfe62a672f1bd25 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R1N-mK2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{C)VPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_condition_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc47c3c13e630b41fcf0f1bcc62fb6552dcf0712 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^VE_I3K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^K6Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc67848944b4718245ec02a24ec72471fbaa2ad3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ea8e02c5d3206af1769599c2b442bd2dbb3ebc8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bw2}{(KVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^;uVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..953143344d92df6a5e8a4adeb596c239c9c4cff7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6bSc{`>QR450X~>1sf$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW4G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1667bbeb6b9e4b34c37c51db5637b3d31c0bd819 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^FRUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1543d3c0c751be1de5e6e46f3602780fa1dba564 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9N2$C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K))ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1543d3c0c751be1de5e6e46f3602780fa1dba564 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9N2$C>8X>ZF?$gO1vLZx;)JpoZBm5WH>lD?3%6yL|Z2*uj`Uu+9WlvQfy|4@V~$Bf#~n&^FZ|H`QqPqn}Mc5 zfZ|UUMi5H}M1bsMV2x2w=u3&TQ)8HU_VAPoTPO85_f0DCH2!STb1i$4rkHxaRC1$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC09jOH+5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3d99584b3b6d4a352364d1bbde082a5c98e76b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l!gfe?E}m;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;{O<@55 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ea8e02c5d3206af1769599c2b442bd2dbb3ebc8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bw2}{(KY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K)(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdfcd34fd55768c0ba3facbd0635e3b020819f94 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689II#czd?3TY!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkLP-Axh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..69105600742fee2846d32493e8514342ea04f377 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%94m}ETw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ae660dc39a4da243a50fa4c760e677f8b174014 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R1N-mK2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^;uVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a87700f4c7cdeae66d88a9f69e203fe883a50f7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4(z`_AINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K)(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a3ab4a77c4dd1f455e800db90f59bd1520558af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^VE_I3K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^O+Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec5665904c12b10ce0a836eae5e629d943c4cea1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%95USvH0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..44d87cb33c9fd1e7611631e4d354fa3cafc52462 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#Un`&xeTbnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@;$(hc98nc(5 zU>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiGa%!4V8=JCK H6&b7nNi<;? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc67848944b4718245ec02a24ec72471fbaa2ad3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{8vVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2de4789c272524dd324d68d7c07d9e693c268595 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6bSc{`>QR450X~>1sfY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K))ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bddb0b8c9737526cb556bd2bcfe62a672f1bd25 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R1N-mK2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{C)VPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_else_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc47c3c13e630b41fcf0f1bcc62fb6552dcf0712 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^VE_I3K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^K6Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc67848944b4718245ec02a24ec72471fbaa2ad3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ea8e02c5d3206af1769599c2b442bd2dbb3ebc8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bw2}{(KVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^;uVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..953143344d92df6a5e8a4adeb596c239c9c4cff7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6bSc{`>QR450X~>1sf$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW4G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1667bbeb6b9e4b34c37c51db5637b3d31c0bd819 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^FRUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1543d3c0c751be1de5e6e46f3602780fa1dba564 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9N2$C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K))ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1543d3c0c751be1de5e6e46f3602780fa1dba564 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9N2$C>8X>ZF?$gO1vLZx;)JpoZBm5WH>lD?3%6yL|Z2*uj`Uu+9WlvQfy|4@V~$Bf#~n&^FZ|H`QqPqn}Mc5 zfZ|UUMi5H}M1bsMV2x2w=u3&TQ)8HU_VAPoTPO85_f0DCH2!STb1i$4rkHxaRC1$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC09jOH+5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3d99584b3b6d4a352364d1bbde082a5c98e76b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l!gfe?E}m;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;{O<@55 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ea8e02c5d3206af1769599c2b442bd2dbb3ebc8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bw2}{(KY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K)(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdfcd34fd55768c0ba3facbd0635e3b020819f94 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689II#czd?3TY!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkLP-Axh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..69105600742fee2846d32493e8514342ea04f377 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%94m}ETw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ae660dc39a4da243a50fa4c760e677f8b174014 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R1N-mK2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^;uVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a87700f4c7cdeae66d88a9f69e203fe883a50f7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4(z`_AINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K)(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a3ab4a77c4dd1f455e800db90f59bd1520558af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^VE_I3K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^O+Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec5665904c12b10ce0a836eae5e629d943c4cea1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%95USvH0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..44d87cb33c9fd1e7611631e4d354fa3cafc52462 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#Un`&xeTbnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@;$(hc98nc(5 zU>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiGa%!4V8=JCK H6&b7nNi<;? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc67848944b4718245ec02a24ec72471fbaa2ad3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{8vVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2de4789c272524dd324d68d7c07d9e693c268595 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6bSc{`>QR450X~>1sfY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K))ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bddb0b8c9737526cb556bd2bcfe62a672f1bd25 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R1N-mK2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{C)VPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConditional_then_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc47c3c13e630b41fcf0f1bcc62fb6552dcf0712 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~7J{D}b#!{zE=l}os`SJGu@7p&t zH0*itqUYw#v@>TM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZSw_!*C literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ab92c19104282dd985495b1fb3bb37a0d646871 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&++YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEa79` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..16dbb0e6769173330138b3e3c307a700bdcfe83a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&O97d1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OUeaRA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f01be4ea1ec2b76a78d65cbe2d10b57e5ad8eb82 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s@T|=jP3{GiMwQ9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K(~Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=&!(tKu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..633da34f9db4d7aab6a6cd24aca0921f983bac52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8F#JvVQrojK!h;J~iwYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bfcf11d3786011c38cf6d2399a54b23133fb61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0*itqUYw#v@>TM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZRBVkAY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..d19385ddf84abb7e19a4ed808c403b22f49caa48 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-Sgr_&&``@XU;erIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;hp!k!85ya8~ z5g+&ksNMH=u@DGqnEfK*!=jVzObZj-+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHY!> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a47b32b7d9b44ea2d815901ae43becbeeedfca1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4GqZRyQZrF(bh@I>$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;hp!k!85ya8~ z5g+&ksNMH=u@DGqnEfK*!=jVzObZj-&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIWLaA4PTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlF6=KW) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..633da34f9db4d7aab6a6cd24aca0921f983bac52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8F#JvVQrojK!h;J~iwYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac6a8a22ea71974f7bd0788f626a66bc93985254 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4;aUi93&nRe!k!+`_4rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHPu= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..08ad00b367b18cf80895a00dd9913d7eef4ef6a7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XESzc+qq7X4;uE4hIhGnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..04a67489e484bf34ac47f7190ba1719c4927b22a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Jma@uKJE&9pOT91a}VHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHPu= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfTM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZUOJPU= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6b48d9a4f30ef29ab529eb530cf2b2a9ae4f2fa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z?s@T|=jP3{GiMwQ9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K*GVo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7ddbdbf85ef433c6cb55599b1763054a2345ce8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ`OMbFKfX=lzj95}FRx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b41595970d5e745969978a2f93c4135768d101cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXID%Vjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a7f5b85570b0b8e147fa68ef3b7b0d75acc364c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z-Sgr_&&``@XU;erIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEa79` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7a9c9fcf5265aa5b69359ba43b470e04347bf4d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp<&O97d1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OULa!2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..06d2414c13028947c5fa26aaaa8615eec6475e1c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4;aUi93&nRe!k!+`_4rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHY!> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4cc41403e539172624b2a505305d192c4f6cf61d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp<&O97d1sfY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&ME~VuSzy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7ddbdbf85ef433c6cb55599b1763054a2345ce8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ`OMbFKfX=lzj95}FRx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3473a1ffdd05ceb7cbda89ce6e2d2d35eed8dd4d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zH0*itqUYw#v@>TM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZSw_!*C literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ab92c19104282dd985495b1fb3bb37a0d646871 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&++YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEa79` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..16dbb0e6769173330138b3e3c307a700bdcfe83a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&O97d1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OUeaRA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f01be4ea1ec2b76a78d65cbe2d10b57e5ad8eb82 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s@T|=jP3{GiMwQ9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K(~Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=&!(tKu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..633da34f9db4d7aab6a6cd24aca0921f983bac52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8F#JvVQrojK!h;J~iwYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bfcf11d3786011c38cf6d2399a54b23133fb61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0*itqUYw#v@>TM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZRBVkAY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..d19385ddf84abb7e19a4ed808c403b22f49caa48 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-Sgr_&&``@XU;erIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;hp!k!85ya8~ z5g+&ksNMH=u@DGqnEfK*!=jVzObZj-+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHY!> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a47b32b7d9b44ea2d815901ae43becbeeedfca1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4GqZRyQZrF(bh@I>$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;hp!k!85ya8~ z5g+&ksNMH=u@DGqnEfK*!=jVzObZj-&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIWLaA4PTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlF6=KW) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..633da34f9db4d7aab6a6cd24aca0921f983bac52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8F#JvVQrojK!h;J~iwYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac6a8a22ea71974f7bd0788f626a66bc93985254 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4;aUi93&nRe!k!+`_4rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHPu= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..08ad00b367b18cf80895a00dd9913d7eef4ef6a7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XESzc+qq7X4;uE4hIhGnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..04a67489e484bf34ac47f7190ba1719c4927b22a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Jma@uKJE&9pOT91a}VHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHPu= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfTM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZUOJPU= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6b48d9a4f30ef29ab529eb530cf2b2a9ae4f2fa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z?s@T|=jP3{GiMwQ9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K*GVo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7ddbdbf85ef433c6cb55599b1763054a2345ce8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ`OMbFKfX=lzj95}FRx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b41595970d5e745969978a2f93c4135768d101cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXID%Vjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a7f5b85570b0b8e147fa68ef3b7b0d75acc364c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z-Sgr_&&``@XU;erIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEa79` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7a9c9fcf5265aa5b69359ba43b470e04347bf4d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp<&O97d1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OULa!2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..06d2414c13028947c5fa26aaaa8615eec6475e1c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4;aUi93&nRe!k!+`_4rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHY!> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4cc41403e539172624b2a505305d192c4f6cf61d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp<&O97d1sfY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&ME~VuSzy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConjunction_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7ddbdbf85ef433c6cb55599b1763054a2345ce8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ`OMbFKfX=lzj95}FRx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_ArrayType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_ArrayType.gif new file mode 100644 index 0000000000000000000000000000000000000000..590936f17eaed471e37eb1c9b6fabf2e6a6d4f31 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XESzxYToVQ`(uC4hI@`O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ%YGGmk literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_BooleanType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_BooleanType.gif new file mode 100644 index 0000000000000000000000000000000000000000..615cc24ef529e02dc66b4194c41ea30f94b1368d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s;*k=jNugGcz3yH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFeFVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_IntegerType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_IntegerType.gif new file mode 100644 index 0000000000000000000000000000000000000000..7381229affc8eb313d22c30b9f18d274557fc32e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK4;aF7@2ply+vO!-0lf)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi$qYY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_NaturalType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_NaturalType.gif new file mode 100644 index 0000000000000000000000000000000000000000..7402e2232e3c836c90738fc62e6b27f2ff95f6ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ&{$XMO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_QueueType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_QueueType.gif new file mode 100644 index 0000000000000000000000000000000000000000..40f8e7653b0e4eb0114efdd0ab0e2c7dffe9c4fb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z?s;*k=jNugGcz3yH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG;FVblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c716a5f22f342f2615d1568c548b7252ad2e0dc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4GnuGDecTmhXW0}rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_RecordType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_RecordType.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3f22bfe861bb46a579c7fcfea1ceaa33065ec12 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&JmaajEC#rnECN9S$_?nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5;@%I1k+cz{c z?0Ipi=jNugGcz3yH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXF!+VX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_UnionType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_type_UnionType.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a6b597d81dd01fdc41b81d5ff6eae033d91eefb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8GUJvTR{otf!ypkdc^H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkMmts!< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..d75b20677897b340c0c42746ffea3aedb943b5ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zH0*hCspsaVv@M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJvPhgk; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9485b4a4ecfca40b5b1b39f7b6670ad75c78d471 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkMmts!< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc576a1c112293f6ba259fd8b21224e4449a79d6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&O9OFcI?rJb4SaG+t=bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru^?70} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..b49448d5e1ce1f79e49fc30681e78f45c4f801f8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK4;aF7@2ply+vO!-0lf)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi}p~g literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..615cc24ef529e02dc66b4194c41ea30f94b1368d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s;*k=jNugGcz3yH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFeFVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..e935ef33b0dec0c9305552c42014795c250fdcdc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sf$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ%YGGmk literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a6b597d81dd01fdc41b81d5ff6eae033d91eefb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8GUJvTR{otf!ypkdc^H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkMmts!< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b3825518999d62967cd460b16fff9580cb7a62b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0*hCspsaVv@M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJtyI`0A literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..46e6cc6e4212a2d184e2ef06bc0d0517354373a6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-Sgs7&&^F~XJ$GaXxKGf4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S>pViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..09b8804bd2357564022ae4293065d205db368922 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4GnuGDecTmhXW0}rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJ5yuc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b5f1ecc81a7d0f94f0939cfc55b1d99e0c6903e7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4;aF7@2ply+vO!-0lf)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giGDecTmhXW0}rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJ5yuc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..285bf7f552c45ef96bdb336a723686fa838563ad GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&JmaajEC#rnECN9S$_?nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkMmts!< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ecfed7dfc595cd26014bf916bd86bc27e64f4d6e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4;aF7@2ply+vO!-0lf)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S>pViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..7402e2232e3c836c90738fc62e6b27f2ff95f6ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ&{$XMO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1969e09bf00a1a51b2d5a1c7495b564299e21845 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&JmaajEC#rnECN9S$_?nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJw<6xKo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..992def4d44dbe37d4419f1b4b00c1dc6c1b10ab7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z?s;*k=jNugGcz3yH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFfWVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..47baf4da146a8448e48b08c0218be67e9ebe942e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ`OQqRpzX=i3S9B9}zT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ&{$XMO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..dab1fbcac71e834d14b4bfe314730a03b6639e73 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`W#VQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0d5c0ab412a78dd365c8f5b254e9cdfa362edb1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z-Sgs7&&^F~XJ$GaXxKGf4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&T#MVlw~$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..46e6cc6e4212a2d184e2ef06bc0d0517354373a6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-Sgs7&&^F~XJ$GaXxKGf4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S>pViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..46e6cc6e4212a2d184e2ef06bc0d0517354373a6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-Sgs7&&^F~XJ$GaXxKGf4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S>pViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9485b4a4ecfca40b5b1b39f7b6670ad75c78d471 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi$qYY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b5f1ecc81a7d0f94f0939cfc55b1d99e0c6903e7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4;aF7@2ply+vO!-0lf)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG;FVblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantDeclaration_value_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..47baf4da146a8448e48b08c0218be67e9ebe942e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ`OQqRpzX=i3S9B9}zT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ&{$XMO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a66ef85f68e38e9748ab052c98ab20e6893082 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kZ~+Hc-M3_Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{~vrVM71_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b5cda1c96f8e454fe64205df2fe043d9ff51081 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689I520<93bOZaPY3_YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7)8DqKt literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..669fba2024a61ddae843f0bea8c3af170ba7d3cf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIY7p-;NV@;)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AvVPt>+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstantPattern_value_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3a1336d8cb8fe3c12393553d26945de5a5e6ceb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2go=U9K36~8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR7J{D}b#!{zE=l}os`SJGu@7p&t zG`!ez>1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJwu3(q| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b8f31eb6beb1fe71c143ec65c1ac2550f260073 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..288ee3a4e9beb6a1f8acd7f2144a174bbeb92811 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a}zOE-Hqok^Q{z@cH+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_Sj-9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1808fc8a0fae1d32b668246de1439c203e1c1844 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK3h=F5T?ebS7=)0f&ZN)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiQVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..5756f1b8b37551f4e94c3741d40267c48e1a61be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ&$zfsu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b70b1497af660ddacd6c3759792bb92f4686ffa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_r;z|H+wdnNt=1Vp<&l_H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3da98f774369141f4654a5bcd2bbcdb33eadef6e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG`!ez>1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8eo_J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..649a0782c2cd31abfd6438b7b6530463f2c1aaf5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gk~$T)Nq_=}g+p0}c(lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca17b1cefc8770c8f8a57ffa31341a4311b1256e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|w;E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..649a0782c2cd31abfd6438b7b6530463f2c1aaf5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gk~$T)Nq_=}g+p0}c(lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..2c570bf5adabad89ef13841c74a34804d9f38bbb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&H=}bLnQ!rZZ_X4>&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4344d571355a55cc035e37990dc46568f09604d0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3h=F5T?ebS7=)0f&ZN)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f87e1e2aecfabc4b1c4c56eb9d9d4a9b7589d52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b8b4537783b150036988bbe6f02e5c0a1317768 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&H=}bLnQ!rZZ_X4>&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJyLSUEx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a9b7cdb673df58f83923d77af78d556f3efec02 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zzSwi=X3wTGX)_NvH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFjhVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57a2f0af089e99e45d790c0a63a4d196d2eeda0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn3*b(#@VtXVPXKaA?>yT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac3a4fd1c60d2fb4fbd2eb2059f4f2a4d45fb9e4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`a=VQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5be50cbcf4198adcb11af811f45f4d5b42043dc2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&KzlVlw~$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b8f31eb6beb1fe71c143ec65c1ac2550f260073 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|w;E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3fae4b217f49017e219d77e041640afcd688ded7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a}zOE-Hqok^Q{z@cH+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruH?m@X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5477752ac52227c5954437a4eb97f844d4d7be80 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zzSwi=X3wTGX)_NvH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG?QVblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructionExpression_parameters_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57a2f0af089e99e45d790c0a63a4d196d2eeda0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn3*b(#@VtXVPXKaA?>yT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..9564e3ff6df503cc6dd329389956e516e47feaea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLqpTGHNnSvEY}q4v_M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SH~pB0{}Z|U!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..5c173f1248b32445fff26444972020074953f952 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z+jMPB@Ub4tHN`q@k-Mg=0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW{{V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..6153c8dfcbb5bf74fcfd547e96699c6daf8b6bca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua>iC|9v literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..58b76d646d231d9697a9084609df4128ec89e982 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&D3_TN8Y&$8t@vPFv)z>1sfPFN literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateConstructorPattern_parameters_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..e56e445fd0494e261a0df80d2f5c23fe9ef00c47 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPm|;@%I1k+cz{c zG+kR0e5}WEO|ec}<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{VcU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3473a1ffdd05ceb7cbda89ce6e2d2d35eed8dd4d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zH0*itqUYw#v@>TM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZSw_!*C literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ab92c19104282dd985495b1fb3bb37a0d646871 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&++YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEa79` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..16dbb0e6769173330138b3e3c307a700bdcfe83a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&O97d1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OUeaRA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f01be4ea1ec2b76a78d65cbe2d10b57e5ad8eb82 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s@T|=jP3{GiMwQ9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K(~Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=&!(tKu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..633da34f9db4d7aab6a6cd24aca0921f983bac52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8F#JvVQrojK!h;J~iwYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bfcf11d3786011c38cf6d2399a54b23133fb61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0*itqUYw#v@>TM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZRBVkAY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..d19385ddf84abb7e19a4ed808c403b22f49caa48 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-Sgr_&&``@XU;erIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;hp!k!85ya8~ z5g+&ksNMH=u@DGqnEfK*!=jVzObZj-+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHY!> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a47b32b7d9b44ea2d815901ae43becbeeedfca1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4GqZRyQZrF(bh@I>$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;hp!k!85ya8~ z5g+&ksNMH=u@DGqnEfK*!=jVzObZj-&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIWLaA4PTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlF6=KW) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..633da34f9db4d7aab6a6cd24aca0921f983bac52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8F#JvVQrojK!h;J~iwYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac6a8a22ea71974f7bd0788f626a66bc93985254 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4;aUi93&nRe!k!+`_4rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHPu= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..08ad00b367b18cf80895a00dd9913d7eef4ef6a7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XESzc+qq7X4;uE4hIhGnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..04a67489e484bf34ac47f7190ba1719c4927b22a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Jma@uKJE&9pOT91a}VHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHPu= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfTM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZUOJPU= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6b48d9a4f30ef29ab529eb530cf2b2a9ae4f2fa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z?s@T|=jP3{GiMwQ9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K*GVo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7ddbdbf85ef433c6cb55599b1763054a2345ce8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ`OMbFKfX=lzj95}FRx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b41595970d5e745969978a2f93c4135768d101cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXID%Vjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a7f5b85570b0b8e147fa68ef3b7b0d75acc364c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z-Sgr_&&``@XU;erIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEa79` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7a9c9fcf5265aa5b69359ba43b470e04347bf4d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp<&O97d1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OULa!2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..06d2414c13028947c5fa26aaaa8615eec6475e1c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4;aUi93&nRe!k!+`_4rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHY!> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4cc41403e539172624b2a505305d192c4f6cf61d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp<&O97d1sfY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&ME~VuSzy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7ddbdbf85ef433c6cb55599b1763054a2345ce8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ`OMbFKfX=lzj95}FRx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3473a1ffdd05ceb7cbda89ce6e2d2d35eed8dd4d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zH0*itqUYw#v@>TM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZSw_!*C literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ab92c19104282dd985495b1fb3bb37a0d646871 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&++YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEa79` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..16dbb0e6769173330138b3e3c307a700bdcfe83a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&O97d1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OUeaRA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f01be4ea1ec2b76a78d65cbe2d10b57e5ad8eb82 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s@T|=jP3{GiMwQ9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K(~Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=&!(tKu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..633da34f9db4d7aab6a6cd24aca0921f983bac52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8F#JvVQrojK!h;J~iwYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bfcf11d3786011c38cf6d2399a54b23133fb61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0*itqUYw#v@>TM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZRBVkAY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..d19385ddf84abb7e19a4ed808c403b22f49caa48 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-Sgr_&&``@XU;erIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;hp!k!85ya8~ z5g+&ksNMH=u@DGqnEfK*!=jVzObZj-+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHY!> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a47b32b7d9b44ea2d815901ae43becbeeedfca1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4GqZRyQZrF(bh@I>$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;hp!k!85ya8~ z5g+&ksNMH=u@DGqnEfK*!=jVzObZj-&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIWLaA4PTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlF6=KW) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..633da34f9db4d7aab6a6cd24aca0921f983bac52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8F#JvVQrojK!h;J~iwYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8v@M8Y} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac6a8a22ea71974f7bd0788f626a66bc93985254 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4;aUi93&nRe!k!+`_4rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHPu= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..08ad00b367b18cf80895a00dd9913d7eef4ef6a7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XESzc+qq7X4;uE4hIhGnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..04a67489e484bf34ac47f7190ba1719c4927b22a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Jma@uKJE&9pOT91a}VHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHPu= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..39428c713a1e2814ba2b4b65ab07f18bc8f42455 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfTM4jkAuT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZUOJPU= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6b48d9a4f30ef29ab529eb530cf2b2a9ae4f2fa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z?s@T|=jP3{GiMwQ9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K*GVo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7ddbdbf85ef433c6cb55599b1763054a2345ce8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ`OMbFKfX=lzj95}FRx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b41595970d5e745969978a2f93c4135768d101cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXID%Vjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a7f5b85570b0b8e147fa68ef3b7b0d75acc364c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z-Sgr_&&``@XU;erIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEa79` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7a9c9fcf5265aa5b69359ba43b470e04347bf4d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp<&O97d1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OULa!2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..06d2414c13028947c5fa26aaaa8615eec6475e1c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4;aUi93&nRe!k!+`_4rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHY!> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4cc41403e539172624b2a505305d192c4f6cf61d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp<&O97d1sfY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&ME~VuSzy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDisjunction_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7ddbdbf85ef433c6cb55599b1763054a2345ce8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ`OMbFKfX=lzj95}FRx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)S7H(X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..236984d2d5a19f2494b7aec2d424c39f6b62c0c7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zH2nDe^~Rf{`|r6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBfVqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ee5cc52f93d39bfb24949400aa6da6721f58668 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_s8$AH{KlGe}De6OO?B(s{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQPIAj(8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd7b99881d7502fe6231cb1bc4e34bdc75358858 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2b5xuQ%Qt-G6`nvP+e_rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OA}M3@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8935bbe017a7847573d968ea60f8e43bc8e7019 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmPUSntg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..83d7ad8eda065867b2aca7b55544bb29521f0ef2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBfVqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0ae918c1222e8c1beddbd4fa4d7f4c78788e9a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?Um4mOV*ROub(! zIny~%WA^eB>>_y0-@_urqt>{8{f>1sf_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQPIAj(8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d9f24061d345c0e43abc2096280a6ec1a0bf0cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH2nDe^~Rf{`|r$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC02Cx++5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a24e08fa918e7dcf6b3afc5183c9d82b265ea4be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Glkjf4%YM=>GfjmtCsdHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW6>ylsEBsH&6Y-Wk@zrXK+=GfjmtCsdHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW$ zwC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF)W)W4RYeAC E06b)7yZ`_I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..986fb9cf107fdb5262d22592f9d32614ba484797 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z`{Vc58*h&8zdwK3rOI8?)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08mU1Q?_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ee5cc52f93d39bfb24949400aa6da6721f58668 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_s8$AH{KlGe}De6OO?B(s{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQPIAj(8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bf7d040db36810109021ce2f921fe17990b3c83 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n@=<14 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0317ef5897cd8dcb27f659d67fe34d4cc21ec5af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{qg(jjW$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC02Cx++5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..af3a295d908347198e73b116d7fab1e5e57d2c04 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMy0-@_urqt>{8{f>1sf=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd7b99881d7502fe6231cb1bc4e34bdc75358858 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2b5xuQ%Qt-G6`nvP+e_rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OA}M3@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83d7ad8eda065867b2aca7b55544bb29521f0ef2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBfVqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bf7d040db36810109021ce2f921fe17990b3c83 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBfVqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8c38fbfdaec748b3ba6338b114bb9d7ded2fa7e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zH2nDe^~Rf{`|rJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmP#A9dx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1479f924cbd2c614731a58646019ef0278bbe149 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zX!!B_>y0-@_urqt>{8{f>1sf=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..af5267e879108abceb3dfbcc31a14670a78889f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zfBgP>C>8X>ZF?$gO1vLZx;)JpoZBm5JK( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec1b197d6b33f4ec24af97df174d42c041e258eb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z{qg(jjWMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7uL}U5@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0317ef5897cd8dcb27f659d67fe34d4cc21ec5af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{qg(jjW$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC02Cx++5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0317ef5897cd8dcb27f659d67fe34d4cc21ec5af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{qg(jjW$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC02Cx++5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2833425da49fa1910d886d3c89d72cc01926b28f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OVU=V? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..36e9ea8424e85a4ff6c75b9e8cd040e24632ebbc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OV)SH2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6cb1d1521c57b95920ea609c3c242c07e2ecb231 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z{`md%#+#%2@6TU$sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm$H)ERs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1479f924cbd2c614731a58646019ef0278bbe149 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zX!!B_>y0-@_urqt>{8{f>1sf7J{D}b#!{zE=l}os`SJGu@7p&t zH2nDe^~Rf{`|r6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBfVqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ee5cc52f93d39bfb24949400aa6da6721f58668 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_s8$AH{KlGe}De6OO?B(s{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQPIAj(8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd7b99881d7502fe6231cb1bc4e34bdc75358858 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2b5xuQ%Qt-G6`nvP+e_rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OA}M3@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8935bbe017a7847573d968ea60f8e43bc8e7019 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmPUSntg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..83d7ad8eda065867b2aca7b55544bb29521f0ef2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBfVqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0ae918c1222e8c1beddbd4fa4d7f4c78788e9a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?Um4mOV*ROub(! zIny~%WA^eB>>_y0-@_urqt>{8{f>1sf_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQPIAj(8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d9f24061d345c0e43abc2096280a6ec1a0bf0cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH2nDe^~Rf{`|r$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC02Cx++5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a24e08fa918e7dcf6b3afc5183c9d82b265ea4be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Glkjf4%YM=>GfjmtCsdHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW6>ylsEBsH&6Y-Wk@zrXK+=GfjmtCsdHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW$ zwC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF)W)W4RYeAC E06b)7yZ`_I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..986fb9cf107fdb5262d22592f9d32614ba484797 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z`{Vc58*h&8zdwK3rOI8?)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08mU1Q?_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ee5cc52f93d39bfb24949400aa6da6721f58668 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_s8$AH{KlGe}De6OO?B(s{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQPIAj(8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bf7d040db36810109021ce2f921fe17990b3c83 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n@=<14 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0317ef5897cd8dcb27f659d67fe34d4cc21ec5af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{qg(jjW$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC02Cx++5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..af3a295d908347198e73b116d7fab1e5e57d2c04 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMy0-@_urqt>{8{f>1sf=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd7b99881d7502fe6231cb1bc4e34bdc75358858 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2b5xuQ%Qt-G6`nvP+e_rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OA}M3@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83d7ad8eda065867b2aca7b55544bb29521f0ef2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBfVqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bf7d040db36810109021ce2f921fe17990b3c83 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBfVqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8c38fbfdaec748b3ba6338b114bb9d7ded2fa7e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zH2nDe^~Rf{`|rJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmP#A9dx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1479f924cbd2c614731a58646019ef0278bbe149 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zX!!B_>y0-@_urqt>{8{f>1sf=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..af5267e879108abceb3dfbcc31a14670a78889f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zfBgP>C>8X>ZF?$gO1vLZx;)JpoZBm5JK( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec1b197d6b33f4ec24af97df174d42c041e258eb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z{qg(jjWMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7uL}U5@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0317ef5897cd8dcb27f659d67fe34d4cc21ec5af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{qg(jjW$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC02Cx++5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0317ef5897cd8dcb27f659d67fe34d4cc21ec5af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{qg(jjW$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC02Cx++5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2833425da49fa1910d886d3c89d72cc01926b28f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OVU=V? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..36e9ea8424e85a4ff6c75b9e8cd040e24632ebbc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OV)SH2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6cb1d1521c57b95920ea609c3c242c07e2ecb231 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z{`md%#+#%2@6TU$sdCqJH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm$H)ERs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateDivision_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1479f924cbd2c614731a58646019ef0278bbe149 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zX!!B_>y0-@_urqt>{8{f>1sf7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5K*mhtv|ZEHfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXC$JVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9d141ccd12905a512532dbd90f42195883a8b945 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cM^2IBnN-H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlEiD5ke literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..89d8767bf56c38fd34720d1577c45b61dc8817ca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WxM9r|p`q21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxeVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ac141af672d33e778eb5683c7ada59c0c468c93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kTKIZZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{}T|VF>^L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..a85ee8f4953030db7eebfb75457273fe50738d6d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFD0ZG)~(!T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubMuV9Y= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..3242175ed9c5105ff0ffe0319395d490276f6299 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXC$JVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..d415ad7a8c90ab0d2815152c2b5b5d21547ecb7a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F? z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UU+YU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..9d141ccd12905a512532dbd90f42195883a8b945 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cM^2IBnN-H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlEiD5ke literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b80902bd12273f6cac6a6503844b051831f8a175 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5K*mhtv|ZEHfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;`bzuPj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..86be5ba5290345ac2d34346218030615f6dacb7a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v;a^IBnN-H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlvMPkeV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..942aab31ac211bec367f60f03e1ff847bb4ba5aa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gsOdoVIJa8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlvMPkeV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..9231d350a3d9e5357f17fb8203c0a0f4e8644f0e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIY7ot3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09VwPWJ| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1607f910083346345671e52588d6acdb6f1dd0f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zi!8otx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)iKUo+-EFBO5 zvXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4vzMP>7wOZQ zbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E8LR;~ Cu3-uQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9d141ccd12905a512532dbd90f42195883a8b945 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cM^2IBnN-H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlEiD5ke literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e4e4b3a8f90f17fabe5bc05a7eb24472330df3a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gsOdoVIJa8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7Uv15P$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b42bd7b416b8f97563664cd539a9b6a73cfe0df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY80+X`Hrex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;`bzuPj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7da41eb872d901afe76d198219425f0ebe16344 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UU>DU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8bebbfd88d81d8a817b103676a9119729aaa37a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIY7ot3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AJ`D8`_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..89d8767bf56c38fd34720d1577c45b61dc8817ca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WxM9r|p`q21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxeVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..3242175ed9c5105ff0ffe0319395d490276f6299 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXC$JVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e4e4b3a8f90f17fabe5bc05a7eb24472330df3a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gsOdoVIJa8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXC$JVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cb97b2abcc4b76b04dc0e42a5d4de1914242eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO5K*mhtv|ZEHfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$UdnFD0ZG)~(!T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubN6=075 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..88911502eb19ee82d1688bc4125d7efbb1e7a061 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfQ*^OX}hMY0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UU>DU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..468d5f998b24bae07fbaae0ca702b830f9a635c2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AKzhp)L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..af57160b8745e1492a1a0999ecf8eadeda625e98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFfH8mH}=t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJfJYZY^ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..dcfe7527b14fcc8688c5102fdb9cd660ee6c760c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY80+X`Hrex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;`bzuPj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b42bd7b416b8f97563664cd539a9b6a73cfe0df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY80+X`Hrex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;`bzuPj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..58bd8cfbda4a3e280ce8576da14e7b581d4c9ec5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE`fVQl~a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..affc324a32e69a8abd222b28536e2c9d95791714 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kTKIZZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{}R=VF>^L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..942aab31ac211bec367f60f03e1ff847bb4ba5aa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gsOdoVIJa8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE~qVQl~a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b19f705944427e17a1e9dcb69b79d3466837f80 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFD0ZG)~(!T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuYymtevG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_element_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..88911502eb19ee82d1688bc4125d7efbb1e7a061 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfQ*^OX}hMY0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UU>DU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..8128b07c030e460790236099e23d172fe4888d77 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5K*mhtv|ZEHfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXC$JVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9d141ccd12905a512532dbd90f42195883a8b945 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cM^2IBnN-H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlEiD5ke literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..89d8767bf56c38fd34720d1577c45b61dc8817ca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WxM9r|p`q21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxeVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ac141af672d33e778eb5683c7ada59c0c468c93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kTKIZZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{}T|VF>^L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..a85ee8f4953030db7eebfb75457273fe50738d6d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFD0ZG)~(!T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubMuV9Y= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..3242175ed9c5105ff0ffe0319395d490276f6299 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXC$JVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..d415ad7a8c90ab0d2815152c2b5b5d21547ecb7a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F? z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UU+YU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..9d141ccd12905a512532dbd90f42195883a8b945 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cM^2IBnN-H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlEiD5ke literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b80902bd12273f6cac6a6503844b051831f8a175 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5K*mhtv|ZEHfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;`bzuPj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..86be5ba5290345ac2d34346218030615f6dacb7a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v;a^IBnN-H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlvMPkeV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..942aab31ac211bec367f60f03e1ff847bb4ba5aa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gsOdoVIJa8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlvMPkeV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..9231d350a3d9e5357f17fb8203c0a0f4e8644f0e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIY7ot3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09VwPWJ| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1607f910083346345671e52588d6acdb6f1dd0f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zi!8otx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)iKUo+-EFBO5 zvXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4vzMP>7wOZQ zbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E8LR;~ Cu3-uQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9d141ccd12905a512532dbd90f42195883a8b945 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cM^2IBnN-H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWlEiD5ke literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e4e4b3a8f90f17fabe5bc05a7eb24472330df3a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gsOdoVIJa8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7Uv15P$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b42bd7b416b8f97563664cd539a9b6a73cfe0df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY80+X`Hrex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;`bzuPj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7da41eb872d901afe76d198219425f0ebe16344 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UU>DU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8bebbfd88d81d8a817b103676a9119729aaa37a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIY7ot3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AJ`D8`_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..89d8767bf56c38fd34720d1577c45b61dc8817ca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WxM9r|p`q21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxeVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..3242175ed9c5105ff0ffe0319395d490276f6299 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXC$JVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e4e4b3a8f90f17fabe5bc05a7eb24472330df3a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gsOdoVIJa8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXC$JVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cb97b2abcc4b76b04dc0e42a5d4de1914242eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO5K*mhtv|ZEHfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$UdnFD0ZG)~(!T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubN6=075 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..88911502eb19ee82d1688bc4125d7efbb1e7a061 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfQ*^OX}hMY0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UU>DU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..468d5f998b24bae07fbaae0ca702b830f9a635c2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AKzhp)L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..af57160b8745e1492a1a0999ecf8eadeda625e98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFfH8mH}=t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJfJYZY^ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..dcfe7527b14fcc8688c5102fdb9cd660ee6c760c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY80+X`Hrex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;`bzuPj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b42bd7b416b8f97563664cd539a9b6a73cfe0df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY80+X`Hrex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;`bzuPj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..58bd8cfbda4a3e280ce8576da14e7b581d4c9ec5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE`fVQl~a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..affc324a32e69a8abd222b28536e2c9d95791714 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kTKIZZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{}R=VF>^L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..942aab31ac211bec367f60f03e1ff847bb4ba5aa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gsOdoVIJa8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXE~qVQl~a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b19f705944427e17a1e9dcb69b79d3466837f80 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFD0ZG)~(!T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuYymtevG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateEnqueueExpression_queue_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..88911502eb19ee82d1688bc4125d7efbb1e7a061 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfQ*^OX}hMY0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UU>DU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e7b42fac3728c7e5381ce574debd02677775a20 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQq7U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c2235ab275bedac8c4eb6801f5b8a70a63f83b6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkjjbcv# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..decea7bad6ac8e698fff47e25f89cf30eb9ce1a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OFSVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1370956a88c5d836c8f0d82e431b296783257cc4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kYPM?=C0{#K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`)pVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..78e35c70ee2dd44810c9363a1a894af25efa0c70 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR>Q!eGJx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..01c271236da5e9c429d23a2c3bc5afa4c9b64e13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?B0{{e8V9Nji literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..355b14013fa8083d85913b926cefc96632b7cbab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}+RV1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f42e7e758c5904edcb96d392a7f2ba8a75b199b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQlSU%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..c382aa6ed049489606e4cee7fbb0edcc000b68d3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v=9ybLOt;YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9ASYrPG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8b8f87ce358919c1024d16bb085e515f63e7706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-eOMx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..c382aa6ed049489606e4cee7fbb0edcc000b68d3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v=9ybLOt;YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9ASYrPG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b18d4243bf2fb17ac10d6cf304975dc40464237 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIY5T-%$d8Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR3$Yd4( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b806b6dcf6cd017d188e02867f46ffa24d1fc980 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l}$@Idj)^H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWl9!C^fB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f192c63eef88a56fc3fb93cc1e53bb73eb2d7713 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7g>DQbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2f3h%wSUMmA zWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9W-mX%F4Ctp z=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0wHf5_SGFSru DeVk!% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ef55d20e042c2fe1af8c0df39a9d43d8a4086e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-C|Dw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7dcab430b73befb8e8fba12e4b483c2b2d3207f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689I520<93aDZ=FDBw)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08=#ACAn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..78cd3d75314740645c1cc70c3e32beb151c0980c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..60a381877ef3b71359671426a7e53f65956f1db1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIY5T-%$d8Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR@3}kr# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..decea7bad6ac8e698fff47e25f89cf30eb9ce1a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OFSVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ef55d20e042c2fe1af8c0df39a9d43d8a4086e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-C|Dw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..899f35696db3f6078757dfed6950e0717027cd98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OK7VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..75d8cae4d333c95985ae17a3f8c40a5d3595456e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO5K!)+mnY*T|0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQu-U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1f6c556f8aeade1bfbfee681e0a5eba0247b19a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR>RC}6?> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a9f5b6928b2456bf9f6fc47ae2535889b5c0e62 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b5f0b5bbbfa64971ff93fa90727dadb22b3955b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR@(qwr6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..00edc85b95e8ddff91086e2565f95c81b4403e4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFftXU^O;T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubGPhgJ# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d6deb4e8bb54a14b9b7a894b044db6b542c5411 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruY^Y&W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..420564eb5c10b7b6dbde0bcb04c7a7424471e741 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~po;h>ZbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruRES|T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c2235ab275bedac8c4eb6801f5b8a70a63f83b6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkjjbcv# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5f41eacb8f9a205a5219576d2f36e6fc2321342 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QaTVW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..373052d301a78075876fe67b40aa9ce82057c9a8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kYPM?=C0{#K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`&hVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8b8f87ce358919c1024d16bb085e515f63e7706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gopJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWki-eOMx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d1b6d68c5bf556493cf80c85cad27de004c7643 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19Rrg0Wyqd&fGO!4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QeeVW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa715663b5e8463fe21b4b3aa3bcd8a9f69d7ace GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&z!kyx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;$s$lg1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_child_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a9f5b6928b2456bf9f6fc47ae2535889b5c0e62 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfDGfAGj~l_1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2}>6V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_index_VariableDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_index_VariableDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..00edc85b95e8ddff91086e2565f95c81b4403e4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFftXU^O;T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubGPhgJ# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsExpression_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..7aed015b97cc42e822d1419d681e53e7df15af20 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v=9ybLOt;YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9Bw_^VQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_AbsencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_AbsencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..889e8a5a6f1ffa9d685509763477de7ae7742138 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqO=KL7v6&yTnNf8QR+ z{r&aFo1-`G&)MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9%wquq6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e89961a4ba6e78f7d4435522e486dd61818eb85 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2c$}A8(G{xIcgYrOIWyrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OA}M3@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_AlwaysPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_AlwaysPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..44af2e5cd8d36ba847eeb4119f55ce9602cc2603 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&KDF`s2;f8~5k$zf`$w*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X Q6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=$ zwC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF)W)W4RYeAC E06b)7yZ`_I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_InfinitelyOftenPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_InfinitelyOftenPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b71c63a9cd5920e3124e9d2585802f0e77ab080 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH2nVhUm4mOV*ROub(! zIny~%WA^eB>>_MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A8wPU&f literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b71c63a9cd5920e3124e9d2585802f0e77ab080 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH2nVh=5r0%RuxYm9q!{Ee2H+qqh&U#90X QTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmPUSntg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..86d913ac4120210ae92593746aabd90243f9a8bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{r&aFo1-`G&)MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A8wPU&f literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..86d913ac4120210ae92593746aabd90243f9a8bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{r&aFo1-`G&)MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A8wPU&f literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..d839c758a4cb119d355e9cacd4a93c4b97245409 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&KDF`s2;f8~5k$zf`$w*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmPUSntg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a3e4a4a71a8c1d3a85437f3b11260df57ad1bd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}^yUH%D*WpTGZ7<+5GV)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09lWn@+W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c0d8f24198ba6c26f1e864473c04e6e0681daeb8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gq7){&;ir#{K#GFI6tvHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PrecedesPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_PrecedesPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..44af2e5cd8d36ba847eeb4119f55ce9602cc2603 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&KDF`s2;f8~5k$zf`$w*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmPUSntg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b71c63a9cd5920e3124e9d2585802f0e77ab080 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH2nVh6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OV)SH2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_SequencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_SequencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..dfe521b7dc18743e4d9ccbf924e1ec2512bf2aa1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z`}^yUH%D*WpTGZ7<+5GV)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08l_haJ# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_child_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..d4b7df4075d485a77853612103ac0e598f8c9089 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z`}^yUH%D*WpTGZ7<+5GV)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08mU1Q?_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExistsProperty_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..c0d8f24198ba6c26f1e864473c04e6e0681daeb8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gq7){&;ir#{K#GFI6tvHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIWq>T()bv8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5JK( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..a92469c4a6a37c3fdc13390d3567a4a724d01570 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5mzGsJI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHnC0~UA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a38f9aec7485b37577c4d2d0971fdc6faeb11175 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`}OVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ceae5afb67605611aa53e2dea645fac1279878c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19RrgxwNd(!NFnIbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruLr-BD literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6243419e928383d2cdc318897c8a8adf00ec9c05 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E06IWn2mk;8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..dcc8a06c4abec2d1a3ab94653190514e5e92105b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnR97bB~X0VbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru-h^O| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..8390ecacad7777e2964afab97045cbb00ab1609e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn<*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_0#=V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..452784a50656fc41d2c37142a65c54f8add7c42c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z??aAE-kBcaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuawF;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`}OVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..19ce4385366670a59b8f8ce493f45dac6029b143 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5mzGsJI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHlkza)X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..aa1863626cfca3cf9bdadeb64141b9f5c2f283ea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gw0H>N}%|z>1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oi5gm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oi5g6>ylsEBsH&6Y-Wk@zrXK+=B0{}ULVF>^L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b73646120374a43d55890ecc6f0ed1530801956d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b1RXS*3%6!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`}OVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a90e8244c2fdcf896e5633233885ea0dd2c441bb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|=hCuD2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_N}%|z>1sf$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auax#b8eW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..dad7ecb700f0a030fa0db43c0896c45a11b10e9a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIhU4IIygA&nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHoxnG3< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..296fdb457be39ff63df94e7012abd419616f0601 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnR97bB~X0VbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru-s)hE literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7943912208cefddeaec5380d07b7fb96bacbff22 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAE-kBcaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auax#b8eW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ded75de0c5d71e637cb41df9955f4aac8a163bb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$6>ylsEBsH&6Y-Wk@zrXK+=`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=g5nx*Y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5452ecdc31bb35c5f42b9b3317b50b1a7dc95623 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gw0H>N}%|z>1sfN}%|z>1sfN}%|z>1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{2vGdV z!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb4%C>v z`~m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi$UdnR97bB~X0VbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru1#Do! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_condition_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7943912208cefddeaec5380d07b7fb96bacbff22 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAE-kBcaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auax#b8eW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b750f7b970baba30d2989ac0158eec8ea2dafcc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLjy$o(y~gR_^#<{K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^~55U{?SD literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..89badf28dc7e4ad4afd46af3b4026431876f9844 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%(=9z5-7fFx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=g5nx*Y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..8390ecacad7777e2964afab97045cbb00ab1609e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giB0{~=OVM71_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf3badf4fc07c994dfa34fd0509bd2ca72c51c28 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zK*TRCs|1Sgnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0{~=OVM71_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..be505f92e0c1fac56a14d1c503ac09d4bd98f0fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuawFUm4mOV*ROub(! zIny~%WA^eB>>_!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E06IWn2mk;8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..d55104df4c84fd4f632e5f0937b5d056ef6a7fbc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIhU4IIygA&nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=B0|1SSVSE4p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a38f9aec7485b37577c4d2d0971fdc6faeb11175 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi;@%I1k+cz{c zK*TRCs|1Sgnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=;@%I1k+cz{c zK*TRCs|1Sgnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHoxnG3< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..40d0cddf7779bffd6a874ae77d1a2a34c6ab156e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?<*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_0#=V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_SendStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_SendStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..3f8d415eb14a54f46be6b932109506997ec33763 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|=hCuD2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi<*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^^fPVA}uy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_StatementChoice.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_StatementChoice.gif new file mode 100644 index 0000000000000000000000000000000000000000..134c8fd89ef95b0de902229c5baee6170f9fd90c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19RrgxwNd(!NFnIbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrugc@ON literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..62e1e1aeb815a400ce0fe9bb3c8ca41ffd05007c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zXgF}-z??aAE-kBcaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auayk6=## literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a90e8244c2fdcf896e5633233885ea0dd2c441bb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|=hCuD2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3$Vw6p^b4*&nh&yTnNf8V~L zq2a)R19RrgxwNd(!NFnIbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrug?V9Y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateExtendedConditionalStatement_then_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3a6a8f372870b37fbfd16c117f05d722e20fe8d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&CGIaA3}yIhU4IIygA&nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO54h{z#92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau4#$MC_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a62440d6d571a30d0a1af820bb10c721891b9a97 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+1sf`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=&gkWd@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bdb8c8410cd164e4679919ddbc310eab519278a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b5Q9aKORAVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0|4p&V2c0% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7550e1dab5f7bcb316ea02602434eeb513e8d581 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrgad0@`;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=$@L*^F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..e842ecd67365a95aabd5ed43455afedea5653272 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6aeZgTn!!_^#<{K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^~t3U{?SD literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..a39f4d976cea15e897c64923e219c8fec5ac52cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$Udnd9Ja04Tm|x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=&gkWd@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..317f35d2e1d1c5b44240d12e5e80a0b2a95fe0f1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5na+V4vzMP> z7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E G8LRM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SH};a{Er literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..bdb8c8410cd164e4679919ddbc310eab519278a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b5Q9aKORAVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0|4p&V2c0% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1d08d2828af1f0344e1e9297a2c343e993e4187 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO54h{z#92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau3GG5dG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0b8b572db5e6bef45771670672f3610690329c5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsnT<08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru!0TX7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..153c395ba91c1454417c451cd8e69cd97feb3f2a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_j)TJi2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7c430baac7a0405e5a2ff79033f6770978f35a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|$HC!%gM-7a>1sf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..153c395ba91c1454417c451cd8e69cd97feb3f2a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_j)TJi2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..ff5397fa2a2aebf8109630fb09cf86d7aaf9bec6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yISvj792^{WO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_SO5S3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bdb8c8410cd164e4679919ddbc310eab519278a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b5Q9aKORAVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0|4p&V2c0% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a191025cebac02d320e3e3fed4c3448382ef11d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|$HC!%gM-7a>1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OpC@9@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0b8b572db5e6bef45771670672f3610690329c5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsnT<08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru!0TX7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..1f0855e9a49b9d3ca74e703d16a2accd5a05ded6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI0bzhzU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f33bed84b34ccc94763bbab24447a1ff5e5be82b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yISvj792^{WO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=$@L*^F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed8ee387a3ce098b74d29d76ef4005710845f6ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=&gkWd@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..a191025cebac02d320e3e3fed4c3448382ef11d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|$HC!%gM-7a>1sf`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=&gkWd@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8324a2c6fdde458bec606eed2c85f44151573a6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO54h{z#92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau6T3*xu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..37db3e582f3910396fd0119976fcaf1023feb7c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$Udnd9Ja04Tm|x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI0bzhzU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b73db01fb3d86bf4cfb638e53059e7c1e9d29bb0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$Um4mOV*ROub(! zIny~%WA^eB>>_$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZc!C$HX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..3fbe2cd26e8801c8e58583c6398efe87049eaf89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsnT<08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru*$ZHA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0b8b572db5e6bef45771670672f3610690329c5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsnT<08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru!0TX7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0b8b572db5e6bef45771670672f3610690329c5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GsnT<08o6_bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru!0TX7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a62440d6d571a30d0a1af820bb10c721891b9a97 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+1sf3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXA;wV7mYS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a31e5142add7f49c9be1e2fa87e1668b5f3e0879 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6aeZgTn!!_^#<{K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^~q`U{?SD literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7c430baac7a0405e5a2ff79033f6770978f35a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|$HC!%gM-7a>1sf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5089b916e43f193448fd1fd28d0210e7da016ce6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19RrgaR7=sIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXA?*V7mYS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d5442892a77c6b18f674c575a94e05304bc4f509 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$Udnd9Ja04Tm|x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=34PX!e literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFieldExpression_value_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1a463f952c48f9d8df14b4841d874aa03106fa4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aA92^cfI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI0bzhzU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..08f15c5851e003aa21471cc9e59ddd3b43beedce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&NW{U*8-(dVl`>OO=(ormF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OR4ro8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..06250be4d48c5751f1b6874a0a721b7302ed67fb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H ze}Db@=IGJ;^XFfxtlTwS4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&N%ZV$uKr literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b652ac0ce4d208bbb5611036dc48e787633b977 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecnm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmGtz%9A literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..40615e7c027eba65c9b2a0b0d2a96f3e90687078 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7FKV!N8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..eaf17faeea7e097befb43d67b3ee973f12aef6c3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c z{Qmm&&C#Rx=g+@XS-ESv8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7FKV!N8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..de6e628c93257a1e39cca0ad267bc4db38c872a7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}zkuT@6Vrqsj_m{bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruOBG_q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..1329dce960fdbc563be198b4478673ef060a99b2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`!;4- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_LoopStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_LoopStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..da5f95c14669381d3802bc56f820ae68a5372f8d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`!;4- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_NullStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_NullStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..53810673cfabfaa42dbb0263f9a9c674ff7b6188 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nMC@j~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_OnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_OnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..bee2a075173126a06a296881500ad93dacac2229 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}^zHH%E`&pFjUnW#z8vYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7uZ)5WS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..35b22bb9c987e1c4c5b1c3ee6a0a91fa8bbc7a85 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Um4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_;@%I1k+cz{c z{Qmm&&C#Rx=g+@XS-ESv8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5;@%I1k+cz{c z{Qmm&&C#Rx=g+@XS-ESv8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5QR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=dj$!-& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f66fdd6f6840310ad21c5711dd3d49a54931a452 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?OO=(ormF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OgY9Du literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_SendStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_SendStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..09b55686f560bd8e89b397d2b3c840cbe3c28e00 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_OO=(ormF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ow$Niz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_StatementChoice.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_StatementChoice.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d557467a1b34f9231647355e0c1b0d1f3c5cdd6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2c$}uWybXy+42crOL`()75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gizkuT@6Vrqsj_m{bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruO><(# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b6df378675bf2d7a741c5933395bafc19999544 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWl`z+*E2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_UnlessStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateForeachStatement_body_UnlessStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a36743b171e24e11461c892ffb377316367d0476 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2c$}uWybXy+42crOL`()75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3$Vw6p^b4*&nh&yTnNf8V~L zq2c$}uWybXy+42crOL`()75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2git$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&N%ZV$uKr literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b9250890b5b7d4ab78945c80e4fdddf355fa505 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&K##FE;huoSAl}!QsHJ>1sfVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`W!VQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..390f12c698b9d81ca01261cc6c6ae3331a40e827 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&R%>Vd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f2603b5337405879d0e669dbf20e582c22c9118 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK5UfUTo^QIWz4{gTsMc)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giC>8X>ZF?$gO1vLZx;)JpoZBm5;@%I1k+cz{c zT-x(uQ_szrX=fT74(yt)21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXF!*VX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc7b7f9c86054f5b0e3f9c2d5daae482bc5f196b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt zduh*$O+7bfrk!bUIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ%X<=dj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ebc2445a8dbba3b35f6e99165a3d08e8fc7e835 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8X7L`d9kVI=FGG+4Gsr(O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi}g^f literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c3493998c80c93d8d96a7e722c47ada4c23e110 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&Ee=^I}ua&6#Ou8XOMnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_LoopStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_LoopStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c3493998c80c93d8d96a7e722c47ada4c23e110 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&Ee=^I}ua&6#Ou8XOMnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_NullStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_NullStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..3841fcea399a39d36c09eea9b0ec208f37d9d06d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&Ee=^I}ua&6#Ou8XOMnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi;@%I1k+cz{c zT-x(uQ_szrX=fT74(yt)21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXF!*VX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6ac8cba7ef6790b9d8d5ba713c3bc0c91213742 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zT-x(uQ_szrX=fT74(yt)21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXF!*VX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..b72b5e57a836d7a258058ba58c0584db943c4977 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+f&AVpGq}nQ3Pl91iT7t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJw;$WBn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..0585fe299d00afdb8c00d969f8cbb53071ba5597 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1sf$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ($6;as literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..de6af47e2ec62aa673c0620d5143bb49b5863877 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK5UfUTo^QIWz4{gTsMc)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&R2|_| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..deb9805a5a69c19e6728c46b8d18b5a1d52edc13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zq2bb=7n^!+&P+Sg;Ba8qbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruH?d-W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_statement_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..1549a4f7db0ed670ede97aea5dcd5cd43641cbf3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&Ee=^I}ua&6#Ou8XOMnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_ArrayType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_ArrayType.gif new file mode 100644 index 0000000000000000000000000000000000000000..9cc534c34229ee094135a49d4c012e7b781d30f2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X7L`d9kVI=FGG+4Gsr(O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ%X<=dj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_BooleanType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_BooleanType.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2120c180070b90687bb1da64278f62343e2e718 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zUfT0wQ_oG1l*55t)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV*&@>28 z{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi$hSX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_NaturalType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_NaturalType.gif new file mode 100644 index 0000000000000000000000000000000000000000..52baab8f56ed351ff02741b4a59fdcb6dc04aee2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ&{b6DN literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_QueueType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_QueueType.gif new file mode 100644 index 0000000000000000000000000000000000000000..76f9cb7046b8b718c73690bb2d79db60144b5609 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUfT0wQ_szrKq-d$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj-+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJh5Zm literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_RecordType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_RecordType.gif new file mode 100644 index 0000000000000000000000000000000000000000..11d4e22f719ce8dbf0a7927c912ddb42f3a9db55 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&Ee=^I}ua&6#Ou8XOMnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_ReferencedType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_ReferencedType.gif new file mode 100644 index 0000000000000000000000000000000000000000..40cc20be27b373cc44a2be7d97c5db548d7ffd8f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2bb=7n^!+&P+Sg;Ba8qbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru^>|_| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_TupleType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_TupleType.gif new file mode 100644 index 0000000000000000000000000000000000000000..be1e90e848fff3d162db49f00afb3b33820a5632 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt zduh*$O+7bfrk!bUIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5;@%I1k+cz{c zT-x(uQ_szrX=fT74(yt)21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXF!*VX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_UnionType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateFunctionDeclaration_type_UnionType.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdab252ab4aa8da6bc52ed5d5d71b326832bd155 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_tKshn|f}}Ogq!yaA4PTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkMmSRr; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..b4bcd2315f044c090fec7a2e704c9440cff4e424 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b+1b1b-Ljb(A0PUNoXYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8{0$$7j literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c884396ac208a3c2733c94fda4e8589839fb0a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaREMZ~* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..320d11782509bfa6dec3f5337773335b38f9d0dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0febf574fedbac1c73bf71a651fde66b5d954a26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4MW5GRZEQ{N8B6m$!1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~u~V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1fb76995b81468c71e9c81adc35602d3cb9727ab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7nq$E|Yb=Y~bRu_6R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..e206651033fb95bef54b4531656c6e8bbce64d46 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua@9biuY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7c5af79864fea79bd032d317f21d20186d9c0c8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zUTa!&EVyTlWpSHM<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{DlU)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..320d11782509bfa6dec3f5337773335b38f9d0dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..76431fab60125745e3fa8d22a7a3fb4a3e59d16d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?sy|=|t|Dt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIm^t2=2&pg8q4A~oyc9&)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<9bc9J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..0febf574fedbac1c73bf71a651fde66b5d954a26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4MW5GRZEQ{N8B6m$!1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~u~V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b318df6d951c14f214bc9b87d4bbd29a391a3da5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b+1b1b-Ljb(A0PUNoXYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8_ZeGj) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6c63167ba52bed2647a3247a220d75bfcbe54e1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1FnmSa8o8%i=bj$X(ObfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;g24WHb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8edf15109137b8d66206ea742f198e97b1c242cf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQePLn% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..3df71fca2c5ca4820b33ac2f6b989d2b27645ea7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_t)*K7&Sz}q;rW3hqx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;g24WHb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..df228332e97da0002a4d37014bffad23c9bd1140 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&EdmT5~M8XN_fXn@;4e>1sf z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UVgvU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0febf574fedbac1c73bf71a651fde66b5d954a26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4MW5GRZEQ{N8B6m$!1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~u~V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bd0f7774595241a2fe9b8e9aea78a229be707f4b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQd|_e$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a59694a811e0f7bd281b90d08436d79a03d3b55 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB%OtvMFlv&OQxO($~KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrum}6qb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6c63167ba52bed2647a3247a220d75bfcbe54e1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1FnmSa8o8%i=bj$X(ObfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1sfYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..320d11782509bfa6dec3f5337773335b38f9d0dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..bd0f7774595241a2fe9b8e9aea78a229be707f4b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQd|_e$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..320d11782509bfa6dec3f5337773335b38f9d0dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d166c3d253e6c0565b9f923b9f13abb79ee11653 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b+1b1b-Ljb(A0PUNoXYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8|mR`&N literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4ff5f70fd854893735c02ea49c3f94384e76d15 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTa!&EVyTlWpSHM<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{E$U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..628a5cdd1dc64a04c5916523530f5087e9482854 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>t2=2&pg8q4A~oyc9&)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08=v0s(| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..68d26d0dda7b906fb791b7c9187edd133dc645c8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$1sfB0{}ezU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..159fb27cec4f3f310abb018e0bb68cb77279c119 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zz1FnmSa8o8%i=bj$X(ObfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaREMZ~* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d2896d1d939a72772a85059e428e6f9fb068749 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2XH7nq$E|Yb=Y~bRu_6R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasLr(m-H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..18c3881224685be21357329b46c6eea9b54bfdc5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua?YhX_R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8edf15109137b8d66206ea742f198e97b1c242cf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQePLn% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a17c76f85589d5314721cf04e34a791ecafa9b68 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2XH7nq$E|Yb=Y~bRu_6R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasN24J%Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..05dffc0a5ca466028783f0ab8ede814763b8e6fe GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTa!&EVyTlWpSHM<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|jlUt2=2&pg8q4A~oyc9&)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08=v0s(| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..b4bcd2315f044c090fec7a2e704c9440cff4e424 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b+1b1b-Ljb(A0PUNoXYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8{0$$7j literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c884396ac208a3c2733c94fda4e8589839fb0a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaREMZ~* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..320d11782509bfa6dec3f5337773335b38f9d0dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0febf574fedbac1c73bf71a651fde66b5d954a26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4MW5GRZEQ{N8B6m$!1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~u~V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1fb76995b81468c71e9c81adc35602d3cb9727ab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7nq$E|Yb=Y~bRu_6R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..e206651033fb95bef54b4531656c6e8bbce64d46 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua@9biuY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7c5af79864fea79bd032d317f21d20186d9c0c8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zUTa!&EVyTlWpSHM<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{DlU)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..320d11782509bfa6dec3f5337773335b38f9d0dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..76431fab60125745e3fa8d22a7a3fb4a3e59d16d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?sy|=|t|Dt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIm^t2=2&pg8q4A~oyc9&)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<9bc9J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..0febf574fedbac1c73bf71a651fde66b5d954a26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4MW5GRZEQ{N8B6m$!1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~u~V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b318df6d951c14f214bc9b87d4bbd29a391a3da5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b+1b1b-Ljb(A0PUNoXYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8_ZeGj) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6c63167ba52bed2647a3247a220d75bfcbe54e1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1FnmSa8o8%i=bj$X(ObfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;g24WHb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8edf15109137b8d66206ea742f198e97b1c242cf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQePLn% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..3df71fca2c5ca4820b33ac2f6b989d2b27645ea7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_t)*K7&Sz}q;rW3hqx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;g24WHb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..df228332e97da0002a4d37014bffad23c9bd1140 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&EdmT5~M8XN_fXn@;4e>1sf z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UVgvU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0febf574fedbac1c73bf71a651fde66b5d954a26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4MW5GRZEQ{N8B6m$!1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~u~V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bd0f7774595241a2fe9b8e9aea78a229be707f4b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQd|_e$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a59694a811e0f7bd281b90d08436d79a03d3b55 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB%OtvMFlv&OQxO($~KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrum}6qb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6c63167ba52bed2647a3247a220d75bfcbe54e1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1FnmSa8o8%i=bj$X(ObfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1sfYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..320d11782509bfa6dec3f5337773335b38f9d0dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..bd0f7774595241a2fe9b8e9aea78a229be707f4b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQd|_e$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..320d11782509bfa6dec3f5337773335b38f9d0dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d166c3d253e6c0565b9f923b9f13abb79ee11653 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b+1b1b-Ljb(A0PUNoXYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8|mR`&N literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4ff5f70fd854893735c02ea49c3f94384e76d15 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTa!&EVyTlWpSHM<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{E$U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..628a5cdd1dc64a04c5916523530f5087e9482854 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>t2=2&pg8q4A~oyc9&)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08=v0s(| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..68d26d0dda7b906fb791b7c9187edd133dc645c8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$1sfB0{}ezU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..159fb27cec4f3f310abb018e0bb68cb77279c119 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zz1FnmSa8o8%i=bj$X(ObfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaREMZ~* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d2896d1d939a72772a85059e428e6f9fb068749 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2XH7nq$E|Yb=Y~bRu_6R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasLr(m-H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..18c3881224685be21357329b46c6eea9b54bfdc5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua?YhX_R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8edf15109137b8d66206ea742f198e97b1c242cf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6fRYmNo?tg$R^(}~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQePLn% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a17c76f85589d5314721cf04e34a791ecafa9b68 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2XH7nq$E|Yb=Y~bRu_6R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasN24J%Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateImplication_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..05dffc0a5ca466028783f0ab8ede814763b8e6fe GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTa!&EVyTlWpSHM<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|jlUt2=2&pg8q4A~oyc9&)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08=v0s(| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0131b567575594c4c7503c17944aa883ca4b6e6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0|49|Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cece060fe09542073d400528555aad9eb4ccdcb7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^m^UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cece060fe09542073d400528555aad9eb4ccdcb7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^m^UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca9cabaa91c6aa43c7751780d64eef15e2b3fb58 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruT3upa literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..738bdbdafb9132ba389d104c9fd0511737574c8b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHZ@%f4nAgSxkg8)ZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|49|Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..c128024445b6b7641bd4d99026f5f10b424a9e2c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z+thR|IQW>Q1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaM5@ARH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateInfinitelyOftenPattern_subject_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..d9a8b0c656032be2f7e6c9e90aed25b7848c8205 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z+thR|IQW>Q1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuavXJAhN literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ce82e3f6c767e934de2fdbfa6c7320a78d3afbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLAll.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLAll.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ce82e3f6c767e934de2fdbfa6c7320a78d3afbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e46df1be8245dc8cf52cc14b1a73e7eb35059db GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8X7LW*t6+o&&)Gv4F?={O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OKW}5+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLRelease.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLRelease.gif new file mode 100644 index 0000000000000000000000000000000000000000..f93c92d061a6ee2415a93016875c723779b89dc5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+cVIXVcA|nP<`(4mj+Zt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJyL135w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a99bf2680b27f308383f2fa4f29db530b9382ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..dea9e2d9379090593fafa71c0981ccf8c5cc5eee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJ`iKx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_child_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..083f29cfd452f5bdaa77dcdce854d17a073ee4da GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd+EiVO*eaHo=Iys;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm51NMNpwt0}UDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$ zQ2fcl2x94g2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+ z)R?{e1iMI|)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms0BfjWZU6uP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLAll_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..446da01cb74a6948c4a8c8f65506b92dc54f6b92 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4GouG?Adg)XXcr-h64_}rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJ`iKx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b6df378675bf2d7a741c5933395bafc19999544 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_IDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..08f15c5851e003aa21471cc9e59ddd3b43beedce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&NW{U*8-(dVl`>OO=(ormF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OR4ro8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..84f99e615d3ffab5e6a21489ea90e83b7f1fd3bf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0Ipi=jNugGcz3yH2nV`KR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_7TgFI86Vnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=QR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=dj$!-& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..16510768be3c74a9511d9a3390bed57f0f6e4d4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nMY3kR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryEventually.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryEventually.gif new file mode 100644 index 0000000000000000000000000000000000000000..b7adb367b957c1ce7cefedd4251547d09038d54d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n{9k5S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b652ac0ce4d208bbb5611036dc48e787633b977 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecnm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giQR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=aW?}pQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_left_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0cf27b2923fdc8c3c99a8a21e2195caa8b85cf36 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`7TgFI86Vnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9wSYvUm4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_IDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..08f15c5851e003aa21471cc9e59ddd3b43beedce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&NW{U*8-(dVl`>OO=(ormF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OR4ro8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..84f99e615d3ffab5e6a21489ea90e83b7f1fd3bf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0Ipi=jNugGcz3yH2nV`KR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_7TgFI86Vnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=QR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=dj$!-& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..16510768be3c74a9511d9a3390bed57f0f6e4d4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nMY3kR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryEventually.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryEventually.gif new file mode 100644 index 0000000000000000000000000000000000000000..b7adb367b957c1ce7cefedd4251547d09038d54d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n{9k5S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b652ac0ce4d208bbb5611036dc48e787633b977 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecnm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giQR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=aW?}pQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLConjunction_right_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0cf27b2923fdc8c3c99a8a21e2195caa8b85cf36 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`7TgFI86Vnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9wSYvUm4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_IDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..08f15c5851e003aa21471cc9e59ddd3b43beedce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&NW{U*8-(dVl`>OO=(ormF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OR4ro8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..84f99e615d3ffab5e6a21489ea90e83b7f1fd3bf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0Ipi=jNugGcz3yH2nV`KR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_7TgFI86Vnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=QR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=dj$!-& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..16510768be3c74a9511d9a3390bed57f0f6e4d4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nMY3kR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryEventually.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryEventually.gif new file mode 100644 index 0000000000000000000000000000000000000000..b7adb367b957c1ce7cefedd4251547d09038d54d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n{9k5S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b652ac0ce4d208bbb5611036dc48e787633b977 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecnm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giQR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=aW?}pQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_left_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0cf27b2923fdc8c3c99a8a21e2195caa8b85cf36 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`7TgFI86Vnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9wSYvUm4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_IDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..08f15c5851e003aa21471cc9e59ddd3b43beedce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&NW{U*8-(dVl`>OO=(ormF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OR4ro8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..84f99e615d3ffab5e6a21489ea90e83b7f1fd3bf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0Ipi=jNugGcz3yH2nV`KR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_7TgFI86Vnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=QR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=dj$!-& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..16510768be3c74a9511d9a3390bed57f0f6e4d4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nMY3kR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryEventually.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryEventually.gif new file mode 100644 index 0000000000000000000000000000000000000000..b7adb367b957c1ce7cefedd4251547d09038d54d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n{9k5S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b652ac0ce4d208bbb5611036dc48e787633b977 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecnm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giQR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=aW?}pQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLDisjunction_right_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0cf27b2923fdc8c3c99a8a21e2195caa8b85cf36 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`7TgFI86Vnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9wSYv1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OpY3AK literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..f4fa5b5dd621ab07f31f67da9a06d476fb5a8a8c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8X689I520<90!L34h{~xrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OpY3AK literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd7e5e196f1c4eccc6e0f46168630fb46982f3d9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLj$t-uIXw(v~`m5x-R*pO;YnJ#b%ZW|NHwMi2i;)4@7^SFaCYE8E6^=DE?$&1hI5L z1jtSX)))nazLZEiHHMjI4^O$Uby9zG-=q>xcZEVU`Rb;RR E06_U)rT_o{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..6915cb8e979d6ddeef943dc3acba51b39b5dd0b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0Ipi=jNugGcz3yH2nV`KR@37|9$(0 zhK2(N4$PS|$HC!%gM-7a>1sfX)$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..8c450d08e049bdeccfef6a3272524ab6c5bced95 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ym+za=FOfnXVMNFaQOc}etx|D|NHh0 z4Gjkl9GEj_j)TJi2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gijS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLRelease.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLRelease.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8324a2c6fdde458bec606eed2c85f44151573a6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO54h{z#92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau6T3*xu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..f33bed84b34ccc94763bbab24447a1ff5e5be82b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yISvj792^{WO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OpY3AK literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed8ee387a3ce098b74d29d76ef4005710845f6ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=&gkWd@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUntil.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LTLUntil.gif new file mode 100644 index 0000000000000000000000000000000000000000..47209bab6d2c564148af5c8c3bf17d91e68d0f2a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK2(N4$PS|$HC!%gM-7a>1sf3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXA?*V7mYS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1d08d2828af1f0344e1e9297a2c343e993e4187 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO54h{z#92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau3GG5dG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_child_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..803ad17c617236edb0c57b99b8b0f4aa6eb6b1ee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA3}yISvj792^{WO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giSO5S3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_index_VariableDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_index_VariableDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..4388857c5efde0c251943aa1d2f0ae44fe164212 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%yDoy02JRfT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZc!C$HX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLExists_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..87c48c8982558a63d89a28de6d304e0e99d17be7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_j)TJi2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_1sf!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0Jv*oE&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..d6816a8e1f83342c7466a6a98612bd7542ad3ab0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ym+za=FOfnXVMNFaQOc}etx|D|NHh0 z4GnuGDecTmhXW0}rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJ`rQy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLRelease.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLRelease.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcfac9a6a5c0061968aa94f0a2325e67d225139b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zH0*hCspsaVv@M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJw<6xKo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..1969e09bf00a1a51b2d5a1c7495b564299e21845 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&JmaajEC#rnECN9S$_?nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJtyI`0A literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e06d6105a5ce16d011cfa5b40916a275c5392b06 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&JmaajEC#rnECN9S$_?nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=GDecTmhXW0}rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_left_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5e094b108bfb35ef225813883cf833d194b3d2e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zyXVEFo|~J}&dhW;(6DQ|8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_1sf!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0Jv*oE&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..d6816a8e1f83342c7466a6a98612bd7542ad3ab0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ym+za=FOfnXVMNFaQOc}etx|D|NHh0 z4GnuGDecTmhXW0}rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJ`rQy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLRelease.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLRelease.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcfac9a6a5c0061968aa94f0a2325e67d225139b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zH0*hCspsaVv@M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJw<6xKo literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..1969e09bf00a1a51b2d5a1c7495b564299e21845 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&JmaajEC#rnECN9S$_?nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJtyI`0A literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e06d6105a5ce16d011cfa5b40916a275c5392b06 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&JmaajEC#rnECN9S$_?nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=GDecTmhXW0}rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLImplication_right_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5e094b108bfb35ef225813883cf833d194b3d2e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zyXVEFo|~J}&dhW;(6DQ|8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O$*p4! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a8fe87eed44e27a037db8a59be8d9ecb8dc2559c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8X689I520<9EXMj4h{~xrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O$*p4! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5b61f9f0e66a9e4867b6b7b63946c7d3450e802 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLjzR20VKX_x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)iKUo+- zEFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4vzMP> z7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E G8LR1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaum8ebFu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe10b8e7be48682bff854c1ea3c88372d2107ac0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yISvg692^{WO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O$*p4! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..0be9b536eea7e6458e0434c7f3d6e77fd06950ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUntil.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LTLUntil.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e71d7bc9897713cb25eb5ec88b0010c7b6747f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK2(N4$PS|2Po*^;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR<0ieUQy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..2dd2a40235888f350e563bbb03b8c5bf29f124c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO54h;t!92|B{R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaui@?R7H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLPattern_property_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f96e37737f3815fd8a5d15fe9f9fb78d24a70db GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA3}yISvg692^{WO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giFDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaU|^U4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLAll.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLAll.gif new file mode 100644 index 0000000000000000000000000000000000000000..459f5fd9d69c222ad8a5bed53cf44ac82eb1d887 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaU|^U4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..2352be340136a51fe119f20f6e008eb25625850d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XB%OH605MUSnz5rlYfKx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;n4PpEM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..2352be340136a51fe119f20f6e008eb25625850d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XB%OH605MUSnz5rlYfKx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;n4PpEM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed8a2fe4f3736eae25b41506c98f8bef01f37eec GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&LSErenduYb-6>baZx2R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ3SQIz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..3f02915991f530e27c6c4abbd85ebb179d645134 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0Ipi=jNugGcz3yH2nV`KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHZ0$`W` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..13916458a4153456a118322bdfe92ca8f67727be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ym+za=FOfnXVMNFaQOc}etx|D|NHh0 z4Gq_tnvMkrud%dj)6v;AT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQnPEr( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLRelease.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLRelease.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e23d6c6810d5893378a4b062fa1f01f771fe917 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;n4PpEM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..262c4cbb9c21b8358e4ed47357f786c8b0e48963 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQXq+gZ* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLUntil.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLUntil.gif new file mode 100644 index 0000000000000000000000000000000000000000..37a86d1670c8e4232eb330fb25b3e901acdf2cfc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHYQec<> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLVariable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LTLVariable.gif new file mode 100644 index 0000000000000000000000000000000000000000..173020a7e953be5ab8ce2657bba22cc58eb3f94a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2XFn)3M;-HI|lbIy$?is{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RRB+h6Gb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9c1a08a75ad5cd0865b2883ceb9f73301511880 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b+HIu;zf#?rD)M`zb`H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkQQeFZ8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..64a27cb9075f62c0669b5454aa2847af0bfab664 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&EdmYC0AiyvEY9O-E#_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..529002fce5bbbbfb3fd4dcec84eba111ff52d1b0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gq_tnvMkrud%dj)6v;AT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPI$=lv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_left_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..63b8ac35c40d0c0797a2d6cd3203ada73890247f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#$PISa9$fOUpJLon6z_fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaU|^U4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLAll.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLAll.gif new file mode 100644 index 0000000000000000000000000000000000000000..459f5fd9d69c222ad8a5bed53cf44ac82eb1d887 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaU|^U4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..2352be340136a51fe119f20f6e008eb25625850d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XB%OH605MUSnz5rlYfKx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;n4PpEM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..2352be340136a51fe119f20f6e008eb25625850d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XB%OH605MUSnz5rlYfKx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;n4PpEM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed8a2fe4f3736eae25b41506c98f8bef01f37eec GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&LSErenduYb-6>baZx2R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ3SQIz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..3f02915991f530e27c6c4abbd85ebb179d645134 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0Ipi=jNugGcz3yH2nV`KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHZ0$`W` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..13916458a4153456a118322bdfe92ca8f67727be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ym+za=FOfnXVMNFaQOc}etx|D|NHh0 z4Gq_tnvMkrud%dj)6v;AT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQnPEr( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLRelease.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLRelease.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e23d6c6810d5893378a4b062fa1f01f771fe917 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;n4PpEM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..262c4cbb9c21b8358e4ed47357f786c8b0e48963 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQXq+gZ* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLUntil.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLUntil.gif new file mode 100644 index 0000000000000000000000000000000000000000..37a86d1670c8e4232eb330fb25b3e901acdf2cfc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHYQec<> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLVariable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LTLVariable.gif new file mode 100644 index 0000000000000000000000000000000000000000..173020a7e953be5ab8ce2657bba22cc58eb3f94a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2XFn)3M;-HI|lbIy$?is{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RRB+h6Gb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9c1a08a75ad5cd0865b2883ceb9f73301511880 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b+HIu;zf#?rD)M`zb`H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkQQeFZ8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..64a27cb9075f62c0669b5454aa2847af0bfab664 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&EdmYC0AiyvEY9O-E#_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..529002fce5bbbbfb3fd4dcec84eba111ff52d1b0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gq_tnvMkrud%dj)6v;AT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPI$=lv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLRelease_right_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..63b8ac35c40d0c0797a2d6cd3203ada73890247f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#$PISa9$fOUpJLon6z_fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nGa_cZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..7782f89b952b45316e987faebd33aee42261967a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XA6o{r%?XoBQ+cU#h&cYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nGa_cZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..4e1434e9ef7c82202d10ca73373532cba71d30fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&NW{zuz2vbASH*OO=;)O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_6>ylsEBsH&6Y-Wk@zrXK+=&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW$ zwC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF)W)W4RYeAC E0L7$df&c&j literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUnaryEventually.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUnaryEventually.gif new file mode 100644 index 0000000000000000000000000000000000000000..34a801eb6e797f905fa7e58ff43edb3e5167ee0e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&KDF`uok%H}~h?zf^f?*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUnaryNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUnaryNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..7782f89b952b45316e987faebd33aee42261967a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XA6o{r%?XoBQ+cU#h&cYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nGa_cZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a34a69f517d2ccdc3dfd03ccbd9f184f4701e20 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW4UBj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUntil.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LTLUntil.gif new file mode 100644 index 0000000000000000000000000000000000000000..ee45a465041a3e321356ac1b601ffbeedb18a673 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhKAo?f4@2U=KlQqmntvqnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OqVQy? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..100ff270f764f4da75b0d1f574ef93d413d6ab79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH2nVh`_0ie_vhcgRC#IFbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruGG}7K literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..3e64494997b5f61f5f50a381d2b12521bbce2330 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&KDF`uok%H}~h?zf^f?*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryAlways_operand_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf6dfd56a6d651e98ec7c60e9aec23851457687f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gq7){(f`x&HefJFI8UJHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIWS<)vNI)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09RS!6~4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bf7d040db36810109021ce2f921fe17990b3c83 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n^A~1W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..e5009558ce25c0f601eefdb58183212aa92f07db GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XA85{(9rh(f#-5FS}H^Yq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n^A~1W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..a46f97945e40897149860438455de6d7456bb8bf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&J~XUvIoQy8r(CWtS>Um4mOV*ROub(! zIny~%WA^eB>>_6>ylsEBsH&6Y-Wk@zrXK+=GfjmtCsdHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUnaryEventually.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUnaryEventually.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c339a52001de78c2940bf1c5691e07eb1f4600e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CTK@0zX#L|Z2*uj`Uu+9WlvQfy|4@V~$Bf#~n&^FZ|H`QqPqn}Mc5fZ|UUMi5H} zM1bsMV2x2w=u3&TQ)8HU_VAPoTPO85_f0DCH2!STb1i$4rkHxaRC1$ zwC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF)W)W4RYeAC E06b)7yZ`_I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUnaryNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUnaryNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..e5009558ce25c0f601eefdb58183212aa92f07db GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XA85{(9rh(f#-5FS}H^Yq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n^A~1W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..83d7ad8eda065867b2aca7b55544bb29521f0ef2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBfVqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUntil.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LTLUntil.gif new file mode 100644 index 0000000000000000000000000000000000000000..301a4bc4f3e6771485273e46bf3b23ed4a48fecf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OV)SH2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryEventually_operand_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d9f24061d345c0e43abc2096280a6ec1a0bf0cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH2nDe^~Rf{`|r=5r0%RuxYm9q!{Ee2H+qqh&U#90X QGfjmtCsdHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08mU1Q?_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b6df378675bf2d7a741c5933395bafc19999544 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_IDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..08f15c5851e003aa21471cc9e59ddd3b43beedce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&NW{U*8-(dVl`>OO=(ormF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OR4ro8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..84f99e615d3ffab5e6a21489ea90e83b7f1fd3bf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0Ipi=jNugGcz3yH2nV`KR@37|9$(0 zhKAo?zrHzo^#1($mntiFO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_7TgFI86Vnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=QR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=dj$!-& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..16510768be3c74a9511d9a3390bed57f0f6e4d4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nMY3kR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryEventually.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryEventually.gif new file mode 100644 index 0000000000000000000000000000000000000000..b7adb367b957c1ce7cefedd4251547d09038d54d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n{9k5S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a9ad1c7ea86004f88ce76518bfe1af8f36bf779 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XAzrcTHCVqOFsZ*LBG+ZIYT-DK@i2_}}06K=k+Xc_8}peDUwQ%|O#2K=CIFBZ#E~ zB0zRBu*N7T^rb}FsWHqvdw9x)t&{qj`zDom8hIDml|RP-FJ;6YL^= zT60dFbhBd6QM>Q$Vj&RJF#AQqheapbnHDCv$=_(Hxt*(Z`ek}PLrzUoYGYHjsv?6m E0J9-w_5c6? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b652ac0ce4d208bbb5611036dc48e787633b977 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecnm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giQR9U%ex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=aW?}pQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNegation_operand_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0cf27b2923fdc8c3c99a8a21e2195caa8b85cf36 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&KDF`t{Axqxa{}zf@VdYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`7TgFI86Vnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9wSYvnlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2ginlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=mRA6WT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3e8153c5c1cd60e0ff0db520be978cacb8a3bea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0Ipi=jNugGcz3yH2nV`KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z1sf_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..b84f5fc5edad940a0caaa376b331d70ba994e132 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oui0c) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUnaryEventually.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUnaryEventually.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8faf4291107a143612e92d76373175b817fa878 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW|d>} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUnaryNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUnaryNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce02cc1489c5e9c52d7908bfbf8b26535df4ecd6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XB%OT{{+hY>nlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUntil.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LTLUntil.gif new file mode 100644 index 0000000000000000000000000000000000000000..633561b32bb9d1295e086cdec92e61be35090aa7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK6fR*Nz1rTVuJVO{Zy7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRC1HI4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..26345fdc848e94df877dcfbde51fdb538c817f96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..7adf9acc6d9973159ba8eb5c0162949cc73e05b4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OWzS>t literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUnaryNext_operand_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..935ff3b5b4b94c4399791c17e2f6ef83c76b252c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gq_tt{n?Lw#ITzn@-!V>1sf3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxyVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..294329570316a2cff1183e3596924b3249557d38 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gihlT^YrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJz-B5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJwGhmni literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..1dbde94c82a6f013f77b08114ca8c097f071c0e5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&JnF^rC0e&9s?k92ySnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0JjTcE&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLVariable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LTLVariable.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2845b48160652b0f05839f30fa5f9e9ccf9cd35 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp<&OZ7d@M9rp-L#&~RYabTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruHKSsG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..5affab6fafa3f3747905ab28823396fb28f99ebb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0-(bqG!|1w3%ld8V>B5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJt3t*T4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac5b1fad17d006152dac13765f69b3173ad54295 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&JnF^rC0e&9s?k92ySnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=hlT^YrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJOX3h literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_left_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e3ff464af5cb9a73ffc04290db8c013be2806a78 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zyXVr2o=rE?W}b0qIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gihlT^YrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJz-B5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJwGhmni literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLUnaryAlways.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLUnaryAlways.gif new file mode 100644 index 0000000000000000000000000000000000000000..1dbde94c82a6f013f77b08114ca8c097f071c0e5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&JnF^rC0e&9s?k92ySnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0JjTcE&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLVariable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LTLVariable.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2845b48160652b0f05839f30fa5f9e9ccf9cd35 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp<&OZ7d@M9rp-L#&~RYabTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruHKSsG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..5affab6fafa3f3747905ab28823396fb28f99ebb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0-(bqG!|1w3%ld8V>B5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJt3t*T4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac5b1fad17d006152dac13765f69b3173ad54295 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&JnF^rC0e&9s?k92ySnnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=hlT^YrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJOX3h literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLTLUntil_right_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e3ff464af5cb9a73ffc04290db8c013be2806a78 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zyXVr2o=rE?W}b0qIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_after_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..831a90aceef60c07a025bd400202c28acb390e4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_before_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..831a90aceef60c07a025bd400202c28acb390e4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_follower_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_DecimalLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_DecimalLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..28b7d50cb7cd95b5285dfc763fb89b9fa4f6b706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6T)WnE>{#%cHI{8{I{*L2&yTnNf8V~L zq2a)R1M~0C2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^H(VDSI| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_LowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_LowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..da136985bc068515be68e498ff03b65f90d363e8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7`S7W*W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_NaturalLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_NaturalLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbf5393fe856b8a7456c199c80abbb28678fb583 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&YtVKOZ8#Yq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s32AT!|ia%Kx zK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@;$(hc98nc(5 zU>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiGa%!4V8=JCK H6&b7nGt^-C literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_VariableLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_lower_VariableLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..0bd262d20bafd713b6c1b57bfe264904afce266d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8X689I57YId?3TY!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWn1r(;(D literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..831a90aceef60c07a025bd400202c28acb390e4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_max_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..831a90aceef60c07a025bd400202c28acb390e4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_min_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..831a90aceef60c07a025bd400202c28acb390e4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_subject_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..831a90aceef60c07a025bd400202c28acb390e4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_until_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_upper_DecimalUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_upper_DecimalUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..63f9fd2cc561e9c5f82d3791952f7e9cd65b9f2f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TAMVe`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR1sf$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&IZ3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_upper_VariableUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLeadsToPattern_upper_VariableUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW{#%cHI{8{I{*L2&yTnNf8V~L zp<&O97d1sf&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIWC>8X>ZF?$gO1vLZx;)JpoZBm56>ylsEBsH&6Y-Wk@zrXK+=&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEHY!> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_InfiniteUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_InfiniteUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b0675035f79f4d4782ac12f99a383cf41872574 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt zyXVD=o|`w*&YW>LaA4PTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmE9b-QL literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_NaturalUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_NaturalUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..b42028e7060531e2ce0c0a71175e9d23372d9ac6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK4;aUi93&nRe!k!+`_4rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OULa!2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_UpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_UpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..cba39ba89889e204ac1230312d0892448449a550 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z?s@T|=jP3{GiMwQ9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&ME~VuSzy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_VariableUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_right_VariableUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..f01be4ea1ec2b76a78d65cbe2d10b57e5ad8eb82 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s@T|=jP3{GiMwQ9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K(~Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_type_ChannelType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateLocalPortsDeclaration_type_ChannelType.gif new file mode 100644 index 0000000000000000000000000000000000000000..08ad00b367b18cf80895a00dd9913d7eef4ef6a7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XESzc+qq7X4;uE4hIhGnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n@r!0z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_ComponentDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_ComponentDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ccdfdc5f88866a702b1562775e838d2619d1d2d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&KD9{q@G1qx=5r0%RuxYm9q!{Ee2H+qqh&U#90X Q6>ylsEBsH&6Y-Wk@zrXK+=3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08l_haJ# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_FunctionDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_FunctionDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..5498173d567dfbfb0915b1e75468c84d0aeaa898 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6T-x(uQ_szrX=fT74*dTgKR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_ParameterizedDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_ParameterizedDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..236984d2d5a19f2494b7aec2d424c39f6b62c0c7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zH2nDe^~Rf{`|ry0-@_urqt>{8{f>1sfMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A1qhqlE literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_TypeDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_declarations_TypeDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..a815b62ad9f3baaad2748071eeae2d83516d3cd0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEs_S=+QUx=ijfay!8Kn{QP+P|M%@1 z8XA85{(9rh(f#-5FS}H^Yq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n@r!0z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_imports_ImportDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModel_imports_ImportDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8935bbe017a7847573d968ea60f8e43bc8e7019 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK3)%zutIrbpQSN%Pv*!nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+==5r0%RuxYm9q!{Ee2H+qqh&U#90X Q3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09l*ko1! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..291b0624799ae649323e4f1508bd83109ed42136 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..66b71850f162273bdc938b3cc47c00a85c971863 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru55{6F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..535fd3825892ffa2a8b3b75ec542f783f1cbed9c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cc3c1b0c50afe436f1e8d10162b308cf68948df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9Qro;A6)u*R0WLYuhzl4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OPIVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e01fab445e08617c0c0c17bba6c526ebcc08b88a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp#fQZ*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZXf>=5r z0%RuxYm9q!{Ee2H+qqh&U#90X$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruLAPNU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..574943bb647857b02c0fd2d7ca21f9e5e62c83c7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW?{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..535fd3825892ffa2a8b3b75ec542f783f1cbed9c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0b400c3f014d9ec584b43eb3efd44d037a67d61 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>9fMBQq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..f2eedabaf1519a23bd85f71a48861eeae1fbfec0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlS~2E%?|m%Qb6s+S+zaR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauNs9<0K literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cc3c1b0c50afe436f1e8d10162b308cf68948df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9Qro;A6)u*R0WLYuhzl4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OPIVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6ad66a4ab7979006ddcf2a1bc3e5768c4ca4b26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP?2w#=} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0666f7248ba4c8981e3cf8983f10e6e3e61e786 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c9b7c6bc32cfd7faf75ff5872a7fac489be5a0a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm4#t_2@EX1QjKPFvfq>1sf$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;NxA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c9b7c6bc32cfd7faf75ff5872a7fac489be5a0a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm4#t_2@EX1QjKPFvfq>1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OWdURJ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..946cda2c3638b11eec31026e579608db32a7141f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z+jQ+(@Udf-Yu4zrwe6a&21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCs{VHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cc3c1b0c50afe436f1e8d10162b308cf68948df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9Qro;A6)u*R0WLYuhzl4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OPIVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c98ad11a90832721e771aa06f26666d7661490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;Er9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6fc892d00e399712f38096d8b6d2035b1251fb8a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6eT?;;T%yP{dowl}J)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..306a991c36f8e31c3b37bf4e71a8459ea1e628d9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9ccde5dc5be294dcd96c79612c9c1b746597f3b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou0>>4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..e01fab445e08617c0c0c17bba6c526ebcc08b88a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp#fQZ*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZXf>=5r z0%RuxYm9q!{Ee2H+qqh&U#90X$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c98ad11a90832721e771aa06f26666d7661490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;Er9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..535fd3825892ffa2a8b3b75ec542f783f1cbed9c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..86fde1e236e11f6c4dc311658422f3043fe630ec GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..65e9a41807f7a448b15e2b038cb1af59ac7b000e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW^DV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e18f0492dc2de5dcdb9164f32144eb1eaa006393 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlS~2E%?|m%Qb6s+S+zaR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f2cec76f794fb1cf0b730f5d7a6c1c561713878 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OuM1>W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f7d7ca62aca12227bedde682ecb5d6169f8212c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zo3338K6cD<%^IDywq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_rMVKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0666f7248ba4c8981e3cf8983f10e6e3e61e786 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0666f7248ba4c8981e3cf8983f10e6e3e61e786 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..66b71850f162273bdc938b3cc47c00a85c971863 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru55{6F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..52be1a507e595868ea240e4883649cdda2bddded GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp`q#8wcumNEZ3~jX=~dxT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOGGToH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3e3b45a82b4059837740bbcd25d1812ddfb32416 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruK?PwM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bed4f36c2aa77232d6c159714450adb63438202 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;NxA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2df954b265da6f828fdced94f49a7749ed3b53e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`q#8wcumNEZ3~jX=~dxT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPkzsuR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bef1cde0b83065184cff3421cf90a82a8faaae0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPIAVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e18f0492dc2de5dcdb9164f32144eb1eaa006393 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlS~2E%?|m%Qb6s+S+zaR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..291b0624799ae649323e4f1508bd83109ed42136 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..66b71850f162273bdc938b3cc47c00a85c971863 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru55{6F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..535fd3825892ffa2a8b3b75ec542f783f1cbed9c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cc3c1b0c50afe436f1e8d10162b308cf68948df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9Qro;A6)u*R0WLYuhzl4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OPIVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e01fab445e08617c0c0c17bba6c526ebcc08b88a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp#fQZ*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZXf>=5r z0%RuxYm9q!{Ee2H+qqh&U#90X$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruLAPNU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..574943bb647857b02c0fd2d7ca21f9e5e62c83c7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW?{V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..535fd3825892ffa2a8b3b75ec542f783f1cbed9c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0b400c3f014d9ec584b43eb3efd44d037a67d61 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>9fMBQq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..f2eedabaf1519a23bd85f71a48861eeae1fbfec0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlS~2E%?|m%Qb6s+S+zaR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauNs9<0K literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cc3c1b0c50afe436f1e8d10162b308cf68948df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9Qro;A6)u*R0WLYuhzl4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OPIVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6ad66a4ab7979006ddcf2a1bc3e5768c4ca4b26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP?2w#=} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0666f7248ba4c8981e3cf8983f10e6e3e61e786 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c9b7c6bc32cfd7faf75ff5872a7fac489be5a0a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm4#t_2@EX1QjKPFvfq>1sf$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;NxA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c9b7c6bc32cfd7faf75ff5872a7fac489be5a0a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm4#t_2@EX1QjKPFvfq>1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OWdURJ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..946cda2c3638b11eec31026e579608db32a7141f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z+jQ+(@Udf-Yu4zrwe6a&21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCs{VHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cc3c1b0c50afe436f1e8d10162b308cf68948df GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zx9Qro;A6)u*R0WLYuhzl4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OPIVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c98ad11a90832721e771aa06f26666d7661490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;Er9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6fc892d00e399712f38096d8b6d2035b1251fb8a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6eT?;;T%yP{dowl}J)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..306a991c36f8e31c3b37bf4e71a8459ea1e628d9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9ccde5dc5be294dcd96c79612c9c1b746597f3b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou0>>4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..e01fab445e08617c0c0c17bba6c526ebcc08b88a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp#fQZ*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZXf>=5r z0%RuxYm9q!{Ee2H+qqh&U#90X$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c98ad11a90832721e771aa06f26666d7661490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;Er9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..535fd3825892ffa2a8b3b75ec542f783f1cbed9c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..86fde1e236e11f6c4dc311658422f3043fe630ec GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..65e9a41807f7a448b15e2b038cb1af59ac7b000e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW^DV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e18f0492dc2de5dcdb9164f32144eb1eaa006393 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlS~2E%?|m%Qb6s+S+zaR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f2cec76f794fb1cf0b730f5d7a6c1c561713878 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OuM1>W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f7d7ca62aca12227bedde682ecb5d6169f8212c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zo3338K6cD<%^IDywq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_rMVKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0666f7248ba4c8981e3cf8983f10e6e3e61e786 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0666f7248ba4c8981e3cf8983f10e6e3e61e786 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^%pVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..66b71850f162273bdc938b3cc47c00a85c971863 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru55{6F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..52be1a507e595868ea240e4883649cdda2bddded GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp`q#8wcumNEZ3~jX=~dxT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOGGToH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3e3b45a82b4059837740bbcd25d1812ddfb32416 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruK?PwM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bed4f36c2aa77232d6c159714450adb63438202 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;NxA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2df954b265da6f828fdced94f49a7749ed3b53e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`q#8wcumNEZ3~jX=~dxT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPkzsuR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bef1cde0b83065184cff3421cf90a82a8faaae0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHeI_GeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPIAVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateModulo_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e18f0492dc2de5dcdb9164f32144eb1eaa006393 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlS~2E%?|m%Qb6s+S+zaR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f31e09d94c42d66ef5b961871d234bb128af42f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3(sf8RLzX8-*A%PKGJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=lH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOm}6)F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d22d79172021da8ff9a5f1567863f07f4838922 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{qgnpjiYb&&%eK{^3ty9YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7?_;_E literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d22d79172021da8ff9a5f1567863f07f4838922 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{qgnpjiYb&&%eK{^3ty9YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7?_;_E literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..799d63b430879656eeece64e52d0762f149570d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CTK@0zX#L|Z2*uj`Uu+9WlvQfy|4@V~$Bf#~n&^FZ|H`QqPqn}Mc5fZ|UUMi5H} zM1bsMV2x2w=u3&TQ)8HU_VAPoTPO85_f0DCH2!STb1i$4rkHxaRC1$ zwC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF)W)W4RYeAC E06N%ayZ`_I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..0456ccd112e1f9695c07dff3f5eb6149ff4d456d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z{`mU)#?d$X=igsed1=>lH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOm}6)F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f63e96e281e0d6489623795b4773986bb4cdb0b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`{V2H8%N*lpMQT@<)vNI)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kpJY}5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMortalPattern_subject_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7f19960c64100bf2efe527033bc3efc0ef33493 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4GllO{=RYa&HnlKmsMWcHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lmt*4q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dac10e77328c20fcc1c7799b7479bf5ac44cc6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ca73bf37b945f8f611c536255703ec7421cb627 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW{yV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b033b9d17bec867a04fbef0481c6e0bbd76f9000 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>B6kwsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..26345fdc848e94df877dcfbde51fdb538c817f96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..582e5bbcceda00d40eca8e130b154f476ce72c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tt{n?Lw#ITzn@-!V>1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW|d>} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7186b71a1d2358d52b247d5014402917be2e0bd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#&l(vEXBCEZ4N@wC$R%21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxyVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{ZnlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83dd4cb5be1e809acef0718933cf68869a95d61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b84f5fc5edad940a0caaa376b331d70ba994e132 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oui0c) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8db9bb002c804e55dcdbbe90cb8be2db785e379a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2639c9c9d27c80ee2a93a8915baaa4df0fcdec1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW|@V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2914f06dbd3f4343bbb479d879b990307f11d414 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou%BdB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..644241290572ac1a1195288e03978840f5207c63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuQgpe7JO`t<(f8~wq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_w1VKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaP#$kN` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Zy7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRC1HI4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8713703c7cae92c88f25fe26087045f5127178b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPM=VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_left_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dac10e77328c20fcc1c7799b7479bf5ac44cc6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ca73bf37b945f8f611c536255703ec7421cb627 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW{yV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b033b9d17bec867a04fbef0481c6e0bbd76f9000 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>B6kwsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..26345fdc848e94df877dcfbde51fdb538c817f96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..582e5bbcceda00d40eca8e130b154f476ce72c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tt{n?Lw#ITzn@-!V>1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW|d>} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7186b71a1d2358d52b247d5014402917be2e0bd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#&l(vEXBCEZ4N@wC$R%21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxyVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{ZnlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83dd4cb5be1e809acef0718933cf68869a95d61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b84f5fc5edad940a0caaa376b331d70ba994e132 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oui0c) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8db9bb002c804e55dcdbbe90cb8be2db785e379a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2639c9c9d27c80ee2a93a8915baaa4df0fcdec1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW|@V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2914f06dbd3f4343bbb479d879b990307f11d414 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou%BdB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..644241290572ac1a1195288e03978840f5207c63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuQgpe7JO`t<(f8~wq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_w1VKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaP#$kN` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Zy7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRC1HI4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8713703c7cae92c88f25fe26087045f5127178b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPM=VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateMultiplication_right_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..831a90aceef60c07a025bd400202c28acb390e4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_left_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..831a90aceef60c07a025bd400202c28acb390e4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableConjunction_right_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..831a90aceef60c07a025bd400202c28acb390e4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_left_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..831a90aceef60c07a025bd400202c28acb390e4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$QwlAINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&TALVe;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1f&UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a2ca8b1cd782c054c8d54eb9038d3a09e44634a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuYx CRA9IO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7fccd9e0e929355b25c9028b718370c279bb8b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA5xZ`9Ow)gTt=rYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7_E@Qd? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableDisjunction_right_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f2df50cdd1a6de1b8e156223a52ce3e6191c30 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UwpAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LRC>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;x?O@>m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..07919a46dc259eec2fea94b7f3980d079d0860dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3KCUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69d083ec04f06d28d63e2df4311aeb999497e65a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkIhht~} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..96aaeb404a0b1d271ffd24480302d1bfc3dfa422 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZWPGJH7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..29d9678055dfa5e7df6896be75359e338ba0c49e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GIDQ2FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M#@Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_left_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0140163874ccc7630ef767ed2ad1ef53645555f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubYH(-wd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..07919a46dc259eec2fea94b7f3980d079d0860dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3KCUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69d083ec04f06d28d63e2df4311aeb999497e65a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkIhht~} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..96aaeb404a0b1d271ffd24480302d1bfc3dfa422 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZWPGJH7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..29d9678055dfa5e7df6896be75359e338ba0c49e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GIDQ2FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M#@Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableImplication_right_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0140163874ccc7630ef767ed2ad1ef53645555f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubYH(-wd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6c9d489e86b513b77de96f681dbb474b6394b65 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gnFM*0XE68W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm51OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$UdnFC}5AM4pQT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZ9{$T`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AJFJx8# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..52f734635fed4016ae0acd4df2d240a8793c4a4e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}5AM4pQT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZ9{$T`9tp>its5na+V4vzMP>7wOZQ zbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E8LR=- C_F?b< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateObservableNegation_child_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..90990826a6509028c27edc051c7194280e875ba0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v-OitY_DBH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmkC>8X>ZF?$gO1vLZx;)JpoZBm57J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5Kt}Mfo?X+`fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFT-VT}L) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a6e5cfd32c17c27a3b099f11e1d59823da222126 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cL%rtY_DBH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWm2$ziYn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a741cb08d406942dd4ad3d9aa3a73065151e58 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WyM*_3WCi21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFP7VT}L) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..01e1a013385c445898959df21670851f7e44347f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6ac@kP&>WXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0|0`nVSE4p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..52f734635fed4016ae0acd4df2d240a8793c4a4e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}5AM4pQT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZ9{$T3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFT-VT}L) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..a26e43a884e32fb436b3b07bbe9e5f9b096db4ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXa1V8Z|a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..a6e5cfd32c17c27a3b099f11e1d59823da222126 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7cL%rtY_DBH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@vM_>J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWm2$ziYn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..80ede06a3c72967196ab44981cd191ffd6795a64 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5Kt}Mfo?X+`fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR<)wPADs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..84d629741b9d157aa8c78e511e5b44fa38ac9bed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v-OitY_DBH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmjg=0Se literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c9c2343706da257e45c97f7c928dd29b450d1775 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gnFM*0XE68W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmjg=0Se literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..47d58d3614718870ba24405064b1b37c345dbe16 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIY376v7TMi)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0AJ^<-86 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..af4432517934a0496baac3a5190a012901bbd1fb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l|SQ*0XE68W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pcSr|bq z9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@Um!Du4 z>C>8X>ZF?$gO1vLZx;)JpoZBm5J zIv@gMCj)DYfrlb&nYlQhND`=ydIodY#yFF(O9 z(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+WvePO GSOWm2$ziYn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6c9d489e86b513b77de96f681dbb474b6394b65 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gnFM*0XE68W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8I@niD< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cd8caad999adedff16c9cb2b67cd3d363dc1d17c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~BKGw5qx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR<)wPADs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f496e2f1371f3e193b364e29fb8847b6c20fed73 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXe%V8Z|a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..04b6132ffb8345b9bbba4bd19f55a67bf3ca662f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIY376v7TMi)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0B8Ib^v2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a741cb08d406942dd4ad3d9aa3a73065151e58 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WyM*_3WCi21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFP7VT}L) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..90d0d79dc31ce347b9f268bea80be06a890d1f51 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFT-VT}L) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6c9d489e86b513b77de96f681dbb474b6394b65 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gnFM*0XE68W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFT-VT}L) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bdcd7fffee2ec8f7b0ecfec45023f801ebf8470c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO5Kt}Mfo?X+`fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$UdnFC}5AM4pQT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZAWMKjT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e21fda543cfbf5881db3dbb6535cde7aa43c5f01 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfQ;Z{J-eo>0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXe%V8Z|a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..72ec73242731223eb62452a3e031dfd75c0c0c26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0B8|75uU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..caaed52e14d2a129c6b7767003f4f924b8119a83 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%mFfjkM-=Dt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SHSi(t`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=7)nSwX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cd8caad999adedff16c9cb2b67cd3d363dc1d17c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~BKGw5qx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR<)wPADs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cd8caad999adedff16c9cb2b67cd3d363dc1d17c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY7~BKGw5qx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR<)wPADs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..339519586c3bf5ad9e41457c365e7a6e81d4a7ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXHk8Vc-A& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91bb42f1a6b8990e5e8ddc69a60a68c026aed33f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kP&>WXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0|0^fVSE4p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c9c2343706da257e45c97f7c928dd29b450d1775 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|2gnFM*0XE68W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXHoJVc-A& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..41c86b3dbc151c134e801c09022191813b11b950 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}5AM4pQT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZm*I_jP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateOnStatement_condition_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e21fda543cfbf5881db3dbb6535cde7aa43c5f01 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aAfQ;Z{J-eo>0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXe%V8Z|a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..971790b3c45cef83e177de7f27bcf21867c2542e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG`!ez>1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJwu3(q| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b8f31eb6beb1fe71c143ec65c1ac2550f260073 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..288ee3a4e9beb6a1f8acd7f2144a174bbeb92811 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a}zOE-Hqok^Q{z@cH+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_Sj-9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1808fc8a0fae1d32b668246de1439c203e1c1844 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK3h=F5T?ebS7=)0f&ZN)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiQVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..5756f1b8b37551f4e94c3741d40267c48e1a61be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ&$zfsu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b70b1497af660ddacd6c3759792bb92f4686ffa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_r;z|H+wdnNt=1Vp<&l_H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3da98f774369141f4654a5bcd2bbcdb33eadef6e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG`!ez>1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8eo_J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..649a0782c2cd31abfd6438b7b6530463f2c1aaf5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gk~$T)Nq_=}g+p0}c(lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca17b1cefc8770c8f8a57ffa31341a4311b1256e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|w;E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..649a0782c2cd31abfd6438b7b6530463f2c1aaf5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gk~$T)Nq_=}g+p0}c(lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..2c570bf5adabad89ef13841c74a34804d9f38bbb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&H=}bLnQ!rZZ_X4>&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4344d571355a55cc035e37990dc46568f09604d0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3h=F5T?ebS7=)0f&ZN)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f87e1e2aecfabc4b1c4c56eb9d9d4a9b7589d52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b8b4537783b150036988bbe6f02e5c0a1317768 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&H=}bLnQ!rZZ_X4>&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJyLSUEx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a9b7cdb673df58f83923d77af78d556f3efec02 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zzSwi=X3wTGX)_NvH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFjhVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57a2f0af089e99e45d790c0a63a4d196d2eeda0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn3*b(#@VtXVPXKaA?>yT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac3a4fd1c60d2fb4fbd2eb2059f4f2a4d45fb9e4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`a=VQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5be50cbcf4198adcb11af811f45f4d5b42043dc2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&KzlVlw~$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b8f31eb6beb1fe71c143ec65c1ac2550f260073 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|w;E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3fae4b217f49017e219d77e041640afcd688ded7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a}zOE-Hqok^Q{z@cH+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruH?m@X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5477752ac52227c5954437a4eb97f844d4d7be80 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zzSwi=X3wTGX)_NvH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG?QVblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterDeclaration_size_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57a2f0af089e99e45d790c0a63a4d196d2eeda0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn3*b(#@VtXVPXKaA?>yT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterizedDeclaration_parameters_ParametersDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterizedDeclaration_parameters_ParametersDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..d252f2b7614d85fe851b8c574f3b7be31376b361 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&D3_YYILVY`Ml#r%h+qbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruT^eFv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterizedDeclaration_variables_VariablesDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParameterizedDeclaration_variables_VariablesDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..9cd6c785747705ba509b67766bacf79ab44e349a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G_AQ7+;hybc#TeE+yDRZ^W*LR-?wjQ zXlT0D6nre$a*d@MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9ClwQmL literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_parameters_ParameterDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_parameters_ParameterDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..6cb8e23a3b253388a0e8be2e6508c84828e51c51 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhKAoizP`C}^#1<&mzGuTnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n^0a1I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_BasicType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_BasicType.gif new file mode 100644 index 0000000000000000000000000000000000000000..7894c6f74288346fd30fc577b59dfc57739cdd1a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zX!!l(>zf-#@9&>~X<6m2>1sfJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmP!DDCu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_IntegerType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_IntegerType.gif new file mode 100644 index 0000000000000000000000000000000000000000..a66756a6a8206097221ddf99d227562000c5e19a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhKAoizP`C}^#1<&mzGuTnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=zf-#@9&>~X<6m2>1sfJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm$nq!*) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..a5e5f9716cd00aead5c70a866b7f64e48623d7c5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gq74e0_7{=>7fkFD&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW$ zwC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF)W)W4RYeAC E06i*ZyZ`_I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_ReferencedType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_ReferencedType.gif new file mode 100644 index 0000000000000000000000000000000000000000..0056d63c98232b9ccfd7714ce4d3d2480f928f8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2c$BuWxP~y}y6{rDc`7rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OB8+46 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_TupleType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_TupleType.gif new file mode 100644 index 0000000000000000000000000000000000000000..ef7a76ee44545c285464c22ce5a69777f8840c93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z`}@b&H#d&n-#`D-vdUf4)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08mT4Un? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_Type.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_Type.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb744048dcb38a3e156db60a938d110d19653204 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c z{QmLv&5fh?_s_qyta8_MH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmXMq_aR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_UnionType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateParametersDeclaration_type_UnionType.gif new file mode 100644 index 0000000000000000000000000000000000000000..c048169804a6615425a5c191d45f8968a25496ea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_xF#lZ*CmDzkmLvWtF?8s{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQPn`9OM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_item_EventSubject.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_item_EventSubject.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c7362a442050af5d8a1272f6fb69ded67e7a447 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@yE>$`>IQ;(~KR@37|9$(0 zhK3h=Ufk@tc_!`50fz&-rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ofdyjs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_item_StateSubject.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_item_StateSubject.gif new file mode 100644 index 0000000000000000000000000000000000000000..38d77bbab6c0d9efba0dd5521fc028ef50978388 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}o&7PZQ(#{-kIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=*wqg$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;hp!k!85ya8~ z5g+&ksNMH=u@DGqnEfK*!=jVzObZj-+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OUw>lD literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_path_Path.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePathEvent_path_Path.gif new file mode 100644 index 0000000000000000000000000000000000000000..959b8924b24669468c75f3fe603543e3d2c5cc08 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&H=}^WtXD%`<6d4mcdxHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIWS<)vNI)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08>7-SOw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePath_items_NaturalItem.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePath_items_NaturalItem.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce9d337bc953d4377456bbf12d4a780f125cf69d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z`}^zfH%H&xpMU>S<)vNI)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09Q^JGQ< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePath_items_PathItem.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePath_items_PathItem.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c9ec36de2bd9200c45a1237cea35b48f6396bc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhKAo?f4@2U=KlQqmntvqnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=7J{D}b#!{zE=l}os`SJGu@7p&t zG+evZbnIC0nl+YfZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f53f0b8f1a5d909c1f44fc70df5ccf0b77df4f9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZof?+BE literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0cf5f67ddb4615b64cf03dc297119f242688f2b9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_u93lW5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OYzVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ff53277ff1cf64ad68a3016f74b39f196754a2f9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2b!Krenu~*Q~K@Ytz{^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZm?qMnb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..bead2775fc845d49a597972df6f5165200d04aa2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6g`nvNX{UbDustxadwbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruMBiZ< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..42143ef8ef9d309b6bcc4ae47c52f47335b22508 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zUc1(G>{#%cHI{8{I=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UX1dV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6549b9334e75240adcef7830cff0d9657bfeb6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZof?+BE literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..cce61835884a8fc95cc25e92ef52c6d1b2aa6d2b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>Cs9>l7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1ed6e4b4e01ec8fead10b4513d8b13e986cf3d6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXt;K*>DaO0HES%}+H`hJR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..0cf5f67ddb4615b64cf03dc297119f242688f2b9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_u93lW5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OYzVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..4837c02332fcff355f22eb38efa64cadfa9b001a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+evZbnIC0nl+YfZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..99afb2624bf141bea7507e511d9770e789960cb6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zy>_kX*sYb@K^baqWw1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^>9VG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..d23c315b85cb9702f36c842abc7b3c768c8c2012 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_>H61$^yk?DMTbs_V>1sfH61$^yk?DMTbs_V>1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OXend! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca0092aa9e0f0b6dcdb32e4e743db9ede0c32613 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd+l1&v17q&)>yW+>Fk=W21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXC$dVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0cf5f67ddb4615b64cf03dc297119f242688f2b9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_u93lW5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OYzVNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..89a18b0e4dfcd518e26265e52fbb4f0c5dd39862 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6g`nvNX{UbDustxadwbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru5m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi_kX*sYb@K^baqWw1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^>9VG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac131b19ecca8b4f13cb4cb3a34654533fc8bb8d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMDaO0HES%}+H`hJR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauSWME(b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a183edc3f9cda3a85b0f4d519b054aa476864fe1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Eeh)^zMx@R~K2ZEZTcrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ov2A2l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..ff53277ff1cf64ad68a3016f74b39f196754a2f9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2b!Krenu~*Q~K@Ytz{^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZm?qMnb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6549b9334e75240adcef7830cff0d9657bfeb6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZof?+BE literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..89a18b0e4dfcd518e26265e52fbb4f0c5dd39862 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6g`nvNX{UbDustxadwbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru5$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZof?+BE literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e990a9ec56963320d921b5a81c94f50991cf4acd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+evZbnIC0nl+YfZ92QAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP|SYMU^ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..be0bace1c7a859d6b626d78a700c6d1bf088c9af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUc1(G>{#%cHI{8{I=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UX2uV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc7c1b9ad621f36201d72fad50486f12c879f5be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt;K*>DaO0HES%}+H`hJR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauSWME(b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0231726db96b59e4f24efbb6a568066a1c914789 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OvNL2> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..714dd1e87bed3e279b70759b296bfe6b7570040c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuU%_8b}V?!8q2meon6z_fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~_kX*sYb@K^baqWw1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_!%VKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..99afb2624bf141bea7507e511d9770e789960cb6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zy>_kX*sYb@K^baqWw1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^>9VG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..99afb2624bf141bea7507e511d9770e789960cb6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zy>_kX*sYb@K^baqWw1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^>9VG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f53f0b8f1a5d909c1f44fc70df5ccf0b77df4f9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRT48+v literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f58e5a1f04f0a189583c60ad331af40af36d8860 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6g`nvNX{UbDustxadwbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruL@i+% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae6f7b79bd24e25cd4528dc79f815802820e9c5a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6g`nvNX{UbDustxadwbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru5$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaSxnX?( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1040531a55e244f7254aae160d558ec8e520ee0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUc1(G>{#%cHI{8{I=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPRrVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortSet_ports_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc7c1b9ad621f36201d72fad50486f12c879f5be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt;K*>DaO0HES%}+H`hJR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauSWME(b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortsDeclaration_ports_PortDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePortsDeclaration_ports_PortDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..49fd29fae41ed87d80e736b3c67c762460067e0e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&CGIaA3}yIhD&UIXF1%nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_after_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_before_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_follower_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_max_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_min_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_subject_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..625be45cc6204bcbf6ffad785eb50624cc8f3eaf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8>{ejmN@X8!*BmCG*enyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=`{<1~^Y`DcTy|;KbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru@iSsy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e55e97156d538a8de41c0adb497adb21f3335b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ ze*N+L=#4k?_usEvc4^miH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbc3f4322fbfeecc83bb7c7b9ac8f7d0067f2a19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z{rcng(Hn2(@4sKU?9#63YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A7jAOb0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1a974d0263d510caaae5fd79ae21ec98252ada5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Fqu@%!kFH}m)3uUvL%*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOHDhQ1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..74b2027d9670afbae19f5733ae316fe163d4b144 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}N1~qc`5n-+#Yy*`;06)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kJY-e? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePrecedesPattern_until_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..22168e68b0e29198b747a8f69118c9254b8243ac GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^{62c)&HVlME0&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lG-Klc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..07919a46dc259eec2fea94b7f3980d079d0860dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3KCUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69d083ec04f06d28d63e2df4311aeb999497e65a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkIhht~} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..96aaeb404a0b1d271ffd24480302d1bfc3dfa422 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZWPGJH7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..29d9678055dfa5e7df6896be75359e338ba0c49e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GIDQ2FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M#@Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_after_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0140163874ccc7630ef767ed2ad1ef53645555f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubYH(-wd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..07919a46dc259eec2fea94b7f3980d079d0860dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3KCUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69d083ec04f06d28d63e2df4311aeb999497e65a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkIhht~} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..96aaeb404a0b1d271ffd24480302d1bfc3dfa422 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZWPGJH7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..29d9678055dfa5e7df6896be75359e338ba0c49e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GIDQ2FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M#@Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_before_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0140163874ccc7630ef767ed2ad1ef53645555f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubYH(-wd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_lower_DecimalLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_lower_DecimalLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..94a62f9203428d9971fed098b28d4910df17ce5e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6T)WnE>{#%cHI{8{I{*L2&yTnNf8V~L zq2a)R12fak02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXeyV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_lower_LowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_lower_LowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a7ecc71fa3d1322b00ff8d3a7a96ba2f401ee07 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&CGIaA0QI86d;K!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkJuw!Td literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_lower_NaturalLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_lower_NaturalLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..4eb6a08808aa3f40a10278e748abf9ba74a58d8c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWC>8X>ZF?$gO1vLZx;)JpoZBm53tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..07919a46dc259eec2fea94b7f3980d079d0860dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3KCUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69d083ec04f06d28d63e2df4311aeb999497e65a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkIhht~} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..96aaeb404a0b1d271ffd24480302d1bfc3dfa422 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZWPGJH7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..29d9678055dfa5e7df6896be75359e338ba0c49e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GIDQ2FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M#@Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_max_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0140163874ccc7630ef767ed2ad1ef53645555f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubYH(-wd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..07919a46dc259eec2fea94b7f3980d079d0860dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3KCUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69d083ec04f06d28d63e2df4311aeb999497e65a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkIhht~} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..96aaeb404a0b1d271ffd24480302d1bfc3dfa422 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZWPGJH7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..29d9678055dfa5e7df6896be75359e338ba0c49e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GIDQ2FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M#@Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_min_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0140163874ccc7630ef767ed2ad1ef53645555f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubYH(-wd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..07919a46dc259eec2fea94b7f3980d079d0860dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3KCUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69d083ec04f06d28d63e2df4311aeb999497e65a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkIhht~} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..96aaeb404a0b1d271ffd24480302d1bfc3dfa422 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZWPGJH7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..29d9678055dfa5e7df6896be75359e338ba0c49e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GIDQ2FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M#@Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_subject_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0140163874ccc7630ef767ed2ad1ef53645555f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubYH(-wd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..42030b51ce1d2d7adcffe410dedef11ad8142208 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-XVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..07919a46dc259eec2fea94b7f3980d079d0860dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^U}oAGAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3KCUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..69d083ec04f06d28d63e2df4311aeb999497e65a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys1I|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkIhht~} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..96aaeb404a0b1d271ffd24480302d1bfc3dfa422 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZWPGJH7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..29d9678055dfa5e7df6896be75359e338ba0c49e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GIDQ2FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M#@Vo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_until_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0140163874ccc7630ef767ed2ad1ef53645555f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubYH(-wd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_DecimalUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_DecimalUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc6993fa46e901d58c7b7dc6e01719b39a744456 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$MqD17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG-YVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_InfiniteUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_InfiniteUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..96aaeb404a0b1d271ffd24480302d1bfc3dfa422 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lyK3b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZWPGJH7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_NaturalUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_NaturalUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..7dade8c41939a9ada0385e207d24042465204877 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6bSc%(OE=22gz0bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru=|W(R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_UpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_UpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdb5a6733519dbb6073b50668fd52b155b307dbd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>x*-#CJ_s1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq;AVBda3nPf7 z10q0nGO)%dDDA99YNmER{Un)7%IZ$Kv@)PVL zeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7TQ)**VwyGk7 FH2}3BU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_VariableUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePresencePattern_upper_VariableUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9b01aa7f8ba3e40c49ba0c5f21c3b317860f4fc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ0 CM_?2H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePriorityDeclaration_groups_PriorityGroup.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePriorityDeclaration_groups_PriorityGroup.gif new file mode 100644 index 0000000000000000000000000000000000000000..b93b3d2f5d4457d35d41a950a082fa3c06fd95c9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqO=KL7v6&yTnNf8QR+ zg^L@{OxrbG4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ z4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w%TKV2 z^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd*{X^R F)&T#ZV7&kU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_localPorts_PortsDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_localPorts_PortsDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f352d7156a7971feb9c2f7fc9ecbf2d98bee52a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=4PZ|I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_ports_PortsDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_ports_PortsDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f352d7156a7971feb9c2f7fc9ecbf2d98bee52a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=4PZ|I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..77a43bae486f7fadf8524f3709e6dc29bcc8d7f3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLqpS=Yr#FoEQ{CZM7Hgkt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SH}*I%9h literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..741b7da2222c5a88749f6231947925dba31467e7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zo7P+l?m1>zyhbOoZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}XoU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..bcf1f278fa9402f392f4e75d64f7cf0d4057abe6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|Nrsx1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~*Pf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b03160556d11dd2ad588a8b3b5f9b2550882b22 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaM5Mg2f literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_CaseStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_CaseStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c71b4cfb3240b08fe988c8b4fa87ff18b4c1ff4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z+qC9daL+Nz;x#&vZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW_nV2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6cc9ca21b65346b17a879f074b1ec70263aa356 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zG_AQ7+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{T6U)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c71b4cfb3240b08fe988c8b4fa87ff18b4c1ff4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z+qC9daL+Nz;x#&vZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW_nV2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f962e0f7845269460b2552fb08dfbdb59d852d9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08+zh9OB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b7d582fa3da2f89ea07c66fa54af21115b968c7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XB6`Tnp|wW?8&OC$eqVbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrumdj$s literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb602a6157687473f4ed1eaf14a659b8a43193c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=zhF-Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..6defd936b6326fa5b574f3ad42eef558bae7068e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sf? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_LoopStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_LoopStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..6defd936b6326fa5b574f3ad42eef558bae7068e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sf? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_NullStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_NullStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f810f8a30ff99549bef95db987ab9cfe5b3e0e57 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sf z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPR(V8Z|a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7884addd495ff8c64a9f05992c0b2c35ffa66b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO&S7Ez literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_PatternStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_PatternStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d35ecbc594eb15d278c9188512f8015bce85903 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOA7Nqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ReceiveStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ReceiveStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6cc9ca21b65346b17a879f074b1ec70263aa356 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zG_AQ7+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{T6U)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6cc9ca21b65346b17a879f074b1ec70263aa356 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zG_AQ7+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{T6U)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c59dd44ebe127b3ffb15778e0420656c7bcc598 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&HTb7Tj~pvUrV7WZSOkYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8`I9|*E literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0a1713d5daad6e3348320b4eecb90b0f9cc0dfa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIkmtWoh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_SendStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_SendStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d35ecbc594eb15d278c9188512f8015bce85903 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOA7Nqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_Statement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_Statement.gif new file mode 100644 index 0000000000000000000000000000000000000000..72c70855b1b64731a0346393a64331a6ff4bb344 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@wm6seG9RB~0pC51k|Gs@g zLqpS=Yr#FoEQ{CZM7Hgkt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJCdSD^| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_StatementChoice.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_StatementChoice.gif new file mode 100644 index 0000000000000000000000000000000000000000..66eed056387130b4b9a1ac950f0b0962019b1864 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`mHbwcws(mc?syBHMONR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasKs9>`I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5ad7c64816bc7b89746721cc8c27903510161c5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zXlPn3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<9bc9J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..eeca32a9bec88cf255731c63f1f5fb7dc8f774ea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO9${ht literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ToStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_ToStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..212161926c6d4f4f734949798b8047639b0a0fba GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqO=KL7v6&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauf&R}2w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..813b6e10c89906bd5f847d4e2c46607b6c2f0350 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zp`mHbwcws(mc?syBHMONR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasM2Vk=R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_prelude_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..433da751138a8eda6edad347f424c4b56142eae5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sf z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UVYTU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_states_StateDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProcessDeclaration_states_StateDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..f810f8a30ff99549bef95db987ab9cfe5b3e0e57 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sfYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasJNno=8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dac10e77328c20fcc1c7799b7479bf5ac44cc6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ca73bf37b945f8f611c536255703ec7421cb627 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW{yV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b033b9d17bec867a04fbef0481c6e0bbd76f9000 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>B6kwsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..26345fdc848e94df877dcfbde51fdb538c817f96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..582e5bbcceda00d40eca8e130b154f476ce72c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tt{n?Lw#ITzn@-!V>1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW|d>} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7186b71a1d2358d52b247d5014402917be2e0bd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#&l(vEXBCEZ4N@wC$R%21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxyVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{ZnlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83dd4cb5be1e809acef0718933cf68869a95d61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b84f5fc5edad940a0caaa376b331d70ba994e132 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oui0c) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8db9bb002c804e55dcdbbe90cb8be2db785e379a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2639c9c9d27c80ee2a93a8915baaa4df0fcdec1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW|@V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2914f06dbd3f4343bbb479d879b990307f11d414 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou%BdB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..644241290572ac1a1195288e03978840f5207c63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuQgpe7JO`t<(f8~wq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_w1VKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaP#$kN` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Zy7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRC1HI4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8713703c7cae92c88f25fe26087045f5127178b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPM=VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_channel_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dac10e77328c20fcc1c7799b7479bf5ac44cc6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ca73bf37b945f8f611c536255703ec7421cb627 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW{yV4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b033b9d17bec867a04fbef0481c6e0bbd76f9000 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>B6kwsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauPJYZk| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..26345fdc848e94df877dcfbde51fdb538c817f96 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP@oL`mz literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..582e5bbcceda00d40eca8e130b154f476ce72c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tt{n?Lw#ITzn@-!V>1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW|d>} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7186b71a1d2358d52b247d5014402917be2e0bd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zd#&l(vEXBCEZ4N@wC$R%21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCxyVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac917061beb51a20f63662a318a1483c65b89173 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gd4nW5LJPSgvW)Y1=hj4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&OT|VNC!4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{ZnlbHl4Oz)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83dd4cb5be1e809acef0718933cf68869a95d61f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMsN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b84f5fc5edad940a0caaa376b331d70ba994e132 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Edmx^^u1*c!_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oui0c) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c85d5ad3a7e887b2da130c7e2efb426a8d7e64ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XH7wPV4@)>y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..c449285fd3579ff6e5719f57abaccfe292bfdbb3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6714c4b294b004e1aaf215cb6d55a8592e6db05c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Z=5r z0%RuxYm9q!{Ee2H+qqh&U#90X;DgXcg literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8db9bb002c804e55dcdbbe90cb8be2db785e379a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+b-Cb}abV8p}0pI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP`#9x*G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2639c9c9d27c80ee2a93a8915baaa4df0fcdec1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UW|@V4na0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2914f06dbd3f4343bbb479d879b990307f11d414 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ou%BdB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..644241290572ac1a1195288e03978840f5207c63 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zuQgpe7JO`t<(f8~wq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_w1VKD#z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8712376bfbf99ae6aca7040846b3c90b6f0a0a79 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1DQ?Sn#nmmTTH{+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^+UVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec2e46d280cee7d21acf901849abc1f4cff90bcd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+y7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaP#$kN` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fR*Nz1rTVuJVO{Zy7-(`nl^T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRC1HI4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8713703c7cae92c88f25fe26087045f5127178b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTeB`Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPM=VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateProjection_field_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b7dec590e257f7e69a866b87fca269bb63cc1a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>sN?O5=!HI{4IblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ&|qKy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_AbsencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_AbsencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe708946d5829a5b2d0e624eaffab28b08279059 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqO=KL7v6&yTnNf8QR+ zz4T(wrkg!8&!jaRaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&R6~Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..d0db396817a9908d3402573a2bb776f663c2cb37 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2bbtJ)3U!%si9UaKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_Sa%8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_AlwaysPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_AlwaysPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b7775889a185aaaf820b6b4aeeac6cf4b1f487f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ExistsProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ExistsProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..abd488373a892928bc39c07f9362563751532fa3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmmm&Cwh8=kLE%x$OV{`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_LTLPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_LTLPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..20f19ea9f65bf9b58f96ef94eda98d375a5fb4cd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVeM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_MortalPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_MortalPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..dea9e2d9379090593fafa71c0981ccf8c5cc5eee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..f22f3742720b1eaf2b62b3b2d5b05ee05a362c3f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zz4T(wrkg!8&!jaRaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVeY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVe6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..da5a15f5c5ecbde398a13ad22965c03e50467d94 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt zd+EiVO*eaHo=Iys;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJ`iKx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PatternProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PatternProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a99bf2680b27f308383f2fa4f29db530b9382ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f8b380a87e2d90bfca2969b215978f3ad949801 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+cVIXVcA|nP<`(4mj+Zt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ce82e3f6c767e934de2fdbfa6c7320a78d3afbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ce82e3f6c767e934de2fdbfa6c7320a78d3afbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f8b380a87e2d90bfca2969b215978f3ad949801 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+cVIXVcA|nP<`(4mj+Zt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_PropertyNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..52d5d6813b7ef69580498df3a9d7e62b18375a0e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2bbtJ)3U!%si9UaKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruH?d-W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_SequencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_left_SequencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..993980b99f4169fa97e7d75959778d6f2bfcd223 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt zd+EiVO*eaHo=Iys;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&R6~Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..d0db396817a9908d3402573a2bb776f663c2cb37 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2bbtJ)3U!%si9UaKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_Sa%8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_AlwaysPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_AlwaysPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b7775889a185aaaf820b6b4aeeac6cf4b1f487f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ExistsProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ExistsProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..abd488373a892928bc39c07f9362563751532fa3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmmm&Cwh8=kLE%x$OV{`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_LTLPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_LTLPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..20f19ea9f65bf9b58f96ef94eda98d375a5fb4cd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVeM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_MortalPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_MortalPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..dea9e2d9379090593fafa71c0981ccf8c5cc5eee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..f22f3742720b1eaf2b62b3b2d5b05ee05a362c3f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zz4T(wrkg!8&!jaRaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVeY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVe6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..da5a15f5c5ecbde398a13ad22965c03e50467d94 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt zd+EiVO*eaHo=Iys;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJ`iKx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PatternProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PatternProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a99bf2680b27f308383f2fa4f29db530b9382ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f8b380a87e2d90bfca2969b215978f3ad949801 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+cVIXVcA|nP<`(4mj+Zt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ce82e3f6c767e934de2fdbfa6c7320a78d3afbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ce82e3f6c767e934de2fdbfa6c7320a78d3afbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f8b380a87e2d90bfca2969b215978f3ad949801 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+cVIXVcA|nP<`(4mj+Zt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_PropertyNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..52d5d6813b7ef69580498df3a9d7e62b18375a0e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2bbtJ)3U!%si9UaKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruH?d-W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_SequencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyConjunction_right_SequencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..993980b99f4169fa97e7d75959778d6f2bfcd223 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt zd+EiVO*eaHo=Iys;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O;S6Al literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..e01d292ec409d45567216700f69e706334bae343 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19RrgIdH%M2zE_Z1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@=jVCVn< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_AlwaysPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_AlwaysPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc23f293f702ebe09db5c03dc155125fae80d5f4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIR_3n0Ku;5YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7;kz=s{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_DeadlockFreePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_DeadlockFreePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b489fdd24da723b6410366124a1cb0dc2d31c89 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S^mVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..5279d7bfc655a5eeb4b7c58944b1ea4b977b819a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|=fD96AlNls4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S?gVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ExistsProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ExistsProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..89c5f57f9447f2011a9d2ffef465047d22c07aad GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmmm&Cwh8=kLE%x$OV{`1$en|L@y3 zG&CGIaA3}yIR_3n0Ku;5YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1N2UsM19 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_LTLPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_LTLPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..62e68eb56148cc9ab16df336a9e8cc89c62a9899 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?=5r0%RuxYm9q!{Ee2H+qqh&U#90XTP>1sf<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1N2UsM19 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_MortalPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_MortalPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..40f87e13167eb86713b2f1113bb61b8ce877c89d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA3}yIR_3n0Ku;5YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7;^kcCA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ab16d7263c1dad0c6aea3321787b5b15cb5f443 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnRDO(P}pJDbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruzO-On literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..6d27c0fbe678ab2830a3486b4f671e4f4408e7a0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv~kops>TP>1sfTP>1sfMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7;^kcCA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ab16d7263c1dad0c6aea3321787b5b15cb5f443 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnRDO(P}pJDbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruzO-On literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0846e72b6bcd26e91bed6e4d7536f5e8a2456c4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3lTqXzySz$O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_C>8X>ZF?$gO1vLZx;)JpoZBm5MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8z{$vyY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PrecedesPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PrecedesPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc23f293f702ebe09db5c03dc155125fae80d5f4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIR_3n0Ku;5YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7;kz=s{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PresencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PresencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ab16d7263c1dad0c6aea3321787b5b15cb5f443 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnRDO(P}pJDbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSruzO-On literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..a20a9792220c6ca20551a0b777c77d545b4b6303 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO52M#y@!LI3QK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1N2UsM19 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..5279d7bfc655a5eeb4b7c58944b1ea4b977b819a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|=fD96AlNls4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S?gVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..5279d7bfc655a5eeb4b7c58944b1ea4b977b819a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|=fD96AlNls4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S?gVd?+? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..a20a9792220c6ca20551a0b777c77d545b4b6303 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO52M#y@!LI3QK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1N2UsM19 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_PropertyNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..777a45bfe8dbe6e13d7487fb6572f60b7cdc686c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19RrgIdH%M2zE_Z1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`EvVLJc- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_SequencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDeclaration_property_SequencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3520a5d4eeaa9c44acf5626dfe7c4ef4a5fdcbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z3lTqXzySz$O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_Um4mOV*ROub(!Iny~%WA^eB z>>_Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&R6~Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..d0db396817a9908d3402573a2bb776f663c2cb37 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2bbtJ)3U!%si9UaKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_Sa%8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_AlwaysPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_AlwaysPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b7775889a185aaaf820b6b4aeeac6cf4b1f487f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ExistsProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ExistsProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..abd488373a892928bc39c07f9362563751532fa3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmmm&Cwh8=kLE%x$OV{`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_LTLPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_LTLPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..20f19ea9f65bf9b58f96ef94eda98d375a5fb4cd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVeM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_MortalPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_MortalPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..dea9e2d9379090593fafa71c0981ccf8c5cc5eee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..f22f3742720b1eaf2b62b3b2d5b05ee05a362c3f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zz4T(wrkg!8&!jaRaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVeY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVe6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..da5a15f5c5ecbde398a13ad22965c03e50467d94 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt zd+EiVO*eaHo=Iys;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJ`iKx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PatternProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PatternProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a99bf2680b27f308383f2fa4f29db530b9382ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f8b380a87e2d90bfca2969b215978f3ad949801 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+cVIXVcA|nP<`(4mj+Zt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ce82e3f6c767e934de2fdbfa6c7320a78d3afbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ce82e3f6c767e934de2fdbfa6c7320a78d3afbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f8b380a87e2d90bfca2969b215978f3ad949801 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+cVIXVcA|nP<`(4mj+Zt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_PropertyNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..52d5d6813b7ef69580498df3a9d7e62b18375a0e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2bbtJ)3U!%si9UaKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruH?d-W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_SequencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_left_SequencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..993980b99f4169fa97e7d75959778d6f2bfcd223 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt zd+EiVO*eaHo=Iys;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&R6~Vb1^n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..d0db396817a9908d3402573a2bb776f663c2cb37 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2bbtJ)3U!%si9UaKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_Sa%8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_AlwaysPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_AlwaysPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b7775889a185aaaf820b6b4aeeac6cf4b1f487f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ExistsProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ExistsProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..abd488373a892928bc39c07f9362563751532fa3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmmm&Cwh8=kLE%x$OV{`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_LTLPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_LTLPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..20f19ea9f65bf9b58f96ef94eda98d375a5fb4cd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVeM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_MortalPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_MortalPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..dea9e2d9379090593fafa71c0981ccf8c5cc5eee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..f22f3742720b1eaf2b62b3b2d5b05ee05a362c3f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zz4T(wrkg!8&!jaRaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVeY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S6QVe6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..da5a15f5c5ecbde398a13ad22965c03e50467d94 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt zd+EiVO*eaHo=Iys;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJ`iKx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PatternProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PatternProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a99bf2680b27f308383f2fa4f29db530b9382ae GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Ed#v1ilGo|$LT8V)$@nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiPVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f8b380a87e2d90bfca2969b215978f3ad949801 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+cVIXVcA|nP<`(4mj+Zt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ce82e3f6c767e934de2fdbfa6c7320a78d3afbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ce82e3f6c767e934de2fdbfa6c7320a78d3afbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|q+E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f8b380a87e2d90bfca2969b215978f3ad949801 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+cVIXVcA|nP<`(4mj+Zt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8DN+I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_PropertyNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..52d5d6813b7ef69580498df3a9d7e62b18375a0e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2bbtJ)3U!%si9UaKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruH?d-W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_SequencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyDisjunction_right_SequencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..993980b99f4169fa97e7d75959778d6f2bfcd223 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt zd+EiVO*eaHo=Iys;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1tbUpW8( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0bed64eef0909ba523cd80c467dad819cfa3cda GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp`oeiT5#|&OUpGnI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQS=wFrq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_AlwaysPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_AlwaysPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3062f7d4ca76cf4ac7b6e0063eeca538cce5e7c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruS^8pM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_DeadlockFreePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_DeadlockFreePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..258ef9873e783db6531fce214069104538e2221e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHX=wO%t literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0131b567575594c4c7503c17944aa883ca4b6e6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ExistsProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ExistsProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..1f3ec4289f0ec49374f81098c47632ef2e190133 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmmm&Cwh8=kLE%x$OV{`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruTO(p$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_InfinitelyOftenPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_InfinitelyOftenPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=RDblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau+qF)pM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_LeadsToPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_LeadsToPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..cece060fe09542073d400528555aad9eb4ccdcb7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^m^UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0|49|Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cece060fe09542073d400528555aad9eb4ccdcb7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^m^UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cece060fe09542073d400528555aad9eb4ccdcb7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^m^UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca9cabaa91c6aa43c7751780d64eef15e2b3fb58 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruT3upa literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..738bdbdafb9132ba389d104c9fd0511737574c8b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHZ@%f4nAgSxkg8)ZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|49|Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..c128024445b6b7641bd4d99026f5f10b424a9e2c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z+thR|IQW>Q1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaM5@ARH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PatternProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PatternProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..e03542c865bc06f8a72d6d83f9319e6943b21e24 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruq-SEn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PrecedesPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PrecedesPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3062f7d4ca76cf4ac7b6e0063eeca538cce5e7c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruS^8pM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PresencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PresencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..738bdbdafb9132ba389d104c9fd0511737574c8b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHZ@%f4nAgSxkg8)ZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|49|Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PropertyDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PropertyDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..0131b567575594c4c7503c17944aa883ca4b6e6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PropertyImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_PropertyImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR8vtQ`| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_SequencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_left_SequencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..c171fe0871b4ee991881993e61a674eef960953c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z+thR|IQW>Q1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~Q1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1_1tbUpW8( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0bed64eef0909ba523cd80c467dad819cfa3cda GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp`oeiT5#|&OUpGnI&HhAs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQS=wFrq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_AlwaysPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_AlwaysPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3062f7d4ca76cf4ac7b6e0063eeca538cce5e7c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruS^8pM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_DeadlockFreePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_DeadlockFreePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..258ef9873e783db6531fce214069104538e2221e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHX=wO%t literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0131b567575594c4c7503c17944aa883ca4b6e6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ExistsProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ExistsProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..1f3ec4289f0ec49374f81098c47632ef2e190133 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmmm&Cwh8=kLE%x$OV{`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruTO(p$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_InfinitelyOftenPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_InfinitelyOftenPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=RDblP@JR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau+qF)pM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_LeadsToPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_LeadsToPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..cece060fe09542073d400528555aad9eb4ccdcb7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^m^UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0|49|Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cece060fe09542073d400528555aad9eb4ccdcb7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^m^UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..cece060fe09542073d400528555aad9eb4ccdcb7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ zZECs}9DK~ua*d8o+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^m^UtItI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca9cabaa91c6aa43c7751780d64eef15e2b3fb58 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruT3upa literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..738bdbdafb9132ba389d104c9fd0511737574c8b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHZ@%f4nAgSxkg8)ZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|49|Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..c128024445b6b7641bd4d99026f5f10b424a9e2c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z+thR|IQW>Q1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaM5@ARH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PatternProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PatternProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..e03542c865bc06f8a72d6d83f9319e6943b21e24 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruq-SEn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PrecedesPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PrecedesPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3062f7d4ca76cf4ac7b6e0063eeca538cce5e7c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&D3dT?-CAW@))bN2hJqbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruS^8pM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PresencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PresencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..738bdbdafb9132ba389d104c9fd0511737574c8b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHZ@%f4nAgSxkg8)ZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|49|Ukd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PropertyDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PropertyDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..0131b567575594c4c7503c17944aa883ca4b6e6a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8o5Yr(M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHXIAE9n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PropertyImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_PropertyImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..0091f1733a68e5a6bc22d34ae25db3d4051721a9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR8vtQ`| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_SequencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyImplication_right_SequencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..c171fe0871b4ee991881993e61a674eef960953c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z+thR|IQW>Q1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~Q1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^_nVITki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a7eae3f0af1acc79e5eb986007a9d899fe3602 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&O9Jv}#j($1tg9B|k*T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaH$zgo} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_AlwaysPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_AlwaysPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..2777a6e8d58bdd6270a5a07abe18d762bfafa467 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&Jmav8U%|PuiI@hXW3~rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OoZDnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_DeadlockFreePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_DeadlockFreePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..87071228bceaa18baa47fd35c3a16d61b2122fe2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ExistsProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ExistsProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9aca9bdc40428c636e66551e59e2fb7d04ffcbd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmmm&Cwh8=kLE%x$OV{`1$en|L@y3 zG&Jmav8U%|PuiI@hXW3~rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oo&;n@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_InfinitelyOftenPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_InfinitelyOftenPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dc793f5689381c89d45912beb05826e564f9575 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0*h?r{`u*+L<(m0}i{Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQm3t#B~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_LTLPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_LTLPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..60989d012bab58f7d48fe1e1a8bf0340d6cef5e7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;%l3@D) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_LeadsToPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_LeadsToPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a164d14297f4d413267c43c52611463391a58819 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z-Sc8k&&{5+GieS79Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_^?VMG7` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_LeaveStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_LeaveStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dc793f5689381c89d45912beb05826e564f9575 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0*h?r{`u*+L<(m0}i{Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQm3t#B~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_MortalPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_MortalPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..5389eace04f2be0b4c39e1f60ff43b733816537b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Jmav8U%|PuiI@hXW3~rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oojznn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..d70b709b9b18b555eb16b29952778bc91303e596 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s>7N=VnjZnKXw34!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UP;+VDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a164d14297f4d413267c43c52611463391a58819 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z-Sc8k&&{5+GieS79Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_^?VMG7` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a164d14297f4d413267c43c52611463391a58819 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z-Sc8k&&{5+GieS79Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_^?VMG7` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..5389eace04f2be0b4c39e1f60ff43b733816537b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&Jmav8U%|PuiI@hXW3~rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oojznn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..d70b709b9b18b555eb16b29952778bc91303e596 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s>7N=VnjZnKXw34!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UP;+VDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..08b62b9af29ea343d501ce0ba5c87e57af6c8edb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt zyXVE8o|`>sXVM%FIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXHs#Vc-A& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac30bb460d174ec6526bc59f21aa88da49c4b66d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gnu1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O=SXC! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PrecedesPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PrecedesPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..2777a6e8d58bdd6270a5a07abe18d762bfafa467 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&Jmav8U%|PuiI@hXW3~rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OoZDnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PresencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PresencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..d70b709b9b18b555eb16b29952778bc91303e596 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s>7N=VnjZnKXw34!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UP;+VDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dc793f5689381c89d45912beb05826e564f9575 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0*h?r{`u*+L<(m0}i{Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQm3t#B~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..68f2c19729f0ab5c6df96621da576b3f8dd03756 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4;a_VnEBNjsC~aKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruNEu>( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..68f2c19729f0ab5c6df96621da576b3f8dd03756 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4;a_VnEBNjsC~aKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruNEu>( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dc793f5689381c89d45912beb05826e564f9575 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0*h?r{`u*+L<(m0}i{Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQm3t#B~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_PropertyNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1e7722b4d9927aa91291acee003b3f7411b3ed8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp#fQZ*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZXf>=5r z0%RuxYm9q!{Ee2H+qqh&U#90XsXVM%FIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXEtdVQl~a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreatePropertyNegation_child_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..56fb60498743a67013ab2b73a19f69bd493287dc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zyXVE8o|`>sXVM%FIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXEuuVQl~a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..bcdc6bb48d58e829db7f7838e21ae64e296141f7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b+HIu;zf#?rD)M`zb`H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkR=3W8- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e5a21bdb7f999ae506cbd548fb42d7bb52e721b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHb5MY=9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..262c4cbb9c21b8358e4ed47357f786c8b0e48963 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQXq+gZ* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d08a11744a3ae495b8f3c6668813f59dd5c2682 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gYiavEbk}mX>WgI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48USA(U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9414605a12befe75949b7df598a2559a2ac6c149 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XFn)3M;-HI|lbIy$?is{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..4a8a00c4834ccc07aef7fd975a1dd2022cc7cd5f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI20bhjx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ff095f15dedd907ff02181ce8f65377028dd1b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zUTbPP7970B(y~oQXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4JeUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..262c4cbb9c21b8358e4ed47357f786c8b0e48963 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQXq+gZ* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..475c9fc529172a36fd382860d89211496e6afbf1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?baZx2R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau<%3l-! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..f40bfaa7fb375192ace9a4809d8c79710ac0090c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXt>tYbSyY{jiqIqj?S*>YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9E@?OjU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d08a11744a3ae495b8f3c6668813f59dd5c2682 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gYiavEbk}mX>WgI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48USA(U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9c1a08a75ad5cd0865b2883ceb9f73301511880 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b+HIu;zf#?rD)M`zb`H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkQQeFZ8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..504fdc43840fdbb884f47d508ef38abd9f2899d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1GxpEI4?LrDdCr&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_k-Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a12ae41814139623445a2dd4a8e99f16f30fdebd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tnvMkrud%dj)6v;AT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaN+hIrm literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2bf1703890cc93d6c1562b1e0a54eaf605c0838 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaVPKd5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a12ae41814139623445a2dd4a8e99f16f30fdebd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tnvMkrud%dj)6v;AT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaN+hIrm literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..361b182bf49807ee700ef4cd35b2cc42c9de3c1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&EdmYC0AiyvEY9O-E1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~WgI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48USA(U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..459f5fd9d69c222ad8a5bed53cf44ac82eb1d887 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaU|^U4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..24ed2cbb19bd797b3093c490f9feea2f2202ec88 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB%OH605MUSnz5rlYfKx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;mM`8Q` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..504fdc43840fdbb884f47d508ef38abd9f2899d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1GxpEI4?LrDdCr&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_k-Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..e76646cad106065aa1ab9e647791a5541ac9067e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMtYbSyY{jiqIqj?S*>YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9GhF;77 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d70e42c42dc943b3554c96376ea11dd55e27eb6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&EdmYC0AiyvEY9O-E_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..262c4cbb9c21b8358e4ed47357f786c8b0e48963 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQXq+gZ* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..459f5fd9d69c222ad8a5bed53cf44ac82eb1d887 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaU|^U4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..262c4cbb9c21b8358e4ed47357f786c8b0e48963 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQXq+gZ* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e23d6c6810d5893378a4b062fa1f01f771fe917 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0|4KvUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ab6e9c96a9dc7c8e4f8c823e052ee8c5fec5933d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>tYbSyY{jiqIqj?S*>YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9GhF;77 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..31bed36aca99d12de3c6119c4f47942944c6335a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^`YgU!4E| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..504fdc43840fdbb884f47d508ef38abd9f2899d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1GxpEI4?LrDdCr&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_k-Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..504fdc43840fdbb884f47d508ef38abd9f2899d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1GxpEI4?LrDdCr&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_k-Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e5a21bdb7f999ae506cbd548fb42d7bb52e721b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHb5MY=9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec670471e4341637ed05dec9c932b9655d785a87 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2XFn)3M;-HI|lbIy$?is{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RRAd|&AR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6eb0b17baaa2d35a81ec562aa377740b235e0856 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI1PhW)q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2bf1703890cc93d6c1562b1e0a54eaf605c0838 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaVPKd5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..173020a7e953be5ab8ce2657bba22cc58eb3f94a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2XFn)3M;-HI|lbIy$?is{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RRB+h6Gb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d6fc1531d3da7b72c60470970cda75c53727195 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTbPP7970B(y~oQXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{{jsUp@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueExpression_values_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ab6e9c96a9dc7c8e4f8c823e052ee8c5fec5933d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>tYbSyY{jiqIqj?S*>YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9GhF;77 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..728fda56d598eef518aec3703cbe699a73fe68d8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^;7r;XAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4ggUp@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f1af02f3aefe65c798dd200ed1b175f61878ca9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI65VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa6b936531fdf68ac7c45bedcb69bebe2f171585 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPlzVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c58915b71930fa689e33f1da220eac12935f56b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bt!v?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;?GGO%p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae6b2e642915546c55c5c04570e5d17af16efcd7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R1836C02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPg|VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce7fc4f17f9e1102978bc128d913d748186f214a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6bScnY1%N22gz0bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru3>09& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..978ee2b3802b3c8e3e5451a6131333dc9e376097 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>#h3#CJ_s1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq;AVBda3nPf7 z10q0nGO)%dDDA99YNmER{Un)7%IZ$Kv@)PVL zeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7TQ)**VwyGk7 FH2| z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPlzVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..48f81119496c4846ba9944d55cb3d85cca1e2344 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=e-C$4v literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..2224a426ded8bbeaeed8d7564ae952db2fd1ce84 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z?rl&K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|8qU`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;?GGO%p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae4714fc6a70b4b8420e0fe96f09972c53b3d51b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^;7r;XAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4b#Up@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..160cd1837f9a13101ffe5df0c141181eec69f31a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&W_ZI|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&N@WVuSzy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..efad8ecbc00ede85d8f2f17472c3108d284c1b1a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4xC9l17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI40VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..90a8446b93e673cf3e21a7b40e86559ba3e35fed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl95|D92FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&N@WVuSzy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..2cbcfe13f5450378bd60dfa6158a21ba7a11414d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaNtbZ86d;K!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkrUSpd8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91e3ddb5024e17ac48b1fd18a08344af3d830bfa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lu+-b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuY(S75>b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c58915b71930fa689e33f1da220eac12935f56b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bt!v?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;?GGO%p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6219c0d7bbc0eb620e1fe81227221d933ffb96cd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4xC9l17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI3~VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..e2874afc547c928f0b438bb4321ea7afc8a0bd1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689IB+KI43OdA;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5kc+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..160cd1837f9a13101ffe5df0c141181eec69f31a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&W_ZI|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|DVUJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlfqGSF5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae6b2e642915546c55c5c04570e5d17af16efcd7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R1836C02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPg|VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa6b936531fdf68ac7c45bedcb69bebe2f171585 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPlzVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6219c0d7bbc0eb620e1fe81227221d933ffb96cd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4xC9l17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI3~VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa6b936531fdf68ac7c45bedcb69bebe2f171585 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPlzVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..511800ca233f480913644b9dff1da6a6e3fd305e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^;7r;XAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4lLUp@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..160e6520f6297374634e2c2d7b2b6218313937fe GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>#gyoq>q&nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|DVUJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlgXk-2W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..07adaab9f3a18020b0770b8d7bb1244b28cdd8de GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#PS<&OpR>O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI65VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..60091776c7d71c4dad0661db0cf5fdc3d825bf3b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a)R1836C02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UR#}VI=?n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1aa376ef1a3387a2b92e845a01e69bfc94e9bc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6bScnY1%N22gz0bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru3u0iw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..efad8ecbc00ede85d8f2f17472c3108d284c1b1a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4xC9l17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI40VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dba3d9c12e08119767e5e083f64d2bede91e913 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R1836C02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UR)9VI=?n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e29b3131e47a5fe285d57a522b1b7a859e382583 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ< CF<^QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_size_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ad499cb00c2e690be04e3a71f8d70b3ad70f61b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z?rl&K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|DVUC>8X>ZF?$gO1vLZx;)JpoZBm5kc+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_BasicType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_BasicType.gif new file mode 100644 index 0000000000000000000000000000000000000000..2224a426ded8bbeaeed8d7564ae952db2fd1ce84 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z?rl&K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|8qU#h3#CJ_s1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq;AVBda3nPf7 z10q0nGO)%dDDA99YNmER{Un)7%IZ$Kv@)PVL zeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7TQ)**VwyGk7 FH2|;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|DVUM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ< CF<^QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..d9e27cee7d42de8b9837cac5d8c10c2505e99ed8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl8~_Re84eB(yQZrF(bh@I>$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj-JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkr!DE{M literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_ReferencedType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_ReferencedType.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae6b2e642915546c55c5c04570e5d17af16efcd7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R1836C02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPg|VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_TupleType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_TupleType.gif new file mode 100644 index 0000000000000000000000000000000000000000..64e652345ea98d5e5c1679389b8aee31a0dfd307 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z3lu+-b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuY&@nFIL literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_Type.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_Type.gif new file mode 100644 index 0000000000000000000000000000000000000000..47d9aaf7c88fda269d120523ada96debb64babc2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c z0L9OwodGg{;=87+0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^5TN*z zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6>9H=pS z`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBFDYdaF JTUC+48UVN5U{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_UnionType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateQueueType_type_UnionType.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c58915b71930fa689e33f1da220eac12935f56b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bt!v?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;?GGO%p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d308aaade0a38a2da85419e6f08845935aa95ba GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG`!gJ;%3jyGihfII2_nDT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZU7GX#L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..963a72b9c92443954d7d4266eb3eae71e1c010d5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&++YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OE1sfMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8xPh$T7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dd025aad5c207ea6721ef017108f27920d868cf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a}z7dLxuo=H1%z~R8I>1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OU@>CL literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..d203b1d7444ad06025851896742ad53ab23a52dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zzS#5PX3xztX=e^N9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K;AVo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..983575cad2568ec0bbf634ede818e88382adcc52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)B4QE% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..29e698e053983cc44b55e7e1578931abe287c2d9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_r;zUH+ycLNjr1E;lQrxYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8xPh$T7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1785172c4434b4dd779fe87f98e166ef1721951 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG`!gJ;%3jyGihfII2_nDT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZSf?-Gi literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..38d77bbab6c0d9efba0dd5521fc028ef50978388 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}o&7PZQ(#{-kIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5A0}cmvO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEsA0}cmvO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW{zrq@6k7aA4PTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlGbYjc^ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..29e698e053983cc44b55e7e1578931abe287c2d9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_r;zUH+ycLNjr1E;lQrxYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8xPh$T7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..eef19355ec5e9a02413e6960e74311998619a533 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3h=Ufk@tc_!`50fz&-rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEs$g0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..210e156645de0ddd343c1b00724224842e219683 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X8{gd2zGn=9#oJ2OJLUnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=*wqg&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEs$g0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..983575cad2568ec0bbf634ede818e88382adcc52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sf$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZVs$oa~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..775ec0946294f677b9daa751a2adca6b04d3f3d7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zzS#5PX3xztX=e^N9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=*wqg&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXIH?Vjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..448138d70823fe633484f8c3d640b8d144660404 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zeX-}o&7PZQ(#{-kIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OE1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OUw>lD literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_maximum_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d2f734b1512dac405e7b55fbdba0935aec78f4b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK3h=Ufk@tc_!`50fz&-rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEs1sf$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj-`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=*wqg7J{D}b#!{zE=l}os`SJGu@7p&t zG`!gJ;%3jyGihfII2_nDT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZU7GX#L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..963a72b9c92443954d7d4266eb3eae71e1c010d5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&++YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OE1sfMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8xPh$T7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dd025aad5c207ea6721ef017108f27920d868cf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a}z7dLxuo=H1%z~R8I>1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OU@>CL literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..d203b1d7444ad06025851896742ad53ab23a52dd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zzS#5PX3xztX=e^N9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K;AVo?A9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..983575cad2568ec0bbf634ede818e88382adcc52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=)B4QE% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..29e698e053983cc44b55e7e1578931abe287c2d9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_r;zUH+ycLNjr1E;lQrxYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8xPh$T7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1785172c4434b4dd779fe87f98e166ef1721951 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG`!gJ;%3jyGihfII2_nDT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZSf?-Gi literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..38d77bbab6c0d9efba0dd5521fc028ef50978388 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}o&7PZQ(#{-kIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5A0}cmvO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEsA0}cmvO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW{zrq@6k7aA4PTH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlGbYjc^ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..29e698e053983cc44b55e7e1578931abe287c2d9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_r;zUH+ycLNjr1E;lQrxYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8xPh$T7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..eef19355ec5e9a02413e6960e74311998619a533 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3h=Ufk@tc_!`50fz&-rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEs$g0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..210e156645de0ddd343c1b00724224842e219683 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X8{gd2zGn=9#oJ2OJLUnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=*wqg&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEs$g0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..983575cad2568ec0bbf634ede818e88382adcc52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sf$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZVs$oa~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..775ec0946294f677b9daa751a2adca6b04d3f3d7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zzS#5PX3xztX=e^N9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=*wqg&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXIH?Vjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..448138d70823fe633484f8c3d640b8d144660404 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zeX-}o&7PZQ(#{-kIIwHF8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5C>8X>ZF?$gO1vLZx;)JpoZBm5+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OE1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OUw>lD literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRangeType_minimum_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d2f734b1512dac405e7b55fbdba0935aec78f4b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK3h=Ufk@tc_!`50fz&-rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OEs1sf$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj-`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=*wqg7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO52O1oJVApgtAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3j0UlafU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3408e141df3acd347555a1cd39dc39c05b7d9d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj- z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXu5V5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b61a66864fb7c788fbc0b04c86344306e7b0c7fd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b1S3!2t+%O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_ z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXpQV5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..28525dfe9c2e02c9d9f61cd810cf0b233051bd54 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6afEfd-(k!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1D(V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..517abc71fc31b8c73f46d78e074974c2ec1b2121 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnR5Un?67OP8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pc zSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@U zm!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5yJe literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..d56a04bddf1dea2014e520f41042568e2226198e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXu5V5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc9ca0a94820c0022c45884fac1e1180b220f9ab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?B0|1+OU?u<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{BAU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b61a66864fb7c788fbc0b04c86344306e7b0c7fd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b1S3!2t+%O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_B0|3eLUlafU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f0a0b2b5bda61f3ff66d5c2fdd9db36122c8c75 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv@$E*kRXnH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@ zvM_>JIv@gMCj)DYfrlb&nYlQhND`=ydIodY#y zFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+ KWvePOSOWm-t6+}+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..860276f4bbc86b28a21e481336d49a56df9c9b4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_&VdF8AlNls4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M_>Vp;$I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8eb45613da261b3206ce70b281d0003fe04fb19d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|=Rku45bT<+21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6hVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..860276f4bbc86b28a21e481336d49a56df9c9b4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9GEj_&VdF8AlNls4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&M_>Vp;$I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..15849811ea967913ded6aa37f39326c8efbec633 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkP`eShb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a6d6b3def689de6a19bb781156ca4c495eb11ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lTri-~a@>rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O@8n>Z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b61a66864fb7c788fbc0b04c86344306e7b0c7fd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b1S3!2t+%O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6gVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..2146504282c7ca718111e1821c7e58d47608791d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689I520C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydIodY#y zFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+ KWvePOSOWm-t6+}+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..b68de5e26d9428e5a465918c0dab2e30d003f0cc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{F=U)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5fc9320ef7731caed334a70573523974be4fe561 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlEK4a7X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad157ff4a143ada78236552b28a1ac28fef9ab26 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19RrgIndw$1iPlI0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXpQV5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..d56a04bddf1dea2014e520f41042568e2226198e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXu5V5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a308e534a38ad6bc21b6e3c786a0bd44d242290 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|=Rku45bT<+21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6gVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..d56a04bddf1dea2014e520f41042568e2226198e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXu5V5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..18a3c3f392430940b5790278107a84dd8b986909 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^V9uO52O1oJVApgtAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|3n$UlafU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..327451149c2180bfb3d349e160dd69593534fd3b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnR5Un?67OP8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pc zSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@U zm!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5yJe literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9e96e9954d6d4bf70cf208a74232237b172f7d6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aA4m3Cb!LI3QK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{F=U)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f82670c55d5978738d2bee16a6ec9be7f615ed93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlF1Y^_y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..57fa1bbb6eb46818734c374c7dd090aaf9f254c2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%sBuOcGxvt4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B! zEQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w z%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd J*{X^R)&OpSU+Mq= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f8c2018a1c8f73a9321b5aab5c542bdb17ca0b2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv@$E*kRXnH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@ zvM_>JIv@gMCj)DYfrlb&nYlQhND`=ydIodY#y zFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+ KWvePOSOWk9+F-8$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f0a0b2b5bda61f3ff66d5c2fdd9db36122c8c75 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv@$E*kRXnH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@ zvM_>JIv@gMCj)DYfrlb&nYlQhND`=ydIodY#y zFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+ KWvePOSOWm-t6+}+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f0a0b2b5bda61f3ff66d5c2fdd9db36122c8c75 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^Gv@$E*kRXnH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m4FVK@ zvM_>JIv@gMCj)DYfrlb&nYlQhND`=ydIodY#y zFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHgG^I8+ KWvePOSOWm-t6+}+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3408e141df3acd347555a1cd39dc39c05b7d9d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj- z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ&fVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c200e691abd4deb48fdbbe790765c9a97d5e30a1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6afEfd-(k!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1BxV3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8eb45613da261b3206ce70b281d0003fe04fb19d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|=Rku45bT<+21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXH6hVX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ebcee0d966c0ef848cd406a1e731af638b17179 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19RrgIndw$1iPlI0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ+qVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_exp_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf50c763b2b7aaaf918b52f8aef3fe7f364e73e4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnR5Un?67OP8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pc zSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@U zm!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{F=U)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..26942d5f053606c9512d38f8d0925ea61dd426ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLjy$oKm$B0|0BeU*-S+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..57fa1bbb6eb46818734c374c7dd090aaf9f254c2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%sBuOcGxvt4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B! zEQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w z%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd J*{X^R)&OpSU+Mq= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3daea53959d1125f28a3891c89b438a110ada9e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z3lTri-~a@>rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O8p~kP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4565dfc944c556925009ee81478b8fbb4b04a3a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{BAU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..28525dfe9c2e02c9d9f61cd810cf0b233051bd54 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6afEfd-(k!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1D(V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ed27624c11be000e64c53c3d5dcc1c0f3dadc5b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkO(PMD{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_patterns_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3408e141df3acd347555a1cd39dc39c05b7d9d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj-;@%I1k+cz{c zAdByst_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJE Cd0-|0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..26942d5f053606c9512d38f8d0925ea61dd426ef GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLjy$oKm$B0|0BeU*-S+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..57fa1bbb6eb46818734c374c7dd090aaf9f254c2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%sBuOcGxvt4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B! zEQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w z%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd J*{X^R)&OpSU+Mq= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3daea53959d1125f28a3891c89b438a110ada9e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z3lTri-~a@>rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jprplJ}G_>+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O8p~kP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4565dfc944c556925009ee81478b8fbb4b04a3a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{BAU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..28525dfe9c2e02c9d9f61cd810cf0b233051bd54 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6afEfd-(k!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1D(V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ed27624c11be000e64c53c3d5dcc1c0f3dadc5b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yIR_dXfMC~jH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkO(PMD{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReceiveStatement_port_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3408e141df3acd347555a1cd39dc39c05b7d9d4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj-;@%I1k+cz{c zAdByst_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJE Cd0-|0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessExpression_child_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessExpression_child_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..10186e95f0c9f91f5ff6a8158704de0555f5cc16 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7brgSOd62k;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;ghhV}0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessExpression_child_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessExpression_child_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e3163ec5c4927451de0a2c86daceb15bb9a6088f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$M5024pxmIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG;pVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessExpression_child_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessExpression_child_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a16d2960f42c45ab69c7052abfb30fedf715b657 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Yr+lLisrHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ1 C6JQho literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..57fa1bbb6eb46818734c374c7dd090aaf9f254c2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#P%K%sBuOcGxvt4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B! zEQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4=Rl3w z%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNVO{tAd J*{X^R)&OpSU+Mq= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4565dfc944c556925009ee81478b8fbb4b04a3a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{BAU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..28525dfe9c2e02c9d9f61cd810cf0b233051bd54 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6afEfd-(k!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1D(V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordAccessPattern_source_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ef6854209fdf8ebf3bcbdf5c599345ab7eacf9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zAdByst_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJE Cd0-|0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordExpression_fields_FieldExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordExpression_fields_FieldExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c9af92d891097e03e92372b90276e2106503e3dc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&KVDO+Ckgi`Q62w(0Det_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI1HD8_p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_fields_RecordFieldDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_fields_RecordFieldDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..43da7636f00d49a85edaf5482bec606e7f5b8bca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z{rda&(Km1A-@jjZ>C&$0YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8YdSqPy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_ArrayType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_ArrayType.gif new file mode 100644 index 0000000000000000000000000000000000000000..0e5fb457f19cd30b6598273580f56208e792b431 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XCU-{(bb#oB8+eS6;fbYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7nF_vb$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_BasicType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_BasicType.gif new file mode 100644 index 0000000000000000000000000000000000000000..0af290a7a38f6ba2730fa2c9a5552ef9ad943d2a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zX!!d3_t7_R=HI_xdFj%w>1sfJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWn3lw->P literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_IntegerType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_IntegerType.gif new file mode 100644 index 0000000000000000000000000000000000000000..479ecafec78ede401f38b687853d80a020ec2f9f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8@de;6>ylsEBsH&6Y-Wk@zrXK+=1sfJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkfd}ICq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..14ad12525b44d937e9038b6a5450c7944f1c02d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmv^|33QW&HVfKD=%HzHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_RecordType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_RecordType.gif new file mode 100644 index 0000000000000000000000000000000000000000..12131f2f61fcc063cad4e786b3f61cdc265e8502 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&Fqu{rl*fH}mh`ue@|=*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_ReferencedType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_ReferencedType.gif new file mode 100644 index 0000000000000000000000000000000000000000..78ca278d6fa889c2dcd5abcb03bdde2d2e432eb8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTA-$&oPnScL&<)urzrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OVP9lc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_TupleType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_TupleType.gif new file mode 100644 index 0000000000000000000000000000000000000000..3f2250f95a8f9238f701e7b7e3627ad3dd5147cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z`}Ozlqi^2Kzkk2-(xqL~)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09QEo4Rj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_Type.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_Type.gif new file mode 100644 index 0000000000000000000000000000000000000000..c6c7731d93e81b8ada78ea2d420a50b8ce9c5809 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zeEt3V=$kk5@87SybZOUgH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkAC}Y$B literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_UnionType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordFields_type_UnionType.gif new file mode 100644 index 0000000000000000000000000000000000000000..c10b7b2afb63502cae6523cc5b2bf9437e9495f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_v`Q9N8h}efB$~vrAxb}s{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RR3Ze)1? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordType_fields_RecordFields.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateRecordType_fields_RecordFields.gif new file mode 100644 index 0000000000000000000000000000000000000000..38266029cb6810fd55c43b8a12503239d38c6f76 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&KDF@%7D(qxbjEzqG7!*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..bcdc6bb48d58e829db7f7838e21ae64e296141f7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG+b+HIu;zf#?rD)M`zb`H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkR=3W8- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e5a21bdb7f999ae506cbd548fb42d7bb52e721b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHb5MY=9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..262c4cbb9c21b8358e4ed47357f786c8b0e48963 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQXq+gZ* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d08a11744a3ae495b8f3c6668813f59dd5c2682 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gYiavEbk}mX>WgI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48USA(U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9414605a12befe75949b7df598a2559a2ac6c149 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2XFn)3M;-HI|lbIy$?is{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..4a8a00c4834ccc07aef7fd975a1dd2022cc7cd5f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI20bhjx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ff095f15dedd907ff02181ce8f65377028dd1b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zUTbPP7970B(y~oQXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4JeUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..262c4cbb9c21b8358e4ed47357f786c8b0e48963 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQXq+gZ* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..475c9fc529172a36fd382860d89211496e6afbf1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?baZx2R|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau<%3l-! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..f40bfaa7fb375192ace9a4809d8c79710ac0090c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXt>tYbSyY{jiqIqj?S*>YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9E@?OjU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d08a11744a3ae495b8f3c6668813f59dd5c2682 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_gYiavEbk}mX>WgI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48USA(U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9c1a08a75ad5cd0865b2883ceb9f73301511880 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG+b+HIu;zf#?rD)M`zb`H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkQQeFZ8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..504fdc43840fdbb884f47d508ef38abd9f2899d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1GxpEI4?LrDdCr&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_k-Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a12ae41814139623445a2dd4a8e99f16f30fdebd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tnvMkrud%dj)6v;AT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaN+hIrm literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2bf1703890cc93d6c1562b1e0a54eaf605c0838 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaVPKd5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..a12ae41814139623445a2dd4a8e99f16f30fdebd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gq_tnvMkrud%dj)6v;AT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaN+hIrm literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..361b182bf49807ee700ef4cd35b2cc42c9de3c1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&EdmYC0AiyvEY9O-E1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~WgI=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48USA(U%3DP literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..459f5fd9d69c222ad8a5bed53cf44ac82eb1d887 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaU|^U4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..24ed2cbb19bd797b3093c490f9feea2f2202ec88 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB%OH605MUSnz5rlYfKx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;mM`8Q` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..504fdc43840fdbb884f47d508ef38abd9f2899d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1GxpEI4?LrDdCr&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_k-Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..e76646cad106065aa1ab9e647791a5541ac9067e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMtYbSyY{jiqIqj?S*>YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9GhF;77 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d70e42c42dc943b3554c96376ea11dd55e27eb6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&EdmYC0AiyvEY9O-E_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQW5MP!6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..262c4cbb9c21b8358e4ed47357f786c8b0e48963 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQXq+gZ* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..459f5fd9d69c222ad8a5bed53cf44ac82eb1d887 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaU|^U4 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..262c4cbb9c21b8358e4ed47357f786c8b0e48963 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQXq+gZ* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e23d6c6810d5893378a4b062fa1f01f771fe917 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG$4!bnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0|4KvUkd;L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ab6e9c96a9dc7c8e4f8c823e052ee8c5fec5933d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>tYbSyY{jiqIqj?S*>YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9GhF;77 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..31bed36aca99d12de3c6119c4f47942944c6335a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$<*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^`YgU!4E| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..504fdc43840fdbb884f47d508ef38abd9f2899d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1GxpEI4?LrDdCr&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_k-Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..504fdc43840fdbb884f47d508ef38abd9f2899d2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zz1GxpEI4?LrDdCr&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^_k-Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e5a21bdb7f999ae506cbd548fb42d7bb52e721b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHb5MY=9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec670471e4341637ed05dec9c932b9655d785a87 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2XFn)3M;-HI|lbIy$?is{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RRAd|&AR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6eb0b17baaa2d35a81ec562aa377740b235e0856 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI1PhW)q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2bf1703890cc93d6c1562b1e0a54eaf605c0838 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6fRO~-FDg5t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHaVPKd5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..173020a7e953be5ab8ce2657bba22cc58eb3f94a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2XFn)3M;-HI|lbIy$?is{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RRB+h6Gb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d6fc1531d3da7b72c60470970cda75c53727195 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zUTbPP7970B(y~oQXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{{jsUp@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateReturnStatement_expression_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ab6e9c96a9dc7c8e4f8c823e052ee8c5fec5933d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXt>tYbSyY{jiqIqj?S*>YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9GhF;77 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5b61f9f0e66a9e4867b6b7b63946c7d3450e802 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLjzR20VKX_x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)iKUo+- zEFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4vzMP> z7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E G8LR$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZ`fnVwX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..0be9b536eea7e6458e0434c7f3d6e77fd06950ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>NL|~`@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..d25de52e3a6484ce13ffd8402fe5f72e6b44ace2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|NrsxYLM_VN?# zB7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=O;c)PQ?{xi GgEaulIbdc0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e71d7bc9897713cb25eb5ec88b0010c7b6747f0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK2(N4$PS|2Po*^;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5;@%I1k+cz{c zK*Svy4gke>O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIep+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O$*p4! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..6678f806946a78b5bda02d4f339724d4fd792d8c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6aeZL&E`}_^#<{K(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_1A&V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c9c9733e50f033438dae55c2bf6c342041640da GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&CGIaA3}yISvg692^{WO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_Um4mOV*ROub(! zIny~%WA^eB>>_3jhEB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..11bcd0b81bd42d3eec40270f7cf099b21745bb8f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+1sf1sf;@%I1k+cz{c zK*Svy4gke>O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_;@%I1k+cz{c zK*Svy4gke>O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaum8ebFu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..c31e7a2bca96a72adbfc36bbcfb3e5ef83866ace GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?xcZEVU`Rb;RR E0GfGVCIA2c literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_SendStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_SendStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcbb6405902ee778c70618c569442e794a8f1691 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|$D!eXgM-7a>1sfB0|3ojU}^vW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_StatementChoice.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_StatementChoice.gif new file mode 100644 index 0000000000000000000000000000000000000000..a9fbc1a91004147f6af084a1daf33838768df8d3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R19RrgacDT;;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR<0ieUQy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d0de8d2a9325a29bacc32e90e0bb4c4a0d89444 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zXgF}-z??aA92yQdI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIg|6kq! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..1376267cc66b397e3317cc97936f85bb0248739d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|#{nqn;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5R;spL%OK#keU zPq2&hY0Wux(#?uNNA141i-kZ?!|WFc9~PZ#XIhxxCV!))=60^u>6hvG3^_GTsf|t9 Is)`KO0JcnEO8@`> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_UnlessStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_UnlessStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc0908232bacb714f6e34e29a33cd895d4bebd93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19RrgacDT;;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>LuwbYF literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..42ba0ef6fa7b5f4ceb86782388063d2578b7d884 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zq2a)R19RrgacBSvJM5aS21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCawVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_body_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ff2342489cd049bc6ec22b0b193ccebb5bc7821 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&CGIaA3}yISvg692^{WO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuZ`fnVwX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSelectStatement_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c0d080785c940302e6106e1ea8bf122d4ea11d9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_jzhx%2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1sfVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`a=VQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3f5f1849e51f7525de4a2c90bb0d3aebd422767 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z`(n?fn?0M(q|H3w(6DQ|8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5yT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ&$zfsu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_port_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..1808fc8a0fae1d32b668246de1439c203e1c1844 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK3h=F5T?ebS7=)0f&ZN)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi;@%I1k+cz{c zyx4Q;X3wTGX)_NvH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXF&{VX6QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..971790b3c45cef83e177de7f27bcf21867c2542e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG`!ez>1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJwu3(q| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b8f31eb6beb1fe71c143ec65c1ac2550f260073 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..288ee3a4e9beb6a1f8acd7f2144a174bbeb92811 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a}zOE-Hqok^Q{z@cH+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_Sj-9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1808fc8a0fae1d32b668246de1439c203e1c1844 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK3h=F5T?ebS7=)0f&ZN)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiQVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..5756f1b8b37551f4e94c3741d40267c48e1a61be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ&$zfsu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b70b1497af660ddacd6c3759792bb92f4686ffa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_r;z|H+wdnNt=1Vp<&l_H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3da98f774369141f4654a5bcd2bbcdb33eadef6e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG`!ez>1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8eo_J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..649a0782c2cd31abfd6438b7b6530463f2c1aaf5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gk~$T)Nq_=}g+p0}c(lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca17b1cefc8770c8f8a57ffa31341a4311b1256e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|w;E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..649a0782c2cd31abfd6438b7b6530463f2c1aaf5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gk~$T)Nq_=}g+p0}c(lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..2c570bf5adabad89ef13841c74a34804d9f38bbb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&H=}bLnQ!rZZ_X4>&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4344d571355a55cc035e37990dc46568f09604d0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3h=F5T?ebS7=)0f&ZN)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f87e1e2aecfabc4b1c4c56eb9d9d4a9b7589d52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b8b4537783b150036988bbe6f02e5c0a1317768 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&H=}bLnQ!rZZ_X4>&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJyLSUEx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a9b7cdb673df58f83923d77af78d556f3efec02 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zzSwi=X3wTGX)_NvH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFjhVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57a2f0af089e99e45d790c0a63a4d196d2eeda0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn3*b(#@VtXVPXKaA?>yT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac3a4fd1c60d2fb4fbd2eb2059f4f2a4d45fb9e4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`a=VQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5be50cbcf4198adcb11af811f45f4d5b42043dc2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&KzlVlw~$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b8f31eb6beb1fe71c143ec65c1ac2550f260073 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|w;E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3fae4b217f49017e219d77e041640afcd688ded7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a}zOE-Hqok^Q{z@cH+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruH?m@X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5477752ac52227c5954437a4eb97f844d4d7be80 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zzSwi=X3wTGX)_NvH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG?QVblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSendStatement_values_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57a2f0af089e99e45d790c0a63a4d196d2eeda0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn3*b(#@VtXVPXKaA?>yT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e4e4b3a8f90f17fabe5bc05a7eb24472330df3a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|2gsOdoVIJa8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm51OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$UdnFD0ZG)~(!T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubMuV9Y= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf56763cd023ae9231705dcef6b7370ce9620ae6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY80+X`Hrex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;u6=2~2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf56763cd023ae9231705dcef6b7370ce9620ae6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b{{8t44Gj(s4*&nh&yTnNf8QR+ z1&Ys^GY80+X`Hrex*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;u6=2~2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..d677d34703f137b92c2f6c75c74fe0a2aa20fd0f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_C&#?d$X=igsedFlWE`1$en|L@y3 zG&CGIaA3}yIY7ot3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09U?_=Wt literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..a85ee8f4953030db7eebfb75457273fe50738d6d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFD0ZG)~(!T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubMuV9Y= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d5c10a2630d1bed4809492c46cd76cb902c1eb6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z3m2bhoVIJa8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n(1_6pcSr|bq z9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9&Vd@Um!Du4 z>C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlwq+-kf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStateEvent_subject_StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1607f910083346345671e52588d6acdb6f1dd0f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zi!8otx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)iKUo+-EFBO5 zvXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4vzMP>7wOZQ zbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E8LR;~ Cu3-uQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..58c4df75df81dca93a17bb45e0326ecce8fc8988 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&KgIdwOp6q@76v%Iuo121HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXJ4bV7mYS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..2215c823fedd73f4e8a95ec2071f2aca339cd307 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H z_q^ECbF&91<#51Z*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_ z6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaJU15Cy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..d9a2153c362ccd9b66d36d9860e9532b9a236476 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|NrsxVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_vpVLJc- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..b53237caeb89058dbc92b391703486fc7e8d00bf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK4;a_VnEBNjsC~aKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruMhjwp literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_CaseStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_CaseStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f34bd0dfe223e97ca0d1831d5b33523c2ec507a0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt zyXVE8o|`>sXVM%FIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXGFxVW$89 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..1aa8543afec2abc8226055ff04b53982e2d72fd3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c z?0K=L=VnjZnKXw34!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQAeVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..f34bd0dfe223e97ca0d1831d5b33523c2ec507a0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt zyXVE8o|`>sXVM%FIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXGFxVW$89 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..15a02fb1e7ec3bcfb04223fa6857fd0f92a120c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}ZA2OM@yR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau`t6;ML literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..3256d56ca4d397118ed3d6dac07233c6316a9d32 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XESz*wb^fC+$p{!vTj~)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OoZDnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_LoopStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_LoopStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..2777a6e8d58bdd6270a5a07abe18d762bfafa467 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&Jmav8U%|PuiI@hXW3~rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OoZDnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_NullStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_NullStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc9baba599aabe00422badfa1ed30d0e9b1bea36 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&Jmav8U%|PuiI@hXW3~rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O=7MCY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_OnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_OnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..08b62b9af29ea343d501ce0ba5c87e57af6c8edb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt zyXVE8o|`>sXVM%FIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXHs#Vc-A& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..87071228bceaa18baa47fd35c3a16d61b2122fe2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+;@%I1k+cz{c z?0K=L=VnjZnKXw34!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQAeVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..1aa8543afec2abc8226055ff04b53982e2d72fd3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c z?0K=L=VnjZnKXw34!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQAeVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd0931290cacbd5f5141cf386204efb78ff92ed8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zH0*h?r{`u*+L<(m0}i{Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQpGhgWd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..60989d012bab58f7d48fe1e1a8bf0340d6cef5e7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;%l3@D) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_SendStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_SendStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a548cc2e9585cf5ae77e8d3d5900a3d12296af1d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4;a_VnEBNjsC~aKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruNE%{) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_Statement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_Statement.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e7148b599cef0f3435aa2679c17cc378438e553 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@wm6seG9RB~0pC51k|Gs@g zL&KgIdwOp6q@77~IN-2rx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=5r z0%RuxYm9q!{Ee2H+qqh&U#90XZA2OM@yR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau}31G7T literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..68f2c19729f0ab5c6df96621da576b3f8dd03756 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4;a_VnEBNjsC~aKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruNEu>( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ToStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_ToStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..c9f5c5cc70e04398604ba6cd39fcb5496e8f6965 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqO=KL7v6&yTnNf8QR+ z-Sc8k&&{5+GieS79Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^_nVITki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_UnlessStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_UnlessStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a7eae3f0af1acc79e5eb986007a9d899fe3602 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&O9Jv}#j($1tg9B|k*T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaH$zgo} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..561e20c16f11bcad56ed8fc8d1854ce82c8ad336 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zp<&O9Jv}#j($1tg9B|k*T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua}^I^~c literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementChoice_choices_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..34f0bc16170941dbd31776944d4c14837c287ddf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&Jmav8U%|PuiI@hXW3~rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oojznn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..879a7fb379702a4d261270be7663f1821771f4fd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&LQ-O~-nI*A!c}Me6LDt_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SI1|6iT} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..9bacb281eaa8fedafdb6b24c2d8216226e2648be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zudQi1))Ty@*s?8BXV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}h8U!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a8d71d8b21717d0fbabe3475a9735f2cec9943ad GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaukieO*> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a3e4ead8a5e078523c8c2aa77e6165ad06f6796a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|Nrsx1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~eU>*Pf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..d022471fc711fa25e967cf1ae336b0c594237e6e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK6fvnvV4ZuPL@{i`3aQT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPIALM{ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_CaseStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_CaseStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f754075271a360ea0ea8939c5a96ca09917a10f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt zdu>hAv7X>H#g=W6I=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UX47V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..190f08eb2bc800620f903908d036924f16791deb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zTwBw0tS5L)v1MDN&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{cnU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f754075271a360ea0ea8939c5a96ca09917a10f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt zdu>hAv7X>H#g=W6I=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UX47V2S_$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..261e05c6011892d256016ebc496cea74a614f5e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<=U$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua@=U`6& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..cecc757c61bece0fcb73faf225fea6f4017b0a80 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&EdW({!vSculcoTcpme>1sf1sf1sfhAv7X>H#g=W6I=iN;0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPbPV8Z|a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b5e74988e1255d7848471995cfddcb22a68a55a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaR_F-ZG literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_PatternStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_PatternStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c179d8de7908472bf93f684ca98dfb36f57753e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6fvnvV4ZuPL@{i`3aQT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRM`2;@%I1k+cz{c zTwBw0tS5L)v1MDN&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{cnU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..190f08eb2bc800620f903908d036924f16791deb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zTwBw0tS5L)v1MDN&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{cnU)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..c0a1164b11a174c320dbb40e320c33e4a2fe5421 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG+bNLbgUMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8}U|!4s literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..90ccce9286024ec654cedad6dd39c0bb8bd991de GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SInzhB+} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_SendStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_SendStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c179d8de7908472bf93f684ca98dfb36f57753e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK6fvnvV4ZuPL@{i`3aQT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRM`2M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJFqF^Eb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_StatementChoice.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_StatementChoice.gif new file mode 100644 index 0000000000000000000000000000000000000000..9fff14a13d5744065c1728b328b1d0a22de2141e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2bz^rei(9YlYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasN&|tFw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..e07c4ede552075d58601a8f8f698c3b62ce24706 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zXh0U&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaRMqy$A literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ToStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_ToStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b9f986cbde8495a1aabcb2f861ec26dec25da70 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqO=KL7v6&yTnNf8QR+ zy|$+5SWobpV#~Hjon6z_fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaui_F!ND literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..60becfe54a86a98aa68cdc58eb023e124d33660c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zq2bz^rei(9YlYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasPFJQ9( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateStatementSequence_statements_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..55ee60b02ec2d567dcf24af890b27ca29c30b03d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&EdW({!vSculcoTcpme>1sf7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^Ani;Vkm2Cquxq*+5N(~Lysk@rX_M5vO0k(G!vFrh2co~9&jZn)=Zk;eZ3dbK z0g69a7(px@5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunxQpuUl zff}=ypI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW8FFfx MQX8AHRTUYm0i!Nn*Z=?k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b498f6d4bfcfeb85a3b6f6e4dadeb3dd9e6effd2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{`aVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d24f7932047d7899826ce34b57485caa9ad80c1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubbXJC&2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..db9d0e3f51e696a5986f2ab2cf477b38fb426e23 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R18HZ{fD8u*hh5XvfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=wNnl$5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d3fded756270a52d4ea4f0d41c738ad091f29bf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>#tLq(Q`YO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74Aua1Az$hM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbeac469f50e1f74b80f9ea6a0992039392c20af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-K-!r!Aj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}WnU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ceba771f04f1ec47bae097bdec901925bd97a308 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bu=~CJo4NaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubbXJC&2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c7384ee85c9b7f4dd7c4bf3d098aa29450bcc5b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^Ani;Vkm2Cquxq*+5N(~Lysk@rX_M5vO0k(G!vFrh2co~9&jZn)=Zk;eZ3dbK z0g69a7(px@5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunxQpuUl zff}=ypI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW8FFfx MQX8AHRTUYm0il{+*Z=?k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..932fde3646a1a408d21ec75d491c7cef6c8841bb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&XJgNrQ;*nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXBEAVjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..199994a5652992e6c6209c5ebc72551bf1b64dbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4y2t)12P;O9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^VVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f00aa632e4fbd85e12f14d6943654402da6c1ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl97sEp24pxmIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXBEAVjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..8cda162a788423687fd81885973d174e46b52780 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIa3JkW8j#`O;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5JK( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d1bf162dab6094d49126bd880c14aa2ff7bcd031 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lvW~lLllsI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJvj9^>< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ceba771f04f1ec47bae097bdec901925bd97a308 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bu=~CJo4NaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubbXJC&2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7e40a39e70c8281c71a18eb5846c2e618336992 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4x|AE8yXxO9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^UVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..7aba2681465f3fa4f19fec8be627907937acc4d6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689IFNQG4ajhCaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QZ8V$uKr literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..932fde3646a1a408d21ec75d491c7cef6c8841bb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&XJgNrQ;*nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0{}bSU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..85812b6ce681f6557b1f2c2d72030c11aae85a25 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIa3JkW8j#`O;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm51OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^UVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d24f7932047d7899826ce34b57485caa9ad80c1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~#r{;=87+0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^5TN*zg%QNk z0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6>9H=pS`3ZKB zKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBFDYdaFTUC+4 F8USqqU*P}% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5a6c99798137ee01301e464c63f2884a5221a76 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-K-!r!Aj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}bSU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c572b64fd356d67b1491cccc2f32b7e2025d1e0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$C>8X>ZF?$gO1vLZx;)JpoZBm5YLM_VN?#B7ItO zPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=O;c)PQ?{xigEas~ CDPOJt literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..83d4e79151d0029b22f409aea061764c026fe847 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&XJgNrQ;*nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{`aVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2dde1a2a0e519b5c9361bac9e304b2b1564f5f72 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a)R18HZ{fD8u*hh5XvfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=vmtb1} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..199994a5652992e6c6209c5ebc72551bf1b64dbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4y2t)12P;O9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^VVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_left_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7f28e19c613d6368979c00d820ea4f615633092 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R13*C_!@=5r0%RuxYm9q!{Ee2H+qqh&U#90X#tLq(Q`YO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_B0{}bSU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..205071f21539ca12f3279c9bd7998159be53ad48 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^Ani;Vkm2Cquxq*+5N(~Lysk@rX_M5vO0k(G!vFrh2co~9&jZn)=Zk;eZ3dbK z0g69a7(px@5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunxQpuUl zff}=ypI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW8FFfx MQX8AHRTUYm0i!Nn*Z=?k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b498f6d4bfcfeb85a3b6f6e4dadeb3dd9e6effd2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{`aVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d24f7932047d7899826ce34b57485caa9ad80c1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubbXJC&2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..db9d0e3f51e696a5986f2ab2cf477b38fb426e23 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R18HZ{fD8u*hh5XvfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=wNnl$5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d3fded756270a52d4ea4f0d41c738ad091f29bf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>#tLq(Q`YO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74Aua1Az$hM literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbeac469f50e1f74b80f9ea6a0992039392c20af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-K-!r!Aj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}WnU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ceba771f04f1ec47bae097bdec901925bd97a308 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bu=~CJo4NaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubbXJC&2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c7384ee85c9b7f4dd7c4bf3d098aa29450bcc5b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^Ani;Vkm2Cquxq*+5N(~Lysk@rX_M5vO0k(G!vFrh2co~9&jZn)=Zk;eZ3dbK z0g69a7(px@5CO82fi*@!p)V!UPK{ya*~3#VY@O8K+&8Jj)A+MV&$aAHnqunxQpuUl zff}=ypI{g1)0%VYq?;9kj@o^17Yl))hS@I?J}f%f&a^PWP5wqp&Fx&R(=XHW8FFfx MQX8AHRTUYm0il{+*Z=?k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..932fde3646a1a408d21ec75d491c7cef6c8841bb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&XJgNrQ;*nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXBEAVjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..199994a5652992e6c6209c5ebc72551bf1b64dbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4y2t)12P;O9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^VVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f00aa632e4fbd85e12f14d6943654402da6c1ed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl97sEp24pxmIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXBEAVjchh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..8cda162a788423687fd81885973d174e46b52780 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIa3JkW8j#`O;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5JK( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d1bf162dab6094d49126bd880c14aa2ff7bcd031 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lvW~lLllsI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$> zPZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai z?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@po KrfgM325SJvj9^>< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ceba771f04f1ec47bae097bdec901925bd97a308 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bu=~CJo4NaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubbXJC&2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7e40a39e70c8281c71a18eb5846c2e618336992 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4x|AE8yXxO9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^UVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..7aba2681465f3fa4f19fec8be627907937acc4d6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689IFNQG4ajhCaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QZ8V$uKr literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..932fde3646a1a408d21ec75d491c7cef6c8841bb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&XJgNrQ;*nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0{}bSU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..85812b6ce681f6557b1f2c2d72030c11aae85a25 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIa3JkW8j#`O;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm51OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^UVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d24f7932047d7899826ce34b57485caa9ad80c1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~#r{;=87+0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^5TN*zg%QNk z0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6>9H=pS`3ZKB zKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBFDYdaFTUC+4 F8USqqU*P}% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5a6c99798137ee01301e464c63f2884a5221a76 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-K-!r!Aj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}bSU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c572b64fd356d67b1491cccc2f32b7e2025d1e0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$C>8X>ZF?$gO1vLZx;)JpoZBm5YLM_VN?#B7ItO zPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx=O;c)PQ?{xigEas~ CDPOJt literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..83d4e79151d0029b22f409aea061764c026fe847 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&XJgNrQ;*nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{`aVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2dde1a2a0e519b5c9361bac9e304b2b1564f5f72 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a)R18HZ{fD8u*hh5XvfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=vmtb1} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..199994a5652992e6c6209c5ebc72551bf1b64dbf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4y2t)12P;O9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{^VVQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateSubstraction_right_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7f28e19c613d6368979c00d820ea4f615633092 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R13*C_!@=5r0%RuxYm9q!{Ee2H+qqh&U#90X#tLq(Q`YO;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_B0{}bSU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..921b2c6449bafc62d1b99b94aa043c9b40338425 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&KguFM4`zrlp+$O6{7i21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXJ0QV7mYS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..54b651d90f07a7c644a71ebd2214379e30688f4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H z_w0Gm({nQ|?TmxNfnC$pfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaH{$YIp literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6cab918d8a54ec736aefaeaea849a8c8d70bfa7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|NrsxVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2_reVLJc- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..0dd99baa924bbd333fb8bfae00a6e18282d1be29 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK43tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXGBmVW$89 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a39b79615d5e86d335cfbebd1d6d35a21e195317 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c z?Ai08r{`u`+8GCj1G}cH0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ6TVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..7d4073e351f2f665217095381e951744e14f0bca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt zyJydfo}Qa&X=fZ94(yt)21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXGBmVW$89 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..02ca8c017011d9fd44f7ca65287edc541a51888b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau_OklGB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..de9c32420f8c1010fabad7c843e0e34f41d7469d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XETOdC}8zGcE0mgTsMc)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`On|x$O literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_LoopStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_LoopStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..97b8d1a312a7e6d394c6646706aae2187ce8c650 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&Jnl^P;EcW?I@A2ZsZ@rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`On|x$O literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_NullStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_NullStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..2e8ec2d5b47e7ba1ec37cf5d6fc8bdcf3bb5270f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&Jnl^P;EcW?I@A2ZsZ@rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXHoqVc-A& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..2084fe8c67ec92ebc980704e2fec949850b8eb1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+;@%I1k+cz{c z?Ai08r{`u`+8GCj1G}cH0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ6TVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a39b79615d5e86d335cfbebd1d6d35a21e195317 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c z?Ai08r{`u`+8GCj1G}cH0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UQ6TVEX_7 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..247a03297605142d5cdb6ca67d1cc1c24a9dbfa7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zH0;^)qNnF(TG|;0hXcE&s{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQn)L-cU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..22caf47e5eb85db57ea92d20e4460ea91d7ac9d7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;$Ghq7w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_SendStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_SendStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c357e1a51508b190b95e0a678d7be7ad55f00c0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua{HDS;I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..0e34563c2c245085427b78be1b8d38177557b4d8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zXxOvoMNiMow6rr04hMEkR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau{s$jDK literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..440a1549850fc7392a4055afa5f56b7433b832f6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^>cVITki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_UnlessStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_UnlessStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa6a5ee72ac3c399f6e2ac5922f20cce42f1e57b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&OS7d<^U)6&j3I2_nDT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaGYGHi< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..13449f59b0b547a90a583f77d29f623c8cf196c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zp<&OS7d<^U)6&j3I2_nDT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua|lwr^S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_action_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..41eefa22134c4e66ad6abc15118aef44a6d81a93 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&Jnl^P;EcW?I@A2ZsZ@rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oo8M$c literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_source_TransitionSource.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTransition_source_TransitionSource.gif new file mode 100644 index 0000000000000000000000000000000000000000..c213999856b14483eda820b6765aa904ed21b292 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ym+za=FOfnXVMNFaQOc}etx|D|NHh0 z4Gnwtyy)q1sfMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7UOJjfl literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_BasicType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_BasicType.gif new file mode 100644 index 0000000000000000000000000000000000000000..eb8204ca8e005b8fbaad8debecd93d92b68929cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z??aAfDGfAX}hMY0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UU*HU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_BooleanType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_BooleanType.gif new file mode 100644 index 0000000000000000000000000000000000000000..845e9f477fca99a865b1bb3bf5df9ae9155eeec7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&rI7jT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AubMNnnov literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_IntegerType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_IntegerType.gif new file mode 100644 index 0000000000000000000000000000000000000000..8cd9cfa90b9033e3f6cda28795dddee7b369e97f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6ac@kYPMCZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f0u+C; zFoIY*AOd7318aB0{}QvVF>^L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_NaturalType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_NaturalType.gif new file mode 100644 index 0000000000000000000000000000000000000000..870d2b208f05123cec95dcfa3e92e1f61f09dcfb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UU<{U{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_QueueType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_QueueType.gif new file mode 100644 index 0000000000000000000000000000000000000000..84d142daee98162d18444e4238b4b0a5fcec9dd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$UdnFC}P&rI7jT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuYyF<`;~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..252ab407d1ca48af5747db1b3ce1e7663735e2d0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gjkl9GEj_4v=9yGi}#&H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlwK4Q!O literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_RecordType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_RecordType.gif new file mode 100644 index 0000000000000000000000000000000000000000..07b82efc3d75c3ebbf6a3d79451b63c6ac4d80e8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&CGIaA3}yIY5T-%(Pw8)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09VvSZ@_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_ReferencedType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_ReferencedType.gif new file mode 100644 index 0000000000000000000000000000000000000000..fac7c9b1014c4ba240279c2c69d034e46190bd22 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrg0WyqdrtO-p21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXCwNVHyAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_TupleType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_TupleType.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8b262a3bb15c540fc1873b32f5cf377820dda98 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt zi!8otx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)iKUo+-EFBO5 zvXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4vzMP>7wOZQ zbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3To3d3E8LR;} C;$aE^ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_Type.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTupleType_types_Type.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8b67b8143df98aa70ecda249c8063788e77d296 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zK*WIz+YZ z#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}=oar2>F?;z5 zc9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLmr=}^ju_;?s Hk--`O=5r z0%RuxYm9q!{Ee2H+qqh&U#90X&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIWC>8X>ZF?$gO1vLZx;)JpoZBm5Um4mOV*ROub(! zIny~%WA^eB>>_C>8X>ZF?$gO1vLZx;)JpoZBm5kc+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a593b6190f37120215dcb71123289cd6ff9ab8d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gmwv{yuv2&HVZID=RPUnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_RecordType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_RecordType.gif new file mode 100644 index 0000000000000000000000000000000000000000..aa9d44ad42ffc0d95582cfc37f7cb9df314270d4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&Fqu`uph7H}mJ;udKYZYq}Z`ZJngNu1kJtlhnLQv6&^p|Ng!QqQ9Td1JR%7i+|s3 z2AT!|ia%KxK`b2*0kV^UHAX?9FD24WjbY~5!&5G7oz&mlH>t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n`!;4- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_ReferencedType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_ReferencedType.gif new file mode 100644 index 0000000000000000000000000000000000000000..73486a0c2db1f4a597d1e68276beb0b0ed7e80d8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cS--$#$WnLq!2W#y$^)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9uW@CT= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_Type.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateTypeDeclaration_value_Type.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e4853e09694cea9d17349dee0bacb32136a1cea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zeEs_S=+QUx=ijfaytHe&8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm53|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=0BKr(?4K literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ede289a77ed9c1c6dcb44960c17b09e08ceaa81 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^VE_I3K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^K6Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc67848944b4718245ec02a24ec72471fbaa2ad3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ea8e02c5d3206af1769599c2b442bd2dbb3ebc8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bw2}{(KVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^;uVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..953143344d92df6a5e8a4adeb596c239c9c4cff7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6bSc{`>QR450X~>1sf$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW4G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1667bbeb6b9e4b34c37c51db5637b3d31c0bd819 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^FRUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1543d3c0c751be1de5e6e46f3602780fa1dba564 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9N2$C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K))ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1543d3c0c751be1de5e6e46f3602780fa1dba564 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9N2$C>8X>ZF?$gO1vLZx;)JpoZBm5WH>lD?3%6yL|Z2*uj`Uu+9WlvQfy|4@V~$Bf#~n&^FZ|H`QqPqn}Mc5 zfZ|UUMi5H}M1bsMV2x2w=u3&TQ)8HU_VAPoTPO85_f0DCH2!STb1i$4rkHxaRC1$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC09jOH+5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3d99584b3b6d4a352364d1bbde082a5c98e76b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l!gfe?E}m;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;{O<@55 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ea8e02c5d3206af1769599c2b442bd2dbb3ebc8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bw2}{(KY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K)(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdfcd34fd55768c0ba3facbd0635e3b020819f94 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689II#czd?3TY!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkLP-Axh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..69105600742fee2846d32493e8514342ea04f377 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%94m}ETw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ae660dc39a4da243a50fa4c760e677f8b174014 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R1N-mK2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^;uVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a87700f4c7cdeae66d88a9f69e203fe883a50f7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4(z`_AINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K)(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a3ab4a77c4dd1f455e800db90f59bd1520558af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^VE_I3K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^O+Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec5665904c12b10ce0a836eae5e629d943c4cea1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%95USvH0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..44d87cb33c9fd1e7611631e4d354fa3cafc52462 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#Un`&xeTbnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@;$(hc98nc(5 zU>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiGa%!4V8=JCK H6&b7nNi<;? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc67848944b4718245ec02a24ec72471fbaa2ad3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{8vVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2de4789c272524dd324d68d7c07d9e693c268595 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6bSc{`>QR450X~>1sfY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K))ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bddb0b8c9737526cb556bd2bcfe62a672f1bd25 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R1N-mK2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{C)VPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryCoerceExpression_child_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc47c3c13e630b41fcf0f1bcc62fb6552dcf0712 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^VE_I3K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^K6Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc67848944b4718245ec02a24ec72471fbaa2ad3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ea8e02c5d3206af1769599c2b442bd2dbb3ebc8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bw2}{(KVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^;uVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..953143344d92df6a5e8a4adeb596c239c9c4cff7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6bSc{`>QR450X~>1sf$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW4G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1667bbeb6b9e4b34c37c51db5637b3d31c0bd819 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^FRUwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1543d3c0c751be1de5e6e46f3602780fa1dba564 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9N2$C>8X>ZF?$gO1vLZx;)JpoZBm5Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K))ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..1543d3c0c751be1de5e6e46f3602780fa1dba564 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl9N2$C>8X>ZF?$gO1vLZx;)JpoZBm5WH>lD?3%6yL|Z2*uj`Uu+9WlvQfy|4@V~$Bf#~n&^FZ|H`QqPqn}Mc5 zfZ|UUMi5H}M1bsMV2x2w=u3&TQ)8HU_VAPoTPO85_f0DCH2!STb1i$4rkHxaRC1$wC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF M)W)W4RYeAC09jOH+5i9m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3d99584b3b6d4a352364d1bbde082a5c98e76b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3l!gfe?E}m;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;{O<@55 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ea8e02c5d3206af1769599c2b442bd2dbb3ebc8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bw2}{(KY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K)(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdfcd34fd55768c0ba3facbd0635e3b020819f94 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689II#czd?3TY!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkLP-Axh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..69105600742fee2846d32493e8514342ea04f377 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%94m}ETw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ae660dc39a4da243a50fa4c760e677f8b174014 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R1N-mK2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^;uVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a87700f4c7cdeae66d88a9f69e203fe883a50f7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4(z`_AINZUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K)(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f3b2e7c109fe37fa8c7b6b2248dfd06b4c81500 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2^@ZVG#fT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a3ab4a77c4dd1f455e800db90f59bd1520558af GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^VE_I3K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^^O+Uwr@o literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec5665904c12b10ce0a836eae5e629d943c4cea1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%95USvH0 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..44d87cb33c9fd1e7611631e4d354fa3cafc52462 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#Un`&xeTbnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@;$(hc98nc(5 zU>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiGa%!4V8=JCK H6&b7nNi<;? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..df3eebc94328c14f5296d14c19a9187e07dd1704 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zMHb&RT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc%pDc_ZmJWyj z*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2*~?F`i}Y#D zId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6FP1&l74AuZK C6kzxO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc67848944b4718245ec02a24ec72471fbaa2ad3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K+VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{8vVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2de4789c272524dd324d68d7c07d9e693c268595 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6bSc{`>QR450X~>1sfY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K))ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bddb0b8c9737526cb556bd2bcfe62a672f1bd25 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R1N-mK2QnNS9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{C)VPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryDeQueueExpression_child_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc47c3c13e630b41fcf0f1bcc62fb6552dcf0712 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z0>$^=pAQk=HC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~7J{D}b#!{zE=l}os`SJGu@7p&t zG`zU9=jNuKGc(f;G&t;M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJxU0|31 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ced536d9d7e6a24748444644b1491a24cf286ef3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0KA7|E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b954c54bf0553c42c690d7837e7c867ca5b27c9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnH#ha1nVEK=!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOrD9J2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f1e2d49e68323eb933eac4511913a52cf6a8ecce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a})JvTS?oSB(+puu6+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_lIIE literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..140c1752dcc38e15e8ef4c102a3bc28c38268d9b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK3iH_T1dmb7p4Rfd+?N)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFkVVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b954c54bf0553c42c690d7837e7c867ca5b27c9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sf literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d6c3b9e88557f6417d389e4815257c7f9d83cd1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXn1jH&&^FeXJ)1yXmHpyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ(cwu4y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2b20e53ddd9d564200d0fc2b2096dd335fcff13 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_r;|>H#ha1nVEK=!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOrD9J2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac035ea13adefd77814c57ead471ce4e665f332c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG`zU9=jNuKGc(f;G&t;M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv$zYfO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..c345ca5a1bf04f1d3b86d485cdef23d5499278ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeQ{~e%}qULW~LozaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S{(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fb29f45dd82f765152ec1571a321c4910d7b321 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gk|Y?YX(B=giEs0}T$lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJz-m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJz-6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5H#ha1nVEK=!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOrD9J2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e863d31a0c197e3ceaf235c4f5adce8babf3067f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3iH_T1dmb7p4Rfd+?N)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S{(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..90bc42c7025b56f053dd37023470bfc18c915541 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ*3}Ipb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..72cfbd01f7fb099044767358d3f2090ee21cdd4c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&H=pwCCogo-;Gk4m3FInyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJy@nDz$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bfbb66ec7501857a70dad1aac2d1228d352f0ad GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zzPPmK=BA!AGt&+3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFlmVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5472ecdc660416beedd7d598fadf0dbc1f05a54 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn1jH&&^FeXJ)1yXmHpyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ*3}Ipb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..83969f9eb0d0b6db46e48be511417459a2e39feb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`c_VQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebeaeeb73c81e0cbbf9a3038aec0a9ea9948eb85 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zeQ{~e%}qULW~LozaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&K#qVlw~$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c345ca5a1bf04f1d3b86d485cdef23d5499278ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeQ{~e%}qULW~LozaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S{(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c345ca5a1bf04f1d3b86d485cdef23d5499278ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeQ{~e%}qULW~LozaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S{(ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ced536d9d7e6a24748444644b1491a24cf286ef3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0KA7|E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c8ac08b76206804bd1e1c53eb0a8c5657b75421 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a})JvTS?oSB(+puu6+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruHv(dR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d01836d01e406e1da79acd6f62538f714b2c396f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK3iH_T1dmb7p4Rfd+?N)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG^VVblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryEmptyExpression_child_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5472ecdc660416beedd7d598fadf0dbc1f05a54 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn1jH&&^FeXJ)1yXmHpyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ*3}Ipb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..bdfb88b8d53ff5617794ef9ebf642169ce00ab65 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zH0;^)qNnF(TG|;0hXcE&s{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQmKws$q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2084fe8c67ec92ebc980704e2fec949850b8eb1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaH{$YIp literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..76dcd3d5008ffd25e883188269d8cae82338ac37 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8;|Jv}$m(#|+I9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QM(VW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa6a5ee72ac3c399f6e2ac5922f20cce42f1e57b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&OS7d<^U)6&j3I2_nDT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaGYGHi< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..72306dc1e084fe5f95a3b581a1d4ebb6fbce7818 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK4 z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UP)xVDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..545d888f34e995c4346c77b5b67332dea364a2ff GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaH{$YIp literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..22caf47e5eb85db57ea92d20e4460ea91d7ac9d7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;$Ghq7w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..5347030477b1b0a3997e9aaeb48f713488a47c66 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXxOvoMNiMow6rr04hMEkR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau_OklGB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..76dcd3d5008ffd25e883188269d8cae82338ac37 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8;|Jv}$m(#|+I9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QM(VW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..62d1b4e9c435d564c9d604bb537f3338e1824b0e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0;^)qNnF(TG|;0hXcE&s{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQktY7H> literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2c85842d0e426ec83ed5236c0a4ebe7dade270a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-LvOKPtVP?v@;G42X;+Y1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`#FVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..97d3985db23cbf3000499d107a6e691b48308f76 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gnwtyy)q1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OoTX$& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e87a232021b899090f3a47cc3af536add4cf89b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zyJydfo}Qa&X=fZ94(yt)21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXEqjVQl~a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..76dcd3d5008ffd25e883188269d8cae82338ac37 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8;|Jv}$m(#|+I9N0Bo4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QM(VW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..440a1549850fc7392a4055afa5f56b7433b832f6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`#FVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..3fa9c54bf01917d3cea4e0e8cc53da4b8d527d47 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau`;9#== literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd34d5f5c6706a1dbbe3cc643766a41762b0882c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Jnl^P;EcW?I@A2ZsZ@rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O<>_Rp literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa6a5ee72ac3c399f6e2ac5922f20cce42f1e57b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&OS7d<^U)6&j3I2_nDT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaGYGHi< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..545d888f34e995c4346c77b5b67332dea364a2ff GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaH{$YIp literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..440a1549850fc7392a4055afa5f56b7433b832f6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaH{$YIp literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..247a03297605142d5cdb6ca67d1cc1c24a9dbfa7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zH0;^)qNnF(TG|;0hXcE&s{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQn)L-cU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ffbeece62fe3b6d1daf586c844f5cd16a9f6e3ab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z?%DIAr{`u`+8GCj1G}cH0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UP*?VDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f1e0b8bb8a43d7e924a5958a36ea27190b1f373 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxOvoMNiMow6rr04hMEkR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau`;9#== literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b822374d0aaad1062bd5ab8dbc618666445f6650 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O=C5R_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..54b651d90f07a7c644a71ebd2214379e30688f4a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H z_w0Gm({nQ|?TmxNfnC$pfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{o-VT1qx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2c85842d0e426ec83ed5236c0a4ebe7dade270a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-LvOKPtVP?v@;G42X;+Y1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`#FVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2c85842d0e426ec83ed5236c0a4ebe7dade270a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-LvOKPtVP?v@;G42X;+Y1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`#FVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2084fe8c67ec92ebc980704e2fec949850b8eb1e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+=5r z0%RuxYm9q!{Ee2H+qqh&U#90X$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua{HDS;I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c72000a9c1d9475c4746de701ece087ecd4c8603 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ z?%DIAr{`u`+8GCj1G}cH0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48URFxVI=?n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFirstExpression_child_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f1e0b8bb8a43d7e924a5958a36ea27190b1f373 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxOvoMNiMow6rr04hMEkR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau`;9#== literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..7aaf03326ba945b0bdc0fc7e6cd523557bc5e4a6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5mCG(UI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHmb6m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`{GVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3aa68896f4ec7cacaea452a8f2b4377834d89ff GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrgsa$r+!NFnIbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruLY-k5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..28d7cba309af0031fd81430272f6a986c93062b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6adu<+4ja@m1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{2vGdV z!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb4%C>v z`~$UdnNzv!5>R~CbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru-O^x= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc633fdf3b19d911f5e4cd1f6d7c99d0612b9b6f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn<*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_0z&V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..8227f580872d7e5eeabda12f07d02732e29a66b0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z??aADwkbyaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auave_&4l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d8effbd7a3cdaa6d387d80d4388cec7a78e3fb6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b0G{?2?0n!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`{GVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..d749f034ebd2061cc5860da13c371e93340006d5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5mCG(UI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHk-(Q6Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..83824fbf1ff96492d11694251fc70b689c1e120a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GpBOdC7}4O>1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oh-hNV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f85940ddf591c7f87372bfa13e6bee574e86224 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|r*hdP2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oh-hNV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..05a82b2ebb5308ecfdd975f9b43d270f7b10a2f3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIhD&UIXF1%nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0{}SDVF>^L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d8effbd7a3cdaa6d387d80d4388cec7a78e3fb6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b0G{?2?0n!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`{GVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d4c8b509d8bbaeac864165446b9cbf14d7af2ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|r*hdP2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_1sf$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auax6JSpO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..758dafb7cd607cb64fb329445c0d76e298381756 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIhD&UIXF1%nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHo2VaE% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcd612ead993fa375c217c53a0c573b9f2469987 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnNzv!5>R~CbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru-Z)^6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c707053becfcc995e511b27c72068702b289881e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aADwkbyaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auax6JSpO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..81bed353002b5878eb2af720dbd012ddc6101d2f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$6>ylsEBsH&6Y-Wk@zrXK+=`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=fUtn7R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..52da91872671524eb2fbe953ff4addf33b10fc1c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GpBOdC7}4O>1sf1sf1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E065%X2mk;8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f85940ddf591c7f87372bfa13e6bee574e86224 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|r*hdP2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi$UdnNzv!5>R~CbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru1iE0s literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryFullExpression_child_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c707053becfcc995e511b27c72068702b289881e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aADwkbyaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auax6JSpO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..971790b3c45cef83e177de7f27bcf21867c2542e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG`!ez>1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJwu3(q| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b8f31eb6beb1fe71c143ec65c1ac2550f260073 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..288ee3a4e9beb6a1f8acd7f2144a174bbeb92811 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a}zOE-Hqok^Q{z@cH+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_Sj-9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1808fc8a0fae1d32b668246de1439c203e1c1844 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK3h=F5T?ebS7=)0f&ZN)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFiQVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..5756f1b8b37551f4e94c3741d40267c48e1a61be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn1sfyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ&$zfsu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b70b1497af660ddacd6c3759792bb92f4686ffa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_r;z|H+wdnNt=1Vp<&l_H6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3da98f774369141f4654a5bcd2bbcdb33eadef6e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG`!ez>1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJv8eo_J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..649a0782c2cd31abfd6438b7b6530463f2c1aaf5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gk~$T)Nq_=}g+p0}c(lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca17b1cefc8770c8f8a57ffa31341a4311b1256e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zh6ZHuUDMToXzL{9bzSmHo22Gdip?w${`dDi5dHmp9*F)tU;O)SGte{$Q2fcl2x94g z2#}o&tT74-eJPQ4Y78^a9-eYx>!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|w;E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..649a0782c2cd31abfd6438b7b6530463f2c1aaf5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gk~$T)Nq_=}g+p0}c(lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OJhEfn literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..2c570bf5adabad89ef13841c74a34804d9f38bbb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&H=}bLnQ!rZZ_X4>&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=C>8X>ZF?$gO1vLZx;)JpoZBm5JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkN_F_)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4344d571355a55cc035e37990dc46568f09604d0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK3h=F5T?ebS7=)0f&ZN)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f87e1e2aecfabc4b1c4c56eb9d9d4a9b7589d52 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMyT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b8b4537783b150036988bbe6f02e5c0a1317768 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&H=}bLnQ!rZZ_X4>&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi1NNSGifsqI5g~M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SJyLSUEx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a9b7cdb673df58f83923d77af78d556f3efec02 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zzSwi=X3wTGX)_NvH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFjhVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57a2f0af089e99e45d790c0a63a4d196d2eeda0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn3*b(#@VtXVPXKaA?>yT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac3a4fd1c60d2fb4fbd2eb2059f4f2a4d45fb9e4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$&aJnyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`a=VQv5b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..5be50cbcf4198adcb11af811f45f4d5b42043dc2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&KzlVlw~$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91795e61825f1a72fefae272f8158f7b3bc0074c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zeX-}#&7MtX(qY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&S_!ViN!W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b8f31eb6beb1fe71c143ec65c1ac2550f260073 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gim=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E0J|w;E&u=k literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3fae4b217f49017e219d77e041640afcd688ded7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a}zOE-Hqok^Q{z@cH+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruH?m@X literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5477752ac52227c5954437a4eb97f844d4d7be80 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zzSwi=X3wTGX)_NvH0+wL21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG?QVblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryLengthExpression_child_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..57a2f0af089e99e45d790c0a63a4d196d2eeda0d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXn3*b(#@VtXVPXKaA?>yT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ)U14GX literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..f641dcd49588dd02cfd08b78ea3257faf479cd02 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zH0*h?r{`u*+L<(m0}i{Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQnpI_+! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..87071228bceaa18baa47fd35c3a16d61b2122fe2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaJU15Cy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6c19147125d43b34146364fd914299abf24015a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8GGJvV#O&ZIdUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QQ^VW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a7eae3f0af1acc79e5eb986007a9d899fe3602 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&O9Jv}#j($1tg9B|k*T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaH$zgo} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..ee360b218798125321e3f8e0e45695e4fec1ac0f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK4;a_VnEBNjsC~aKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrudb(k3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..d70b709b9b18b555eb16b29952778bc91303e596 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z?s>7N=VnjZnKXw34!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UP;+VDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..f48df49dd8247b215128106485ceca2281b8a72f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaJU15Cy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..60989d012bab58f7d48fe1e1a8bf0340d6cef5e7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;%l3@D) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdf1a8a5d322de3389413bdbf64fc36dcf19b902 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXxQ^&PtVPsv@>ZA2OM@yR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau`t6;ML literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6c19147125d43b34146364fd914299abf24015a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8GGJvV#O&ZIdUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QQ^VW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dc793f5689381c89d45912beb05826e564f9575 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zH0*h?r{`u*+L<(m0}i{Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQm3t#B~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a43661f9d9f90733531caa3dd4ed270062db8e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-Sc8k&&{5+GieS79Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`(QVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a4d20c16db1b21e1975a03a4237ddd279475c88 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gnu1sf1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oo&;n@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..56fb60498743a67013ab2b73a19f69bd493287dc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt zyXVE8o|`>sXVM%FIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXEuuVQl~a literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6c19147125d43b34146364fd914299abf24015a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zch8GGJvV#O&ZIdUaM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&QQ^VW0p2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..68f2c19729f0ab5c6df96621da576b3f8dd03756 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4;a_VnEBNjsC~aKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruNEu>( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1386a5996a4c6f94fb89d7b0b73a217ac49e3e68 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XESz*wb^fC+$p{!vTj~)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`(QVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..11943a3c05dfdfeaaf575a1e3658808308036bdf GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHMZA2OM@yR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau|KVY)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..833ad7cc956c1e1d51b25e5916c79efac2f56c31 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&Jmav8U%|PuiI@hXW3~rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O=SXC! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..95a7eae3f0af1acc79e5eb986007a9d899fe3602 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&O9Jv}#j($1tg9B|k*T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaH$zgo} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..f48df49dd8247b215128106485ceca2281b8a72f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaJU15Cy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..68f2c19729f0ab5c6df96621da576b3f8dd03756 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4;a_VnEBNjsC~aKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruNEu>( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..f48df49dd8247b215128106485ceca2281b8a72f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaJU15Cy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd0931290cacbd5f5141cf386204efb78ff92ed8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zH0*h?r{`u*+L<(m0}i{Us{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQpGhgWd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5e122f6005f58863d2aa15d95dbcdb2ea6e15f19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z?s>7N=VnjZnKXw34!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UP=2VDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..344766acab3a5b582dd99a54b7745d94fecddb34 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ^&PtVPsv@>ZA2OM@yR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau|KVY)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bdba7054928933e02ca9da51e6503bc0205d4cc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`O=niD5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..2215c823fedd73f4e8a95ec2071f2aca339cd307 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H z_q^ECbF&91<#51Z*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_ z6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90XVS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{s|VT1qx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a43661f9d9f90733531caa3dd4ed270062db8e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-Sc8k&&{5+GieS79Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`(QVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a43661f9d9f90733531caa3dd4ed270062db8e2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z-Sc8k&&{5+GieS79Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2`(QVPpUR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..87071228bceaa18baa47fd35c3a16d61b2122fe2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua{HDS;I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c5b0e3dbd78207ad12b943baeb696e73d478c64 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK4;a_VnEBNjsC~aKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrudI(`` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a548cc2e9585cf5ae77e8d3d5900a3d12296af1d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4;a_VnEBNjsC~aKK^LbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruNE%{) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1e7722b4d9927aa91291acee003b3f7411b3ed8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp#fQZ*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZXf>=5r z0%RuxYm9q!{Ee2H+qqh&U#90X7N=VnjZnKXw34!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48URJ+VI=?n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryMinusExpression_child_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..344766acab3a5b582dd99a54b7745d94fecddb34 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXxQ^&PtVPsv@>ZA2OM@yR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEau|KVY)} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..728fda56d598eef518aec3703cbe699a73fe68d8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^;7r;XAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4ggUp@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f1af02f3aefe65c798dd200ed1b175f61878ca9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI65VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa6b936531fdf68ac7c45bedcb69bebe2f171585 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPlzVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c58915b71930fa689e33f1da220eac12935f56b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bt!v?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;?GGO%p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae6b2e642915546c55c5c04570e5d17af16efcd7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R1836C02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPg|VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce7fc4f17f9e1102978bc128d913d748186f214a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6bScnY1%N22gz0bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru3>09& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..978ee2b3802b3c8e3e5451a6131333dc9e376097 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ z0>#h3#CJ_s1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq;AVBda3nPf7 z10q0nGO)%dDDA99YNmER{Un)7%IZ$Kv@)PVL zeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7TQ)**VwyGk7 FH2| z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPlzVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..48f81119496c4846ba9944d55cb3d85cca1e2344 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=e-C$4v literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..2224a426ded8bbeaeed8d7564ae952db2fd1ce84 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z?rl&K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|8qU`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;?GGO%p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae4714fc6a70b4b8420e0fe96f09972c53b3d51b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^;7r;XAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4b#Up@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..160cd1837f9a13101ffe5df0c141181eec69f31a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&W_ZI|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWY&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&N@WVuSzy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..efad8ecbc00ede85d8f2f17472c3108d284c1b1a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4xC9l17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI40VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..90a8446b93e673cf3e21a7b40e86559ba3e35fed GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gjkl95|D92FP%5aM(3n4T!c*QeM|3zqCneUZvQ~65)S;-viO#&*y>Y&-2B!EQ}zQ4u}BR$-o+;pwO2RX{W|8^X%a%7q(97Z|<8^;%WTZq~}`pBuz2(eyQY4 z=Rl3w%TKV2^l8mGb<)j>K}YSrw~K{9P{ZsO2_F`nY-d`S;3j{grRH|7*6Ek&`3yNV NO{tAd*{X^R)&N@WVuSzy literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..2cbcfe13f5450378bd60dfa6158a21ba7a11414d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaNtbZ86d;K!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkrUSpd8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..91e3ddb5024e17ac48b1fd18a08344af3d830bfa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GlAm)BgXDpC51k|Gqtt z3lu+-b_U3BaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5!O@jc% zpDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3Oy@w2 z*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#fHBG6F KP1&l74AuY(S75>b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c58915b71930fa689e33f1da220eac12935f56b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7bt!v?F^9N;NY-px*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8eng#)i zKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR;?GGO%p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6219c0d7bbc0eb620e1fe81227221d933ffb96cd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4xC9l17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI3~VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..e2874afc547c928f0b438bb4321ea7afc8a0bd1f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8X689IB+KI43OdA;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5kc+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..160cd1837f9a13101ffe5df0c141181eec69f31a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&W_ZI|C8lHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=115JYf#h)yU zAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|DVUJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlfqGSF5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae6b2e642915546c55c5c04570e5d17af16efcd7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R1836C02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPg|VA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa6b936531fdf68ac7c45bedcb69bebe2f171585 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPlzVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6219c0d7bbc0eb620e1fe81227221d933ffb96cd GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4xC9l17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI3~VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa6b936531fdf68ac7c45bedcb69bebe2f171585 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UPlzVA22p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..511800ca233f480913644b9dff1da6a6e3fd305e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG#of^;7r;XAj84IVb^puAlf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0|4lLUp@c; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..160e6520f6297374634e2c2d7b2b6218313937fe GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>#gyoq>q&nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|DVUJIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWlgXk-2W literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..07adaab9f3a18020b0770b8d7bb1244b28cdd8de GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zf#PS<&OpR>O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9MK+_;V@h1x- zh@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(!Iny~%WA^eB z>>_&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIW3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI65VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..60091776c7d71c4dad0661db0cf5fdc3d825bf3b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zq2a)R1836C02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UR#}VI=?n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1aa376ef1a3387a2b92e845a01e69bfc94e9bc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zh6bScnY1%N22gz0bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru3u0iw literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..efad8ecbc00ede85d8f2f17472c3108d284c1b1a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4xC9l17tWjIP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXI40VblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dba3d9c12e08119767e5e083f64d2bede91e913 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zq2a)R1836C02vMr4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UR)9VI=?n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e29b3131e47a5fe285d57a522b1b7a859e382583 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zB8%^ut_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mVra^$>PZmZHO9w=N z>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1rgNai?ByreMf$Yn zoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y#nx@porfgM325SJ< CF<^QC literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryNegationExpression_child_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ad499cb00c2e690be04e3a71f8d70b3ad70f61b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z?rl&K!$^Z!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|DVU7J{D}b#!{zE=l}os`SJGu@7p&t zG_1MS)N?Gjc#UObo6fH3YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8{0$$7j literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fff28cf178bfbd445562d8ce114044cbb29ba97e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaREMZ~* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a3671bee343068321f3528d6f1ede817097922b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..911eb807fddc30f3c3477eecfa3ce6353eeb8443 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zcg?k?o@2qqYb+z%baqWw1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~u~V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8d5fa98a50e056bfd2e555f6deffb89791f2bd5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp<&Inrk-QL#cM1h+jMqKR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..e44bf167d4618792a3e1560d88ee2e457b544107 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK4oQntF}}7q795Y}45_T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua@9biuY literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..c9a458c5673401dbf07026d8a793add387050ae5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zuDRCKb1b-cjb&t;&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{DlU)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..a3671bee343068321f3528d6f1ede817097922b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6f8fad0d56e14396397814d02ce5b92bc22fdd8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIm^Hl1D5)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08<9bc9J literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..911eb807fddc30f3c3477eecfa3ce6353eeb8443 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zcg?k?o@2qqYb+z%baqWw1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~u~V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..214d0c228c22e90929236b4937f0e6629dac83e5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG_1MS)N?Gjc#UObo6fH3YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8_ZeGj) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..23bed02a9a48a1ba19bb37ad7d17735036f2444b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zU30Ce=U8y@8q3Hwon6z_fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;g24WHb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7bae5f28857d085caa350fd96df1815c81d50e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4oQntF}}7q795Y}45_T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQePLn% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cfd2a857ceb41333efd6605fe6dab3fec1fe27f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gn9qHT4_|E?#39*`~8=x*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;g24WHb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..7bbad508b88021be9d618e1884d19aedd0c0bb22 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&HQa*3@$>xOk0aWSh>e>1sf z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UVgvU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..911eb807fddc30f3c3477eecfa3ce6353eeb8443 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zcg?k?o@2qqYb+z%baqWw1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~u~V1obv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c99c0ab3160e799a7c075697d3bd1925364c3e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4oQntF}}7q795Y}45_T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQd|_e$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..df046406a90a9f92d75d66c0e4b25d91a4dd87c2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XDGIYw9@`T)f6IvQ1~#bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrum}6qb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..23bed02a9a48a1ba19bb37ad7d17735036f2444b GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zU30Ce=U8y@8q3Hwon6z_fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~Hl1D5)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08=v0s(| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f02a6fd24e1ad68245730d90763066db2eac04e5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&HQa*3@$>xOk0aWSh>e>1sfYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauiEMQ;& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..a3671bee343068321f3528d6f1ede817097922b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c99c0ab3160e799a7c075697d3bd1925364c3e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK4oQntF}}7q795Y}45_T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQd|_e$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..a3671bee343068321f3528d6f1ede817097922b5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEaujz+hki literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..937120ba4f659c02f5e2e1f3899ab30acc3af936 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG_1MS)N?Gjc#UObo6fH3YCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8|mR`&N literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..bfe2863deebec9a91d1e729ce7496d77b21ceffc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zuDRCKb1b-cjb&t;&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{E$U)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f011221af81df2251c363996663b8c45142b1db GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXh0U&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWxOk0aWSh>e>1sfJ#xk-^XV-K!Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}ezU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa857240213c228ff5f96a0dd3b725d09a18b12a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zU30Ce=U8y@8q3Hwon6z_fN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaREMZ~* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1cff7966cfcafab1b36c289541d473a509ecd206 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp<&Inrk-QL#cM1h+jMqKR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasLr(m-H literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcfec345ba6a1d1598e5ae691736c4a5740a9df1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK4oQntF}}7q795Y}45_T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua?YhX_R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7bae5f28857d085caa350fd96df1815c81d50e3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK4oQntF}}7q795Y}45_T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQePLn% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..07d4cba6e201aea939138a03790fb60ee89a9668 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp<&Inrk-QL#cM1h+jMqKR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasN24J%Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnaryPlusExpression_child_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..054a42f2efd924b426ccda370cc9a4c75f63a0fb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zuDRCKb1b-cjb&t;&aUZdK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|jlU&&n^fXy{Mn@ETJ|JOG4+0_=y|i7M*NoTA1J_f1{=5cCOaxm+AQoIWC>8X>ZF?$gO1vLZx;)JpoZBm5Um4mOV*ROub(! zIny~%WA^eB>>_$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ(cwu4y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_BooleanType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_BooleanType.gif new file mode 100644 index 0000000000000000000000000000000000000000..d44bc94e14916681dc59790cd126840c65ffbe9c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zzPPmK=BA!AGt&+3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFkVVW9v3 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_IntegerType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_IntegerType.gif new file mode 100644 index 0000000000000000000000000000000000000000..d01836d01e406e1da79acd6f62538f714b2c396f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK3iH_T1dmb7p4Rfd+?N)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZ*3}Ipb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_QueueType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_QueueType.gif new file mode 100644 index 0000000000000000000000000000000000000000..5c0241e78807b3fc75e64b354eb0fecf1c7f43a2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zzPPmK=BA!AGt&+3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXG^VVblNs literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..d799c183313f4f63203daf66d686a59038639040 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx8;NX3xztX=e^N9Qgk~etx|D|NHh0 z4Gk|Y?YX(B=giEs0}T$lrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OKEPw% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_RecordType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_RecordType.gif new file mode 100644 index 0000000000000000000000000000000000000000..9bb3e39256ccfabe03e251744db7e62ecde51f45 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&H=pwCCogo-;Gk4m3FInyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_ReferencedType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_ReferencedType.gif new file mode 100644 index 0000000000000000000000000000000000000000..f1e2d49e68323eb933eac4511913a52cf6a8ecce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a})JvTS?oSB(+puu6+bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru_lIIE literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_TupleType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionTags_type_TupleType.gif new file mode 100644 index 0000000000000000000000000000000000000000..25e4762a651e9d0dbaa5edde5e67ffb7ef286643 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z`{L4`o11#h%uGAb;IM1D8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5;@%I1k+cz{c zytuUI=BA!AGt+=lyQZrF(bh@I>$>EZHc8E^6q{Kh{O|93Ao~0HJP`ePzWDduW}s;h zp!k!85ya8~5g+&ksNMH=u@DGqnEfK*!=jVzObZj-H#ha1nVEK=!C}{QH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkOrD9J2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionType_tags_UnionTags.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnionType_tags_UnionTags.gif new file mode 100644 index 0000000000000000000000000000000000000000..c2235ab275bedac8c4eb6801f5b8a70a63f83b6c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWkjjbcv# literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..621468ed1da3b25b9620cafd3cef65753fec8b2e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zLqpTGYr)5kS*}^5)7G|Yx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR=kz+h+q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ArrayAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ArrayAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f7d7ca62aca12227bedde682ecb5d6169f8212c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zo3338K6cD<%^IDywq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuZlT45>x literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..5694faf3635979736128cfe3e55d09ad24d5fbc1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|Nrsx1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2@t?VCVn< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..960fd9d6442fa29d54b2fd4986670b33439a7d3e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4G3Z^ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_CaseStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_CaseStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a488171ffed1c00f3c4a75a256004d5f80d69fa4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z+jQ+(@Udf-Yu4zrwe6a&21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXED~VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3fb35ee48f0dece64955a5b6c7b8551f840a222 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zG+nzEeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXEpV5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a488171ffed1c00f3c4a75a256004d5f80d69fa4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z+jQ+(@Udf-Yu4zrwe6a&21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXED~VN?JB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e8c9603553a09b90f06a2a439dcf2c70b21aa40 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}YLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauNs9<0K literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad594ff9e5698d749f2ac8e6851bb6dff358b34d GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8XB6eT?;;T%yP{dowl}J)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruLAPNU literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_IntegerPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_IntegerPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb31e4b052870ef16e83dda4417cdae34e7297b3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW7uQ! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_LoopStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_LoopStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb31e4b052870ef16e83dda4417cdae34e7297b3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEsqJ=#4k?_usEvcIp5B`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OW7uQ! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_NullStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_NullStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a259b8fb4f254c6c429ed9e0055ec1798ca554c1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3V=$kk5@87Sybm{;9`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Ot$$=z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_OnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_OnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f9f86f07131fc54f9f337ffaa75eb1d9220b563 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z+jQ+(@Udf-Yu4zrwe6a&21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXFr3VT}L) literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..66b71850f162273bdc938b3cc47c00a85c971863 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru55{6F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_PatternStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_PatternStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bed4f36c2aa77232d6c159714450adb63438202 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;NxA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ReceiveStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ReceiveStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3fb35ee48f0dece64955a5b6c7b8551f840a222 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zG+nzEeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXEpV5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3fb35ee48f0dece64955a5b6c7b8551f840a222 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zG+nzEeC(Lznl(CYZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UXEpV5k59 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..86fde1e236e11f6c4dc311658422f3043fe630ec GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&Ehi7JTfO<(f4*ZEd@zs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RP_FkhAc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f0b400c3f014d9ec584b43eb3efd44d037a67d61 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR>9fMBQq literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_SendStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_SendStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bed4f36c2aa77232d6c159714450adb63438202 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;NxA literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_Statement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_Statement.gif new file mode 100644 index 0000000000000000000000000000000000000000..2c9fb7ddc57c4d51e05c5ed7dc435ec28cdac8ff GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@wm6seG9RB~0pC51k|Gs@g zLqpTGYr)5kS*}^5)7G|Yx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;xa$xKL literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_StatementChoice.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_StatementChoice.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2df954b265da6f828fdced94f49a7749ed3b53e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`q#8wcumNEZ3~jX=~dxT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaPkzsuR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..19ae1446ad8b8924f1e2281d5df6c16f1e893a58 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zXlS~2E%?|m%Qb6s+S+zaR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauQ24G+S literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c98ad11a90832721e771aa06f26666d7661490 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8nV*Mg57vs|-Ar>$+*bTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSru4;Er9 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ToStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_ToStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f92d6f95da5afa4a32a709407a858cfa358dd7a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqO=KL7v6&yTnNf8QR+ zZMt?X_}DSaHEVR*+ICG>1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2?@=V9fvk literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_UnlessStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_UnlessStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..e01fab445e08617c0c0c17bba6c526ebcc08b88a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zp#fQZ*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK73^WY_6o0ZXf>=5r z0%RuxYm9q!{Ee2H+qqh&U#90X3$Vw6p^b4*&nh&yTnNf8V~L zp`q#8wcumNEZ3~jX=~dxT@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaQ@L_!b literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateUnlessStatement_followers_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a6da4c5cdd0b26a8f52a5878381b1937ff28230 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&D3_yB2)xnB|%^I&E#crmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OWIJQ? literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..7aaf03326ba945b0bdc0fc7e6cd523557bc5e4a6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG#of^V9uO5mCG(UI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHmb6m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`{GVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3aa68896f4ec7cacaea452a8f2b4377834d89ff GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2a)R19Rrgsa$r+!NFnIbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSruLY-k5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..28d7cba309af0031fd81430272f6a986c93062b8 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zh6adu<+4ja@m1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{2vGdV z!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb4%C>v z`~$UdnNzv!5>R~CbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru-O^x= literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc633fdf3b19d911f5e4cd1f6d7c99d0612b9b6f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn<*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1_0z&V3z;@ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..8227f580872d7e5eeabda12f07d02732e29a66b0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXgF}-z??aADwkbyaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auave_&4l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d8effbd7a3cdaa6d387d80d4388cec7a78e3fb6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b0G{?2?0n!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`{GVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..d749f034ebd2061cc5860da13c371e93340006d5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG#of^V9uO5mCG(UI5_N@t_DO~Cn>M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHk-(Q6Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..83824fbf1ff96492d11694251fc70b689c1e120a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GpBOdC7}4O>1sf+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oh-hNV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f85940ddf591c7f87372bfa13e6bee574e86224 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|r*hdP2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`Oh-hNV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..05a82b2ebb5308ecfdd975f9b43d270f7b10a2f3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&CGIaA3}yIhD&UIXF1%nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=B0{}SDVF>^L literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d8effbd7a3cdaa6d387d80d4388cec7a78e3fb6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z7b0G{?2?0n!>;LSK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;}1StMw zVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI2Wre- zeu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5(N^NY) JR#jxM1^`{GVLSi; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d4c8b509d8bbaeac864165446b9cbf14d7af2ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK2(N4$PS|r*hdP2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giUm4mOV*ROub(! zIny~%WA^eB>>_1sf$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auax6JSpO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..758dafb7cd607cb64fb329445c0d76e298381756 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&CGIaA3}yIhD&UIXF1%nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2giM%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SHo2VaE% literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcd612ead993fa375c217c53a0c573b9f2469987 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ z0>$UdnNzv!5>R~CbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru-Z)^6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c707053becfcc995e511b27c72068702b289881e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aADwkbyaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auax6JSpO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..81bed353002b5878eb2af720dbd012ddc6101d2f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$6>ylsEBsH&6Y-Wk@zrXK+=`9tp>its5na+V4 zvzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc}YMN3T Ko3d3E8LR=fUtn7R literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..52da91872671524eb2fbe953ff4addf33b10fc1c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z1&Ys^GpBOdC7}4O>1sf1sf1sfm=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi!kkXzDXsX#-B}ku4PZs6jSe)O3ri+)R?{e1iMI| z)|^u(-K-dN)b4w`SO^3)%zlyZVbRHUriBS^@;6#)Zs%&9ewm)nkWs>oms E065%X2mk;8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f85940ddf591c7f87372bfa13e6bee574e86224 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK2(N4$PS|r*hdP2M32;)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi$UdnNzv!5>R~CbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{Gz|h2 zf3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89Go1r9 zW-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{)HJ0w LHf5_SGFSru1iE0s literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateValueSubject_value_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c707053becfcc995e511b27c72068702b289881e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXgF}-z??aADwkbyaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Auax6JSpO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_ArrayType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_ArrayType.gif new file mode 100644 index 0000000000000000000000000000000000000000..62a12266859d325e0bdb7c50550f0fccfd22b953 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6`Tnp|wW?8&OC$eqVbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrumIY$Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_BasicType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_BasicType.gif new file mode 100644 index 0000000000000000000000000000000000000000..4583981b80f6ec9f238fbc659b91a589ebd1ff33 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlPn3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08+zh9OB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_BooleanType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_BooleanType.gif new file mode 100644 index 0000000000000000000000000000000000000000..59c4adae079e982b2d51d81f354063921fa96ef3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{6aU)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_IntegerType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_IntegerType.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f352d7156a7971feb9c2f7fc9ecbf2d98bee52a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=4PZ|I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_NaturalType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_NaturalType.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0468c112d117366c51992603b49de33b3c2cc66 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08;Q(u+< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_QueueType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_QueueType.gif new file mode 100644 index 0000000000000000000000000000000000000000..4df8fc516f7bf5a6f14a8f06727ccb8b8915a69a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|caU`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;f2VxQc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_RecordType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_RecordType.gif new file mode 100644 index 0000000000000000000000000000000000000000..ddb5cda064c37d4cd164968c0b17ab67aa1ad41a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sfYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauf&R}2w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_TupleType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_TupleType.gif new file mode 100644 index 0000000000000000000000000000000000000000..02a8aeedd698b4dc83022474534cf61d3729f141 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRK)BgXDpC51k|Gqtt z+qC9daL+Nz;x#&vZM&wc0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UVYTU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_Type.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_Type.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6cc9ca21b65346b17a879f074b1ec70263aa356 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zG_AQ7+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{T6U)}%! literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_UnionType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_type_UnionType.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d6b7f5f135cc53415c84640fe81e11500d468bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zw`t9_;GSca#cOmT+jdP?1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~n7J{D}b#!{zE=l}os`SJGu@7p&t zG&HTb7Tj~pvUrV7WZSOkYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8^q+ZMb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_AllExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_AllExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7884addd495ff8c64a9f05992c0b2c35ffa66b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO&S7Ez literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d6b7f5f135cc53415c84640fe81e11500d468bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zw`t9_;GSca#cOmT+jdP?1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~nYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauf&R}2w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb602a6157687473f4ed1eaf14a659b8a43193c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=zhF-Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..59c4adae079e982b2d51d81f354063921fa96ef3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{6aU)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0a1713d5daad6e3348320b4eecb90b0f9cc0dfa GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?M%l3&^+HLp@^W{L2>zwd$Q@8|PC^ym5F-*=mV zra^$>PZmZHO9w=N>||h#QBdehiL_H=n0fZ_lnYxY^*8rTD)BV_Y|?Wrdy=M@dcRb1 zrgNai?ByreMf$YnoI2@d#h{~h-`mAPAgE#Xi-Zr0PPQ{GOmLIG(Nc3eSL^i4^n8Y# Onx@porfgM325SIkmtWoh literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..4583981b80f6ec9f238fbc659b91a589ebd1ff33 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6tZBN|6MU@La!sU8+yDRZ^W*LR-?wjQ zXlPn3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08+zh9OB literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d6b7f5f135cc53415c84640fe81e11500d468bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zw`t9_;GSca#cOmT+jdP?1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~nMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8@5MImx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..b64344705496297fb7de2335e329ce834ce9b1c3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..34d83037854af10f5eefe253edc28a2090dd36f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm3et_AlTvn*bt6WO+Fx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;dsA3WT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d35ecbc594eb15d278c9188512f8015bce85903 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOA7Nqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..34d83037854af10f5eefe253edc28a2090dd36f5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gm3et_AlTvn*bt6WO+Fx*8B|ous_3OMYpS)VxZunI*#i{=NsIzn{+o(Vypwf8T8e zng#)iKUo+-EFBO5vXg-|MnR!3CDKlfVdmMxQ!Z?s)Zg4Usl?Oxvq{gj>`9tp>its5 zna+V4vzMP>7wOZQbLym<6@!l2eQy^FfuM%jFA_d1I@!*&Fu_g!MoZ1@T&>eD)AJc} OYMN3To3d3E8LR;dsA3WT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d9d6929f50e8188a993c0ea4344755cc61d4413 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sf z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UVZkU{C-6 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d6b7f5f135cc53415c84640fe81e11500d468bc GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP zw`t9_;GSca#cOmT+jdP?1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2~n$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO9${ht literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_FalseLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_FalseLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..62a12266859d325e0bdb7c50550f0fccfd22b953 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt3P=$oVS@6WHiRQdmZ{QP+P|M%@1 z8XB6`Tnp|wW?8&OC$eqVbTuH_I!Sq5m;BNusd<%RGfRa3{e2Hae?OlGqCd|U|GwJ{ zGz|h2f3h%wSUMmAWG4e_jDkX6N~E0{!_2dXr(D=NslT~zQi-SWXOo_5*^@NI)cd89 zGo1r9W-mX%F4Ctp=hR6zD+V34``#`V0znP4UnG23bh4dkVS=0djh33*xmu@Rrsp%{ P)HJ0wHf5_SGFSrumIY$Q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b64344705496297fb7de2335e329ce834ce9b1c3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0468c112d117366c51992603b49de33b3c2cc66 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08;Q(u+< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_LiteralExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_LiteralExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..08d7d5221061a7dfe11b142270f8685878e8b04c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm;&Cxga=ik3ndFlWE`1$en|L@y3 zG&D4=xfa}W%(8fmPGsAz>1sfYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauf&R}2w literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..eeca32a9bec88cf255731c63f1f5fb7dc8f774ea GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO9${ht literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..baaa3be79d895999bd43f5cde2e4627257e5cc8e GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^EcnYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEauhVqjnZ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c59dd44ebe127b3ffb15778e0420656c7bcc598 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG&HTb7Tj~pvUrV7WZSOkYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%8`I9|*E literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..454398ffa0c5acfe2ebd17024a5217eea29406cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b=9#pHh6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^{7rU)2Br literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2255e98604375f14c9f922e2ce07e21bc0be710c GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zXlPn3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08;Q(u+< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca7960758092b23157287c2926f63980860b1c22 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmv*&6}h5@6W$1sfzyhbOoZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}XoU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..4375ccf689cccf0dc7a4a49ff524b6aa59f509a4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..b64344705496297fb7de2335e329ce834ce9b1c3 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ zZCZ0JxaXK<@fw}Twq4WJfN1L^<#k>1OPi$TRf^3l5&rl0JrMo)AYJYW3#ZZps{ z2vGdV!U$sNfC!MC46HE<3VkV&c4`bW&mNv~Ve6#+=DtZKp2nX|dah+p(iBtgmrBlb z4%C>v`~vU`GG| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7884addd495ff8c64a9f05992c0b2c35ffa66b1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaO&S7Ez literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d7a6e0f66544dbb89ebeb6469d435ca00dd2188 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?Ai08r{`u`+8GCj1ONZW&yTnNf8V~L zp`mHbwcws(mc?syBHMONR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasJNno=8 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f352d7156a7971feb9c2f7fc9ecbf2d98bee52a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74Aua=4PZ|I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d35ecbc594eb15d278c9188512f8015bce85903 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8m!*MfVFSr)I+iEP_7T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaOA7Nqu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..66eed056387130b4b9a1ac950f0b0962019b1864 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0K=L=VnjZnKXw34*&nh&yTnNf8V~L zp`mHbwcws(mc?syBHMONR|BH0la$wW$uDh^npY_{vqbpc-}gZD_w#um`tyA8@4L-F z(;z_cCkrEpr2`^Bb~3QWC@A!$MB1q_%shK|%7v|y`kVVEm3SI|HtD&RJxNncyYLM_VN?#B7ItOPMvhKV$e~$@9knC5Y#aHMZ$+gC)=48Cb-GpXsNlKt9ANidOkx= OO;c)PQ?{xigEasKs9>`I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_value_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..4df8fc516f7bf5a6f14a8f06727ccb8b8915a69a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ zHm$i9+;hybc#TeE+pg(qK(uv|^13ehrA<=vD#d1&2><*09*F*aJ`Y5Ho-h7=w;5;} z1StMwVFa;sKm^E62G$q_g}#(XJ2i%xXAe)guys;@bKj&APvg%fJ=d})X^N@$OC@JI z2Wre-eu7=3PixMplWtZFI%@a5T`UBG8fL#p_^{|?JJZ4hH~AYaHMeuMPQOggXUM5( NN^NY)R#jxM1^|caU3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08;Q(u+< literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_variables_VariableDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateVariablesDeclaration_variables_VariableDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..741b7da2222c5a88749f6231947925dba31467e7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zo7P+l?m1>zyhbOoZP#=)Alf=fd0m(M(k7{Sm0~kXg#Z104@7@Ip9i8p&lmr`+YB@f z0u+C;FoIY*AOd7318aB0{}XoU!nj2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_DecimalLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_DecimalLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ac9c84f95685dd8284c3be16cb748a64d31f5e1 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6T)WnE>{#%cHI{8{I{*L2&yTnNf8V~L zq2a}zJvV!L&ZMOsaB$c)T@8q~PEuaiCBL*uYF?$-%o5>$f8PVq-_PfP=+E=Tzwb5! zO@jc%pDc_ZmJWyj*~!2fqoB~25^1N#F!Su;DHpa*>Tm9wRN`s;*`()M_9RU)^?s@3 zOy@w2*~?F`i}Y#DId#&_ia|&1zPF2oKv2W%7YQF0oor`XnBXRVqow9{uGZ<7>G=#f OHBG6FP1&l74AuaMP+@%l literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_LowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_LowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9bdf38603d9281b3d0ec524a0599cdbc921c8c5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{QmLv&5fh?_s_qytn&Z=`1$en|L@y3 zG&H=}v*%_{&zZEe0}c+mrmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OpT=ZH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_NaturalLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_NaturalLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..0c30291c31e24d495bb80b5b5582dd9271bcb610 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ zeX(cH&7Ph!X=w)>9Cl4t1EQ^yl-G61FKv>VS1C5LMEKv|_dxXb^LZfp^L+8|yUjq; zAVBda3nPf710q0nGO)%dDDA99YNmER{Un)7% zIZ$Kv@)PVLeOhx)opiHe&{4bZ?P4Ji)G+%+!iPmC+nE+7xXIsWskxo2b^2v`K0{7T NQ)**VwyGk7H2{x8VT1qx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_VariableLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_left_VariableLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..c0dddc3bff03ad59a6af634555ef1c7b9334cb40 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{Qmm&&C#Rx=g+@XS^58e{QP+P|M%@1 z8X8{g*>kg}=S*7K0SAX&)75}z>m=oMUGhttq~=wM%`6fA_xC*z{r!9%i2giZ{QGV* z&@>28{K>)yV(EYgkev*yF$xNODUo(+3^UIjo^oO9r2gi{^e($Wq%IP99P21HvYDX;62U)m%!uTpGgiSWO_?}6y==kq}H=lSB_cbkEx zL4e{<7Df3tK1kH}_2{@ihKy(sM0)lBSq?zf^Lj zbD+lTg4sA2Ytgb#~OwlghEaFf5$Qgb_3>-5X?e1@Ew Nrqsr!Y*j@DYXHw=Vc-A& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_right_NaturalUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_right_NaturalUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b5823c27e146fef1d1ddb3434789cd068edf0ab GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK3h=_T230Ig^%lz`3$Vw6p^b4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48URN{VI=?n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_right_VariableUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWaitStatement_right_VariableUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..59d30291b8c621d4f7068cf0416e5094a0ee75a5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@bX4;vCh6V=*hyVZM=f~Uszi$uZ zzSy(pW>3$Vw6p^b4!fqS0nye;%Imu1mo`bws}!4ABK+^~dm#Gz`8*K)dA|7f-DaR^ z5TN*zg%QNk0TCcO8CYW!6#7yk?bH}%o;^I}!q!Rs&3%(fJdHn_^jyoHq$#G}FO{6> z9H=pS`3ZKBKCL;YPP$n!=&0TIcCio$YMA{Z;lrYn?Mw?3+~jYx)ZEV1I{h*|pCPBF NDYdaFTUC+48UP?{VDbO} literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..61e5d4d4826d48db21ce859eaf5641bc8ff6bee7 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84hI|@9RB~0pC51k|Gs@g zL&MkKKaRe+G5`Ml%1g_3O;-b=t&^13b;&PnlA2d3HnT+d-{1E@^!M|5Ao}xs@$b9M zK+_;V@h1x-h@}G}Kz1^)#waNCr9|4PG0Z%Bc*=#Xllq(cCY5*^e>Um4mOV*ROub(! zIny~%WA^eB>>_C>8X>ZF?$gO1vLZx;)JpoZBm5JK( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..2230e4556d64ca65d160350d213888c143fce213 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBKKqS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..968035a2b88ed0266f20024e920153f5d60c38ce GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?14mbe8|NrsxMmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%A0-D9x; literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a3d7b11cb142a7892b91046729fd636d71e104b4 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?78%!XVcBJnP(gt4*dTgKR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=095Z)6<+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..27a63b5c44ab1a4c8bee5cdc221696ba70980bee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zeEt37=$jk!@9(d?v~1UOH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmW9b<6- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fd40f1869f2f0d10da7370d1156639ba136800a GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqVFga7}JpC51k|Gqtt z`}Oyaqi=4^zrVlo(z0FC)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=095Z)6<+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..55d7be5a9128f0d36af3f3cc3b8845552495c686 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+kR0e5}WEO|ec}1sft$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n@=<14 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_IdentifierPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_IdentifierPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a52f706ce3c45ef529352b1ec3ba414051d035 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+==5r0%RuxYm9q!{Ee2H+qqh&U#90X Q=5r0%RuxYm9q!{Ee2H+qqh&U#90X Q=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_OnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_OnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9813e10fad3088afee0cc0457d1650e125c3266 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqD^dj9{9pC51k|Gqtt z`}Oyaqi=4^zrVlo(z0FC)qrU0B;|Eo@=Kef=2eQ#ED`?q_dO8({d^vX{ybm&`))JP zGzd`q$-)R?>3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=09kpJY}5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..de48ec6202d66c29b7b51d9f444714367ab8ef44 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=;@%I1k+cz{c zeEt37=$jk!@9(d?v~1UOH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmW9b<6- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..27a63b5c44ab1a4c8bee5cdc221696ba70980bee GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?18XSP&|Nr>;@%I1k+cz{c zeEt37=$jk!@9(d?v~1UOH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmW9b<6- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..7ea4283fe9477a8fd0eda0c5282f3d3219c5a0f6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG<^O2Um4mOV*ROub(! zIny~%WA^eB>>_tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=Um4mOV*ROub(! zIny~%WA^eB>>_+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OVlHGx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2585040a1a3f9d52b7cf7f11e2c607991f24bca GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6TwBw0tS5L)v1MDN&j0`M^W*LR-?wjQ zX!!d3$I&-8=HK66d1=|M>1sfI literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_TaggedStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_TaggedStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..12de541e7f51dbe972531c980d9fa8e567388362 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%9$@MD$$ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_UnlessStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_UnlessStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..2e9fe7e1ba3e59fbaa3fe93ad72b1f429e082ea5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTAA4lKZn16qN<)vl2rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OA!B3n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..e12e1fd3707816febe2092394ac043e072e17ce6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx6nnW>3$Vw6p^b4*&nh&yTnNf8V~L zq2cTAA4lKZn16qN<)vl2rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OV~u1+ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_body_WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..f809a28cc7227bf020f4f5d0187bb1ce201458d5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6eEt37=$jk!@9(d?wCw-?`1$en|L@y3 zG&CTK@0zX#L|Z2*uj`Uu+9WlvQfy|4@V~$Bf#~n&^FZ|H`QqPqn}Mc5fZ|UUMi5H} zM1bsMV2x2w=u3&TQ)8HU_VAPoTPO85_f0DCH2!STb1i$4rkHxaRC1$ zwC0>T>1M^Cqjulh#X=ycVfKrJ4~tH=Gc8PTlfThYb30e-^vm>ohMbzF)W)W4RYeAC E06N%ayZ`_I literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Addition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Addition.gif new file mode 100644 index 0000000000000000000000000000000000000000..981b7874e5094bf9c60ad54aa35cdfa6a35e95f9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+k>7J{D}b#!{zE=l}os`SJGu@7p&t zG<^O2tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBKKqS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..11f3aea0ec53e0cfe12e7fc77ba8fc30e34635be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_v`N;N8j9-e}8}FrDeOOs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQOa%2_& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ArrayExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ArrayExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..2e9fe7e1ba3e59fbaa3fe93ad72b1f429e082ea5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTAA4lKZn16qN<)vl2rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OA!B3n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a52f706ce3c45ef529352b1ec3ba414051d035 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@ymQ^}9IQ;(~KR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmOm}6)F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..2230e4556d64ca65d160350d213888c143fce213 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBKKqS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..278cd8af6a478ccfbaa39620e52662730c0b2187 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?84F?Um4mOV*ROub(! zIny~%WA^eB>>_1sf_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQOa%2_& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonNotEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ComparisonNotEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..8848b0132c0a3f10e93f574de46e2ee87483eb19 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G&Nld4nAgSxkg8)?f?Jy`SJGu@7p&t zG<^O2MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7VUSrw- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..561bc08cff3b17cf9f9c6445784498956f2013c6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6?0NB`=jP3{GiMwQ9Qgk~etx|D|NHh0 z4Gmv^|2X>Q#{B#HD=#hEHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b76a8a7e8193b06280007dec31fe041784f4477 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6yx4Q;X3wTGX)_NvH2nV`KR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=Q#{B#HD=#hEHC+vewoX!B*CoHSNoroD*vt~)e}CTt(cjPKf#}ck#lP=1 z15JYf#h)yUAeIh@0NKgF8l#}lmlA2G#xV2j;VBokPU>&&n^fXy{Mn@ETJ|JOG4+0_ z=y|i7M*NoTA1J_f1{=5cCOaxm+AQo PIW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Division.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Division.gif new file mode 100644 index 0000000000000000000000000000000000000000..d990d5e487452b66870a4b2e9613b30429869ec9 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6{P_L##+#%2@6TU$sq+8-`1$en|L@y3 zG&Fqu{p0AH8}sk)ue`Ku*K{=?+B!*jU6=gQCaHOqVlzvG|NVUrM1Mb@2ckdE7yrK7 z3^WY_6o0ZXf>=5r0%RuxYm9q!{Ee2H+qqh&U#90X Q3|53oeZoo3JQHGk#=efGtVBLa$)PF{^q_(C7#BgO?s|nPtp`q@0Uu> zbPm**z5E2bNT1f6QzzZ57*B$#$lN32yQ?T54|RYMp+Wp3jg| O)0EoSl&z}BU=08lmt*4q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ExistsExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_ExistsExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..11f3aea0ec53e0cfe12e7fc77ba8fc30e34635be GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU?74GqRKXa4^mKR@37|9yKP z_v`N;N8j9-e}8}FrDeOOs{zs0Ny_WG_ja)m2x^%9BH_cLlkH3k6Wru)wA9?r)jIt$J)a?` OrYW_tDO**M!5RQOa%2_& literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..12de541e7f51dbe972531c980d9fa8e567388362 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=t$a__ImRwd_fnV(R@; z$(hc98nc(5U>E7rnse%;n-znO+I?>q3xS}9*)I}4EIQfFv@pR<{zgm9?Od(XFVpiG Pa%!4V8=JCK6&b7n@r!0z literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..96cdc6db4b6a247f64a9aea357ac56dc6814e2e6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdaI(Kk2d-``((Y1yvnYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7VUSrw- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Implication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Implication.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e6a76706f9920f23f1413b3454c6b3b47d12cd2 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx(i$EVyTlWpSHM1sf=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..2e9fe7e1ba3e59fbaa3fe93ad72b1f429e082ea5 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6G+nzEeC(Lznl(CYZU6tr&yTnNf8V~L zq2cTAA4lKZn16qN<)vl2rmF$b)=A3iy5yHONzJPin^_|K@9%pc`uq7j5dC?+`1jpr zplJ}G_>+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OA!B3n literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..2230e4556d64ca65d160350d213888c143fce213 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx+^^Ecn+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBKKqS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..12de541e7f51dbe972531c980d9fa8e567388362 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tzau*)6JflXVMxDIQ;(~KR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OBKKqS literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7ea4283fe9477a8fd0eda0c5282f3d3219c5a0f6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6Tx)7N7970B(y~oQ=l}os`SJGu@7p&t zG<^O2JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWmO{$pqW literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ef08b61fe71228492289238058e83ef4c4b8e0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zX!!d3$I&-8=HK66d1=|M>1sf=5r0%RuxYm9q!{Ee2H+qqh&U#90X QOV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..4f26f1b05762196802420cfc44005db5759e6c12 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`?w?MzxjLxY2Z!~g&B^W*LR-?s;H zzyAJl^v#X=_xD#`TDEJt8W3%rq`a<6erc1`yh^c|CBpyyz6YYepU(r)pXZBz-)#n( z1_6pcSr|bq9S{MslYuoxL7^`t(oT(G=GntjE^M9D-`qE;#MAh*Nzb+HNt$Bn{Zh%9 z&Vd@Um!Du4>C>8X>ZF?$gO1vLZx;)JpoZBm5JK( literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..6555fbef33fa3532be56ba83a4f41d21778651cb GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`{`~t54Gj(s4*&nh&yTnNf8QR+ z{rdaI(Kk2d-``((Y1yvnYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7teq;Io literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryCoerceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryCoerceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..96cdc6db4b6a247f64a9aea357ac56dc6814e2e6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdaI(Kk2d-``((Y1yvnYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7VUSrw- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryDeQueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryDeQueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..96cdc6db4b6a247f64a9aea357ac56dc6814e2e6 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b|NZ$54Gj(s4*&nh&yTnNf8QR+ z{rdaI(Kk2d-``((Y1yvnYCyDglJdGP`K3)#^D4z=mI(j*`yPn?em)OGf1WS?eYY8C z8U!f*WMKrcbU*~iP6pN(1%MmLCOy}(CuxeQ_e&*b zItOaZUVegIq)%(ksgrJ23_5D}yf*NMONcgbmWINNs1ULB`Ej71uwNAfG&u7S~ OX-aKu%2rimum%7VUSrw- literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryEmptyExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryEmptyExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..de48ec6202d66c29b7b51d9f444714367ab8ef44 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6ytuUI=BA!AGt&+tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OV9#Vm literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cdecb1607bb46e28996cc5ec1fd97b18e022be0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`@b&YU@w%Pu)MIQ;(~KR@37|9$(0 zhK8@de;j>tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=tWB&d9m6w+7nyv;!TPG>6>ylsEBsH&6Y-Wk@zrXK+=+YZ#L@u~AUhdYV-ytnQX=it7-pV5JmtdHN&U@zlS({|Kb!Pi%buhurrs}= zoar2>F?;z5c9A}8}5D03R{UYJRqLb}R3lrSrZ?x3h&eb~oGCiLm Pr=}^ju_;?sk--`OVlHGx literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..766d696122013ea7e04a124b5d06a9726b2b1b2f GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z695`^`Oxl@-h6V=*hyVZM=f~Uszi$uZ ze*OL9=$jk!@9(d?v~1UOH6YqLNqJqD{L&_=d6i-_ON9UZeGf!`Kc5GpKhGEczS|5m z4FVK@vM_>JIv@gMCj)DYfrlb&nYlQhND`=ydI zodY#yFF(O9(x)}&)JZoh1|7Bg-YymbK@GECBz#zOvYlyRf}8w}mYUnSTBl#8=QHHg OG^I8+WvePOSOWm#abueR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/ctool16/CreateWhileStatement_condition_UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ef08b61fe71228492289238058e83ef4c4b8e0 GIT binary patch literal 223 zcmZ?wbhEHb6krfwIKsg2|NsB{_xIb|$1^Z6thv_Ib1b-cjb&t;&j0`M^W*LR-?wjQ zX!!d3$I&-8=HK66d1=|M>1sfSeg|6F8S#PBzcr94?)kg2*G_|W{CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wT~uRaQAn7P!5RPxRxsiK literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AllProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AllProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3dc5a9ad8159548d5ada4a1cd545ec1d4de029c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl+bt_2@EX1QjK zPFtJePZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9ULNDL| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AlwaysPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AlwaysPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..2124f3e3ab2646fd6aec35b94fe003b565ba4c2c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcq{62c)&HVlM zE0+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaQpE9Wc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AnyPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AnyPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c2aaac84ee6ea15757df499505e9aa0de4288f9 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH-5-2OJz6 z6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqynw9sg T)a2J)&e-X8WTKETBZD;nhqo^t literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AppendExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AppendExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..83afb9b3c9a3c3e261dd043d2232d39254ac8e4a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyTt{n?Lw#ITz zn@*eJPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9V)-T`y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ArrayAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ArrayAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed8747474012f8278002a9785026a1a40155b192 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;-#;I&}kR~x;L)6}k-mG`XF S2)>|nFUJDj}wbA=HP3@{#dCy8s Se%p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9ULNDL| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ArrayType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ArrayType.gif new file mode 100644 index 0000000000000000000000000000000000000000..a3908bcf7b4ec0b29040bb1ef944c4d5a93fbb32 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcqe?9u<==}Th zD=$?l{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v WEALsU$*;SdvD59yL?K~D25SIuW->+q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AssignAnyStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AssignAnyStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..83afb9b3c9a3c3e261dd043d2232d39254ac8e4a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyTt{n?Lw#ITz zn@*eJPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9V)-T`y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AssignStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/AssignStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..10d222998af0a3a571390bae7e117c9964ec1562 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH+*$H~@j- zPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%9FH!q$5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BasicType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BasicType.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8041d22553d3f326e3e82be501f2e9bac3794b0 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nm>6uJr^TE4Ew{ zsne$TlZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0^gFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Block.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Block.gif new file mode 100644 index 0000000000000000000000000000000000000000..89ad5da38ab3060f14ba925b1251bd5cb8454012 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NlR}{=RYa&HnlK zmsMU;{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR0y3!p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BlockStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BlockStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..98b351f1c441775dfbe390577f2e534a4dcf07f9 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nna~z3AC=Gi~M> zhlT@+KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPum@wi1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BooleanLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BooleanLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..05dc74ad5da0d7b040b29537d5b24f2b120b11d5 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH>`4RXR90 zDE?$&WMJTA&;jWLnZdxKXK>PU^p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%8^m@icT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BoundDeclarationUse.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/BoundDeclarationUse.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4a8af418445186dec6bb4f750c13a832181fe76 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;-#~uRaQAn7P!5RR$a4*mR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/CaseStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/CaseStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..30f0c48da8d4450f7e94a696c4de0a7cc41aa728 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;~uRaQAn7P!5RR`@-PYj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ChannelDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ChannelDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e5345fb3237c2f6eabcee2dbe44a371b49d8379 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NmdV{yuv2&HVZI zD=RN4{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v WEALsU$*;SdvD59yL?K~D25SItpfW}P literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ChannelType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ChannelType.gif new file mode 100644 index 0000000000000000000000000000000000000000..a3908bcf7b4ec0b29040bb1ef944c4d5a93fbb32 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcqe?9u<==}Th zD=$?l{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v WEALsU$*;SdvD59yL?K~D25SIuW->+q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..a17dc7d88e993e89a1d5f913ddfab16b1676c5bb GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L|S+8LmfgM)+O zPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%8^m@icT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonGreater.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonGreater.gif new file mode 100644 index 0000000000000000000000000000000000000000..83afb9b3c9a3c3e261dd043d2232d39254ac8e4a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyTt{n?Lw#ITz zn@*eJPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9V)-T`y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonGreaterEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonGreaterEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..35ef84e20e26f1cef1dcd7ae80d192fd40472368 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH-5+2OJz6 z6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqynw9sg T)a2J)&e-X8WTKETBZD;nnfEVV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonLesser.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonLesser.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8041d22553d3f326e3e82be501f2e9bac3794b0 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nm>6uJr^TE4Ew{ zsne$TlZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0^gFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonLesserEqual.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComparisonLesserEqual.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed8747474012f8278002a9785026a1a40155b192 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;-#;I&}kR~x;L)6}k-mG`XF Sls$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wTQ#{B#H zD=#fm{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR0y3!p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComponentInstance.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ComponentInstance.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3643da048a40135b62eed5100cac5afe1ecef3c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl*Et_AlTvn*bt z6WONtlZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0?AFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/CompositeBlock.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/CompositeBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..2b6925602975de13459862ee32e1b0d97549bf67 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nocvyx7!pb7tC^ z28RQRKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPvM=;_5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Composition.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Composition.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e5345fb3237c2f6eabcee2dbe44a371b49d8379 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NmdV{yuv2&HVZI zD=RN4{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v WEALsU$*;SdvD59yL?K~D25SItpfW}P literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Conditional.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Conditional.gif new file mode 100644 index 0000000000000000000000000000000000000000..c414fe9f728a37e7a2578cf66e5d3f625b429d0e GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L~B{rNyC2L}hm zpDc_F44e!)Ae|sH7+CZSPI|81Yw`NaHx>Seg|6F8S#PBzcr94?)kg2*G_|W{2)>|nFUJDj}wbA=HP3@{#dCy8s Se%_b*-m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Conjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Conjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..33854e98c25a13543eb9477dc67b0baf87fc81aa GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nnblyy&@kGwsY7 zhXV%`f3h$#FmN*HfOLY)U|`WRIO(~1uf^*x-&FV?7P@XXWxbV>;I&}kR~x;L)6}k- WmG`XFGDecTm zhXW0YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPvNHF36 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstantDeclarationUse.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstantDeclarationUse.gif new file mode 100644 index 0000000000000000000000000000000000000000..35ef84e20e26f1cef1dcd7ae80d192fd40472368 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH-5+2OJz6 z6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqynw9sg T)a2J)&e-X8WTKETBZD;nnfEVV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstantPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstantPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..30f0c48da8d4450f7e94a696c4de0a7cc41aa728 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;~uRaQAn7P!5RR`@-PYj literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstructionExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstructionExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea58a657dc0c287f6bb84e6cbd38008c96713db3 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%cT)Nq_=}g+p z0}c&}KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwr!e9G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstructorPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ConstructorPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..106881e5d9bf05cb0cf3375cfd102e8039b8ace9 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl+b)&w8xv0PKE z(-x`tlZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0^gFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/DeadlockFreePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/DeadlockFreePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..14af8aaee9f431cebfb2b13249821419380131a3 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk#8?YX(B=giEs z0}T#}KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPxRxsiK literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/DecimalLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/DecimalLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..db7414e937292c344d6fd0d0805085b67650f5c8 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqynH61$^yk?DM zTbqvJPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9XYA@gb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/DecimalUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/DecimalUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea58a657dc0c287f6bb84e6cbd38008c96713db3 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%cT)Nq_=}g+p z0}c&}KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwr!e9G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Declaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Declaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4a8af418445186dec6bb4f750c13a832181fe76 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;-#~uRaQAn7P!5RR$a4*mR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Disjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Disjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..33854e98c25a13543eb9477dc67b0baf87fc81aa GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nnblyy&@kGwsY7 zhXV%`f3h$#FmN*HfOLY)U|`WRIO(~1uf^*x-&FV?7P@XXWxbV>;I&}kR~x;L)6}k- WmG`XFGfj zmtCq<{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR$TFz_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/EnqueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/EnqueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdd3b76e3c0b3318166d84292d8d9e2146a48aa1 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;~uRaQAn7P!5RR$)-TWi literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/EnterStateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/EnterStateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4bc22dd17e82d9350631bd55ad9671957cdaf50 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Noa>?Adg)XXcr- zh64_YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwrZD0F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/EventSubject.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/EventSubject.gif new file mode 100644 index 0000000000000000000000000000000000000000..53500daf98e17bc98acd04b14eb7b16938ceb4dd GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH>^+RXR90 zDE?$&WMJTA&;jWLnZdxKXK>PU^;I&}kR~x;L)6}k-mG`XF S+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR$TFz_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Expression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Expression.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4bc22dd17e82d9350631bd55ad9671957cdaf50 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Noa>?Adg)XXcr- zh64_YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwrZD0F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ExpressionDeclarationUse.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ExpressionDeclarationUse.gif new file mode 100644 index 0000000000000000000000000000000000000000..c3370c7ddd5e0817a59de6fd45ad0993b52abe28 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%c?77*~b0#hA zfP;hLPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9wDljtu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ExtendedConditionalStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ExtendedConditionalStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..05dc74ad5da0d7b040b29537d5b24f2b120b11d5 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH>`4RXR90 zDE?$&WMJTA&;jWLnZdxKXK>PU^R{v WEALsU$*;SdvD59yL?K~D25SIuW->+q literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/FieldExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/FieldExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c2aaac84ee6ea15757df499505e9aa0de4288f9 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH-5-2OJz6 z6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqynw9sg T)a2J)&e-X8WTKETBZD;nhqo^t literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ForeachStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ForeachStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..338fb8d9a728b682e398849d2038959d01b4e0f2 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np7Tg zFI845{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v WEALsU$*;SdvD59yL?K~D25SIvEHXv_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/FunctionDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/FunctionDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..2b6925602975de13459862ee32e1b0d97549bf67 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nocvyx7!pb7tC^ z28RQRKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPvM=;_5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/IdentifierExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/IdentifierExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c414fe9f728a37e7a2578cf66e5d3f625b429d0e GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L~B{rNyC2L}hm zpDc_F44e!)Ae|sH7+CZSPI|81Yw`NaHx>Seg|6F8S#PBzcr94?)kg2*G_|W{`4RXR90 zDE?$&WMJTA&;jWLnZdxKXK>PU^{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0}LFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ImportDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ImportDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..05dc74ad5da0d7b040b29537d5b24f2b120b11d5 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH>`4RXR90 zDE?$&WMJTA&;jWLnZdxKXK>PU^~uRaQAn7P!5RSA+%Q7` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/InfinitelyOftenPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/InfinitelyOftenPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..136e3b27269e84a045f9b528614d7dfd316e444c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl)**MftOSz4~q z(P>ls$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wT`4RXR90 zDE?$&WMJTA&;jWLnZdxKXK>PU^+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaQpE9Wc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/IntegerType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/IntegerType.gif new file mode 100644 index 0000000000000000000000000000000000000000..904159880b359f157463f3cb9230da602e5b3d3a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH>=tE;%?j zDE?$&WMJTA&;jWLnZdxKXK>PU^qmH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLAll.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLAll.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4bc22dd17e82d9350631bd55ad9671957cdaf50 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Noa>?Adg)XXcr- zh64_YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwrZD0F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..338fb8d9a728b682e398849d2038959d01b4e0f2 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np7Tg zFI845{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v WEALsU$*;SdvD59yL?K~D25SIvEHXv_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..338fb8d9a728b682e398849d2038959d01b4e0f2 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np7Tg zFI845{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v WEALsU$*;SdvD59yL?K~D25SIvEHXv_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLExists.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLExists.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c2aaac84ee6ea15757df499505e9aa0de4288f9 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH-5-2OJz6 z6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqynw9sg T)a2J)&e-X8WTKETBZD;nhqo^t literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..ef56c140853105ca812564e9b12a76413c8c3fb9 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NnblTGDecTm zhXW0YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPvNHF36 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..35ef84e20e26f1cef1dcd7ae80d192fd40472368 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH-5+2OJz6 z6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqynw9sg T)a2J)&e-X8WTKETBZD;nnfEVV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..5915591825a5301b9f9a3d398baea497ef02311d GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk#u?74Zf=ggV3 z0|y)wf3h$#FmN*HfOLY)U|`WRIO(~1uf^*x-&FV?7P@XXWxbV>;I&}kR~x;L)6}k- WmG`XFk literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLRelease.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLRelease.gif new file mode 100644 index 0000000000000000000000000000000000000000..498364f1c1ae0e61f26b0063dea3a1606959210e GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyTnvMkrud%dj z)6r4<$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wT+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuatYBLM~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUnaryEventually.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUnaryEventually.gif new file mode 100644 index 0000000000000000000000000000000000000000..33a997a1606acf7cb8a32921faeee1e5c809a0cb GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NlRJf4%YM=>Gfj zmtCq<{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR$TFz_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUnaryNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUnaryNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..338fb8d9a728b682e398849d2038959d01b4e0f2 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np7Tg zFI845{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v WEALsU$*;SdvD59yL?K~D25SIvEHXv_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUnaryNext.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUnaryNext.gif new file mode 100644 index 0000000000000000000000000000000000000000..83afb9b3c9a3c3e261dd043d2232d39254ac8e4a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyTt{n?Lw#ITz zn@*eJPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9V)-T`y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUntil.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLUntil.gif new file mode 100644 index 0000000000000000000000000000000000000000..98b351f1c441775dfbe390577f2e534a4dcf07f9 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nna~z3AC=Gi~M> zhlT@+KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPum@wi1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLVariable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LTLVariable.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a5c70cbd74c87cb3b1df383e0c242ede4660c3b GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nnbl?CH7LlXfP} z;ednUPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9u%P=zl literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LeadsToPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LeadsToPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..c8d381f0b327e1289745a7e8ea72b5cc7b782bfe GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L~A{rNyC2L}hm zpDc_F44e!)Ae|sH7+CZSPI|81Yw`NaHx>Seg|6F8S#PBzcr94?)kg2*G_|W{ls$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wT+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuatYBLM~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LocalPortsDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LocalPortsDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..33854e98c25a13543eb9477dc67b0baf87fc81aa GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nnblyy&@kGwsY7 zhXV%`f3h$#FmN*HfOLY)U|`WRIO(~1uf^*x-&FV?7P@XXWxbV>;I&}kR~x;L)6}k- WmG`XF+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaQpE9Wc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/LowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a9bc7514facefe049e8f5d98bb2e1e37f03c0c2 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np;#e0_7{=>7fk zFD+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaSD>A77 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Model.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Model.gif new file mode 100644 index 0000000000000000000000000000000000000000..33a997a1606acf7cb8a32921faeee1e5c809a0cb GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NlRJf4%YM=>Gfj zmtCq<{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR$TFz_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Modulo.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Modulo.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3dc5a9ad8159548d5ada4a1cd545ec1d4de029c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl+bt_2@EX1QjK zPFtJePZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9ULNDL| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/MortalPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/MortalPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..89ad5da38ab3060f14ba925b1251bd5cb8454012 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NlR}{=RYa&HnlK zmsMU;{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR0y3!p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Multiplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Multiplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..83afb9b3c9a3c3e261dd043d2232d39254ac8e4a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyTt{n?Lw#ITz zn@*eJPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9V)-T`y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NamedElement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NamedElement.gif new file mode 100644 index 0000000000000000000000000000000000000000..14af8aaee9f431cebfb2b13249821419380131a3 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk#8?YX(B=giEs z0}T#}KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPxRxsiK literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NamedItem.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NamedItem.gif new file mode 100644 index 0000000000000000000000000000000000000000..420eee177528d9bd6d862c38d2a66c14835a6140 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;~uRaQAn7P!5RRp7cZRv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalItem.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalItem.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4a8af418445186dec6bb4f750c13a832181fe76 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;-#~uRaQAn7P!5RR$a4*mR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4bc22dd17e82d9350631bd55ad9671957cdaf50 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Noa>?Adg)XXcr- zh64_YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwrZD0F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalLowerBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalLowerBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4b530eca173b1070d5d876a0154bc370d8896b4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-Qir{QE#D2L}hm zpDc_F44e!)Ae|sH7+CZSPI|81Yw`NaHx>Seg|6F8S#PBzcr94?)kg2*G_|W{{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0}LFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NaturalUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..904159880b359f157463f3cb9230da602e5b3d3a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH>=tE;%?j zDE?$&WMJTA&;jWLnZdxKXK>PU^qmH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NullStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/NullStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..badaab0664ae45de5d990f64638197daeabf31bf GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcq|33QW&HVfK zD=%GA{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4Auasq%#Zv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Observable.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Observable.gif new file mode 100644 index 0000000000000000000000000000000000000000..a17dc7d88e993e89a1d5f913ddfab16b1676c5bb GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L|S+8LmfgM)+O zPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%8^m@icT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableConjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableConjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..c8d381f0b327e1289745a7e8ea72b5cc7b782bfe GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L~A{rNyC2L}hm zpDc_F44e!)Ae|sH7+CZSPI|81Yw`NaHx>Seg|6F8S#PBzcr94?)kg2*G_|W{Seg|6F8S#PBzcr94?)kg2*G_|W{+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR0y3!p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..a17dc7d88e993e89a1d5f913ddfab16b1676c5bb GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L|S+8LmfgM)+O zPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%8^m@icT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableNegation.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ObservableNegation.gif new file mode 100644 index 0000000000000000000000000000000000000000..4365960a04b1589a21b7607f45f9b5907e2f01a8 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;~uRaQAn7P!5RSA+%Q7` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/OnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/OnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..4365960a04b1589a21b7607f45f9b5907e2f01a8 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;~uRaQAn7P!5RSA+%Q7` literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ParameterDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ParameterDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea58a657dc0c287f6bb84e6cbd38008c96713db3 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%cT)Nq_=}g+p z0}c&}KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwr!e9G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ParameterizedDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ParameterizedDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..c673a5200a53ebd68c78c5cdb9d1bd4eaa855afb GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl+bnu3o7TduLx zY12{s$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wT7fk zFD+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaSD>A77 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Path.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Path.gif new file mode 100644 index 0000000000000000000000000000000000000000..caf2804510dc36959fb4e045e8af91d01229dcd7 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuatYBLM~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PathDeclarationUse.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PathDeclarationUse.gif new file mode 100644 index 0000000000000000000000000000000000000000..2124f3e3ab2646fd6aec35b94fe003b565ba4c2c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcq{62c)&HVlM zE0+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaQpE9Wc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PathEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PathEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..739ebbfa6ac7b44cc1632663c006f47e20f05127 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%cytvtO^Gw>A z0}clif3h$#FmN*HfOLY)U|`WRIO(~1uf^*x-&FV?7P@XXWxbV>;I&}kR~x;L)6}k- WmG`XF=tE;%?j zDE?$&WMJTA&;jWLnZdxKXK>PU^qmH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Pattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Pattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..14af8aaee9f431cebfb2b13249821419380131a3 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk#8?YX(B=giEs z0}T#}KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPxRxsiK literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PatternDeclarationUse.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PatternDeclarationUse.gif new file mode 100644 index 0000000000000000000000000000000000000000..caf2804510dc36959fb4e045e8af91d01229dcd7 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuatYBLM~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PatternProperty.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PatternProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..caf2804510dc36959fb4e045e8af91d01229dcd7 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuatYBLM~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PatternStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PatternStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea58a657dc0c287f6bb84e6cbd38008c96713db3 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%cT)Nq_=}g+p z0}c&}KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwr!e9G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PortDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PortDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..be22463d2919f13a6345bad3166fc216c3f0942a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcq|2X>Q#{B#H zD=#fm{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR0y3!p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PortSet.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PortSet.gif new file mode 100644 index 0000000000000000000000000000000000000000..db7414e937292c344d6fd0d0805085b67650f5c8 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqynH61$^yk?DM zTbqvJPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9XYA@gb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PortsDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PortsDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..904159880b359f157463f3cb9230da602e5b3d3a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH>=tE;%?j zDE?$&WMJTA&;jWLnZdxKXK>PU^qmH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PrecedesPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PrecedesPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..2124f3e3ab2646fd6aec35b94fe003b565ba4c2c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcq{62c)&HVlM zE0+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaQpE9Wc literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PresencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PresencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..a17dc7d88e993e89a1d5f913ddfab16b1676c5bb GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L|S+8LmfgM)+O zPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%8^m@icT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PriorityDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PriorityDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4a8af418445186dec6bb4f750c13a832181fe76 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;-#~uRaQAn7P!5RR$a4*mR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PriorityGroup.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PriorityGroup.gif new file mode 100644 index 0000000000000000000000000000000000000000..90d10f9470787d1465c462197b85d1d3621f84e4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;Seg|6F8S#PBzcr94?)kg2*G_|W{{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0?AFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Projection.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Projection.gif new file mode 100644 index 0000000000000000000000000000000000000000..83afb9b3c9a3c3e261dd043d2232d39254ac8e4a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyTt{n?Lw#ITz zn@*eJPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9V)-T`y literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Property.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..136e3b27269e84a045f9b528614d7dfd316e444c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl)**MftOSz4~q z(P>ls$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wT?Adg)XXcr- zh64_YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwrZD0F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..10d222998af0a3a571390bae7e117c9964ec1562 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH+*$H~@j- zPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%9FH!q$5 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyDeclarationUse.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyDeclarationUse.gif new file mode 100644 index 0000000000000000000000000000000000000000..106881e5d9bf05cb0cf3375cfd102e8039b8ace9 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl+b)&w8xv0PKE z(-x`tlZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0^gFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyDisjunction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyDisjunction.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4bc22dd17e82d9350631bd55ad9671957cdaf50 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Noa>?Adg)XXcr- zh64_YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwrZD0F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyImplication.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/PropertyImplication.gif new file mode 100644 index 0000000000000000000000000000000000000000..136e3b27269e84a045f9b528614d7dfd316e444c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl)**MftOSz4~q z(P>ls$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wTp3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9u%P=zl literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/QueueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/QueueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..498364f1c1ae0e61f26b0063dea3a1606959210e GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyTnvMkrud%dj z)6r4<$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wTp3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%98?=Oe| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RangeType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RangeType.gif new file mode 100644 index 0000000000000000000000000000000000000000..739ebbfa6ac7b44cc1632663c006f47e20f05127 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%cytvtO^Gw>A z0}clif3h$#FmN*HfOLY)U|`WRIO(~1uf^*x-&FV?7P@XXWxbV>;I&}kR~x;L)6}k- WmG`XF2)>|nFUJDj}wbA=HP3@{#dCy8s Se%_b*-m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordAccessExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordAccessExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..45731fe28e7e3521c15328ef201d58b47a13b383 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}-nKYo3gM)+O zPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%8^{x4Mk literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordAccessPattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordAccessPattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1f8afa47661703c49bd5fa535dcb1342deb6fc4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH+*?9DqRa zCkrD311EzHNGHe)1{OVolb);hTD<=9O@;qqq3d>2)>|nFUJDj}wbA=HP3@{#dCy8s Se%_b*-m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d92f34c8aea721c98537ccb1f4da29bdee3b8912 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nm>QHT4_|E?#39 z*`}lTlZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0}LFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordFieldDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordFieldDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4b530eca173b1070d5d876a0154bc370d8896b4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-Qir{QE#D2L}hm zpDc_F44e!)Ae|sH7+CZSPI|81Yw`NaHx>Seg|6F8S#PBzcr94?)kg2*G_|W{+UQ=w@ z7OA87lZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO10rFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordFields.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordFields.gif new file mode 100644 index 0000000000000000000000000000000000000000..badaab0664ae45de5d990f64638197daeabf31bf GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcq|33QW&HVfK zD=%GA{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4Auasq%#Zv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RecordType.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a9bc7514facefe049e8f5d98bb2e1e37f03c0c2 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np;#e0_7{=>7fk zFD+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaSD>A77 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReferenceDeclarationUse.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReferenceDeclarationUse.gif new file mode 100644 index 0000000000000000000000000000000000000000..98b351f1c441775dfbe390577f2e534a4dcf07f9 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nna~z3AC=Gi~M> zhlT@+KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPum@wi1 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReferenceExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReferenceExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..c00aedf4135a384d1a98a5344c27454f488cbe42 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np;#e|_`j=>7Zi zFI}os{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuauFf$AQ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReferencedType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReferencedType.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3dc5a9ad8159548d5ada4a1cd545ec1d4de029c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl+bt_2@EX1QjK zPFtJePZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9ULNDL| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Requirement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Requirement.gif new file mode 100644 index 0000000000000000000000000000000000000000..94c953e013baf5c1efe99489cbbf6fc39dd41341 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Np+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR$TFz_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReturnStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ReturnStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..498364f1c1ae0e61f26b0063dea3a1606959210e GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NqyTnvMkrud%dj z)6r4<$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wT~uRaQAn7P!5RSBPcTCO literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RootDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/RootDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..badaab0664ae45de5d990f64638197daeabf31bf GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcq|33QW&HVfK zD=%GA{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4Auasq%#Zv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/SelectStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/SelectStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..35ef84e20e26f1cef1dcd7ae80d192fd40472368 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH-5+2OJz6 z6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqynw9sg T)a2J)&e-X8WTKETBZD;nnfEVV literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/SendStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/SendStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea58a657dc0c287f6bb84e6cbd38008c96713db3 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%cT)Nq_=}g+p z0}c&}KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwr!e9G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/SequencePattern.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/SequencePattern.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4a8af418445186dec6bb4f750c13a832181fe76 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;-#~uRaQAn7P!5RR$a4*mR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StateDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StateDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..badaab0664ae45de5d990f64638197daeabf31bf GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcq|33QW&HVfK zD=%GA{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4Auasq%#Zv literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StateEvent.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdd3b76e3c0b3318166d84292d8d9e2146a48aa1 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;~uRaQAn7P!5RR$)-TWi literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StateSubject.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StateSubject.gif new file mode 100644 index 0000000000000000000000000000000000000000..c414fe9f728a37e7a2578cf66e5d3f625b429d0e GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L~B{rNyC2L}hm zpDc_F44e!)Ae|sH7+CZSPI|81Yw`NaHx>Seg|6F8S#PBzcr94?)kg2*G_|W{=1mmC}% z6o0ZXGB9v5=zw&B%wS;AGdStFdauRnFW*%79~Qc9H)Xw*lHj#q;a3~IkJHqynw9sg T)a2J)&e-X8WTKETBZD;nt%5J2 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StatementChoice.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StatementChoice.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a5c70cbd74c87cb3b1df383e0c242ede4660c3b GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nnbl?CH7LlXfP} z;ednUPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9u%P=zl literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StatementSequence.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/StatementSequence.gif new file mode 100644 index 0000000000000000000000000000000000000000..afb82ea48a50d3fb875ce03cf0ec154e51c97cb7 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nqz4G#%>+UQ=w@ z7OA87lZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO10rFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Subject.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Subject.gif new file mode 100644 index 0000000000000000000000000000000000000000..d92f34c8aea721c98537ccb1f4da29bdee3b8912 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nm>QHT4_|E?#39 z*`}lTlZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0}LFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Substraction.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Substraction.gif new file mode 100644 index 0000000000000000000000000000000000000000..48e3cf2268736efbb8bc3c5bd29315702f2b38c4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-JzEOd3$i!NEcC zCkrD311EzHNGHe)1{OVolb);hTD<=9O@;qqq3d>2)>|nFUJDj}wbA=HP3@{#dCy8s Se%A z0}clif3h$#FmN*HfOLY)U|`WRIO(~1uf^*x-&FV?7P@XXWxbV>;I&}kR~x;L)6}k- WmG`XF?Adg)XXcr- zh64_YKUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwrZD0F literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ToStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ToStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..90d10f9470787d1465c462197b85d1d3621f84e4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;Seg|6F8S#PBzcr94?)kg2*G_|W{p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9tY%ntb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TransitionSource.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TransitionSource.gif new file mode 100644 index 0000000000000000000000000000000000000000..5915591825a5301b9f9a3d398baea497ef02311d GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk#u?74Zf=ggV3 z0|y)wf3h$#FmN*HfOLY)U|`WRIO(~1uf^*x-&FV?7P@XXWxbV>;I&}kR~x;L)6}k- WmG`XFk literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TrueLiteral.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TrueLiteral.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4b530eca173b1070d5d876a0154bc370d8896b4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-Qir{QE#D2L}hm zpDc_F44e!)Ae|sH7+CZSPI|81Yw`NaHx>Seg|6F8S#PBzcr94?)kg2*G_|W{~uRaQAn7P!5RR$a4*mR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Type.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/Type.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1f8afa47661703c49bd5fa535dcb1342deb6fc4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH+*?9DqRa zCkrD311EzHNGHe)1{OVolb);hTD<=9O@;qqq3d>2)>|nFUJDj}wbA=HP3@{#dCy8s Se%_b*-m literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TypeDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TypeDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e5345fb3237c2f6eabcee2dbe44a371b49d8379 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NmdV{yuv2&HVZI zD=RN4{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v WEALsU$*;SdvD59yL?K~D25SItpfW}P literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TypeDeclarationUse.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/TypeDeclarationUse.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4b530eca173b1070d5d876a0154bc370d8896b4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-Qir{QE#D2L}hm zpDc_F44e!)Ae|sH7+CZSPI|81Yw`NaHx>Seg|6F8S#PBzcr94?)kg2*G_|W{Seg|6F8S#PBzcr94?)kg2*G_|W{Seg|6F8S#PBzcr94?)kg2*G_|W{~uRaQAn7P!5RPxRxsiK literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryFirstExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryFirstExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..7bac4fd3808df6247660dfb8d76e15609f279841 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|NndTyy)qp3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9tY%ntb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryFullExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryFullExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..904159880b359f157463f3cb9230da602e5b3d3a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH>=tE;%?j zDE?$&WMJTA&;jWLnZdxKXK>PU^qmH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryLengthExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryLengthExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea58a657dc0c287f6bb84e6cbd38008c96713db3 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%cT)Nq_=}g+p z0}c&}KUo+V7&sYpKsrHYFtF$uob+71*W&e;Zz}u`3thLHvffHb@LI6&tBu~rX=+!^ W%6nF7^6M^V>~uRaQAn7P!5RPwr!e9G literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryMinusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryMinusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a5c70cbd74c87cb3b1df383e0c242ede4660c3b GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nnbl?CH7LlXfP} z;ednUPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9u%P=zl literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryNegationExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryNegationExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..a26660ec28fda4a4216562537c32047bab42b782 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-Qgj+8LmfgM)+O zPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%98?=Oe| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryPlusExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnaryPlusExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..d92f34c8aea721c98537ccb1f4da29bdee3b8912 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nm>QHT4_|E?#39 z*`}lTlZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0}LFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnionTagDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnionTagDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4a8af418445186dec6bb4f750c13a832181fe76 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;-#~uRaQAn7P!5RR$a4*mR literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnionTagDeclarationUse.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnionTagDeclarationUse.gif new file mode 100644 index 0000000000000000000000000000000000000000..136e3b27269e84a045f9b528614d7dfd316e444c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl)**MftOSz4~q z(P>ls$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wT~uRaQAn7P!5RPxRxsiK literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnionType.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UnionType.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed8747474012f8278002a9785026a1a40155b192 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L}loH;-#;I&}kR~x;L)6}k-mG`XF Sp3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9ULNDL| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/UpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..a26660ec28fda4a4216562537c32047bab42b782 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-Qgj+8LmfgM)+O zPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%98?=Oe| literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ValueExpression.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/ValueExpression.gif new file mode 100644 index 0000000000000000000000000000000000000000..136e3b27269e84a045f9b528614d7dfd316e444c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl)**MftOSz4~q z(P>ls$->CMz{#Kk(g`wyfkn^Yr043r7O%g2Q{jJD=(^pM^;SxP*Mfy#ZS+1)Q@d(b V-m_AZUw1iUr`wT=tE;%?j zDE?$&WMJTA&;jWLnZdxKXK>PU^qmH literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/VariableDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/VariableDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..48e3cf2268736efbb8bc3c5bd29315702f2b38c4 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-JzEOd3$i!NEcC zCkrD311EzHNGHe)1{OVolb);hTD<=9O@;qqq3d>2)>|nFUJDj}wbA=HP3@{#dCy8s Se%7Tg zFI845{$ycfVBloX0qF#p!N8(taME-2UW?aXzNzp(EOgy&%6cm$!E3?7uQqxgr>R{v WEALsU$*;SdvD59yL?K~D25SIvEHXv_ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/VariableUpperBound.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/VariableUpperBound.gif new file mode 100644 index 0000000000000000000000000000000000000000..a17dc7d88e993e89a1d5f913ddfab16b1676c5bb GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgte-L|S+8LmfgM)+O zPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f@}8BN S{JP5-JKc^<6cT1+um%8^m@icT literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/VariablesDeclaration.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/VariablesDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3643da048a40135b62eed5100cac5afe1ecef3c GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nl*Et_AlTvn*bt z6WONtlZBCifs;W8q!VNY1B;%)Nzc`LEna{5ro#WQ&~>{h>#dXouLTRg+UR|prgqh= Vyl15*zwUCzPPZcyg@hRytO0?AFBSj* literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/WaitStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/WaitStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..c3370c7ddd5e0817a59de6fd45ad0993b52abe28 GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%c?77*~b0#hA zfP;hLPZmZ722KVYkWP>p3@myECp}m1wRrvIn+pHKLf7r4thZ7UycR6{YNPjYn%Y&f W@}8BN{JP5-JKc^<6cT1+um%9wDljtu literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/WhileStatement.gif b/eclipse/plugins/fr.irit.fiacre.xtext.edit/icons/full/obj16/WhileStatement.gif new file mode 100644 index 0000000000000000000000000000000000000000..be22463d2919f13a6345bad3166fc216c3f0942a GIT binary patch literal 129 zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nmcq|2X>Q#{B#H zD=#fm{K>+|z`)6%1JVgHgMmfQ;H2m3y%w*(d{g0nSm?Ull=W6hg4cqDUv2b0PE)&T WR^GExlV5i^W2f7Zi9*7R4AuaR0y3!p literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/plugin.properties b/eclipse/plugins/fr.irit.fiacre.xtext.edit/plugin.properties new file mode 100644 index 0000000..d3b23f4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/plugin.properties @@ -0,0 +1,521 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +# generated by Xtext 2.10.0 + +pluginName = Fiacre Edit Support +providerName = www.example.org + +_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_Model_type = Model +_UI_RootDeclaration_type = Root Declaration +_UI_Root_type = Root +_UI_NamedElement_type = Named Element +_UI_TypeDeclarationUse_type = Type Declaration Use +_UI_ConstantDeclarationUse_type = Constant Declaration Use +_UI_ExpressionDeclarationUse_type = Expression Declaration Use +_UI_ReferenceDeclarationUse_type = Reference Declaration Use +_UI_UnionTagDeclarationUse_type = Union Tag Declaration Use +_UI_RecordFieldDeclarationUse_type = Record Field Declaration Use +_UI_PatternDeclarationUse_type = Pattern Declaration Use +_UI_BoundDeclarationUse_type = Bound Declaration Use +_UI_PathDeclarationUse_type = Path Declaration Use +_UI_PropertyDeclarationUse_type = Property Declaration Use +_UI_ImportDeclaration_type = Import Declaration +_UI_Declaration_type = Declaration +_UI_ParameterizedDeclaration_type = Parameterized Declaration +_UI_FunctionDeclaration_type = Function Declaration +_UI_TypeDeclaration_type = Type Declaration +_UI_ChannelDeclaration_type = Channel Declaration +_UI_ChannelType_type = Channel Type +_UI_Type_type = Type +_UI_BasicType_type = Basic Type +_UI_RangeType_type = Range Type +_UI_UnionType_type = Union Type +_UI_UnionTags_type = Union Tags +_UI_UnionTagDeclaration_type = Union Tag Declaration +_UI_RecordType_type = Record Type +_UI_RecordFields_type = Record Fields +_UI_RecordFieldDeclaration_type = Record Field Declaration +_UI_QueueType_type = Queue Type +_UI_ArrayType_type = Array Type +_UI_ReferencedType_type = Referenced Type +_UI_ConstantDeclaration_type = Constant Declaration +_UI_ProcessDeclaration_type = Process Declaration +_UI_StateDeclaration_type = State Declaration +_UI_TransitionSource_type = Transition Source +_UI_Transition_type = Transition +_UI_ComponentDeclaration_type = Component Declaration +_UI_PortsDeclaration_type = Ports Declaration +_UI_PortDeclaration_type = Port Declaration +_UI_LocalPortsDeclaration_type = Local Ports Declaration +_UI_ParametersDeclaration_type = Parameters Declaration +_UI_ParameterDeclaration_type = Parameter Declaration +_UI_VariablesDeclaration_type = Variables Declaration +_UI_VariableDeclaration_type = Variable Declaration +_UI_PriorityDeclaration_type = Priority Declaration +_UI_PriorityGroup_type = Priority Group +_UI_Statement_type = Statement +_UI_BlockStatement_type = Block Statement +_UI_ReturnStatement_type = Return Statement +_UI_NullStatement_type = Null Statement +_UI_TaggedStatement_type = Tagged Statement +_UI_PatternStatement_type = Pattern Statement +_UI_Pattern_type = Pattern +_UI_AnyPattern_type = Any Pattern +_UI_ConstantPattern_type = Constant Pattern +_UI_IntegerPattern_type = Integer Pattern +_UI_IdentifierPattern_type = Identifier Pattern +_UI_ConditionalStatement_type = Conditional Statement +_UI_ExtendedConditionalStatement_type = Extended Conditional Statement +_UI_SelectStatement_type = Select Statement +_UI_WhileStatement_type = While Statement +_UI_ForeachStatement_type = Foreach Statement +_UI_ToStatement_type = To Statement +_UI_CaseStatement_type = Case Statement +_UI_LoopStatement_type = Loop Statement +_UI_OnStatement_type = On Statement +_UI_WaitStatement_type = Wait Statement +_UI_Composition_type = Composition +_UI_Block_type = Block +_UI_CompositeBlock_type = Composite Block +_UI_InstanceDeclaration_type = Instance Declaration +_UI_PortSet_type = Port Set +_UI_ComponentInstance_type = Component Instance +_UI_Expression_type = Expression +_UI_ValueExpression_type = Value Expression +_UI_ReferenceExpression_type = Reference Expression +_UI_IdentifierExpression_type = Identifier Expression +_UI_RecordExpression_type = Record Expression +_UI_FieldExpression_type = Field Expression +_UI_ArrayExpression_type = Array Expression +_UI_QueueExpression_type = Queue Expression +_UI_EnqueueExpression_type = Enqueue Expression +_UI_AppendExpression_type = Append Expression +_UI_LiteralExpression_type = Literal Expression +_UI_BooleanLiteral_type = Boolean Literal +_UI_NaturalLiteral_type = Natural Literal +_UI_LowerBound_type = Lower Bound +_UI_UpperBound_type = Upper Bound +_UI_NaturalLowerBound_type = Natural Lower Bound +_UI_NaturalUpperBound_type = Natural Upper Bound +_UI_DecimalLowerBound_type = Decimal Lower Bound +_UI_DecimalUpperBound_type = Decimal Upper Bound +_UI_VariableLowerBound_type = Variable Lower Bound +_UI_VariableUpperBound_type = Variable Upper Bound +_UI_InfiniteUpperBound_type = Infinite Upper Bound +_UI_Requirement_type = Requirement +_UI_PropertyDeclaration_type = Property Declaration +_UI_Property_type = Property +_UI_PatternProperty_type = Pattern Property +_UI_LTLPattern_type = LTL Pattern +_UI_DeadlockFreePattern_type = Deadlock Free Pattern +_UI_InfinitelyOftenPattern_type = Infinitely Often Pattern +_UI_MortalPattern_type = Mortal Pattern +_UI_PresencePattern_type = Presence Pattern +_UI_AbsencePattern_type = Absence Pattern +_UI_AlwaysPattern_type = Always Pattern +_UI_SequencePattern_type = Sequence Pattern +_UI_LTLProperty_type = LTL Property +_UI_StateEvent_type = State Event +_UI_EnterStateEvent_type = Enter State Event +_UI_LeaveStateEvent_type = Leave State Event +_UI_Observable_type = Observable +_UI_ObservableEvent_type = Observable Event +_UI_PathEvent_type = Path Event +_UI_Path_type = Path +_UI_PathItem_type = Path Item +_UI_NaturalItem_type = Natural Item +_UI_NamedItem_type = Named Item +_UI_Subject_type = Subject +_UI_StateSubject_type = State Subject +_UI_ValueSubject_type = Value Subject +_UI_TagSubject_type = Tag Subject +_UI_EventSubject_type = Event Subject +_UI_TupleType_type = Tuple Type +_UI_NaturalType_type = Natural Type +_UI_IntegerType_type = Integer Type +_UI_BooleanType_type = Boolean Type +_UI_UnlessStatement_type = Unless Statement +_UI_StatementChoice_type = Statement Choice +_UI_StatementSequence_type = Statement Sequence +_UI_AssignStatement_type = Assign Statement +_UI_AssignAnyStatement_type = Assign Any Statement +_UI_SendStatement_type = Send Statement +_UI_ReceiveStatement_type = Receive Statement +_UI_ConstructorPattern_type = Constructor Pattern +_UI_ArrayAccessPattern_type = Array Access Pattern +_UI_RecordAccessPattern_type = Record Access Pattern +_UI_AllExpression_type = All Expression +_UI_ExistsExpression_type = Exists Expression +_UI_Conditional_type = Conditional +_UI_Disjunction_type = Disjunction +_UI_Implication_type = Implication +_UI_Conjunction_type = Conjunction +_UI_ComparisonEqual_type = Comparison Equal +_UI_ComparisonNotEqual_type = Comparison Not Equal +_UI_ComparisonLesser_type = Comparison Lesser +_UI_ComparisonLesserEqual_type = Comparison Lesser Equal +_UI_ComparisonGreater_type = Comparison Greater +_UI_ComparisonGreaterEqual_type = Comparison Greater Equal +_UI_Addition_type = Addition +_UI_Substraction_type = Substraction +_UI_Multiplication_type = Multiplication +_UI_Division_type = Division +_UI_Modulo_type = Modulo +_UI_UnaryPlusExpression_type = Unary Plus Expression +_UI_UnaryMinusExpression_type = Unary Minus Expression +_UI_UnaryNegationExpression_type = Unary Negation Expression +_UI_UnaryFirstExpression_type = Unary First Expression +_UI_UnaryLengthExpression_type = Unary Length Expression +_UI_UnaryCoerceExpression_type = Unary Coerce Expression +_UI_UnaryFullExpression_type = Unary Full Expression +_UI_UnaryDeQueueExpression_type = Unary De Queue Expression +_UI_UnaryEmptyExpression_type = Unary Empty Expression +_UI_Projection_type = Projection +_UI_ConstructionExpression_type = Construction Expression +_UI_ArrayAccessExpression_type = Array Access Expression +_UI_RecordAccessExpression_type = Record Access Expression +_UI_TrueLiteral_type = True Literal +_UI_FalseLiteral_type = False Literal +_UI_AllProperty_type = All Property +_UI_ExistsProperty_type = Exists Property +_UI_PropertyDisjunction_type = Property Disjunction +_UI_PropertyImplication_type = Property Implication +_UI_PropertyConjunction_type = Property Conjunction +_UI_PropertyNegation_type = Property Negation +_UI_LeadsToPattern_type = Leads To Pattern +_UI_PrecedesPattern_type = Precedes Pattern +_UI_LTLAll_type = LTL All +_UI_LTLExists_type = LTL Exists +_UI_LTLDisjunction_type = LTL Disjunction +_UI_LTLImplication_type = LTL Implication +_UI_LTLConjunction_type = LTL Conjunction +_UI_LTLUntil_type = LTL Until +_UI_LTLRelease_type = LTL Release +_UI_LTLUnaryNegation_type = LTL Unary Negation +_UI_LTLUnaryNext_type = LTL Unary Next +_UI_LTLUnaryAlways_type = LTL Unary Always +_UI_LTLUnaryEventually_type = LTL Unary Eventually +_UI_LTLVariable_type = LTL Variable +_UI_ObservableDisjunction_type = Observable Disjunction +_UI_ObservableImplication_type = Observable Implication +_UI_ObservableConjunction_type = Observable Conjunction +_UI_ObservableNegation_type = Observable Negation +_UI_Unknown_type = Object + +_UI_Unknown_datatype= Value + +_UI_Model_imports_feature = Imports +_UI_Model_declarations_feature = Declarations +_UI_Model_requirements_feature = Requirements +_UI_Model_root_feature = Root +_UI_Root_declaration_feature = Declaration +_UI_Root_observed_feature = Observed +_UI_NamedElement_name_feature = Name +_UI_ImportDeclaration_importURI_feature = Import URI +_UI_ParameterizedDeclaration_parameters_feature = Parameters +_UI_ParameterizedDeclaration_variables_feature = Variables +_UI_FunctionDeclaration_type_feature = Type +_UI_FunctionDeclaration_statement_feature = Statement +_UI_TypeDeclaration_value_feature = Value +_UI_ChannelDeclaration_value_feature = Value +_UI_ChannelType_size_feature = Size +_UI_ChannelType_in_feature = In +_UI_ChannelType_out_feature = Out +_UI_ChannelType_type_feature = Type +_UI_RangeType_minimum_feature = Minimum +_UI_RangeType_maximum_feature = Maximum +_UI_UnionType_tags_feature = Tags +_UI_UnionTags_tags_feature = Tags +_UI_UnionTags_type_feature = Type +_UI_RecordType_fields_feature = Fields +_UI_RecordFields_fields_feature = Fields +_UI_RecordFields_type_feature = Type +_UI_QueueType_size_feature = Size +_UI_QueueType_type_feature = Type +_UI_ArrayType_size_feature = Size +_UI_ArrayType_type_feature = Type +_UI_ReferencedType_type_feature = Type +_UI_ConstantDeclaration_type_feature = Type +_UI_ConstantDeclaration_value_feature = Value +_UI_ProcessDeclaration_ports_feature = Ports +_UI_ProcessDeclaration_localPorts_feature = Local Ports +_UI_ProcessDeclaration_priorities_feature = Priorities +_UI_ProcessDeclaration_states_feature = States +_UI_ProcessDeclaration_prelude_feature = Prelude +_UI_ProcessDeclaration_transitions_feature = Transitions +_UI_TransitionSource_origin_feature = Origin +_UI_Transition_source_feature = Source +_UI_Transition_action_feature = Action +_UI_ComponentDeclaration_ports_feature = Ports +_UI_ComponentDeclaration_localPorts_feature = Local Ports +_UI_ComponentDeclaration_priorities_feature = Priorities +_UI_ComponentDeclaration_prelude_feature = Prelude +_UI_ComponentDeclaration_body_feature = Body +_UI_PortsDeclaration_ports_feature = Ports +_UI_PortsDeclaration_type_feature = Type +_UI_LocalPortsDeclaration_ports_feature = Ports +_UI_LocalPortsDeclaration_type_feature = Type +_UI_LocalPortsDeclaration_left_feature = Left +_UI_LocalPortsDeclaration_right_feature = Right +_UI_ParametersDeclaration_parameters_feature = Parameters +_UI_ParametersDeclaration_read_feature = Read +_UI_ParametersDeclaration_write_feature = Write +_UI_ParametersDeclaration_type_feature = Type +_UI_ParameterDeclaration_reference_feature = Reference +_UI_ParameterDeclaration_array_feature = Array +_UI_ParameterDeclaration_size_feature = Size +_UI_VariablesDeclaration_variables_feature = Variables +_UI_VariablesDeclaration_type_feature = Type +_UI_VariablesDeclaration_value_feature = Value +_UI_PriorityDeclaration_groups_feature = Groups +_UI_PriorityGroup_ports_feature = Ports +_UI_BlockStatement_body_feature = Body +_UI_ReturnStatement_expression_feature = Expression +_UI_TaggedStatement_name_feature = Name +_UI_ConstantPattern_value_feature = Value +_UI_IntegerPattern_negative_feature = Negative +_UI_IntegerPattern_value_feature = Value +_UI_IdentifierPattern_declaration_feature = Declaration +_UI_ConditionalStatement_condition_feature = Condition +_UI_ConditionalStatement_then_feature = Then +_UI_ConditionalStatement_elseif_feature = Elseif +_UI_ConditionalStatement_else_feature = Else +_UI_ExtendedConditionalStatement_condition_feature = Condition +_UI_ExtendedConditionalStatement_then_feature = Then +_UI_SelectStatement_body_feature = Body +_UI_SelectStatement_index_feature = Index +_UI_SelectStatement_type_feature = Type +_UI_WhileStatement_condition_feature = Condition +_UI_WhileStatement_body_feature = Body +_UI_ForeachStatement_variable_feature = Variable +_UI_ForeachStatement_body_feature = Body +_UI_ToStatement_state_feature = State +_UI_CaseStatement_value_feature = Value +_UI_CaseStatement_pattern_feature = Pattern +_UI_CaseStatement_body_feature = Body +_UI_OnStatement_condition_feature = Condition +_UI_WaitStatement_left_feature = Left +_UI_WaitStatement_right_feature = Right +_UI_Composition_global_feature = Global +_UI_Composition_blocks_feature = Blocks +_UI_Block_local_feature = Local +_UI_CompositeBlock_composition_feature = Composition +_UI_InstanceDeclaration_instance_feature = Instance +_UI_PortSet_allPorts_feature = All Ports +_UI_PortSet_ports_feature = Ports +_UI_ComponentInstance_component_feature = Component +_UI_ComponentInstance_ports_feature = Ports +_UI_ComponentInstance_parameters_feature = Parameters +_UI_ReferenceExpression_declaration_feature = Declaration +_UI_IdentifierExpression_declaration_feature = Declaration +_UI_RecordExpression_fields_feature = Fields +_UI_FieldExpression_field_feature = Field +_UI_FieldExpression_value_feature = Value +_UI_ArrayExpression_values_feature = Values +_UI_QueueExpression_values_feature = Values +_UI_EnqueueExpression_element_feature = Element +_UI_EnqueueExpression_queue_feature = Queue +_UI_AppendExpression_left_feature = Left +_UI_AppendExpression_right_feature = Right +_UI_NaturalLiteral_value_feature = Value +_UI_LowerBound_left_feature = Left +_UI_LowerBound_right_feature = Right +_UI_NaturalLowerBound_value_feature = Value +_UI_NaturalUpperBound_value_feature = Value +_UI_NaturalUpperBound_left_feature = Left +_UI_NaturalUpperBound_right_feature = Right +_UI_DecimalLowerBound_value_feature = Value +_UI_DecimalUpperBound_value_feature = Value +_UI_DecimalUpperBound_left_feature = Left +_UI_DecimalUpperBound_right_feature = Right +_UI_VariableLowerBound_variable_feature = Variable +_UI_VariableUpperBound_variable_feature = Variable +_UI_VariableUpperBound_left_feature = Left +_UI_VariableUpperBound_right_feature = Right +_UI_Requirement_property_feature = Property +_UI_Requirement_positive_feature = Positive +_UI_Requirement_negative_feature = Negative +_UI_PropertyDeclaration_property_feature = Property +_UI_LTLPattern_property_feature = Property +_UI_InfinitelyOftenPattern_subject_feature = Subject +_UI_MortalPattern_subject_feature = Subject +_UI_PresencePattern_subject_feature = Subject +_UI_PresencePattern_lasting_feature = Lasting +_UI_PresencePattern_after_feature = After +_UI_PresencePattern_lower_feature = Lower +_UI_PresencePattern_upper_feature = Upper +_UI_PresencePattern_until_feature = Until +_UI_PresencePattern_before_feature = Before +_UI_PresencePattern_min_feature = Min +_UI_PresencePattern_max_feature = Max +_UI_AbsencePattern_subject_feature = Subject +_UI_AbsencePattern_after_feature = After +_UI_AbsencePattern_lower_feature = Lower +_UI_AbsencePattern_upper_feature = Upper +_UI_AbsencePattern_until_feature = Until +_UI_AbsencePattern_before_feature = Before +_UI_AbsencePattern_min_feature = Min +_UI_AbsencePattern_max_feature = Max +_UI_AlwaysPattern_subject_feature = Subject +_UI_AlwaysPattern_before_feature = Before +_UI_AlwaysPattern_after_feature = After +_UI_AlwaysPattern_until_feature = Until +_UI_AlwaysPattern_min_feature = Min +_UI_AlwaysPattern_max_feature = Max +_UI_StateEvent_subject_feature = Subject +_UI_PathEvent_path_feature = Path +_UI_PathEvent_item_feature = Item +_UI_Path_items_feature = Items +_UI_NaturalItem_value_feature = Value +_UI_NamedItem_declaration_feature = Declaration +_UI_StateSubject_state_feature = State +_UI_ValueSubject_value_feature = Value +_UI_TagSubject_tag_feature = Tag +_UI_EventSubject_event_feature = Event +_UI_TupleType_types_feature = Types +_UI_UnlessStatement_followers_feature = Followers +_UI_StatementChoice_choices_feature = Choices +_UI_StatementSequence_statements_feature = Statements +_UI_AssignStatement_patterns_feature = Patterns +_UI_AssignStatement_values_feature = Values +_UI_AssignAnyStatement_patterns_feature = Patterns +_UI_AssignAnyStatement_exp_feature = Exp +_UI_SendStatement_port_feature = Port +_UI_SendStatement_values_feature = Values +_UI_ReceiveStatement_port_feature = Port +_UI_ReceiveStatement_patterns_feature = Patterns +_UI_ReceiveStatement_exp_feature = Exp +_UI_ConstructorPattern_parameters_feature = Parameters +_UI_ArrayAccessPattern_source_feature = Source +_UI_ArrayAccessPattern_index_feature = Index +_UI_RecordAccessPattern_source_feature = Source +_UI_RecordAccessPattern_field_feature = Field +_UI_AllExpression_index_feature = Index +_UI_AllExpression_type_feature = Type +_UI_AllExpression_child_feature = Child +_UI_ExistsExpression_index_feature = Index +_UI_ExistsExpression_type_feature = Type +_UI_ExistsExpression_child_feature = Child +_UI_Conditional_condition_feature = Condition +_UI_Conditional_then_feature = Then +_UI_Conditional_else_feature = Else +_UI_Disjunction_left_feature = Left +_UI_Disjunction_right_feature = Right +_UI_Implication_left_feature = Left +_UI_Implication_right_feature = Right +_UI_Conjunction_left_feature = Left +_UI_Conjunction_right_feature = Right +_UI_ComparisonEqual_left_feature = Left +_UI_ComparisonEqual_right_feature = Right +_UI_ComparisonNotEqual_left_feature = Left +_UI_ComparisonNotEqual_right_feature = Right +_UI_ComparisonLesser_left_feature = Left +_UI_ComparisonLesser_right_feature = Right +_UI_ComparisonLesserEqual_left_feature = Left +_UI_ComparisonLesserEqual_right_feature = Right +_UI_ComparisonGreater_left_feature = Left +_UI_ComparisonGreater_right_feature = Right +_UI_ComparisonGreaterEqual_left_feature = Left +_UI_ComparisonGreaterEqual_right_feature = Right +_UI_Addition_left_feature = Left +_UI_Addition_right_feature = Right +_UI_Substraction_left_feature = Left +_UI_Substraction_right_feature = Right +_UI_Multiplication_left_feature = Left +_UI_Multiplication_right_feature = Right +_UI_Division_left_feature = Left +_UI_Division_right_feature = Right +_UI_Modulo_left_feature = Left +_UI_Modulo_right_feature = Right +_UI_UnaryPlusExpression_child_feature = Child +_UI_UnaryMinusExpression_child_feature = Child +_UI_UnaryNegationExpression_child_feature = Child +_UI_UnaryFirstExpression_child_feature = Child +_UI_UnaryLengthExpression_child_feature = Child +_UI_UnaryCoerceExpression_child_feature = Child +_UI_UnaryFullExpression_child_feature = Child +_UI_UnaryDeQueueExpression_child_feature = Child +_UI_UnaryEmptyExpression_child_feature = Child +_UI_Projection_channel_feature = Channel +_UI_Projection_field_feature = Field +_UI_ConstructionExpression_parameters_feature = Parameters +_UI_ArrayAccessExpression_child_feature = Child +_UI_ArrayAccessExpression_indexes_feature = Indexes +_UI_RecordAccessExpression_child_feature = Child +_UI_RecordAccessExpression_field_feature = Field +_UI_AllProperty_variable_feature = Variable +_UI_AllProperty_type_feature = Type +_UI_AllProperty_child_feature = Child +_UI_ExistsProperty_variable_feature = Variable +_UI_ExistsProperty_type_feature = Type +_UI_ExistsProperty_child_feature = Child +_UI_PropertyDisjunction_left_feature = Left +_UI_PropertyDisjunction_right_feature = Right +_UI_PropertyImplication_left_feature = Left +_UI_PropertyImplication_right_feature = Right +_UI_PropertyConjunction_left_feature = Left +_UI_PropertyConjunction_right_feature = Right +_UI_PropertyNegation_child_feature = Child +_UI_LeadsToPattern_subject_feature = Subject +_UI_LeadsToPattern_follower_feature = Follower +_UI_LeadsToPattern_before_feature = Before +_UI_LeadsToPattern_lower_feature = Lower +_UI_LeadsToPattern_upper_feature = Upper +_UI_LeadsToPattern_after_feature = After +_UI_LeadsToPattern_until_feature = Until +_UI_LeadsToPattern_min_feature = Min +_UI_LeadsToPattern_max_feature = Max +_UI_PrecedesPattern_subject_feature = Subject +_UI_PrecedesPattern_follower_feature = Follower +_UI_PrecedesPattern_before_feature = Before +_UI_PrecedesPattern_after_feature = After +_UI_PrecedesPattern_until_feature = Until +_UI_PrecedesPattern_min_feature = Min +_UI_PrecedesPattern_max_feature = Max +_UI_LTLAll_index_feature = Index +_UI_LTLAll_type_feature = Type +_UI_LTLAll_child_feature = Child +_UI_LTLExists_index_feature = Index +_UI_LTLExists_type_feature = Type +_UI_LTLExists_child_feature = Child +_UI_LTLDisjunction_left_feature = Left +_UI_LTLDisjunction_right_feature = Right +_UI_LTLImplication_left_feature = Left +_UI_LTLImplication_right_feature = Right +_UI_LTLConjunction_left_feature = Left +_UI_LTLConjunction_right_feature = Right +_UI_LTLUntil_left_feature = Left +_UI_LTLUntil_right_feature = Right +_UI_LTLRelease_left_feature = Left +_UI_LTLRelease_right_feature = Right +_UI_LTLUnaryNegation_operand_feature = Operand +_UI_LTLUnaryNext_operand_feature = Operand +_UI_LTLUnaryAlways_operand_feature = Operand +_UI_LTLUnaryEventually_operand_feature = Operand +_UI_LTLVariable_declaration_feature = Declaration +_UI_ObservableDisjunction_left_feature = Left +_UI_ObservableDisjunction_right_feature = Right +_UI_ObservableImplication_left_feature = Left +_UI_ObservableImplication_right_feature = Right +_UI_ObservableConjunction_left_feature = Left +_UI_ObservableConjunction_right_feature = Right +_UI_ObservableNegation_child_feature = Child +_UI_Unknown_feature = Unspecified + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/plugin.xml b/eclipse/plugins/fr.irit.fiacre.xtext.edit/plugin.xml new file mode 100644 index 0000000..f55a4e7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/plugin.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AbsencePatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AbsencePatternItemProvider.java new file mode 100644 index 0000000..7a490c5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AbsencePatternItemProvider.java @@ -0,0 +1,534 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.AbsencePattern; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern} object. + * + * + * @generated + */ +public class AbsencePatternItemProvider extends PatternPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public AbsencePatternItemProvider(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(FiacrePackage.eINSTANCE.getAbsencePattern_Subject()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAbsencePattern_After()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAbsencePattern_Lower()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAbsencePattern_Upper()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAbsencePattern_Until()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAbsencePattern_Before()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAbsencePattern_Min()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAbsencePattern_Max()); + } + 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 AbsencePattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AbsencePattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_AbsencePattern_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(AbsencePattern.class)) { + case FiacrePackage.ABSENCE_PATTERN__SUBJECT: + case FiacrePackage.ABSENCE_PATTERN__AFTER: + case FiacrePackage.ABSENCE_PATTERN__LOWER: + case FiacrePackage.ABSENCE_PATTERN__UPPER: + case FiacrePackage.ABSENCE_PATTERN__UNTIL: + case FiacrePackage.ABSENCE_PATTERN__BEFORE: + case FiacrePackage.ABSENCE_PATTERN__MIN: + case FiacrePackage.ABSENCE_PATTERN__MAX: + 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 + (FiacrePackage.eINSTANCE.getAbsencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Subject(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Subject(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Subject(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Subject(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_After(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_After(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_After(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_After(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_After(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_After(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_After(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_After(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_After(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_After(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Lower(), + FiacreFactory.eINSTANCE.createLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Lower(), + FiacreFactory.eINSTANCE.createNaturalLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Lower(), + FiacreFactory.eINSTANCE.createDecimalLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Lower(), + FiacreFactory.eINSTANCE.createVariableLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Upper(), + FiacreFactory.eINSTANCE.createUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Upper(), + FiacreFactory.eINSTANCE.createNaturalUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Upper(), + FiacreFactory.eINSTANCE.createDecimalUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Upper(), + FiacreFactory.eINSTANCE.createVariableUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Upper(), + FiacreFactory.eINSTANCE.createInfiniteUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Until(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Until(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Until(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Until(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Until(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Until(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Until(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Until(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Until(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Until(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Before(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Before(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Before(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Before(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Before(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Before(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Before(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Before(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Before(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Before(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Min(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Min(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Min(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Min(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Min(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Min(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Min(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Min(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Min(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Min(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Max(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Max(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Max(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Max(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Max(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Max(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Max(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Max(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Max(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAbsencePattern_Max(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getAbsencePattern_Subject() || + childFeature == FiacrePackage.eINSTANCE.getAbsencePattern_After() || + childFeature == FiacrePackage.eINSTANCE.getAbsencePattern_Until() || + childFeature == FiacrePackage.eINSTANCE.getAbsencePattern_Before() || + childFeature == FiacrePackage.eINSTANCE.getAbsencePattern_Min() || + childFeature == FiacrePackage.eINSTANCE.getAbsencePattern_Max(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AdditionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AdditionItemProvider.java new file mode 100644 index 0000000..ef8d91a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AdditionItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.Addition; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Addition} object. + * + * + * @generated + */ +public class AdditionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public AdditionItemProvider(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(FiacrePackage.eINSTANCE.getAddition_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAddition_Right()); + } + 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 Addition.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Addition")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Addition_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(Addition.class)) { + case FiacrePackage.ADDITION__LEFT: + case FiacrePackage.ADDITION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAddition_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getAddition_Left() || + childFeature == FiacrePackage.eINSTANCE.getAddition_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AllExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AllExpressionItemProvider.java new file mode 100644 index 0000000..96c784c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AllExpressionItemProvider.java @@ -0,0 +1,377 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.AllExpression; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.AllExpression} object. + * + * + * @generated + */ +public class AllExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public AllExpressionItemProvider(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(FiacrePackage.eINSTANCE.getAllExpression_Index()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAllExpression_Type()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAllExpression_Child()); + } + 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 AllExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AllExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_AllExpression_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(AllExpression.class)) { + case FiacrePackage.ALL_EXPRESSION__INDEX: + case FiacrePackage.ALL_EXPRESSION__TYPE: + case FiacrePackage.ALL_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getAllExpression_Index(), + FiacreFactory.eINSTANCE.createVariableDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AllPropertyItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AllPropertyItemProvider.java new file mode 100644 index 0000000..237c9aa --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AllPropertyItemProvider.java @@ -0,0 +1,302 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.AllProperty; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.AllProperty} object. + * + * + * @generated + */ +public class AllPropertyItemProvider extends PropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public AllPropertyItemProvider(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(FiacrePackage.eINSTANCE.getAllProperty_Variable()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAllProperty_Type()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAllProperty_Child()); + } + 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 AllProperty.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AllProperty")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_AllProperty_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(AllProperty.class)) { + case FiacrePackage.ALL_PROPERTY__VARIABLE: + case FiacrePackage.ALL_PROPERTY__TYPE: + case FiacrePackage.ALL_PROPERTY__CHILD: + 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 + (FiacrePackage.eINSTANCE.getAllProperty_Variable(), + FiacreFactory.eINSTANCE.createVariableDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createPatternProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createLTLPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createDeadlockFreePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createInfinitelyOftenPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createMortalPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createPresencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createAbsencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createAlwaysPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createSequencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createAllProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createExistsProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createPropertyDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createPropertyImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createPropertyConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createPropertyNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createLeadsToPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createPrecedesPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAllProperty_Child(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AlwaysPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AlwaysPatternItemProvider.java new file mode 100644 index 0000000..f7abd7d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AlwaysPatternItemProvider.java @@ -0,0 +1,485 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.AlwaysPattern; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern} object. + * + * + * @generated + */ +public class AlwaysPatternItemProvider extends PatternPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public AlwaysPatternItemProvider(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(FiacrePackage.eINSTANCE.getAlwaysPattern_Subject()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAlwaysPattern_Before()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAlwaysPattern_After()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAlwaysPattern_Until()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAlwaysPattern_Min()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAlwaysPattern_Max()); + } + 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 AlwaysPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AlwaysPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_AlwaysPattern_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(AlwaysPattern.class)) { + case FiacrePackage.ALWAYS_PATTERN__SUBJECT: + case FiacrePackage.ALWAYS_PATTERN__BEFORE: + case FiacrePackage.ALWAYS_PATTERN__AFTER: + case FiacrePackage.ALWAYS_PATTERN__UNTIL: + case FiacrePackage.ALWAYS_PATTERN__MIN: + case FiacrePackage.ALWAYS_PATTERN__MAX: + 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 + (FiacrePackage.eINSTANCE.getAlwaysPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Subject(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Subject(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Subject(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Subject(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Subject(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Before(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Before(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Before(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Before(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Before(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Before(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Before(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Before(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Before(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Before(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_After(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_After(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_After(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_After(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_After(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_After(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_After(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_After(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_After(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_After(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Until(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Until(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Until(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Until(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Until(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Until(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Until(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Until(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Until(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Until(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Min(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Min(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Min(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Min(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Min(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Min(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Min(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Min(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Min(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Min(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Max(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Max(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Max(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Max(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Max(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Max(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Max(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Max(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Max(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAlwaysPattern_Max(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getAlwaysPattern_Subject() || + childFeature == FiacrePackage.eINSTANCE.getAlwaysPattern_Before() || + childFeature == FiacrePackage.eINSTANCE.getAlwaysPattern_After() || + childFeature == FiacrePackage.eINSTANCE.getAlwaysPattern_Until() || + childFeature == FiacrePackage.eINSTANCE.getAlwaysPattern_Min() || + childFeature == FiacrePackage.eINSTANCE.getAlwaysPattern_Max(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AnyPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AnyPatternItemProvider.java new file mode 100644 index 0000000..76029b4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AnyPatternItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.AnyPattern} object. + * + * + * @generated + */ +public class AnyPatternItemProvider extends PatternItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public AnyPatternItemProvider(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 AnyPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AnyPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_AnyPattern_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AppendExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AppendExpressionItemProvider.java new file mode 100644 index 0000000..3483a2e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AppendExpressionItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.AppendExpression; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.AppendExpression} object. + * + * + * @generated + */ +public class AppendExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public AppendExpressionItemProvider(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(FiacrePackage.eINSTANCE.getAppendExpression_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAppendExpression_Right()); + } + 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 AppendExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AppendExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_AppendExpression_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(AppendExpression.class)) { + case FiacrePackage.APPEND_EXPRESSION__LEFT: + case FiacrePackage.APPEND_EXPRESSION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAppendExpression_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getAppendExpression_Left() || + childFeature == FiacrePackage.eINSTANCE.getAppendExpression_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayAccessExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayAccessExpressionItemProvider.java new file mode 100644 index 0000000..6259960 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayAccessExpressionItemProvider.java @@ -0,0 +1,408 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression} object. + * + * + * @generated + */ +public class ArrayAccessExpressionItemProvider extends IdentifierExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ArrayAccessExpressionItemProvider(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(FiacrePackage.eINSTANCE.getArrayAccessExpression_Child()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes()); + } + 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 ArrayAccessExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ArrayAccessExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ArrayAccessExpression_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(ArrayAccessExpression.class)) { + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__CHILD: + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__INDEXES: + 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 + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getArrayAccessExpression_Child() || + childFeature == FiacrePackage.eINSTANCE.getArrayAccessExpression_Indexes(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayAccessPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayAccessPatternItemProvider.java new file mode 100644 index 0000000..84caa06 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayAccessPatternItemProvider.java @@ -0,0 +1,385 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern} object. + * + * + * @generated + */ +public class ArrayAccessPatternItemProvider extends IdentifierPatternItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ArrayAccessPatternItemProvider(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(FiacrePackage.eINSTANCE.getArrayAccessPattern_Source()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getArrayAccessPattern_Index()); + } + 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 ArrayAccessPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ArrayAccessPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ArrayAccessPattern_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(ArrayAccessPattern.class)) { + case FiacrePackage.ARRAY_ACCESS_PATTERN__SOURCE: + case FiacrePackage.ARRAY_ACCESS_PATTERN__INDEX: + 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 + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Source(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Source(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Source(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Source(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayAccessPattern_Index(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayExpressionItemProvider.java new file mode 100644 index 0000000..6154d22 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ArrayExpression; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayExpression} object. + * + * + * @generated + */ +public class ArrayExpressionItemProvider extends ValueExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ArrayExpressionItemProvider(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(FiacrePackage.eINSTANCE.getArrayExpression_Values()); + } + 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 ArrayExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ArrayExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ArrayExpression_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(ArrayExpression.class)) { + case FiacrePackage.ARRAY_EXPRESSION__VALUES: + 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 + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayExpression_Values(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayTypeItemProvider.java new file mode 100644 index 0000000..76fa60d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ArrayTypeItemProvider.java @@ -0,0 +1,425 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ArrayType; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayType} object. + * + * + * @generated + */ +public class ArrayTypeItemProvider extends TypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ArrayTypeItemProvider(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(FiacrePackage.eINSTANCE.getArrayType_Size()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getArrayType_Type()); + } + 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 ArrayType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ArrayType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ArrayType_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(ArrayType.class)) { + case FiacrePackage.ARRAY_TYPE__SIZE: + case FiacrePackage.ARRAY_TYPE__TYPE: + 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 + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Size(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getArrayType_Type(), + FiacreFactory.eINSTANCE.createBooleanType())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AssignAnyStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AssignAnyStatementItemProvider.java new file mode 100644 index 0000000..1a9402c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AssignAnyStatementItemProvider.java @@ -0,0 +1,405 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.AssignAnyStatement; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement} object. + * + * + * @generated + */ +public class AssignAnyStatementItemProvider extends PatternStatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public AssignAnyStatementItemProvider(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(FiacrePackage.eINSTANCE.getAssignAnyStatement_Patterns()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp()); + } + 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 AssignAnyStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AssignAnyStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_AssignAnyStatement_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(AssignAnyStatement.class)) { + case FiacrePackage.ASSIGN_ANY_STATEMENT__PATTERNS: + case FiacrePackage.ASSIGN_ANY_STATEMENT__EXP: + 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 + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Patterns(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Patterns(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Patterns(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Patterns(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Patterns(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Patterns(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Patterns(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Patterns(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignAnyStatement_Exp(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AssignStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AssignStatementItemProvider.java new file mode 100644 index 0000000..4e60a05 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/AssignStatementItemProvider.java @@ -0,0 +1,405 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.AssignStatement; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.AssignStatement} object. + * + * + * @generated + */ +public class AssignStatementItemProvider extends PatternStatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public AssignStatementItemProvider(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(FiacrePackage.eINSTANCE.getAssignStatement_Patterns()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getAssignStatement_Values()); + } + 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 AssignStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AssignStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_AssignStatement_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(AssignStatement.class)) { + case FiacrePackage.ASSIGN_STATEMENT__PATTERNS: + case FiacrePackage.ASSIGN_STATEMENT__VALUES: + 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 + (FiacrePackage.eINSTANCE.getAssignStatement_Patterns(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Patterns(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Patterns(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Patterns(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Patterns(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Patterns(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Patterns(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Patterns(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getAssignStatement_Values(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BasicTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BasicTypeItemProvider.java new file mode 100644 index 0000000..01dd572 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BasicTypeItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.BasicType} object. + * + * + * @generated + */ +public class BasicTypeItemProvider extends TypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public BasicTypeItemProvider(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 BasicType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/BasicType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_BasicType_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BlockItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BlockItemProvider.java new file mode 100644 index 0000000..1421d9f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BlockItemProvider.java @@ -0,0 +1,179 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.Block; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Block} object. + * + * + * @generated + */ +public class BlockItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public BlockItemProvider(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(FiacrePackage.eINSTANCE.getBlock_Local()); + } + 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 Block.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Block")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Block_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(Block.class)) { + case FiacrePackage.BLOCK__LOCAL: + 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 + (FiacrePackage.eINSTANCE.getBlock_Local(), + FiacreFactory.eINSTANCE.createPortSet())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BlockStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BlockStatementItemProvider.java new file mode 100644 index 0000000..96b9cfd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BlockStatementItemProvider.java @@ -0,0 +1,298 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.BlockStatement; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.BlockStatement} object. + * + * + * @generated + */ +public class BlockStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public BlockStatementItemProvider(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(FiacrePackage.eINSTANCE.getBlockStatement_Body()); + } + 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 BlockStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/BlockStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_BlockStatement_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(BlockStatement.class)) { + case FiacrePackage.BLOCK_STATEMENT__BODY: + 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 + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getBlockStatement_Body(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BooleanLiteralItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BooleanLiteralItemProvider.java new file mode 100644 index 0000000..4dd2108 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BooleanLiteralItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.BooleanLiteral} object. + * + * + * @generated + */ +public class BooleanLiteralItemProvider extends LiteralExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public BooleanLiteralItemProvider(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 BooleanLiteral.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/BooleanLiteral")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_BooleanLiteral_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BooleanTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BooleanTypeItemProvider.java new file mode 100644 index 0000000..44b1866 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BooleanTypeItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.BooleanType} object. + * + * + * @generated + */ +public class BooleanTypeItemProvider extends BasicTypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public BooleanTypeItemProvider(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 BooleanType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/BooleanType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_BooleanType_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BoundDeclarationUseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BoundDeclarationUseItemProvider.java new file mode 100644 index 0000000..84af2de --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/BoundDeclarationUseItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse} object. + * + * + * @generated + */ +public class BoundDeclarationUseItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public BoundDeclarationUseItemProvider(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 BoundDeclarationUse.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/BoundDeclarationUse")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_BoundDeclarationUse_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CaseStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CaseStatementItemProvider.java new file mode 100644 index 0000000..0207eb5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CaseStatementItemProvider.java @@ -0,0 +1,580 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.CaseStatement; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.CaseStatement} object. + * + * + * @generated + */ +public class CaseStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public CaseStatementItemProvider(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(FiacrePackage.eINSTANCE.getCaseStatement_Value()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getCaseStatement_Pattern()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getCaseStatement_Body()); + } + 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 CaseStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/CaseStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_CaseStatement_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(CaseStatement.class)) { + case FiacrePackage.CASE_STATEMENT__VALUE: + case FiacrePackage.CASE_STATEMENT__PATTERN: + case FiacrePackage.CASE_STATEMENT__BODY: + 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 + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Value(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Pattern(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Pattern(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Pattern(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Pattern(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Pattern(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Pattern(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Pattern(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Pattern(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getCaseStatement_Body(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getCaseStatement_Pattern() || + childFeature == FiacrePackage.eINSTANCE.getCaseStatement_Body(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ChannelDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ChannelDeclarationItemProvider.java new file mode 100644 index 0000000..a136319 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ChannelDeclarationItemProvider.java @@ -0,0 +1,184 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ChannelDeclaration; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ChannelDeclaration} object. + * + * + * @generated + */ +public class ChannelDeclarationItemProvider extends TypeDeclarationUseItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ChannelDeclarationItemProvider(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"), + FiacrePackage.eINSTANCE.getNamedElement_Name(), + 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(FiacrePackage.eINSTANCE.getChannelDeclaration_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 ChannelDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ChannelDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ChannelDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_ChannelDeclaration_type") : + getString("_UI_ChannelDeclaration_type") + " " + label; + } + + + /** + * This 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(ChannelDeclaration.class)) { + case FiacrePackage.CHANNEL_DECLARATION__NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.CHANNEL_DECLARATION__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 + (FiacrePackage.eINSTANCE.getChannelDeclaration_Value(), + FiacreFactory.eINSTANCE.createChannelType())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ChannelTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ChannelTypeItemProvider.java new file mode 100644 index 0000000..7cd9079 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ChannelTypeItemProvider.java @@ -0,0 +1,504 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ChannelType; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ChannelType} object. + * + * + * @generated + */ +public class ChannelTypeItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ChannelTypeItemProvider(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); + + addInPropertyDescriptor(object); + addOutPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the In feature. + * + * + * @generated + */ + protected void addInPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ChannelType_in_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ChannelType_in_feature", "_UI_ChannelType_type"), + FiacrePackage.eINSTANCE.getChannelType_In(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Out feature. + * + * + * @generated + */ + protected void addOutPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ChannelType_out_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ChannelType_out_feature", "_UI_ChannelType_type"), + FiacrePackage.eINSTANCE.getChannelType_Out(), + 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(FiacrePackage.eINSTANCE.getChannelType_Size()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getChannelType_Type()); + } + 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 ChannelType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ChannelType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + ChannelType channelType = (ChannelType)object; + return getString("_UI_ChannelType_type") + " " + channelType.isIn(); + } + + + /** + * This 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(ChannelType.class)) { + case FiacrePackage.CHANNEL_TYPE__IN: + case FiacrePackage.CHANNEL_TYPE__OUT: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.CHANNEL_TYPE__SIZE: + case FiacrePackage.CHANNEL_TYPE__TYPE: + 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 + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Size(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getChannelType_Type(), + FiacreFactory.eINSTANCE.createBooleanType())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonEqualItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonEqualItemProvider.java new file mode 100644 index 0000000..2362c45 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonEqualItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ComparisonEqual; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual} object. + * + * + * @generated + */ +public class ComparisonEqualItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ComparisonEqualItemProvider(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(FiacrePackage.eINSTANCE.getComparisonEqual_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComparisonEqual_Right()); + } + 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 ComparisonEqual.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComparisonEqual")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ComparisonEqual_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(ComparisonEqual.class)) { + case FiacrePackage.COMPARISON_EQUAL__LEFT: + case FiacrePackage.COMPARISON_EQUAL__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonEqual_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getComparisonEqual_Left() || + childFeature == FiacrePackage.eINSTANCE.getComparisonEqual_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonGreaterEqualItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonGreaterEqualItemProvider.java new file mode 100644 index 0000000..806c56f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonGreaterEqualItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual} object. + * + * + * @generated + */ +public class ComparisonGreaterEqualItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ComparisonGreaterEqualItemProvider(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(FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right()); + } + 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 ComparisonGreaterEqual.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComparisonGreaterEqual")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ComparisonGreaterEqual_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(ComparisonGreaterEqual.class)) { + case FiacrePackage.COMPARISON_GREATER_EQUAL__LEFT: + case FiacrePackage.COMPARISON_GREATER_EQUAL__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left() || + childFeature == FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonGreaterItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonGreaterItemProvider.java new file mode 100644 index 0000000..5c225bd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonGreaterItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ComparisonGreater; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater} object. + * + * + * @generated + */ +public class ComparisonGreaterItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ComparisonGreaterItemProvider(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(FiacrePackage.eINSTANCE.getComparisonGreater_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComparisonGreater_Right()); + } + 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 ComparisonGreater.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComparisonGreater")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ComparisonGreater_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(ComparisonGreater.class)) { + case FiacrePackage.COMPARISON_GREATER__LEFT: + case FiacrePackage.COMPARISON_GREATER__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonGreater_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getComparisonGreater_Left() || + childFeature == FiacrePackage.eINSTANCE.getComparisonGreater_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonLesserEqualItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonLesserEqualItemProvider.java new file mode 100644 index 0000000..0c49cb4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonLesserEqualItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual} object. + * + * + * @generated + */ +public class ComparisonLesserEqualItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ComparisonLesserEqualItemProvider(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(FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right()); + } + 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 ComparisonLesserEqual.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComparisonLesserEqual")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ComparisonLesserEqual_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(ComparisonLesserEqual.class)) { + case FiacrePackage.COMPARISON_LESSER_EQUAL__LEFT: + case FiacrePackage.COMPARISON_LESSER_EQUAL__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left() || + childFeature == FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonLesserItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonLesserItemProvider.java new file mode 100644 index 0000000..85512da --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonLesserItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ComparisonLesser; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser} object. + * + * + * @generated + */ +public class ComparisonLesserItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ComparisonLesserItemProvider(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(FiacrePackage.eINSTANCE.getComparisonLesser_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComparisonLesser_Right()); + } + 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 ComparisonLesser.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComparisonLesser")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ComparisonLesser_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(ComparisonLesser.class)) { + case FiacrePackage.COMPARISON_LESSER__LEFT: + case FiacrePackage.COMPARISON_LESSER__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonLesser_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getComparisonLesser_Left() || + childFeature == FiacrePackage.eINSTANCE.getComparisonLesser_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonNotEqualItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonNotEqualItemProvider.java new file mode 100644 index 0000000..b734a69 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComparisonNotEqualItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual} object. + * + * + * @generated + */ +public class ComparisonNotEqualItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ComparisonNotEqualItemProvider(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(FiacrePackage.eINSTANCE.getComparisonNotEqual_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComparisonNotEqual_Right()); + } + 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 ComparisonNotEqual.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComparisonNotEqual")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ComparisonNotEqual_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(ComparisonNotEqual.class)) { + case FiacrePackage.COMPARISON_NOT_EQUAL__LEFT: + case FiacrePackage.COMPARISON_NOT_EQUAL__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getComparisonNotEqual_Left() || + childFeature == FiacrePackage.eINSTANCE.getComparisonNotEqual_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComponentDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComponentDeclarationItemProvider.java new file mode 100644 index 0000000..3a35d0f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComponentDeclarationItemProvider.java @@ -0,0 +1,371 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ComponentDeclaration; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration} object. + * + * + * @generated + */ +public class ComponentDeclarationItemProvider extends RootDeclarationItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ComponentDeclarationItemProvider(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"), + FiacrePackage.eINSTANCE.getNamedElement_Name(), + 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(FiacrePackage.eINSTANCE.getParameterizedDeclaration_Parameters()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getParameterizedDeclaration_Variables()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComponentDeclaration_Ports()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComponentDeclaration_LocalPorts()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComponentDeclaration_Priorities()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComponentDeclaration_Body()); + } + 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 ComponentDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComponentDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ComponentDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_ComponentDeclaration_type") : + getString("_UI_ComponentDeclaration_type") + " " + label; + } + + + /** + * This 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(ComponentDeclaration.class)) { + case FiacrePackage.COMPONENT_DECLARATION__NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.COMPONENT_DECLARATION__PARAMETERS: + case FiacrePackage.COMPONENT_DECLARATION__VARIABLES: + case FiacrePackage.COMPONENT_DECLARATION__PORTS: + case FiacrePackage.COMPONENT_DECLARATION__LOCAL_PORTS: + case FiacrePackage.COMPONENT_DECLARATION__PRIORITIES: + case FiacrePackage.COMPONENT_DECLARATION__PRELUDE: + case FiacrePackage.COMPONENT_DECLARATION__BODY: + 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 + (FiacrePackage.eINSTANCE.getParameterizedDeclaration_Parameters(), + FiacreFactory.eINSTANCE.createParametersDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterizedDeclaration_Variables(), + FiacreFactory.eINSTANCE.createVariablesDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Ports(), + FiacreFactory.eINSTANCE.createPortsDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_LocalPorts(), + FiacreFactory.eINSTANCE.createLocalPortsDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Priorities(), + FiacreFactory.eINSTANCE.createPriorityDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentDeclaration_Body(), + FiacreFactory.eINSTANCE.createComposition())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComponentInstanceItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComponentInstanceItemProvider.java new file mode 100644 index 0000000..749a9b7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ComponentInstanceItemProvider.java @@ -0,0 +1,653 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ComponentInstance; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComponentInstance} object. + * + * + * @generated + */ +public class ComponentInstanceItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ComponentInstanceItemProvider(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); + + addComponentPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Component feature. + * + * + * @generated + */ + protected void addComponentPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ComponentInstance_component_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ComponentInstance_component_feature", "_UI_ComponentInstance_type"), + FiacrePackage.eINSTANCE.getComponentInstance_Component(), + 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(FiacrePackage.eINSTANCE.getComponentInstance_Ports()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComponentInstance_Parameters()); + } + 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 ComponentInstance.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComponentInstance")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ComponentInstance_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(ComponentInstance.class)) { + case FiacrePackage.COMPONENT_INSTANCE__PORTS: + case FiacrePackage.COMPONENT_INSTANCE__PARAMETERS: + 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 + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Ports(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComponentInstance_Parameters(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getComponentInstance_Ports() || + childFeature == FiacrePackage.eINSTANCE.getComponentInstance_Parameters(); + + 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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CompositeBlockItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CompositeBlockItemProvider.java new file mode 100644 index 0000000..82389d5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CompositeBlockItemProvider.java @@ -0,0 +1,153 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.CompositeBlock; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.CompositeBlock} object. + * + * + * @generated + */ +public class CompositeBlockItemProvider extends BlockItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public CompositeBlockItemProvider(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(FiacrePackage.eINSTANCE.getCompositeBlock_Composition()); + } + 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 CompositeBlock.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/CompositeBlock")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_CompositeBlock_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(CompositeBlock.class)) { + case FiacrePackage.COMPOSITE_BLOCK__COMPOSITION: + 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 + (FiacrePackage.eINSTANCE.getCompositeBlock_Composition(), + FiacreFactory.eINSTANCE.createComposition())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CompositionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CompositionItemProvider.java new file mode 100644 index 0000000..1c6f3d4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/CompositionItemProvider.java @@ -0,0 +1,196 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.Composition; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Composition} object. + * + * + * @generated + */ +public class CompositionItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public CompositionItemProvider(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(FiacrePackage.eINSTANCE.getComposition_Global()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getComposition_Blocks()); + } + 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 Composition.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Composition")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Composition_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(Composition.class)) { + case FiacrePackage.COMPOSITION__GLOBAL: + case FiacrePackage.COMPOSITION__BLOCKS: + 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 + (FiacrePackage.eINSTANCE.getComposition_Global(), + FiacreFactory.eINSTANCE.createPortSet())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComposition_Blocks(), + FiacreFactory.eINSTANCE.createBlock())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComposition_Blocks(), + FiacreFactory.eINSTANCE.createCompositeBlock())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getComposition_Blocks(), + FiacreFactory.eINSTANCE.createInstanceDeclaration())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConditionalItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConditionalItemProvider.java new file mode 100644 index 0000000..e2fa9cb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConditionalItemProvider.java @@ -0,0 +1,821 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.Conditional; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Conditional} object. + * + * + * @generated + */ +public class ConditionalItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ConditionalItemProvider(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(FiacrePackage.eINSTANCE.getConditional_Condition()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getConditional_Then()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getConditional_Else()); + } + 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 Conditional.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Conditional")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Conditional_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(Conditional.class)) { + case FiacrePackage.CONDITIONAL__CONDITION: + case FiacrePackage.CONDITIONAL__THEN: + case FiacrePackage.CONDITIONAL__ELSE: + 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 + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Condition(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Then(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditional_Else(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getConditional_Condition() || + childFeature == FiacrePackage.eINSTANCE.getConditional_Then() || + childFeature == FiacrePackage.eINSTANCE.getConditional_Else(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConditionalStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConditionalStatementItemProvider.java new file mode 100644 index 0000000..9683bc4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConditionalStatementItemProvider.java @@ -0,0 +1,697 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ConditionalStatement; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement} object. + * + * + * @generated + */ +public class ConditionalStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ConditionalStatementItemProvider(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(FiacrePackage.eINSTANCE.getConditionalStatement_Condition()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getConditionalStatement_Then()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getConditionalStatement_Elseif()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getConditionalStatement_Else()); + } + 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 ConditionalStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ConditionalStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ConditionalStatement_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(ConditionalStatement.class)) { + case FiacrePackage.CONDITIONAL_STATEMENT__CONDITION: + case FiacrePackage.CONDITIONAL_STATEMENT__THEN: + case FiacrePackage.CONDITIONAL_STATEMENT__ELSEIF: + case FiacrePackage.CONDITIONAL_STATEMENT__ELSE: + 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 + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Elseif(), + FiacreFactory.eINSTANCE.createExtendedConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConditionalStatement_Else(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getConditionalStatement_Then() || + childFeature == FiacrePackage.eINSTANCE.getConditionalStatement_Else(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConjunctionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConjunctionItemProvider.java new file mode 100644 index 0000000..45a5120 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConjunctionItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.Conjunction; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Conjunction} object. + * + * + * @generated + */ +public class ConjunctionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ConjunctionItemProvider(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(FiacrePackage.eINSTANCE.getConjunction_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getConjunction_Right()); + } + 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 Conjunction.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Conjunction")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Conjunction_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(Conjunction.class)) { + case FiacrePackage.CONJUNCTION__LEFT: + case FiacrePackage.CONJUNCTION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConjunction_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getConjunction_Left() || + childFeature == FiacrePackage.eINSTANCE.getConjunction_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantDeclarationItemProvider.java new file mode 100644 index 0000000..228785b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantDeclarationItemProvider.java @@ -0,0 +1,456 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ConstantDeclaration; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration} object. + * + * + * @generated + */ +public class ConstantDeclarationItemProvider extends ConstantDeclarationUseItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ConstantDeclarationItemProvider(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"), + FiacrePackage.eINSTANCE.getNamedElement_Name(), + 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(FiacrePackage.eINSTANCE.getConstantDeclaration_Type()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getConstantDeclaration_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 ConstantDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ConstantDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ConstantDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_ConstantDeclaration_type") : + getString("_UI_ConstantDeclaration_type") + " " + label; + } + + + /** + * This 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(ConstantDeclaration.class)) { + case FiacrePackage.CONSTANT_DECLARATION__NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.CONSTANT_DECLARATION__TYPE: + case FiacrePackage.CONSTANT_DECLARATION__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 + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Type(), + FiacreFactory.eINSTANCE.createBooleanType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantDeclaration_Value(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantDeclarationUseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantDeclarationUseItemProvider.java new file mode 100644 index 0000000..c931794 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantDeclarationUseItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.ConstantDeclarationUse} object. + * + * + * @generated + */ +public class ConstantDeclarationUseItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ConstantDeclarationUseItemProvider(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 ConstantDeclarationUse.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ConstantDeclarationUse")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ConstantDeclarationUse_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantPatternItemProvider.java new file mode 100644 index 0000000..5b9ebcd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstantPatternItemProvider.java @@ -0,0 +1,173 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ConstantPattern; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstantPattern} object. + * + * + * @generated + */ +public class ConstantPatternItemProvider extends PatternItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ConstantPatternItemProvider(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(FiacrePackage.eINSTANCE.getConstantPattern_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 ConstantPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ConstantPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ConstantPattern_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(ConstantPattern.class)) { + case FiacrePackage.CONSTANT_PATTERN__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 + (FiacrePackage.eINSTANCE.getConstantPattern_Value(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantPattern_Value(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantPattern_Value(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantPattern_Value(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstantPattern_Value(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstructionExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstructionExpressionItemProvider.java new file mode 100644 index 0000000..1a79c96 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstructionExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ConstructionExpression; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstructionExpression} object. + * + * + * @generated + */ +public class ConstructionExpressionItemProvider extends IdentifierExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ConstructionExpressionItemProvider(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(FiacrePackage.eINSTANCE.getConstructionExpression_Parameters()); + } + 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 ConstructionExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ConstructionExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ConstructionExpression_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(ConstructionExpression.class)) { + case FiacrePackage.CONSTRUCTION_EXPRESSION__PARAMETERS: + 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 + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructionExpression_Parameters(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstructorPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstructorPatternItemProvider.java new file mode 100644 index 0000000..0a0b5d1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ConstructorPatternItemProvider.java @@ -0,0 +1,188 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ConstructorPattern; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstructorPattern} object. + * + * + * @generated + */ +public class ConstructorPatternItemProvider extends IdentifierPatternItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ConstructorPatternItemProvider(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(FiacrePackage.eINSTANCE.getConstructorPattern_Parameters()); + } + 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 ConstructorPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ConstructorPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ConstructorPattern_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(ConstructorPattern.class)) { + case FiacrePackage.CONSTRUCTOR_PATTERN__PARAMETERS: + 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 + (FiacrePackage.eINSTANCE.getConstructorPattern_Parameters(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructorPattern_Parameters(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructorPattern_Parameters(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructorPattern_Parameters(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructorPattern_Parameters(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructorPattern_Parameters(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructorPattern_Parameters(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getConstructorPattern_Parameters(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DeadlockFreePatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DeadlockFreePatternItemProvider.java new file mode 100644 index 0000000..4f62189 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DeadlockFreePatternItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern} object. + * + * + * @generated + */ +public class DeadlockFreePatternItemProvider extends PatternPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public DeadlockFreePatternItemProvider(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 DeadlockFreePattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/DeadlockFreePattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_DeadlockFreePattern_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DecimalLowerBoundItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DecimalLowerBoundItemProvider.java new file mode 100644 index 0000000..30093d8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DecimalLowerBoundItemProvider.java @@ -0,0 +1,141 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.DecimalLowerBound; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.DecimalLowerBound} object. + * + * + * @generated + */ +public class DecimalLowerBoundItemProvider extends LowerBoundItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public DecimalLowerBoundItemProvider(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_DecimalLowerBound_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_DecimalLowerBound_value_feature", "_UI_DecimalLowerBound_type"), + FiacrePackage.eINSTANCE.getDecimalLowerBound_Value(), + true, + false, + false, + ItemPropertyDescriptor.REAL_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns DecimalLowerBound.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/DecimalLowerBound")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + DecimalLowerBound decimalLowerBound = (DecimalLowerBound)object; + return getString("_UI_DecimalLowerBound_type") + " " + decimalLowerBound.isLeft(); + } + + + /** + * This 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(DecimalLowerBound.class)) { + case FiacrePackage.DECIMAL_LOWER_BOUND__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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DecimalUpperBoundItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DecimalUpperBoundItemProvider.java new file mode 100644 index 0000000..445e26a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DecimalUpperBoundItemProvider.java @@ -0,0 +1,189 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.DecimalUpperBound; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound} object. + * + * + * @generated + */ +public class DecimalUpperBoundItemProvider extends UpperBoundItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public DecimalUpperBoundItemProvider(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); + addLeftPropertyDescriptor(object); + addRightPropertyDescriptor(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_DecimalUpperBound_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_DecimalUpperBound_value_feature", "_UI_DecimalUpperBound_type"), + FiacrePackage.eINSTANCE.getDecimalUpperBound_Value(), + true, + false, + false, + ItemPropertyDescriptor.REAL_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Left feature. + * + * + * @generated + */ + protected void addLeftPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_DecimalUpperBound_left_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_DecimalUpperBound_left_feature", "_UI_DecimalUpperBound_type"), + FiacrePackage.eINSTANCE.getDecimalUpperBound_Left(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Right feature. + * + * + * @generated + */ + protected void addRightPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_DecimalUpperBound_right_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_DecimalUpperBound_right_feature", "_UI_DecimalUpperBound_type"), + FiacrePackage.eINSTANCE.getDecimalUpperBound_Right(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns DecimalUpperBound.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/DecimalUpperBound")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + DecimalUpperBound decimalUpperBound = (DecimalUpperBound)object; + return getString("_UI_DecimalUpperBound_type") + " " + decimalUpperBound.getValue(); + } + + + /** + * This 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(DecimalUpperBound.class)) { + case FiacrePackage.DECIMAL_UPPER_BOUND__VALUE: + case FiacrePackage.DECIMAL_UPPER_BOUND__LEFT: + case FiacrePackage.DECIMAL_UPPER_BOUND__RIGHT: + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DeclarationItemProvider.java new file mode 100644 index 0000000..7ee64b0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DeclarationItemProvider.java @@ -0,0 +1,110 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.Declaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Declaration} object. + * + * + * @generated + */ +public class DeclarationItemProvider extends NamedElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public DeclarationItemProvider(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 Declaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Declaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((Declaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_Declaration_type") : + getString("_UI_Declaration_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DisjunctionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DisjunctionItemProvider.java new file mode 100644 index 0000000..be5659c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DisjunctionItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.Disjunction; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Disjunction} object. + * + * + * @generated + */ +public class DisjunctionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public DisjunctionItemProvider(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(FiacrePackage.eINSTANCE.getDisjunction_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getDisjunction_Right()); + } + 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 Disjunction.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Disjunction")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Disjunction_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(Disjunction.class)) { + case FiacrePackage.DISJUNCTION__LEFT: + case FiacrePackage.DISJUNCTION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDisjunction_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getDisjunction_Left() || + childFeature == FiacrePackage.eINSTANCE.getDisjunction_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DivisionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DivisionItemProvider.java new file mode 100644 index 0000000..c785d91 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/DivisionItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.Division; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Division} object. + * + * + * @generated + */ +public class DivisionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public DivisionItemProvider(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(FiacrePackage.eINSTANCE.getDivision_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getDivision_Right()); + } + 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 Division.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Division")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Division_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(Division.class)) { + case FiacrePackage.DIVISION__LEFT: + case FiacrePackage.DIVISION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getDivision_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getDivision_Left() || + childFeature == FiacrePackage.eINSTANCE.getDivision_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EnqueueExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EnqueueExpressionItemProvider.java new file mode 100644 index 0000000..69599dc --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EnqueueExpressionItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.EnqueueExpression; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression} object. + * + * + * @generated + */ +public class EnqueueExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public EnqueueExpressionItemProvider(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(FiacrePackage.eINSTANCE.getEnqueueExpression_Element()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getEnqueueExpression_Queue()); + } + 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 EnqueueExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/EnqueueExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_EnqueueExpression_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(EnqueueExpression.class)) { + case FiacrePackage.ENQUEUE_EXPRESSION__ELEMENT: + case FiacrePackage.ENQUEUE_EXPRESSION__QUEUE: + 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 + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Element(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getEnqueueExpression_Element() || + childFeature == FiacrePackage.eINSTANCE.getEnqueueExpression_Queue(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EnterStateEventItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EnterStateEventItemProvider.java new file mode 100644 index 0000000..81403d1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EnterStateEventItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.EnterStateEvent} object. + * + * + * @generated + */ +public class EnterStateEventItemProvider extends StateEventItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public EnterStateEventItemProvider(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 EnterStateEvent.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/EnterStateEvent")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_EnterStateEvent_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EventSubjectItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EventSubjectItemProvider.java new file mode 100644 index 0000000..5d128ae --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/EventSubjectItemProvider.java @@ -0,0 +1,143 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.EventSubject; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.EventSubject} object. + * + * + * @generated + */ +public class EventSubjectItemProvider extends SubjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public EventSubjectItemProvider(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); + + addEventPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Event feature. + * + * + * @generated + */ + protected void addEventPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_EventSubject_event_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_EventSubject_event_feature", "_UI_EventSubject_type"), + FiacrePackage.eINSTANCE.getEventSubject_Event(), + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns EventSubject.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/EventSubject")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((EventSubject)object).getEvent(); + return label == null || label.length() == 0 ? + getString("_UI_EventSubject_type") : + getString("_UI_EventSubject_type") + " " + label; + } + + + /** + * This 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(EventSubject.class)) { + case FiacrePackage.EVENT_SUBJECT__EVENT: + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExistsExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExistsExpressionItemProvider.java new file mode 100644 index 0000000..f4e3de5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExistsExpressionItemProvider.java @@ -0,0 +1,377 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ExistsExpression; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExistsExpression} object. + * + * + * @generated + */ +public class ExistsExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ExistsExpressionItemProvider(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(FiacrePackage.eINSTANCE.getExistsExpression_Index()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getExistsExpression_Type()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getExistsExpression_Child()); + } + 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 ExistsExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ExistsExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ExistsExpression_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(ExistsExpression.class)) { + case FiacrePackage.EXISTS_EXPRESSION__INDEX: + case FiacrePackage.EXISTS_EXPRESSION__TYPE: + case FiacrePackage.EXISTS_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getExistsExpression_Index(), + FiacreFactory.eINSTANCE.createVariableDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExistsPropertyItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExistsPropertyItemProvider.java new file mode 100644 index 0000000..8b383dd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExistsPropertyItemProvider.java @@ -0,0 +1,302 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ExistsProperty; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExistsProperty} object. + * + * + * @generated + */ +public class ExistsPropertyItemProvider extends PropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ExistsPropertyItemProvider(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(FiacrePackage.eINSTANCE.getExistsProperty_Variable()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getExistsProperty_Type()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getExistsProperty_Child()); + } + 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 ExistsProperty.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ExistsProperty")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ExistsProperty_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(ExistsProperty.class)) { + case FiacrePackage.EXISTS_PROPERTY__VARIABLE: + case FiacrePackage.EXISTS_PROPERTY__TYPE: + case FiacrePackage.EXISTS_PROPERTY__CHILD: + 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 + (FiacrePackage.eINSTANCE.getExistsProperty_Variable(), + FiacreFactory.eINSTANCE.createVariableDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createPatternProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createLTLPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createDeadlockFreePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createInfinitelyOftenPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createMortalPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createPresencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createAbsencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createAlwaysPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createSequencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createAllProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createExistsProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createPropertyDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createPropertyImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createPropertyConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createPropertyNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createLeadsToPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createPrecedesPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExistsProperty_Child(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExpressionDeclarationUseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExpressionDeclarationUseItemProvider.java new file mode 100644 index 0000000..e135558 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExpressionDeclarationUseItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse} object. + * + * + * @generated + */ +public class ExpressionDeclarationUseItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ExpressionDeclarationUseItemProvider(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 ExpressionDeclarationUse.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ExpressionDeclarationUse")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ExpressionDeclarationUse_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExpressionItemProvider.java new file mode 100644 index 0000000..6e416a4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExpressionItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.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); + + } + return itemPropertyDescriptors; + } + + /** + * This returns Expression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Expression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Expression_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExtendedConditionalStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExtendedConditionalStatementItemProvider.java new file mode 100644 index 0000000..83fb4e3 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ExtendedConditionalStatementItemProvider.java @@ -0,0 +1,541 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement; +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement} object. + * + * + * @generated + */ +public class ExtendedConditionalStatementItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ExtendedConditionalStatementItemProvider(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(FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then()); + } + 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 ExtendedConditionalStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ExtendedConditionalStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ExtendedConditionalStatement_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(ExtendedConditionalStatement.class)) { + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__CONDITION: + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__THEN: + 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 + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FalseLiteralItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FalseLiteralItemProvider.java new file mode 100644 index 0000000..d0e791a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FalseLiteralItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.FalseLiteral} object. + * + * + * @generated + */ +public class FalseLiteralItemProvider extends BooleanLiteralItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public FalseLiteralItemProvider(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 FalseLiteral.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/FalseLiteral")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_FalseLiteral_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FiacreEditPlugin.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FiacreEditPlugin.java new file mode 100644 index 0000000..378d35d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FiacreEditPlugin.java @@ -0,0 +1,100 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the Fiacre edit plugin. + * + * + * @generated + */ +public final class FiacreEditPlugin extends EMFPlugin { + /** + * Keep track of the singleton. + * + * + * @generated + */ + public static final FiacreEditPlugin INSTANCE = new FiacreEditPlugin(); + + /** + * Keep track of the singleton. + * + * + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * + * + * @generated + */ + public FiacreEditPlugin() { + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FiacreItemProviderAdapterFactory.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FiacreItemProviderAdapterFactory.java new file mode 100644 index 0000000..ca0f039 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FiacreItemProviderAdapterFactory.java @@ -0,0 +1,4866 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + +import fr.irit.fiacre.xtext.fiacre.util.FiacreAdapterFactory; + +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; + +/** + * 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 FiacreItemProviderAdapterFactory extends FiacreAdapterFactory 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 FiacreItemProviderAdapterFactory() { + 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 fr.irit.fiacre.xtext.fiacre.Model} instances. + * + * + * @generated + */ + protected ModelItemProvider modelItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Model}. + * + * + * @generated + */ + @Override + public Adapter createModelAdapter() { + if (modelItemProvider == null) { + modelItemProvider = new ModelItemProvider(this); + } + + return modelItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RootDeclaration} instances. + * + * + * @generated + */ + protected RootDeclarationItemProvider rootDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RootDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createRootDeclarationAdapter() { + if (rootDeclarationItemProvider == null) { + rootDeclarationItemProvider = new RootDeclarationItemProvider(this); + } + + return rootDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Root} instances. + * + * + * @generated + */ + protected RootItemProvider rootItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Root}. + * + * + * @generated + */ + @Override + public Adapter createRootAdapter() { + if (rootItemProvider == null) { + rootItemProvider = new RootItemProvider(this); + } + + return rootItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NamedElement} instances. + * + * + * @generated + */ + protected NamedElementItemProvider namedElementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NamedElement}. + * + * + * @generated + */ + @Override + public Adapter createNamedElementAdapter() { + if (namedElementItemProvider == null) { + namedElementItemProvider = new NamedElementItemProvider(this); + } + + return namedElementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse} instances. + * + * + * @generated + */ + protected TypeDeclarationUseItemProvider typeDeclarationUseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse}. + * + * + * @generated + */ + @Override + public Adapter createTypeDeclarationUseAdapter() { + if (typeDeclarationUseItemProvider == null) { + typeDeclarationUseItemProvider = new TypeDeclarationUseItemProvider(this); + } + + return typeDeclarationUseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclarationUse} instances. + * + * + * @generated + */ + protected ConstantDeclarationUseItemProvider constantDeclarationUseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclarationUse}. + * + * + * @generated + */ + @Override + public Adapter createConstantDeclarationUseAdapter() { + if (constantDeclarationUseItemProvider == null) { + constantDeclarationUseItemProvider = new ConstantDeclarationUseItemProvider(this); + } + + return constantDeclarationUseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse} instances. + * + * + * @generated + */ + protected ExpressionDeclarationUseItemProvider expressionDeclarationUseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse}. + * + * + * @generated + */ + @Override + public Adapter createExpressionDeclarationUseAdapter() { + if (expressionDeclarationUseItemProvider == null) { + expressionDeclarationUseItemProvider = new ExpressionDeclarationUseItemProvider(this); + } + + return expressionDeclarationUseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse} instances. + * + * + * @generated + */ + protected ReferenceDeclarationUseItemProvider referenceDeclarationUseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse}. + * + * + * @generated + */ + @Override + public Adapter createReferenceDeclarationUseAdapter() { + if (referenceDeclarationUseItemProvider == null) { + referenceDeclarationUseItemProvider = new ReferenceDeclarationUseItemProvider(this); + } + + return referenceDeclarationUseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclarationUse} instances. + * + * + * @generated + */ + protected UnionTagDeclarationUseItemProvider unionTagDeclarationUseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclarationUse}. + * + * + * @generated + */ + @Override + public Adapter createUnionTagDeclarationUseAdapter() { + if (unionTagDeclarationUseItemProvider == null) { + unionTagDeclarationUseItemProvider = new UnionTagDeclarationUseItemProvider(this); + } + + return unionTagDeclarationUseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse} instances. + * + * + * @generated + */ + protected RecordFieldDeclarationUseItemProvider recordFieldDeclarationUseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse}. + * + * + * @generated + */ + @Override + public Adapter createRecordFieldDeclarationUseAdapter() { + if (recordFieldDeclarationUseItemProvider == null) { + recordFieldDeclarationUseItemProvider = new RecordFieldDeclarationUseItemProvider(this); + } + + return recordFieldDeclarationUseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse} instances. + * + * + * @generated + */ + protected PatternDeclarationUseItemProvider patternDeclarationUseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse}. + * + * + * @generated + */ + @Override + public Adapter createPatternDeclarationUseAdapter() { + if (patternDeclarationUseItemProvider == null) { + patternDeclarationUseItemProvider = new PatternDeclarationUseItemProvider(this); + } + + return patternDeclarationUseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse} instances. + * + * + * @generated + */ + protected BoundDeclarationUseItemProvider boundDeclarationUseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse}. + * + * + * @generated + */ + @Override + public Adapter createBoundDeclarationUseAdapter() { + if (boundDeclarationUseItemProvider == null) { + boundDeclarationUseItemProvider = new BoundDeclarationUseItemProvider(this); + } + + return boundDeclarationUseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PathDeclarationUse} instances. + * + * + * @generated + */ + protected PathDeclarationUseItemProvider pathDeclarationUseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PathDeclarationUse}. + * + * + * @generated + */ + @Override + public Adapter createPathDeclarationUseAdapter() { + if (pathDeclarationUseItemProvider == null) { + pathDeclarationUseItemProvider = new PathDeclarationUseItemProvider(this); + } + + return pathDeclarationUseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse} instances. + * + * + * @generated + */ + protected PropertyDeclarationUseItemProvider propertyDeclarationUseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse}. + * + * + * @generated + */ + @Override + public Adapter createPropertyDeclarationUseAdapter() { + if (propertyDeclarationUseItemProvider == null) { + propertyDeclarationUseItemProvider = new PropertyDeclarationUseItemProvider(this); + } + + return propertyDeclarationUseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration} instances. + * + * + * @generated + */ + protected ImportDeclarationItemProvider importDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createImportDeclarationAdapter() { + if (importDeclarationItemProvider == null) { + importDeclarationItemProvider = new ImportDeclarationItemProvider(this); + } + + return importDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Declaration} instances. + * + * + * @generated + */ + protected DeclarationItemProvider declarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Declaration}. + * + * + * @generated + */ + @Override + public Adapter createDeclarationAdapter() { + if (declarationItemProvider == null) { + declarationItemProvider = new DeclarationItemProvider(this); + } + + return declarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration} instances. + * + * + * @generated + */ + protected ParameterizedDeclarationItemProvider parameterizedDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createParameterizedDeclarationAdapter() { + if (parameterizedDeclarationItemProvider == null) { + parameterizedDeclarationItemProvider = new ParameterizedDeclarationItemProvider(this); + } + + return parameterizedDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration} instances. + * + * + * @generated + */ + protected FunctionDeclarationItemProvider functionDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createFunctionDeclarationAdapter() { + if (functionDeclarationItemProvider == null) { + functionDeclarationItemProvider = new FunctionDeclarationItemProvider(this); + } + + return functionDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TypeDeclaration} instances. + * + * + * @generated + */ + protected TypeDeclarationItemProvider typeDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TypeDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createTypeDeclarationAdapter() { + if (typeDeclarationItemProvider == null) { + typeDeclarationItemProvider = new TypeDeclarationItemProvider(this); + } + + return typeDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ChannelDeclaration} instances. + * + * + * @generated + */ + protected ChannelDeclarationItemProvider channelDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ChannelDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createChannelDeclarationAdapter() { + if (channelDeclarationItemProvider == null) { + channelDeclarationItemProvider = new ChannelDeclarationItemProvider(this); + } + + return channelDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ChannelType} instances. + * + * + * @generated + */ + protected ChannelTypeItemProvider channelTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ChannelType}. + * + * + * @generated + */ + @Override + public Adapter createChannelTypeAdapter() { + if (channelTypeItemProvider == null) { + channelTypeItemProvider = new ChannelTypeItemProvider(this); + } + + return channelTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Type} instances. + * + * + * @generated + */ + protected TypeItemProvider typeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Type}. + * + * + * @generated + */ + @Override + public Adapter createTypeAdapter() { + if (typeItemProvider == null) { + typeItemProvider = new TypeItemProvider(this); + } + + return typeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.BasicType} instances. + * + * + * @generated + */ + protected BasicTypeItemProvider basicTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.BasicType}. + * + * + * @generated + */ + @Override + public Adapter createBasicTypeAdapter() { + if (basicTypeItemProvider == null) { + basicTypeItemProvider = new BasicTypeItemProvider(this); + } + + return basicTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RangeType} instances. + * + * + * @generated + */ + protected RangeTypeItemProvider rangeTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RangeType}. + * + * + * @generated + */ + @Override + public Adapter createRangeTypeAdapter() { + if (rangeTypeItemProvider == null) { + rangeTypeItemProvider = new RangeTypeItemProvider(this); + } + + return rangeTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnionType} instances. + * + * + * @generated + */ + protected UnionTypeItemProvider unionTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionType}. + * + * + * @generated + */ + @Override + public Adapter createUnionTypeAdapter() { + if (unionTypeItemProvider == null) { + unionTypeItemProvider = new UnionTypeItemProvider(this); + } + + return unionTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnionTags} instances. + * + * + * @generated + */ + protected UnionTagsItemProvider unionTagsItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionTags}. + * + * + * @generated + */ + @Override + public Adapter createUnionTagsAdapter() { + if (unionTagsItemProvider == null) { + unionTagsItemProvider = new UnionTagsItemProvider(this); + } + + return unionTagsItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration} instances. + * + * + * @generated + */ + protected UnionTagDeclarationItemProvider unionTagDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createUnionTagDeclarationAdapter() { + if (unionTagDeclarationItemProvider == null) { + unionTagDeclarationItemProvider = new UnionTagDeclarationItemProvider(this); + } + + return unionTagDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordType} instances. + * + * + * @generated + */ + protected RecordTypeItemProvider recordTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordType}. + * + * + * @generated + */ + @Override + public Adapter createRecordTypeAdapter() { + if (recordTypeItemProvider == null) { + recordTypeItemProvider = new RecordTypeItemProvider(this); + } + + return recordTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordFields} instances. + * + * + * @generated + */ + protected RecordFieldsItemProvider recordFieldsItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordFields}. + * + * + * @generated + */ + @Override + public Adapter createRecordFieldsAdapter() { + if (recordFieldsItemProvider == null) { + recordFieldsItemProvider = new RecordFieldsItemProvider(this); + } + + return recordFieldsItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration} instances. + * + * + * @generated + */ + protected RecordFieldDeclarationItemProvider recordFieldDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createRecordFieldDeclarationAdapter() { + if (recordFieldDeclarationItemProvider == null) { + recordFieldDeclarationItemProvider = new RecordFieldDeclarationItemProvider(this); + } + + return recordFieldDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.QueueType} instances. + * + * + * @generated + */ + protected QueueTypeItemProvider queueTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.QueueType}. + * + * + * @generated + */ + @Override + public Adapter createQueueTypeAdapter() { + if (queueTypeItemProvider == null) { + queueTypeItemProvider = new QueueTypeItemProvider(this); + } + + return queueTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ArrayType} instances. + * + * + * @generated + */ + protected ArrayTypeItemProvider arrayTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayType}. + * + * + * @generated + */ + @Override + public Adapter createArrayTypeAdapter() { + if (arrayTypeItemProvider == null) { + arrayTypeItemProvider = new ArrayTypeItemProvider(this); + } + + return arrayTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ReferencedType} instances. + * + * + * @generated + */ + protected ReferencedTypeItemProvider referencedTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReferencedType}. + * + * + * @generated + */ + @Override + public Adapter createReferencedTypeAdapter() { + if (referencedTypeItemProvider == null) { + referencedTypeItemProvider = new ReferencedTypeItemProvider(this); + } + + return referencedTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration} instances. + * + * + * @generated + */ + protected ConstantDeclarationItemProvider constantDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createConstantDeclarationAdapter() { + if (constantDeclarationItemProvider == null) { + constantDeclarationItemProvider = new ConstantDeclarationItemProvider(this); + } + + return constantDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration} instances. + * + * + * @generated + */ + protected ProcessDeclarationItemProvider processDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createProcessDeclarationAdapter() { + if (processDeclarationItemProvider == null) { + processDeclarationItemProvider = new ProcessDeclarationItemProvider(this); + } + + return processDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.StateDeclaration} instances. + * + * + * @generated + */ + protected StateDeclarationItemProvider stateDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.StateDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createStateDeclarationAdapter() { + if (stateDeclarationItemProvider == null) { + stateDeclarationItemProvider = new StateDeclarationItemProvider(this); + } + + return stateDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TransitionSource} instances. + * + * + * @generated + */ + protected TransitionSourceItemProvider transitionSourceItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TransitionSource}. + * + * + * @generated + */ + @Override + public Adapter createTransitionSourceAdapter() { + if (transitionSourceItemProvider == null) { + transitionSourceItemProvider = new TransitionSourceItemProvider(this); + } + + return transitionSourceItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Transition} instances. + * + * + * @generated + */ + protected TransitionItemProvider transitionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Transition}. + * + * + * @generated + */ + @Override + public Adapter createTransitionAdapter() { + if (transitionItemProvider == null) { + transitionItemProvider = new TransitionItemProvider(this); + } + + return transitionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration} instances. + * + * + * @generated + */ + protected ComponentDeclarationItemProvider componentDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createComponentDeclarationAdapter() { + if (componentDeclarationItemProvider == null) { + componentDeclarationItemProvider = new ComponentDeclarationItemProvider(this); + } + + return componentDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration} instances. + * + * + * @generated + */ + protected PortsDeclarationItemProvider portsDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createPortsDeclarationAdapter() { + if (portsDeclarationItemProvider == null) { + portsDeclarationItemProvider = new PortsDeclarationItemProvider(this); + } + + return portsDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PortDeclaration} instances. + * + * + * @generated + */ + protected PortDeclarationItemProvider portDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PortDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createPortDeclarationAdapter() { + if (portDeclarationItemProvider == null) { + portDeclarationItemProvider = new PortDeclarationItemProvider(this); + } + + return portDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration} instances. + * + * + * @generated + */ + protected LocalPortsDeclarationItemProvider localPortsDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createLocalPortsDeclarationAdapter() { + if (localPortsDeclarationItemProvider == null) { + localPortsDeclarationItemProvider = new LocalPortsDeclarationItemProvider(this); + } + + return localPortsDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration} instances. + * + * + * @generated + */ + protected ParametersDeclarationItemProvider parametersDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createParametersDeclarationAdapter() { + if (parametersDeclarationItemProvider == null) { + parametersDeclarationItemProvider = new ParametersDeclarationItemProvider(this); + } + + return parametersDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration} instances. + * + * + * @generated + */ + protected ParameterDeclarationItemProvider parameterDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createParameterDeclarationAdapter() { + if (parameterDeclarationItemProvider == null) { + parameterDeclarationItemProvider = new ParameterDeclarationItemProvider(this); + } + + return parameterDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration} instances. + * + * + * @generated + */ + protected VariablesDeclarationItemProvider variablesDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createVariablesDeclarationAdapter() { + if (variablesDeclarationItemProvider == null) { + variablesDeclarationItemProvider = new VariablesDeclarationItemProvider(this); + } + + return variablesDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.VariableDeclaration} instances. + * + * + * @generated + */ + protected VariableDeclarationItemProvider variableDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariableDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createVariableDeclarationAdapter() { + if (variableDeclarationItemProvider == null) { + variableDeclarationItemProvider = new VariableDeclarationItemProvider(this); + } + + return variableDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration} instances. + * + * + * @generated + */ + protected PriorityDeclarationItemProvider priorityDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createPriorityDeclarationAdapter() { + if (priorityDeclarationItemProvider == null) { + priorityDeclarationItemProvider = new PriorityDeclarationItemProvider(this); + } + + return priorityDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PriorityGroup} instances. + * + * + * @generated + */ + protected PriorityGroupItemProvider priorityGroupItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PriorityGroup}. + * + * + * @generated + */ + @Override + public Adapter createPriorityGroupAdapter() { + if (priorityGroupItemProvider == null) { + priorityGroupItemProvider = new PriorityGroupItemProvider(this); + } + + return priorityGroupItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Statement} instances. + * + * + * @generated + */ + protected StatementItemProvider statementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Statement}. + * + * + * @generated + */ + @Override + public Adapter createStatementAdapter() { + if (statementItemProvider == null) { + statementItemProvider = new StatementItemProvider(this); + } + + return statementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.BlockStatement} instances. + * + * + * @generated + */ + protected BlockStatementItemProvider blockStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.BlockStatement}. + * + * + * @generated + */ + @Override + public Adapter createBlockStatementAdapter() { + if (blockStatementItemProvider == null) { + blockStatementItemProvider = new BlockStatementItemProvider(this); + } + + return blockStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ReturnStatement} instances. + * + * + * @generated + */ + protected ReturnStatementItemProvider returnStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReturnStatement}. + * + * + * @generated + */ + @Override + public Adapter createReturnStatementAdapter() { + if (returnStatementItemProvider == null) { + returnStatementItemProvider = new ReturnStatementItemProvider(this); + } + + return returnStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NullStatement} instances. + * + * + * @generated + */ + protected NullStatementItemProvider nullStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NullStatement}. + * + * + * @generated + */ + @Override + public Adapter createNullStatementAdapter() { + if (nullStatementItemProvider == null) { + nullStatementItemProvider = new NullStatementItemProvider(this); + } + + return nullStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TaggedStatement} instances. + * + * + * @generated + */ + protected TaggedStatementItemProvider taggedStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TaggedStatement}. + * + * + * @generated + */ + @Override + public Adapter createTaggedStatementAdapter() { + if (taggedStatementItemProvider == null) { + taggedStatementItemProvider = new TaggedStatementItemProvider(this); + } + + return taggedStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PatternStatement} instances. + * + * + * @generated + */ + protected PatternStatementItemProvider patternStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PatternStatement}. + * + * + * @generated + */ + @Override + public Adapter createPatternStatementAdapter() { + if (patternStatementItemProvider == null) { + patternStatementItemProvider = new PatternStatementItemProvider(this); + } + + return patternStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Pattern} instances. + * + * + * @generated + */ + protected PatternItemProvider patternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Pattern}. + * + * + * @generated + */ + @Override + public Adapter createPatternAdapter() { + if (patternItemProvider == null) { + patternItemProvider = new PatternItemProvider(this); + } + + return patternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AnyPattern} instances. + * + * + * @generated + */ + protected AnyPatternItemProvider anyPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AnyPattern}. + * + * + * @generated + */ + @Override + public Adapter createAnyPatternAdapter() { + if (anyPatternItemProvider == null) { + anyPatternItemProvider = new AnyPatternItemProvider(this); + } + + return anyPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConstantPattern} instances. + * + * + * @generated + */ + protected ConstantPatternItemProvider constantPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstantPattern}. + * + * + * @generated + */ + @Override + public Adapter createConstantPatternAdapter() { + if (constantPatternItemProvider == null) { + constantPatternItemProvider = new ConstantPatternItemProvider(this); + } + + return constantPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.IntegerPattern} instances. + * + * + * @generated + */ + protected IntegerPatternItemProvider integerPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.IntegerPattern}. + * + * + * @generated + */ + @Override + public Adapter createIntegerPatternAdapter() { + if (integerPatternItemProvider == null) { + integerPatternItemProvider = new IntegerPatternItemProvider(this); + } + + return integerPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.IdentifierPattern} instances. + * + * + * @generated + */ + protected IdentifierPatternItemProvider identifierPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.IdentifierPattern}. + * + * + * @generated + */ + @Override + public Adapter createIdentifierPatternAdapter() { + if (identifierPatternItemProvider == null) { + identifierPatternItemProvider = new IdentifierPatternItemProvider(this); + } + + return identifierPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement} instances. + * + * + * @generated + */ + protected ConditionalStatementItemProvider conditionalStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement}. + * + * + * @generated + */ + @Override + public Adapter createConditionalStatementAdapter() { + if (conditionalStatementItemProvider == null) { + conditionalStatementItemProvider = new ConditionalStatementItemProvider(this); + } + + return conditionalStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement} instances. + * + * + * @generated + */ + protected ExtendedConditionalStatementItemProvider extendedConditionalStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement}. + * + * + * @generated + */ + @Override + public Adapter createExtendedConditionalStatementAdapter() { + if (extendedConditionalStatementItemProvider == null) { + extendedConditionalStatementItemProvider = new ExtendedConditionalStatementItemProvider(this); + } + + return extendedConditionalStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.SelectStatement} instances. + * + * + * @generated + */ + protected SelectStatementItemProvider selectStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.SelectStatement}. + * + * + * @generated + */ + @Override + public Adapter createSelectStatementAdapter() { + if (selectStatementItemProvider == null) { + selectStatementItemProvider = new SelectStatementItemProvider(this); + } + + return selectStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.WhileStatement} instances. + * + * + * @generated + */ + protected WhileStatementItemProvider whileStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.WhileStatement}. + * + * + * @generated + */ + @Override + public Adapter createWhileStatementAdapter() { + if (whileStatementItemProvider == null) { + whileStatementItemProvider = new WhileStatementItemProvider(this); + } + + return whileStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ForeachStatement} instances. + * + * + * @generated + */ + protected ForeachStatementItemProvider foreachStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ForeachStatement}. + * + * + * @generated + */ + @Override + public Adapter createForeachStatementAdapter() { + if (foreachStatementItemProvider == null) { + foreachStatementItemProvider = new ForeachStatementItemProvider(this); + } + + return foreachStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ToStatement} instances. + * + * + * @generated + */ + protected ToStatementItemProvider toStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ToStatement}. + * + * + * @generated + */ + @Override + public Adapter createToStatementAdapter() { + if (toStatementItemProvider == null) { + toStatementItemProvider = new ToStatementItemProvider(this); + } + + return toStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.CaseStatement} instances. + * + * + * @generated + */ + protected CaseStatementItemProvider caseStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.CaseStatement}. + * + * + * @generated + */ + @Override + public Adapter createCaseStatementAdapter() { + if (caseStatementItemProvider == null) { + caseStatementItemProvider = new CaseStatementItemProvider(this); + } + + return caseStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LoopStatement} instances. + * + * + * @generated + */ + protected LoopStatementItemProvider loopStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LoopStatement}. + * + * + * @generated + */ + @Override + public Adapter createLoopStatementAdapter() { + if (loopStatementItemProvider == null) { + loopStatementItemProvider = new LoopStatementItemProvider(this); + } + + return loopStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.OnStatement} instances. + * + * + * @generated + */ + protected OnStatementItemProvider onStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.OnStatement}. + * + * + * @generated + */ + @Override + public Adapter createOnStatementAdapter() { + if (onStatementItemProvider == null) { + onStatementItemProvider = new OnStatementItemProvider(this); + } + + return onStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.WaitStatement} instances. + * + * + * @generated + */ + protected WaitStatementItemProvider waitStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.WaitStatement}. + * + * + * @generated + */ + @Override + public Adapter createWaitStatementAdapter() { + if (waitStatementItemProvider == null) { + waitStatementItemProvider = new WaitStatementItemProvider(this); + } + + return waitStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Composition} instances. + * + * + * @generated + */ + protected CompositionItemProvider compositionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Composition}. + * + * + * @generated + */ + @Override + public Adapter createCompositionAdapter() { + if (compositionItemProvider == null) { + compositionItemProvider = new CompositionItemProvider(this); + } + + return compositionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Block} instances. + * + * + * @generated + */ + protected BlockItemProvider blockItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Block}. + * + * + * @generated + */ + @Override + public Adapter createBlockAdapter() { + if (blockItemProvider == null) { + blockItemProvider = new BlockItemProvider(this); + } + + return blockItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.CompositeBlock} instances. + * + * + * @generated + */ + protected CompositeBlockItemProvider compositeBlockItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.CompositeBlock}. + * + * + * @generated + */ + @Override + public Adapter createCompositeBlockAdapter() { + if (compositeBlockItemProvider == null) { + compositeBlockItemProvider = new CompositeBlockItemProvider(this); + } + + return compositeBlockItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.InstanceDeclaration} instances. + * + * + * @generated + */ + protected InstanceDeclarationItemProvider instanceDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.InstanceDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createInstanceDeclarationAdapter() { + if (instanceDeclarationItemProvider == null) { + instanceDeclarationItemProvider = new InstanceDeclarationItemProvider(this); + } + + return instanceDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PortSet} instances. + * + * + * @generated + */ + protected PortSetItemProvider portSetItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PortSet}. + * + * + * @generated + */ + @Override + public Adapter createPortSetAdapter() { + if (portSetItemProvider == null) { + portSetItemProvider = new PortSetItemProvider(this); + } + + return portSetItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComponentInstance} instances. + * + * + * @generated + */ + protected ComponentInstanceItemProvider componentInstanceItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComponentInstance}. + * + * + * @generated + */ + @Override + public Adapter createComponentInstanceAdapter() { + if (componentInstanceItemProvider == null) { + componentInstanceItemProvider = new ComponentInstanceItemProvider(this); + } + + return componentInstanceItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Expression} instances. + * + * + * @generated + */ + protected ExpressionItemProvider expressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Expression}. + * + * + * @generated + */ + @Override + public Adapter createExpressionAdapter() { + if (expressionItemProvider == null) { + expressionItemProvider = new ExpressionItemProvider(this); + } + + return expressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ValueExpression} instances. + * + * + * @generated + */ + protected ValueExpressionItemProvider valueExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ValueExpression}. + * + * + * @generated + */ + @Override + public Adapter createValueExpressionAdapter() { + if (valueExpressionItemProvider == null) { + valueExpressionItemProvider = new ValueExpressionItemProvider(this); + } + + return valueExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ReferenceExpression} instances. + * + * + * @generated + */ + protected ReferenceExpressionItemProvider referenceExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReferenceExpression}. + * + * + * @generated + */ + @Override + public Adapter createReferenceExpressionAdapter() { + if (referenceExpressionItemProvider == null) { + referenceExpressionItemProvider = new ReferenceExpressionItemProvider(this); + } + + return referenceExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.IdentifierExpression} instances. + * + * + * @generated + */ + protected IdentifierExpressionItemProvider identifierExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.IdentifierExpression}. + * + * + * @generated + */ + @Override + public Adapter createIdentifierExpressionAdapter() { + if (identifierExpressionItemProvider == null) { + identifierExpressionItemProvider = new IdentifierExpressionItemProvider(this); + } + + return identifierExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordExpression} instances. + * + * + * @generated + */ + protected RecordExpressionItemProvider recordExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordExpression}. + * + * + * @generated + */ + @Override + public Adapter createRecordExpressionAdapter() { + if (recordExpressionItemProvider == null) { + recordExpressionItemProvider = new RecordExpressionItemProvider(this); + } + + return recordExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.FieldExpression} instances. + * + * + * @generated + */ + protected FieldExpressionItemProvider fieldExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.FieldExpression}. + * + * + * @generated + */ + @Override + public Adapter createFieldExpressionAdapter() { + if (fieldExpressionItemProvider == null) { + fieldExpressionItemProvider = new FieldExpressionItemProvider(this); + } + + return fieldExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ArrayExpression} instances. + * + * + * @generated + */ + protected ArrayExpressionItemProvider arrayExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayExpression}. + * + * + * @generated + */ + @Override + public Adapter createArrayExpressionAdapter() { + if (arrayExpressionItemProvider == null) { + arrayExpressionItemProvider = new ArrayExpressionItemProvider(this); + } + + return arrayExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.QueueExpression} instances. + * + * + * @generated + */ + protected QueueExpressionItemProvider queueExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.QueueExpression}. + * + * + * @generated + */ + @Override + public Adapter createQueueExpressionAdapter() { + if (queueExpressionItemProvider == null) { + queueExpressionItemProvider = new QueueExpressionItemProvider(this); + } + + return queueExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression} instances. + * + * + * @generated + */ + protected EnqueueExpressionItemProvider enqueueExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression}. + * + * + * @generated + */ + @Override + public Adapter createEnqueueExpressionAdapter() { + if (enqueueExpressionItemProvider == null) { + enqueueExpressionItemProvider = new EnqueueExpressionItemProvider(this); + } + + return enqueueExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AppendExpression} instances. + * + * + * @generated + */ + protected AppendExpressionItemProvider appendExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AppendExpression}. + * + * + * @generated + */ + @Override + public Adapter createAppendExpressionAdapter() { + if (appendExpressionItemProvider == null) { + appendExpressionItemProvider = new AppendExpressionItemProvider(this); + } + + return appendExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LiteralExpression} instances. + * + * + * @generated + */ + protected LiteralExpressionItemProvider literalExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LiteralExpression}. + * + * + * @generated + */ + @Override + public Adapter createLiteralExpressionAdapter() { + if (literalExpressionItemProvider == null) { + literalExpressionItemProvider = new LiteralExpressionItemProvider(this); + } + + return literalExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.BooleanLiteral} instances. + * + * + * @generated + */ + protected BooleanLiteralItemProvider booleanLiteralItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.BooleanLiteral}. + * + * + * @generated + */ + @Override + public Adapter createBooleanLiteralAdapter() { + if (booleanLiteralItemProvider == null) { + booleanLiteralItemProvider = new BooleanLiteralItemProvider(this); + } + + return booleanLiteralItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NaturalLiteral} instances. + * + * + * @generated + */ + protected NaturalLiteralItemProvider naturalLiteralItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalLiteral}. + * + * + * @generated + */ + @Override + public Adapter createNaturalLiteralAdapter() { + if (naturalLiteralItemProvider == null) { + naturalLiteralItemProvider = new NaturalLiteralItemProvider(this); + } + + return naturalLiteralItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LowerBound} instances. + * + * + * @generated + */ + protected LowerBoundItemProvider lowerBoundItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LowerBound}. + * + * + * @generated + */ + @Override + public Adapter createLowerBoundAdapter() { + if (lowerBoundItemProvider == null) { + lowerBoundItemProvider = new LowerBoundItemProvider(this); + } + + return lowerBoundItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UpperBound} instances. + * + * + * @generated + */ + protected UpperBoundItemProvider upperBoundItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UpperBound}. + * + * + * @generated + */ + @Override + public Adapter createUpperBoundAdapter() { + if (upperBoundItemProvider == null) { + upperBoundItemProvider = new UpperBoundItemProvider(this); + } + + return upperBoundItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NaturalLowerBound} instances. + * + * + * @generated + */ + protected NaturalLowerBoundItemProvider naturalLowerBoundItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalLowerBound}. + * + * + * @generated + */ + @Override + public Adapter createNaturalLowerBoundAdapter() { + if (naturalLowerBoundItemProvider == null) { + naturalLowerBoundItemProvider = new NaturalLowerBoundItemProvider(this); + } + + return naturalLowerBoundItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound} instances. + * + * + * @generated + */ + protected NaturalUpperBoundItemProvider naturalUpperBoundItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound}. + * + * + * @generated + */ + @Override + public Adapter createNaturalUpperBoundAdapter() { + if (naturalUpperBoundItemProvider == null) { + naturalUpperBoundItemProvider = new NaturalUpperBoundItemProvider(this); + } + + return naturalUpperBoundItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.DecimalLowerBound} instances. + * + * + * @generated + */ + protected DecimalLowerBoundItemProvider decimalLowerBoundItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.DecimalLowerBound}. + * + * + * @generated + */ + @Override + public Adapter createDecimalLowerBoundAdapter() { + if (decimalLowerBoundItemProvider == null) { + decimalLowerBoundItemProvider = new DecimalLowerBoundItemProvider(this); + } + + return decimalLowerBoundItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound} instances. + * + * + * @generated + */ + protected DecimalUpperBoundItemProvider decimalUpperBoundItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound}. + * + * + * @generated + */ + @Override + public Adapter createDecimalUpperBoundAdapter() { + if (decimalUpperBoundItemProvider == null) { + decimalUpperBoundItemProvider = new DecimalUpperBoundItemProvider(this); + } + + return decimalUpperBoundItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.VariableLowerBound} instances. + * + * + * @generated + */ + protected VariableLowerBoundItemProvider variableLowerBoundItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariableLowerBound}. + * + * + * @generated + */ + @Override + public Adapter createVariableLowerBoundAdapter() { + if (variableLowerBoundItemProvider == null) { + variableLowerBoundItemProvider = new VariableLowerBoundItemProvider(this); + } + + return variableLowerBoundItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound} instances. + * + * + * @generated + */ + protected VariableUpperBoundItemProvider variableUpperBoundItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound}. + * + * + * @generated + */ + @Override + public Adapter createVariableUpperBoundAdapter() { + if (variableUpperBoundItemProvider == null) { + variableUpperBoundItemProvider = new VariableUpperBoundItemProvider(this); + } + + return variableUpperBoundItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound} instances. + * + * + * @generated + */ + protected InfiniteUpperBoundItemProvider infiniteUpperBoundItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound}. + * + * + * @generated + */ + @Override + public Adapter createInfiniteUpperBoundAdapter() { + if (infiniteUpperBoundItemProvider == null) { + infiniteUpperBoundItemProvider = new InfiniteUpperBoundItemProvider(this); + } + + return infiniteUpperBoundItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Requirement} instances. + * + * + * @generated + */ + protected RequirementItemProvider requirementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Requirement}. + * + * + * @generated + */ + @Override + public Adapter createRequirementAdapter() { + if (requirementItemProvider == null) { + requirementItemProvider = new RequirementItemProvider(this); + } + + return requirementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyDeclaration} instances. + * + * + * @generated + */ + protected PropertyDeclarationItemProvider propertyDeclarationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyDeclaration}. + * + * + * @generated + */ + @Override + public Adapter createPropertyDeclarationAdapter() { + if (propertyDeclarationItemProvider == null) { + propertyDeclarationItemProvider = new PropertyDeclarationItemProvider(this); + } + + return propertyDeclarationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Property} instances. + * + * + * @generated + */ + protected PropertyItemProvider propertyItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Property}. + * + * + * @generated + */ + @Override + public Adapter createPropertyAdapter() { + if (propertyItemProvider == null) { + propertyItemProvider = new PropertyItemProvider(this); + } + + return propertyItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PatternProperty} instances. + * + * + * @generated + */ + protected PatternPropertyItemProvider patternPropertyItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PatternProperty}. + * + * + * @generated + */ + @Override + public Adapter createPatternPropertyAdapter() { + if (patternPropertyItemProvider == null) { + patternPropertyItemProvider = new PatternPropertyItemProvider(this); + } + + return patternPropertyItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLPattern} instances. + * + * + * @generated + */ + protected LTLPatternItemProvider ltlPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLPattern}. + * + * + * @generated + */ + @Override + public Adapter createLTLPatternAdapter() { + if (ltlPatternItemProvider == null) { + ltlPatternItemProvider = new LTLPatternItemProvider(this); + } + + return ltlPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern} instances. + * + * + * @generated + */ + protected DeadlockFreePatternItemProvider deadlockFreePatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern}. + * + * + * @generated + */ + @Override + public Adapter createDeadlockFreePatternAdapter() { + if (deadlockFreePatternItemProvider == null) { + deadlockFreePatternItemProvider = new DeadlockFreePatternItemProvider(this); + } + + return deadlockFreePatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern} instances. + * + * + * @generated + */ + protected InfinitelyOftenPatternItemProvider infinitelyOftenPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern}. + * + * + * @generated + */ + @Override + public Adapter createInfinitelyOftenPatternAdapter() { + if (infinitelyOftenPatternItemProvider == null) { + infinitelyOftenPatternItemProvider = new InfinitelyOftenPatternItemProvider(this); + } + + return infinitelyOftenPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.MortalPattern} instances. + * + * + * @generated + */ + protected MortalPatternItemProvider mortalPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.MortalPattern}. + * + * + * @generated + */ + @Override + public Adapter createMortalPatternAdapter() { + if (mortalPatternItemProvider == null) { + mortalPatternItemProvider = new MortalPatternItemProvider(this); + } + + return mortalPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PresencePattern} instances. + * + * + * @generated + */ + protected PresencePatternItemProvider presencePatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PresencePattern}. + * + * + * @generated + */ + @Override + public Adapter createPresencePatternAdapter() { + if (presencePatternItemProvider == null) { + presencePatternItemProvider = new PresencePatternItemProvider(this); + } + + return presencePatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern} instances. + * + * + * @generated + */ + protected AbsencePatternItemProvider absencePatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern}. + * + * + * @generated + */ + @Override + public Adapter createAbsencePatternAdapter() { + if (absencePatternItemProvider == null) { + absencePatternItemProvider = new AbsencePatternItemProvider(this); + } + + return absencePatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern} instances. + * + * + * @generated + */ + protected AlwaysPatternItemProvider alwaysPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern}. + * + * + * @generated + */ + @Override + public Adapter createAlwaysPatternAdapter() { + if (alwaysPatternItemProvider == null) { + alwaysPatternItemProvider = new AlwaysPatternItemProvider(this); + } + + return alwaysPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.SequencePattern} instances. + * + * + * @generated + */ + protected SequencePatternItemProvider sequencePatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.SequencePattern}. + * + * + * @generated + */ + @Override + public Adapter createSequencePatternAdapter() { + if (sequencePatternItemProvider == null) { + sequencePatternItemProvider = new SequencePatternItemProvider(this); + } + + return sequencePatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLProperty} instances. + * + * + * @generated + */ + protected LTLPropertyItemProvider ltlPropertyItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLProperty}. + * + * + * @generated + */ + @Override + public Adapter createLTLPropertyAdapter() { + if (ltlPropertyItemProvider == null) { + ltlPropertyItemProvider = new LTLPropertyItemProvider(this); + } + + return ltlPropertyItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.StateEvent} instances. + * + * + * @generated + */ + protected StateEventItemProvider stateEventItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.StateEvent}. + * + * + * @generated + */ + @Override + public Adapter createStateEventAdapter() { + if (stateEventItemProvider == null) { + stateEventItemProvider = new StateEventItemProvider(this); + } + + return stateEventItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.EnterStateEvent} instances. + * + * + * @generated + */ + protected EnterStateEventItemProvider enterStateEventItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.EnterStateEvent}. + * + * + * @generated + */ + @Override + public Adapter createEnterStateEventAdapter() { + if (enterStateEventItemProvider == null) { + enterStateEventItemProvider = new EnterStateEventItemProvider(this); + } + + return enterStateEventItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LeaveStateEvent} instances. + * + * + * @generated + */ + protected LeaveStateEventItemProvider leaveStateEventItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LeaveStateEvent}. + * + * + * @generated + */ + @Override + public Adapter createLeaveStateEventAdapter() { + if (leaveStateEventItemProvider == null) { + leaveStateEventItemProvider = new LeaveStateEventItemProvider(this); + } + + return leaveStateEventItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Observable} instances. + * + * + * @generated + */ + protected ObservableItemProvider observableItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Observable}. + * + * + * @generated + */ + @Override + public Adapter createObservableAdapter() { + if (observableItemProvider == null) { + observableItemProvider = new ObservableItemProvider(this); + } + + return observableItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ObservableEvent} instances. + * + * + * @generated + */ + protected ObservableEventItemProvider observableEventItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableEvent}. + * + * + * @generated + */ + @Override + public Adapter createObservableEventAdapter() { + if (observableEventItemProvider == null) { + observableEventItemProvider = new ObservableEventItemProvider(this); + } + + return observableEventItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PathEvent} instances. + * + * + * @generated + */ + protected PathEventItemProvider pathEventItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PathEvent}. + * + * + * @generated + */ + @Override + public Adapter createPathEventAdapter() { + if (pathEventItemProvider == null) { + pathEventItemProvider = new PathEventItemProvider(this); + } + + return pathEventItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Path} instances. + * + * + * @generated + */ + protected PathItemProvider pathItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Path}. + * + * + * @generated + */ + @Override + public Adapter createPathAdapter() { + if (pathItemProvider == null) { + pathItemProvider = new PathItemProvider(this); + } + + return pathItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PathItem} instances. + * + * + * @generated + */ + protected PathItemItemProvider pathItemItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PathItem}. + * + * + * @generated + */ + @Override + public Adapter createPathItemAdapter() { + if (pathItemItemProvider == null) { + pathItemItemProvider = new PathItemItemProvider(this); + } + + return pathItemItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NaturalItem} instances. + * + * + * @generated + */ + protected NaturalItemItemProvider naturalItemItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalItem}. + * + * + * @generated + */ + @Override + public Adapter createNaturalItemAdapter() { + if (naturalItemItemProvider == null) { + naturalItemItemProvider = new NaturalItemItemProvider(this); + } + + return naturalItemItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NamedItem} instances. + * + * + * @generated + */ + protected NamedItemItemProvider namedItemItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NamedItem}. + * + * + * @generated + */ + @Override + public Adapter createNamedItemAdapter() { + if (namedItemItemProvider == null) { + namedItemItemProvider = new NamedItemItemProvider(this); + } + + return namedItemItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Subject} instances. + * + * + * @generated + */ + protected SubjectItemProvider subjectItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Subject}. + * + * + * @generated + */ + @Override + public Adapter createSubjectAdapter() { + if (subjectItemProvider == null) { + subjectItemProvider = new SubjectItemProvider(this); + } + + return subjectItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.StateSubject} instances. + * + * + * @generated + */ + protected StateSubjectItemProvider stateSubjectItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.StateSubject}. + * + * + * @generated + */ + @Override + public Adapter createStateSubjectAdapter() { + if (stateSubjectItemProvider == null) { + stateSubjectItemProvider = new StateSubjectItemProvider(this); + } + + return stateSubjectItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ValueSubject} instances. + * + * + * @generated + */ + protected ValueSubjectItemProvider valueSubjectItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ValueSubject}. + * + * + * @generated + */ + @Override + public Adapter createValueSubjectAdapter() { + if (valueSubjectItemProvider == null) { + valueSubjectItemProvider = new ValueSubjectItemProvider(this); + } + + return valueSubjectItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TagSubject} instances. + * + * + * @generated + */ + protected TagSubjectItemProvider tagSubjectItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TagSubject}. + * + * + * @generated + */ + @Override + public Adapter createTagSubjectAdapter() { + if (tagSubjectItemProvider == null) { + tagSubjectItemProvider = new TagSubjectItemProvider(this); + } + + return tagSubjectItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.EventSubject} instances. + * + * + * @generated + */ + protected EventSubjectItemProvider eventSubjectItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.EventSubject}. + * + * + * @generated + */ + @Override + public Adapter createEventSubjectAdapter() { + if (eventSubjectItemProvider == null) { + eventSubjectItemProvider = new EventSubjectItemProvider(this); + } + + return eventSubjectItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TupleType} instances. + * + * + * @generated + */ + protected TupleTypeItemProvider tupleTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TupleType}. + * + * + * @generated + */ + @Override + public Adapter createTupleTypeAdapter() { + if (tupleTypeItemProvider == null) { + tupleTypeItemProvider = new TupleTypeItemProvider(this); + } + + return tupleTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NaturalType} instances. + * + * + * @generated + */ + protected NaturalTypeItemProvider naturalTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalType}. + * + * + * @generated + */ + @Override + public Adapter createNaturalTypeAdapter() { + if (naturalTypeItemProvider == null) { + naturalTypeItemProvider = new NaturalTypeItemProvider(this); + } + + return naturalTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.IntegerType} instances. + * + * + * @generated + */ + protected IntegerTypeItemProvider integerTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.IntegerType}. + * + * + * @generated + */ + @Override + public Adapter createIntegerTypeAdapter() { + if (integerTypeItemProvider == null) { + integerTypeItemProvider = new IntegerTypeItemProvider(this); + } + + return integerTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.BooleanType} instances. + * + * + * @generated + */ + protected BooleanTypeItemProvider booleanTypeItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.BooleanType}. + * + * + * @generated + */ + @Override + public Adapter createBooleanTypeAdapter() { + if (booleanTypeItemProvider == null) { + booleanTypeItemProvider = new BooleanTypeItemProvider(this); + } + + return booleanTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnlessStatement} instances. + * + * + * @generated + */ + protected UnlessStatementItemProvider unlessStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnlessStatement}. + * + * + * @generated + */ + @Override + public Adapter createUnlessStatementAdapter() { + if (unlessStatementItemProvider == null) { + unlessStatementItemProvider = new UnlessStatementItemProvider(this); + } + + return unlessStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.StatementChoice} instances. + * + * + * @generated + */ + protected StatementChoiceItemProvider statementChoiceItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.StatementChoice}. + * + * + * @generated + */ + @Override + public Adapter createStatementChoiceAdapter() { + if (statementChoiceItemProvider == null) { + statementChoiceItemProvider = new StatementChoiceItemProvider(this); + } + + return statementChoiceItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.StatementSequence} instances. + * + * + * @generated + */ + protected StatementSequenceItemProvider statementSequenceItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.StatementSequence}. + * + * + * @generated + */ + @Override + public Adapter createStatementSequenceAdapter() { + if (statementSequenceItemProvider == null) { + statementSequenceItemProvider = new StatementSequenceItemProvider(this); + } + + return statementSequenceItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AssignStatement} instances. + * + * + * @generated + */ + protected AssignStatementItemProvider assignStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AssignStatement}. + * + * + * @generated + */ + @Override + public Adapter createAssignStatementAdapter() { + if (assignStatementItemProvider == null) { + assignStatementItemProvider = new AssignStatementItemProvider(this); + } + + return assignStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement} instances. + * + * + * @generated + */ + protected AssignAnyStatementItemProvider assignAnyStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement}. + * + * + * @generated + */ + @Override + public Adapter createAssignAnyStatementAdapter() { + if (assignAnyStatementItemProvider == null) { + assignAnyStatementItemProvider = new AssignAnyStatementItemProvider(this); + } + + return assignAnyStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.SendStatement} instances. + * + * + * @generated + */ + protected SendStatementItemProvider sendStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.SendStatement}. + * + * + * @generated + */ + @Override + public Adapter createSendStatementAdapter() { + if (sendStatementItemProvider == null) { + sendStatementItemProvider = new SendStatementItemProvider(this); + } + + return sendStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement} instances. + * + * + * @generated + */ + protected ReceiveStatementItemProvider receiveStatementItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement}. + * + * + * @generated + */ + @Override + public Adapter createReceiveStatementAdapter() { + if (receiveStatementItemProvider == null) { + receiveStatementItemProvider = new ReceiveStatementItemProvider(this); + } + + return receiveStatementItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConstructorPattern} instances. + * + * + * @generated + */ + protected ConstructorPatternItemProvider constructorPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstructorPattern}. + * + * + * @generated + */ + @Override + public Adapter createConstructorPatternAdapter() { + if (constructorPatternItemProvider == null) { + constructorPatternItemProvider = new ConstructorPatternItemProvider(this); + } + + return constructorPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern} instances. + * + * + * @generated + */ + protected ArrayAccessPatternItemProvider arrayAccessPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern}. + * + * + * @generated + */ + @Override + public Adapter createArrayAccessPatternAdapter() { + if (arrayAccessPatternItemProvider == null) { + arrayAccessPatternItemProvider = new ArrayAccessPatternItemProvider(this); + } + + return arrayAccessPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern} instances. + * + * + * @generated + */ + protected RecordAccessPatternItemProvider recordAccessPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern}. + * + * + * @generated + */ + @Override + public Adapter createRecordAccessPatternAdapter() { + if (recordAccessPatternItemProvider == null) { + recordAccessPatternItemProvider = new RecordAccessPatternItemProvider(this); + } + + return recordAccessPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AllExpression} instances. + * + * + * @generated + */ + protected AllExpressionItemProvider allExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AllExpression}. + * + * + * @generated + */ + @Override + public Adapter createAllExpressionAdapter() { + if (allExpressionItemProvider == null) { + allExpressionItemProvider = new AllExpressionItemProvider(this); + } + + return allExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ExistsExpression} instances. + * + * + * @generated + */ + protected ExistsExpressionItemProvider existsExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExistsExpression}. + * + * + * @generated + */ + @Override + public Adapter createExistsExpressionAdapter() { + if (existsExpressionItemProvider == null) { + existsExpressionItemProvider = new ExistsExpressionItemProvider(this); + } + + return existsExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Conditional} instances. + * + * + * @generated + */ + protected ConditionalItemProvider conditionalItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Conditional}. + * + * + * @generated + */ + @Override + public Adapter createConditionalAdapter() { + if (conditionalItemProvider == null) { + conditionalItemProvider = new ConditionalItemProvider(this); + } + + return conditionalItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Disjunction} instances. + * + * + * @generated + */ + protected DisjunctionItemProvider disjunctionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Disjunction}. + * + * + * @generated + */ + @Override + public Adapter createDisjunctionAdapter() { + if (disjunctionItemProvider == null) { + disjunctionItemProvider = new DisjunctionItemProvider(this); + } + + return disjunctionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Implication} instances. + * + * + * @generated + */ + protected ImplicationItemProvider implicationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Implication}. + * + * + * @generated + */ + @Override + public Adapter createImplicationAdapter() { + if (implicationItemProvider == null) { + implicationItemProvider = new ImplicationItemProvider(this); + } + + return implicationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Conjunction} instances. + * + * + * @generated + */ + protected ConjunctionItemProvider conjunctionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Conjunction}. + * + * + * @generated + */ + @Override + public Adapter createConjunctionAdapter() { + if (conjunctionItemProvider == null) { + conjunctionItemProvider = new ConjunctionItemProvider(this); + } + + return conjunctionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual} instances. + * + * + * @generated + */ + protected ComparisonEqualItemProvider comparisonEqualItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual}. + * + * + * @generated + */ + @Override + public Adapter createComparisonEqualAdapter() { + if (comparisonEqualItemProvider == null) { + comparisonEqualItemProvider = new ComparisonEqualItemProvider(this); + } + + return comparisonEqualItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual} instances. + * + * + * @generated + */ + protected ComparisonNotEqualItemProvider comparisonNotEqualItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual}. + * + * + * @generated + */ + @Override + public Adapter createComparisonNotEqualAdapter() { + if (comparisonNotEqualItemProvider == null) { + comparisonNotEqualItemProvider = new ComparisonNotEqualItemProvider(this); + } + + return comparisonNotEqualItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser} instances. + * + * + * @generated + */ + protected ComparisonLesserItemProvider comparisonLesserItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser}. + * + * + * @generated + */ + @Override + public Adapter createComparisonLesserAdapter() { + if (comparisonLesserItemProvider == null) { + comparisonLesserItemProvider = new ComparisonLesserItemProvider(this); + } + + return comparisonLesserItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual} instances. + * + * + * @generated + */ + protected ComparisonLesserEqualItemProvider comparisonLesserEqualItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual}. + * + * + * @generated + */ + @Override + public Adapter createComparisonLesserEqualAdapter() { + if (comparisonLesserEqualItemProvider == null) { + comparisonLesserEqualItemProvider = new ComparisonLesserEqualItemProvider(this); + } + + return comparisonLesserEqualItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater} instances. + * + * + * @generated + */ + protected ComparisonGreaterItemProvider comparisonGreaterItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater}. + * + * + * @generated + */ + @Override + public Adapter createComparisonGreaterAdapter() { + if (comparisonGreaterItemProvider == null) { + comparisonGreaterItemProvider = new ComparisonGreaterItemProvider(this); + } + + return comparisonGreaterItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual} instances. + * + * + * @generated + */ + protected ComparisonGreaterEqualItemProvider comparisonGreaterEqualItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual}. + * + * + * @generated + */ + @Override + public Adapter createComparisonGreaterEqualAdapter() { + if (comparisonGreaterEqualItemProvider == null) { + comparisonGreaterEqualItemProvider = new ComparisonGreaterEqualItemProvider(this); + } + + return comparisonGreaterEqualItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Addition} instances. + * + * + * @generated + */ + protected AdditionItemProvider additionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Addition}. + * + * + * @generated + */ + @Override + public Adapter createAdditionAdapter() { + if (additionItemProvider == null) { + additionItemProvider = new AdditionItemProvider(this); + } + + return additionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Substraction} instances. + * + * + * @generated + */ + protected SubstractionItemProvider substractionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Substraction}. + * + * + * @generated + */ + @Override + public Adapter createSubstractionAdapter() { + if (substractionItemProvider == null) { + substractionItemProvider = new SubstractionItemProvider(this); + } + + return substractionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Multiplication} instances. + * + * + * @generated + */ + protected MultiplicationItemProvider multiplicationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Multiplication}. + * + * + * @generated + */ + @Override + public Adapter createMultiplicationAdapter() { + if (multiplicationItemProvider == null) { + multiplicationItemProvider = new MultiplicationItemProvider(this); + } + + return multiplicationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Division} instances. + * + * + * @generated + */ + protected DivisionItemProvider divisionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Division}. + * + * + * @generated + */ + @Override + public Adapter createDivisionAdapter() { + if (divisionItemProvider == null) { + divisionItemProvider = new DivisionItemProvider(this); + } + + return divisionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Modulo} instances. + * + * + * @generated + */ + protected ModuloItemProvider moduloItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Modulo}. + * + * + * @generated + */ + @Override + public Adapter createModuloAdapter() { + if (moduloItemProvider == null) { + moduloItemProvider = new ModuloItemProvider(this); + } + + return moduloItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression} instances. + * + * + * @generated + */ + protected UnaryPlusExpressionItemProvider unaryPlusExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression}. + * + * + * @generated + */ + @Override + public Adapter createUnaryPlusExpressionAdapter() { + if (unaryPlusExpressionItemProvider == null) { + unaryPlusExpressionItemProvider = new UnaryPlusExpressionItemProvider(this); + } + + return unaryPlusExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression} instances. + * + * + * @generated + */ + protected UnaryMinusExpressionItemProvider unaryMinusExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression}. + * + * + * @generated + */ + @Override + public Adapter createUnaryMinusExpressionAdapter() { + if (unaryMinusExpressionItemProvider == null) { + unaryMinusExpressionItemProvider = new UnaryMinusExpressionItemProvider(this); + } + + return unaryMinusExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression} instances. + * + * + * @generated + */ + protected UnaryNegationExpressionItemProvider unaryNegationExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression}. + * + * + * @generated + */ + @Override + public Adapter createUnaryNegationExpressionAdapter() { + if (unaryNegationExpressionItemProvider == null) { + unaryNegationExpressionItemProvider = new UnaryNegationExpressionItemProvider(this); + } + + return unaryNegationExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression} instances. + * + * + * @generated + */ + protected UnaryFirstExpressionItemProvider unaryFirstExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression}. + * + * + * @generated + */ + @Override + public Adapter createUnaryFirstExpressionAdapter() { + if (unaryFirstExpressionItemProvider == null) { + unaryFirstExpressionItemProvider = new UnaryFirstExpressionItemProvider(this); + } + + return unaryFirstExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression} instances. + * + * + * @generated + */ + protected UnaryLengthExpressionItemProvider unaryLengthExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression}. + * + * + * @generated + */ + @Override + public Adapter createUnaryLengthExpressionAdapter() { + if (unaryLengthExpressionItemProvider == null) { + unaryLengthExpressionItemProvider = new UnaryLengthExpressionItemProvider(this); + } + + return unaryLengthExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression} instances. + * + * + * @generated + */ + protected UnaryCoerceExpressionItemProvider unaryCoerceExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression}. + * + * + * @generated + */ + @Override + public Adapter createUnaryCoerceExpressionAdapter() { + if (unaryCoerceExpressionItemProvider == null) { + unaryCoerceExpressionItemProvider = new UnaryCoerceExpressionItemProvider(this); + } + + return unaryCoerceExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryFullExpression} instances. + * + * + * @generated + */ + protected UnaryFullExpressionItemProvider unaryFullExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryFullExpression}. + * + * + * @generated + */ + @Override + public Adapter createUnaryFullExpressionAdapter() { + if (unaryFullExpressionItemProvider == null) { + unaryFullExpressionItemProvider = new UnaryFullExpressionItemProvider(this); + } + + return unaryFullExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression} instances. + * + * + * @generated + */ + protected UnaryDeQueueExpressionItemProvider unaryDeQueueExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression}. + * + * + * @generated + */ + @Override + public Adapter createUnaryDeQueueExpressionAdapter() { + if (unaryDeQueueExpressionItemProvider == null) { + unaryDeQueueExpressionItemProvider = new UnaryDeQueueExpressionItemProvider(this); + } + + return unaryDeQueueExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression} instances. + * + * + * @generated + */ + protected UnaryEmptyExpressionItemProvider unaryEmptyExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression}. + * + * + * @generated + */ + @Override + public Adapter createUnaryEmptyExpressionAdapter() { + if (unaryEmptyExpressionItemProvider == null) { + unaryEmptyExpressionItemProvider = new UnaryEmptyExpressionItemProvider(this); + } + + return unaryEmptyExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Projection} instances. + * + * + * @generated + */ + protected ProjectionItemProvider projectionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Projection}. + * + * + * @generated + */ + @Override + public Adapter createProjectionAdapter() { + if (projectionItemProvider == null) { + projectionItemProvider = new ProjectionItemProvider(this); + } + + return projectionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConstructionExpression} instances. + * + * + * @generated + */ + protected ConstructionExpressionItemProvider constructionExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstructionExpression}. + * + * + * @generated + */ + @Override + public Adapter createConstructionExpressionAdapter() { + if (constructionExpressionItemProvider == null) { + constructionExpressionItemProvider = new ConstructionExpressionItemProvider(this); + } + + return constructionExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression} instances. + * + * + * @generated + */ + protected ArrayAccessExpressionItemProvider arrayAccessExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression}. + * + * + * @generated + */ + @Override + public Adapter createArrayAccessExpressionAdapter() { + if (arrayAccessExpressionItemProvider == null) { + arrayAccessExpressionItemProvider = new ArrayAccessExpressionItemProvider(this); + } + + return arrayAccessExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression} instances. + * + * + * @generated + */ + protected RecordAccessExpressionItemProvider recordAccessExpressionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression}. + * + * + * @generated + */ + @Override + public Adapter createRecordAccessExpressionAdapter() { + if (recordAccessExpressionItemProvider == null) { + recordAccessExpressionItemProvider = new RecordAccessExpressionItemProvider(this); + } + + return recordAccessExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TrueLiteral} instances. + * + * + * @generated + */ + protected TrueLiteralItemProvider trueLiteralItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TrueLiteral}. + * + * + * @generated + */ + @Override + public Adapter createTrueLiteralAdapter() { + if (trueLiteralItemProvider == null) { + trueLiteralItemProvider = new TrueLiteralItemProvider(this); + } + + return trueLiteralItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.FalseLiteral} instances. + * + * + * @generated + */ + protected FalseLiteralItemProvider falseLiteralItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.FalseLiteral}. + * + * + * @generated + */ + @Override + public Adapter createFalseLiteralAdapter() { + if (falseLiteralItemProvider == null) { + falseLiteralItemProvider = new FalseLiteralItemProvider(this); + } + + return falseLiteralItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AllProperty} instances. + * + * + * @generated + */ + protected AllPropertyItemProvider allPropertyItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AllProperty}. + * + * + * @generated + */ + @Override + public Adapter createAllPropertyAdapter() { + if (allPropertyItemProvider == null) { + allPropertyItemProvider = new AllPropertyItemProvider(this); + } + + return allPropertyItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ExistsProperty} instances. + * + * + * @generated + */ + protected ExistsPropertyItemProvider existsPropertyItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExistsProperty}. + * + * + * @generated + */ + @Override + public Adapter createExistsPropertyAdapter() { + if (existsPropertyItemProvider == null) { + existsPropertyItemProvider = new ExistsPropertyItemProvider(this); + } + + return existsPropertyItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction} instances. + * + * + * @generated + */ + protected PropertyDisjunctionItemProvider propertyDisjunctionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction}. + * + * + * @generated + */ + @Override + public Adapter createPropertyDisjunctionAdapter() { + if (propertyDisjunctionItemProvider == null) { + propertyDisjunctionItemProvider = new PropertyDisjunctionItemProvider(this); + } + + return propertyDisjunctionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyImplication} instances. + * + * + * @generated + */ + protected PropertyImplicationItemProvider propertyImplicationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyImplication}. + * + * + * @generated + */ + @Override + public Adapter createPropertyImplicationAdapter() { + if (propertyImplicationItemProvider == null) { + propertyImplicationItemProvider = new PropertyImplicationItemProvider(this); + } + + return propertyImplicationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction} instances. + * + * + * @generated + */ + protected PropertyConjunctionItemProvider propertyConjunctionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction}. + * + * + * @generated + */ + @Override + public Adapter createPropertyConjunctionAdapter() { + if (propertyConjunctionItemProvider == null) { + propertyConjunctionItemProvider = new PropertyConjunctionItemProvider(this); + } + + return propertyConjunctionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyNegation} instances. + * + * + * @generated + */ + protected PropertyNegationItemProvider propertyNegationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyNegation}. + * + * + * @generated + */ + @Override + public Adapter createPropertyNegationAdapter() { + if (propertyNegationItemProvider == null) { + propertyNegationItemProvider = new PropertyNegationItemProvider(this); + } + + return propertyNegationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern} instances. + * + * + * @generated + */ + protected LeadsToPatternItemProvider leadsToPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern}. + * + * + * @generated + */ + @Override + public Adapter createLeadsToPatternAdapter() { + if (leadsToPatternItemProvider == null) { + leadsToPatternItemProvider = new LeadsToPatternItemProvider(this); + } + + return leadsToPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern} instances. + * + * + * @generated + */ + protected PrecedesPatternItemProvider precedesPatternItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern}. + * + * + * @generated + */ + @Override + public Adapter createPrecedesPatternAdapter() { + if (precedesPatternItemProvider == null) { + precedesPatternItemProvider = new PrecedesPatternItemProvider(this); + } + + return precedesPatternItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLAll} instances. + * + * + * @generated + */ + protected LTLAllItemProvider ltlAllItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLAll}. + * + * + * @generated + */ + @Override + public Adapter createLTLAllAdapter() { + if (ltlAllItemProvider == null) { + ltlAllItemProvider = new LTLAllItemProvider(this); + } + + return ltlAllItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLExists} instances. + * + * + * @generated + */ + protected LTLExistsItemProvider ltlExistsItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLExists}. + * + * + * @generated + */ + @Override + public Adapter createLTLExistsAdapter() { + if (ltlExistsItemProvider == null) { + ltlExistsItemProvider = new LTLExistsItemProvider(this); + } + + return ltlExistsItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction} instances. + * + * + * @generated + */ + protected LTLDisjunctionItemProvider ltlDisjunctionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction}. + * + * + * @generated + */ + @Override + public Adapter createLTLDisjunctionAdapter() { + if (ltlDisjunctionItemProvider == null) { + ltlDisjunctionItemProvider = new LTLDisjunctionItemProvider(this); + } + + return ltlDisjunctionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLImplication} instances. + * + * + * @generated + */ + protected LTLImplicationItemProvider ltlImplicationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLImplication}. + * + * + * @generated + */ + @Override + public Adapter createLTLImplicationAdapter() { + if (ltlImplicationItemProvider == null) { + ltlImplicationItemProvider = new LTLImplicationItemProvider(this); + } + + return ltlImplicationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLConjunction} instances. + * + * + * @generated + */ + protected LTLConjunctionItemProvider ltlConjunctionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLConjunction}. + * + * + * @generated + */ + @Override + public Adapter createLTLConjunctionAdapter() { + if (ltlConjunctionItemProvider == null) { + ltlConjunctionItemProvider = new LTLConjunctionItemProvider(this); + } + + return ltlConjunctionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLUntil} instances. + * + * + * @generated + */ + protected LTLUntilItemProvider ltlUntilItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUntil}. + * + * + * @generated + */ + @Override + public Adapter createLTLUntilAdapter() { + if (ltlUntilItemProvider == null) { + ltlUntilItemProvider = new LTLUntilItemProvider(this); + } + + return ltlUntilItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLRelease} instances. + * + * + * @generated + */ + protected LTLReleaseItemProvider ltlReleaseItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLRelease}. + * + * + * @generated + */ + @Override + public Adapter createLTLReleaseAdapter() { + if (ltlReleaseItemProvider == null) { + ltlReleaseItemProvider = new LTLReleaseItemProvider(this); + } + + return ltlReleaseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation} instances. + * + * + * @generated + */ + protected LTLUnaryNegationItemProvider ltlUnaryNegationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation}. + * + * + * @generated + */ + @Override + public Adapter createLTLUnaryNegationAdapter() { + if (ltlUnaryNegationItemProvider == null) { + ltlUnaryNegationItemProvider = new LTLUnaryNegationItemProvider(this); + } + + return ltlUnaryNegationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNext} instances. + * + * + * @generated + */ + protected LTLUnaryNextItemProvider ltlUnaryNextItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNext}. + * + * + * @generated + */ + @Override + public Adapter createLTLUnaryNextAdapter() { + if (ltlUnaryNextItemProvider == null) { + ltlUnaryNextItemProvider = new LTLUnaryNextItemProvider(this); + } + + return ltlUnaryNextItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways} instances. + * + * + * @generated + */ + protected LTLUnaryAlwaysItemProvider ltlUnaryAlwaysItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways}. + * + * + * @generated + */ + @Override + public Adapter createLTLUnaryAlwaysAdapter() { + if (ltlUnaryAlwaysItemProvider == null) { + ltlUnaryAlwaysItemProvider = new LTLUnaryAlwaysItemProvider(this); + } + + return ltlUnaryAlwaysItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually} instances. + * + * + * @generated + */ + protected LTLUnaryEventuallyItemProvider ltlUnaryEventuallyItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually}. + * + * + * @generated + */ + @Override + public Adapter createLTLUnaryEventuallyAdapter() { + if (ltlUnaryEventuallyItemProvider == null) { + ltlUnaryEventuallyItemProvider = new LTLUnaryEventuallyItemProvider(this); + } + + return ltlUnaryEventuallyItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLVariable} instances. + * + * + * @generated + */ + protected LTLVariableItemProvider ltlVariableItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLVariable}. + * + * + * @generated + */ + @Override + public Adapter createLTLVariableAdapter() { + if (ltlVariableItemProvider == null) { + ltlVariableItemProvider = new LTLVariableItemProvider(this); + } + + return ltlVariableItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction} instances. + * + * + * @generated + */ + protected ObservableDisjunctionItemProvider observableDisjunctionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction}. + * + * + * @generated + */ + @Override + public Adapter createObservableDisjunctionAdapter() { + if (observableDisjunctionItemProvider == null) { + observableDisjunctionItemProvider = new ObservableDisjunctionItemProvider(this); + } + + return observableDisjunctionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ObservableImplication} instances. + * + * + * @generated + */ + protected ObservableImplicationItemProvider observableImplicationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableImplication}. + * + * + * @generated + */ + @Override + public Adapter createObservableImplicationAdapter() { + if (observableImplicationItemProvider == null) { + observableImplicationItemProvider = new ObservableImplicationItemProvider(this); + } + + return observableImplicationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction} instances. + * + * + * @generated + */ + protected ObservableConjunctionItemProvider observableConjunctionItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction}. + * + * + * @generated + */ + @Override + public Adapter createObservableConjunctionAdapter() { + if (observableConjunctionItemProvider == null) { + observableConjunctionItemProvider = new ObservableConjunctionItemProvider(this); + } + + return observableConjunctionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ObservableNegation} instances. + * + * + * @generated + */ + protected ObservableNegationItemProvider observableNegationItemProvider; + + /** + * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableNegation}. + * + * + * @generated + */ + @Override + public Adapter createObservableNegationAdapter() { + if (observableNegationItemProvider == null) { + observableNegationItemProvider = new ObservableNegationItemProvider(this); + } + + return observableNegationItemProvider; + } + + /** + * 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 (modelItemProvider != null) modelItemProvider.dispose(); + if (rootDeclarationItemProvider != null) rootDeclarationItemProvider.dispose(); + if (rootItemProvider != null) rootItemProvider.dispose(); + if (namedElementItemProvider != null) namedElementItemProvider.dispose(); + if (typeDeclarationUseItemProvider != null) typeDeclarationUseItemProvider.dispose(); + if (constantDeclarationUseItemProvider != null) constantDeclarationUseItemProvider.dispose(); + if (expressionDeclarationUseItemProvider != null) expressionDeclarationUseItemProvider.dispose(); + if (referenceDeclarationUseItemProvider != null) referenceDeclarationUseItemProvider.dispose(); + if (unionTagDeclarationUseItemProvider != null) unionTagDeclarationUseItemProvider.dispose(); + if (recordFieldDeclarationUseItemProvider != null) recordFieldDeclarationUseItemProvider.dispose(); + if (patternDeclarationUseItemProvider != null) patternDeclarationUseItemProvider.dispose(); + if (boundDeclarationUseItemProvider != null) boundDeclarationUseItemProvider.dispose(); + if (pathDeclarationUseItemProvider != null) pathDeclarationUseItemProvider.dispose(); + if (propertyDeclarationUseItemProvider != null) propertyDeclarationUseItemProvider.dispose(); + if (importDeclarationItemProvider != null) importDeclarationItemProvider.dispose(); + if (declarationItemProvider != null) declarationItemProvider.dispose(); + if (parameterizedDeclarationItemProvider != null) parameterizedDeclarationItemProvider.dispose(); + if (functionDeclarationItemProvider != null) functionDeclarationItemProvider.dispose(); + if (typeDeclarationItemProvider != null) typeDeclarationItemProvider.dispose(); + if (channelDeclarationItemProvider != null) channelDeclarationItemProvider.dispose(); + if (channelTypeItemProvider != null) channelTypeItemProvider.dispose(); + if (typeItemProvider != null) typeItemProvider.dispose(); + if (basicTypeItemProvider != null) basicTypeItemProvider.dispose(); + if (rangeTypeItemProvider != null) rangeTypeItemProvider.dispose(); + if (unionTypeItemProvider != null) unionTypeItemProvider.dispose(); + if (unionTagsItemProvider != null) unionTagsItemProvider.dispose(); + if (unionTagDeclarationItemProvider != null) unionTagDeclarationItemProvider.dispose(); + if (recordTypeItemProvider != null) recordTypeItemProvider.dispose(); + if (recordFieldsItemProvider != null) recordFieldsItemProvider.dispose(); + if (recordFieldDeclarationItemProvider != null) recordFieldDeclarationItemProvider.dispose(); + if (queueTypeItemProvider != null) queueTypeItemProvider.dispose(); + if (arrayTypeItemProvider != null) arrayTypeItemProvider.dispose(); + if (referencedTypeItemProvider != null) referencedTypeItemProvider.dispose(); + if (constantDeclarationItemProvider != null) constantDeclarationItemProvider.dispose(); + if (processDeclarationItemProvider != null) processDeclarationItemProvider.dispose(); + if (stateDeclarationItemProvider != null) stateDeclarationItemProvider.dispose(); + if (transitionSourceItemProvider != null) transitionSourceItemProvider.dispose(); + if (transitionItemProvider != null) transitionItemProvider.dispose(); + if (componentDeclarationItemProvider != null) componentDeclarationItemProvider.dispose(); + if (portsDeclarationItemProvider != null) portsDeclarationItemProvider.dispose(); + if (portDeclarationItemProvider != null) portDeclarationItemProvider.dispose(); + if (localPortsDeclarationItemProvider != null) localPortsDeclarationItemProvider.dispose(); + if (parametersDeclarationItemProvider != null) parametersDeclarationItemProvider.dispose(); + if (parameterDeclarationItemProvider != null) parameterDeclarationItemProvider.dispose(); + if (variablesDeclarationItemProvider != null) variablesDeclarationItemProvider.dispose(); + if (variableDeclarationItemProvider != null) variableDeclarationItemProvider.dispose(); + if (priorityDeclarationItemProvider != null) priorityDeclarationItemProvider.dispose(); + if (priorityGroupItemProvider != null) priorityGroupItemProvider.dispose(); + if (statementItemProvider != null) statementItemProvider.dispose(); + if (blockStatementItemProvider != null) blockStatementItemProvider.dispose(); + if (returnStatementItemProvider != null) returnStatementItemProvider.dispose(); + if (nullStatementItemProvider != null) nullStatementItemProvider.dispose(); + if (taggedStatementItemProvider != null) taggedStatementItemProvider.dispose(); + if (patternStatementItemProvider != null) patternStatementItemProvider.dispose(); + if (patternItemProvider != null) patternItemProvider.dispose(); + if (anyPatternItemProvider != null) anyPatternItemProvider.dispose(); + if (constantPatternItemProvider != null) constantPatternItemProvider.dispose(); + if (integerPatternItemProvider != null) integerPatternItemProvider.dispose(); + if (identifierPatternItemProvider != null) identifierPatternItemProvider.dispose(); + if (conditionalStatementItemProvider != null) conditionalStatementItemProvider.dispose(); + if (extendedConditionalStatementItemProvider != null) extendedConditionalStatementItemProvider.dispose(); + if (selectStatementItemProvider != null) selectStatementItemProvider.dispose(); + if (whileStatementItemProvider != null) whileStatementItemProvider.dispose(); + if (foreachStatementItemProvider != null) foreachStatementItemProvider.dispose(); + if (toStatementItemProvider != null) toStatementItemProvider.dispose(); + if (caseStatementItemProvider != null) caseStatementItemProvider.dispose(); + if (loopStatementItemProvider != null) loopStatementItemProvider.dispose(); + if (onStatementItemProvider != null) onStatementItemProvider.dispose(); + if (waitStatementItemProvider != null) waitStatementItemProvider.dispose(); + if (compositionItemProvider != null) compositionItemProvider.dispose(); + if (blockItemProvider != null) blockItemProvider.dispose(); + if (compositeBlockItemProvider != null) compositeBlockItemProvider.dispose(); + if (instanceDeclarationItemProvider != null) instanceDeclarationItemProvider.dispose(); + if (portSetItemProvider != null) portSetItemProvider.dispose(); + if (componentInstanceItemProvider != null) componentInstanceItemProvider.dispose(); + if (expressionItemProvider != null) expressionItemProvider.dispose(); + if (valueExpressionItemProvider != null) valueExpressionItemProvider.dispose(); + if (referenceExpressionItemProvider != null) referenceExpressionItemProvider.dispose(); + if (identifierExpressionItemProvider != null) identifierExpressionItemProvider.dispose(); + if (recordExpressionItemProvider != null) recordExpressionItemProvider.dispose(); + if (fieldExpressionItemProvider != null) fieldExpressionItemProvider.dispose(); + if (arrayExpressionItemProvider != null) arrayExpressionItemProvider.dispose(); + if (queueExpressionItemProvider != null) queueExpressionItemProvider.dispose(); + if (enqueueExpressionItemProvider != null) enqueueExpressionItemProvider.dispose(); + if (appendExpressionItemProvider != null) appendExpressionItemProvider.dispose(); + if (literalExpressionItemProvider != null) literalExpressionItemProvider.dispose(); + if (booleanLiteralItemProvider != null) booleanLiteralItemProvider.dispose(); + if (naturalLiteralItemProvider != null) naturalLiteralItemProvider.dispose(); + if (lowerBoundItemProvider != null) lowerBoundItemProvider.dispose(); + if (upperBoundItemProvider != null) upperBoundItemProvider.dispose(); + if (naturalLowerBoundItemProvider != null) naturalLowerBoundItemProvider.dispose(); + if (naturalUpperBoundItemProvider != null) naturalUpperBoundItemProvider.dispose(); + if (decimalLowerBoundItemProvider != null) decimalLowerBoundItemProvider.dispose(); + if (decimalUpperBoundItemProvider != null) decimalUpperBoundItemProvider.dispose(); + if (variableLowerBoundItemProvider != null) variableLowerBoundItemProvider.dispose(); + if (variableUpperBoundItemProvider != null) variableUpperBoundItemProvider.dispose(); + if (infiniteUpperBoundItemProvider != null) infiniteUpperBoundItemProvider.dispose(); + if (requirementItemProvider != null) requirementItemProvider.dispose(); + if (propertyDeclarationItemProvider != null) propertyDeclarationItemProvider.dispose(); + if (propertyItemProvider != null) propertyItemProvider.dispose(); + if (patternPropertyItemProvider != null) patternPropertyItemProvider.dispose(); + if (ltlPatternItemProvider != null) ltlPatternItemProvider.dispose(); + if (deadlockFreePatternItemProvider != null) deadlockFreePatternItemProvider.dispose(); + if (infinitelyOftenPatternItemProvider != null) infinitelyOftenPatternItemProvider.dispose(); + if (mortalPatternItemProvider != null) mortalPatternItemProvider.dispose(); + if (presencePatternItemProvider != null) presencePatternItemProvider.dispose(); + if (absencePatternItemProvider != null) absencePatternItemProvider.dispose(); + if (alwaysPatternItemProvider != null) alwaysPatternItemProvider.dispose(); + if (sequencePatternItemProvider != null) sequencePatternItemProvider.dispose(); + if (ltlPropertyItemProvider != null) ltlPropertyItemProvider.dispose(); + if (stateEventItemProvider != null) stateEventItemProvider.dispose(); + if (enterStateEventItemProvider != null) enterStateEventItemProvider.dispose(); + if (leaveStateEventItemProvider != null) leaveStateEventItemProvider.dispose(); + if (observableItemProvider != null) observableItemProvider.dispose(); + if (observableEventItemProvider != null) observableEventItemProvider.dispose(); + if (pathEventItemProvider != null) pathEventItemProvider.dispose(); + if (pathItemProvider != null) pathItemProvider.dispose(); + if (pathItemItemProvider != null) pathItemItemProvider.dispose(); + if (naturalItemItemProvider != null) naturalItemItemProvider.dispose(); + if (namedItemItemProvider != null) namedItemItemProvider.dispose(); + if (subjectItemProvider != null) subjectItemProvider.dispose(); + if (stateSubjectItemProvider != null) stateSubjectItemProvider.dispose(); + if (valueSubjectItemProvider != null) valueSubjectItemProvider.dispose(); + if (tagSubjectItemProvider != null) tagSubjectItemProvider.dispose(); + if (eventSubjectItemProvider != null) eventSubjectItemProvider.dispose(); + if (tupleTypeItemProvider != null) tupleTypeItemProvider.dispose(); + if (naturalTypeItemProvider != null) naturalTypeItemProvider.dispose(); + if (integerTypeItemProvider != null) integerTypeItemProvider.dispose(); + if (booleanTypeItemProvider != null) booleanTypeItemProvider.dispose(); + if (unlessStatementItemProvider != null) unlessStatementItemProvider.dispose(); + if (statementChoiceItemProvider != null) statementChoiceItemProvider.dispose(); + if (statementSequenceItemProvider != null) statementSequenceItemProvider.dispose(); + if (assignStatementItemProvider != null) assignStatementItemProvider.dispose(); + if (assignAnyStatementItemProvider != null) assignAnyStatementItemProvider.dispose(); + if (sendStatementItemProvider != null) sendStatementItemProvider.dispose(); + if (receiveStatementItemProvider != null) receiveStatementItemProvider.dispose(); + if (constructorPatternItemProvider != null) constructorPatternItemProvider.dispose(); + if (arrayAccessPatternItemProvider != null) arrayAccessPatternItemProvider.dispose(); + if (recordAccessPatternItemProvider != null) recordAccessPatternItemProvider.dispose(); + if (allExpressionItemProvider != null) allExpressionItemProvider.dispose(); + if (existsExpressionItemProvider != null) existsExpressionItemProvider.dispose(); + if (conditionalItemProvider != null) conditionalItemProvider.dispose(); + if (disjunctionItemProvider != null) disjunctionItemProvider.dispose(); + if (implicationItemProvider != null) implicationItemProvider.dispose(); + if (conjunctionItemProvider != null) conjunctionItemProvider.dispose(); + if (comparisonEqualItemProvider != null) comparisonEqualItemProvider.dispose(); + if (comparisonNotEqualItemProvider != null) comparisonNotEqualItemProvider.dispose(); + if (comparisonLesserItemProvider != null) comparisonLesserItemProvider.dispose(); + if (comparisonLesserEqualItemProvider != null) comparisonLesserEqualItemProvider.dispose(); + if (comparisonGreaterItemProvider != null) comparisonGreaterItemProvider.dispose(); + if (comparisonGreaterEqualItemProvider != null) comparisonGreaterEqualItemProvider.dispose(); + if (additionItemProvider != null) additionItemProvider.dispose(); + if (substractionItemProvider != null) substractionItemProvider.dispose(); + if (multiplicationItemProvider != null) multiplicationItemProvider.dispose(); + if (divisionItemProvider != null) divisionItemProvider.dispose(); + if (moduloItemProvider != null) moduloItemProvider.dispose(); + if (unaryPlusExpressionItemProvider != null) unaryPlusExpressionItemProvider.dispose(); + if (unaryMinusExpressionItemProvider != null) unaryMinusExpressionItemProvider.dispose(); + if (unaryNegationExpressionItemProvider != null) unaryNegationExpressionItemProvider.dispose(); + if (unaryFirstExpressionItemProvider != null) unaryFirstExpressionItemProvider.dispose(); + if (unaryLengthExpressionItemProvider != null) unaryLengthExpressionItemProvider.dispose(); + if (unaryCoerceExpressionItemProvider != null) unaryCoerceExpressionItemProvider.dispose(); + if (unaryFullExpressionItemProvider != null) unaryFullExpressionItemProvider.dispose(); + if (unaryDeQueueExpressionItemProvider != null) unaryDeQueueExpressionItemProvider.dispose(); + if (unaryEmptyExpressionItemProvider != null) unaryEmptyExpressionItemProvider.dispose(); + if (projectionItemProvider != null) projectionItemProvider.dispose(); + if (constructionExpressionItemProvider != null) constructionExpressionItemProvider.dispose(); + if (arrayAccessExpressionItemProvider != null) arrayAccessExpressionItemProvider.dispose(); + if (recordAccessExpressionItemProvider != null) recordAccessExpressionItemProvider.dispose(); + if (trueLiteralItemProvider != null) trueLiteralItemProvider.dispose(); + if (falseLiteralItemProvider != null) falseLiteralItemProvider.dispose(); + if (allPropertyItemProvider != null) allPropertyItemProvider.dispose(); + if (existsPropertyItemProvider != null) existsPropertyItemProvider.dispose(); + if (propertyDisjunctionItemProvider != null) propertyDisjunctionItemProvider.dispose(); + if (propertyImplicationItemProvider != null) propertyImplicationItemProvider.dispose(); + if (propertyConjunctionItemProvider != null) propertyConjunctionItemProvider.dispose(); + if (propertyNegationItemProvider != null) propertyNegationItemProvider.dispose(); + if (leadsToPatternItemProvider != null) leadsToPatternItemProvider.dispose(); + if (precedesPatternItemProvider != null) precedesPatternItemProvider.dispose(); + if (ltlAllItemProvider != null) ltlAllItemProvider.dispose(); + if (ltlExistsItemProvider != null) ltlExistsItemProvider.dispose(); + if (ltlDisjunctionItemProvider != null) ltlDisjunctionItemProvider.dispose(); + if (ltlImplicationItemProvider != null) ltlImplicationItemProvider.dispose(); + if (ltlConjunctionItemProvider != null) ltlConjunctionItemProvider.dispose(); + if (ltlUntilItemProvider != null) ltlUntilItemProvider.dispose(); + if (ltlReleaseItemProvider != null) ltlReleaseItemProvider.dispose(); + if (ltlUnaryNegationItemProvider != null) ltlUnaryNegationItemProvider.dispose(); + if (ltlUnaryNextItemProvider != null) ltlUnaryNextItemProvider.dispose(); + if (ltlUnaryAlwaysItemProvider != null) ltlUnaryAlwaysItemProvider.dispose(); + if (ltlUnaryEventuallyItemProvider != null) ltlUnaryEventuallyItemProvider.dispose(); + if (ltlVariableItemProvider != null) ltlVariableItemProvider.dispose(); + if (observableDisjunctionItemProvider != null) observableDisjunctionItemProvider.dispose(); + if (observableImplicationItemProvider != null) observableImplicationItemProvider.dispose(); + if (observableConjunctionItemProvider != null) observableConjunctionItemProvider.dispose(); + if (observableNegationItemProvider != null) observableNegationItemProvider.dispose(); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FieldExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FieldExpressionItemProvider.java new file mode 100644 index 0000000..69ce24b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FieldExpressionItemProvider.java @@ -0,0 +1,413 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.FieldExpression; + +import java.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.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.FieldExpression} object. + * + * + * @generated + */ +public class FieldExpressionItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public FieldExpressionItemProvider(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); + + addFieldPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Field feature. + * + * + * @generated + */ + protected void addFieldPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_FieldExpression_field_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_FieldExpression_field_feature", "_UI_FieldExpression_type"), + FiacrePackage.eINSTANCE.getFieldExpression_Field(), + 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(FiacrePackage.eINSTANCE.getFieldExpression_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 FieldExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/FieldExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_FieldExpression_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(FieldExpression.class)) { + case FiacrePackage.FIELD_EXPRESSION__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 + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFieldExpression_Value(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ForeachStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ForeachStatementItemProvider.java new file mode 100644 index 0000000..43eb1fc --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ForeachStatementItemProvider.java @@ -0,0 +1,305 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ForeachStatement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ForeachStatement} object. + * + * + * @generated + */ +public class ForeachStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ForeachStatementItemProvider(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(FiacrePackage.eINSTANCE.getForeachStatement_Variable()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getForeachStatement_Body()); + } + 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 ForeachStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ForeachStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ForeachStatement_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(ForeachStatement.class)) { + case FiacrePackage.FOREACH_STATEMENT__VARIABLE: + case FiacrePackage.FOREACH_STATEMENT__BODY: + 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 + (FiacrePackage.eINSTANCE.getForeachStatement_Variable(), + FiacreFactory.eINSTANCE.createVariableDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getForeachStatement_Body(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FunctionDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FunctionDeclarationItemProvider.java new file mode 100644 index 0000000..9ba19a6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/FunctionDeclarationItemProvider.java @@ -0,0 +1,405 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.FunctionDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration} object. + * + * + * @generated + */ +public class FunctionDeclarationItemProvider extends ExpressionDeclarationUseItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public FunctionDeclarationItemProvider(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"), + FiacrePackage.eINSTANCE.getNamedElement_Name(), + 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(FiacrePackage.eINSTANCE.getParameterizedDeclaration_Parameters()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getParameterizedDeclaration_Variables()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getFunctionDeclaration_Type()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement()); + } + 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 FunctionDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/FunctionDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((FunctionDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_FunctionDeclaration_type") : + getString("_UI_FunctionDeclaration_type") + " " + label; + } + + + /** + * This 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(FunctionDeclaration.class)) { + case FiacrePackage.FUNCTION_DECLARATION__NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.FUNCTION_DECLARATION__PARAMETERS: + case FiacrePackage.FUNCTION_DECLARATION__VARIABLES: + case FiacrePackage.FUNCTION_DECLARATION__TYPE: + case FiacrePackage.FUNCTION_DECLARATION__STATEMENT: + 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 + (FiacrePackage.eINSTANCE.getParameterizedDeclaration_Parameters(), + FiacreFactory.eINSTANCE.createParametersDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterizedDeclaration_Variables(), + FiacreFactory.eINSTANCE.createVariablesDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Type(), + FiacreFactory.eINSTANCE.createBooleanType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getFunctionDeclaration_Statement(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IdentifierExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IdentifierExpressionItemProvider.java new file mode 100644 index 0000000..be57561 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IdentifierExpressionItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.IdentifierExpression} object. + * + * + * @generated + */ +public class IdentifierExpressionItemProvider extends ValueExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public IdentifierExpressionItemProvider(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); + + addDeclarationPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Declaration feature. + * + * + * @generated + */ + protected void addDeclarationPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_IdentifierExpression_declaration_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_IdentifierExpression_declaration_feature", "_UI_IdentifierExpression_type"), + FiacrePackage.eINSTANCE.getIdentifierExpression_Declaration(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns IdentifierExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IdentifierExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_IdentifierExpression_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IdentifierPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IdentifierPatternItemProvider.java new file mode 100644 index 0000000..bfc5b71 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IdentifierPatternItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.IdentifierPattern} object. + * + * + * @generated + */ +public class IdentifierPatternItemProvider extends PatternItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public IdentifierPatternItemProvider(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); + + addDeclarationPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Declaration feature. + * + * + * @generated + */ + protected void addDeclarationPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_IdentifierPattern_declaration_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_IdentifierPattern_declaration_feature", "_UI_IdentifierPattern_type"), + FiacrePackage.eINSTANCE.getIdentifierPattern_Declaration(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns IdentifierPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IdentifierPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_IdentifierPattern_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ImplicationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ImplicationItemProvider.java new file mode 100644 index 0000000..a606365 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ImplicationItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Implication; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Implication} object. + * + * + * @generated + */ +public class ImplicationItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ImplicationItemProvider(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(FiacrePackage.eINSTANCE.getImplication_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getImplication_Right()); + } + 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 Implication.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Implication")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Implication_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(Implication.class)) { + case FiacrePackage.IMPLICATION__LEFT: + case FiacrePackage.IMPLICATION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getImplication_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getImplication_Left() || + childFeature == FiacrePackage.eINSTANCE.getImplication_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ImportDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ImportDeclarationItemProvider.java new file mode 100644 index 0000000..7a1c866 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ImportDeclarationItemProvider.java @@ -0,0 +1,169 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ImportDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration} object. + * + * + * @generated + */ +public class ImportDeclarationItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ImportDeclarationItemProvider(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); + + addImportURIPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Import URI feature. + * + * + * @generated + */ + protected void addImportURIPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ImportDeclaration_importURI_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ImportDeclaration_importURI_feature", "_UI_ImportDeclaration_type"), + FiacrePackage.eINSTANCE.getImportDeclaration_ImportURI(), + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns ImportDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ImportDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ImportDeclaration)object).getImportURI(); + return label == null || label.length() == 0 ? + getString("_UI_ImportDeclaration_type") : + getString("_UI_ImportDeclaration_type") + " " + label; + } + + + /** + * This 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(ImportDeclaration.class)) { + case FiacrePackage.IMPORT_DECLARATION__IMPORT_URI: + 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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InfiniteUpperBoundItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InfiniteUpperBoundItemProvider.java new file mode 100644 index 0000000..b5df4a5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InfiniteUpperBoundItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound} object. + * + * + * @generated + */ +public class InfiniteUpperBoundItemProvider extends UpperBoundItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public InfiniteUpperBoundItemProvider(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 InfiniteUpperBound.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/InfiniteUpperBound")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_InfiniteUpperBound_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InfinitelyOftenPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InfinitelyOftenPatternItemProvider.java new file mode 100644 index 0000000..d4e889e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InfinitelyOftenPatternItemProvider.java @@ -0,0 +1,198 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern} object. + * + * + * @generated + */ +public class InfinitelyOftenPatternItemProvider extends PatternPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public InfinitelyOftenPatternItemProvider(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(FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject()); + } + 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 InfinitelyOftenPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/InfinitelyOftenPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_InfinitelyOftenPattern_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(InfinitelyOftenPattern.class)) { + case FiacrePackage.INFINITELY_OFTEN_PATTERN__SUBJECT: + 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 + (FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InstanceDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InstanceDeclarationItemProvider.java new file mode 100644 index 0000000..3d1e7e0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/InstanceDeclarationItemProvider.java @@ -0,0 +1,160 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.InstanceDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.InstanceDeclaration} object. + * + * + * @generated + */ +public class InstanceDeclarationItemProvider extends PathDeclarationUseItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public InstanceDeclarationItemProvider(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(FiacrePackage.eINSTANCE.getBlock_Local()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getInstanceDeclaration_Instance()); + } + 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 InstanceDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/InstanceDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_InstanceDeclaration_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(InstanceDeclaration.class)) { + case FiacrePackage.INSTANCE_DECLARATION__LOCAL: + case FiacrePackage.INSTANCE_DECLARATION__INSTANCE: + 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 + (FiacrePackage.eINSTANCE.getBlock_Local(), + FiacreFactory.eINSTANCE.createPortSet())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getInstanceDeclaration_Instance(), + FiacreFactory.eINSTANCE.createComponentInstance())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IntegerPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IntegerPatternItemProvider.java new file mode 100644 index 0000000..a7d870f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IntegerPatternItemProvider.java @@ -0,0 +1,165 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.IntegerPattern; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.IntegerPattern} object. + * + * + * @generated + */ +public class IntegerPatternItemProvider extends PatternItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public IntegerPatternItemProvider(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); + + addNegativePropertyDescriptor(object); + addValuePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Negative feature. + * + * + * @generated + */ + protected void addNegativePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_IntegerPattern_negative_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_IntegerPattern_negative_feature", "_UI_IntegerPattern_type"), + FiacrePackage.eINSTANCE.getIntegerPattern_Negative(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Value feature. + * + * + * @generated + */ + protected void addValuePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_IntegerPattern_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_IntegerPattern_value_feature", "_UI_IntegerPattern_type"), + FiacrePackage.eINSTANCE.getIntegerPattern_Value(), + true, + false, + false, + ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns IntegerPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IntegerPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + IntegerPattern integerPattern = (IntegerPattern)object; + return getString("_UI_IntegerPattern_type") + " " + integerPattern.isNegative(); + } + + + /** + * This 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(IntegerPattern.class)) { + case FiacrePackage.INTEGER_PATTERN__NEGATIVE: + case FiacrePackage.INTEGER_PATTERN__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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IntegerTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IntegerTypeItemProvider.java new file mode 100644 index 0000000..98f0b58 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/IntegerTypeItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.IntegerType} object. + * + * + * @generated + */ +public class IntegerTypeItemProvider extends BasicTypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public IntegerTypeItemProvider(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 IntegerType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IntegerType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_IntegerType_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLAllItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLAllItemProvider.java new file mode 100644 index 0000000..a8c8787 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLAllItemProvider.java @@ -0,0 +1,252 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLAll; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLAll} object. + * + * + * @generated + */ +public class LTLAllItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLAllItemProvider(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(FiacrePackage.eINSTANCE.getLTLAll_Index()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLTLAll_Type()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLTLAll_Child()); + } + 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 LTLAll.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLAll")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLAll_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(LTLAll.class)) { + case FiacrePackage.LTL_ALL__INDEX: + case FiacrePackage.LTL_ALL__TYPE: + case FiacrePackage.LTL_ALL__CHILD: + 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 + (FiacrePackage.eINSTANCE.getLTLAll_Index(), + FiacreFactory.eINSTANCE.createVariableDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLAll_Child(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLConjunctionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLConjunctionItemProvider.java new file mode 100644 index 0000000..1ac585f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLConjunctionItemProvider.java @@ -0,0 +1,353 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLConjunction; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLConjunction} object. + * + * + * @generated + */ +public class LTLConjunctionItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLConjunctionItemProvider(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(FiacrePackage.eINSTANCE.getLTLConjunction_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLTLConjunction_Right()); + } + 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 LTLConjunction.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLConjunction")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLConjunction_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(LTLConjunction.class)) { + case FiacrePackage.LTL_CONJUNCTION__LEFT: + case FiacrePackage.LTL_CONJUNCTION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLVariable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getLTLConjunction_Left() || + childFeature == FiacrePackage.eINSTANCE.getLTLConjunction_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLDisjunctionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLDisjunctionItemProvider.java new file mode 100644 index 0000000..6d34fbd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLDisjunctionItemProvider.java @@ -0,0 +1,353 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLDisjunction; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction} object. + * + * + * @generated + */ +public class LTLDisjunctionItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLDisjunctionItemProvider(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(FiacrePackage.eINSTANCE.getLTLDisjunction_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLTLDisjunction_Right()); + } + 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 LTLDisjunction.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLDisjunction")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLDisjunction_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(LTLDisjunction.class)) { + case FiacrePackage.LTL_DISJUNCTION__LEFT: + case FiacrePackage.LTL_DISJUNCTION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLVariable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getLTLDisjunction_Left() || + childFeature == FiacrePackage.eINSTANCE.getLTLDisjunction_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLExistsItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLExistsItemProvider.java new file mode 100644 index 0000000..6c5b8d1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLExistsItemProvider.java @@ -0,0 +1,252 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLExists; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLExists} object. + * + * + * @generated + */ +public class LTLExistsItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLExistsItemProvider(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(FiacrePackage.eINSTANCE.getLTLExists_Index()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLTLExists_Type()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLTLExists_Child()); + } + 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 LTLExists.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLExists")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLExists_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(LTLExists.class)) { + case FiacrePackage.LTL_EXISTS__INDEX: + case FiacrePackage.LTL_EXISTS__TYPE: + case FiacrePackage.LTL_EXISTS__CHILD: + 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 + (FiacrePackage.eINSTANCE.getLTLExists_Index(), + FiacreFactory.eINSTANCE.createVariableDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLExists_Child(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLImplicationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLImplicationItemProvider.java new file mode 100644 index 0000000..f2c9f1b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLImplicationItemProvider.java @@ -0,0 +1,353 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLImplication; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLImplication} object. + * + * + * @generated + */ +public class LTLImplicationItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLImplicationItemProvider(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(FiacrePackage.eINSTANCE.getLTLImplication_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLTLImplication_Right()); + } + 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 LTLImplication.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLImplication")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLImplication_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(LTLImplication.class)) { + case FiacrePackage.LTL_IMPLICATION__LEFT: + case FiacrePackage.LTL_IMPLICATION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Left(), + FiacreFactory.eINSTANCE.createLTLVariable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLImplication_Right(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getLTLImplication_Left() || + childFeature == FiacrePackage.eINSTANCE.getLTLImplication_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLPatternItemProvider.java new file mode 100644 index 0000000..e71407c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLPatternItemProvider.java @@ -0,0 +1,238 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLPattern; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLPattern} object. + * + * + * @generated + */ +public class LTLPatternItemProvider extends PatternPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLPatternItemProvider(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(FiacrePackage.eINSTANCE.getLTLPattern_Property()); + } + 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 LTLPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLPattern_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(LTLPattern.class)) { + case FiacrePackage.LTL_PATTERN__PROPERTY: + 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 + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLPattern_Property(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLPropertyItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLPropertyItemProvider.java new file mode 100644 index 0000000..ea31c49 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLPropertyItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.LTLProperty} object. + * + * + * @generated + */ +public class LTLPropertyItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLPropertyItemProvider(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 LTLProperty.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLProperty")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLProperty_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLReleaseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLReleaseItemProvider.java new file mode 100644 index 0000000..74d9b9e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLReleaseItemProvider.java @@ -0,0 +1,353 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLRelease; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLRelease} object. + * + * + * @generated + */ +public class LTLReleaseItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLReleaseItemProvider(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(FiacrePackage.eINSTANCE.getLTLRelease_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLTLRelease_Right()); + } + 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 LTLRelease.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLRelease")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLRelease_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(LTLRelease.class)) { + case FiacrePackage.LTL_RELEASE__LEFT: + case FiacrePackage.LTL_RELEASE__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Left(), + FiacreFactory.eINSTANCE.createLTLVariable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLRelease_Right(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getLTLRelease_Left() || + childFeature == FiacrePackage.eINSTANCE.getLTLRelease_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryAlwaysItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryAlwaysItemProvider.java new file mode 100644 index 0000000..7bfa050 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryAlwaysItemProvider.java @@ -0,0 +1,238 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways} object. + * + * + * @generated + */ +public class LTLUnaryAlwaysItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLUnaryAlwaysItemProvider(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(FiacrePackage.eINSTANCE.getLTLUnaryAlways_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); + } + + /** + * This returns LTLUnaryAlways.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLUnaryAlways")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLUnaryAlways_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(LTLUnaryAlways.class)) { + case FiacrePackage.LTL_UNARY_ALWAYS__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 + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryEventuallyItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryEventuallyItemProvider.java new file mode 100644 index 0000000..2b45786 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryEventuallyItemProvider.java @@ -0,0 +1,238 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually} object. + * + * + * @generated + */ +public class LTLUnaryEventuallyItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLUnaryEventuallyItemProvider(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(FiacrePackage.eINSTANCE.getLTLUnaryEventually_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); + } + + /** + * This returns LTLUnaryEventually.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLUnaryEventually")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLUnaryEventually_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(LTLUnaryEventually.class)) { + case FiacrePackage.LTL_UNARY_EVENTUALLY__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 + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryNegationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryNegationItemProvider.java new file mode 100644 index 0000000..634b52e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryNegationItemProvider.java @@ -0,0 +1,238 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation} object. + * + * + * @generated + */ +public class LTLUnaryNegationItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLUnaryNegationItemProvider(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(FiacrePackage.eINSTANCE.getLTLUnaryNegation_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); + } + + /** + * This returns LTLUnaryNegation.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLUnaryNegation")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLUnaryNegation_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(LTLUnaryNegation.class)) { + case FiacrePackage.LTL_UNARY_NEGATION__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 + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryNextItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryNextItemProvider.java new file mode 100644 index 0000000..b34d904 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUnaryNextItemProvider.java @@ -0,0 +1,238 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryNext; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNext} object. + * + * + * @generated + */ +public class LTLUnaryNextItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLUnaryNextItemProvider(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(FiacrePackage.eINSTANCE.getLTLUnaryNext_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); + } + + /** + * This returns LTLUnaryNext.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLUnaryNext")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLUnaryNext_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(LTLUnaryNext.class)) { + case FiacrePackage.LTL_UNARY_NEXT__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 + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUntilItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUntilItemProvider.java new file mode 100644 index 0000000..c2f0519 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLUntilItemProvider.java @@ -0,0 +1,353 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLUntil; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUntil} object. + * + * + * @generated + */ +public class LTLUntilItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLUntilItemProvider(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(FiacrePackage.eINSTANCE.getLTLUntil_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLTLUntil_Right()); + } + 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 LTLUntil.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLUntil")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLUntil_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(LTLUntil.class)) { + case FiacrePackage.LTL_UNTIL__LEFT: + case FiacrePackage.LTL_UNTIL__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Left(), + FiacreFactory.eINSTANCE.createLTLVariable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLAll())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLExists())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLUntil())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLRelease())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryNext())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryAlways())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLUnaryEventually())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLTLUntil_Right(), + FiacreFactory.eINSTANCE.createLTLVariable())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getLTLUntil_Left() || + childFeature == FiacrePackage.eINSTANCE.getLTLUntil_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLVariableItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLVariableItemProvider.java new file mode 100644 index 0000000..75234d9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LTLVariableItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLVariable} object. + * + * + * @generated + */ +public class LTLVariableItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LTLVariableItemProvider(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); + + addDeclarationPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Declaration feature. + * + * + * @generated + */ + protected void addDeclarationPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_LTLVariable_declaration_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_LTLVariable_declaration_feature", "_UI_LTLVariable_type"), + FiacrePackage.eINSTANCE.getLTLVariable_Declaration(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns LTLVariable.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LTLVariable")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LTLVariable_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LeadsToPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LeadsToPatternItemProvider.java new file mode 100644 index 0000000..f3880bd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LeadsToPatternItemProvider.java @@ -0,0 +1,587 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LeadsToPattern; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern} object. + * + * + * @generated + */ +public class LeadsToPatternItemProvider extends SequencePatternItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LeadsToPatternItemProvider(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(FiacrePackage.eINSTANCE.getLeadsToPattern_Subject()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLeadsToPattern_Follower()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLeadsToPattern_Before()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLeadsToPattern_Lower()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLeadsToPattern_Upper()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLeadsToPattern_After()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLeadsToPattern_Until()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLeadsToPattern_Min()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLeadsToPattern_Max()); + } + 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 LeadsToPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LeadsToPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LeadsToPattern_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(LeadsToPattern.class)) { + case FiacrePackage.LEADS_TO_PATTERN__SUBJECT: + case FiacrePackage.LEADS_TO_PATTERN__FOLLOWER: + case FiacrePackage.LEADS_TO_PATTERN__BEFORE: + case FiacrePackage.LEADS_TO_PATTERN__LOWER: + case FiacrePackage.LEADS_TO_PATTERN__UPPER: + case FiacrePackage.LEADS_TO_PATTERN__AFTER: + case FiacrePackage.LEADS_TO_PATTERN__UNTIL: + case FiacrePackage.LEADS_TO_PATTERN__MIN: + case FiacrePackage.LEADS_TO_PATTERN__MAX: + 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 + (FiacrePackage.eINSTANCE.getLeadsToPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Subject(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Subject(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Subject(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Subject(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Subject(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Follower(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Follower(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Follower(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Follower(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Follower(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Follower(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Follower(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Follower(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Follower(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Follower(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Before(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Before(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Before(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Before(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Before(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Before(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Before(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Before(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Before(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Before(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Lower(), + FiacreFactory.eINSTANCE.createLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Lower(), + FiacreFactory.eINSTANCE.createNaturalLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Lower(), + FiacreFactory.eINSTANCE.createDecimalLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Lower(), + FiacreFactory.eINSTANCE.createVariableLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Upper(), + FiacreFactory.eINSTANCE.createUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Upper(), + FiacreFactory.eINSTANCE.createNaturalUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Upper(), + FiacreFactory.eINSTANCE.createDecimalUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Upper(), + FiacreFactory.eINSTANCE.createVariableUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Upper(), + FiacreFactory.eINSTANCE.createInfiniteUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_After(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_After(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_After(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_After(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_After(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_After(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_After(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_After(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_After(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_After(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Until(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Until(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Until(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Until(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Until(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Until(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Until(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Until(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Until(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Until(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Min(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Min(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Min(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Min(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Min(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Min(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Min(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Min(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Min(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Min(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Max(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Max(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Max(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Max(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Max(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Max(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Max(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Max(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Max(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLeadsToPattern_Max(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getLeadsToPattern_Subject() || + childFeature == FiacrePackage.eINSTANCE.getLeadsToPattern_Follower() || + childFeature == FiacrePackage.eINSTANCE.getLeadsToPattern_Before() || + childFeature == FiacrePackage.eINSTANCE.getLeadsToPattern_After() || + childFeature == FiacrePackage.eINSTANCE.getLeadsToPattern_Until() || + childFeature == FiacrePackage.eINSTANCE.getLeadsToPattern_Min() || + childFeature == FiacrePackage.eINSTANCE.getLeadsToPattern_Max(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LeaveStateEventItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LeaveStateEventItemProvider.java new file mode 100644 index 0000000..b8d3b23 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LeaveStateEventItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LeaveStateEvent} object. + * + * + * @generated + */ +public class LeaveStateEventItemProvider extends StateEventItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LeaveStateEventItemProvider(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 LeaveStateEvent.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LeaveStateEvent")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LeaveStateEvent_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LiteralExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LiteralExpressionItemProvider.java new file mode 100644 index 0000000..2ad1d17 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LiteralExpressionItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LiteralExpression} object. + * + * + * @generated + */ +public class LiteralExpressionItemProvider extends ValueExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LiteralExpressionItemProvider(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 LiteralExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LiteralExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LiteralExpression_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LocalPortsDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LocalPortsDeclarationItemProvider.java new file mode 100644 index 0000000..79d8fea --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LocalPortsDeclarationItemProvider.java @@ -0,0 +1,235 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration} object. + * + * + * @generated + */ +public class LocalPortsDeclarationItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LocalPortsDeclarationItemProvider(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(FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Ports()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Type()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Right()); + } + 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 LocalPortsDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LocalPortsDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LocalPortsDeclaration_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(LocalPortsDeclaration.class)) { + case FiacrePackage.LOCAL_PORTS_DECLARATION__PORTS: + case FiacrePackage.LOCAL_PORTS_DECLARATION__TYPE: + case FiacrePackage.LOCAL_PORTS_DECLARATION__LEFT: + case FiacrePackage.LOCAL_PORTS_DECLARATION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Ports(), + FiacreFactory.eINSTANCE.createPortDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Type(), + FiacreFactory.eINSTANCE.createChannelType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Left(), + FiacreFactory.eINSTANCE.createLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Left(), + FiacreFactory.eINSTANCE.createNaturalLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Left(), + FiacreFactory.eINSTANCE.createDecimalLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Left(), + FiacreFactory.eINSTANCE.createVariableLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Right(), + FiacreFactory.eINSTANCE.createUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Right(), + FiacreFactory.eINSTANCE.createNaturalUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Right(), + FiacreFactory.eINSTANCE.createDecimalUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Right(), + FiacreFactory.eINSTANCE.createVariableUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getLocalPortsDeclaration_Right(), + FiacreFactory.eINSTANCE.createInfiniteUpperBound())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LoopStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LoopStatementItemProvider.java new file mode 100644 index 0000000..b9fe82e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LoopStatementItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LoopStatement} object. + * + * + * @generated + */ +public class LoopStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LoopStatementItemProvider(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 LoopStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LoopStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_LoopStatement_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LowerBoundItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LowerBoundItemProvider.java new file mode 100644 index 0000000..31cf5f1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/LowerBoundItemProvider.java @@ -0,0 +1,191 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LowerBound; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.LowerBound} object. + * + * + * @generated + */ +public class LowerBoundItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public LowerBoundItemProvider(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); + + addLeftPropertyDescriptor(object); + addRightPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Left feature. + * + * + * @generated + */ + protected void addLeftPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_LowerBound_left_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_LowerBound_left_feature", "_UI_LowerBound_type"), + FiacrePackage.eINSTANCE.getLowerBound_Left(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Right feature. + * + * + * @generated + */ + protected void addRightPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_LowerBound_right_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_LowerBound_right_feature", "_UI_LowerBound_type"), + FiacrePackage.eINSTANCE.getLowerBound_Right(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns LowerBound.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LowerBound")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + LowerBound lowerBound = (LowerBound)object; + return getString("_UI_LowerBound_type") + " " + lowerBound.isLeft(); + } + + + /** + * This 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(LowerBound.class)) { + case FiacrePackage.LOWER_BOUND__LEFT: + case FiacrePackage.LOWER_BOUND__RIGHT: + 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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ModelItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ModelItemProvider.java new file mode 100644 index 0000000..c6b7871 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ModelItemProvider.java @@ -0,0 +1,240 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Model; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Model} object. + * + * + * @generated + */ +public class ModelItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ModelItemProvider(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(FiacrePackage.eINSTANCE.getModel_Imports()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getModel_Declarations()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getModel_Requirements()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getModel_Root()); + } + 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 Model.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Model")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Model_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(Model.class)) { + case FiacrePackage.MODEL__IMPORTS: + case FiacrePackage.MODEL__DECLARATIONS: + case FiacrePackage.MODEL__REQUIREMENTS: + case FiacrePackage.MODEL__ROOT: + 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 + (FiacrePackage.eINSTANCE.getModel_Imports(), + FiacreFactory.eINSTANCE.createImportDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Declarations(), + FiacreFactory.eINSTANCE.createDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Declarations(), + FiacreFactory.eINSTANCE.createParameterizedDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Declarations(), + FiacreFactory.eINSTANCE.createFunctionDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Declarations(), + FiacreFactory.eINSTANCE.createTypeDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Declarations(), + FiacreFactory.eINSTANCE.createChannelDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Declarations(), + FiacreFactory.eINSTANCE.createConstantDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Declarations(), + FiacreFactory.eINSTANCE.createProcessDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Declarations(), + FiacreFactory.eINSTANCE.createComponentDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Declarations(), + FiacreFactory.eINSTANCE.createPropertyDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Requirements(), + FiacreFactory.eINSTANCE.createRequirement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModel_Root(), + FiacreFactory.eINSTANCE.createRoot())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ModuloItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ModuloItemProvider.java new file mode 100644 index 0000000..36497cf --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ModuloItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Modulo; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Modulo} object. + * + * + * @generated + */ +public class ModuloItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ModuloItemProvider(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(FiacrePackage.eINSTANCE.getModulo_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getModulo_Right()); + } + 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 Modulo.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Modulo")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Modulo_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(Modulo.class)) { + case FiacrePackage.MODULO__LEFT: + case FiacrePackage.MODULO__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getModulo_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getModulo_Left() || + childFeature == FiacrePackage.eINSTANCE.getModulo_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/MortalPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/MortalPatternItemProvider.java new file mode 100644 index 0000000..36a4245 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/MortalPatternItemProvider.java @@ -0,0 +1,198 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.MortalPattern; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.MortalPattern} object. + * + * + * @generated + */ +public class MortalPatternItemProvider extends PatternPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public MortalPatternItemProvider(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(FiacrePackage.eINSTANCE.getMortalPattern_Subject()); + } + 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 MortalPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MortalPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_MortalPattern_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(MortalPattern.class)) { + case FiacrePackage.MORTAL_PATTERN__SUBJECT: + 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 + (FiacrePackage.eINSTANCE.getMortalPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMortalPattern_Subject(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMortalPattern_Subject(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMortalPattern_Subject(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMortalPattern_Subject(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMortalPattern_Subject(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMortalPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMortalPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMortalPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMortalPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/MultiplicationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/MultiplicationItemProvider.java new file mode 100644 index 0000000..293a3e5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/MultiplicationItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Multiplication; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Multiplication} object. + * + * + * @generated + */ +public class MultiplicationItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public MultiplicationItemProvider(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(FiacrePackage.eINSTANCE.getMultiplication_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getMultiplication_Right()); + } + 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 Multiplication.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Multiplication")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Multiplication_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(Multiplication.class)) { + case FiacrePackage.MULTIPLICATION__LEFT: + case FiacrePackage.MULTIPLICATION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getMultiplication_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getMultiplication_Left() || + childFeature == FiacrePackage.eINSTANCE.getMultiplication_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NamedElementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NamedElementItemProvider.java new file mode 100644 index 0000000..ff33c86 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NamedElementItemProvider.java @@ -0,0 +1,169 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NamedElement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.NamedElement} object. + * + * + * @generated + */ +public class NamedElementItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * 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"), + FiacrePackage.eINSTANCE.getNamedElement_Name(), + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns NamedElement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NamedElement")); + } + + /** + * 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 FiacrePackage.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); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NamedItemItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NamedItemItemProvider.java new file mode 100644 index 0000000..d689dd2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NamedItemItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.NamedItem} object. + * + * + * @generated + */ +public class NamedItemItemProvider extends PathItemItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public NamedItemItemProvider(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); + + addDeclarationPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Declaration feature. + * + * + * @generated + */ + protected void addDeclarationPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_NamedItem_declaration_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_NamedItem_declaration_feature", "_UI_NamedItem_type"), + FiacrePackage.eINSTANCE.getNamedItem_Declaration(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns NamedItem.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NamedItem")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_NamedItem_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalItemItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalItemItemProvider.java new file mode 100644 index 0000000..ed4e65d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalItemItemProvider.java @@ -0,0 +1,141 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NaturalItem; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalItem} object. + * + * + * @generated + */ +public class NaturalItemItemProvider extends PathItemItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public NaturalItemItemProvider(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_NaturalItem_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_NaturalItem_value_feature", "_UI_NaturalItem_type"), + FiacrePackage.eINSTANCE.getNaturalItem_Value(), + true, + false, + false, + ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns NaturalItem.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NaturalItem")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + NaturalItem naturalItem = (NaturalItem)object; + return getString("_UI_NaturalItem_type") + " " + naturalItem.getValue(); + } + + + /** + * This 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(NaturalItem.class)) { + case FiacrePackage.NATURAL_ITEM__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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalLiteralItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalLiteralItemProvider.java new file mode 100644 index 0000000..5f3b971 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalLiteralItemProvider.java @@ -0,0 +1,141 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NaturalLiteral; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalLiteral} object. + * + * + * @generated + */ +public class NaturalLiteralItemProvider extends LiteralExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public NaturalLiteralItemProvider(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_NaturalLiteral_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_NaturalLiteral_value_feature", "_UI_NaturalLiteral_type"), + FiacrePackage.eINSTANCE.getNaturalLiteral_Value(), + true, + false, + false, + ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns NaturalLiteral.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NaturalLiteral")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + NaturalLiteral naturalLiteral = (NaturalLiteral)object; + return getString("_UI_NaturalLiteral_type") + " " + naturalLiteral.getValue(); + } + + + /** + * This 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(NaturalLiteral.class)) { + case FiacrePackage.NATURAL_LITERAL__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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalLowerBoundItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalLowerBoundItemProvider.java new file mode 100644 index 0000000..5b2b261 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalLowerBoundItemProvider.java @@ -0,0 +1,141 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NaturalLowerBound; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalLowerBound} object. + * + * + * @generated + */ +public class NaturalLowerBoundItemProvider extends LowerBoundItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public NaturalLowerBoundItemProvider(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_NaturalLowerBound_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_NaturalLowerBound_value_feature", "_UI_NaturalLowerBound_type"), + FiacrePackage.eINSTANCE.getNaturalLowerBound_Value(), + true, + false, + false, + ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns NaturalLowerBound.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NaturalLowerBound")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + NaturalLowerBound naturalLowerBound = (NaturalLowerBound)object; + return getString("_UI_NaturalLowerBound_type") + " " + naturalLowerBound.isLeft(); + } + + + /** + * This 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(NaturalLowerBound.class)) { + case FiacrePackage.NATURAL_LOWER_BOUND__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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalTypeItemProvider.java new file mode 100644 index 0000000..c6845b0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalTypeItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalType} object. + * + * + * @generated + */ +public class NaturalTypeItemProvider extends BasicTypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public NaturalTypeItemProvider(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 NaturalType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NaturalType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_NaturalType_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalUpperBoundItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalUpperBoundItemProvider.java new file mode 100644 index 0000000..b5fab28 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NaturalUpperBoundItemProvider.java @@ -0,0 +1,189 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NaturalUpperBound; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound} object. + * + * + * @generated + */ +public class NaturalUpperBoundItemProvider extends UpperBoundItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public NaturalUpperBoundItemProvider(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); + addLeftPropertyDescriptor(object); + addRightPropertyDescriptor(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_NaturalUpperBound_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_NaturalUpperBound_value_feature", "_UI_NaturalUpperBound_type"), + FiacrePackage.eINSTANCE.getNaturalUpperBound_Value(), + true, + false, + false, + ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Left feature. + * + * + * @generated + */ + protected void addLeftPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_NaturalUpperBound_left_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_NaturalUpperBound_left_feature", "_UI_NaturalUpperBound_type"), + FiacrePackage.eINSTANCE.getNaturalUpperBound_Left(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Right feature. + * + * + * @generated + */ + protected void addRightPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_NaturalUpperBound_right_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_NaturalUpperBound_right_feature", "_UI_NaturalUpperBound_type"), + FiacrePackage.eINSTANCE.getNaturalUpperBound_Right(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns NaturalUpperBound.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NaturalUpperBound")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + NaturalUpperBound naturalUpperBound = (NaturalUpperBound)object; + return getString("_UI_NaturalUpperBound_type") + " " + naturalUpperBound.getValue(); + } + + + /** + * This 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(NaturalUpperBound.class)) { + case FiacrePackage.NATURAL_UPPER_BOUND__VALUE: + case FiacrePackage.NATURAL_UPPER_BOUND__LEFT: + case FiacrePackage.NATURAL_UPPER_BOUND__RIGHT: + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NullStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NullStatementItemProvider.java new file mode 100644 index 0000000..a8c72b2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/NullStatementItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.NullStatement} object. + * + * + * @generated + */ +public class NullStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public NullStatementItemProvider(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 NullStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NullStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_NullStatement_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableConjunctionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableConjunctionItemProvider.java new file mode 100644 index 0000000..07b2e27 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableConjunctionItemProvider.java @@ -0,0 +1,273 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ObservableConjunction; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction} object. + * + * + * @generated + */ +public class ObservableConjunctionItemProvider extends ObservableItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ObservableConjunctionItemProvider(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(FiacrePackage.eINSTANCE.getObservableConjunction_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getObservableConjunction_Right()); + } + 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 ObservableConjunction.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ObservableConjunction")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ObservableConjunction_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(ObservableConjunction.class)) { + case FiacrePackage.OBSERVABLE_CONJUNCTION__LEFT: + case FiacrePackage.OBSERVABLE_CONJUNCTION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getObservableConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Left(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Right(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getObservableConjunction_Left() || + childFeature == FiacrePackage.eINSTANCE.getObservableConjunction_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableDisjunctionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableDisjunctionItemProvider.java new file mode 100644 index 0000000..c0628df --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableDisjunctionItemProvider.java @@ -0,0 +1,273 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ObservableDisjunction; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction} object. + * + * + * @generated + */ +public class ObservableDisjunctionItemProvider extends ObservableItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ObservableDisjunctionItemProvider(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(FiacrePackage.eINSTANCE.getObservableDisjunction_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getObservableDisjunction_Right()); + } + 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 ObservableDisjunction.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ObservableDisjunction")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ObservableDisjunction_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(ObservableDisjunction.class)) { + case FiacrePackage.OBSERVABLE_DISJUNCTION__LEFT: + case FiacrePackage.OBSERVABLE_DISJUNCTION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getObservableDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getObservableDisjunction_Left() || + childFeature == FiacrePackage.eINSTANCE.getObservableDisjunction_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableEventItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableEventItemProvider.java new file mode 100644 index 0000000..70014c4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableEventItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableEvent} object. + * + * + * @generated + */ +public class ObservableEventItemProvider extends LTLPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ObservableEventItemProvider(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 ObservableEvent.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ObservableEvent")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ObservableEvent_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableImplicationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableImplicationItemProvider.java new file mode 100644 index 0000000..1fa87d2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableImplicationItemProvider.java @@ -0,0 +1,273 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ObservableImplication; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableImplication} object. + * + * + * @generated + */ +public class ObservableImplicationItemProvider extends ObservableItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ObservableImplicationItemProvider(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(FiacrePackage.eINSTANCE.getObservableImplication_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getObservableImplication_Right()); + } + 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 ObservableImplication.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ObservableImplication")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ObservableImplication_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(ObservableImplication.class)) { + case FiacrePackage.OBSERVABLE_IMPLICATION__LEFT: + case FiacrePackage.OBSERVABLE_IMPLICATION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getObservableImplication_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Left(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Left(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Left(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Left(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Left(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Right(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Right(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Right(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Right(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableImplication_Right(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getObservableImplication_Left() || + childFeature == FiacrePackage.eINSTANCE.getObservableImplication_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableItemProvider.java new file mode 100644 index 0000000..2fb01a9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Observable} object. + * + * + * @generated + */ +public class ObservableItemProvider extends SequencePatternItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ObservableItemProvider(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 Observable.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Observable")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Observable_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableNegationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableNegationItemProvider.java new file mode 100644 index 0000000..907ae54 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ObservableNegationItemProvider.java @@ -0,0 +1,198 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ObservableNegation; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableNegation} object. + * + * + * @generated + */ +public class ObservableNegationItemProvider extends ObservableItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ObservableNegationItemProvider(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(FiacrePackage.eINSTANCE.getObservableNegation_Child()); + } + 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 ObservableNegation.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ObservableNegation")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ObservableNegation_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(ObservableNegation.class)) { + case FiacrePackage.OBSERVABLE_NEGATION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getObservableNegation_Child(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableNegation_Child(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableNegation_Child(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableNegation_Child(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableNegation_Child(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableNegation_Child(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableNegation_Child(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableNegation_Child(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableNegation_Child(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getObservableNegation_Child(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/OnStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/OnStatementItemProvider.java new file mode 100644 index 0000000..a77713a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/OnStatementItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.OnStatement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.OnStatement} object. + * + * + * @generated + */ +public class OnStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public OnStatementItemProvider(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(FiacrePackage.eINSTANCE.getOnStatement_Condition()); + } + 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 OnStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/OnStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_OnStatement_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(OnStatement.class)) { + case FiacrePackage.ON_STATEMENT__CONDITION: + 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 + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getOnStatement_Condition(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParameterDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParameterDeclarationItemProvider.java new file mode 100644 index 0000000..febd6f9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParameterDeclarationItemProvider.java @@ -0,0 +1,418 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ParameterDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration} object. + * + * + * @generated + */ +public class ParameterDeclarationItemProvider extends NamedElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ParameterDeclarationItemProvider(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); + + addReferencePropertyDescriptor(object); + addArrayPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Reference feature. + * + * + * @generated + */ + protected void addReferencePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ParameterDeclaration_reference_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ParameterDeclaration_reference_feature", "_UI_ParameterDeclaration_type"), + FiacrePackage.eINSTANCE.getParameterDeclaration_Reference(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Array feature. + * + * + * @generated + */ + protected void addArrayPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ParameterDeclaration_array_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ParameterDeclaration_array_feature", "_UI_ParameterDeclaration_type"), + FiacrePackage.eINSTANCE.getParameterDeclaration_Array(), + 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(FiacrePackage.eINSTANCE.getParameterDeclaration_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 ParameterDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ParameterDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ParameterDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_ParameterDeclaration_type") : + getString("_UI_ParameterDeclaration_type") + " " + label; + } + + + /** + * This 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(ParameterDeclaration.class)) { + case FiacrePackage.PARAMETER_DECLARATION__REFERENCE: + case FiacrePackage.PARAMETER_DECLARATION__ARRAY: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.PARAMETER_DECLARATION__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 + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterDeclaration_Size(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParameterizedDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParameterizedDeclarationItemProvider.java new file mode 100644 index 0000000..20fe537 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParameterizedDeclarationItemProvider.java @@ -0,0 +1,163 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration} object. + * + * + * @generated + */ +public class ParameterizedDeclarationItemProvider extends DeclarationItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ParameterizedDeclarationItemProvider(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(FiacrePackage.eINSTANCE.getParameterizedDeclaration_Parameters()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getParameterizedDeclaration_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 ParameterizedDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ParameterizedDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ParameterizedDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_ParameterizedDeclaration_type") : + getString("_UI_ParameterizedDeclaration_type") + " " + label; + } + + + /** + * This 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(ParameterizedDeclaration.class)) { + case FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS: + case FiacrePackage.PARAMETERIZED_DECLARATION__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 + (FiacrePackage.eINSTANCE.getParameterizedDeclaration_Parameters(), + FiacreFactory.eINSTANCE.createParametersDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterizedDeclaration_Variables(), + FiacreFactory.eINSTANCE.createVariablesDeclaration())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParametersDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParametersDeclarationItemProvider.java new file mode 100644 index 0000000..afb1909 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ParametersDeclarationItemProvider.java @@ -0,0 +1,294 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ParametersDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration} object. + * + * + * @generated + */ +public class ParametersDeclarationItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ParametersDeclarationItemProvider(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); + + addReadPropertyDescriptor(object); + addWritePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Read feature. + * + * + * @generated + */ + protected void addReadPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ParametersDeclaration_read_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ParametersDeclaration_read_feature", "_UI_ParametersDeclaration_type"), + FiacrePackage.eINSTANCE.getParametersDeclaration_Read(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Write feature. + * + * + * @generated + */ + protected void addWritePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ParametersDeclaration_write_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ParametersDeclaration_write_feature", "_UI_ParametersDeclaration_type"), + FiacrePackage.eINSTANCE.getParametersDeclaration_Write(), + 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(FiacrePackage.eINSTANCE.getParametersDeclaration_Parameters()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getParametersDeclaration_Type()); + } + 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 ParametersDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ParametersDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + ParametersDeclaration parametersDeclaration = (ParametersDeclaration)object; + return getString("_UI_ParametersDeclaration_type") + " " + parametersDeclaration.isRead(); + } + + + /** + * This 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(ParametersDeclaration.class)) { + case FiacrePackage.PARAMETERS_DECLARATION__READ: + case FiacrePackage.PARAMETERS_DECLARATION__WRITE: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.PARAMETERS_DECLARATION__PARAMETERS: + case FiacrePackage.PARAMETERS_DECLARATION__TYPE: + 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 + (FiacrePackage.eINSTANCE.getParametersDeclaration_Parameters(), + FiacreFactory.eINSTANCE.createParameterDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParametersDeclaration_Type(), + FiacreFactory.eINSTANCE.createBooleanType())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathDeclarationUseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathDeclarationUseItemProvider.java new file mode 100644 index 0000000..ba64324 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathDeclarationUseItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.PathDeclarationUse} object. + * + * + * @generated + */ +public class PathDeclarationUseItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PathDeclarationUseItemProvider(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 PathDeclarationUse.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PathDeclarationUse")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PathDeclarationUse_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathEventItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathEventItemProvider.java new file mode 100644 index 0000000..7f6feb2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathEventItemProvider.java @@ -0,0 +1,180 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PathEvent; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PathEvent} object. + * + * + * @generated + */ +public class PathEventItemProvider extends ObservableEventItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PathEventItemProvider(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(FiacrePackage.eINSTANCE.getPathEvent_Path()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPathEvent_Item()); + } + 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 PathEvent.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PathEvent")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PathEvent_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(PathEvent.class)) { + case FiacrePackage.PATH_EVENT__PATH: + case FiacrePackage.PATH_EVENT__ITEM: + 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 + (FiacrePackage.eINSTANCE.getPathEvent_Path(), + FiacreFactory.eINSTANCE.createPath())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPathEvent_Item(), + FiacreFactory.eINSTANCE.createSubject())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPathEvent_Item(), + FiacreFactory.eINSTANCE.createStateSubject())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPathEvent_Item(), + FiacreFactory.eINSTANCE.createValueSubject())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPathEvent_Item(), + FiacreFactory.eINSTANCE.createTagSubject())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPathEvent_Item(), + FiacreFactory.eINSTANCE.createEventSubject())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathItemItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathItemItemProvider.java new file mode 100644 index 0000000..185c3dd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathItemItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.PathItem} object. + * + * + * @generated + */ +public class PathItemItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PathItemItemProvider(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 PathItem.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PathItem")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PathItem_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathItemProvider.java new file mode 100644 index 0000000..c0e1677 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PathItemProvider.java @@ -0,0 +1,189 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Path; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Path} object. + * + * + * @generated + */ +public class PathItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PathItemProvider(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(FiacrePackage.eINSTANCE.getPath_Items()); + } + 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 Path.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Path")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Path_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(Path.class)) { + case FiacrePackage.PATH__ITEMS: + 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 + (FiacrePackage.eINSTANCE.getPath_Items(), + FiacreFactory.eINSTANCE.createPathItem())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPath_Items(), + FiacreFactory.eINSTANCE.createNaturalItem())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPath_Items(), + FiacreFactory.eINSTANCE.createNamedItem())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternDeclarationUseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternDeclarationUseItemProvider.java new file mode 100644 index 0000000..a42a6a4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternDeclarationUseItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse} object. + * + * + * @generated + */ +public class PatternDeclarationUseItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PatternDeclarationUseItemProvider(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 PatternDeclarationUse.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PatternDeclarationUse")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PatternDeclarationUse_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternItemProvider.java new file mode 100644 index 0000000..94ecfaa --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Pattern} object. + * + * + * @generated + */ +public class PatternItemProvider extends PatternStatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PatternItemProvider(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 Pattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Pattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Pattern_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternPropertyItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternPropertyItemProvider.java new file mode 100644 index 0000000..d90a609 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternPropertyItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PatternProperty} object. + * + * + * @generated + */ +public class PatternPropertyItemProvider extends PropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PatternPropertyItemProvider(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 PatternProperty.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PatternProperty")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PatternProperty_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternStatementItemProvider.java new file mode 100644 index 0000000..79def69 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PatternStatementItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PatternStatement} object. + * + * + * @generated + */ +public class PatternStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PatternStatementItemProvider(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 PatternStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PatternStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PatternStatement_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortDeclarationItemProvider.java new file mode 100644 index 0000000..5f12f7f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortDeclarationItemProvider.java @@ -0,0 +1,110 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.PortDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PortDeclaration} object. + * + * + * @generated + */ +public class PortDeclarationItemProvider extends NamedElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PortDeclarationItemProvider(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 PortDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PortDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((PortDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_PortDeclaration_type") : + getString("_UI_PortDeclaration_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortSetItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortSetItemProvider.java new file mode 100644 index 0000000..113ea38 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortSetItemProvider.java @@ -0,0 +1,418 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PortSet; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PortSet} object. + * + * + * @generated + */ +public class PortSetItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PortSetItemProvider(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); + + addAllPortsPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the All Ports feature. + * + * + * @generated + */ + protected void addAllPortsPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_PortSet_allPorts_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PortSet_allPorts_feature", "_UI_PortSet_type"), + FiacrePackage.eINSTANCE.getPortSet_AllPorts(), + 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(FiacrePackage.eINSTANCE.getPortSet_Ports()); + } + 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 PortSet.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PortSet")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + PortSet portSet = (PortSet)object; + return getString("_UI_PortSet_type") + " " + portSet.isAllPorts(); + } + + + /** + * This 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(PortSet.class)) { + case FiacrePackage.PORT_SET__ALL_PORTS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.PORT_SET__PORTS: + 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 + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortSet_Ports(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortsDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortsDeclarationItemProvider.java new file mode 100644 index 0000000..289d541 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PortsDeclarationItemProvider.java @@ -0,0 +1,186 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PortsDeclaration; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration} object. + * + * + * @generated + */ +public class PortsDeclarationItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PortsDeclarationItemProvider(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(FiacrePackage.eINSTANCE.getPortsDeclaration_Ports()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPortsDeclaration_Type()); + } + 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 PortsDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PortsDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PortsDeclaration_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(PortsDeclaration.class)) { + case FiacrePackage.PORTS_DECLARATION__PORTS: + case FiacrePackage.PORTS_DECLARATION__TYPE: + 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 + (FiacrePackage.eINSTANCE.getPortsDeclaration_Ports(), + FiacreFactory.eINSTANCE.createPortDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPortsDeclaration_Type(), + FiacreFactory.eINSTANCE.createChannelType())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PrecedesPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PrecedesPatternItemProvider.java new file mode 100644 index 0000000..43d7667 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PrecedesPatternItemProvider.java @@ -0,0 +1,538 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PrecedesPattern; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern} object. + * + * + * @generated + */ +public class PrecedesPatternItemProvider extends SequencePatternItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PrecedesPatternItemProvider(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(FiacrePackage.eINSTANCE.getPrecedesPattern_Subject()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPrecedesPattern_Follower()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPrecedesPattern_Before()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPrecedesPattern_After()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPrecedesPattern_Until()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPrecedesPattern_Min()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPrecedesPattern_Max()); + } + 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 PrecedesPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PrecedesPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PrecedesPattern_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(PrecedesPattern.class)) { + case FiacrePackage.PRECEDES_PATTERN__SUBJECT: + case FiacrePackage.PRECEDES_PATTERN__FOLLOWER: + case FiacrePackage.PRECEDES_PATTERN__BEFORE: + case FiacrePackage.PRECEDES_PATTERN__AFTER: + case FiacrePackage.PRECEDES_PATTERN__UNTIL: + case FiacrePackage.PRECEDES_PATTERN__MIN: + case FiacrePackage.PRECEDES_PATTERN__MAX: + 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 + (FiacrePackage.eINSTANCE.getPrecedesPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Subject(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Subject(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Subject(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Subject(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Subject(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Subject(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Follower(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Follower(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Follower(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Follower(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Follower(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Follower(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Follower(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Follower(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Follower(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Follower(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Before(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Before(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Before(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Before(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Before(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Before(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Before(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Before(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Before(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Before(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_After(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_After(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_After(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_After(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_After(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_After(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_After(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_After(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_After(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_After(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Until(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Until(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Until(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Until(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Until(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Until(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Until(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Until(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Until(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Until(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Min(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Min(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Min(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Min(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Min(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Min(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Min(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Min(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Min(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Min(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Max(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Max(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Max(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Max(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Max(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Max(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Max(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Max(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Max(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPrecedesPattern_Max(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getPrecedesPattern_Subject() || + childFeature == FiacrePackage.eINSTANCE.getPrecedesPattern_Follower() || + childFeature == FiacrePackage.eINSTANCE.getPrecedesPattern_Before() || + childFeature == FiacrePackage.eINSTANCE.getPrecedesPattern_After() || + childFeature == FiacrePackage.eINSTANCE.getPrecedesPattern_Until() || + childFeature == FiacrePackage.eINSTANCE.getPrecedesPattern_Min() || + childFeature == FiacrePackage.eINSTANCE.getPrecedesPattern_Max(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PresencePatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PresencePatternItemProvider.java new file mode 100644 index 0000000..503f88c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PresencePatternItemProvider.java @@ -0,0 +1,563 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PresencePattern; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PresencePattern} object. + * + * + * @generated + */ +public class PresencePatternItemProvider extends PatternPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PresencePatternItemProvider(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); + + addLastingPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Lasting feature. + * + * + * @generated + */ + protected void addLastingPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_PresencePattern_lasting_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PresencePattern_lasting_feature", "_UI_PresencePattern_type"), + FiacrePackage.eINSTANCE.getPresencePattern_Lasting(), + 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(FiacrePackage.eINSTANCE.getPresencePattern_Subject()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPresencePattern_After()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPresencePattern_Lower()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPresencePattern_Upper()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPresencePattern_Until()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPresencePattern_Before()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPresencePattern_Min()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPresencePattern_Max()); + } + 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 PresencePattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PresencePattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + PresencePattern presencePattern = (PresencePattern)object; + return getString("_UI_PresencePattern_type") + " " + presencePattern.getLasting(); + } + + + /** + * This 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(PresencePattern.class)) { + case FiacrePackage.PRESENCE_PATTERN__LASTING: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.PRESENCE_PATTERN__SUBJECT: + case FiacrePackage.PRESENCE_PATTERN__AFTER: + case FiacrePackage.PRESENCE_PATTERN__LOWER: + case FiacrePackage.PRESENCE_PATTERN__UPPER: + case FiacrePackage.PRESENCE_PATTERN__UNTIL: + case FiacrePackage.PRESENCE_PATTERN__BEFORE: + case FiacrePackage.PRESENCE_PATTERN__MIN: + case FiacrePackage.PRESENCE_PATTERN__MAX: + 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 + (FiacrePackage.eINSTANCE.getPresencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Subject(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Subject(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Subject(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Subject(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Subject(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_After(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_After(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_After(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_After(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_After(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_After(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_After(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_After(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_After(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_After(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Lower(), + FiacreFactory.eINSTANCE.createLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Lower(), + FiacreFactory.eINSTANCE.createNaturalLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Lower(), + FiacreFactory.eINSTANCE.createDecimalLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Lower(), + FiacreFactory.eINSTANCE.createVariableLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Upper(), + FiacreFactory.eINSTANCE.createUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Upper(), + FiacreFactory.eINSTANCE.createNaturalUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Upper(), + FiacreFactory.eINSTANCE.createDecimalUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Upper(), + FiacreFactory.eINSTANCE.createVariableUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Upper(), + FiacreFactory.eINSTANCE.createInfiniteUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Until(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Until(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Until(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Until(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Until(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Until(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Until(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Until(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Until(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Until(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Before(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Before(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Before(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Before(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Before(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Before(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Before(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Before(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Before(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Before(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Min(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Min(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Min(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Min(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Min(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Min(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Min(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Min(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Min(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Min(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Max(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Max(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Max(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Max(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Max(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Max(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Max(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Max(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Max(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPresencePattern_Max(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getPresencePattern_Subject() || + childFeature == FiacrePackage.eINSTANCE.getPresencePattern_After() || + childFeature == FiacrePackage.eINSTANCE.getPresencePattern_Until() || + childFeature == FiacrePackage.eINSTANCE.getPresencePattern_Before() || + childFeature == FiacrePackage.eINSTANCE.getPresencePattern_Min() || + childFeature == FiacrePackage.eINSTANCE.getPresencePattern_Max(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PriorityDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PriorityDeclarationItemProvider.java new file mode 100644 index 0000000..be9c2ea --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PriorityDeclarationItemProvider.java @@ -0,0 +1,179 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PriorityDeclaration; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration} object. + * + * + * @generated + */ +public class PriorityDeclarationItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PriorityDeclarationItemProvider(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(FiacrePackage.eINSTANCE.getPriorityDeclaration_Groups()); + } + 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 PriorityDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PriorityDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PriorityDeclaration_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(PriorityDeclaration.class)) { + case FiacrePackage.PRIORITY_DECLARATION__GROUPS: + 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 + (FiacrePackage.eINSTANCE.getPriorityDeclaration_Groups(), + FiacreFactory.eINSTANCE.createPriorityGroup())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PriorityGroupItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PriorityGroupItemProvider.java new file mode 100644 index 0000000..458cbed --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PriorityGroupItemProvider.java @@ -0,0 +1,157 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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.ItemProviderAdapter; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PriorityGroup} object. + * + * + * @generated + */ +public class PriorityGroupItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PriorityGroupItemProvider(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); + + addPortsPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Ports feature. + * + * + * @generated + */ + protected void addPortsPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_PriorityGroup_ports_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PriorityGroup_ports_feature", "_UI_PriorityGroup_type"), + FiacrePackage.eINSTANCE.getPriorityGroup_Ports(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns PriorityGroup.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PriorityGroup")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PriorityGroup_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ProcessDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ProcessDeclarationItemProvider.java new file mode 100644 index 0000000..d81a164 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ProcessDeclarationItemProvider.java @@ -0,0 +1,401 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ProcessDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration} object. + * + * + * @generated + */ +public class ProcessDeclarationItemProvider extends RootDeclarationItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ProcessDeclarationItemProvider(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"), + FiacrePackage.eINSTANCE.getNamedElement_Name(), + 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(FiacrePackage.eINSTANCE.getParameterizedDeclaration_Parameters()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getParameterizedDeclaration_Variables()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getProcessDeclaration_Ports()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getProcessDeclaration_LocalPorts()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getProcessDeclaration_Priorities()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getProcessDeclaration_States()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getProcessDeclaration_Transitions()); + } + 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 ProcessDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ProcessDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((ProcessDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_ProcessDeclaration_type") : + getString("_UI_ProcessDeclaration_type") + " " + label; + } + + + /** + * This 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(ProcessDeclaration.class)) { + case FiacrePackage.PROCESS_DECLARATION__NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.PROCESS_DECLARATION__PARAMETERS: + case FiacrePackage.PROCESS_DECLARATION__VARIABLES: + case FiacrePackage.PROCESS_DECLARATION__PORTS: + case FiacrePackage.PROCESS_DECLARATION__LOCAL_PORTS: + case FiacrePackage.PROCESS_DECLARATION__PRIORITIES: + case FiacrePackage.PROCESS_DECLARATION__STATES: + case FiacrePackage.PROCESS_DECLARATION__PRELUDE: + case FiacrePackage.PROCESS_DECLARATION__TRANSITIONS: + 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 + (FiacrePackage.eINSTANCE.getParameterizedDeclaration_Parameters(), + FiacreFactory.eINSTANCE.createParametersDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getParameterizedDeclaration_Variables(), + FiacreFactory.eINSTANCE.createVariablesDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Ports(), + FiacreFactory.eINSTANCE.createPortsDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_LocalPorts(), + FiacreFactory.eINSTANCE.createPortsDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Priorities(), + FiacreFactory.eINSTANCE.createPriorityDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_States(), + FiacreFactory.eINSTANCE.createStateDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Prelude(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProcessDeclaration_Transitions(), + FiacreFactory.eINSTANCE.createTransition())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getProcessDeclaration_Ports() || + childFeature == FiacrePackage.eINSTANCE.getProcessDeclaration_LocalPorts(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ProjectionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ProjectionItemProvider.java new file mode 100644 index 0000000..e654379 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ProjectionItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Projection; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Projection} object. + * + * + * @generated + */ +public class ProjectionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ProjectionItemProvider(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(FiacrePackage.eINSTANCE.getProjection_Channel()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getProjection_Field()); + } + 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 Projection.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Projection")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Projection_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(Projection.class)) { + case FiacrePackage.PROJECTION__CHANNEL: + case FiacrePackage.PROJECTION__FIELD: + 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 + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Channel(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getProjection_Field(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getProjection_Channel() || + childFeature == FiacrePackage.eINSTANCE.getProjection_Field(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyConjunctionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyConjunctionItemProvider.java new file mode 100644 index 0000000..2018d1f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyConjunctionItemProvider.java @@ -0,0 +1,453 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PropertyConjunction; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction} object. + * + * + * @generated + */ +public class PropertyConjunctionItemProvider extends PropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PropertyConjunctionItemProvider(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(FiacrePackage.eINSTANCE.getPropertyConjunction_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPropertyConjunction_Right()); + } + 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 PropertyConjunction.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PropertyConjunction")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PropertyConjunction_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(PropertyConjunction.class)) { + case FiacrePackage.PROPERTY_CONJUNCTION__LEFT: + case FiacrePackage.PROPERTY_CONJUNCTION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createPatternProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createLTLPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createDeadlockFreePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createInfinitelyOftenPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createMortalPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createPresencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createAbsencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createAlwaysPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createSequencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createAllProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createExistsProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createPropertyDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createPropertyImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createPropertyConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createPropertyNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createLeadsToPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createPrecedesPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Left(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createPatternProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createLTLPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createDeadlockFreePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createInfinitelyOftenPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createMortalPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createPresencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createAbsencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createAlwaysPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createSequencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createAllProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createExistsProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createPropertyDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createPropertyImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createPropertyConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createPropertyNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createLeadsToPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createPrecedesPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyConjunction_Right(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getPropertyConjunction_Left() || + childFeature == FiacrePackage.eINSTANCE.getPropertyConjunction_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDeclarationItemProvider.java new file mode 100644 index 0000000..b9fd8d5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDeclarationItemProvider.java @@ -0,0 +1,319 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PropertyDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyDeclaration} object. + * + * + * @generated + */ +public class PropertyDeclarationItemProvider extends PropertyDeclarationUseItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PropertyDeclarationItemProvider(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"), + FiacrePackage.eINSTANCE.getNamedElement_Name(), + 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(FiacrePackage.eINSTANCE.getPropertyDeclaration_Property()); + } + 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 PropertyDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PropertyDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((PropertyDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_PropertyDeclaration_type") : + getString("_UI_PropertyDeclaration_type") + " " + label; + } + + + /** + * This 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(PropertyDeclaration.class)) { + case FiacrePackage.PROPERTY_DECLARATION__NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.PROPERTY_DECLARATION__PROPERTY: + 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 + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createPatternProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createLTLPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createDeadlockFreePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createInfinitelyOftenPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createMortalPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createPresencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createAbsencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createAlwaysPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createSequencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createAllProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createExistsProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createPropertyDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createPropertyImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createPropertyConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createPropertyNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createLeadsToPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createPrecedesPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDeclaration_Property(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDeclarationUseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDeclarationUseItemProvider.java new file mode 100644 index 0000000..42a9796 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDeclarationUseItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse} object. + * + * + * @generated + */ +public class PropertyDeclarationUseItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PropertyDeclarationUseItemProvider(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 PropertyDeclarationUse.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PropertyDeclarationUse")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PropertyDeclarationUse_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDisjunctionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDisjunctionItemProvider.java new file mode 100644 index 0000000..1b55d66 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyDisjunctionItemProvider.java @@ -0,0 +1,453 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PropertyDisjunction; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction} object. + * + * + * @generated + */ +public class PropertyDisjunctionItemProvider extends PropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PropertyDisjunctionItemProvider(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(FiacrePackage.eINSTANCE.getPropertyDisjunction_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPropertyDisjunction_Right()); + } + 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 PropertyDisjunction.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PropertyDisjunction")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PropertyDisjunction_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(PropertyDisjunction.class)) { + case FiacrePackage.PROPERTY_DISJUNCTION__LEFT: + case FiacrePackage.PROPERTY_DISJUNCTION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createPatternProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createLTLPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createDeadlockFreePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createInfinitelyOftenPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createMortalPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createPresencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createAbsencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createAlwaysPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createSequencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createAllProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createExistsProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createPropertyDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createPropertyImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createPropertyConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createPropertyNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createLeadsToPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createPrecedesPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Left(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createPatternProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createLTLPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createDeadlockFreePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createInfinitelyOftenPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createMortalPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createPresencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createAbsencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createAlwaysPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createSequencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createAllProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createExistsProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createPropertyDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createPropertyImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createPropertyConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createPropertyNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createLeadsToPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createPrecedesPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getPropertyDisjunction_Left() || + childFeature == FiacrePackage.eINSTANCE.getPropertyDisjunction_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyImplicationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyImplicationItemProvider.java new file mode 100644 index 0000000..06a1f34 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyImplicationItemProvider.java @@ -0,0 +1,453 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PropertyImplication; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyImplication} object. + * + * + * @generated + */ +public class PropertyImplicationItemProvider extends PropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PropertyImplicationItemProvider(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(FiacrePackage.eINSTANCE.getPropertyImplication_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getPropertyImplication_Right()); + } + 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 PropertyImplication.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PropertyImplication")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PropertyImplication_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(PropertyImplication.class)) { + case FiacrePackage.PROPERTY_IMPLICATION__LEFT: + case FiacrePackage.PROPERTY_IMPLICATION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createPatternProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createLTLPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createDeadlockFreePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createInfinitelyOftenPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createMortalPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createPresencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createAbsencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createAlwaysPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createSequencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createAllProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createExistsProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createPropertyDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createPropertyImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createPropertyConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createPropertyNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createLeadsToPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createPrecedesPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Left(), + FiacreFactory.eINSTANCE.createObservableNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createPatternProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createLTLPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createDeadlockFreePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createInfinitelyOftenPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createMortalPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createPresencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createAbsencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createAlwaysPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createSequencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createAllProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createExistsProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createPropertyDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createPropertyImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createPropertyConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createPropertyNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createLeadsToPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createPrecedesPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyImplication_Right(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getPropertyImplication_Left() || + childFeature == FiacrePackage.eINSTANCE.getPropertyImplication_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyItemProvider.java new file mode 100644 index 0000000..815c6ea --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.Property} object. + * + * + * @generated + */ +public class PropertyItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PropertyItemProvider(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 Property.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Property")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Property_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyNegationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyNegationItemProvider.java new file mode 100644 index 0000000..8c1ac1f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/PropertyNegationItemProvider.java @@ -0,0 +1,288 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PropertyNegation; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyNegation} object. + * + * + * @generated + */ +public class PropertyNegationItemProvider extends PropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public PropertyNegationItemProvider(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(FiacrePackage.eINSTANCE.getPropertyNegation_Child()); + } + 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 PropertyNegation.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PropertyNegation")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PropertyNegation_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(PropertyNegation.class)) { + case FiacrePackage.PROPERTY_NEGATION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createPatternProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createLTLPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createDeadlockFreePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createInfinitelyOftenPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createMortalPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createPresencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createAbsencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createAlwaysPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createSequencePattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createAllProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createExistsProperty())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createPropertyDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createPropertyImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createPropertyConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createPropertyNegation())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createLeadsToPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createPrecedesPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getPropertyNegation_Child(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/QueueExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/QueueExpressionItemProvider.java new file mode 100644 index 0000000..e86cd9a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/QueueExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.QueueExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.QueueExpression} object. + * + * + * @generated + */ +public class QueueExpressionItemProvider extends ValueExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public QueueExpressionItemProvider(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(FiacrePackage.eINSTANCE.getQueueExpression_Values()); + } + 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 QueueExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/QueueExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_QueueExpression_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(QueueExpression.class)) { + case FiacrePackage.QUEUE_EXPRESSION__VALUES: + 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 + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueExpression_Values(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/QueueTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/QueueTypeItemProvider.java new file mode 100644 index 0000000..1d817f7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/QueueTypeItemProvider.java @@ -0,0 +1,425 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.QueueType; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.QueueType} object. + * + * + * @generated + */ +public class QueueTypeItemProvider extends TypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public QueueTypeItemProvider(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(FiacrePackage.eINSTANCE.getQueueType_Size()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getQueueType_Type()); + } + 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 QueueType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/QueueType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_QueueType_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(QueueType.class)) { + case FiacrePackage.QUEUE_TYPE__SIZE: + case FiacrePackage.QUEUE_TYPE__TYPE: + 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 + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Size(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getQueueType_Type(), + FiacreFactory.eINSTANCE.createBooleanType())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RangeTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RangeTypeItemProvider.java new file mode 100644 index 0000000..72695d3 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RangeTypeItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RangeType; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.RangeType} object. + * + * + * @generated + */ +public class RangeTypeItemProvider extends TypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RangeTypeItemProvider(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(FiacrePackage.eINSTANCE.getRangeType_Minimum()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getRangeType_Maximum()); + } + 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 RangeType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/RangeType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_RangeType_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(RangeType.class)) { + case FiacrePackage.RANGE_TYPE__MINIMUM: + case FiacrePackage.RANGE_TYPE__MAXIMUM: + 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 + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Minimum(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRangeType_Maximum(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getRangeType_Minimum() || + childFeature == FiacrePackage.eINSTANCE.getRangeType_Maximum(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReceiveStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReceiveStatementItemProvider.java new file mode 100644 index 0000000..2c11a4e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReceiveStatementItemProvider.java @@ -0,0 +1,470 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ReceiveStatement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement} object. + * + * + * @generated + */ +public class ReceiveStatementItemProvider extends PatternStatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ReceiveStatementItemProvider(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(FiacrePackage.eINSTANCE.getReceiveStatement_Port()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getReceiveStatement_Patterns()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getReceiveStatement_Exp()); + } + 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 ReceiveStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ReceiveStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ReceiveStatement_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(ReceiveStatement.class)) { + case FiacrePackage.RECEIVE_STATEMENT__PORT: + case FiacrePackage.RECEIVE_STATEMENT__PATTERNS: + case FiacrePackage.RECEIVE_STATEMENT__EXP: + 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 + (FiacrePackage.eINSTANCE.getReceiveStatement_Port(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Port(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Port(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Port(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Port(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Port(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Port(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Port(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Patterns(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Patterns(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Patterns(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Patterns(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Patterns(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Patterns(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Patterns(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Patterns(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReceiveStatement_Exp(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getReceiveStatement_Port() || + childFeature == FiacrePackage.eINSTANCE.getReceiveStatement_Patterns(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordAccessExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordAccessExpressionItemProvider.java new file mode 100644 index 0000000..86fdaa4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordAccessExpressionItemProvider.java @@ -0,0 +1,192 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RecordAccessExpression; + +import java.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.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression} object. + * + * + * @generated + */ +public class RecordAccessExpressionItemProvider extends IdentifierExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RecordAccessExpressionItemProvider(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); + + addFieldPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Field feature. + * + * + * @generated + */ + protected void addFieldPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_RecordAccessExpression_field_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_RecordAccessExpression_field_feature", "_UI_RecordAccessExpression_type"), + FiacrePackage.eINSTANCE.getRecordAccessExpression_Field(), + 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(FiacrePackage.eINSTANCE.getRecordAccessExpression_Child()); + } + 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 RecordAccessExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/RecordAccessExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_RecordAccessExpression_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(RecordAccessExpression.class)) { + case FiacrePackage.RECORD_ACCESS_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getRecordAccessExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordAccessExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordAccessExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordAccessExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordAccessPatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordAccessPatternItemProvider.java new file mode 100644 index 0000000..6928bd9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordAccessPatternItemProvider.java @@ -0,0 +1,192 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RecordAccessPattern; + +import java.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.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern} object. + * + * + * @generated + */ +public class RecordAccessPatternItemProvider extends IdentifierPatternItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RecordAccessPatternItemProvider(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); + + addFieldPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Field feature. + * + * + * @generated + */ + protected void addFieldPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_RecordAccessPattern_field_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_RecordAccessPattern_field_feature", "_UI_RecordAccessPattern_type"), + FiacrePackage.eINSTANCE.getRecordAccessPattern_Field(), + 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(FiacrePackage.eINSTANCE.getRecordAccessPattern_Source()); + } + 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 RecordAccessPattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/RecordAccessPattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_RecordAccessPattern_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(RecordAccessPattern.class)) { + case FiacrePackage.RECORD_ACCESS_PATTERN__SOURCE: + 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 + (FiacrePackage.eINSTANCE.getRecordAccessPattern_Source(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordAccessPattern_Source(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordAccessPattern_Source(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordAccessPattern_Source(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordExpressionItemProvider.java new file mode 100644 index 0000000..702a74f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordExpressionItemProvider.java @@ -0,0 +1,153 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RecordExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordExpression} object. + * + * + * @generated + */ +public class RecordExpressionItemProvider extends ValueExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RecordExpressionItemProvider(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(FiacrePackage.eINSTANCE.getRecordExpression_Fields()); + } + 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 RecordExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/RecordExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_RecordExpression_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(RecordExpression.class)) { + case FiacrePackage.RECORD_EXPRESSION__FIELDS: + 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 + (FiacrePackage.eINSTANCE.getRecordExpression_Fields(), + FiacreFactory.eINSTANCE.createFieldExpression())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldDeclarationItemProvider.java new file mode 100644 index 0000000..4b6e724 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldDeclarationItemProvider.java @@ -0,0 +1,110 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration} object. + * + * + * @generated + */ +public class RecordFieldDeclarationItemProvider extends NamedElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RecordFieldDeclarationItemProvider(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 RecordFieldDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/RecordFieldDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((RecordFieldDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_RecordFieldDeclaration_type") : + getString("_UI_RecordFieldDeclaration_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldDeclarationUseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldDeclarationUseItemProvider.java new file mode 100644 index 0000000..26d7ce4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldDeclarationUseItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse} object. + * + * + * @generated + */ +public class RecordFieldDeclarationUseItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RecordFieldDeclarationUseItemProvider(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 RecordFieldDeclarationUse.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/RecordFieldDeclarationUse")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_RecordFieldDeclarationUse_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldsItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldsItemProvider.java new file mode 100644 index 0000000..ab09787 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordFieldsItemProvider.java @@ -0,0 +1,241 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RecordFields; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordFields} object. + * + * + * @generated + */ +public class RecordFieldsItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RecordFieldsItemProvider(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(FiacrePackage.eINSTANCE.getRecordFields_Fields()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getRecordFields_Type()); + } + 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 RecordFields.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/RecordFields")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_RecordFields_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(RecordFields.class)) { + case FiacrePackage.RECORD_FIELDS__FIELDS: + case FiacrePackage.RECORD_FIELDS__TYPE: + 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 + (FiacrePackage.eINSTANCE.getRecordFields_Fields(), + FiacreFactory.eINSTANCE.createRecordFieldDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getRecordFields_Type(), + FiacreFactory.eINSTANCE.createBooleanType())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordTypeItemProvider.java new file mode 100644 index 0000000..2255bb8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RecordTypeItemProvider.java @@ -0,0 +1,153 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RecordType; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordType} object. + * + * + * @generated + */ +public class RecordTypeItemProvider extends TypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RecordTypeItemProvider(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(FiacrePackage.eINSTANCE.getRecordType_Fields()); + } + 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 RecordType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/RecordType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_RecordType_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(RecordType.class)) { + case FiacrePackage.RECORD_TYPE__FIELDS: + 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 + (FiacrePackage.eINSTANCE.getRecordType_Fields(), + FiacreFactory.eINSTANCE.createRecordFields())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferenceDeclarationUseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferenceDeclarationUseItemProvider.java new file mode 100644 index 0000000..b480453 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferenceDeclarationUseItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse} object. + * + * + * @generated + */ +public class ReferenceDeclarationUseItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ReferenceDeclarationUseItemProvider(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 ReferenceDeclarationUse.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ReferenceDeclarationUse")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ReferenceDeclarationUse_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferenceExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferenceExpressionItemProvider.java new file mode 100644 index 0000000..edc0445 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferenceExpressionItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReferenceExpression} object. + * + * + * @generated + */ +public class ReferenceExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ReferenceExpressionItemProvider(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); + + addDeclarationPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Declaration feature. + * + * + * @generated + */ + protected void addDeclarationPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ReferenceExpression_declaration_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ReferenceExpression_declaration_feature", "_UI_ReferenceExpression_type"), + FiacrePackage.eINSTANCE.getReferenceExpression_Declaration(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns ReferenceExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ReferenceExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ReferenceExpression_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferencedTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferencedTypeItemProvider.java new file mode 100644 index 0000000..ba8d4a3 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReferencedTypeItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReferencedType} object. + * + * + * @generated + */ +public class ReferencedTypeItemProvider extends TypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ReferencedTypeItemProvider(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); + } + 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_ReferencedType_type_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ReferencedType_type_feature", "_UI_ReferencedType_type"), + FiacrePackage.eINSTANCE.getReferencedType_Type(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns ReferencedType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ReferencedType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ReferencedType_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RequirementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RequirementItemProvider.java new file mode 100644 index 0000000..36f286d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RequirementItemProvider.java @@ -0,0 +1,216 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Requirement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Requirement} object. + * + * + * @generated + */ +public class RequirementItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RequirementItemProvider(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); + + addPropertyPropertyDescriptor(object); + addPositivePropertyDescriptor(object); + addNegativePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Property feature. + * + * + * @generated + */ + protected void addPropertyPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Requirement_property_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Requirement_property_feature", "_UI_Requirement_type"), + FiacrePackage.eINSTANCE.getRequirement_Property(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Positive feature. + * + * + * @generated + */ + protected void addPositivePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Requirement_positive_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Requirement_positive_feature", "_UI_Requirement_type"), + FiacrePackage.eINSTANCE.getRequirement_Positive(), + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Negative feature. + * + * + * @generated + */ + protected void addNegativePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Requirement_negative_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Requirement_negative_feature", "_UI_Requirement_type"), + FiacrePackage.eINSTANCE.getRequirement_Negative(), + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns Requirement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Requirement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((Requirement)object).getPositive(); + return label == null || label.length() == 0 ? + getString("_UI_Requirement_type") : + getString("_UI_Requirement_type") + " " + label; + } + + + /** + * This 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(Requirement.class)) { + case FiacrePackage.REQUIREMENT__POSITIVE: + case FiacrePackage.REQUIREMENT__NEGATIVE: + 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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReturnStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReturnStatementItemProvider.java new file mode 100644 index 0000000..5d435ca --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ReturnStatementItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ReturnStatement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReturnStatement} object. + * + * + * @generated + */ +public class ReturnStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ReturnStatementItemProvider(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(FiacrePackage.eINSTANCE.getReturnStatement_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 ReturnStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ReturnStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ReturnStatement_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(ReturnStatement.class)) { + case FiacrePackage.RETURN_STATEMENT__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 + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getReturnStatement_Expression(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RootDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RootDeclarationItemProvider.java new file mode 100644 index 0000000..6c573a9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RootDeclarationItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.RootDeclaration} object. + * + * + * @generated + */ +public class RootDeclarationItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RootDeclarationItemProvider(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 RootDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/RootDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_RootDeclaration_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RootItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RootItemProvider.java new file mode 100644 index 0000000..f33f571 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/RootItemProvider.java @@ -0,0 +1,180 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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.ItemProviderAdapter; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Root} object. + * + * + * @generated + */ +public class RootItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public RootItemProvider(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); + + addDeclarationPropertyDescriptor(object); + addObservedPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Declaration feature. + * + * + * @generated + */ + protected void addDeclarationPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Root_declaration_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Root_declaration_feature", "_UI_Root_type"), + FiacrePackage.eINSTANCE.getRoot_Declaration(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Observed feature. + * + * + * @generated + */ + protected void addObservedPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Root_observed_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Root_observed_feature", "_UI_Root_type"), + FiacrePackage.eINSTANCE.getRoot_Observed(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns Root.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Root")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Root_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SelectStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SelectStatementItemProvider.java new file mode 100644 index 0000000..7de279b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SelectStatementItemProvider.java @@ -0,0 +1,312 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.SelectStatement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.SelectStatement} object. + * + * + * @generated + */ +public class SelectStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public SelectStatementItemProvider(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(FiacrePackage.eINSTANCE.getSelectStatement_Body()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getSelectStatement_Index()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getSelectStatement_Type()); + } + 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 SelectStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SelectStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_SelectStatement_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(SelectStatement.class)) { + case FiacrePackage.SELECT_STATEMENT__BODY: + case FiacrePackage.SELECT_STATEMENT__INDEX: + case FiacrePackage.SELECT_STATEMENT__TYPE: + 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 + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Body(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Index(), + FiacreFactory.eINSTANCE.createVariableDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSelectStatement_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SendStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SendStatementItemProvider.java new file mode 100644 index 0000000..18e5170 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SendStatementItemProvider.java @@ -0,0 +1,405 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.SendStatement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.SendStatement} object. + * + * + * @generated + */ +public class SendStatementItemProvider extends PatternStatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public SendStatementItemProvider(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(FiacrePackage.eINSTANCE.getSendStatement_Port()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getSendStatement_Values()); + } + 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 SendStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SendStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_SendStatement_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(SendStatement.class)) { + case FiacrePackage.SEND_STATEMENT__PORT: + case FiacrePackage.SEND_STATEMENT__VALUES: + 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 + (FiacrePackage.eINSTANCE.getSendStatement_Port(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Port(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Port(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Port(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Port(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Port(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Port(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Port(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSendStatement_Values(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SequencePatternItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SequencePatternItemProvider.java new file mode 100644 index 0000000..52a4326 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SequencePatternItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.SequencePattern} object. + * + * + * @generated + */ +public class SequencePatternItemProvider extends PatternPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public SequencePatternItemProvider(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 SequencePattern.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SequencePattern")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_SequencePattern_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateDeclarationItemProvider.java new file mode 100644 index 0000000..bc2e7b7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateDeclarationItemProvider.java @@ -0,0 +1,110 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.StateDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.StateDeclaration} object. + * + * + * @generated + */ +public class StateDeclarationItemProvider extends NamedElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public StateDeclarationItemProvider(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 StateDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/StateDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((StateDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_StateDeclaration_type") : + getString("_UI_StateDeclaration_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateEventItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateEventItemProvider.java new file mode 100644 index 0000000..0a08bc9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateEventItemProvider.java @@ -0,0 +1,198 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.StateEvent; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.StateEvent} object. + * + * + * @generated + */ +public class StateEventItemProvider extends ObservableEventItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public StateEventItemProvider(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(FiacrePackage.eINSTANCE.getStateEvent_Subject()); + } + 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 StateEvent.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/StateEvent")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_StateEvent_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(StateEvent.class)) { + case FiacrePackage.STATE_EVENT__SUBJECT: + 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 + (FiacrePackage.eINSTANCE.getStateEvent_Subject(), + FiacreFactory.eINSTANCE.createObservableEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStateEvent_Subject(), + FiacreFactory.eINSTANCE.createStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStateEvent_Subject(), + FiacreFactory.eINSTANCE.createEnterStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStateEvent_Subject(), + FiacreFactory.eINSTANCE.createLeaveStateEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStateEvent_Subject(), + FiacreFactory.eINSTANCE.createObservable())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStateEvent_Subject(), + FiacreFactory.eINSTANCE.createPathEvent())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStateEvent_Subject(), + FiacreFactory.eINSTANCE.createObservableDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStateEvent_Subject(), + FiacreFactory.eINSTANCE.createObservableImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStateEvent_Subject(), + FiacreFactory.eINSTANCE.createObservableConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStateEvent_Subject(), + FiacreFactory.eINSTANCE.createObservableNegation())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateSubjectItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateSubjectItemProvider.java new file mode 100644 index 0000000..d48895e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StateSubjectItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.StateSubject} object. + * + * + * @generated + */ +public class StateSubjectItemProvider extends SubjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public StateSubjectItemProvider(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); + + addStatePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the State feature. + * + * + * @generated + */ + protected void addStatePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_StateSubject_state_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_StateSubject_state_feature", "_UI_StateSubject_type"), + FiacrePackage.eINSTANCE.getStateSubject_State(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns StateSubject.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/StateSubject")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_StateSubject_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementChoiceItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementChoiceItemProvider.java new file mode 100644 index 0000000..f138529 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementChoiceItemProvider.java @@ -0,0 +1,298 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.StatementChoice; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.StatementChoice} object. + * + * + * @generated + */ +public class StatementChoiceItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public StatementChoiceItemProvider(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(FiacrePackage.eINSTANCE.getStatementChoice_Choices()); + } + 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 StatementChoice.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/StatementChoice")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_StatementChoice_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(StatementChoice.class)) { + case FiacrePackage.STATEMENT_CHOICE__CHOICES: + 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 + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementChoice_Choices(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementItemProvider.java new file mode 100644 index 0000000..2ee9d53 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.Statement} object. + * + * + * @generated + */ +public class StatementItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public StatementItemProvider(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 Statement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Statement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Statement_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementSequenceItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementSequenceItemProvider.java new file mode 100644 index 0000000..5a85b50 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/StatementSequenceItemProvider.java @@ -0,0 +1,298 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.StatementSequence; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.StatementSequence} object. + * + * + * @generated + */ +public class StatementSequenceItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public StatementSequenceItemProvider(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(FiacrePackage.eINSTANCE.getStatementSequence_Statements()); + } + 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 StatementSequence.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/StatementSequence")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_StatementSequence_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(StatementSequence.class)) { + case FiacrePackage.STATEMENT_SEQUENCE__STATEMENTS: + 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 + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getStatementSequence_Statements(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SubjectItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SubjectItemProvider.java new file mode 100644 index 0000000..8f60e19 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SubjectItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.Subject} object. + * + * + * @generated + */ +public class SubjectItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public SubjectItemProvider(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 Subject.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Subject")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Subject_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SubstractionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SubstractionItemProvider.java new file mode 100644 index 0000000..6298e09 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/SubstractionItemProvider.java @@ -0,0 +1,603 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Substraction; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Substraction} object. + * + * + * @generated + */ +public class SubstractionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public SubstractionItemProvider(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(FiacrePackage.eINSTANCE.getSubstraction_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getSubstraction_Right()); + } + 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 Substraction.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Substraction")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Substraction_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(Substraction.class)) { + case FiacrePackage.SUBSTRACTION__LEFT: + case FiacrePackage.SUBSTRACTION__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Left(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getSubstraction_Right(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * 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 == FiacrePackage.eINSTANCE.getSubstraction_Left() || + childFeature == FiacrePackage.eINSTANCE.getSubstraction_Right(); + + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TagSubjectItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TagSubjectItemProvider.java new file mode 100644 index 0000000..1686cd5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TagSubjectItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.TagSubject} object. + * + * + * @generated + */ +public class TagSubjectItemProvider extends SubjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public TagSubjectItemProvider(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); + + addTagPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Tag feature. + * + * + * @generated + */ + protected void addTagPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_TagSubject_tag_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_TagSubject_tag_feature", "_UI_TagSubject_type"), + FiacrePackage.eINSTANCE.getTagSubject_Tag(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns TagSubject.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/TagSubject")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_TagSubject_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TaggedStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TaggedStatementItemProvider.java new file mode 100644 index 0000000..42e1aa5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TaggedStatementItemProvider.java @@ -0,0 +1,143 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.TaggedStatement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.TaggedStatement} object. + * + * + * @generated + */ +public class TaggedStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public TaggedStatementItemProvider(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_TaggedStatement_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_TaggedStatement_name_feature", "_UI_TaggedStatement_type"), + FiacrePackage.eINSTANCE.getTaggedStatement_Name(), + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns TaggedStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/TaggedStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((TaggedStatement)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_TaggedStatement_type") : + getString("_UI_TaggedStatement_type") + " " + label; + } + + + /** + * This 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(TaggedStatement.class)) { + case FiacrePackage.TAGGED_STATEMENT__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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ToStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ToStatementItemProvider.java new file mode 100644 index 0000000..dfe7b10 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ToStatementItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ToStatement} object. + * + * + * @generated + */ +public class ToStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ToStatementItemProvider(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); + + addStatePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the State feature. + * + * + * @generated + */ + protected void addStatePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ToStatement_state_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ToStatement_state_feature", "_UI_ToStatement_type"), + FiacrePackage.eINSTANCE.getToStatement_State(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns ToStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ToStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ToStatement_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TransitionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TransitionItemProvider.java new file mode 100644 index 0000000..1fd5438 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TransitionItemProvider.java @@ -0,0 +1,331 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Transition; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.Transition} object. + * + * + * @generated + */ +public class TransitionItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public TransitionItemProvider(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(FiacrePackage.eINSTANCE.getTransition_Source()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getTransition_Action()); + } + 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 Transition.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Transition")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Transition_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(Transition.class)) { + case FiacrePackage.TRANSITION__SOURCE: + case FiacrePackage.TRANSITION__ACTION: + 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 + (FiacrePackage.eINSTANCE.getTransition_Source(), + FiacreFactory.eINSTANCE.createTransitionSource())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTransition_Action(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TransitionSourceItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TransitionSourceItemProvider.java new file mode 100644 index 0000000..e665c3e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TransitionSourceItemProvider.java @@ -0,0 +1,157 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.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.ItemProviderAdapter; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.TransitionSource} object. + * + * + * @generated + */ +public class TransitionSourceItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public TransitionSourceItemProvider(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); + + addOriginPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Origin feature. + * + * + * @generated + */ + protected void addOriginPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_TransitionSource_origin_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_TransitionSource_origin_feature", "_UI_TransitionSource_type"), + FiacrePackage.eINSTANCE.getTransitionSource_Origin(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns TransitionSource.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/TransitionSource")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_TransitionSource_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TrueLiteralItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TrueLiteralItemProvider.java new file mode 100644 index 0000000..0f00182 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TrueLiteralItemProvider.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.TrueLiteral} object. + * + * + * @generated + */ +public class TrueLiteralItemProvider extends BooleanLiteralItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public TrueLiteralItemProvider(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 TrueLiteral.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/TrueLiteral")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_TrueLiteral_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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TupleTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TupleTypeItemProvider.java new file mode 100644 index 0000000..6727424 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TupleTypeItemProvider.java @@ -0,0 +1,208 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.TupleType; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.TupleType} object. + * + * + * @generated + */ +public class TupleTypeItemProvider extends TypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public TupleTypeItemProvider(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(FiacrePackage.eINSTANCE.getTupleType_Types()); + } + 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 TupleType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/TupleType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_TupleType_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(TupleType.class)) { + case FiacrePackage.TUPLE_TYPE__TYPES: + 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 + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTupleType_Types(), + FiacreFactory.eINSTANCE.createBooleanType())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeDeclarationItemProvider.java new file mode 100644 index 0000000..2088784 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeDeclarationItemProvider.java @@ -0,0 +1,239 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.TypeDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.TypeDeclaration} object. + * + * + * @generated + */ +public class TypeDeclarationItemProvider extends TypeDeclarationUseItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public TypeDeclarationItemProvider(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"), + FiacrePackage.eINSTANCE.getNamedElement_Name(), + 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(FiacrePackage.eINSTANCE.getTypeDeclaration_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 TypeDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/TypeDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((TypeDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_TypeDeclaration_type") : + getString("_UI_TypeDeclaration_type") + " " + label; + } + + + /** + * This 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(TypeDeclaration.class)) { + case FiacrePackage.TYPE_DECLARATION__NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case FiacrePackage.TYPE_DECLARATION__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 + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getTypeDeclaration_Value(), + FiacreFactory.eINSTANCE.createBooleanType())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeDeclarationUseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeDeclarationUseItemProvider.java new file mode 100644 index 0000000..60ebe06 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeDeclarationUseItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse} object. + * + * + * @generated + */ +public class TypeDeclarationUseItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public TypeDeclarationUseItemProvider(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 TypeDeclarationUse.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/TypeDeclarationUse")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_TypeDeclarationUse_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeItemProvider.java new file mode 100644 index 0000000..1a921ca --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/TypeItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.Type} object. + * + * + * @generated + */ +public class TypeItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public TypeItemProvider(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 Type.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Type")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Type_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryCoerceExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryCoerceExpressionItemProvider.java new file mode 100644 index 0000000..ab844f0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryCoerceExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression} object. + * + * + * @generated + */ +public class UnaryCoerceExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnaryCoerceExpressionItemProvider(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(FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child()); + } + 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 UnaryCoerceExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnaryCoerceExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnaryCoerceExpression_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(UnaryCoerceExpression.class)) { + case FiacrePackage.UNARY_COERCE_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryDeQueueExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryDeQueueExpressionItemProvider.java new file mode 100644 index 0000000..0564c5f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryDeQueueExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression} object. + * + * + * @generated + */ +public class UnaryDeQueueExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnaryDeQueueExpressionItemProvider(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(FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child()); + } + 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 UnaryDeQueueExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnaryDeQueueExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnaryDeQueueExpression_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(UnaryDeQueueExpression.class)) { + case FiacrePackage.UNARY_DE_QUEUE_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryEmptyExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryEmptyExpressionItemProvider.java new file mode 100644 index 0000000..04d2dd7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryEmptyExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression} object. + * + * + * @generated + */ +public class UnaryEmptyExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnaryEmptyExpressionItemProvider(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(FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child()); + } + 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 UnaryEmptyExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnaryEmptyExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnaryEmptyExpression_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(UnaryEmptyExpression.class)) { + case FiacrePackage.UNARY_EMPTY_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryFirstExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryFirstExpressionItemProvider.java new file mode 100644 index 0000000..906d159 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryFirstExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression} object. + * + * + * @generated + */ +public class UnaryFirstExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnaryFirstExpressionItemProvider(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(FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child()); + } + 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 UnaryFirstExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnaryFirstExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnaryFirstExpression_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(UnaryFirstExpression.class)) { + case FiacrePackage.UNARY_FIRST_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryFullExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryFullExpressionItemProvider.java new file mode 100644 index 0000000..f956819 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryFullExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryFullExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryFullExpression} object. + * + * + * @generated + */ +public class UnaryFullExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnaryFullExpressionItemProvider(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(FiacrePackage.eINSTANCE.getUnaryFullExpression_Child()); + } + 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 UnaryFullExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnaryFullExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnaryFullExpression_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(UnaryFullExpression.class)) { + case FiacrePackage.UNARY_FULL_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryFullExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryLengthExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryLengthExpressionItemProvider.java new file mode 100644 index 0000000..b3ac644 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryLengthExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression} object. + * + * + * @generated + */ +public class UnaryLengthExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnaryLengthExpressionItemProvider(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(FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child()); + } + 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 UnaryLengthExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnaryLengthExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnaryLengthExpression_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(UnaryLengthExpression.class)) { + case FiacrePackage.UNARY_LENGTH_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryMinusExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryMinusExpressionItemProvider.java new file mode 100644 index 0000000..bf3add5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryMinusExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression} object. + * + * + * @generated + */ +public class UnaryMinusExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnaryMinusExpressionItemProvider(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(FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child()); + } + 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 UnaryMinusExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnaryMinusExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnaryMinusExpression_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(UnaryMinusExpression.class)) { + case FiacrePackage.UNARY_MINUS_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryNegationExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryNegationExpressionItemProvider.java new file mode 100644 index 0000000..45bf81b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryNegationExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression} object. + * + * + * @generated + */ +public class UnaryNegationExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnaryNegationExpressionItemProvider(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(FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child()); + } + 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 UnaryNegationExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnaryNegationExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnaryNegationExpression_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(UnaryNegationExpression.class)) { + case FiacrePackage.UNARY_NEGATION_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryPlusExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryPlusExpressionItemProvider.java new file mode 100644 index 0000000..08808f1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnaryPlusExpressionItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression} object. + * + * + * @generated + */ +public class UnaryPlusExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnaryPlusExpressionItemProvider(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(FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child()); + } + 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 UnaryPlusExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnaryPlusExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnaryPlusExpression_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(UnaryPlusExpression.class)) { + case FiacrePackage.UNARY_PLUS_EXPRESSION__CHILD: + 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 + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagDeclarationItemProvider.java new file mode 100644 index 0000000..4633737 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagDeclarationItemProvider.java @@ -0,0 +1,110 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration} object. + * + * + * @generated + */ +public class UnionTagDeclarationItemProvider extends NamedElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnionTagDeclarationItemProvider(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 UnionTagDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnionTagDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((UnionTagDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_UnionTagDeclaration_type") : + getString("_UI_UnionTagDeclaration_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagDeclarationUseItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagDeclarationUseItemProvider.java new file mode 100644 index 0000000..c61aaaf --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagDeclarationUseItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.UnionTagDeclarationUse} object. + * + * + * @generated + */ +public class UnionTagDeclarationUseItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnionTagDeclarationUseItemProvider(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 UnionTagDeclarationUse.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnionTagDeclarationUse")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnionTagDeclarationUse_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagsItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagsItemProvider.java new file mode 100644 index 0000000..187aad2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTagsItemProvider.java @@ -0,0 +1,241 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnionTags; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionTags} object. + * + * + * @generated + */ +public class UnionTagsItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnionTagsItemProvider(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(FiacrePackage.eINSTANCE.getUnionTags_Tags()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getUnionTags_Type()); + } + 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 UnionTags.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnionTags")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnionTags_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(UnionTags.class)) { + case FiacrePackage.UNION_TAGS__TAGS: + case FiacrePackage.UNION_TAGS__TYPE: + 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 + (FiacrePackage.eINSTANCE.getUnionTags_Tags(), + FiacreFactory.eINSTANCE.createUnionTagDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnionTags_Type(), + FiacreFactory.eINSTANCE.createBooleanType())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTypeItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTypeItemProvider.java new file mode 100644 index 0000000..8825421 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnionTypeItemProvider.java @@ -0,0 +1,153 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnionType; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionType} object. + * + * + * @generated + */ +public class UnionTypeItemProvider extends TypeItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnionTypeItemProvider(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(FiacrePackage.eINSTANCE.getUnionType_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); + } + + /** + * This returns UnionType.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnionType")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnionType_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(UnionType.class)) { + case FiacrePackage.UNION_TYPE__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 + (FiacrePackage.eINSTANCE.getUnionType_Tags(), + FiacreFactory.eINSTANCE.createUnionTags())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnlessStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnlessStatementItemProvider.java new file mode 100644 index 0000000..4d86b1e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UnlessStatementItemProvider.java @@ -0,0 +1,298 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnlessStatement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnlessStatement} object. + * + * + * @generated + */ +public class UnlessStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UnlessStatementItemProvider(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(FiacrePackage.eINSTANCE.getUnlessStatement_Followers()); + } + 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 UnlessStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UnlessStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnlessStatement_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(UnlessStatement.class)) { + case FiacrePackage.UNLESS_STATEMENT__FOLLOWERS: + 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 + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getUnlessStatement_Followers(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UpperBoundItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UpperBoundItemProvider.java new file mode 100644 index 0000000..e959402 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/UpperBoundItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.UpperBound} object. + * + * + * @generated + */ +public class UpperBoundItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public UpperBoundItemProvider(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 UpperBound.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/UpperBound")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UpperBound_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ValueExpressionItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ValueExpressionItemProvider.java new file mode 100644 index 0000000..9dda229 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ValueExpressionItemProvider.java @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import java.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 fr.irit.fiacre.xtext.fiacre.ValueExpression} object. + * + * + * @generated + */ +public class ValueExpressionItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * 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; + } + + /** + * This returns ValueExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ValueExpression")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ValueExpression_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 FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ValueSubjectItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ValueSubjectItemProvider.java new file mode 100644 index 0000000..b7c3375 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/ValueSubjectItemProvider.java @@ -0,0 +1,363 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ValueSubject; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.ValueSubject} object. + * + * + * @generated + */ +public class ValueSubjectItemProvider extends SubjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public ValueSubjectItemProvider(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(FiacrePackage.eINSTANCE.getValueSubject_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 ValueSubject.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ValueSubject")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_ValueSubject_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(ValueSubject.class)) { + case FiacrePackage.VALUE_SUBJECT__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 + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getValueSubject_Value(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableDeclarationItemProvider.java new file mode 100644 index 0000000..47b309c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableDeclarationItemProvider.java @@ -0,0 +1,110 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariableDeclaration} object. + * + * + * @generated + */ +public class VariableDeclarationItemProvider extends NamedElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public VariableDeclarationItemProvider(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 VariableDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/VariableDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((VariableDeclaration)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_VariableDeclaration_type") : + getString("_UI_VariableDeclaration_type") + " " + label; + } + + + /** + * This 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableLowerBoundItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableLowerBoundItemProvider.java new file mode 100644 index 0000000..72d3b25 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableLowerBoundItemProvider.java @@ -0,0 +1,133 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.VariableLowerBound; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariableLowerBound} object. + * + * + * @generated + */ +public class VariableLowerBoundItemProvider extends LowerBoundItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public VariableLowerBoundItemProvider(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); + } + 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_VariableLowerBound_variable_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_VariableLowerBound_variable_feature", "_UI_VariableLowerBound_type"), + FiacrePackage.eINSTANCE.getVariableLowerBound_Variable(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns VariableLowerBound.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/VariableLowerBound")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + VariableLowerBound variableLowerBound = (VariableLowerBound)object; + return getString("_UI_VariableLowerBound_type") + " " + variableLowerBound.isLeft(); + } + + + /** + * This 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableUpperBoundItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableUpperBoundItemProvider.java new file mode 100644 index 0000000..a60a176 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariableUpperBoundItemProvider.java @@ -0,0 +1,188 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.VariableUpperBound; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound} object. + * + * + * @generated + */ +public class VariableUpperBoundItemProvider extends UpperBoundItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public VariableUpperBoundItemProvider(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); + addLeftPropertyDescriptor(object); + addRightPropertyDescriptor(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_VariableUpperBound_variable_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_VariableUpperBound_variable_feature", "_UI_VariableUpperBound_type"), + FiacrePackage.eINSTANCE.getVariableUpperBound_Variable(), + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Left feature. + * + * + * @generated + */ + protected void addLeftPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_VariableUpperBound_left_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_VariableUpperBound_left_feature", "_UI_VariableUpperBound_type"), + FiacrePackage.eINSTANCE.getVariableUpperBound_Left(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Right feature. + * + * + * @generated + */ + protected void addRightPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_VariableUpperBound_right_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_VariableUpperBound_right_feature", "_UI_VariableUpperBound_type"), + FiacrePackage.eINSTANCE.getVariableUpperBound_Right(), + true, + false, + false, + ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns VariableUpperBound.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/VariableUpperBound")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + VariableUpperBound variableUpperBound = (VariableUpperBound)object; + return getString("_UI_VariableUpperBound_type") + " " + variableUpperBound.isLeft(); + } + + + /** + * This 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(VariableUpperBound.class)) { + case FiacrePackage.VARIABLE_UPPER_BOUND__LEFT: + case FiacrePackage.VARIABLE_UPPER_BOUND__RIGHT: + 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/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariablesDeclarationItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariablesDeclarationItemProvider.java new file mode 100644 index 0000000..039232e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/VariablesDeclarationItemProvider.java @@ -0,0 +1,458 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.VariablesDeclaration; + +import java.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.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; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration} object. + * + * + * @generated + */ +public class VariablesDeclarationItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public VariablesDeclarationItemProvider(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(FiacrePackage.eINSTANCE.getVariablesDeclaration_Variables()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getVariablesDeclaration_Type()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getVariablesDeclaration_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 VariablesDeclaration.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/VariablesDeclaration")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_VariablesDeclaration_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(VariablesDeclaration.class)) { + case FiacrePackage.VARIABLES_DECLARATION__VARIABLES: + case FiacrePackage.VARIABLES_DECLARATION__TYPE: + case FiacrePackage.VARIABLES_DECLARATION__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 + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Variables(), + FiacreFactory.eINSTANCE.createVariableDeclaration())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createBasicType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createRangeType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createUnionType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createRecordType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createQueueType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createArrayType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createReferencedType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createTupleType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createNaturalType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createIntegerType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Type(), + FiacreFactory.eINSTANCE.createBooleanType())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getVariablesDeclaration_Value(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return FiacreEditPlugin.INSTANCE; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/WaitStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/WaitStatementItemProvider.java new file mode 100644 index 0000000..fcb79ab --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/WaitStatementItemProvider.java @@ -0,0 +1,195 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.WaitStatement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.WaitStatement} object. + * + * + * @generated + */ +public class WaitStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public WaitStatementItemProvider(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(FiacrePackage.eINSTANCE.getWaitStatement_Left()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getWaitStatement_Right()); + } + 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 WaitStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/WaitStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_WaitStatement_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(WaitStatement.class)) { + case FiacrePackage.WAIT_STATEMENT__LEFT: + case FiacrePackage.WAIT_STATEMENT__RIGHT: + 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 + (FiacrePackage.eINSTANCE.getWaitStatement_Left(), + FiacreFactory.eINSTANCE.createLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWaitStatement_Left(), + FiacreFactory.eINSTANCE.createNaturalLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWaitStatement_Left(), + FiacreFactory.eINSTANCE.createDecimalLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWaitStatement_Left(), + FiacreFactory.eINSTANCE.createVariableLowerBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWaitStatement_Right(), + FiacreFactory.eINSTANCE.createUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWaitStatement_Right(), + FiacreFactory.eINSTANCE.createNaturalUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWaitStatement_Right(), + FiacreFactory.eINSTANCE.createDecimalUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWaitStatement_Right(), + FiacreFactory.eINSTANCE.createVariableUpperBound())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWaitStatement_Right(), + FiacreFactory.eINSTANCE.createInfiniteUpperBound())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/WhileStatementItemProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/WhileStatementItemProvider.java new file mode 100644 index 0000000..4dffb71 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.edit/src/fr/irit/fiacre/xtext/fiacre/provider/WhileStatementItemProvider.java @@ -0,0 +1,515 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.provider; + + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.WhileStatement; + +import java.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; + +/** + * This is the item provider adapter for a {@link fr.irit.fiacre.xtext.fiacre.WhileStatement} object. + * + * + * @generated + */ +public class WhileStatementItemProvider extends StatementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public WhileStatementItemProvider(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(FiacrePackage.eINSTANCE.getWhileStatement_Condition()); + childrenFeatures.add(FiacrePackage.eINSTANCE.getWhileStatement_Body()); + } + 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 WhileStatement.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/WhileStatement")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_WhileStatement_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(WhileStatement.class)) { + case FiacrePackage.WHILE_STATEMENT__CONDITION: + case FiacrePackage.WHILE_STATEMENT__BODY: + 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 + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createReferenceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createIdentifierExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createRecordExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createArrayExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createEnqueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createAppendExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createLiteralExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createBooleanLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createNaturalLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createAllExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createExistsExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createConditional())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createDisjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createImplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createConjunction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonNotEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonLesser())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonLesserEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonGreater())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createComparisonGreaterEqual())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createAddition())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createSubstraction())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createMultiplication())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createDivision())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createModulo())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryPlusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryMinusExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryNegationExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryFirstExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryLengthExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryCoerceExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryFullExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryDeQueueExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createUnaryEmptyExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createProjection())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createConstructionExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createArrayAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createRecordAccessExpression())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createTrueLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Condition(), + FiacreFactory.eINSTANCE.createFalseLiteral())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createBlockStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createReturnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createNullStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createTaggedStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createPatternStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createAnyPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createConstantPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createIntegerPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createIdentifierPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createConditionalStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createSelectStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createWhileStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createForeachStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createToStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createCaseStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createLoopStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createOnStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createWaitStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createUnlessStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createStatementChoice())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createStatementSequence())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createAssignStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createAssignAnyStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createSendStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createReceiveStatement())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createConstructorPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createArrayAccessPattern())); + + newChildDescriptors.add + (createChildParameter + (FiacrePackage.eINSTANCE.getWhileStatement_Body(), + FiacreFactory.eINSTANCE.createRecordAccessPattern())); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.editor/.classpath b/eclipse/plugins/fr.irit.fiacre.xtext.editor/.classpath new file mode 100644 index 0000000..22f3064 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.editor/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.editor/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.editor/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.editor/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.editor/.project b/eclipse/plugins/fr.irit.fiacre.xtext.editor/.project new file mode 100644 index 0000000..36a9b8e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.editor/.project @@ -0,0 +1,28 @@ + + + fr.irit.fiacre.xtext.editor + + + + + + 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/eclipse/plugins/fr.irit.fiacre.xtext.editor/META-INF/MANIFEST.MF b/eclipse/plugins/fr.irit.fiacre.xtext.editor/META-INF/MANIFEST.MF new file mode 100644 index 0000000..8d7a1d8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.editor/META-INF/MANIFEST.MF @@ -0,0 +1,18 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: fr.irit.fiacre.xtext.editor;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: fr.irit.fiacre.xtext.fiacre.presentation.FiacreEditorPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Export-Package: fr.irit.fiacre.xtext.fiacre.presentation +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.resources;visibility:=reexport, + fr.irit.fiacre.xtext.edit;visibility:=reexport, + org.eclipse.emf.ecore.xmi;visibility:=reexport, + org.eclipse.emf.edit.ui;visibility:=reexport, + org.eclipse.ui.ide;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.editor/build.properties b/eclipse/plugins/fr.irit.fiacre.xtext.editor/build.properties new file mode 100644 index 0000000..3d5a0e5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.editor/build.properties @@ -0,0 +1,20 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +# generated by Xtext 2.10.0 + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.editor/icons/full/obj16/FiacreModelFile.gif b/eclipse/plugins/fr.irit.fiacre.xtext.editor/icons/full/obj16/FiacreModelFile.gif new file mode 100644 index 0000000000000000000000000000000000000000..7cd31fe01e05cd96f0459e958af85c162b77fe7f GIT binary patch literal 346 zcmZ?wbhEHb6krfwxXQrL(9jScAHRS9{{Q#qA2@IT$YuD?z`*by$o~Hy%=-WT>yO_@ zZ@ihm|9<7NOIs$`0?~$kyEQ!y%e$QxbvVy$b)DYi)?DseSL#Ro4^H&| z{PpMi&)-13pT7S7@b&lGPrqJ$_<8^3k2}x511+EyQ2fcl$iTqHpaU`x-J6DpT9S}NvU;BC?T8L?hwWg*k6D(jn`6NR+e<(>&FjS$?)$=?(mq8a7(!~J2S zd}NoniV81l3vZLSD^o!$OG_b>D}NO)%d~#}uAZs=EE8QMR8`wr7fHBEs;#QxU!^AL VDz!2OsYXF_sd#eBd literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.editor/icons/full/wizban/NewFiacre.gif b/eclipse/plugins/fr.irit.fiacre.xtext.editor/icons/full/wizban/NewFiacre.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c827789db08d774004c378401f811e2e59663ca GIT binary patch literal 2462 zcmd6m`8OMg8ivzyXM`x-QPZJfTAHHK&QR5jT4P#9t7t6^##XzkW!$Ks6H6r4G!aW; zt;8;gy<$ls42=?%D3Kz9#?qG288hx*ao_Wt_s8!%-#OoBZEIy>>TM6W1^5Ek&)(kN z+WPj|`WHHLVuΞ?0RA8>{QvW^U=`?iuFp>7TZD`}r%y-S1;7-dK2N--cr?y|b<0 zSSvWj#y7_yApcHK;hmrY$0s6xtFY9X$lobXGwR~d4ZmTVe#0~-7toLeG*nT0dQk_4)PvopJFlV_SKWuJ zW)f-#itAV<`wWsBIW_bVYWpaSIYIB6?BxnrW3#;JrSa*-3894letAZ`CJ?PGNH@ij z^{Wpvu06^$f0%yVBkQ_H=1niO<>P<1z*zg{SovV=e$9miE&$iC73F8~zw0CEbNHuWX1lNFBYKlC>`anK2*V@EI< z)2>ce)e97yyO@tiQ!|Xvw8eTs(zGo6Ane9@+g$yNt%Pcs4*;zPr;^#5evo2?h~PUO4MC_>wMfRQ1Az>G~#;lAyDhiySg_C{I*1Dt?c_;8A8bBu@-WY*Er>dN_ zsj92@@9g=mm!DQXH2lik(?FjO^Lt$sy?fQwoXTgIDJ`D~xr+N>(+p2LsUi*C zac>txg>k1pEzCp%hiO81E#m|`vH6D0(6f5(8AY$c1Ae(7hR2`HMn|b%Dh>x3k50YWRP}KTcp#wME)rfZ7 zGFkijXH&yUh1KVV=wP>mivvM{-0)wnv!Qk@9k}yG`Ps^qdWz~vF|_OWAKV_Ux{^RU z4J-RPT~6jcZaimK!ma1IUi$T9ZxE`4>NY%dD!w67}WWRlaM$}s(PG5 zp-lxt_hi_(hFS^_5_+D{(qS?EXEa)+ueNz6o+qHApB#1u8UJ$Bqmg}6XC_+s?S)Q1 zZmh*2#uUk&i}(;cXlWvF9U7K#=o(;%q#U1kWjV)e)b(OXbLQf-%ivn9=(Y+t?ju7w zvP*lVBL8(ZCFa^sLZGsR(tMU@?d}`w7v*OFrWY}1q5f1cR9Nyo`7fam-D%b>a`}1G z=ykitU+qe-2$DSy3)XJMv2NB_-2n-1#0Z2ayy$4}FO4kJxpeuagKsE&&+g@y?bfzB zu{d0MXC-4!6?#t^C)K>{Bn4Jh$t@Q&thD z0?Y1Q&j7DY^~I##8{cT+8(2D* zn3(KfE8`3!wynk-*7~mY&>@kvp&mLa#f_w4&d;~B+sLhg>FTF@v0?XR_kohzgMXg@ zI5x0TPeH|ZVAUKCA~p{#ATb}~?0XJ#LP?qmM`PFk&$1)Oh7lFuOql}sq4fT$@e9Kx z@@YrCrqucL6eG2s3_l|hVG*`yIvmS^Z2%D{3)YX}rgr+5wK8q(Dqc|AMy({@Nw%nWHUV;KhX?P|iK>#YL1X12|N#TsA!R)sVHe5C3gWs1Tr&(i^!`?|44vYpj!?xore#UhJ- z06pguT-5$^5R~@g_z(A$^=F?S&LC4Gv$Aa-5dVxZk2?-Nfqii6UW&#WA5>%ELDL#r zT^#Z|Cx=?4pa;&o&e;dZm(@D~sb1gO^LsTu*QXx;=7tLi=>$-&^U?LcidRcN00NxI zV-LZ#NCm?Sy1+PZ7}OFkKT!BNw>%R`6y#r*&}gr&t0{CVjVO!0F0D z7#BR+I8tay!VdRS{u`GUc+2nI{e%6AXT4FtkZ9? + + + + + + + + + + + + + %_UI_FiacreModelWizard_description + + + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreActionBarContributor.java b/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreActionBarContributor.java new file mode 100644 index 0000000..5a13a56 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreActionBarContributor.java @@ -0,0 +1,434 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.presentation; + +import java.util.ArrayList; +import java.util.Collection; + +import org.eclipse.emf.common.ui.viewer.IViewerProvider; + +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; + +import org.eclipse.emf.edit.ui.action.ControlAction; +import org.eclipse.emf.edit.ui.action.CreateChildAction; +import org.eclipse.emf.edit.ui.action.CreateSiblingAction; +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; +import org.eclipse.emf.edit.ui.action.LoadResourceAction; +import org.eclipse.emf.edit.ui.action.ValidateAction; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.ActionContributionItem; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IContributionItem; +import org.eclipse.jface.action.IContributionManager; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.action.SubContributionItem; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.Viewer; + +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.PartInitException; + +/** + * This is the action bar contributor for the Fiacre model editor. + * + * + * @generated + */ +public class FiacreActionBarContributor + extends EditingDomainActionBarContributor + implements ISelectionChangedListener { + /** + * This keeps track of the active editor. + * + * + * @generated + */ + protected IEditorPart activeEditorPart; + + /** + * This keeps track of the current selection provider. + * + * + * @generated + */ + protected ISelectionProvider selectionProvider; + + /** + * This action opens the Properties view. + * + * + * @generated + */ + protected IAction showPropertiesViewAction = + new Action(FiacreEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) { + @Override + public void run() { + try { + getPage().showView("org.eclipse.ui.views.PropertySheet"); + } + catch (PartInitException exception) { + FiacreEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * This action refreshes the viewer of the current editor if the editor + * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}. + * + * + * @generated + */ + protected IAction refreshViewerAction = + new Action(FiacreEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) { + @Override + public boolean isEnabled() { + return activeEditorPart instanceof IViewerProvider; + } + + @Override + public void run() { + if (activeEditorPart instanceof IViewerProvider) { + Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer(); + if (viewer != null) { + viewer.refresh(); + } + } + } + }; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * + * + * @generated + */ + protected Collection createChildActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateChild actions. + * + * + * @generated + */ + protected IMenuManager createChildMenuManager; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * + * + * @generated + */ + protected Collection createSiblingActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateSibling actions. + * + * + * @generated + */ + protected IMenuManager createSiblingMenuManager; + + /** + * This creates an instance of the contributor. + * + * + * @generated + */ + public FiacreActionBarContributor() { + super(ADDITIONS_LAST_STYLE); + loadResourceAction = new LoadResourceAction(); + validateAction = new ValidateAction(); + controlAction = new ControlAction(); + } + + /** + * This adds Separators for editor additions to the tool bar. + * + * + * @generated + */ + @Override + public void contributeToToolBar(IToolBarManager toolBarManager) { + toolBarManager.add(new Separator("fiacre-settings")); + toolBarManager.add(new Separator("fiacre-additions")); + } + + /** + * This adds to the menu bar a menu and some separators for editor additions, + * as well as the sub-menus for object creation items. + * + * + * @generated + */ + @Override + public void contributeToMenu(IMenuManager menuManager) { + super.contributeToMenu(menuManager); + + IMenuManager submenuManager = new MenuManager(FiacreEditorPlugin.INSTANCE.getString("_UI_FiacreEditor_menu"), "fr.irit.fiacre.xtext.fiacreMenuID"); + menuManager.insertAfter("additions", submenuManager); + submenuManager.add(new Separator("settings")); + submenuManager.add(new Separator("actions")); + submenuManager.add(new Separator("additions")); + submenuManager.add(new Separator("additions-end")); + + // Prepare for CreateChild item addition or removal. + // + createChildMenuManager = new MenuManager(FiacreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + submenuManager.insertBefore("additions", createChildMenuManager); + + // Prepare for CreateSibling item addition or removal. + // + createSiblingMenuManager = new MenuManager(FiacreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + submenuManager.insertBefore("additions", createSiblingMenuManager); + + // Force an update because Eclipse hides empty menus now. + // + submenuManager.addMenuListener + (new IMenuListener() { + public void menuAboutToShow(IMenuManager menuManager) { + menuManager.updateAll(true); + } + }); + + addGlobalActions(submenuManager); + } + + /** + * When the active editor changes, this remembers the change and registers with it as a selection provider. + * + * + * @generated + */ + @Override + public void setActiveEditor(IEditorPart part) { + super.setActiveEditor(part); + activeEditorPart = part; + + // Switch to the new selection provider. + // + if (selectionProvider != null) { + selectionProvider.removeSelectionChangedListener(this); + } + if (part == null) { + selectionProvider = null; + } + else { + selectionProvider = part.getSite().getSelectionProvider(); + selectionProvider.addSelectionChangedListener(this); + + // Fake a selection changed event to update the menus. + // + if (selectionProvider.getSelection() != null) { + selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection())); + } + } + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener}, + * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings + * that can be added to the selected object and updating the menus accordingly. + * + * + * @generated + */ + public void selectionChanged(SelectionChangedEvent event) { + // Remove any menu items for old selection. + // + if (createChildMenuManager != null) { + depopulateManager(createChildMenuManager, createChildActions); + } + if (createSiblingMenuManager != null) { + depopulateManager(createSiblingMenuManager, createSiblingActions); + } + + // Query the new selection for appropriate new child/sibling descriptors + // + Collection newChildDescriptors = null; + Collection newSiblingDescriptors = null; + + ISelection selection = event.getSelection(); + if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) { + Object object = ((IStructuredSelection)selection).getFirstElement(); + + EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain(); + + newChildDescriptors = domain.getNewChildDescriptors(object, null); + newSiblingDescriptors = domain.getNewChildDescriptors(null, object); + } + + // Generate actions for selection; populate and redraw the menus. + // + createChildActions = generateCreateChildActions(newChildDescriptors, selection); + createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection); + + if (createChildMenuManager != null) { + populateManager(createChildMenuManager, createChildActions, null); + createChildMenuManager.update(true); + } + if (createSiblingMenuManager != null) { + populateManager(createSiblingMenuManager, createSiblingActions, null); + createSiblingMenuManager.update(true); + } + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in descriptors, + * and returns the collection of these actions. + * + * + * @generated + */ + protected Collection generateCreateChildActions(Collection descriptors, ISelection selection) { + Collection actions = new ArrayList(); + if (descriptors != null) { + for (Object descriptor : descriptors) { + actions.add(new CreateChildAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in descriptors, + * and returns the collection of these actions. + * + * + * @generated + */ + protected Collection generateCreateSiblingActions(Collection descriptors, ISelection selection) { + Collection actions = new ArrayList(); + if (descriptors != null) { + for (Object descriptor : descriptors) { + actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This populates the specified manager with {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the actions collection, + * by inserting them before the specified contribution item contributionID. + * If contributionID is null, they are simply added. + * + * + * @generated + */ + protected void populateManager(IContributionManager manager, Collection actions, String contributionID) { + if (actions != null) { + for (IAction action : actions) { + if (contributionID != null) { + manager.insertBefore(contributionID, action); + } + else { + manager.add(action); + } + } + } + } + + /** + * This removes from the specified manager all {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the actions collection. + * + * + * @generated + */ + protected void depopulateManager(IContributionManager manager, Collection actions) { + if (actions != null) { + IContributionItem[] items = manager.getItems(); + for (int i = 0; i < items.length; i++) { + // Look into SubContributionItems + // + IContributionItem contributionItem = items[i]; + while (contributionItem instanceof SubContributionItem) { + contributionItem = ((SubContributionItem)contributionItem).getInnerItem(); + } + + // Delete the ActionContributionItems with matching action. + // + if (contributionItem instanceof ActionContributionItem) { + IAction action = ((ActionContributionItem)contributionItem).getAction(); + if (actions.contains(action)) { + manager.remove(contributionItem); + } + } + } + } + } + + /** + * This populates the pop-up menu before it appears. + * + * + * @generated + */ + @Override + public void menuAboutToShow(IMenuManager menuManager) { + super.menuAboutToShow(menuManager); + MenuManager submenuManager = null; + + submenuManager = new MenuManager(FiacreEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + populateManager(submenuManager, createChildActions, null); + menuManager.insertBefore("edit", submenuManager); + + submenuManager = new MenuManager(FiacreEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + populateManager(submenuManager, createSiblingActions, null); + menuManager.insertBefore("edit", submenuManager); + } + + /** + * This inserts global actions before the "additions-end" separator. + * + * + * @generated + */ + @Override + protected void addGlobalActions(IMenuManager menuManager) { + menuManager.insertAfter("additions-end", new Separator("ui-actions")); + menuManager.insertAfter("ui-actions", showPropertiesViewAction); + + refreshViewerAction.setEnabled(refreshViewerAction.isEnabled()); + menuManager.insertAfter("ui-actions", refreshViewerAction); + + super.addGlobalActions(menuManager); + } + + /** + * This ensures that a delete action will clean up all references to deleted objects. + * + * + * @generated + */ + @Override + protected boolean removeAllReferencesOnDelete() { + return true; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreEditor.java b/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreEditor.java new file mode 100644 index 0000000..74cb0a8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreEditor.java @@ -0,0 +1,1830 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.presentation; + + +import java.io.IOException; +import java.io.InputStream; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.EventObject; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceDeltaVisitor; +import org.eclipse.core.resources.ResourcesPlugin; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; + +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IStatusLineManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; + +import org.eclipse.jface.util.LocalSelectionTransfer; + +import org.eclipse.jface.viewers.ColumnWeightData; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.ListViewer; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.StructuredViewer; +import org.eclipse.jface.viewers.TableLayout; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.viewers.Viewer; + +import org.eclipse.swt.SWT; + +import org.eclipse.swt.custom.CTabFolder; + +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.FileTransfer; +import org.eclipse.swt.dnd.Transfer; + +import org.eclipse.swt.events.ControlAdapter; +import org.eclipse.swt.events.ControlEvent; + +import org.eclipse.swt.graphics.Point; + +import org.eclipse.swt.layout.FillLayout; + +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.swt.widgets.TreeColumn; + +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IPartListener; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PartInitException; + +import org.eclipse.ui.dialogs.SaveAsDialog; + +import org.eclipse.ui.ide.IGotoMarker; + +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.part.MultiPageEditorPart; + +import org.eclipse.ui.views.contentoutline.ContentOutline; +import org.eclipse.ui.views.contentoutline.ContentOutlinePage; +import org.eclipse.ui.views.contentoutline.IContentOutlinePage; + +import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.eclipse.ui.views.properties.PropertySheet; +import org.eclipse.ui.views.properties.PropertySheetPage; + +import org.eclipse.emf.common.command.BasicCommandStack; +import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.command.CommandStack; +import org.eclipse.emf.common.command.CommandStackListener; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.ui.MarkerHelper; +import org.eclipse.emf.common.ui.ViewerPane; + +import org.eclipse.emf.common.ui.editor.ProblemEditorPart; + +import org.eclipse.emf.common.ui.viewer.IViewerProvider; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.URI; + + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; + +import org.eclipse.emf.ecore.util.EContentAdapter; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; + +import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; + +import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; + +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; + +import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor; + +import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter; +import org.eclipse.emf.edit.ui.dnd.LocalTransfer; +import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter; + +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider; + +import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper; +import org.eclipse.emf.edit.ui.util.EditUIUtil; + +import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage; + +import fr.irit.fiacre.xtext.fiacre.provider.FiacreItemProviderAdapterFactory; + +import org.eclipse.ui.actions.WorkspaceModifyOperation; + + +/** + * This is an example of a Fiacre model editor. + * + * + * @generated + */ +public class FiacreEditor + extends MultiPageEditorPart + implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker { + /** + * This keeps track of the editing domain that is used to track all changes to the model. + * + * + * @generated + */ + protected AdapterFactoryEditingDomain editingDomain; + + /** + * This is the one adapter factory used for providing views of the model. + * + * + * @generated + */ + protected ComposedAdapterFactory adapterFactory; + + /** + * This is the content outline page. + * + * + * @generated + */ + protected IContentOutlinePage contentOutlinePage; + + /** + * This is a kludge... + * + * + * @generated + */ + protected IStatusLineManager contentOutlineStatusLineManager; + + /** + * This is the content outline page's viewer. + * + * + * @generated + */ + protected TreeViewer contentOutlineViewer; + + /** + * This is the property sheet page. + * + * + * @generated + */ + protected List propertySheetPages = new ArrayList(); + + /** + * This is the viewer that shadows the selection in the content outline. + * The parent relation must be correctly defined for this to work. + * + * + * @generated + */ + protected TreeViewer selectionViewer; + + /** + * This inverts the roll of parent and child in the content provider and show parents as a tree. + * + * + * @generated + */ + protected TreeViewer parentViewer; + + /** + * This shows how a tree view works. + * + * + * @generated + */ + protected TreeViewer treeViewer; + + /** + * This shows how a list view works. + * A list viewer doesn't support icons. + * + * + * @generated + */ + protected ListViewer listViewer; + + /** + * This shows how a table view works. + * A table can be used as a list with icons. + * + * + * @generated + */ + protected TableViewer tableViewer; + + /** + * This shows how a tree view with columns works. + * + * + * @generated + */ + protected TreeViewer treeViewerWithColumns; + + /** + * This keeps track of the active viewer pane, in the book. + * + * + * @generated + */ + protected ViewerPane currentViewerPane; + + /** + * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer. + * + * + * @generated + */ + protected Viewer currentViewer; + + /** + * This listens to which ever viewer is active. + * + * + * @generated + */ + protected ISelectionChangedListener selectionChangedListener; + + /** + * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor. + * + * + * @generated + */ + protected Collection selectionChangedListeners = new ArrayList(); + + /** + * This keeps track of the selection of the editor as a whole. + * + * + * @generated + */ + protected ISelection editorSelection = StructuredSelection.EMPTY; + + /** + * The MarkerHelper is responsible for creating workspace resource markers presented + * in Eclipse's Problems View. + * + * + * @generated + */ + protected MarkerHelper markerHelper = new EditUIMarkerHelper(); + + /** + * This listens for when the outline becomes active + * + * + * @generated + */ + protected IPartListener partListener = + new IPartListener() { + public void partActivated(IWorkbenchPart p) { + if (p instanceof ContentOutline) { + if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) { + getActionBarContributor().setActiveEditor(FiacreEditor.this); + + setCurrentViewer(contentOutlineViewer); + } + } + else if (p instanceof PropertySheet) { + if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) { + getActionBarContributor().setActiveEditor(FiacreEditor.this); + handleActivate(); + } + } + else if (p == FiacreEditor.this) { + handleActivate(); + } + } + public void partBroughtToTop(IWorkbenchPart p) { + // Ignore. + } + public void partClosed(IWorkbenchPart p) { + // Ignore. + } + public void partDeactivated(IWorkbenchPart p) { + // Ignore. + } + public void partOpened(IWorkbenchPart p) { + // Ignore. + } + }; + + /** + * Resources that have been removed since last activation. + * + * + * @generated + */ + protected Collection removedResources = new ArrayList(); + + /** + * Resources that have been changed since last activation. + * + * + * @generated + */ + protected Collection changedResources = new ArrayList(); + + /** + * Resources that have been saved. + * + * + * @generated + */ + protected Collection savedResources = new ArrayList(); + + /** + * Map to store the diagnostic associated with a resource. + * + * + * @generated + */ + protected Map resourceToDiagnosticMap = new LinkedHashMap(); + + /** + * Controls whether the problem indication should be updated. + * + * + * @generated + */ + protected boolean updateProblemIndication = true; + + /** + * Adapter used to update the problem indication when resources are demanded loaded. + * + * + * @generated + */ + protected EContentAdapter problemIndicationAdapter = + new EContentAdapter() { + @Override + public void notifyChanged(Notification notification) { + if (notification.getNotifier() instanceof Resource) { + switch (notification.getFeatureID(Resource.class)) { + case Resource.RESOURCE__IS_LOADED: + case Resource.RESOURCE__ERRORS: + case Resource.RESOURCE__WARNINGS: { + Resource resource = (Resource)notification.getNotifier(); + Diagnostic diagnostic = analyzeResourceProblems(resource, null); + if (diagnostic.getSeverity() != Diagnostic.OK) { + resourceToDiagnosticMap.put(resource, diagnostic); + } + else { + resourceToDiagnosticMap.remove(resource); + } + + if (updateProblemIndication) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + updateProblemIndication(); + } + }); + } + break; + } + } + } + else { + super.notifyChanged(notification); + } + } + + @Override + protected void setTarget(Resource target) { + basicSetTarget(target); + } + + @Override + protected void unsetTarget(Resource target) { + basicUnsetTarget(target); + resourceToDiagnosticMap.remove(target); + if (updateProblemIndication) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + updateProblemIndication(); + } + }); + } + } + }; + + /** + * This listens for workspace changes. + * + * + * @generated + */ + protected IResourceChangeListener resourceChangeListener = + new IResourceChangeListener() { + public void resourceChanged(IResourceChangeEvent event) { + IResourceDelta delta = event.getDelta(); + try { + class ResourceDeltaVisitor implements IResourceDeltaVisitor { + protected ResourceSet resourceSet = editingDomain.getResourceSet(); + protected Collection changedResources = new ArrayList(); + protected Collection removedResources = new ArrayList(); + + public boolean visit(IResourceDelta delta) { + if (delta.getResource().getType() == IResource.FILE) { + if (delta.getKind() == IResourceDelta.REMOVED || + delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) { + Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false); + if (resource != null) { + if (delta.getKind() == IResourceDelta.REMOVED) { + removedResources.add(resource); + } + else if (!savedResources.remove(resource)) { + changedResources.add(resource); + } + } + } + return false; + } + + return true; + } + + public Collection getChangedResources() { + return changedResources; + } + + public Collection getRemovedResources() { + return removedResources; + } + } + + final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor(); + delta.accept(visitor); + + if (!visitor.getRemovedResources().isEmpty()) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + removedResources.addAll(visitor.getRemovedResources()); + if (!isDirty()) { + getSite().getPage().closeEditor(FiacreEditor.this, false); + } + } + }); + } + + if (!visitor.getChangedResources().isEmpty()) { + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + changedResources.addAll(visitor.getChangedResources()); + if (getSite().getPage().getActiveEditor() == FiacreEditor.this) { + handleActivate(); + } + } + }); + } + } + catch (CoreException exception) { + FiacreEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * Handles activation of the editor or it's associated views. + * + * + * @generated + */ + protected void handleActivate() { + // Recompute the read only state. + // + if (editingDomain.getResourceToReadOnlyMap() != null) { + editingDomain.getResourceToReadOnlyMap().clear(); + + // Refresh any actions that may become enabled or disabled. + // + setSelection(getSelection()); + } + + if (!removedResources.isEmpty()) { + if (handleDirtyConflict()) { + getSite().getPage().closeEditor(FiacreEditor.this, false); + } + else { + removedResources.clear(); + changedResources.clear(); + savedResources.clear(); + } + } + else if (!changedResources.isEmpty()) { + changedResources.removeAll(savedResources); + handleChangedResources(); + changedResources.clear(); + savedResources.clear(); + } + } + + /** + * Handles what to do with changed resources on activation. + * + * + * @generated + */ + protected void handleChangedResources() { + if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) { + if (isDirty()) { + changedResources.addAll(editingDomain.getResourceSet().getResources()); + } + editingDomain.getCommandStack().flush(); + + updateProblemIndication = false; + for (Resource resource : changedResources) { + if (resource.isLoaded()) { + resource.unload(); + try { + resource.load(Collections.EMPTY_MAP); + } + catch (IOException exception) { + if (!resourceToDiagnosticMap.containsKey(resource)) { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + } + } + } + + if (AdapterFactoryEditingDomain.isStale(editorSelection)) { + setSelection(StructuredSelection.EMPTY); + } + + updateProblemIndication = true; + updateProblemIndication(); + } + } + + /** + * Updates the problems indication with the information described in the specified diagnostic. + * + * + * @generated + */ + protected void updateProblemIndication() { + if (updateProblemIndication) { + BasicDiagnostic diagnostic = + new BasicDiagnostic + (Diagnostic.OK, + "fr.irit.fiacre.xtext.editor", + 0, + null, + new Object [] { editingDomain.getResourceSet() }); + for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) { + if (childDiagnostic.getSeverity() != Diagnostic.OK) { + diagnostic.add(childDiagnostic); + } + } + + int lastEditorPage = getPageCount() - 1; + if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) { + ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic); + if (diagnostic.getSeverity() != Diagnostic.OK) { + setActivePage(lastEditorPage); + } + } + else if (diagnostic.getSeverity() != Diagnostic.OK) { + ProblemEditorPart problemEditorPart = new ProblemEditorPart(); + problemEditorPart.setDiagnostic(diagnostic); + problemEditorPart.setMarkerHelper(markerHelper); + try { + addPage(++lastEditorPage, problemEditorPart, getEditorInput()); + setPageText(lastEditorPage, problemEditorPart.getPartName()); + setActivePage(lastEditorPage); + showTabs(); + } + catch (PartInitException exception) { + FiacreEditorPlugin.INSTANCE.log(exception); + } + } + + if (markerHelper.hasMarkers(editingDomain.getResourceSet())) { + markerHelper.deleteMarkers(editingDomain.getResourceSet()); + if (diagnostic.getSeverity() != Diagnostic.OK) { + try { + markerHelper.createMarkers(diagnostic); + } + catch (CoreException exception) { + FiacreEditorPlugin.INSTANCE.log(exception); + } + } + } + } + } + + /** + * Shows a dialog that asks if conflicting changes should be discarded. + * + * + * @generated + */ + protected boolean handleDirtyConflict() { + return + MessageDialog.openQuestion + (getSite().getShell(), + getString("_UI_FileConflict_label"), + getString("_WARN_FileConflict")); + } + + /** + * This creates a model editor. + * + * + * @generated + */ + public FiacreEditor() { + super(); + initializeEditingDomain(); + } + + /** + * This sets up the editing domain for the model editor. + * + * + * @generated + */ + protected void initializeEditingDomain() { + // Create an adapter factory that yields item providers. + // + adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE); + + adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new FiacreItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); + + // Create the command stack that will notify this editor as commands are executed. + // + BasicCommandStack commandStack = new BasicCommandStack(); + + // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus. + // + commandStack.addCommandStackListener + (new CommandStackListener() { + public void commandStackChanged(final EventObject event) { + getContainer().getDisplay().asyncExec + (new Runnable() { + public void run() { + firePropertyChange(IEditorPart.PROP_DIRTY); + + // Try to select the affected objects. + // + Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand(); + if (mostRecentCommand != null) { + setSelectionToViewer(mostRecentCommand.getAffectedObjects()); + } + for (Iterator i = propertySheetPages.iterator(); i.hasNext(); ) { + PropertySheetPage propertySheetPage = i.next(); + if (propertySheetPage.getControl().isDisposed()) { + i.remove(); + } + else { + propertySheetPage.refresh(); + } + } + } + }); + } + }); + + // Create the editing domain with a special command stack. + // + editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap()); + } + + /** + * This is here for the listener to be able to call it. + * + * + * @generated + */ + @Override + protected void firePropertyChange(int action) { + super.firePropertyChange(action); + } + + /** + * This sets the selection into whichever viewer is active. + * + * + * @generated + */ + public void setSelectionToViewer(Collection collection) { + final Collection theSelection = collection; + // Make sure it's okay. + // + if (theSelection != null && !theSelection.isEmpty()) { + Runnable runnable = + new Runnable() { + public void run() { + // Try to select the items in the current content viewer of the editor. + // + if (currentViewer != null) { + currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true); + } + } + }; + getSite().getShell().getDisplay().asyncExec(runnable); + } + } + + /** + * This returns the editing domain as required by the {@link IEditingDomainProvider} interface. + * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain} + * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}. + * + * + * @generated + */ + public EditingDomain getEditingDomain() { + return editingDomain; + } + + /** + * + * + * @generated + */ + public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider { + /** + * + * + * @generated + */ + public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * + * + * @generated + */ + @Override + public Object [] getElements(Object object) { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * + * + * @generated + */ + @Override + public Object [] getChildren(Object object) { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * + * + * @generated + */ + @Override + public boolean hasChildren(Object object) { + Object parent = super.getParent(object); + return parent != null; + } + + /** + * + * + * @generated + */ + @Override + public Object getParent(Object object) { + return null; + } + } + + /** + * + * + * @generated + */ + public void setCurrentViewerPane(ViewerPane viewerPane) { + if (currentViewerPane != viewerPane) { + if (currentViewerPane != null) { + currentViewerPane.showFocus(false); + } + currentViewerPane = viewerPane; + } + setCurrentViewer(currentViewerPane.getViewer()); + } + + /** + * This makes sure that one content viewer, either for the current page or the outline view, if it has focus, + * is the current one. + * + * + * @generated + */ + public void setCurrentViewer(Viewer viewer) { + // If it is changing... + // + if (currentViewer != viewer) { + if (selectionChangedListener == null) { + // Create the listener on demand. + // + selectionChangedListener = + new ISelectionChangedListener() { + // This just notifies those things that are affected by the section. + // + public void selectionChanged(SelectionChangedEvent selectionChangedEvent) { + setSelection(selectionChangedEvent.getSelection()); + } + }; + } + + // Stop listening to the old one. + // + if (currentViewer != null) { + currentViewer.removeSelectionChangedListener(selectionChangedListener); + } + + // Start listening to the new one. + // + if (viewer != null) { + viewer.addSelectionChangedListener(selectionChangedListener); + } + + // Remember it. + // + currentViewer = viewer; + + // Set the editors selection based on the current viewer's selection. + // + setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection()); + } + } + + /** + * This returns the viewer as required by the {@link IViewerProvider} interface. + * + * + * @generated + */ + public Viewer getViewer() { + return currentViewer; + } + + /** + * This creates a context menu for the viewer and adds a listener as well registering the menu for extension. + * + * + * @generated + */ + protected void createContextMenuFor(StructuredViewer viewer) { + MenuManager contextMenu = new MenuManager("#PopUp"); + contextMenu.add(new Separator("additions")); + contextMenu.setRemoveAllWhenShown(true); + contextMenu.addMenuListener(this); + Menu menu= contextMenu.createContextMenu(viewer.getControl()); + viewer.getControl().setMenu(menu); + getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer)); + + int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK; + Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() }; + viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer)); + viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer)); + } + + /** + * This is the method called to load a resource into the editing domain's resource set based on the editor's input. + * + * + * @generated + */ + public void createModel() { + URI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter()); + Exception exception = null; + Resource resource = null; + try { + // Load the resource through the editing domain. + // + resource = editingDomain.getResourceSet().getResource(resourceURI, true); + } + catch (Exception e) { + exception = e; + resource = editingDomain.getResourceSet().getResource(resourceURI, false); + } + + Diagnostic diagnostic = analyzeResourceProblems(resource, exception); + if (diagnostic.getSeverity() != Diagnostic.OK) { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter); + } + + /** + * Returns a diagnostic describing the errors and warnings listed in the resource + * and the specified exception (if any). + * + * + * @generated + */ + public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) { + boolean hasErrors = !resource.getErrors().isEmpty(); + if (hasErrors || !resource.getWarnings().isEmpty()) { + BasicDiagnostic basicDiagnostic = + new BasicDiagnostic + (hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING, + "fr.irit.fiacre.xtext.editor", + 0, + getString("_UI_CreateModelError_message", resource.getURI()), + new Object [] { exception == null ? (Object)resource : exception }); + basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true)); + return basicDiagnostic; + } + else if (exception != null) { + return + new BasicDiagnostic + (Diagnostic.ERROR, + "fr.irit.fiacre.xtext.editor", + 0, + getString("_UI_CreateModelError_message", resource.getURI()), + new Object[] { exception }); + } + else { + return Diagnostic.OK_INSTANCE; + } + } + + /** + * This is the method used by the framework to install your own controls. + * + * + * @generated + */ + @Override + public void createPages() { + // Creates the model from the editor input + // + createModel(); + + // Only creates the other pages if there is something that can be edited + // + if (!getEditingDomain().getResourceSet().getResources().isEmpty()) { + // Create a page for the selection tree view. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + Tree tree = new Tree(composite, SWT.MULTI); + TreeViewer newTreeViewer = new TreeViewer(tree); + return newTreeViewer; + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + + selectionViewer = (TreeViewer)viewerPane.getViewer(); + selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + + selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + selectionViewer.setInput(editingDomain.getResourceSet()); + selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true); + viewerPane.setTitle(editingDomain.getResourceSet()); + + new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory); + + createContextMenuFor(selectionViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_SelectionPage_label")); + } + + // Create a page for the parent tree view. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + Tree tree = new Tree(composite, SWT.MULTI); + TreeViewer newTreeViewer = new TreeViewer(tree); + return newTreeViewer; + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + + parentViewer = (TreeViewer)viewerPane.getViewer(); + parentViewer.setAutoExpandLevel(30); + parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory)); + parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(parentViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_ParentPage_label")); + } + + // This is the page for the list viewer + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new ListViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + listViewer = (ListViewer)viewerPane.getViewer(); + listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(listViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_ListPage_label")); + } + + // This is the page for the tree viewer + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new TreeViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + treeViewer = (TreeViewer)viewerPane.getViewer(); + treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory); + + createContextMenuFor(treeViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_TreePage_label")); + } + + // This is the page for the table viewer. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new TableViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + tableViewer = (TableViewer)viewerPane.getViewer(); + + Table table = tableViewer.getTable(); + TableLayout layout = new TableLayout(); + table.setLayout(layout); + table.setHeaderVisible(true); + table.setLinesVisible(true); + + TableColumn objectColumn = new TableColumn(table, SWT.NONE); + layout.addColumnData(new ColumnWeightData(3, 100, true)); + objectColumn.setText(getString("_UI_ObjectColumn_label")); + objectColumn.setResizable(true); + + TableColumn selfColumn = new TableColumn(table, SWT.NONE); + layout.addColumnData(new ColumnWeightData(2, 100, true)); + selfColumn.setText(getString("_UI_SelfColumn_label")); + selfColumn.setResizable(true); + + tableViewer.setColumnProperties(new String [] {"a", "b"}); + tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(tableViewer); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_TablePage_label")); + } + + // This is the page for the table tree viewer. + // + { + ViewerPane viewerPane = + new ViewerPane(getSite().getPage(), FiacreEditor.this) { + @Override + public Viewer createViewer(Composite composite) { + return new TreeViewer(composite); + } + @Override + public void requestActivation() { + super.requestActivation(); + setCurrentViewerPane(this); + } + }; + viewerPane.createControl(getContainer()); + + treeViewerWithColumns = (TreeViewer)viewerPane.getViewer(); + + Tree tree = treeViewerWithColumns.getTree(); + tree.setLayoutData(new FillLayout()); + tree.setHeaderVisible(true); + tree.setLinesVisible(true); + + TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE); + objectColumn.setText(getString("_UI_ObjectColumn_label")); + objectColumn.setResizable(true); + objectColumn.setWidth(250); + + TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE); + selfColumn.setText(getString("_UI_SelfColumn_label")); + selfColumn.setResizable(true); + selfColumn.setWidth(200); + + treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"}); + treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + + createContextMenuFor(treeViewerWithColumns); + int pageIndex = addPage(viewerPane.getControl()); + setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label")); + } + + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + setActivePage(0); + } + }); + } + + // Ensures that this editor will only display the page's tab + // area if there are more than one page + // + getContainer().addControlListener + (new ControlAdapter() { + boolean guard = false; + @Override + public void controlResized(ControlEvent event) { + if (!guard) { + guard = true; + hideTabs(); + guard = false; + } + } + }); + + getSite().getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + updateProblemIndication(); + } + }); + } + + /** + * If there is just one page in the multi-page editor part, + * this hides the single tab at the bottom. + * + * + * @generated + */ + protected void hideTabs() { + if (getPageCount() <= 1) { + setPageText(0, ""); + if (getContainer() instanceof CTabFolder) { + ((CTabFolder)getContainer()).setTabHeight(1); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y + 6); + } + } + } + + /** + * If there is more than one page in the multi-page editor part, + * this shows the tabs at the bottom. + * + * + * @generated + */ + protected void showTabs() { + if (getPageCount() > 1) { + setPageText(0, getString("_UI_SelectionPage_label")); + if (getContainer() instanceof CTabFolder) { + ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y - 6); + } + } + } + + /** + * This is used to track the active viewer. + * + * + * @generated + */ + @Override + protected void pageChange(int pageIndex) { + super.pageChange(pageIndex); + + if (contentOutlinePage != null) { + handleContentOutlineSelection(contentOutlinePage.getSelection()); + } + } + + /** + * This is how the framework determines which interfaces we implement. + * + * + * @generated + */ + @SuppressWarnings("rawtypes") + @Override + public Object getAdapter(Class key) { + if (key.equals(IContentOutlinePage.class)) { + return showOutlineView() ? getContentOutlinePage() : null; + } + else if (key.equals(IPropertySheetPage.class)) { + return getPropertySheetPage(); + } + else if (key.equals(IGotoMarker.class)) { + return this; + } + else { + return super.getAdapter(key); + } + } + + /** + * This accesses a cached version of the content outliner. + * + * + * @generated + */ + public IContentOutlinePage getContentOutlinePage() { + if (contentOutlinePage == null) { + // The content outline is just a tree. + // + class MyContentOutlinePage extends ContentOutlinePage { + @Override + public void createControl(Composite parent) { + super.createControl(parent); + contentOutlineViewer = getTreeViewer(); + contentOutlineViewer.addSelectionChangedListener(this); + + // Set up the tree viewer. + // + contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + contentOutlineViewer.setInput(editingDomain.getResourceSet()); + + // Make sure our popups work. + // + createContextMenuFor(contentOutlineViewer); + + if (!editingDomain.getResourceSet().getResources().isEmpty()) { + // Select the root object in the view. + // + contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true); + } + } + + @Override + public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) { + super.makeContributions(menuManager, toolBarManager, statusLineManager); + contentOutlineStatusLineManager = statusLineManager; + } + + @Override + public void setActionBars(IActionBars actionBars) { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + } + + contentOutlinePage = new MyContentOutlinePage(); + + // Listen to selection so that we can handle it is a special way. + // + contentOutlinePage.addSelectionChangedListener + (new ISelectionChangedListener() { + // This ensures that we handle selections correctly. + // + public void selectionChanged(SelectionChangedEvent event) { + handleContentOutlineSelection(event.getSelection()); + } + }); + } + + return contentOutlinePage; + } + + /** + * This accesses a cached version of the property sheet. + * + * + * @generated + */ + public IPropertySheetPage getPropertySheetPage() { + PropertySheetPage propertySheetPage = + new ExtendedPropertySheetPage(editingDomain) { + @Override + public void setSelectionToViewer(List selection) { + FiacreEditor.this.setSelectionToViewer(selection); + FiacreEditor.this.setFocus(); + } + + @Override + public void setActionBars(IActionBars actionBars) { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + }; + propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory)); + propertySheetPages.add(propertySheetPage); + + return propertySheetPage; + } + + /** + * This deals with how we want selection in the outliner to affect the other views. + * + * + * @generated + */ + public void handleContentOutlineSelection(ISelection selection) { + if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) { + Iterator selectedElements = ((IStructuredSelection)selection).iterator(); + if (selectedElements.hasNext()) { + // Get the first selected element. + // + Object selectedElement = selectedElements.next(); + + // If it's the selection viewer, then we want it to select the same selection as this selection. + // + if (currentViewerPane.getViewer() == selectionViewer) { + ArrayList selectionList = new ArrayList(); + selectionList.add(selectedElement); + while (selectedElements.hasNext()) { + selectionList.add(selectedElements.next()); + } + + // Set the selection to the widget. + // + selectionViewer.setSelection(new StructuredSelection(selectionList)); + } + else { + // Set the input to the widget. + // + if (currentViewerPane.getViewer().getInput() != selectedElement) { + currentViewerPane.getViewer().setInput(selectedElement); + currentViewerPane.setTitle(selectedElement); + } + } + } + } + } + + /** + * This is for implementing {@link IEditorPart} and simply tests the command stack. + * + * + * @generated + */ + @Override + public boolean isDirty() { + return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded(); + } + + /** + * This is for implementing {@link IEditorPart} and simply saves the model file. + * + * + * @generated + */ + @Override + public void doSave(IProgressMonitor progressMonitor) { + // Save only resources that have actually changed. + // + final Map saveOptions = new HashMap(); + saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER); + saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED); + + // Do the work within an operation because this is a long running activity that modifies the workbench. + // + WorkspaceModifyOperation operation = + new WorkspaceModifyOperation() { + // This is the method that gets invoked when the operation runs. + // + @Override + public void execute(IProgressMonitor monitor) { + // Save the resources to the file system. + // + boolean first = true; + for (Resource resource : editingDomain.getResourceSet().getResources()) { + if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) { + try { + long timeStamp = resource.getTimeStamp(); + resource.save(saveOptions); + if (resource.getTimeStamp() != timeStamp) { + savedResources.add(resource); + } + } + catch (Exception exception) { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + first = false; + } + } + } + }; + + updateProblemIndication = false; + try { + // This runs the options, and shows progress. + // + new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation); + + // Refresh the necessary state. + // + ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone(); + firePropertyChange(IEditorPart.PROP_DIRTY); + } + catch (Exception exception) { + // Something went wrong that shouldn't. + // + FiacreEditorPlugin.INSTANCE.log(exception); + } + updateProblemIndication = true; + updateProblemIndication(); + } + + /** + * This returns whether something has been persisted to the URI of the specified resource. + * The implementation uses the URI converter from the editor's resource set to try to open an input stream. + * + * + * @generated + */ + protected boolean isPersisted(Resource resource) { + boolean result = false; + try { + InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI()); + if (stream != null) { + result = true; + stream.close(); + } + } + catch (IOException e) { + // Ignore + } + return result; + } + + /** + * This always returns true because it is not currently supported. + * + * + * @generated + */ + @Override + public boolean isSaveAsAllowed() { + return true; + } + + /** + * This also changes the editor's input. + * + * + * @generated + */ + @Override + public void doSaveAs() { + SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell()); + saveAsDialog.open(); + IPath path = saveAsDialog.getResult(); + if (path != null) { + IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path); + if (file != null) { + doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file)); + } + } + } + + /** + * + * + * @generated + */ + protected void doSaveAs(URI uri, IEditorInput editorInput) { + (editingDomain.getResourceSet().getResources().get(0)).setURI(uri); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + IProgressMonitor progressMonitor = + getActionBars().getStatusLineManager() != null ? + getActionBars().getStatusLineManager().getProgressMonitor() : + new NullProgressMonitor(); + doSave(progressMonitor); + } + + /** + * + * + * @generated + */ + public void gotoMarker(IMarker marker) { + List targetObjects = markerHelper.getTargetObjects(editingDomain, marker); + if (!targetObjects.isEmpty()) { + setSelectionToViewer(targetObjects); + } + } + + /** + * This is called during startup. + * + * + * @generated + */ + @Override + public void init(IEditorSite site, IEditorInput editorInput) { + setSite(site); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + site.setSelectionProvider(this); + site.getPage().addPartListener(partListener); + ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE); + } + + /** + * + * + * @generated + */ + @Override + public void setFocus() { + if (currentViewerPane != null) { + currentViewerPane.setFocus(); + } + else { + getControl(getActivePage()).setFocus(); + } + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * + * + * @generated + */ + public void addSelectionChangedListener(ISelectionChangedListener listener) { + selectionChangedListeners.add(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * + * + * @generated + */ + public void removeSelectionChangedListener(ISelectionChangedListener listener) { + selectionChangedListeners.remove(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection. + * + * + * @generated + */ + public ISelection getSelection() { + return editorSelection; + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection. + * Calling this result will notify the listeners. + * + * + * @generated + */ + public void setSelection(ISelection selection) { + editorSelection = selection; + + for (ISelectionChangedListener listener : selectionChangedListeners) { + listener.selectionChanged(new SelectionChangedEvent(this, selection)); + } + setStatusLineManager(selection); + } + + /** + * + * + * @generated + */ + public void setStatusLineManager(ISelection selection) { + IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ? + contentOutlineStatusLineManager : getActionBars().getStatusLineManager(); + + if (statusLineManager != null) { + if (selection instanceof IStructuredSelection) { + Collection collection = ((IStructuredSelection)selection).toList(); + switch (collection.size()) { + case 0: { + statusLineManager.setMessage(getString("_UI_NoObjectSelected")); + break; + } + case 1: { + String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next()); + statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text)); + break; + } + default: { + statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size()))); + break; + } + } + } + else { + statusLineManager.setMessage(""); + } + } + } + + /** + * This looks up a string in the plugin's plugin.properties file. + * + * + * @generated + */ + private static String getString(String key) { + return FiacreEditorPlugin.INSTANCE.getString(key); + } + + /** + * This looks up a string in plugin.properties, making a substitution. + * + * + * @generated + */ + private static String getString(String key, Object s1) { + return FiacreEditorPlugin.INSTANCE.getString(key, new Object [] { s1 }); + } + + /** + * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu. + * + * + * @generated + */ + public void menuAboutToShow(IMenuManager menuManager) { + ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager); + } + + /** + * + * + * @generated + */ + public EditingDomainActionBarContributor getActionBarContributor() { + return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor(); + } + + /** + * + * + * @generated + */ + public IActionBars getActionBars() { + return getActionBarContributor().getActionBars(); + } + + /** + * + * + * @generated + */ + public AdapterFactory getAdapterFactory() { + return adapterFactory; + } + + /** + * + * + * @generated + */ + @Override + public void dispose() { + updateProblemIndication = false; + + ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener); + + getSite().getPage().removePartListener(partListener); + + adapterFactory.dispose(); + + if (getActionBarContributor().getActiveEditor() == this) { + getActionBarContributor().setActiveEditor(null); + } + + for (PropertySheetPage propertySheetPage : propertySheetPages) { + propertySheetPage.dispose(); + } + + if (contentOutlinePage != null) { + contentOutlinePage.dispose(); + } + + super.dispose(); + } + + /** + * Returns whether the outline view should be presented to the user. + * + * + * @generated + */ + protected boolean showOutlineView() { + return true; + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreEditorPlugin.java b/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreEditorPlugin.java new file mode 100644 index 0000000..8e78d79 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreEditorPlugin.java @@ -0,0 +1,102 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.presentation; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.ui.EclipseUIPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the Fiacre editor plugin. + * + * + * @generated + */ +public final class FiacreEditorPlugin extends EMFPlugin { + /** + * Keep track of the singleton. + * + * + * @generated + */ + public static final FiacreEditorPlugin INSTANCE = new FiacreEditorPlugin(); + + /** + * Keep track of the singleton. + * + * + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * + * + * @generated + */ + public FiacreEditorPlugin() { + 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 EclipseUIPlugin { + /** + * Creates an instance. + * + * + * @generated + */ + public Implementation() { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreModelWizard.java b/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreModelWizard.java new file mode 100644 index 0000000..da86ad0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.editor/src/fr/irit/fiacre/xtext/fiacre/presentation/FiacreModelWizard.java @@ -0,0 +1,639 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.presentation; + + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.MissingResourceException; +import java.util.StringTokenizer; + +import org.eclipse.emf.common.CommonPlugin; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; + +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.emf.ecore.xmi.XMLResource; + +import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; + +import org.eclipse.core.resources.IContainer; +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.resources.ResourcesPlugin; + +import org.eclipse.core.runtime.IProgressMonitor; + +import org.eclipse.jface.dialogs.MessageDialog; + +import org.eclipse.jface.viewers.IStructuredSelection; + +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.jface.wizard.WizardPage; + +import org.eclipse.swt.SWT; + +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.ModifyEvent; + +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; + +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; + +import org.eclipse.ui.INewWizard; +import org.eclipse.ui.IWorkbench; + +import org.eclipse.ui.actions.WorkspaceModifyOperation; + +import org.eclipse.ui.dialogs.WizardNewFileCreationPage; + +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.part.ISetSelectionTarget; + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.provider.FiacreEditPlugin; + + +import org.eclipse.core.runtime.Path; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.StructuredSelection; + +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; + + +/** + * This is a simple wizard for creating a new model file. + * + * + * @generated + */ +public class FiacreModelWizard extends Wizard implements INewWizard { + /** + * The supported extensions for created files. + * + * + * @generated + */ + public static final List FILE_EXTENSIONS = + Collections.unmodifiableList(Arrays.asList(FiacreEditorPlugin.INSTANCE.getString("_UI_FiacreEditorFilenameExtensions").split("\\s*,\\s*"))); + + /** + * A formatted list of supported file extensions, suitable for display. + * + * + * @generated + */ + public static final String FORMATTED_FILE_EXTENSIONS = + FiacreEditorPlugin.INSTANCE.getString("_UI_FiacreEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", "); + + /** + * This caches an instance of the model package. + * + * + * @generated + */ + protected FiacrePackage fiacrePackage = FiacrePackage.eINSTANCE; + + /** + * This caches an instance of the model factory. + * + * + * @generated + */ + protected FiacreFactory fiacreFactory = fiacrePackage.getFiacreFactory(); + + /** + * This is the file creation page. + * + * + * @generated + */ + protected FiacreModelWizardNewFileCreationPage newFileCreationPage; + + /** + * This is the initial object creation page. + * + * + * @generated + */ + protected FiacreModelWizardInitialObjectCreationPage initialObjectCreationPage; + + /** + * Remember the selection during initialization for populating the default container. + * + * + * @generated + */ + protected IStructuredSelection selection; + + /** + * Remember the workbench during initialization. + * + * + * @generated + */ + protected IWorkbench workbench; + + /** + * Caches the names of the types that can be created as the root object. + * + * + * @generated + */ + protected List initialObjectNames; + + /** + * This just records the information. + * + * + * @generated + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + this.workbench = workbench; + this.selection = selection; + setWindowTitle(FiacreEditorPlugin.INSTANCE.getString("_UI_Wizard_label")); + setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(FiacreEditorPlugin.INSTANCE.getImage("full/wizban/NewFiacre"))); + } + + /** + * Returns the names of the types that can be created as the root object. + * + * + * @generated + */ + protected Collection getInitialObjectNames() { + if (initialObjectNames == null) { + initialObjectNames = new ArrayList(); + for (EClassifier eClassifier : fiacrePackage.getEClassifiers()) { + if (eClassifier instanceof EClass) { + EClass eClass = (EClass)eClassifier; + if (!eClass.isAbstract()) { + initialObjectNames.add(eClass.getName()); + } + } + } + Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator()); + } + return initialObjectNames; + } + + /** + * Create a new model. + * + * + * @generated + */ + protected EObject createInitialModel() { + EClass eClass = (EClass)fiacrePackage.getEClassifier(initialObjectCreationPage.getInitialObjectName()); + EObject rootObject = fiacreFactory.create(eClass); + return rootObject; + } + + /** + * Do the work after everything is specified. + * + * + * @generated + */ + @Override + public boolean performFinish() { + try { + // Remember the file. + // + final IFile modelFile = getModelFile(); + + // Do the work within an operation. + // + WorkspaceModifyOperation operation = + new WorkspaceModifyOperation() { + @Override + protected void execute(IProgressMonitor progressMonitor) { + try { + // Create a resource set + // + ResourceSet resourceSet = new ResourceSetImpl(); + + // Get the URI of the model file. + // + URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true); + + // Create a resource for this file. + // + Resource resource = resourceSet.createResource(fileURI); + + // Add the initial model object to the contents. + // + EObject rootObject = createInitialModel(); + if (rootObject != null) { + resource.getContents().add(rootObject); + } + + // Save the contents of the resource to the file system. + // + Map options = new HashMap(); + options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding()); + resource.save(options); + } + catch (Exception exception) { + FiacreEditorPlugin.INSTANCE.log(exception); + } + finally { + progressMonitor.done(); + } + } + }; + + getContainer().run(false, false, operation); + + // Select the new file resource in the current view. + // + IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); + IWorkbenchPage page = workbenchWindow.getActivePage(); + final IWorkbenchPart activePart = page.getActivePart(); + if (activePart instanceof ISetSelectionTarget) { + final ISelection targetSelection = new StructuredSelection(modelFile); + getShell().getDisplay().asyncExec + (new Runnable() { + public void run() { + ((ISetSelectionTarget)activePart).selectReveal(targetSelection); + } + }); + } + + // Open an editor on the new file. + // + try { + page.openEditor + (new FileEditorInput(modelFile), + workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId()); + } + catch (PartInitException exception) { + MessageDialog.openError(workbenchWindow.getShell(), FiacreEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage()); + return false; + } + + return true; + } + catch (Exception exception) { + FiacreEditorPlugin.INSTANCE.log(exception); + return false; + } + } + + /** + * This is the one page of the wizard. + * + * + * @generated + */ + public class FiacreModelWizardNewFileCreationPage extends WizardNewFileCreationPage { + /** + * Pass in the selection. + * + * + * @generated + */ + public FiacreModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) { + super(pageId, selection); + } + + /** + * The framework calls this to see if the file is correct. + * + * + * @generated + */ + @Override + protected boolean validatePage() { + if (super.validatePage()) { + String extension = new Path(getFileName()).getFileExtension(); + if (extension == null || !FILE_EXTENSIONS.contains(extension)) { + String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension"; + setErrorMessage(FiacreEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS })); + return false; + } + return true; + } + return false; + } + + /** + * + * + * @generated + */ + public IFile getModelFile() { + return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName())); + } + } + + /** + * This is the page where the type of object to create is selected. + * + * + * @generated + */ + public class FiacreModelWizardInitialObjectCreationPage extends WizardPage { + /** + * + * + * @generated + */ + protected Combo initialObjectField; + + /** + * @generated + * + * + */ + protected List encodings; + + /** + * + * + * @generated + */ + protected Combo encodingField; + + /** + * Pass in the selection. + * + * + * @generated + */ + public FiacreModelWizardInitialObjectCreationPage(String pageId) { + super(pageId); + } + + /** + * + * + * @generated + */ + public void createControl(Composite parent) { + Composite composite = new Composite(parent, SWT.NONE); + { + GridLayout layout = new GridLayout(); + layout.numColumns = 1; + layout.verticalSpacing = 12; + composite.setLayout(layout); + + GridData data = new GridData(); + data.verticalAlignment = GridData.FILL; + data.grabExcessVerticalSpace = true; + data.horizontalAlignment = GridData.FILL; + composite.setLayoutData(data); + } + + Label containerLabel = new Label(composite, SWT.LEFT); + { + containerLabel.setText(FiacreEditorPlugin.INSTANCE.getString("_UI_ModelObject")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + containerLabel.setLayoutData(data); + } + + initialObjectField = new Combo(composite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + initialObjectField.setLayoutData(data); + } + + for (String objectName : getInitialObjectNames()) { + initialObjectField.add(getLabel(objectName)); + } + + if (initialObjectField.getItemCount() == 1) { + initialObjectField.select(0); + } + initialObjectField.addModifyListener(validator); + + Label encodingLabel = new Label(composite, SWT.LEFT); + { + encodingLabel.setText(FiacreEditorPlugin.INSTANCE.getString("_UI_XMLEncoding")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + encodingLabel.setLayoutData(data); + } + encodingField = new Combo(composite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + encodingField.setLayoutData(data); + } + + for (String encoding : getEncodings()) { + encodingField.add(encoding); + } + + encodingField.select(0); + encodingField.addModifyListener(validator); + + setPageComplete(validatePage()); + setControl(composite); + } + + /** + * + * + * @generated + */ + protected ModifyListener validator = + new ModifyListener() { + public void modifyText(ModifyEvent e) { + setPageComplete(validatePage()); + } + }; + + /** + * + * + * @generated + */ + protected boolean validatePage() { + return getInitialObjectName() != null && getEncodings().contains(encodingField.getText()); + } + + /** + * + * + * @generated + */ + @Override + public void setVisible(boolean visible) { + super.setVisible(visible); + if (visible) { + if (initialObjectField.getItemCount() == 1) { + initialObjectField.clearSelection(); + encodingField.setFocus(); + } + else { + encodingField.clearSelection(); + initialObjectField.setFocus(); + } + } + } + + /** + * + * + * @generated + */ + public String getInitialObjectName() { + String label = initialObjectField.getText(); + + for (String name : getInitialObjectNames()) { + if (getLabel(name).equals(label)) { + return name; + } + } + return null; + } + + /** + * + * + * @generated + */ + public String getEncoding() { + return encodingField.getText(); + } + + /** + * Returns the label for the specified type name. + * + * + * @generated + */ + protected String getLabel(String typeName) { + try { + return FiacreEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type"); + } + catch(MissingResourceException mre) { + FiacreEditorPlugin.INSTANCE.log(mre); + } + return typeName; + } + + /** + * + * + * @generated + */ + protected Collection getEncodings() { + if (encodings == null) { + encodings = new ArrayList(); + for (StringTokenizer stringTokenizer = new StringTokenizer(FiacreEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) { + encodings.add(stringTokenizer.nextToken()); + } + } + return encodings; + } + } + + /** + * The framework calls this to create the contents of the wizard. + * + * + * @generated + */ + @Override + public void addPages() { + // Create a page, set the title, and the initial model file name. + // + newFileCreationPage = new FiacreModelWizardNewFileCreationPage("Whatever", selection); + newFileCreationPage.setTitle(FiacreEditorPlugin.INSTANCE.getString("_UI_FiacreModelWizard_label")); + newFileCreationPage.setDescription(FiacreEditorPlugin.INSTANCE.getString("_UI_FiacreModelWizard_description")); + newFileCreationPage.setFileName(FiacreEditorPlugin.INSTANCE.getString("_UI_FiacreEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0)); + addPage(newFileCreationPage); + + // Try and get the resource selection to determine a current directory for the file dialog. + // + if (selection != null && !selection.isEmpty()) { + // Get the resource... + // + Object selectedElement = selection.iterator().next(); + if (selectedElement instanceof IResource) { + // Get the resource parent, if its a file. + // + IResource selectedResource = (IResource)selectedElement; + if (selectedResource.getType() == IResource.FILE) { + selectedResource = selectedResource.getParent(); + } + + // This gives us a directory... + // + if (selectedResource instanceof IFolder || selectedResource instanceof IProject) { + // Set this for the container. + // + newFileCreationPage.setContainerFullPath(selectedResource.getFullPath()); + + // Make up a unique new name here. + // + String defaultModelBaseFilename = FiacreEditorPlugin.INSTANCE.getString("_UI_FiacreEditorFilenameDefaultBase"); + String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0); + String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension; + for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) { + modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension; + } + newFileCreationPage.setFileName(modelFilename); + } + } + } + initialObjectCreationPage = new FiacreModelWizardInitialObjectCreationPage("Whatever2"); + initialObjectCreationPage.setTitle(FiacreEditorPlugin.INSTANCE.getString("_UI_FiacreModelWizard_label")); + initialObjectCreationPage.setDescription(FiacreEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description")); + addPage(initialObjectCreationPage); + } + + /** + * Get the file from the page. + * + * + * @generated + */ + public IFile getModelFile() { + return newFileCreationPage.getModelFile(); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/.classpath b/eclipse/plugins/fr.irit.fiacre.xtext.ide/.classpath new file mode 100644 index 0000000..9081d4f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.ide/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/.project b/eclipse/plugins/fr.irit.fiacre.xtext.ide/.project new file mode 100644 index 0000000..fd4ce08 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/.project @@ -0,0 +1,34 @@ + + + fr.irit.fiacre.xtext.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/eclipse/plugins/fr.irit.fiacre.xtext.ide/.settings/org.eclipse.core.resources.prefs b/eclipse/plugins/fr.irit.fiacre.xtext.ide/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/fr.irit.fiacre.xtext.ide/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..0c68a61 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.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/eclipse/plugins/fr.irit.fiacre.xtext.ide/META-INF/MANIFEST.MF b/eclipse/plugins/fr.irit.fiacre.xtext.ide/META-INF/MANIFEST.MF new file mode 100644 index 0000000..48c8413 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/META-INF/MANIFEST.MF @@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: fr.irit.fiacre.xtext.ide +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: fr.irit.fiacre.xtext.ide; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: fr.irit.fiacre.xtext, + org.eclipse.xtext.ide, + org.eclipse.xtext.xbase.ide +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: fr.irit.fiacre.xtext.ide.contentassist.antlr, + fr.irit.fiacre.xtext.ide.contentassist.antlr.internal + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/build.properties b/eclipse/plugins/fr.irit.fiacre.xtext.ide/build.properties new file mode 100644 index 0000000..ac95e8a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/build.properties @@ -0,0 +1,15 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/FiacreParser.java b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/FiacreParser.java new file mode 100644 index 0000000..1cda154 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/FiacreParser.java @@ -0,0 +1,768 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.ide.contentassist.antlr; + +import com.google.inject.Inject; +import fr.irit.fiacre.xtext.ide.contentassist.antlr.internal.InternalFiacreParser; +import fr.irit.fiacre.xtext.services.FiacreGrammarAccess; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import org.antlr.runtime.RecognitionException; +import org.eclipse.xtext.AbstractElement; +import org.eclipse.xtext.ide.editor.contentassist.antlr.AbstractContentAssistParser; +import org.eclipse.xtext.ide.editor.contentassist.antlr.FollowElement; +import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; + +public class FiacreParser extends AbstractContentAssistParser { + + @Inject + private FiacreGrammarAccess grammarAccess; + + private Map nameMappings; + + @Override + protected InternalFiacreParser createParser() { + InternalFiacreParser result = new InternalFiacreParser(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.getModelAccess().getAlternatives_2(), "rule__Model__Alternatives_2"); + put(grammarAccess.getRootDeclarationAccess().getAlternatives(), "rule__RootDeclaration__Alternatives"); + put(grammarAccess.getNamedElementAccess().getAlternatives(), "rule__NamedElement__Alternatives"); + put(grammarAccess.getTypeDeclarationUseAccess().getAlternatives(), "rule__TypeDeclarationUse__Alternatives"); + put(grammarAccess.getExpressionDeclarationUseAccess().getAlternatives(), "rule__ExpressionDeclarationUse__Alternatives"); + put(grammarAccess.getReferenceDeclarationUseAccess().getAlternatives(), "rule__ReferenceDeclarationUse__Alternatives"); + put(grammarAccess.getPatternDeclarationUseAccess().getAlternatives(), "rule__PatternDeclarationUse__Alternatives"); + put(grammarAccess.getBoundDeclarationUseAccess().getAlternatives(), "rule__BoundDeclarationUse__Alternatives"); + put(grammarAccess.getPathDeclarationUseAccess().getAlternatives(), "rule__PathDeclarationUse__Alternatives"); + put(grammarAccess.getPropertyDeclarationUseAccess().getAlternatives(), "rule__PropertyDeclarationUse__Alternatives"); + put(grammarAccess.getDeclarationAccess().getAlternatives(), "rule__Declaration__Alternatives"); + put(grammarAccess.getParameterizedDeclarationAccess().getAlternatives(), "rule__ParameterizedDeclaration__Alternatives"); + put(grammarAccess.getChannelTypeAccess().getAlternatives_2(), "rule__ChannelType__Alternatives_2"); + put(grammarAccess.getChannelTypeAccess().getAlternatives_2_0_0(), "rule__ChannelType__Alternatives_2_0_0"); + put(grammarAccess.getChannelTypeAccess().getAlternatives_2_0_1(), "rule__ChannelType__Alternatives_2_0_1"); + put(grammarAccess.getTypeAccess().getAlternatives(), "rule__Type__Alternatives"); + put(grammarAccess.getBasicTypeAccess().getAlternatives(), "rule__BasicType__Alternatives"); + put(grammarAccess.getStatementAccess().getAlternatives(), "rule__Statement__Alternatives"); + put(grammarAccess.getPatternStatementAccess().getAlternatives_1(), "rule__PatternStatement__Alternatives_1"); + put(grammarAccess.getPatternAccess().getAlternatives(), "rule__Pattern__Alternatives"); + put(grammarAccess.getIntegerPatternAccess().getAlternatives_0(), "rule__IntegerPattern__Alternatives_0"); + put(grammarAccess.getIdentifierPatternAccess().getAlternatives(), "rule__IdentifierPattern__Alternatives"); + put(grammarAccess.getIdentifierPatternAccess().getAlternatives_1_1(), "rule__IdentifierPattern__Alternatives_1_1"); + put(grammarAccess.getBlockAccess().getAlternatives(), "rule__Block__Alternatives"); + put(grammarAccess.getCompositeBlockAccess().getAlternatives_0(), "rule__CompositeBlock__Alternatives_0"); + put(grammarAccess.getInstanceDeclarationAccess().getAlternatives_0(), "rule__InstanceDeclaration__Alternatives_0"); + put(grammarAccess.getPortSetAccess().getAlternatives(), "rule__PortSet__Alternatives"); + put(grammarAccess.getQuantifiedExpressionAccess().getAlternatives(), "rule__QuantifiedExpression__Alternatives"); + put(grammarAccess.getQuantifiedExpressionAccess().getAlternatives_0_0(), "rule__QuantifiedExpression__Alternatives_0_0"); + put(grammarAccess.getComparisonAccess().getAlternatives_1_0(), "rule__Comparison__Alternatives_1_0"); + put(grammarAccess.getUnaryExpressionAccess().getAlternatives(), "rule__UnaryExpression__Alternatives"); + put(grammarAccess.getUnaryExpressionAccess().getAlternatives_0_0(), "rule__UnaryExpression__Alternatives_0_0"); + put(grammarAccess.getValueExpressionAccess().getAlternatives(), "rule__ValueExpression__Alternatives"); + put(grammarAccess.getAtomicExpressionAccess().getAlternatives(), "rule__AtomicExpression__Alternatives"); + put(grammarAccess.getIdentifierExpressionAccess().getAlternatives(), "rule__IdentifierExpression__Alternatives"); + put(grammarAccess.getIdentifierExpressionAccess().getAlternatives_1_1(), "rule__IdentifierExpression__Alternatives_1_1"); + put(grammarAccess.getLiteralExpressionAccess().getAlternatives(), "rule__LiteralExpression__Alternatives"); + put(grammarAccess.getBooleanLiteralAccess().getAlternatives(), "rule__BooleanLiteral__Alternatives"); + put(grammarAccess.getLowerBoundAccess().getAlternatives(), "rule__LowerBound__Alternatives"); + put(grammarAccess.getUpperBoundAccess().getAlternatives(), "rule__UpperBound__Alternatives"); + put(grammarAccess.getNaturalLowerBoundAccess().getAlternatives_0(), "rule__NaturalLowerBound__Alternatives_0"); + put(grammarAccess.getNaturalUpperBoundAccess().getAlternatives_1(), "rule__NaturalUpperBound__Alternatives_1"); + put(grammarAccess.getDecimalLowerBoundAccess().getAlternatives_0(), "rule__DecimalLowerBound__Alternatives_0"); + put(grammarAccess.getDecimalUpperBoundAccess().getAlternatives_1(), "rule__DecimalUpperBound__Alternatives_1"); + put(grammarAccess.getVariableLowerBoundAccess().getAlternatives_0(), "rule__VariableLowerBound__Alternatives_0"); + put(grammarAccess.getVariableUpperBoundAccess().getAlternatives_1(), "rule__VariableUpperBound__Alternatives_1"); + put(grammarAccess.getQuantifiedPropertyAccess().getAlternatives(), "rule__QuantifiedProperty__Alternatives"); + put(grammarAccess.getQuantifiedPropertyAccess().getAlternatives_0_0(), "rule__QuantifiedProperty__Alternatives_0_0"); + put(grammarAccess.getPropertyNegationAccess().getAlternatives(), "rule__PropertyNegation__Alternatives"); + put(grammarAccess.getAtomicPropertyAccess().getAlternatives(), "rule__AtomicProperty__Alternatives"); + put(grammarAccess.getPatternPropertyAccess().getAlternatives(), "rule__PatternProperty__Alternatives"); + put(grammarAccess.getPresencePatternAccess().getAlternatives_2(), "rule__PresencePattern__Alternatives_2"); + put(grammarAccess.getPresencePatternAccess().getAlternatives_2_1_1(), "rule__PresencePattern__Alternatives_2_1_1"); + put(grammarAccess.getAbsencePatternAccess().getAlternatives_2(), "rule__AbsencePattern__Alternatives_2"); + put(grammarAccess.getAbsencePatternAccess().getAlternatives_2_0_1(), "rule__AbsencePattern__Alternatives_2_0_1"); + put(grammarAccess.getAlwaysPatternAccess().getAlternatives_2(), "rule__AlwaysPattern__Alternatives_2"); + put(grammarAccess.getSequencePatternAccess().getAlternatives_1(), "rule__SequencePattern__Alternatives_1"); + put(grammarAccess.getSequencePatternAccess().getAlternatives_1_0_3(), "rule__SequencePattern__Alternatives_1_0_3"); + put(grammarAccess.getSequencePatternAccess().getAlternatives_1_0_3_2_2(), "rule__SequencePattern__Alternatives_1_0_3_2_2"); + put(grammarAccess.getSequencePatternAccess().getAlternatives_1_1_3(), "rule__SequencePattern__Alternatives_1_1_3"); + put(grammarAccess.getLTLQuantifiedAccess().getAlternatives(), "rule__LTLQuantified__Alternatives"); + put(grammarAccess.getLTLQuantifiedAccess().getAlternatives_0_0(), "rule__LTLQuantified__Alternatives_0_0"); + put(grammarAccess.getLTLBinaryAccess().getAlternatives_1(), "rule__LTLBinary__Alternatives_1"); + put(grammarAccess.getLTLUnaryAccess().getAlternatives(), "rule__LTLUnary__Alternatives"); + put(grammarAccess.getLTLUnaryAccess().getAlternatives_0_0(), "rule__LTLUnary__Alternatives_0_0"); + put(grammarAccess.getAtomicLTLAccess().getAlternatives(), "rule__AtomicLTL__Alternatives"); + put(grammarAccess.getStateEventAccess().getAlternatives(), "rule__StateEvent__Alternatives"); + put(grammarAccess.getObservableNegationAccess().getAlternatives(), "rule__ObservableNegation__Alternatives"); + put(grammarAccess.getAtomicObservableAccess().getAlternatives(), "rule__AtomicObservable__Alternatives"); + put(grammarAccess.getObservableEventAccess().getAlternatives(), "rule__ObservableEvent__Alternatives"); + put(grammarAccess.getPathItemAccess().getAlternatives(), "rule__PathItem__Alternatives"); + put(grammarAccess.getSubjectAccess().getAlternatives(), "rule__Subject__Alternatives"); + put(grammarAccess.getModelAccess().getGroup(), "rule__Model__Group__0"); + put(grammarAccess.getRootAccess().getGroup(), "rule__Root__Group__0"); + put(grammarAccess.getRootAccess().getGroup_2(), "rule__Root__Group_2__0"); + put(grammarAccess.getRootAccess().getGroup_2_1(), "rule__Root__Group_2_1__0"); + put(grammarAccess.getRootAccess().getGroup_2_1_1(), "rule__Root__Group_2_1_1__0"); + put(grammarAccess.getImportDeclarationAccess().getGroup(), "rule__ImportDeclaration__Group__0"); + put(grammarAccess.getFunctionDeclarationAccess().getGroup(), "rule__FunctionDeclaration__Group__0"); + put(grammarAccess.getFunctionDeclarationAccess().getGroup_2(), "rule__FunctionDeclaration__Group_2__0"); + put(grammarAccess.getFunctionDeclarationAccess().getGroup_2_1(), "rule__FunctionDeclaration__Group_2_1__0"); + put(grammarAccess.getFunctionDeclarationAccess().getGroup_2_1_1(), "rule__FunctionDeclaration__Group_2_1_1__0"); + put(grammarAccess.getFunctionDeclarationAccess().getGroup_6(), "rule__FunctionDeclaration__Group_6__0"); + put(grammarAccess.getFunctionDeclarationAccess().getGroup_6_2(), "rule__FunctionDeclaration__Group_6_2__0"); + put(grammarAccess.getTypeDeclarationAccess().getGroup(), "rule__TypeDeclaration__Group__0"); + put(grammarAccess.getChannelDeclarationAccess().getGroup(), "rule__ChannelDeclaration__Group__0"); + put(grammarAccess.getChannelTypeAccess().getGroup(), "rule__ChannelType__Group__0"); + put(grammarAccess.getChannelTypeAccess().getGroup_1(), "rule__ChannelType__Group_1__0"); + put(grammarAccess.getChannelTypeAccess().getGroup_2_0(), "rule__ChannelType__Group_2_0__0"); + put(grammarAccess.getChannelTypeAccess().getGroup_2_0_0_0(), "rule__ChannelType__Group_2_0_0_0__0"); + put(grammarAccess.getTupleTypeAccess().getGroup(), "rule__TupleType__Group__0"); + put(grammarAccess.getTupleTypeAccess().getGroup_1(), "rule__TupleType__Group_1__0"); + put(grammarAccess.getBasicTypeAccess().getGroup_0(), "rule__BasicType__Group_0__0"); + put(grammarAccess.getBasicTypeAccess().getGroup_1(), "rule__BasicType__Group_1__0"); + put(grammarAccess.getBasicTypeAccess().getGroup_2(), "rule__BasicType__Group_2__0"); + put(grammarAccess.getRangeTypeAccess().getGroup(), "rule__RangeType__Group__0"); + put(grammarAccess.getUnionTypeAccess().getGroup(), "rule__UnionType__Group__0"); + put(grammarAccess.getUnionTypeAccess().getGroup_2(), "rule__UnionType__Group_2__0"); + put(grammarAccess.getUnionTagsAccess().getGroup(), "rule__UnionTags__Group__0"); + put(grammarAccess.getUnionTagsAccess().getGroup_1(), "rule__UnionTags__Group_1__0"); + put(grammarAccess.getUnionTagsAccess().getGroup_2(), "rule__UnionTags__Group_2__0"); + put(grammarAccess.getRecordTypeAccess().getGroup(), "rule__RecordType__Group__0"); + put(grammarAccess.getRecordTypeAccess().getGroup_2(), "rule__RecordType__Group_2__0"); + put(grammarAccess.getRecordFieldsAccess().getGroup(), "rule__RecordFields__Group__0"); + put(grammarAccess.getRecordFieldsAccess().getGroup_1(), "rule__RecordFields__Group_1__0"); + put(grammarAccess.getQueueTypeAccess().getGroup(), "rule__QueueType__Group__0"); + put(grammarAccess.getArrayTypeAccess().getGroup(), "rule__ArrayType__Group__0"); + put(grammarAccess.getConstantDeclarationAccess().getGroup(), "rule__ConstantDeclaration__Group__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup(), "rule__ProcessDeclaration__Group__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_2(), "rule__ProcessDeclaration__Group_2__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_2_2(), "rule__ProcessDeclaration__Group_2_2__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_3(), "rule__ProcessDeclaration__Group_3__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_3_2(), "rule__ProcessDeclaration__Group_3_2__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_5(), "rule__ProcessDeclaration__Group_5__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_5_2(), "rule__ProcessDeclaration__Group_5_2__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_6(), "rule__ProcessDeclaration__Group_6__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_6_2(), "rule__ProcessDeclaration__Group_6_2__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_9(), "rule__ProcessDeclaration__Group_9__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_10(), "rule__ProcessDeclaration__Group_10__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_10_2(), "rule__ProcessDeclaration__Group_10_2__0"); + put(grammarAccess.getProcessDeclarationAccess().getGroup_11(), "rule__ProcessDeclaration__Group_11__0"); + put(grammarAccess.getTransitionSourceAccess().getGroup(), "rule__TransitionSource__Group__0"); + put(grammarAccess.getTransitionAccess().getGroup(), "rule__Transition__Group__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup(), "rule__ComponentDeclaration__Group__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_2(), "rule__ComponentDeclaration__Group_2__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_2_2(), "rule__ComponentDeclaration__Group_2_2__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_3(), "rule__ComponentDeclaration__Group_3__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_3_2(), "rule__ComponentDeclaration__Group_3_2__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_5(), "rule__ComponentDeclaration__Group_5__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_5_2(), "rule__ComponentDeclaration__Group_5_2__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_6(), "rule__ComponentDeclaration__Group_6__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_6_2(), "rule__ComponentDeclaration__Group_6_2__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_7(), "rule__ComponentDeclaration__Group_7__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_7_2(), "rule__ComponentDeclaration__Group_7_2__0"); + put(grammarAccess.getComponentDeclarationAccess().getGroup_8(), "rule__ComponentDeclaration__Group_8__0"); + put(grammarAccess.getPortsDeclarationAccess().getGroup(), "rule__PortsDeclaration__Group__0"); + put(grammarAccess.getPortsDeclarationAccess().getGroup_1(), "rule__PortsDeclaration__Group_1__0"); + put(grammarAccess.getLocalPortsDeclarationAccess().getGroup(), "rule__LocalPortsDeclaration__Group__0"); + put(grammarAccess.getLocalPortsDeclarationAccess().getGroup_1(), "rule__LocalPortsDeclaration__Group_1__0"); + put(grammarAccess.getLocalPortsDeclarationAccess().getGroup_4(), "rule__LocalPortsDeclaration__Group_4__0"); + put(grammarAccess.getParametersDeclarationAccess().getGroup(), "rule__ParametersDeclaration__Group__0"); + put(grammarAccess.getParametersDeclarationAccess().getGroup_1(), "rule__ParametersDeclaration__Group_1__0"); + put(grammarAccess.getParameterDeclarationAccess().getGroup(), "rule__ParameterDeclaration__Group__0"); + put(grammarAccess.getParameterDeclarationAccess().getGroup_0(), "rule__ParameterDeclaration__Group_0__0"); + put(grammarAccess.getParameterDeclarationAccess().getGroup_0_1(), "rule__ParameterDeclaration__Group_0_1__0"); + put(grammarAccess.getVariablesDeclarationAccess().getGroup(), "rule__VariablesDeclaration__Group__0"); + put(grammarAccess.getVariablesDeclarationAccess().getGroup_1(), "rule__VariablesDeclaration__Group_1__0"); + put(grammarAccess.getVariablesDeclarationAccess().getGroup_4(), "rule__VariablesDeclaration__Group_4__0"); + put(grammarAccess.getPriorityDeclarationAccess().getGroup(), "rule__PriorityDeclaration__Group__0"); + put(grammarAccess.getPriorityDeclarationAccess().getGroup_1(), "rule__PriorityDeclaration__Group_1__0"); + put(grammarAccess.getPriorityGroupAccess().getGroup(), "rule__PriorityGroup__Group__0"); + put(grammarAccess.getPriorityGroupAccess().getGroup_1(), "rule__PriorityGroup__Group_1__0"); + put(grammarAccess.getUnlessStatementAccess().getGroup(), "rule__UnlessStatement__Group__0"); + put(grammarAccess.getUnlessStatementAccess().getGroup_1(), "rule__UnlessStatement__Group_1__0"); + put(grammarAccess.getStatementChoiceAccess().getGroup(), "rule__StatementChoice__Group__0"); + put(grammarAccess.getStatementChoiceAccess().getGroup_1(), "rule__StatementChoice__Group_1__0"); + put(grammarAccess.getStatementSequenceAccess().getGroup(), "rule__StatementSequence__Group__0"); + put(grammarAccess.getStatementSequenceAccess().getGroup_1(), "rule__StatementSequence__Group_1__0"); + put(grammarAccess.getBlockStatementAccess().getGroup(), "rule__BlockStatement__Group__0"); + put(grammarAccess.getReturnStatementAccess().getGroup(), "rule__ReturnStatement__Group__0"); + put(grammarAccess.getNullStatementAccess().getGroup(), "rule__NullStatement__Group__0"); + put(grammarAccess.getTaggedStatementAccess().getGroup(), "rule__TaggedStatement__Group__0"); + put(grammarAccess.getPatternStatementAccess().getGroup(), "rule__PatternStatement__Group__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_0(), "rule__PatternStatement__Group_1_0__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_0_3(), "rule__PatternStatement__Group_1_0_3__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_0_6(), "rule__PatternStatement__Group_1_0_6__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_1(), "rule__PatternStatement__Group_1_1__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_1_2(), "rule__PatternStatement__Group_1_1_2__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_1_2_1(), "rule__PatternStatement__Group_1_1_2_1__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_2(), "rule__PatternStatement__Group_1_2__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_2_3(), "rule__PatternStatement__Group_1_2_3__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_2_6(), "rule__PatternStatement__Group_1_2_6__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_3(), "rule__PatternStatement__Group_1_3__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_3_3(), "rule__PatternStatement__Group_1_3_3__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_4(), "rule__PatternStatement__Group_1_4__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_4_3(), "rule__PatternStatement__Group_1_4_3__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_5(), "rule__PatternStatement__Group_1_5__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_5_3(), "rule__PatternStatement__Group_1_5_3__0"); + put(grammarAccess.getPatternStatementAccess().getGroup_1_5_4(), "rule__PatternStatement__Group_1_5_4__0"); + put(grammarAccess.getPatternAccess().getGroup_3(), "rule__Pattern__Group_3__0"); + put(grammarAccess.getAnyPatternAccess().getGroup(), "rule__AnyPattern__Group__0"); + put(grammarAccess.getIntegerPatternAccess().getGroup(), "rule__IntegerPattern__Group__0"); + put(grammarAccess.getIdentifierPatternAccess().getGroup_0(), "rule__IdentifierPattern__Group_0__0"); + put(grammarAccess.getIdentifierPatternAccess().getGroup_0_3(), "rule__IdentifierPattern__Group_0_3__0"); + put(grammarAccess.getIdentifierPatternAccess().getGroup_0_3_1(), "rule__IdentifierPattern__Group_0_3_1__0"); + put(grammarAccess.getIdentifierPatternAccess().getGroup_1(), "rule__IdentifierPattern__Group_1__0"); + put(grammarAccess.getIdentifierPatternAccess().getGroup_1_1_0(), "rule__IdentifierPattern__Group_1_1_0__0"); + put(grammarAccess.getIdentifierPatternAccess().getGroup_1_1_1(), "rule__IdentifierPattern__Group_1_1_1__0"); + put(grammarAccess.getConditionalStatementAccess().getGroup(), "rule__ConditionalStatement__Group__0"); + put(grammarAccess.getConditionalStatementAccess().getGroup_5(), "rule__ConditionalStatement__Group_5__0"); + put(grammarAccess.getExtendedConditionalStatementAccess().getGroup(), "rule__ExtendedConditionalStatement__Group__0"); + put(grammarAccess.getSelectStatementAccess().getGroup(), "rule__SelectStatement__Group__0"); + put(grammarAccess.getSelectStatementAccess().getGroup_2(), "rule__SelectStatement__Group_2__0"); + put(grammarAccess.getWhileStatementAccess().getGroup(), "rule__WhileStatement__Group__0"); + put(grammarAccess.getForeachStatementAccess().getGroup(), "rule__ForeachStatement__Group__0"); + put(grammarAccess.getToStatementAccess().getGroup(), "rule__ToStatement__Group__0"); + put(grammarAccess.getCaseStatementAccess().getGroup(), "rule__CaseStatement__Group__0"); + put(grammarAccess.getCaseStatementAccess().getGroup_6(), "rule__CaseStatement__Group_6__0"); + put(grammarAccess.getLoopStatementAccess().getGroup(), "rule__LoopStatement__Group__0"); + put(grammarAccess.getOnStatementAccess().getGroup(), "rule__OnStatement__Group__0"); + put(grammarAccess.getWaitStatementAccess().getGroup(), "rule__WaitStatement__Group__0"); + put(grammarAccess.getCompositionAccess().getGroup(), "rule__Composition__Group__0"); + put(grammarAccess.getCompositionAccess().getGroup_1(), "rule__Composition__Group_1__0"); + put(grammarAccess.getCompositionAccess().getGroup_3(), "rule__Composition__Group_3__0"); + put(grammarAccess.getCompositeBlockAccess().getGroup(), "rule__CompositeBlock__Group__0"); + put(grammarAccess.getCompositeBlockAccess().getGroup_0_0(), "rule__CompositeBlock__Group_0_0__0"); + put(grammarAccess.getInstanceDeclarationAccess().getGroup(), "rule__InstanceDeclaration__Group__0"); + put(grammarAccess.getInstanceDeclarationAccess().getGroup_0_0(), "rule__InstanceDeclaration__Group_0_0__0"); + put(grammarAccess.getPortSetAccess().getGroup_1(), "rule__PortSet__Group_1__0"); + put(grammarAccess.getPortSetAccess().getGroup_1_1(), "rule__PortSet__Group_1_1__0"); + put(grammarAccess.getComponentInstanceAccess().getGroup(), "rule__ComponentInstance__Group__0"); + put(grammarAccess.getComponentInstanceAccess().getGroup_1(), "rule__ComponentInstance__Group_1__0"); + put(grammarAccess.getComponentInstanceAccess().getGroup_1_2(), "rule__ComponentInstance__Group_1_2__0"); + put(grammarAccess.getComponentInstanceAccess().getGroup_2(), "rule__ComponentInstance__Group_2__0"); + put(grammarAccess.getComponentInstanceAccess().getGroup_2_2(), "rule__ComponentInstance__Group_2_2__0"); + put(grammarAccess.getQuantifiedExpressionAccess().getGroup_0(), "rule__QuantifiedExpression__Group_0__0"); + put(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_0_0(), "rule__QuantifiedExpression__Group_0_0_0__0"); + put(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_0_1(), "rule__QuantifiedExpression__Group_0_0_1__0"); + put(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_2(), "rule__QuantifiedExpression__Group_0_2__0"); + put(grammarAccess.getConditionalAccess().getGroup(), "rule__Conditional__Group__0"); + put(grammarAccess.getConditionalAccess().getGroup_1(), "rule__Conditional__Group_1__0"); + put(grammarAccess.getDisjunctionAccess().getGroup(), "rule__Disjunction__Group__0"); + put(grammarAccess.getDisjunctionAccess().getGroup_1(), "rule__Disjunction__Group_1__0"); + put(grammarAccess.getImplicationAccess().getGroup(), "rule__Implication__Group__0"); + put(grammarAccess.getImplicationAccess().getGroup_1(), "rule__Implication__Group_1__0"); + put(grammarAccess.getConjunctionAccess().getGroup(), "rule__Conjunction__Group__0"); + put(grammarAccess.getConjunctionAccess().getGroup_1(), "rule__Conjunction__Group_1__0"); + put(grammarAccess.getComparisonAccess().getGroup(), "rule__Comparison__Group__0"); + put(grammarAccess.getComparisonAccess().getGroup_1(), "rule__Comparison__Group_1__0"); + put(grammarAccess.getComparisonAccess().getGroup_1_0_0(), "rule__Comparison__Group_1_0_0__0"); + put(grammarAccess.getComparisonAccess().getGroup_1_0_1(), "rule__Comparison__Group_1_0_1__0"); + put(grammarAccess.getComparisonAccess().getGroup_1_0_2(), "rule__Comparison__Group_1_0_2__0"); + put(grammarAccess.getComparisonAccess().getGroup_1_0_3(), "rule__Comparison__Group_1_0_3__0"); + put(grammarAccess.getComparisonAccess().getGroup_1_0_4(), "rule__Comparison__Group_1_0_4__0"); + put(grammarAccess.getComparisonAccess().getGroup_1_0_5(), "rule__Comparison__Group_1_0_5__0"); + put(grammarAccess.getAdditionAccess().getGroup(), "rule__Addition__Group__0"); + put(grammarAccess.getAdditionAccess().getGroup_1(), "rule__Addition__Group_1__0"); + put(grammarAccess.getSubstractionAccess().getGroup(), "rule__Substraction__Group__0"); + put(grammarAccess.getSubstractionAccess().getGroup_1(), "rule__Substraction__Group_1__0"); + put(grammarAccess.getMultiplicationAccess().getGroup(), "rule__Multiplication__Group__0"); + put(grammarAccess.getMultiplicationAccess().getGroup_1(), "rule__Multiplication__Group_1__0"); + put(grammarAccess.getDivisionAccess().getGroup(), "rule__Division__Group__0"); + put(grammarAccess.getDivisionAccess().getGroup_1(), "rule__Division__Group_1__0"); + put(grammarAccess.getModuloAccess().getGroup(), "rule__Modulo__Group__0"); + put(grammarAccess.getModuloAccess().getGroup_1(), "rule__Modulo__Group_1__0"); + put(grammarAccess.getUnaryExpressionAccess().getGroup_0(), "rule__UnaryExpression__Group_0__0"); + put(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_0(), "rule__UnaryExpression__Group_0_0_0__0"); + put(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_1(), "rule__UnaryExpression__Group_0_0_1__0"); + put(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_2(), "rule__UnaryExpression__Group_0_0_2__0"); + put(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_3(), "rule__UnaryExpression__Group_0_0_3__0"); + put(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_4(), "rule__UnaryExpression__Group_0_0_4__0"); + put(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_5(), "rule__UnaryExpression__Group_0_0_5__0"); + put(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_6(), "rule__UnaryExpression__Group_0_0_6__0"); + put(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_7(), "rule__UnaryExpression__Group_0_0_7__0"); + put(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_8(), "rule__UnaryExpression__Group_0_0_8__0"); + put(grammarAccess.getProjectionAccess().getGroup(), "rule__Projection__Group__0"); + put(grammarAccess.getProjectionAccess().getGroup_1(), "rule__Projection__Group_1__0"); + put(grammarAccess.getAtomicExpressionAccess().getGroup_8(), "rule__AtomicExpression__Group_8__0"); + put(grammarAccess.getReferenceExpressionAccess().getGroup(), "rule__ReferenceExpression__Group__0"); + put(grammarAccess.getIdentifierExpressionAccess().getGroup_0(), "rule__IdentifierExpression__Group_0__0"); + put(grammarAccess.getIdentifierExpressionAccess().getGroup_0_3(), "rule__IdentifierExpression__Group_0_3__0"); + put(grammarAccess.getIdentifierExpressionAccess().getGroup_0_3_1(), "rule__IdentifierExpression__Group_0_3_1__0"); + put(grammarAccess.getIdentifierExpressionAccess().getGroup_1(), "rule__IdentifierExpression__Group_1__0"); + put(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_0(), "rule__IdentifierExpression__Group_1_1_0__0"); + put(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_0_3(), "rule__IdentifierExpression__Group_1_1_0_3__0"); + put(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_1(), "rule__IdentifierExpression__Group_1_1_1__0"); + put(grammarAccess.getRecordExpressionAccess().getGroup(), "rule__RecordExpression__Group__0"); + put(grammarAccess.getRecordExpressionAccess().getGroup_2(), "rule__RecordExpression__Group_2__0"); + put(grammarAccess.getFieldExpressionAccess().getGroup(), "rule__FieldExpression__Group__0"); + put(grammarAccess.getArrayExpressionAccess().getGroup(), "rule__ArrayExpression__Group__0"); + put(grammarAccess.getArrayExpressionAccess().getGroup_2(), "rule__ArrayExpression__Group_2__0"); + put(grammarAccess.getArrayExpressionAccess().getGroup_2_1(), "rule__ArrayExpression__Group_2_1__0"); + put(grammarAccess.getQueueExpressionAccess().getGroup(), "rule__QueueExpression__Group__0"); + put(grammarAccess.getQueueExpressionAccess().getGroup_2(), "rule__QueueExpression__Group_2__0"); + put(grammarAccess.getQueueExpressionAccess().getGroup_2_1(), "rule__QueueExpression__Group_2_1__0"); + put(grammarAccess.getEnqueueExpressionAccess().getGroup(), "rule__EnqueueExpression__Group__0"); + put(grammarAccess.getAppendExpressionAccess().getGroup(), "rule__AppendExpression__Group__0"); + put(grammarAccess.getBooleanLiteralAccess().getGroup_0(), "rule__BooleanLiteral__Group_0__0"); + put(grammarAccess.getBooleanLiteralAccess().getGroup_1(), "rule__BooleanLiteral__Group_1__0"); + put(grammarAccess.getNaturalLowerBoundAccess().getGroup(), "rule__NaturalLowerBound__Group__0"); + put(grammarAccess.getNaturalUpperBoundAccess().getGroup(), "rule__NaturalUpperBound__Group__0"); + put(grammarAccess.getDecimalLowerBoundAccess().getGroup(), "rule__DecimalLowerBound__Group__0"); + put(grammarAccess.getDecimalUpperBoundAccess().getGroup(), "rule__DecimalUpperBound__Group__0"); + put(grammarAccess.getVariableLowerBoundAccess().getGroup(), "rule__VariableLowerBound__Group__0"); + put(grammarAccess.getVariableUpperBoundAccess().getGroup(), "rule__VariableUpperBound__Group__0"); + put(grammarAccess.getInfiniteUpperBoundAccess().getGroup(), "rule__InfiniteUpperBound__Group__0"); + put(grammarAccess.getRequirementAccess().getGroup(), "rule__Requirement__Group__0"); + put(grammarAccess.getRequirementAccess().getGroup_2(), "rule__Requirement__Group_2__0"); + put(grammarAccess.getRequirementAccess().getGroup_3(), "rule__Requirement__Group_3__0"); + put(grammarAccess.getPropertyDeclarationAccess().getGroup(), "rule__PropertyDeclaration__Group__0"); + put(grammarAccess.getQuantifiedPropertyAccess().getGroup_0(), "rule__QuantifiedProperty__Group_0__0"); + put(grammarAccess.getQuantifiedPropertyAccess().getGroup_0_0_0(), "rule__QuantifiedProperty__Group_0_0_0__0"); + put(grammarAccess.getQuantifiedPropertyAccess().getGroup_0_0_1(), "rule__QuantifiedProperty__Group_0_0_1__0"); + put(grammarAccess.getPropertyDisjunctionAccess().getGroup(), "rule__PropertyDisjunction__Group__0"); + put(grammarAccess.getPropertyDisjunctionAccess().getGroup_1(), "rule__PropertyDisjunction__Group_1__0"); + put(grammarAccess.getPropertyImplicationAccess().getGroup(), "rule__PropertyImplication__Group__0"); + put(grammarAccess.getPropertyImplicationAccess().getGroup_1(), "rule__PropertyImplication__Group_1__0"); + put(grammarAccess.getPropertyConjunctionAccess().getGroup(), "rule__PropertyConjunction__Group__0"); + put(grammarAccess.getPropertyConjunctionAccess().getGroup_1(), "rule__PropertyConjunction__Group_1__0"); + put(grammarAccess.getPropertyNegationAccess().getGroup_0(), "rule__PropertyNegation__Group_0__0"); + put(grammarAccess.getAtomicPropertyAccess().getGroup_1(), "rule__AtomicProperty__Group_1__0"); + put(grammarAccess.getLTLPatternAccess().getGroup(), "rule__LTLPattern__Group__0"); + put(grammarAccess.getDeadlockFreePatternAccess().getGroup(), "rule__DeadlockFreePattern__Group__0"); + put(grammarAccess.getInfinitelyOftenPatternAccess().getGroup(), "rule__InfinitelyOftenPattern__Group__0"); + put(grammarAccess.getMortalPatternAccess().getGroup(), "rule__MortalPattern__Group__0"); + put(grammarAccess.getPresencePatternAccess().getGroup(), "rule__PresencePattern__Group__0"); + put(grammarAccess.getPresencePatternAccess().getGroup_2_0(), "rule__PresencePattern__Group_2_0__0"); + put(grammarAccess.getPresencePatternAccess().getGroup_2_1(), "rule__PresencePattern__Group_2_1__0"); + put(grammarAccess.getPresencePatternAccess().getGroup_2_1_0(), "rule__PresencePattern__Group_2_1_0__0"); + put(grammarAccess.getPresencePatternAccess().getGroup_2_1_1_0(), "rule__PresencePattern__Group_2_1_1_0__0"); + put(grammarAccess.getPresencePatternAccess().getGroup_2_1_1_1(), "rule__PresencePattern__Group_2_1_1_1__0"); + put(grammarAccess.getPresencePatternAccess().getGroup_2_2(), "rule__PresencePattern__Group_2_2__0"); + put(grammarAccess.getPresencePatternAccess().getGroup_2_2_0(), "rule__PresencePattern__Group_2_2_0__0"); + put(grammarAccess.getPresencePatternAccess().getGroup_2_2_1(), "rule__PresencePattern__Group_2_2_1__0"); + put(grammarAccess.getPresencePatternAccess().getGroup_2_3(), "rule__PresencePattern__Group_2_3__0"); + put(grammarAccess.getAbsencePatternAccess().getGroup(), "rule__AbsencePattern__Group__0"); + put(grammarAccess.getAbsencePatternAccess().getGroup_2_0(), "rule__AbsencePattern__Group_2_0__0"); + put(grammarAccess.getAbsencePatternAccess().getGroup_2_0_0(), "rule__AbsencePattern__Group_2_0_0__0"); + put(grammarAccess.getAbsencePatternAccess().getGroup_2_0_1_0(), "rule__AbsencePattern__Group_2_0_1_0__0"); + put(grammarAccess.getAbsencePatternAccess().getGroup_2_0_1_1(), "rule__AbsencePattern__Group_2_0_1_1__0"); + put(grammarAccess.getAbsencePatternAccess().getGroup_2_1(), "rule__AbsencePattern__Group_2_1__0"); + put(grammarAccess.getAbsencePatternAccess().getGroup_2_1_0(), "rule__AbsencePattern__Group_2_1_0__0"); + put(grammarAccess.getAbsencePatternAccess().getGroup_2_1_1(), "rule__AbsencePattern__Group_2_1_1__0"); + put(grammarAccess.getAbsencePatternAccess().getGroup_2_2(), "rule__AbsencePattern__Group_2_2__0"); + put(grammarAccess.getAlwaysPatternAccess().getGroup(), "rule__AlwaysPattern__Group__0"); + put(grammarAccess.getAlwaysPatternAccess().getGroup_2_0(), "rule__AlwaysPattern__Group_2_0__0"); + put(grammarAccess.getAlwaysPatternAccess().getGroup_2_1(), "rule__AlwaysPattern__Group_2_1__0"); + put(grammarAccess.getAlwaysPatternAccess().getGroup_2_1_2(), "rule__AlwaysPattern__Group_2_1_2__0"); + put(grammarAccess.getAlwaysPatternAccess().getGroup_2_2(), "rule__AlwaysPattern__Group_2_2__0"); + put(grammarAccess.getSequencePatternAccess().getGroup(), "rule__SequencePattern__Group__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_0(), "rule__SequencePattern__Group_1_0__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_0(), "rule__SequencePattern__Group_1_0_3_0__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_0_2(), "rule__SequencePattern__Group_1_0_3_0_2__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_1(), "rule__SequencePattern__Group_1_0_3_1__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2(), "rule__SequencePattern__Group_1_0_3_2__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2_2_0(), "rule__SequencePattern__Group_1_0_3_2_2_0__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2_2_1(), "rule__SequencePattern__Group_1_0_3_2_2_1__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_3(), "rule__SequencePattern__Group_1_0_3_3__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_1(), "rule__SequencePattern__Group_1_1__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_0(), "rule__SequencePattern__Group_1_1_3_0__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_1(), "rule__SequencePattern__Group_1_1_3_1__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_1_2(), "rule__SequencePattern__Group_1_1_3_1_2__0"); + put(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_2(), "rule__SequencePattern__Group_1_1_3_2__0"); + put(grammarAccess.getLTLQuantifiedAccess().getGroup_0(), "rule__LTLQuantified__Group_0__0"); + put(grammarAccess.getLTLQuantifiedAccess().getGroup_0_0_0(), "rule__LTLQuantified__Group_0_0_0__0"); + put(grammarAccess.getLTLQuantifiedAccess().getGroup_0_0_1(), "rule__LTLQuantified__Group_0_0_1__0"); + put(grammarAccess.getLTLDisjunctionAccess().getGroup(), "rule__LTLDisjunction__Group__0"); + put(grammarAccess.getLTLDisjunctionAccess().getGroup_1(), "rule__LTLDisjunction__Group_1__0"); + put(grammarAccess.getLTLImplicationAccess().getGroup(), "rule__LTLImplication__Group__0"); + put(grammarAccess.getLTLImplicationAccess().getGroup_1(), "rule__LTLImplication__Group_1__0"); + put(grammarAccess.getLTLConjunctionAccess().getGroup(), "rule__LTLConjunction__Group__0"); + put(grammarAccess.getLTLConjunctionAccess().getGroup_1(), "rule__LTLConjunction__Group_1__0"); + put(grammarAccess.getLTLBinaryAccess().getGroup(), "rule__LTLBinary__Group__0"); + put(grammarAccess.getLTLBinaryAccess().getGroup_1_0(), "rule__LTLBinary__Group_1_0__0"); + put(grammarAccess.getLTLBinaryAccess().getGroup_1_1(), "rule__LTLBinary__Group_1_1__0"); + put(grammarAccess.getLTLUnaryAccess().getGroup_0(), "rule__LTLUnary__Group_0__0"); + put(grammarAccess.getLTLUnaryAccess().getGroup_0_0_0(), "rule__LTLUnary__Group_0_0_0__0"); + put(grammarAccess.getLTLUnaryAccess().getGroup_0_0_1(), "rule__LTLUnary__Group_0_0_1__0"); + put(grammarAccess.getLTLUnaryAccess().getGroup_0_0_2(), "rule__LTLUnary__Group_0_0_2__0"); + put(grammarAccess.getLTLUnaryAccess().getGroup_0_0_3(), "rule__LTLUnary__Group_0_0_3__0"); + put(grammarAccess.getAtomicLTLAccess().getGroup_0(), "rule__AtomicLTL__Group_0__0"); + put(grammarAccess.getAtomicLTLAccess().getGroup_2(), "rule__AtomicLTL__Group_2__0"); + put(grammarAccess.getEnterStateEventAccess().getGroup(), "rule__EnterStateEvent__Group__0"); + put(grammarAccess.getLeaveStateEventAccess().getGroup(), "rule__LeaveStateEvent__Group__0"); + put(grammarAccess.getObservableDisjunctionAccess().getGroup(), "rule__ObservableDisjunction__Group__0"); + put(grammarAccess.getObservableDisjunctionAccess().getGroup_1(), "rule__ObservableDisjunction__Group_1__0"); + put(grammarAccess.getObservableImplicationAccess().getGroup(), "rule__ObservableImplication__Group__0"); + put(grammarAccess.getObservableImplicationAccess().getGroup_1(), "rule__ObservableImplication__Group_1__0"); + put(grammarAccess.getObservableConjunctionAccess().getGroup(), "rule__ObservableConjunction__Group__0"); + put(grammarAccess.getObservableConjunctionAccess().getGroup_1(), "rule__ObservableConjunction__Group_1__0"); + put(grammarAccess.getObservableNegationAccess().getGroup_0(), "rule__ObservableNegation__Group_0__0"); + put(grammarAccess.getAtomicObservableAccess().getGroup_0(), "rule__AtomicObservable__Group_0__0"); + put(grammarAccess.getPathEventAccess().getGroup(), "rule__PathEvent__Group__0"); + put(grammarAccess.getPathAccess().getGroup(), "rule__Path__Group__0"); + put(grammarAccess.getStateSubjectAccess().getGroup(), "rule__StateSubject__Group__0"); + put(grammarAccess.getValueSubjectAccess().getGroup(), "rule__ValueSubject__Group__0"); + put(grammarAccess.getTagSubjectAccess().getGroup(), "rule__TagSubject__Group__0"); + put(grammarAccess.getEventSubjectAccess().getGroup(), "rule__EventSubject__Group__0"); + put(grammarAccess.getModelAccess().getImportsAssignment_1(), "rule__Model__ImportsAssignment_1"); + put(grammarAccess.getModelAccess().getDeclarationsAssignment_2_0(), "rule__Model__DeclarationsAssignment_2_0"); + put(grammarAccess.getModelAccess().getRequirementsAssignment_2_1(), "rule__Model__RequirementsAssignment_2_1"); + put(grammarAccess.getModelAccess().getRootAssignment_2_2(), "rule__Model__RootAssignment_2_2"); + put(grammarAccess.getRootAccess().getDeclarationAssignment_1(), "rule__Root__DeclarationAssignment_1"); + put(grammarAccess.getRootAccess().getObservedAssignment_2_1_0(), "rule__Root__ObservedAssignment_2_1_0"); + put(grammarAccess.getRootAccess().getObservedAssignment_2_1_1_1(), "rule__Root__ObservedAssignment_2_1_1_1"); + put(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1(), "rule__ImportDeclaration__ImportURIAssignment_1"); + put(grammarAccess.getFunctionDeclarationAccess().getNameAssignment_1(), "rule__FunctionDeclaration__NameAssignment_1"); + put(grammarAccess.getFunctionDeclarationAccess().getParametersAssignment_2_1_0(), "rule__FunctionDeclaration__ParametersAssignment_2_1_0"); + put(grammarAccess.getFunctionDeclarationAccess().getParametersAssignment_2_1_1_1(), "rule__FunctionDeclaration__ParametersAssignment_2_1_1_1"); + put(grammarAccess.getFunctionDeclarationAccess().getTypeAssignment_4(), "rule__FunctionDeclaration__TypeAssignment_4"); + put(grammarAccess.getFunctionDeclarationAccess().getVariablesAssignment_6_1(), "rule__FunctionDeclaration__VariablesAssignment_6_1"); + put(grammarAccess.getFunctionDeclarationAccess().getVariablesAssignment_6_2_1(), "rule__FunctionDeclaration__VariablesAssignment_6_2_1"); + put(grammarAccess.getFunctionDeclarationAccess().getStatementAssignment_7(), "rule__FunctionDeclaration__StatementAssignment_7"); + put(grammarAccess.getTypeDeclarationAccess().getNameAssignment_1(), "rule__TypeDeclaration__NameAssignment_1"); + put(grammarAccess.getTypeDeclarationAccess().getValueAssignment_3(), "rule__TypeDeclaration__ValueAssignment_3"); + put(grammarAccess.getChannelDeclarationAccess().getNameAssignment_1(), "rule__ChannelDeclaration__NameAssignment_1"); + put(grammarAccess.getChannelDeclarationAccess().getValueAssignment_3(), "rule__ChannelDeclaration__ValueAssignment_3"); + put(grammarAccess.getChannelTypeAccess().getSizeAssignment_1_1(), "rule__ChannelType__SizeAssignment_1_1"); + put(grammarAccess.getChannelTypeAccess().getInAssignment_2_0_0_0_0(), "rule__ChannelType__InAssignment_2_0_0_0_0"); + put(grammarAccess.getChannelTypeAccess().getOutAssignment_2_0_0_0_1(), "rule__ChannelType__OutAssignment_2_0_0_0_1"); + put(grammarAccess.getChannelTypeAccess().getOutAssignment_2_0_0_1(), "rule__ChannelType__OutAssignment_2_0_0_1"); + put(grammarAccess.getChannelTypeAccess().getTypeAssignment_2_0_1_0(), "rule__ChannelType__TypeAssignment_2_0_1_0"); + put(grammarAccess.getTupleTypeAccess().getTypesAssignment_1_2(), "rule__TupleType__TypesAssignment_1_2"); + put(grammarAccess.getRangeTypeAccess().getMinimumAssignment_0(), "rule__RangeType__MinimumAssignment_0"); + put(grammarAccess.getRangeTypeAccess().getMaximumAssignment_2(), "rule__RangeType__MaximumAssignment_2"); + put(grammarAccess.getUnionTypeAccess().getTagsAssignment_1(), "rule__UnionType__TagsAssignment_1"); + put(grammarAccess.getUnionTypeAccess().getTagsAssignment_2_1(), "rule__UnionType__TagsAssignment_2_1"); + put(grammarAccess.getUnionTagsAccess().getTagsAssignment_0(), "rule__UnionTags__TagsAssignment_0"); + put(grammarAccess.getUnionTagsAccess().getTagsAssignment_1_1(), "rule__UnionTags__TagsAssignment_1_1"); + put(grammarAccess.getUnionTagsAccess().getTypeAssignment_2_1(), "rule__UnionTags__TypeAssignment_2_1"); + put(grammarAccess.getUnionTagDeclarationAccess().getNameAssignment(), "rule__UnionTagDeclaration__NameAssignment"); + put(grammarAccess.getRecordTypeAccess().getFieldsAssignment_1(), "rule__RecordType__FieldsAssignment_1"); + put(grammarAccess.getRecordTypeAccess().getFieldsAssignment_2_1(), "rule__RecordType__FieldsAssignment_2_1"); + put(grammarAccess.getRecordFieldsAccess().getFieldsAssignment_0(), "rule__RecordFields__FieldsAssignment_0"); + put(grammarAccess.getRecordFieldsAccess().getFieldsAssignment_1_1(), "rule__RecordFields__FieldsAssignment_1_1"); + put(grammarAccess.getRecordFieldsAccess().getTypeAssignment_3(), "rule__RecordFields__TypeAssignment_3"); + put(grammarAccess.getRecordFieldDeclarationAccess().getNameAssignment(), "rule__RecordFieldDeclaration__NameAssignment"); + put(grammarAccess.getQueueTypeAccess().getSizeAssignment_1(), "rule__QueueType__SizeAssignment_1"); + put(grammarAccess.getQueueTypeAccess().getTypeAssignment_3(), "rule__QueueType__TypeAssignment_3"); + put(grammarAccess.getArrayTypeAccess().getSizeAssignment_1(), "rule__ArrayType__SizeAssignment_1"); + put(grammarAccess.getArrayTypeAccess().getTypeAssignment_3(), "rule__ArrayType__TypeAssignment_3"); + put(grammarAccess.getReferencedTypeAccess().getTypeAssignment(), "rule__ReferencedType__TypeAssignment"); + put(grammarAccess.getConstantDeclarationAccess().getNameAssignment_1(), "rule__ConstantDeclaration__NameAssignment_1"); + put(grammarAccess.getConstantDeclarationAccess().getTypeAssignment_3(), "rule__ConstantDeclaration__TypeAssignment_3"); + put(grammarAccess.getConstantDeclarationAccess().getValueAssignment_5(), "rule__ConstantDeclaration__ValueAssignment_5"); + put(grammarAccess.getProcessDeclarationAccess().getNameAssignment_1(), "rule__ProcessDeclaration__NameAssignment_1"); + put(grammarAccess.getProcessDeclarationAccess().getPortsAssignment_2_1(), "rule__ProcessDeclaration__PortsAssignment_2_1"); + put(grammarAccess.getProcessDeclarationAccess().getPortsAssignment_2_2_1(), "rule__ProcessDeclaration__PortsAssignment_2_2_1"); + put(grammarAccess.getProcessDeclarationAccess().getParametersAssignment_3_1(), "rule__ProcessDeclaration__ParametersAssignment_3_1"); + put(grammarAccess.getProcessDeclarationAccess().getParametersAssignment_3_2_1(), "rule__ProcessDeclaration__ParametersAssignment_3_2_1"); + put(grammarAccess.getProcessDeclarationAccess().getLocalPortsAssignment_5_1(), "rule__ProcessDeclaration__LocalPortsAssignment_5_1"); + put(grammarAccess.getProcessDeclarationAccess().getLocalPortsAssignment_5_2_1(), "rule__ProcessDeclaration__LocalPortsAssignment_5_2_1"); + put(grammarAccess.getProcessDeclarationAccess().getPrioritiesAssignment_6_1(), "rule__ProcessDeclaration__PrioritiesAssignment_6_1"); + put(grammarAccess.getProcessDeclarationAccess().getPrioritiesAssignment_6_2_1(), "rule__ProcessDeclaration__PrioritiesAssignment_6_2_1"); + put(grammarAccess.getProcessDeclarationAccess().getStatesAssignment_8(), "rule__ProcessDeclaration__StatesAssignment_8"); + put(grammarAccess.getProcessDeclarationAccess().getStatesAssignment_9_1(), "rule__ProcessDeclaration__StatesAssignment_9_1"); + put(grammarAccess.getProcessDeclarationAccess().getVariablesAssignment_10_1(), "rule__ProcessDeclaration__VariablesAssignment_10_1"); + put(grammarAccess.getProcessDeclarationAccess().getVariablesAssignment_10_2_1(), "rule__ProcessDeclaration__VariablesAssignment_10_2_1"); + put(grammarAccess.getProcessDeclarationAccess().getPreludeAssignment_11_1(), "rule__ProcessDeclaration__PreludeAssignment_11_1"); + put(grammarAccess.getProcessDeclarationAccess().getTransitionsAssignment_12(), "rule__ProcessDeclaration__TransitionsAssignment_12"); + put(grammarAccess.getStateDeclarationAccess().getNameAssignment(), "rule__StateDeclaration__NameAssignment"); + put(grammarAccess.getTransitionSourceAccess().getOriginAssignment_1(), "rule__TransitionSource__OriginAssignment_1"); + put(grammarAccess.getTransitionAccess().getSourceAssignment_0(), "rule__Transition__SourceAssignment_0"); + put(grammarAccess.getTransitionAccess().getActionAssignment_1(), "rule__Transition__ActionAssignment_1"); + put(grammarAccess.getComponentDeclarationAccess().getNameAssignment_1(), "rule__ComponentDeclaration__NameAssignment_1"); + put(grammarAccess.getComponentDeclarationAccess().getPortsAssignment_2_1(), "rule__ComponentDeclaration__PortsAssignment_2_1"); + put(grammarAccess.getComponentDeclarationAccess().getPortsAssignment_2_2_1(), "rule__ComponentDeclaration__PortsAssignment_2_2_1"); + put(grammarAccess.getComponentDeclarationAccess().getParametersAssignment_3_1(), "rule__ComponentDeclaration__ParametersAssignment_3_1"); + put(grammarAccess.getComponentDeclarationAccess().getParametersAssignment_3_2_1(), "rule__ComponentDeclaration__ParametersAssignment_3_2_1"); + put(grammarAccess.getComponentDeclarationAccess().getVariablesAssignment_5_1(), "rule__ComponentDeclaration__VariablesAssignment_5_1"); + put(grammarAccess.getComponentDeclarationAccess().getVariablesAssignment_5_2_1(), "rule__ComponentDeclaration__VariablesAssignment_5_2_1"); + put(grammarAccess.getComponentDeclarationAccess().getLocalPortsAssignment_6_1(), "rule__ComponentDeclaration__LocalPortsAssignment_6_1"); + put(grammarAccess.getComponentDeclarationAccess().getLocalPortsAssignment_6_2_1(), "rule__ComponentDeclaration__LocalPortsAssignment_6_2_1"); + put(grammarAccess.getComponentDeclarationAccess().getPrioritiesAssignment_7_1(), "rule__ComponentDeclaration__PrioritiesAssignment_7_1"); + put(grammarAccess.getComponentDeclarationAccess().getPrioritiesAssignment_7_2_1(), "rule__ComponentDeclaration__PrioritiesAssignment_7_2_1"); + put(grammarAccess.getComponentDeclarationAccess().getPreludeAssignment_8_1(), "rule__ComponentDeclaration__PreludeAssignment_8_1"); + put(grammarAccess.getComponentDeclarationAccess().getBodyAssignment_9(), "rule__ComponentDeclaration__BodyAssignment_9"); + put(grammarAccess.getPortsDeclarationAccess().getPortsAssignment_0(), "rule__PortsDeclaration__PortsAssignment_0"); + put(grammarAccess.getPortsDeclarationAccess().getPortsAssignment_1_1(), "rule__PortsDeclaration__PortsAssignment_1_1"); + put(grammarAccess.getPortsDeclarationAccess().getTypeAssignment_3(), "rule__PortsDeclaration__TypeAssignment_3"); + put(grammarAccess.getPortDeclarationAccess().getNameAssignment(), "rule__PortDeclaration__NameAssignment"); + put(grammarAccess.getLocalPortsDeclarationAccess().getPortsAssignment_0(), "rule__LocalPortsDeclaration__PortsAssignment_0"); + put(grammarAccess.getLocalPortsDeclarationAccess().getPortsAssignment_1_1(), "rule__LocalPortsDeclaration__PortsAssignment_1_1"); + put(grammarAccess.getLocalPortsDeclarationAccess().getTypeAssignment_3(), "rule__LocalPortsDeclaration__TypeAssignment_3"); + put(grammarAccess.getLocalPortsDeclarationAccess().getLeftAssignment_4_1(), "rule__LocalPortsDeclaration__LeftAssignment_4_1"); + put(grammarAccess.getLocalPortsDeclarationAccess().getRightAssignment_4_3(), "rule__LocalPortsDeclaration__RightAssignment_4_3"); + put(grammarAccess.getParametersDeclarationAccess().getParametersAssignment_0(), "rule__ParametersDeclaration__ParametersAssignment_0"); + put(grammarAccess.getParametersDeclarationAccess().getParametersAssignment_1_1(), "rule__ParametersDeclaration__ParametersAssignment_1_1"); + put(grammarAccess.getParametersDeclarationAccess().getReadAssignment_3(), "rule__ParametersDeclaration__ReadAssignment_3"); + put(grammarAccess.getParametersDeclarationAccess().getWriteAssignment_4(), "rule__ParametersDeclaration__WriteAssignment_4"); + put(grammarAccess.getParametersDeclarationAccess().getTypeAssignment_5(), "rule__ParametersDeclaration__TypeAssignment_5"); + put(grammarAccess.getParameterDeclarationAccess().getReferenceAssignment_0_0(), "rule__ParameterDeclaration__ReferenceAssignment_0_0"); + put(grammarAccess.getParameterDeclarationAccess().getArrayAssignment_0_1_0(), "rule__ParameterDeclaration__ArrayAssignment_0_1_0"); + put(grammarAccess.getParameterDeclarationAccess().getSizeAssignment_0_1_1(), "rule__ParameterDeclaration__SizeAssignment_0_1_1"); + put(grammarAccess.getParameterDeclarationAccess().getNameAssignment_1(), "rule__ParameterDeclaration__NameAssignment_1"); + put(grammarAccess.getVariablesDeclarationAccess().getVariablesAssignment_0(), "rule__VariablesDeclaration__VariablesAssignment_0"); + put(grammarAccess.getVariablesDeclarationAccess().getVariablesAssignment_1_1(), "rule__VariablesDeclaration__VariablesAssignment_1_1"); + put(grammarAccess.getVariablesDeclarationAccess().getTypeAssignment_3(), "rule__VariablesDeclaration__TypeAssignment_3"); + put(grammarAccess.getVariablesDeclarationAccess().getValueAssignment_4_1(), "rule__VariablesDeclaration__ValueAssignment_4_1"); + put(grammarAccess.getVariableDeclarationAccess().getNameAssignment(), "rule__VariableDeclaration__NameAssignment"); + put(grammarAccess.getPriorityDeclarationAccess().getGroupsAssignment_0(), "rule__PriorityDeclaration__GroupsAssignment_0"); + put(grammarAccess.getPriorityDeclarationAccess().getGroupsAssignment_1_1(), "rule__PriorityDeclaration__GroupsAssignment_1_1"); + put(grammarAccess.getPriorityGroupAccess().getPortsAssignment_0(), "rule__PriorityGroup__PortsAssignment_0"); + put(grammarAccess.getPriorityGroupAccess().getPortsAssignment_1_1(), "rule__PriorityGroup__PortsAssignment_1_1"); + put(grammarAccess.getUnlessStatementAccess().getFollowersAssignment_1_2(), "rule__UnlessStatement__FollowersAssignment_1_2"); + put(grammarAccess.getStatementChoiceAccess().getChoicesAssignment_1_2(), "rule__StatementChoice__ChoicesAssignment_1_2"); + put(grammarAccess.getStatementSequenceAccess().getStatementsAssignment_1_2(), "rule__StatementSequence__StatementsAssignment_1_2"); + put(grammarAccess.getBlockStatementAccess().getBodyAssignment_1(), "rule__BlockStatement__BodyAssignment_1"); + put(grammarAccess.getReturnStatementAccess().getExpressionAssignment_1(), "rule__ReturnStatement__ExpressionAssignment_1"); + put(grammarAccess.getTaggedStatementAccess().getNameAssignment_1(), "rule__TaggedStatement__NameAssignment_1"); + put(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_0_2(), "rule__PatternStatement__PatternsAssignment_1_0_2"); + put(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_0_3_1(), "rule__PatternStatement__PatternsAssignment_1_0_3_1"); + put(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_0_5(), "rule__PatternStatement__ValuesAssignment_1_0_5"); + put(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_0_6_1(), "rule__PatternStatement__ValuesAssignment_1_0_6_1"); + put(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_1_2_0(), "rule__PatternStatement__ValuesAssignment_1_1_2_0"); + put(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_1_2_1_1(), "rule__PatternStatement__ValuesAssignment_1_1_2_1_1"); + put(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_2_2(), "rule__PatternStatement__PatternsAssignment_1_2_2"); + put(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_2_3_1(), "rule__PatternStatement__PatternsAssignment_1_2_3_1"); + put(grammarAccess.getPatternStatementAccess().getExpAssignment_1_2_6_1(), "rule__PatternStatement__ExpAssignment_1_2_6_1"); + put(grammarAccess.getPatternStatementAccess().getExpAssignment_1_3_3_1(), "rule__PatternStatement__ExpAssignment_1_3_3_1"); + put(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_4_2(), "rule__PatternStatement__ValuesAssignment_1_4_2"); + put(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_4_3_1(), "rule__PatternStatement__ValuesAssignment_1_4_3_1"); + put(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_5_2(), "rule__PatternStatement__PatternsAssignment_1_5_2"); + put(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_5_3_1(), "rule__PatternStatement__PatternsAssignment_1_5_3_1"); + put(grammarAccess.getPatternStatementAccess().getExpAssignment_1_5_4_1(), "rule__PatternStatement__ExpAssignment_1_5_4_1"); + put(grammarAccess.getConstantPatternAccess().getValueAssignment(), "rule__ConstantPattern__ValueAssignment"); + put(grammarAccess.getIntegerPatternAccess().getNegativeAssignment_0_1(), "rule__IntegerPattern__NegativeAssignment_0_1"); + put(grammarAccess.getIntegerPatternAccess().getValueAssignment_1(), "rule__IntegerPattern__ValueAssignment_1"); + put(grammarAccess.getIdentifierPatternAccess().getDeclarationAssignment_0_1(), "rule__IdentifierPattern__DeclarationAssignment_0_1"); + put(grammarAccess.getIdentifierPatternAccess().getParametersAssignment_0_3_0(), "rule__IdentifierPattern__ParametersAssignment_0_3_0"); + put(grammarAccess.getIdentifierPatternAccess().getParametersAssignment_0_3_1_1(), "rule__IdentifierPattern__ParametersAssignment_0_3_1_1"); + put(grammarAccess.getIdentifierPatternAccess().getDeclarationAssignment_1_0(), "rule__IdentifierPattern__DeclarationAssignment_1_0"); + put(grammarAccess.getIdentifierPatternAccess().getIndexAssignment_1_1_0_2(), "rule__IdentifierPattern__IndexAssignment_1_1_0_2"); + put(grammarAccess.getIdentifierPatternAccess().getFieldAssignment_1_1_1_2(), "rule__IdentifierPattern__FieldAssignment_1_1_1_2"); + put(grammarAccess.getConditionalStatementAccess().getConditionAssignment_1(), "rule__ConditionalStatement__ConditionAssignment_1"); + put(grammarAccess.getConditionalStatementAccess().getThenAssignment_3(), "rule__ConditionalStatement__ThenAssignment_3"); + put(grammarAccess.getConditionalStatementAccess().getElseifAssignment_4(), "rule__ConditionalStatement__ElseifAssignment_4"); + put(grammarAccess.getConditionalStatementAccess().getElseAssignment_5_1(), "rule__ConditionalStatement__ElseAssignment_5_1"); + put(grammarAccess.getExtendedConditionalStatementAccess().getConditionAssignment_1(), "rule__ExtendedConditionalStatement__ConditionAssignment_1"); + put(grammarAccess.getExtendedConditionalStatementAccess().getThenAssignment_3(), "rule__ExtendedConditionalStatement__ThenAssignment_3"); + put(grammarAccess.getSelectStatementAccess().getBodyAssignment_1(), "rule__SelectStatement__BodyAssignment_1"); + put(grammarAccess.getSelectStatementAccess().getIndexAssignment_2_1(), "rule__SelectStatement__IndexAssignment_2_1"); + put(grammarAccess.getSelectStatementAccess().getTypeAssignment_2_3(), "rule__SelectStatement__TypeAssignment_2_3"); + put(grammarAccess.getWhileStatementAccess().getConditionAssignment_1(), "rule__WhileStatement__ConditionAssignment_1"); + put(grammarAccess.getWhileStatementAccess().getBodyAssignment_3(), "rule__WhileStatement__BodyAssignment_3"); + put(grammarAccess.getForeachStatementAccess().getVariableAssignment_1(), "rule__ForeachStatement__VariableAssignment_1"); + put(grammarAccess.getForeachStatementAccess().getBodyAssignment_3(), "rule__ForeachStatement__BodyAssignment_3"); + put(grammarAccess.getToStatementAccess().getStateAssignment_1(), "rule__ToStatement__StateAssignment_1"); + put(grammarAccess.getCaseStatementAccess().getValueAssignment_1(), "rule__CaseStatement__ValueAssignment_1"); + put(grammarAccess.getCaseStatementAccess().getPatternAssignment_3(), "rule__CaseStatement__PatternAssignment_3"); + put(grammarAccess.getCaseStatementAccess().getBodyAssignment_5(), "rule__CaseStatement__BodyAssignment_5"); + put(grammarAccess.getCaseStatementAccess().getPatternAssignment_6_1(), "rule__CaseStatement__PatternAssignment_6_1"); + put(grammarAccess.getCaseStatementAccess().getBodyAssignment_6_3(), "rule__CaseStatement__BodyAssignment_6_3"); + put(grammarAccess.getOnStatementAccess().getConditionAssignment_1(), "rule__OnStatement__ConditionAssignment_1"); + put(grammarAccess.getWaitStatementAccess().getLeftAssignment_1(), "rule__WaitStatement__LeftAssignment_1"); + put(grammarAccess.getWaitStatementAccess().getRightAssignment_3(), "rule__WaitStatement__RightAssignment_3"); + put(grammarAccess.getCompositionAccess().getGlobalAssignment_1_0(), "rule__Composition__GlobalAssignment_1_0"); + put(grammarAccess.getCompositionAccess().getBlocksAssignment_2(), "rule__Composition__BlocksAssignment_2"); + put(grammarAccess.getCompositionAccess().getBlocksAssignment_3_1(), "rule__Composition__BlocksAssignment_3_1"); + put(grammarAccess.getCompositeBlockAccess().getLocalAssignment_0_0_0(), "rule__CompositeBlock__LocalAssignment_0_0_0"); + put(grammarAccess.getCompositeBlockAccess().getCompositionAssignment_1(), "rule__CompositeBlock__CompositionAssignment_1"); + put(grammarAccess.getInstanceDeclarationAccess().getLocalAssignment_0_0_0(), "rule__InstanceDeclaration__LocalAssignment_0_0_0"); + put(grammarAccess.getInstanceDeclarationAccess().getInstanceAssignment_1(), "rule__InstanceDeclaration__InstanceAssignment_1"); + put(grammarAccess.getPortSetAccess().getAllPortsAssignment_0(), "rule__PortSet__AllPortsAssignment_0"); + put(grammarAccess.getPortSetAccess().getPortsAssignment_1_0(), "rule__PortSet__PortsAssignment_1_0"); + put(grammarAccess.getPortSetAccess().getPortsAssignment_1_1_1(), "rule__PortSet__PortsAssignment_1_1_1"); + put(grammarAccess.getComponentInstanceAccess().getComponentAssignment_0(), "rule__ComponentInstance__ComponentAssignment_0"); + put(grammarAccess.getComponentInstanceAccess().getPortsAssignment_1_1(), "rule__ComponentInstance__PortsAssignment_1_1"); + put(grammarAccess.getComponentInstanceAccess().getPortsAssignment_1_2_1(), "rule__ComponentInstance__PortsAssignment_1_2_1"); + put(grammarAccess.getComponentInstanceAccess().getParametersAssignment_2_1(), "rule__ComponentInstance__ParametersAssignment_2_1"); + put(grammarAccess.getComponentInstanceAccess().getParametersAssignment_2_2_1(), "rule__ComponentInstance__ParametersAssignment_2_2_1"); + put(grammarAccess.getQuantifiedExpressionAccess().getIndexAssignment_0_1(), "rule__QuantifiedExpression__IndexAssignment_0_1"); + put(grammarAccess.getQuantifiedExpressionAccess().getTypeAssignment_0_2_1(), "rule__QuantifiedExpression__TypeAssignment_0_2_1"); + put(grammarAccess.getQuantifiedExpressionAccess().getChildAssignment_0_4(), "rule__QuantifiedExpression__ChildAssignment_0_4"); + put(grammarAccess.getConditionalAccess().getThenAssignment_1_2(), "rule__Conditional__ThenAssignment_1_2"); + put(grammarAccess.getConditionalAccess().getElseAssignment_1_4(), "rule__Conditional__ElseAssignment_1_4"); + put(grammarAccess.getDisjunctionAccess().getRightAssignment_1_2(), "rule__Disjunction__RightAssignment_1_2"); + put(grammarAccess.getImplicationAccess().getRightAssignment_1_2(), "rule__Implication__RightAssignment_1_2"); + put(grammarAccess.getConjunctionAccess().getRightAssignment_1_2(), "rule__Conjunction__RightAssignment_1_2"); + put(grammarAccess.getComparisonAccess().getRightAssignment_1_1(), "rule__Comparison__RightAssignment_1_1"); + put(grammarAccess.getAdditionAccess().getRightAssignment_1_2(), "rule__Addition__RightAssignment_1_2"); + put(grammarAccess.getSubstractionAccess().getRightAssignment_1_2(), "rule__Substraction__RightAssignment_1_2"); + put(grammarAccess.getMultiplicationAccess().getRightAssignment_1_2(), "rule__Multiplication__RightAssignment_1_2"); + put(grammarAccess.getDivisionAccess().getRightAssignment_1_2(), "rule__Division__RightAssignment_1_2"); + put(grammarAccess.getModuloAccess().getRightAssignment_1_2(), "rule__Modulo__RightAssignment_1_2"); + put(grammarAccess.getUnaryExpressionAccess().getChildAssignment_0_1(), "rule__UnaryExpression__ChildAssignment_0_1"); + put(grammarAccess.getProjectionAccess().getFieldAssignment_1_2(), "rule__Projection__FieldAssignment_1_2"); + put(grammarAccess.getReferenceExpressionAccess().getDeclarationAssignment_1(), "rule__ReferenceExpression__DeclarationAssignment_1"); + put(grammarAccess.getIdentifierExpressionAccess().getDeclarationAssignment_0_1(), "rule__IdentifierExpression__DeclarationAssignment_0_1"); + put(grammarAccess.getIdentifierExpressionAccess().getParametersAssignment_0_3_0(), "rule__IdentifierExpression__ParametersAssignment_0_3_0"); + put(grammarAccess.getIdentifierExpressionAccess().getParametersAssignment_0_3_1_1(), "rule__IdentifierExpression__ParametersAssignment_0_3_1_1"); + put(grammarAccess.getIdentifierExpressionAccess().getDeclarationAssignment_1_0(), "rule__IdentifierExpression__DeclarationAssignment_1_0"); + put(grammarAccess.getIdentifierExpressionAccess().getIndexesAssignment_1_1_0_2(), "rule__IdentifierExpression__IndexesAssignment_1_1_0_2"); + put(grammarAccess.getIdentifierExpressionAccess().getIndexesAssignment_1_1_0_3_1(), "rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1"); + put(grammarAccess.getIdentifierExpressionAccess().getFieldAssignment_1_1_1_2(), "rule__IdentifierExpression__FieldAssignment_1_1_1_2"); + put(grammarAccess.getRecordExpressionAccess().getFieldsAssignment_1(), "rule__RecordExpression__FieldsAssignment_1"); + put(grammarAccess.getRecordExpressionAccess().getFieldsAssignment_2_1(), "rule__RecordExpression__FieldsAssignment_2_1"); + put(grammarAccess.getFieldExpressionAccess().getFieldAssignment_0(), "rule__FieldExpression__FieldAssignment_0"); + put(grammarAccess.getFieldExpressionAccess().getValueAssignment_2(), "rule__FieldExpression__ValueAssignment_2"); + put(grammarAccess.getArrayExpressionAccess().getValuesAssignment_2_0(), "rule__ArrayExpression__ValuesAssignment_2_0"); + put(grammarAccess.getArrayExpressionAccess().getValuesAssignment_2_1_1(), "rule__ArrayExpression__ValuesAssignment_2_1_1"); + put(grammarAccess.getQueueExpressionAccess().getValuesAssignment_2_0(), "rule__QueueExpression__ValuesAssignment_2_0"); + put(grammarAccess.getQueueExpressionAccess().getValuesAssignment_2_1_1(), "rule__QueueExpression__ValuesAssignment_2_1_1"); + put(grammarAccess.getEnqueueExpressionAccess().getElementAssignment_2(), "rule__EnqueueExpression__ElementAssignment_2"); + put(grammarAccess.getEnqueueExpressionAccess().getQueueAssignment_4(), "rule__EnqueueExpression__QueueAssignment_4"); + put(grammarAccess.getAppendExpressionAccess().getLeftAssignment_2(), "rule__AppendExpression__LeftAssignment_2"); + put(grammarAccess.getAppendExpressionAccess().getRightAssignment_4(), "rule__AppendExpression__RightAssignment_4"); + put(grammarAccess.getNaturalLiteralAccess().getValueAssignment(), "rule__NaturalLiteral__ValueAssignment"); + put(grammarAccess.getNaturalLowerBoundAccess().getLeftAssignment_0_0(), "rule__NaturalLowerBound__LeftAssignment_0_0"); + put(grammarAccess.getNaturalLowerBoundAccess().getRightAssignment_0_1(), "rule__NaturalLowerBound__RightAssignment_0_1"); + put(grammarAccess.getNaturalLowerBoundAccess().getValueAssignment_1(), "rule__NaturalLowerBound__ValueAssignment_1"); + put(grammarAccess.getNaturalUpperBoundAccess().getValueAssignment_0(), "rule__NaturalUpperBound__ValueAssignment_0"); + put(grammarAccess.getNaturalUpperBoundAccess().getLeftAssignment_1_0(), "rule__NaturalUpperBound__LeftAssignment_1_0"); + put(grammarAccess.getNaturalUpperBoundAccess().getRightAssignment_1_1(), "rule__NaturalUpperBound__RightAssignment_1_1"); + put(grammarAccess.getDecimalLowerBoundAccess().getLeftAssignment_0_0(), "rule__DecimalLowerBound__LeftAssignment_0_0"); + put(grammarAccess.getDecimalLowerBoundAccess().getRightAssignment_0_1(), "rule__DecimalLowerBound__RightAssignment_0_1"); + put(grammarAccess.getDecimalLowerBoundAccess().getValueAssignment_1(), "rule__DecimalLowerBound__ValueAssignment_1"); + put(grammarAccess.getDecimalUpperBoundAccess().getValueAssignment_0(), "rule__DecimalUpperBound__ValueAssignment_0"); + put(grammarAccess.getDecimalUpperBoundAccess().getLeftAssignment_1_0(), "rule__DecimalUpperBound__LeftAssignment_1_0"); + put(grammarAccess.getDecimalUpperBoundAccess().getRightAssignment_1_1(), "rule__DecimalUpperBound__RightAssignment_1_1"); + put(grammarAccess.getVariableLowerBoundAccess().getLeftAssignment_0_0(), "rule__VariableLowerBound__LeftAssignment_0_0"); + put(grammarAccess.getVariableLowerBoundAccess().getRightAssignment_0_1(), "rule__VariableLowerBound__RightAssignment_0_1"); + put(grammarAccess.getVariableLowerBoundAccess().getVariableAssignment_1(), "rule__VariableLowerBound__VariableAssignment_1"); + put(grammarAccess.getVariableUpperBoundAccess().getVariableAssignment_0(), "rule__VariableUpperBound__VariableAssignment_0"); + put(grammarAccess.getVariableUpperBoundAccess().getLeftAssignment_1_0(), "rule__VariableUpperBound__LeftAssignment_1_0"); + put(grammarAccess.getVariableUpperBoundAccess().getRightAssignment_1_1(), "rule__VariableUpperBound__RightAssignment_1_1"); + put(grammarAccess.getRequirementAccess().getPropertyAssignment_1(), "rule__Requirement__PropertyAssignment_1"); + put(grammarAccess.getRequirementAccess().getPositiveAssignment_2_1(), "rule__Requirement__PositiveAssignment_2_1"); + put(grammarAccess.getRequirementAccess().getNegativeAssignment_3_1(), "rule__Requirement__NegativeAssignment_3_1"); + put(grammarAccess.getPropertyDeclarationAccess().getNameAssignment_1(), "rule__PropertyDeclaration__NameAssignment_1"); + put(grammarAccess.getPropertyDeclarationAccess().getPropertyAssignment_3(), "rule__PropertyDeclaration__PropertyAssignment_3"); + put(grammarAccess.getQuantifiedPropertyAccess().getVariableAssignment_0_1(), "rule__QuantifiedProperty__VariableAssignment_0_1"); + put(grammarAccess.getQuantifiedPropertyAccess().getTypeAssignment_0_3(), "rule__QuantifiedProperty__TypeAssignment_0_3"); + put(grammarAccess.getQuantifiedPropertyAccess().getChildAssignment_0_5(), "rule__QuantifiedProperty__ChildAssignment_0_5"); + put(grammarAccess.getPropertyDisjunctionAccess().getRightAssignment_1_2(), "rule__PropertyDisjunction__RightAssignment_1_2"); + put(grammarAccess.getPropertyImplicationAccess().getRightAssignment_1_2(), "rule__PropertyImplication__RightAssignment_1_2"); + put(grammarAccess.getPropertyConjunctionAccess().getRightAssignment_1_2(), "rule__PropertyConjunction__RightAssignment_1_2"); + put(grammarAccess.getPropertyNegationAccess().getChildAssignment_0_2(), "rule__PropertyNegation__ChildAssignment_0_2"); + put(grammarAccess.getLTLPatternAccess().getPropertyAssignment_1(), "rule__LTLPattern__PropertyAssignment_1"); + put(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAssignment_1(), "rule__InfinitelyOftenPattern__SubjectAssignment_1"); + put(grammarAccess.getMortalPatternAccess().getSubjectAssignment_1(), "rule__MortalPattern__SubjectAssignment_1"); + put(grammarAccess.getPresencePatternAccess().getSubjectAssignment_1(), "rule__PresencePattern__SubjectAssignment_1"); + put(grammarAccess.getPresencePatternAccess().getLastingAssignment_2_0_1(), "rule__PresencePattern__LastingAssignment_2_0_1"); + put(grammarAccess.getPresencePatternAccess().getAfterAssignment_2_1_0_1(), "rule__PresencePattern__AfterAssignment_2_1_0_1"); + put(grammarAccess.getPresencePatternAccess().getLowerAssignment_2_1_1_0_1(), "rule__PresencePattern__LowerAssignment_2_1_1_0_1"); + put(grammarAccess.getPresencePatternAccess().getUpperAssignment_2_1_1_0_3(), "rule__PresencePattern__UpperAssignment_2_1_1_0_3"); + put(grammarAccess.getPresencePatternAccess().getUntilAssignment_2_1_1_1_1(), "rule__PresencePattern__UntilAssignment_2_1_1_1_1"); + put(grammarAccess.getPresencePatternAccess().getBeforeAssignment_2_2_0_1(), "rule__PresencePattern__BeforeAssignment_2_2_0_1"); + put(grammarAccess.getPresencePatternAccess().getLowerAssignment_2_2_1_1(), "rule__PresencePattern__LowerAssignment_2_2_1_1"); + put(grammarAccess.getPresencePatternAccess().getUpperAssignment_2_2_1_3(), "rule__PresencePattern__UpperAssignment_2_2_1_3"); + put(grammarAccess.getPresencePatternAccess().getMinAssignment_2_3_1(), "rule__PresencePattern__MinAssignment_2_3_1"); + put(grammarAccess.getPresencePatternAccess().getMaxAssignment_2_3_3(), "rule__PresencePattern__MaxAssignment_2_3_3"); + put(grammarAccess.getAbsencePatternAccess().getSubjectAssignment_1(), "rule__AbsencePattern__SubjectAssignment_1"); + put(grammarAccess.getAbsencePatternAccess().getAfterAssignment_2_0_0_1(), "rule__AbsencePattern__AfterAssignment_2_0_0_1"); + put(grammarAccess.getAbsencePatternAccess().getLowerAssignment_2_0_1_0_1(), "rule__AbsencePattern__LowerAssignment_2_0_1_0_1"); + put(grammarAccess.getAbsencePatternAccess().getUpperAssignment_2_0_1_0_3(), "rule__AbsencePattern__UpperAssignment_2_0_1_0_3"); + put(grammarAccess.getAbsencePatternAccess().getUntilAssignment_2_0_1_1_1(), "rule__AbsencePattern__UntilAssignment_2_0_1_1_1"); + put(grammarAccess.getAbsencePatternAccess().getBeforeAssignment_2_1_0_1(), "rule__AbsencePattern__BeforeAssignment_2_1_0_1"); + put(grammarAccess.getAbsencePatternAccess().getLowerAssignment_2_1_1_1(), "rule__AbsencePattern__LowerAssignment_2_1_1_1"); + put(grammarAccess.getAbsencePatternAccess().getUpperAssignment_2_1_1_3(), "rule__AbsencePattern__UpperAssignment_2_1_1_3"); + put(grammarAccess.getAbsencePatternAccess().getMinAssignment_2_2_1(), "rule__AbsencePattern__MinAssignment_2_2_1"); + put(grammarAccess.getAbsencePatternAccess().getMaxAssignment_2_2_3(), "rule__AbsencePattern__MaxAssignment_2_2_3"); + put(grammarAccess.getAlwaysPatternAccess().getSubjectAssignment_1(), "rule__AlwaysPattern__SubjectAssignment_1"); + put(grammarAccess.getAlwaysPatternAccess().getBeforeAssignment_2_0_1(), "rule__AlwaysPattern__BeforeAssignment_2_0_1"); + put(grammarAccess.getAlwaysPatternAccess().getAfterAssignment_2_1_1(), "rule__AlwaysPattern__AfterAssignment_2_1_1"); + put(grammarAccess.getAlwaysPatternAccess().getUntilAssignment_2_1_2_1(), "rule__AlwaysPattern__UntilAssignment_2_1_2_1"); + put(grammarAccess.getAlwaysPatternAccess().getMinAssignment_2_2_1(), "rule__AlwaysPattern__MinAssignment_2_2_1"); + put(grammarAccess.getAlwaysPatternAccess().getMaxAssignment_2_2_3(), "rule__AlwaysPattern__MaxAssignment_2_2_3"); + put(grammarAccess.getSequencePatternAccess().getFollowerAssignment_1_0_2(), "rule__SequencePattern__FollowerAssignment_1_0_2"); + put(grammarAccess.getSequencePatternAccess().getBeforeAssignment_1_0_3_0_1(), "rule__SequencePattern__BeforeAssignment_1_0_3_0_1"); + put(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_0_2_1(), "rule__SequencePattern__LowerAssignment_1_0_3_0_2_1"); + put(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_0_2_3(), "rule__SequencePattern__UpperAssignment_1_0_3_0_2_3"); + put(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_1_1(), "rule__SequencePattern__LowerAssignment_1_0_3_1_1"); + put(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_1_3(), "rule__SequencePattern__UpperAssignment_1_0_3_1_3"); + put(grammarAccess.getSequencePatternAccess().getAfterAssignment_1_0_3_2_1(), "rule__SequencePattern__AfterAssignment_1_0_3_2_1"); + put(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_2_2_0_1(), "rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1"); + put(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_2_2_0_3(), "rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3"); + put(grammarAccess.getSequencePatternAccess().getUntilAssignment_1_0_3_2_2_1_1(), "rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1"); + put(grammarAccess.getSequencePatternAccess().getMinAssignment_1_0_3_3_1(), "rule__SequencePattern__MinAssignment_1_0_3_3_1"); + put(grammarAccess.getSequencePatternAccess().getMaxAssignment_1_0_3_3_3(), "rule__SequencePattern__MaxAssignment_1_0_3_3_3"); + put(grammarAccess.getSequencePatternAccess().getFollowerAssignment_1_1_2(), "rule__SequencePattern__FollowerAssignment_1_1_2"); + put(grammarAccess.getSequencePatternAccess().getBeforeAssignment_1_1_3_0_1(), "rule__SequencePattern__BeforeAssignment_1_1_3_0_1"); + put(grammarAccess.getSequencePatternAccess().getAfterAssignment_1_1_3_1_1(), "rule__SequencePattern__AfterAssignment_1_1_3_1_1"); + put(grammarAccess.getSequencePatternAccess().getUntilAssignment_1_1_3_1_2_1(), "rule__SequencePattern__UntilAssignment_1_1_3_1_2_1"); + put(grammarAccess.getSequencePatternAccess().getMinAssignment_1_1_3_2_1(), "rule__SequencePattern__MinAssignment_1_1_3_2_1"); + put(grammarAccess.getSequencePatternAccess().getMaxAssignment_1_1_3_2_3(), "rule__SequencePattern__MaxAssignment_1_1_3_2_3"); + put(grammarAccess.getLTLQuantifiedAccess().getIndexAssignment_0_1(), "rule__LTLQuantified__IndexAssignment_0_1"); + put(grammarAccess.getLTLQuantifiedAccess().getTypeAssignment_0_3(), "rule__LTLQuantified__TypeAssignment_0_3"); + put(grammarAccess.getLTLQuantifiedAccess().getChildAssignment_0_5(), "rule__LTLQuantified__ChildAssignment_0_5"); + put(grammarAccess.getLTLDisjunctionAccess().getRightAssignment_1_2(), "rule__LTLDisjunction__RightAssignment_1_2"); + put(grammarAccess.getLTLImplicationAccess().getRightAssignment_1_2(), "rule__LTLImplication__RightAssignment_1_2"); + put(grammarAccess.getLTLConjunctionAccess().getRightAssignment_1_2(), "rule__LTLConjunction__RightAssignment_1_2"); + put(grammarAccess.getLTLBinaryAccess().getRightAssignment_1_0_2(), "rule__LTLBinary__RightAssignment_1_0_2"); + put(grammarAccess.getLTLBinaryAccess().getRightAssignment_1_1_2(), "rule__LTLBinary__RightAssignment_1_1_2"); + put(grammarAccess.getLTLUnaryAccess().getOperandAssignment_0_1(), "rule__LTLUnary__OperandAssignment_0_1"); + put(grammarAccess.getAtomicLTLAccess().getDeclarationAssignment_0_1(), "rule__AtomicLTL__DeclarationAssignment_0_1"); + put(grammarAccess.getEnterStateEventAccess().getSubjectAssignment_1(), "rule__EnterStateEvent__SubjectAssignment_1"); + put(grammarAccess.getLeaveStateEventAccess().getSubjectAssignment_1(), "rule__LeaveStateEvent__SubjectAssignment_1"); + put(grammarAccess.getObservableDisjunctionAccess().getRightAssignment_1_2(), "rule__ObservableDisjunction__RightAssignment_1_2"); + put(grammarAccess.getObservableImplicationAccess().getRightAssignment_1_2(), "rule__ObservableImplication__RightAssignment_1_2"); + put(grammarAccess.getObservableConjunctionAccess().getRightAssignment_1_2(), "rule__ObservableConjunction__RightAssignment_1_2"); + put(grammarAccess.getObservableNegationAccess().getChildAssignment_0_2(), "rule__ObservableNegation__ChildAssignment_0_2"); + put(grammarAccess.getPathEventAccess().getPathAssignment_0(), "rule__PathEvent__PathAssignment_0"); + put(grammarAccess.getPathEventAccess().getItemAssignment_1(), "rule__PathEvent__ItemAssignment_1"); + put(grammarAccess.getPathAccess().getItemsAssignment_0(), "rule__Path__ItemsAssignment_0"); + put(grammarAccess.getNaturalItemAccess().getValueAssignment(), "rule__NaturalItem__ValueAssignment"); + put(grammarAccess.getNamedItemAccess().getDeclarationAssignment(), "rule__NamedItem__DeclarationAssignment"); + put(grammarAccess.getStateSubjectAccess().getStateAssignment_1(), "rule__StateSubject__StateAssignment_1"); + put(grammarAccess.getValueSubjectAccess().getValueAssignment_1(), "rule__ValueSubject__ValueAssignment_1"); + put(grammarAccess.getTagSubjectAccess().getTagAssignment_1(), "rule__TagSubject__TagAssignment_1"); + put(grammarAccess.getEventSubjectAccess().getEventAssignment_1(), "rule__EventSubject__EventAssignment_1"); + } + }; + } + return nameMappings.get(element); + } + + @Override + protected Collection getFollowElements(AbstractInternalContentAssistParser parser) { + try { + InternalFiacreParser typedParser = (InternalFiacreParser) parser; + typedParser.entryRuleModel(); + return typedParser.getFollowElements(); + } catch(RecognitionException ex) { + throw new RuntimeException(ex); + } + } + + @Override + protected String[] getInitialHiddenTokens() { + return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" }; + } + + public FiacreGrammarAccess getGrammarAccess() { + return this.grammarAccess; + } + + public void setGrammarAccess(FiacreGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/PartialFiacreContentAssistParser.java b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/PartialFiacreContentAssistParser.java new file mode 100644 index 0000000..ebe6b9a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/PartialFiacreContentAssistParser.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.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 PartialFiacreContentAssistParser extends FiacreParser 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/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacre.g b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacre.g new file mode 100644 index 0000000..a1c8d4f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacre.g @@ -0,0 +1,33794 @@ +/* + * generated by Xtext 2.10.0 + */ +grammar InternalFiacre; + +options { + superClass=AbstractInternalContentAssistParser; + backtrack=true; +} + +@lexer::header { +package fr.irit.fiacre.xtext.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 fr.irit.fiacre.xtext.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 fr.irit.fiacre.xtext.services.FiacreGrammarAccess; + +} +@parser::members { + private FiacreGrammarAccess grammarAccess; + + public void setGrammarAccess(FiacreGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + + @Override + protected Grammar getGrammar() { + return grammarAccess.getGrammar(); + } + + @Override + protected String getValueForTokenName(String tokenName) { + return tokenName; + } +} + +// Entry rule entryRuleModel +entryRuleModel +: +{ before(grammarAccess.getModelRule()); } + ruleModel +{ after(grammarAccess.getModelRule()); } + EOF +; + +// Rule Model +ruleModel + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getModelAccess().getGroup()); } + (rule__Model__Group__0) + { after(grammarAccess.getModelAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleRoot +entryRuleRoot +: +{ before(grammarAccess.getRootRule()); } + ruleRoot +{ after(grammarAccess.getRootRule()); } + EOF +; + +// Rule Root +ruleRoot + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getRootAccess().getGroup()); } + (rule__Root__Group__0) + { after(grammarAccess.getRootAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleImportDeclaration +entryRuleImportDeclaration +: +{ before(grammarAccess.getImportDeclarationRule()); } + ruleImportDeclaration +{ after(grammarAccess.getImportDeclarationRule()); } + EOF +; + +// Rule ImportDeclaration +ruleImportDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getImportDeclarationAccess().getGroup()); } + (rule__ImportDeclaration__Group__0) + { after(grammarAccess.getImportDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleDeclaration +entryRuleDeclaration +: +{ before(grammarAccess.getDeclarationRule()); } + ruleDeclaration +{ after(grammarAccess.getDeclarationRule()); } + EOF +; + +// Rule Declaration +ruleDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getDeclarationAccess().getAlternatives()); } + (rule__Declaration__Alternatives) + { after(grammarAccess.getDeclarationAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleParameterizedDeclaration +entryRuleParameterizedDeclaration +: +{ before(grammarAccess.getParameterizedDeclarationRule()); } + ruleParameterizedDeclaration +{ after(grammarAccess.getParameterizedDeclarationRule()); } + EOF +; + +// Rule ParameterizedDeclaration +ruleParameterizedDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getParameterizedDeclarationAccess().getAlternatives()); } + (rule__ParameterizedDeclaration__Alternatives) + { after(grammarAccess.getParameterizedDeclarationAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleFunctionDeclaration +entryRuleFunctionDeclaration +: +{ before(grammarAccess.getFunctionDeclarationRule()); } + ruleFunctionDeclaration +{ after(grammarAccess.getFunctionDeclarationRule()); } + EOF +; + +// Rule FunctionDeclaration +ruleFunctionDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getFunctionDeclarationAccess().getGroup()); } + (rule__FunctionDeclaration__Group__0) + { after(grammarAccess.getFunctionDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleTypeDeclaration +entryRuleTypeDeclaration +: +{ before(grammarAccess.getTypeDeclarationRule()); } + ruleTypeDeclaration +{ after(grammarAccess.getTypeDeclarationRule()); } + EOF +; + +// Rule TypeDeclaration +ruleTypeDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getTypeDeclarationAccess().getGroup()); } + (rule__TypeDeclaration__Group__0) + { after(grammarAccess.getTypeDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleChannelDeclaration +entryRuleChannelDeclaration +: +{ before(grammarAccess.getChannelDeclarationRule()); } + ruleChannelDeclaration +{ after(grammarAccess.getChannelDeclarationRule()); } + EOF +; + +// Rule ChannelDeclaration +ruleChannelDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getChannelDeclarationAccess().getGroup()); } + (rule__ChannelDeclaration__Group__0) + { after(grammarAccess.getChannelDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleChannelType +entryRuleChannelType +: +{ before(grammarAccess.getChannelTypeRule()); } + ruleChannelType +{ after(grammarAccess.getChannelTypeRule()); } + EOF +; + +// Rule ChannelType +ruleChannelType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getChannelTypeAccess().getGroup()); } + (rule__ChannelType__Group__0) + { after(grammarAccess.getChannelTypeAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleType +entryRuleType +: +{ before(grammarAccess.getTypeRule()); } + ruleType +{ after(grammarAccess.getTypeRule()); } + EOF +; + +// Rule Type +ruleType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getTypeAccess().getAlternatives()); } + (rule__Type__Alternatives) + { after(grammarAccess.getTypeAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleTupleType +entryRuleTupleType +: +{ before(grammarAccess.getTupleTypeRule()); } + ruleTupleType +{ after(grammarAccess.getTupleTypeRule()); } + EOF +; + +// Rule TupleType +ruleTupleType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getTupleTypeAccess().getGroup()); } + (rule__TupleType__Group__0) + { after(grammarAccess.getTupleTypeAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleBasicType +entryRuleBasicType +: +{ before(grammarAccess.getBasicTypeRule()); } + ruleBasicType +{ after(grammarAccess.getBasicTypeRule()); } + EOF +; + +// Rule BasicType +ruleBasicType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getBasicTypeAccess().getAlternatives()); } + (rule__BasicType__Alternatives) + { after(grammarAccess.getBasicTypeAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleRangeType +entryRuleRangeType +: +{ before(grammarAccess.getRangeTypeRule()); } + ruleRangeType +{ after(grammarAccess.getRangeTypeRule()); } + EOF +; + +// Rule RangeType +ruleRangeType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getRangeTypeAccess().getGroup()); } + (rule__RangeType__Group__0) + { after(grammarAccess.getRangeTypeAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleUnionType +entryRuleUnionType +: +{ before(grammarAccess.getUnionTypeRule()); } + ruleUnionType +{ after(grammarAccess.getUnionTypeRule()); } + EOF +; + +// Rule UnionType +ruleUnionType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getUnionTypeAccess().getGroup()); } + (rule__UnionType__Group__0) + { after(grammarAccess.getUnionTypeAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleUnionTags +entryRuleUnionTags +: +{ before(grammarAccess.getUnionTagsRule()); } + ruleUnionTags +{ after(grammarAccess.getUnionTagsRule()); } + EOF +; + +// Rule UnionTags +ruleUnionTags + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getUnionTagsAccess().getGroup()); } + (rule__UnionTags__Group__0) + { after(grammarAccess.getUnionTagsAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleUnionTagDeclaration +entryRuleUnionTagDeclaration +: +{ before(grammarAccess.getUnionTagDeclarationRule()); } + ruleUnionTagDeclaration +{ after(grammarAccess.getUnionTagDeclarationRule()); } + EOF +; + +// Rule UnionTagDeclaration +ruleUnionTagDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getUnionTagDeclarationAccess().getNameAssignment()); } + (rule__UnionTagDeclaration__NameAssignment) + { after(grammarAccess.getUnionTagDeclarationAccess().getNameAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleRecordType +entryRuleRecordType +: +{ before(grammarAccess.getRecordTypeRule()); } + ruleRecordType +{ after(grammarAccess.getRecordTypeRule()); } + EOF +; + +// Rule RecordType +ruleRecordType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getRecordTypeAccess().getGroup()); } + (rule__RecordType__Group__0) + { after(grammarAccess.getRecordTypeAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleRecordFields +entryRuleRecordFields +: +{ before(grammarAccess.getRecordFieldsRule()); } + ruleRecordFields +{ after(grammarAccess.getRecordFieldsRule()); } + EOF +; + +// Rule RecordFields +ruleRecordFields + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getRecordFieldsAccess().getGroup()); } + (rule__RecordFields__Group__0) + { after(grammarAccess.getRecordFieldsAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleRecordFieldDeclaration +entryRuleRecordFieldDeclaration +: +{ before(grammarAccess.getRecordFieldDeclarationRule()); } + ruleRecordFieldDeclaration +{ after(grammarAccess.getRecordFieldDeclarationRule()); } + EOF +; + +// Rule RecordFieldDeclaration +ruleRecordFieldDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getRecordFieldDeclarationAccess().getNameAssignment()); } + (rule__RecordFieldDeclaration__NameAssignment) + { after(grammarAccess.getRecordFieldDeclarationAccess().getNameAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleQueueType +entryRuleQueueType +: +{ before(grammarAccess.getQueueTypeRule()); } + ruleQueueType +{ after(grammarAccess.getQueueTypeRule()); } + EOF +; + +// Rule QueueType +ruleQueueType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getQueueTypeAccess().getGroup()); } + (rule__QueueType__Group__0) + { after(grammarAccess.getQueueTypeAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleArrayType +entryRuleArrayType +: +{ before(grammarAccess.getArrayTypeRule()); } + ruleArrayType +{ after(grammarAccess.getArrayTypeRule()); } + EOF +; + +// Rule ArrayType +ruleArrayType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getArrayTypeAccess().getGroup()); } + (rule__ArrayType__Group__0) + { after(grammarAccess.getArrayTypeAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleReferencedType +entryRuleReferencedType +: +{ before(grammarAccess.getReferencedTypeRule()); } + ruleReferencedType +{ after(grammarAccess.getReferencedTypeRule()); } + EOF +; + +// Rule ReferencedType +ruleReferencedType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getReferencedTypeAccess().getTypeAssignment()); } + (rule__ReferencedType__TypeAssignment) + { after(grammarAccess.getReferencedTypeAccess().getTypeAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleConstantDeclaration +entryRuleConstantDeclaration +: +{ before(grammarAccess.getConstantDeclarationRule()); } + ruleConstantDeclaration +{ after(grammarAccess.getConstantDeclarationRule()); } + EOF +; + +// Rule ConstantDeclaration +ruleConstantDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getConstantDeclarationAccess().getGroup()); } + (rule__ConstantDeclaration__Group__0) + { after(grammarAccess.getConstantDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleProcessDeclaration +entryRuleProcessDeclaration +: +{ before(grammarAccess.getProcessDeclarationRule()); } + ruleProcessDeclaration +{ after(grammarAccess.getProcessDeclarationRule()); } + EOF +; + +// Rule ProcessDeclaration +ruleProcessDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getProcessDeclarationAccess().getGroup()); } + (rule__ProcessDeclaration__Group__0) + { after(grammarAccess.getProcessDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleStateDeclaration +entryRuleStateDeclaration +: +{ before(grammarAccess.getStateDeclarationRule()); } + ruleStateDeclaration +{ after(grammarAccess.getStateDeclarationRule()); } + EOF +; + +// Rule StateDeclaration +ruleStateDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getStateDeclarationAccess().getNameAssignment()); } + (rule__StateDeclaration__NameAssignment) + { after(grammarAccess.getStateDeclarationAccess().getNameAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleTransitionSource +entryRuleTransitionSource +: +{ before(grammarAccess.getTransitionSourceRule()); } + ruleTransitionSource +{ after(grammarAccess.getTransitionSourceRule()); } + EOF +; + +// Rule TransitionSource +ruleTransitionSource + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getTransitionSourceAccess().getGroup()); } + (rule__TransitionSource__Group__0) + { after(grammarAccess.getTransitionSourceAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleTransition +entryRuleTransition +: +{ before(grammarAccess.getTransitionRule()); } + ruleTransition +{ after(grammarAccess.getTransitionRule()); } + EOF +; + +// Rule Transition +ruleTransition + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getTransitionAccess().getGroup()); } + (rule__Transition__Group__0) + { after(grammarAccess.getTransitionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleComponentDeclaration +entryRuleComponentDeclaration +: +{ before(grammarAccess.getComponentDeclarationRule()); } + ruleComponentDeclaration +{ after(grammarAccess.getComponentDeclarationRule()); } + EOF +; + +// Rule ComponentDeclaration +ruleComponentDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getComponentDeclarationAccess().getGroup()); } + (rule__ComponentDeclaration__Group__0) + { after(grammarAccess.getComponentDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePortsDeclaration +entryRulePortsDeclaration +: +{ before(grammarAccess.getPortsDeclarationRule()); } + rulePortsDeclaration +{ after(grammarAccess.getPortsDeclarationRule()); } + EOF +; + +// Rule PortsDeclaration +rulePortsDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPortsDeclarationAccess().getGroup()); } + (rule__PortsDeclaration__Group__0) + { after(grammarAccess.getPortsDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePortDeclaration +entryRulePortDeclaration +: +{ before(grammarAccess.getPortDeclarationRule()); } + rulePortDeclaration +{ after(grammarAccess.getPortDeclarationRule()); } + EOF +; + +// Rule PortDeclaration +rulePortDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPortDeclarationAccess().getNameAssignment()); } + (rule__PortDeclaration__NameAssignment) + { after(grammarAccess.getPortDeclarationAccess().getNameAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLocalPortsDeclaration +entryRuleLocalPortsDeclaration +: +{ before(grammarAccess.getLocalPortsDeclarationRule()); } + ruleLocalPortsDeclaration +{ after(grammarAccess.getLocalPortsDeclarationRule()); } + EOF +; + +// Rule LocalPortsDeclaration +ruleLocalPortsDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLocalPortsDeclarationAccess().getGroup()); } + (rule__LocalPortsDeclaration__Group__0) + { after(grammarAccess.getLocalPortsDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleParametersDeclaration +entryRuleParametersDeclaration +: +{ before(grammarAccess.getParametersDeclarationRule()); } + ruleParametersDeclaration +{ after(grammarAccess.getParametersDeclarationRule()); } + EOF +; + +// Rule ParametersDeclaration +ruleParametersDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getParametersDeclarationAccess().getGroup()); } + (rule__ParametersDeclaration__Group__0) + { after(grammarAccess.getParametersDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleParameterDeclaration +entryRuleParameterDeclaration +: +{ before(grammarAccess.getParameterDeclarationRule()); } + ruleParameterDeclaration +{ after(grammarAccess.getParameterDeclarationRule()); } + EOF +; + +// Rule ParameterDeclaration +ruleParameterDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getParameterDeclarationAccess().getGroup()); } + (rule__ParameterDeclaration__Group__0) + { after(grammarAccess.getParameterDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVariablesDeclaration +entryRuleVariablesDeclaration +: +{ before(grammarAccess.getVariablesDeclarationRule()); } + ruleVariablesDeclaration +{ after(grammarAccess.getVariablesDeclarationRule()); } + EOF +; + +// Rule VariablesDeclaration +ruleVariablesDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVariablesDeclarationAccess().getGroup()); } + (rule__VariablesDeclaration__Group__0) + { after(grammarAccess.getVariablesDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVariableDeclaration +entryRuleVariableDeclaration +: +{ before(grammarAccess.getVariableDeclarationRule()); } + ruleVariableDeclaration +{ after(grammarAccess.getVariableDeclarationRule()); } + EOF +; + +// Rule VariableDeclaration +ruleVariableDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVariableDeclarationAccess().getNameAssignment()); } + (rule__VariableDeclaration__NameAssignment) + { after(grammarAccess.getVariableDeclarationAccess().getNameAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePriorityDeclaration +entryRulePriorityDeclaration +: +{ before(grammarAccess.getPriorityDeclarationRule()); } + rulePriorityDeclaration +{ after(grammarAccess.getPriorityDeclarationRule()); } + EOF +; + +// Rule PriorityDeclaration +rulePriorityDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPriorityDeclarationAccess().getGroup()); } + (rule__PriorityDeclaration__Group__0) + { after(grammarAccess.getPriorityDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePriorityGroup +entryRulePriorityGroup +: +{ before(grammarAccess.getPriorityGroupRule()); } + rulePriorityGroup +{ after(grammarAccess.getPriorityGroupRule()); } + EOF +; + +// Rule PriorityGroup +rulePriorityGroup + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPriorityGroupAccess().getGroup()); } + (rule__PriorityGroup__Group__0) + { after(grammarAccess.getPriorityGroupAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleUnlessStatement +entryRuleUnlessStatement +: +{ before(grammarAccess.getUnlessStatementRule()); } + ruleUnlessStatement +{ after(grammarAccess.getUnlessStatementRule()); } + EOF +; + +// Rule UnlessStatement +ruleUnlessStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getUnlessStatementAccess().getGroup()); } + (rule__UnlessStatement__Group__0) + { after(grammarAccess.getUnlessStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleStatementChoice +entryRuleStatementChoice +: +{ before(grammarAccess.getStatementChoiceRule()); } + ruleStatementChoice +{ after(grammarAccess.getStatementChoiceRule()); } + EOF +; + +// Rule StatementChoice +ruleStatementChoice + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getStatementChoiceAccess().getGroup()); } + (rule__StatementChoice__Group__0) + { after(grammarAccess.getStatementChoiceAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleStatementSequence +entryRuleStatementSequence +: +{ before(grammarAccess.getStatementSequenceRule()); } + ruleStatementSequence +{ after(grammarAccess.getStatementSequenceRule()); } + EOF +; + +// Rule StatementSequence +ruleStatementSequence + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getStatementSequenceAccess().getGroup()); } + (rule__StatementSequence__Group__0) + { after(grammarAccess.getStatementSequenceAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleStatement +entryRuleStatement +: +{ before(grammarAccess.getStatementRule()); } + ruleStatement +{ after(grammarAccess.getStatementRule()); } + EOF +; + +// Rule Statement +ruleStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getStatementAccess().getAlternatives()); } + (rule__Statement__Alternatives) + { after(grammarAccess.getStatementAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleBlockStatement +entryRuleBlockStatement +: +{ before(grammarAccess.getBlockStatementRule()); } + ruleBlockStatement +{ after(grammarAccess.getBlockStatementRule()); } + EOF +; + +// Rule BlockStatement +ruleBlockStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getBlockStatementAccess().getGroup()); } + (rule__BlockStatement__Group__0) + { after(grammarAccess.getBlockStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleReturnStatement +entryRuleReturnStatement +: +{ before(grammarAccess.getReturnStatementRule()); } + ruleReturnStatement +{ after(grammarAccess.getReturnStatementRule()); } + EOF +; + +// Rule ReturnStatement +ruleReturnStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getReturnStatementAccess().getGroup()); } + (rule__ReturnStatement__Group__0) + { after(grammarAccess.getReturnStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleNullStatement +entryRuleNullStatement +: +{ before(grammarAccess.getNullStatementRule()); } + ruleNullStatement +{ after(grammarAccess.getNullStatementRule()); } + EOF +; + +// Rule NullStatement +ruleNullStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getNullStatementAccess().getGroup()); } + (rule__NullStatement__Group__0) + { after(grammarAccess.getNullStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleTaggedStatement +entryRuleTaggedStatement +: +{ before(grammarAccess.getTaggedStatementRule()); } + ruleTaggedStatement +{ after(grammarAccess.getTaggedStatementRule()); } + EOF +; + +// Rule TaggedStatement +ruleTaggedStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getTaggedStatementAccess().getGroup()); } + (rule__TaggedStatement__Group__0) + { after(grammarAccess.getTaggedStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePatternStatement +entryRulePatternStatement +: +{ before(grammarAccess.getPatternStatementRule()); } + rulePatternStatement +{ after(grammarAccess.getPatternStatementRule()); } + EOF +; + +// Rule PatternStatement +rulePatternStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPatternStatementAccess().getGroup()); } + (rule__PatternStatement__Group__0) + { after(grammarAccess.getPatternStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePattern +entryRulePattern +: +{ before(grammarAccess.getPatternRule()); } + rulePattern +{ after(grammarAccess.getPatternRule()); } + EOF +; + +// Rule Pattern +rulePattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPatternAccess().getAlternatives()); } + (rule__Pattern__Alternatives) + { after(grammarAccess.getPatternAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleAnyPattern +entryRuleAnyPattern +: +{ before(grammarAccess.getAnyPatternRule()); } + ruleAnyPattern +{ after(grammarAccess.getAnyPatternRule()); } + EOF +; + +// Rule AnyPattern +ruleAnyPattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getAnyPatternAccess().getGroup()); } + (rule__AnyPattern__Group__0) + { after(grammarAccess.getAnyPatternAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleConstantPattern +entryRuleConstantPattern +: +{ before(grammarAccess.getConstantPatternRule()); } + ruleConstantPattern +{ after(grammarAccess.getConstantPatternRule()); } + EOF +; + +// Rule ConstantPattern +ruleConstantPattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getConstantPatternAccess().getValueAssignment()); } + (rule__ConstantPattern__ValueAssignment) + { after(grammarAccess.getConstantPatternAccess().getValueAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleIntegerPattern +entryRuleIntegerPattern +: +{ before(grammarAccess.getIntegerPatternRule()); } + ruleIntegerPattern +{ after(grammarAccess.getIntegerPatternRule()); } + EOF +; + +// Rule IntegerPattern +ruleIntegerPattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getIntegerPatternAccess().getGroup()); } + (rule__IntegerPattern__Group__0) + { after(grammarAccess.getIntegerPatternAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleIdentifierPattern +entryRuleIdentifierPattern +: +{ before(grammarAccess.getIdentifierPatternRule()); } + ruleIdentifierPattern +{ after(grammarAccess.getIdentifierPatternRule()); } + EOF +; + +// Rule IdentifierPattern +ruleIdentifierPattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getIdentifierPatternAccess().getAlternatives()); } + (rule__IdentifierPattern__Alternatives) + { after(grammarAccess.getIdentifierPatternAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleConditionalStatement +entryRuleConditionalStatement +: +{ before(grammarAccess.getConditionalStatementRule()); } + ruleConditionalStatement +{ after(grammarAccess.getConditionalStatementRule()); } + EOF +; + +// Rule ConditionalStatement +ruleConditionalStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getConditionalStatementAccess().getGroup()); } + (rule__ConditionalStatement__Group__0) + { after(grammarAccess.getConditionalStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleExtendedConditionalStatement +entryRuleExtendedConditionalStatement +: +{ before(grammarAccess.getExtendedConditionalStatementRule()); } + ruleExtendedConditionalStatement +{ after(grammarAccess.getExtendedConditionalStatementRule()); } + EOF +; + +// Rule ExtendedConditionalStatement +ruleExtendedConditionalStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getExtendedConditionalStatementAccess().getGroup()); } + (rule__ExtendedConditionalStatement__Group__0) + { after(grammarAccess.getExtendedConditionalStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleSelectStatement +entryRuleSelectStatement +: +{ before(grammarAccess.getSelectStatementRule()); } + ruleSelectStatement +{ after(grammarAccess.getSelectStatementRule()); } + EOF +; + +// Rule SelectStatement +ruleSelectStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getSelectStatementAccess().getGroup()); } + (rule__SelectStatement__Group__0) + { after(grammarAccess.getSelectStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleWhileStatement +entryRuleWhileStatement +: +{ before(grammarAccess.getWhileStatementRule()); } + ruleWhileStatement +{ after(grammarAccess.getWhileStatementRule()); } + EOF +; + +// Rule WhileStatement +ruleWhileStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getWhileStatementAccess().getGroup()); } + (rule__WhileStatement__Group__0) + { after(grammarAccess.getWhileStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleForeachStatement +entryRuleForeachStatement +: +{ before(grammarAccess.getForeachStatementRule()); } + ruleForeachStatement +{ after(grammarAccess.getForeachStatementRule()); } + EOF +; + +// Rule ForeachStatement +ruleForeachStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getForeachStatementAccess().getGroup()); } + (rule__ForeachStatement__Group__0) + { after(grammarAccess.getForeachStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleToStatement +entryRuleToStatement +: +{ before(grammarAccess.getToStatementRule()); } + ruleToStatement +{ after(grammarAccess.getToStatementRule()); } + EOF +; + +// Rule ToStatement +ruleToStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getToStatementAccess().getGroup()); } + (rule__ToStatement__Group__0) + { after(grammarAccess.getToStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleCaseStatement +entryRuleCaseStatement +: +{ before(grammarAccess.getCaseStatementRule()); } + ruleCaseStatement +{ after(grammarAccess.getCaseStatementRule()); } + EOF +; + +// Rule CaseStatement +ruleCaseStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getCaseStatementAccess().getGroup()); } + (rule__CaseStatement__Group__0) + { after(grammarAccess.getCaseStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLoopStatement +entryRuleLoopStatement +: +{ before(grammarAccess.getLoopStatementRule()); } + ruleLoopStatement +{ after(grammarAccess.getLoopStatementRule()); } + EOF +; + +// Rule LoopStatement +ruleLoopStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLoopStatementAccess().getGroup()); } + (rule__LoopStatement__Group__0) + { after(grammarAccess.getLoopStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleOnStatement +entryRuleOnStatement +: +{ before(grammarAccess.getOnStatementRule()); } + ruleOnStatement +{ after(grammarAccess.getOnStatementRule()); } + EOF +; + +// Rule OnStatement +ruleOnStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getOnStatementAccess().getGroup()); } + (rule__OnStatement__Group__0) + { after(grammarAccess.getOnStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleWaitStatement +entryRuleWaitStatement +: +{ before(grammarAccess.getWaitStatementRule()); } + ruleWaitStatement +{ after(grammarAccess.getWaitStatementRule()); } + EOF +; + +// Rule WaitStatement +ruleWaitStatement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getWaitStatementAccess().getGroup()); } + (rule__WaitStatement__Group__0) + { after(grammarAccess.getWaitStatementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleComposition +entryRuleComposition +: +{ before(grammarAccess.getCompositionRule()); } + ruleComposition +{ after(grammarAccess.getCompositionRule()); } + EOF +; + +// Rule Composition +ruleComposition + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getCompositionAccess().getGroup()); } + (rule__Composition__Group__0) + { after(grammarAccess.getCompositionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleBlock +entryRuleBlock +: +{ before(grammarAccess.getBlockRule()); } + ruleBlock +{ after(grammarAccess.getBlockRule()); } + EOF +; + +// Rule Block +ruleBlock + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getBlockAccess().getAlternatives()); } + (rule__Block__Alternatives) + { after(grammarAccess.getBlockAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleCompositeBlock +entryRuleCompositeBlock +: +{ before(grammarAccess.getCompositeBlockRule()); } + ruleCompositeBlock +{ after(grammarAccess.getCompositeBlockRule()); } + EOF +; + +// Rule CompositeBlock +ruleCompositeBlock + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getCompositeBlockAccess().getGroup()); } + (rule__CompositeBlock__Group__0) + { after(grammarAccess.getCompositeBlockAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleInstanceDeclaration +entryRuleInstanceDeclaration +: +{ before(grammarAccess.getInstanceDeclarationRule()); } + ruleInstanceDeclaration +{ after(grammarAccess.getInstanceDeclarationRule()); } + EOF +; + +// Rule InstanceDeclaration +ruleInstanceDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getInstanceDeclarationAccess().getGroup()); } + (rule__InstanceDeclaration__Group__0) + { after(grammarAccess.getInstanceDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePortSet +entryRulePortSet +: +{ before(grammarAccess.getPortSetRule()); } + rulePortSet +{ after(grammarAccess.getPortSetRule()); } + EOF +; + +// Rule PortSet +rulePortSet + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPortSetAccess().getAlternatives()); } + (rule__PortSet__Alternatives) + { after(grammarAccess.getPortSetAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleComponentInstance +entryRuleComponentInstance +: +{ before(grammarAccess.getComponentInstanceRule()); } + ruleComponentInstance +{ after(grammarAccess.getComponentInstanceRule()); } + EOF +; + +// Rule ComponentInstance +ruleComponentInstance + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getComponentInstanceAccess().getGroup()); } + (rule__ComponentInstance__Group__0) + { after(grammarAccess.getComponentInstanceAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleExpression +entryRuleExpression +: +{ before(grammarAccess.getExpressionRule()); } + ruleExpression +{ after(grammarAccess.getExpressionRule()); } + EOF +; + +// Rule Expression +ruleExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getExpressionAccess().getQuantifiedExpressionParserRuleCall()); } + ruleQuantifiedExpression + { after(grammarAccess.getExpressionAccess().getQuantifiedExpressionParserRuleCall()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleQuantifiedExpression +entryRuleQuantifiedExpression +: +{ before(grammarAccess.getQuantifiedExpressionRule()); } + ruleQuantifiedExpression +{ after(grammarAccess.getQuantifiedExpressionRule()); } + EOF +; + +// Rule QuantifiedExpression +ruleQuantifiedExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getQuantifiedExpressionAccess().getAlternatives()); } + (rule__QuantifiedExpression__Alternatives) + { after(grammarAccess.getQuantifiedExpressionAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleConditional +entryRuleConditional +: +{ before(grammarAccess.getConditionalRule()); } + ruleConditional +{ after(grammarAccess.getConditionalRule()); } + EOF +; + +// Rule Conditional +ruleConditional + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getConditionalAccess().getGroup()); } + (rule__Conditional__Group__0) + { after(grammarAccess.getConditionalAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleDisjunction +entryRuleDisjunction +: +{ before(grammarAccess.getDisjunctionRule()); } + ruleDisjunction +{ after(grammarAccess.getDisjunctionRule()); } + EOF +; + +// Rule Disjunction +ruleDisjunction + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getDisjunctionAccess().getGroup()); } + (rule__Disjunction__Group__0) + { after(grammarAccess.getDisjunctionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleImplication +entryRuleImplication +: +{ before(grammarAccess.getImplicationRule()); } + ruleImplication +{ after(grammarAccess.getImplicationRule()); } + EOF +; + +// Rule Implication +ruleImplication + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getImplicationAccess().getGroup()); } + (rule__Implication__Group__0) + { after(grammarAccess.getImplicationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleConjunction +entryRuleConjunction +: +{ before(grammarAccess.getConjunctionRule()); } + ruleConjunction +{ after(grammarAccess.getConjunctionRule()); } + EOF +; + +// Rule Conjunction +ruleConjunction + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getConjunctionAccess().getGroup()); } + (rule__Conjunction__Group__0) + { after(grammarAccess.getConjunctionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleComparison +entryRuleComparison +: +{ before(grammarAccess.getComparisonRule()); } + ruleComparison +{ after(grammarAccess.getComparisonRule()); } + EOF +; + +// Rule Comparison +ruleComparison + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getComparisonAccess().getGroup()); } + (rule__Comparison__Group__0) + { after(grammarAccess.getComparisonAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleAddition +entryRuleAddition +: +{ before(grammarAccess.getAdditionRule()); } + ruleAddition +{ after(grammarAccess.getAdditionRule()); } + EOF +; + +// Rule Addition +ruleAddition + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getAdditionAccess().getGroup()); } + (rule__Addition__Group__0) + { after(grammarAccess.getAdditionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleSubstraction +entryRuleSubstraction +: +{ before(grammarAccess.getSubstractionRule()); } + ruleSubstraction +{ after(grammarAccess.getSubstractionRule()); } + EOF +; + +// Rule Substraction +ruleSubstraction + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getSubstractionAccess().getGroup()); } + (rule__Substraction__Group__0) + { after(grammarAccess.getSubstractionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleMultiplication +entryRuleMultiplication +: +{ before(grammarAccess.getMultiplicationRule()); } + ruleMultiplication +{ after(grammarAccess.getMultiplicationRule()); } + EOF +; + +// Rule Multiplication +ruleMultiplication + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getMultiplicationAccess().getGroup()); } + (rule__Multiplication__Group__0) + { after(grammarAccess.getMultiplicationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleDivision +entryRuleDivision +: +{ before(grammarAccess.getDivisionRule()); } + ruleDivision +{ after(grammarAccess.getDivisionRule()); } + EOF +; + +// Rule Division +ruleDivision + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getDivisionAccess().getGroup()); } + (rule__Division__Group__0) + { after(grammarAccess.getDivisionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleModulo +entryRuleModulo +: +{ before(grammarAccess.getModuloRule()); } + ruleModulo +{ after(grammarAccess.getModuloRule()); } + EOF +; + +// Rule Modulo +ruleModulo + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getModuloAccess().getGroup()); } + (rule__Modulo__Group__0) + { after(grammarAccess.getModuloAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleUnaryExpression +entryRuleUnaryExpression +: +{ before(grammarAccess.getUnaryExpressionRule()); } + ruleUnaryExpression +{ after(grammarAccess.getUnaryExpressionRule()); } + EOF +; + +// Rule UnaryExpression +ruleUnaryExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getUnaryExpressionAccess().getAlternatives()); } + (rule__UnaryExpression__Alternatives) + { after(grammarAccess.getUnaryExpressionAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleProjection +entryRuleProjection +: +{ before(grammarAccess.getProjectionRule()); } + ruleProjection +{ after(grammarAccess.getProjectionRule()); } + EOF +; + +// Rule Projection +ruleProjection + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getProjectionAccess().getGroup()); } + (rule__Projection__Group__0) + { after(grammarAccess.getProjectionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleAtomicExpression +entryRuleAtomicExpression +: +{ before(grammarAccess.getAtomicExpressionRule()); } + ruleAtomicExpression +{ after(grammarAccess.getAtomicExpressionRule()); } + EOF +; + +// Rule AtomicExpression +ruleAtomicExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getAtomicExpressionAccess().getAlternatives()); } + (rule__AtomicExpression__Alternatives) + { after(grammarAccess.getAtomicExpressionAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleReferenceExpression +entryRuleReferenceExpression +: +{ before(grammarAccess.getReferenceExpressionRule()); } + ruleReferenceExpression +{ after(grammarAccess.getReferenceExpressionRule()); } + EOF +; + +// Rule ReferenceExpression +ruleReferenceExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getReferenceExpressionAccess().getGroup()); } + (rule__ReferenceExpression__Group__0) + { after(grammarAccess.getReferenceExpressionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleIdentifierExpression +entryRuleIdentifierExpression +: +{ before(grammarAccess.getIdentifierExpressionRule()); } + ruleIdentifierExpression +{ after(grammarAccess.getIdentifierExpressionRule()); } + EOF +; + +// Rule IdentifierExpression +ruleIdentifierExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getIdentifierExpressionAccess().getAlternatives()); } + (rule__IdentifierExpression__Alternatives) + { after(grammarAccess.getIdentifierExpressionAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleRecordExpression +entryRuleRecordExpression +: +{ before(grammarAccess.getRecordExpressionRule()); } + ruleRecordExpression +{ after(grammarAccess.getRecordExpressionRule()); } + EOF +; + +// Rule RecordExpression +ruleRecordExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getRecordExpressionAccess().getGroup()); } + (rule__RecordExpression__Group__0) + { after(grammarAccess.getRecordExpressionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleFieldExpression +entryRuleFieldExpression +: +{ before(grammarAccess.getFieldExpressionRule()); } + ruleFieldExpression +{ after(grammarAccess.getFieldExpressionRule()); } + EOF +; + +// Rule FieldExpression +ruleFieldExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getFieldExpressionAccess().getGroup()); } + (rule__FieldExpression__Group__0) + { after(grammarAccess.getFieldExpressionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleArrayExpression +entryRuleArrayExpression +: +{ before(grammarAccess.getArrayExpressionRule()); } + ruleArrayExpression +{ after(grammarAccess.getArrayExpressionRule()); } + EOF +; + +// Rule ArrayExpression +ruleArrayExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getArrayExpressionAccess().getGroup()); } + (rule__ArrayExpression__Group__0) + { after(grammarAccess.getArrayExpressionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleQueueExpression +entryRuleQueueExpression +: +{ before(grammarAccess.getQueueExpressionRule()); } + ruleQueueExpression +{ after(grammarAccess.getQueueExpressionRule()); } + EOF +; + +// Rule QueueExpression +ruleQueueExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getQueueExpressionAccess().getGroup()); } + (rule__QueueExpression__Group__0) + { after(grammarAccess.getQueueExpressionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleEnqueueExpression +entryRuleEnqueueExpression +: +{ before(grammarAccess.getEnqueueExpressionRule()); } + ruleEnqueueExpression +{ after(grammarAccess.getEnqueueExpressionRule()); } + EOF +; + +// Rule EnqueueExpression +ruleEnqueueExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getEnqueueExpressionAccess().getGroup()); } + (rule__EnqueueExpression__Group__0) + { after(grammarAccess.getEnqueueExpressionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleAppendExpression +entryRuleAppendExpression +: +{ before(grammarAccess.getAppendExpressionRule()); } + ruleAppendExpression +{ after(grammarAccess.getAppendExpressionRule()); } + EOF +; + +// Rule AppendExpression +ruleAppendExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getAppendExpressionAccess().getGroup()); } + (rule__AppendExpression__Group__0) + { after(grammarAccess.getAppendExpressionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLiteralExpression +entryRuleLiteralExpression +: +{ before(grammarAccess.getLiteralExpressionRule()); } + ruleLiteralExpression +{ after(grammarAccess.getLiteralExpressionRule()); } + EOF +; + +// Rule LiteralExpression +ruleLiteralExpression + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLiteralExpressionAccess().getAlternatives()); } + (rule__LiteralExpression__Alternatives) + { after(grammarAccess.getLiteralExpressionAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleBooleanLiteral +entryRuleBooleanLiteral +: +{ before(grammarAccess.getBooleanLiteralRule()); } + ruleBooleanLiteral +{ after(grammarAccess.getBooleanLiteralRule()); } + EOF +; + +// Rule BooleanLiteral +ruleBooleanLiteral + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getBooleanLiteralAccess().getAlternatives()); } + (rule__BooleanLiteral__Alternatives) + { after(grammarAccess.getBooleanLiteralAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleNaturalLiteral +entryRuleNaturalLiteral +: +{ before(grammarAccess.getNaturalLiteralRule()); } + ruleNaturalLiteral +{ after(grammarAccess.getNaturalLiteralRule()); } + EOF +; + +// Rule NaturalLiteral +ruleNaturalLiteral + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getNaturalLiteralAccess().getValueAssignment()); } + (rule__NaturalLiteral__ValueAssignment) + { after(grammarAccess.getNaturalLiteralAccess().getValueAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLowerBound +entryRuleLowerBound +: +{ before(grammarAccess.getLowerBoundRule()); } + ruleLowerBound +{ after(grammarAccess.getLowerBoundRule()); } + EOF +; + +// Rule LowerBound +ruleLowerBound + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLowerBoundAccess().getAlternatives()); } + (rule__LowerBound__Alternatives) + { after(grammarAccess.getLowerBoundAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleUpperBound +entryRuleUpperBound +: +{ before(grammarAccess.getUpperBoundRule()); } + ruleUpperBound +{ after(grammarAccess.getUpperBoundRule()); } + EOF +; + +// Rule UpperBound +ruleUpperBound + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getUpperBoundAccess().getAlternatives()); } + (rule__UpperBound__Alternatives) + { after(grammarAccess.getUpperBoundAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleNaturalLowerBound +entryRuleNaturalLowerBound +: +{ before(grammarAccess.getNaturalLowerBoundRule()); } + ruleNaturalLowerBound +{ after(grammarAccess.getNaturalLowerBoundRule()); } + EOF +; + +// Rule NaturalLowerBound +ruleNaturalLowerBound + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getNaturalLowerBoundAccess().getGroup()); } + (rule__NaturalLowerBound__Group__0) + { after(grammarAccess.getNaturalLowerBoundAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleNaturalUpperBound +entryRuleNaturalUpperBound +: +{ before(grammarAccess.getNaturalUpperBoundRule()); } + ruleNaturalUpperBound +{ after(grammarAccess.getNaturalUpperBoundRule()); } + EOF +; + +// Rule NaturalUpperBound +ruleNaturalUpperBound + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getNaturalUpperBoundAccess().getGroup()); } + (rule__NaturalUpperBound__Group__0) + { after(grammarAccess.getNaturalUpperBoundAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleDecimalLowerBound +entryRuleDecimalLowerBound +: +{ before(grammarAccess.getDecimalLowerBoundRule()); } + ruleDecimalLowerBound +{ after(grammarAccess.getDecimalLowerBoundRule()); } + EOF +; + +// Rule DecimalLowerBound +ruleDecimalLowerBound + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getDecimalLowerBoundAccess().getGroup()); } + (rule__DecimalLowerBound__Group__0) + { after(grammarAccess.getDecimalLowerBoundAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleDecimalUpperBound +entryRuleDecimalUpperBound +: +{ before(grammarAccess.getDecimalUpperBoundRule()); } + ruleDecimalUpperBound +{ after(grammarAccess.getDecimalUpperBoundRule()); } + EOF +; + +// Rule DecimalUpperBound +ruleDecimalUpperBound + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getDecimalUpperBoundAccess().getGroup()); } + (rule__DecimalUpperBound__Group__0) + { after(grammarAccess.getDecimalUpperBoundAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVariableLowerBound +entryRuleVariableLowerBound +: +{ before(grammarAccess.getVariableLowerBoundRule()); } + ruleVariableLowerBound +{ after(grammarAccess.getVariableLowerBoundRule()); } + EOF +; + +// Rule VariableLowerBound +ruleVariableLowerBound + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVariableLowerBoundAccess().getGroup()); } + (rule__VariableLowerBound__Group__0) + { after(grammarAccess.getVariableLowerBoundAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVariableUpperBound +entryRuleVariableUpperBound +: +{ before(grammarAccess.getVariableUpperBoundRule()); } + ruleVariableUpperBound +{ after(grammarAccess.getVariableUpperBoundRule()); } + EOF +; + +// Rule VariableUpperBound +ruleVariableUpperBound + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVariableUpperBoundAccess().getGroup()); } + (rule__VariableUpperBound__Group__0) + { after(grammarAccess.getVariableUpperBoundAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleInfiniteUpperBound +entryRuleInfiniteUpperBound +: +{ before(grammarAccess.getInfiniteUpperBoundRule()); } + ruleInfiniteUpperBound +{ after(grammarAccess.getInfiniteUpperBoundRule()); } + EOF +; + +// Rule InfiniteUpperBound +ruleInfiniteUpperBound + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getInfiniteUpperBoundAccess().getGroup()); } + (rule__InfiniteUpperBound__Group__0) + { after(grammarAccess.getInfiniteUpperBoundAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleRequirement +entryRuleRequirement +: +{ before(grammarAccess.getRequirementRule()); } + ruleRequirement +{ after(grammarAccess.getRequirementRule()); } + EOF +; + +// Rule Requirement +ruleRequirement + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getRequirementAccess().getGroup()); } + (rule__Requirement__Group__0) + { after(grammarAccess.getRequirementAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePropertyDeclaration +entryRulePropertyDeclaration +: +{ before(grammarAccess.getPropertyDeclarationRule()); } + rulePropertyDeclaration +{ after(grammarAccess.getPropertyDeclarationRule()); } + EOF +; + +// Rule PropertyDeclaration +rulePropertyDeclaration + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPropertyDeclarationAccess().getGroup()); } + (rule__PropertyDeclaration__Group__0) + { after(grammarAccess.getPropertyDeclarationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleProperty +entryRuleProperty +: +{ before(grammarAccess.getPropertyRule()); } + ruleProperty +{ after(grammarAccess.getPropertyRule()); } + EOF +; + +// Rule Property +ruleProperty + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPropertyAccess().getQuantifiedPropertyParserRuleCall()); } + ruleQuantifiedProperty + { after(grammarAccess.getPropertyAccess().getQuantifiedPropertyParserRuleCall()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleQuantifiedProperty +entryRuleQuantifiedProperty +: +{ before(grammarAccess.getQuantifiedPropertyRule()); } + ruleQuantifiedProperty +{ after(grammarAccess.getQuantifiedPropertyRule()); } + EOF +; + +// Rule QuantifiedProperty +ruleQuantifiedProperty + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getQuantifiedPropertyAccess().getAlternatives()); } + (rule__QuantifiedProperty__Alternatives) + { after(grammarAccess.getQuantifiedPropertyAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePropertyDisjunction +entryRulePropertyDisjunction +: +{ before(grammarAccess.getPropertyDisjunctionRule()); } + rulePropertyDisjunction +{ after(grammarAccess.getPropertyDisjunctionRule()); } + EOF +; + +// Rule PropertyDisjunction +rulePropertyDisjunction + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPropertyDisjunctionAccess().getGroup()); } + (rule__PropertyDisjunction__Group__0) + { after(grammarAccess.getPropertyDisjunctionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePropertyImplication +entryRulePropertyImplication +: +{ before(grammarAccess.getPropertyImplicationRule()); } + rulePropertyImplication +{ after(grammarAccess.getPropertyImplicationRule()); } + EOF +; + +// Rule PropertyImplication +rulePropertyImplication + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPropertyImplicationAccess().getGroup()); } + (rule__PropertyImplication__Group__0) + { after(grammarAccess.getPropertyImplicationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePropertyConjunction +entryRulePropertyConjunction +: +{ before(grammarAccess.getPropertyConjunctionRule()); } + rulePropertyConjunction +{ after(grammarAccess.getPropertyConjunctionRule()); } + EOF +; + +// Rule PropertyConjunction +rulePropertyConjunction + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPropertyConjunctionAccess().getGroup()); } + (rule__PropertyConjunction__Group__0) + { after(grammarAccess.getPropertyConjunctionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePropertyNegation +entryRulePropertyNegation +: +{ before(grammarAccess.getPropertyNegationRule()); } + rulePropertyNegation +{ after(grammarAccess.getPropertyNegationRule()); } + EOF +; + +// Rule PropertyNegation +rulePropertyNegation + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPropertyNegationAccess().getAlternatives()); } + (rule__PropertyNegation__Alternatives) + { after(grammarAccess.getPropertyNegationAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleAtomicProperty +entryRuleAtomicProperty +: +{ before(grammarAccess.getAtomicPropertyRule()); } + ruleAtomicProperty +{ after(grammarAccess.getAtomicPropertyRule()); } + EOF +; + +// Rule AtomicProperty +ruleAtomicProperty + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getAtomicPropertyAccess().getAlternatives()); } + (rule__AtomicProperty__Alternatives) + { after(grammarAccess.getAtomicPropertyAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePatternProperty +entryRulePatternProperty +: +{ before(grammarAccess.getPatternPropertyRule()); } + rulePatternProperty +{ after(grammarAccess.getPatternPropertyRule()); } + EOF +; + +// Rule PatternProperty +rulePatternProperty + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPatternPropertyAccess().getAlternatives()); } + (rule__PatternProperty__Alternatives) + { after(grammarAccess.getPatternPropertyAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLTLPattern +entryRuleLTLPattern +: +{ before(grammarAccess.getLTLPatternRule()); } + ruleLTLPattern +{ after(grammarAccess.getLTLPatternRule()); } + EOF +; + +// Rule LTLPattern +ruleLTLPattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLTLPatternAccess().getGroup()); } + (rule__LTLPattern__Group__0) + { after(grammarAccess.getLTLPatternAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleDeadlockFreePattern +entryRuleDeadlockFreePattern +: +{ before(grammarAccess.getDeadlockFreePatternRule()); } + ruleDeadlockFreePattern +{ after(grammarAccess.getDeadlockFreePatternRule()); } + EOF +; + +// Rule DeadlockFreePattern +ruleDeadlockFreePattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getDeadlockFreePatternAccess().getGroup()); } + (rule__DeadlockFreePattern__Group__0) + { after(grammarAccess.getDeadlockFreePatternAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleInfinitelyOftenPattern +entryRuleInfinitelyOftenPattern +: +{ before(grammarAccess.getInfinitelyOftenPatternRule()); } + ruleInfinitelyOftenPattern +{ after(grammarAccess.getInfinitelyOftenPatternRule()); } + EOF +; + +// Rule InfinitelyOftenPattern +ruleInfinitelyOftenPattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getInfinitelyOftenPatternAccess().getGroup()); } + (rule__InfinitelyOftenPattern__Group__0) + { after(grammarAccess.getInfinitelyOftenPatternAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleMortalPattern +entryRuleMortalPattern +: +{ before(grammarAccess.getMortalPatternRule()); } + ruleMortalPattern +{ after(grammarAccess.getMortalPatternRule()); } + EOF +; + +// Rule MortalPattern +ruleMortalPattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getMortalPatternAccess().getGroup()); } + (rule__MortalPattern__Group__0) + { after(grammarAccess.getMortalPatternAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePresencePattern +entryRulePresencePattern +: +{ before(grammarAccess.getPresencePatternRule()); } + rulePresencePattern +{ after(grammarAccess.getPresencePatternRule()); } + EOF +; + +// Rule PresencePattern +rulePresencePattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPresencePatternAccess().getGroup()); } + (rule__PresencePattern__Group__0) + { after(grammarAccess.getPresencePatternAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleAbsencePattern +entryRuleAbsencePattern +: +{ before(grammarAccess.getAbsencePatternRule()); } + ruleAbsencePattern +{ after(grammarAccess.getAbsencePatternRule()); } + EOF +; + +// Rule AbsencePattern +ruleAbsencePattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getAbsencePatternAccess().getGroup()); } + (rule__AbsencePattern__Group__0) + { after(grammarAccess.getAbsencePatternAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleAlwaysPattern +entryRuleAlwaysPattern +: +{ before(grammarAccess.getAlwaysPatternRule()); } + ruleAlwaysPattern +{ after(grammarAccess.getAlwaysPatternRule()); } + EOF +; + +// Rule AlwaysPattern +ruleAlwaysPattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getAlwaysPatternAccess().getGroup()); } + (rule__AlwaysPattern__Group__0) + { after(grammarAccess.getAlwaysPatternAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleSequencePattern +entryRuleSequencePattern +: +{ before(grammarAccess.getSequencePatternRule()); } + ruleSequencePattern +{ after(grammarAccess.getSequencePatternRule()); } + EOF +; + +// Rule SequencePattern +ruleSequencePattern + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getSequencePatternAccess().getGroup()); } + (rule__SequencePattern__Group__0) + { after(grammarAccess.getSequencePatternAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLTLProperty +entryRuleLTLProperty +: +{ before(grammarAccess.getLTLPropertyRule()); } + ruleLTLProperty +{ after(grammarAccess.getLTLPropertyRule()); } + EOF +; + +// Rule LTLProperty +ruleLTLProperty + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLTLPropertyAccess().getLTLQuantifiedParserRuleCall()); } + ruleLTLQuantified + { after(grammarAccess.getLTLPropertyAccess().getLTLQuantifiedParserRuleCall()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLTLQuantified +entryRuleLTLQuantified +: +{ before(grammarAccess.getLTLQuantifiedRule()); } + ruleLTLQuantified +{ after(grammarAccess.getLTLQuantifiedRule()); } + EOF +; + +// Rule LTLQuantified +ruleLTLQuantified + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLTLQuantifiedAccess().getAlternatives()); } + (rule__LTLQuantified__Alternatives) + { after(grammarAccess.getLTLQuantifiedAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLTLDisjunction +entryRuleLTLDisjunction +: +{ before(grammarAccess.getLTLDisjunctionRule()); } + ruleLTLDisjunction +{ after(grammarAccess.getLTLDisjunctionRule()); } + EOF +; + +// Rule LTLDisjunction +ruleLTLDisjunction + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLTLDisjunctionAccess().getGroup()); } + (rule__LTLDisjunction__Group__0) + { after(grammarAccess.getLTLDisjunctionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLTLImplication +entryRuleLTLImplication +: +{ before(grammarAccess.getLTLImplicationRule()); } + ruleLTLImplication +{ after(grammarAccess.getLTLImplicationRule()); } + EOF +; + +// Rule LTLImplication +ruleLTLImplication + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLTLImplicationAccess().getGroup()); } + (rule__LTLImplication__Group__0) + { after(grammarAccess.getLTLImplicationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLTLConjunction +entryRuleLTLConjunction +: +{ before(grammarAccess.getLTLConjunctionRule()); } + ruleLTLConjunction +{ after(grammarAccess.getLTLConjunctionRule()); } + EOF +; + +// Rule LTLConjunction +ruleLTLConjunction + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLTLConjunctionAccess().getGroup()); } + (rule__LTLConjunction__Group__0) + { after(grammarAccess.getLTLConjunctionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLTLBinary +entryRuleLTLBinary +: +{ before(grammarAccess.getLTLBinaryRule()); } + ruleLTLBinary +{ after(grammarAccess.getLTLBinaryRule()); } + EOF +; + +// Rule LTLBinary +ruleLTLBinary + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLTLBinaryAccess().getGroup()); } + (rule__LTLBinary__Group__0) + { after(grammarAccess.getLTLBinaryAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLTLUnary +entryRuleLTLUnary +: +{ before(grammarAccess.getLTLUnaryRule()); } + ruleLTLUnary +{ after(grammarAccess.getLTLUnaryRule()); } + EOF +; + +// Rule LTLUnary +ruleLTLUnary + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLTLUnaryAccess().getAlternatives()); } + (rule__LTLUnary__Alternatives) + { after(grammarAccess.getLTLUnaryAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleAtomicLTL +entryRuleAtomicLTL +: +{ before(grammarAccess.getAtomicLTLRule()); } + ruleAtomicLTL +{ after(grammarAccess.getAtomicLTLRule()); } + EOF +; + +// Rule AtomicLTL +ruleAtomicLTL + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getAtomicLTLAccess().getAlternatives()); } + (rule__AtomicLTL__Alternatives) + { after(grammarAccess.getAtomicLTLAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleStateEvent +entryRuleStateEvent +: +{ before(grammarAccess.getStateEventRule()); } + ruleStateEvent +{ after(grammarAccess.getStateEventRule()); } + EOF +; + +// Rule StateEvent +ruleStateEvent + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getStateEventAccess().getAlternatives()); } + (rule__StateEvent__Alternatives) + { after(grammarAccess.getStateEventAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleEnterStateEvent +entryRuleEnterStateEvent +: +{ before(grammarAccess.getEnterStateEventRule()); } + ruleEnterStateEvent +{ after(grammarAccess.getEnterStateEventRule()); } + EOF +; + +// Rule EnterStateEvent +ruleEnterStateEvent + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getEnterStateEventAccess().getGroup()); } + (rule__EnterStateEvent__Group__0) + { after(grammarAccess.getEnterStateEventAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLeaveStateEvent +entryRuleLeaveStateEvent +: +{ before(grammarAccess.getLeaveStateEventRule()); } + ruleLeaveStateEvent +{ after(grammarAccess.getLeaveStateEventRule()); } + EOF +; + +// Rule LeaveStateEvent +ruleLeaveStateEvent + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLeaveStateEventAccess().getGroup()); } + (rule__LeaveStateEvent__Group__0) + { after(grammarAccess.getLeaveStateEventAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleObservable +entryRuleObservable +: +{ before(grammarAccess.getObservableRule()); } + ruleObservable +{ after(grammarAccess.getObservableRule()); } + EOF +; + +// Rule Observable +ruleObservable + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getObservableAccess().getObservableDisjunctionParserRuleCall()); } + ruleObservableDisjunction + { after(grammarAccess.getObservableAccess().getObservableDisjunctionParserRuleCall()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleObservableDisjunction +entryRuleObservableDisjunction +: +{ before(grammarAccess.getObservableDisjunctionRule()); } + ruleObservableDisjunction +{ after(grammarAccess.getObservableDisjunctionRule()); } + EOF +; + +// Rule ObservableDisjunction +ruleObservableDisjunction + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getObservableDisjunctionAccess().getGroup()); } + (rule__ObservableDisjunction__Group__0) + { after(grammarAccess.getObservableDisjunctionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleObservableImplication +entryRuleObservableImplication +: +{ before(grammarAccess.getObservableImplicationRule()); } + ruleObservableImplication +{ after(grammarAccess.getObservableImplicationRule()); } + EOF +; + +// Rule ObservableImplication +ruleObservableImplication + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getObservableImplicationAccess().getGroup()); } + (rule__ObservableImplication__Group__0) + { after(grammarAccess.getObservableImplicationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleObservableConjunction +entryRuleObservableConjunction +: +{ before(grammarAccess.getObservableConjunctionRule()); } + ruleObservableConjunction +{ after(grammarAccess.getObservableConjunctionRule()); } + EOF +; + +// Rule ObservableConjunction +ruleObservableConjunction + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getObservableConjunctionAccess().getGroup()); } + (rule__ObservableConjunction__Group__0) + { after(grammarAccess.getObservableConjunctionAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleObservableNegation +entryRuleObservableNegation +: +{ before(grammarAccess.getObservableNegationRule()); } + ruleObservableNegation +{ after(grammarAccess.getObservableNegationRule()); } + EOF +; + +// Rule ObservableNegation +ruleObservableNegation + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getObservableNegationAccess().getAlternatives()); } + (rule__ObservableNegation__Alternatives) + { after(grammarAccess.getObservableNegationAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleAtomicObservable +entryRuleAtomicObservable +: +{ before(grammarAccess.getAtomicObservableRule()); } + ruleAtomicObservable +{ after(grammarAccess.getAtomicObservableRule()); } + EOF +; + +// Rule AtomicObservable +ruleAtomicObservable + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getAtomicObservableAccess().getAlternatives()); } + (rule__AtomicObservable__Alternatives) + { after(grammarAccess.getAtomicObservableAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleObservableEvent +entryRuleObservableEvent +: +{ before(grammarAccess.getObservableEventRule()); } + ruleObservableEvent +{ after(grammarAccess.getObservableEventRule()); } + EOF +; + +// Rule ObservableEvent +ruleObservableEvent + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getObservableEventAccess().getAlternatives()); } + (rule__ObservableEvent__Alternatives) + { after(grammarAccess.getObservableEventAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePathEvent +entryRulePathEvent +: +{ before(grammarAccess.getPathEventRule()); } + rulePathEvent +{ after(grammarAccess.getPathEventRule()); } + EOF +; + +// Rule PathEvent +rulePathEvent + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPathEventAccess().getGroup()); } + (rule__PathEvent__Group__0) + { after(grammarAccess.getPathEventAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePath +entryRulePath +: +{ before(grammarAccess.getPathRule()); } + rulePath +{ after(grammarAccess.getPathRule()); } + EOF +; + +// Rule Path +rulePath + @init { + int stackSize = keepStackSize(); + } + : + ( + ( + { before(grammarAccess.getPathAccess().getGroup()); } + (rule__Path__Group__0) + { after(grammarAccess.getPathAccess().getGroup()); } + ) + ( + { before(grammarAccess.getPathAccess().getGroup()); } + (rule__Path__Group__0)* + { after(grammarAccess.getPathAccess().getGroup()); } + ) + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRulePathItem +entryRulePathItem +: +{ before(grammarAccess.getPathItemRule()); } + rulePathItem +{ after(grammarAccess.getPathItemRule()); } + EOF +; + +// Rule PathItem +rulePathItem + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getPathItemAccess().getAlternatives()); } + (rule__PathItem__Alternatives) + { after(grammarAccess.getPathItemAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleNaturalItem +entryRuleNaturalItem +: +{ before(grammarAccess.getNaturalItemRule()); } + ruleNaturalItem +{ after(grammarAccess.getNaturalItemRule()); } + EOF +; + +// Rule NaturalItem +ruleNaturalItem + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getNaturalItemAccess().getValueAssignment()); } + (rule__NaturalItem__ValueAssignment) + { after(grammarAccess.getNaturalItemAccess().getValueAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleNamedItem +entryRuleNamedItem +: +{ before(grammarAccess.getNamedItemRule()); } + ruleNamedItem +{ after(grammarAccess.getNamedItemRule()); } + EOF +; + +// Rule NamedItem +ruleNamedItem + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getNamedItemAccess().getDeclarationAssignment()); } + (rule__NamedItem__DeclarationAssignment) + { after(grammarAccess.getNamedItemAccess().getDeclarationAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleSubject +entryRuleSubject +: +{ before(grammarAccess.getSubjectRule()); } + ruleSubject +{ after(grammarAccess.getSubjectRule()); } + EOF +; + +// Rule Subject +ruleSubject + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getSubjectAccess().getAlternatives()); } + (rule__Subject__Alternatives) + { after(grammarAccess.getSubjectAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleStateSubject +entryRuleStateSubject +: +{ before(grammarAccess.getStateSubjectRule()); } + ruleStateSubject +{ after(grammarAccess.getStateSubjectRule()); } + EOF +; + +// Rule StateSubject +ruleStateSubject + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getStateSubjectAccess().getGroup()); } + (rule__StateSubject__Group__0) + { after(grammarAccess.getStateSubjectAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleValueSubject +entryRuleValueSubject +: +{ before(grammarAccess.getValueSubjectRule()); } + ruleValueSubject +{ after(grammarAccess.getValueSubjectRule()); } + EOF +; + +// Rule ValueSubject +ruleValueSubject + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getValueSubjectAccess().getGroup()); } + (rule__ValueSubject__Group__0) + { after(grammarAccess.getValueSubjectAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleTagSubject +entryRuleTagSubject +: +{ before(grammarAccess.getTagSubjectRule()); } + ruleTagSubject +{ after(grammarAccess.getTagSubjectRule()); } + EOF +; + +// Rule TagSubject +ruleTagSubject + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getTagSubjectAccess().getGroup()); } + (rule__TagSubject__Group__0) + { after(grammarAccess.getTagSubjectAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleEventSubject +entryRuleEventSubject +: +{ before(grammarAccess.getEventSubjectRule()); } + ruleEventSubject +{ after(grammarAccess.getEventSubjectRule()); } + EOF +; + +// Rule EventSubject +ruleEventSubject + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getEventSubjectAccess().getGroup()); } + (rule__EventSubject__Group__0) + { after(grammarAccess.getEventSubjectAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Model__Alternatives_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getModelAccess().getDeclarationsAssignment_2_0()); } + (rule__Model__DeclarationsAssignment_2_0) + { after(grammarAccess.getModelAccess().getDeclarationsAssignment_2_0()); } + ) + | + ( + { before(grammarAccess.getModelAccess().getRequirementsAssignment_2_1()); } + (rule__Model__RequirementsAssignment_2_1) + { after(grammarAccess.getModelAccess().getRequirementsAssignment_2_1()); } + ) + | + ( + { before(grammarAccess.getModelAccess().getRootAssignment_2_2()); } + (rule__Model__RootAssignment_2_2) + { after(grammarAccess.getModelAccess().getRootAssignment_2_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Declaration__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDeclarationAccess().getTypeDeclarationParserRuleCall_0()); } + ruleTypeDeclaration + { after(grammarAccess.getDeclarationAccess().getTypeDeclarationParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getDeclarationAccess().getChannelDeclarationParserRuleCall_1()); } + ruleChannelDeclaration + { after(grammarAccess.getDeclarationAccess().getChannelDeclarationParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getDeclarationAccess().getConstantDeclarationParserRuleCall_2()); } + ruleConstantDeclaration + { after(grammarAccess.getDeclarationAccess().getConstantDeclarationParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getDeclarationAccess().getParameterizedDeclarationParserRuleCall_3()); } + ruleParameterizedDeclaration + { after(grammarAccess.getDeclarationAccess().getParameterizedDeclarationParserRuleCall_3()); } + ) + | + ( + { before(grammarAccess.getDeclarationAccess().getPropertyDeclarationParserRuleCall_4()); } + rulePropertyDeclaration + { after(grammarAccess.getDeclarationAccess().getPropertyDeclarationParserRuleCall_4()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterizedDeclaration__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getParameterizedDeclarationAccess().getProcessDeclarationParserRuleCall_0()); } + ruleProcessDeclaration + { after(grammarAccess.getParameterizedDeclarationAccess().getProcessDeclarationParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getParameterizedDeclarationAccess().getComponentDeclarationParserRuleCall_1()); } + ruleComponentDeclaration + { after(grammarAccess.getParameterizedDeclarationAccess().getComponentDeclarationParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getParameterizedDeclarationAccess().getFunctionDeclarationParserRuleCall_2()); } + ruleFunctionDeclaration + { after(grammarAccess.getParameterizedDeclarationAccess().getFunctionDeclarationParserRuleCall_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Alternatives_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getChannelTypeAccess().getGroup_2_0()); } + (rule__ChannelType__Group_2_0__0) + { after(grammarAccess.getChannelTypeAccess().getGroup_2_0()); } + ) + | + ( + { before(grammarAccess.getChannelTypeAccess().getNoneKeyword_2_1()); } + 'none' + { after(grammarAccess.getChannelTypeAccess().getNoneKeyword_2_1()); } + ) + | + ( + { before(grammarAccess.getChannelTypeAccess().getSyncKeyword_2_2()); } + 'sync' + { after(grammarAccess.getChannelTypeAccess().getSyncKeyword_2_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Alternatives_2_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getChannelTypeAccess().getGroup_2_0_0_0()); } + (rule__ChannelType__Group_2_0_0_0__0) + { after(grammarAccess.getChannelTypeAccess().getGroup_2_0_0_0()); } + ) + | + ( + { before(grammarAccess.getChannelTypeAccess().getOutAssignment_2_0_0_1()); } + (rule__ChannelType__OutAssignment_2_0_0_1) + { after(grammarAccess.getChannelTypeAccess().getOutAssignment_2_0_0_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Alternatives_2_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getChannelTypeAccess().getTypeAssignment_2_0_1_0()); } + (rule__ChannelType__TypeAssignment_2_0_1_0) + { after(grammarAccess.getChannelTypeAccess().getTypeAssignment_2_0_1_0()); } + ) + | + ( + { before(grammarAccess.getChannelTypeAccess().getNoneKeyword_2_0_1_1()); } + 'none' + { after(grammarAccess.getChannelTypeAccess().getNoneKeyword_2_0_1_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Type__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getTypeAccess().getBasicTypeParserRuleCall_0()); } + ruleBasicType + { after(grammarAccess.getTypeAccess().getBasicTypeParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getTypeAccess().getRangeTypeParserRuleCall_1()); } + ruleRangeType + { after(grammarAccess.getTypeAccess().getRangeTypeParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getTypeAccess().getUnionTypeParserRuleCall_2()); } + ruleUnionType + { after(grammarAccess.getTypeAccess().getUnionTypeParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getTypeAccess().getRecordTypeParserRuleCall_3()); } + ruleRecordType + { after(grammarAccess.getTypeAccess().getRecordTypeParserRuleCall_3()); } + ) + | + ( + { before(grammarAccess.getTypeAccess().getQueueTypeParserRuleCall_4()); } + ruleQueueType + { after(grammarAccess.getTypeAccess().getQueueTypeParserRuleCall_4()); } + ) + | + ( + { before(grammarAccess.getTypeAccess().getArrayTypeParserRuleCall_5()); } + ruleArrayType + { after(grammarAccess.getTypeAccess().getArrayTypeParserRuleCall_5()); } + ) + | + ( + { before(grammarAccess.getTypeAccess().getReferencedTypeParserRuleCall_6()); } + ruleReferencedType + { after(grammarAccess.getTypeAccess().getReferencedTypeParserRuleCall_6()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__BasicType__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getBasicTypeAccess().getGroup_0()); } + (rule__BasicType__Group_0__0) + { after(grammarAccess.getBasicTypeAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getBasicTypeAccess().getGroup_1()); } + (rule__BasicType__Group_1__0) + { after(grammarAccess.getBasicTypeAccess().getGroup_1()); } + ) + | + ( + { before(grammarAccess.getBasicTypeAccess().getGroup_2()); } + (rule__BasicType__Group_2__0) + { after(grammarAccess.getBasicTypeAccess().getGroup_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Statement__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getStatementAccess().getNullStatementParserRuleCall_0()); } + ruleNullStatement + { after(grammarAccess.getStatementAccess().getNullStatementParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getTaggedStatementParserRuleCall_1()); } + ruleTaggedStatement + { after(grammarAccess.getStatementAccess().getTaggedStatementParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getPatternStatementParserRuleCall_2()); } + rulePatternStatement + { after(grammarAccess.getStatementAccess().getPatternStatementParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getConditionalStatementParserRuleCall_3()); } + ruleConditionalStatement + { after(grammarAccess.getStatementAccess().getConditionalStatementParserRuleCall_3()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getSelectStatementParserRuleCall_4()); } + ruleSelectStatement + { after(grammarAccess.getStatementAccess().getSelectStatementParserRuleCall_4()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getWhileStatementParserRuleCall_5()); } + ruleWhileStatement + { after(grammarAccess.getStatementAccess().getWhileStatementParserRuleCall_5()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getForeachStatementParserRuleCall_6()); } + ruleForeachStatement + { after(grammarAccess.getStatementAccess().getForeachStatementParserRuleCall_6()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getToStatementParserRuleCall_7()); } + ruleToStatement + { after(grammarAccess.getStatementAccess().getToStatementParserRuleCall_7()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getCaseStatementParserRuleCall_8()); } + ruleCaseStatement + { after(grammarAccess.getStatementAccess().getCaseStatementParserRuleCall_8()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getLoopStatementParserRuleCall_9()); } + ruleLoopStatement + { after(grammarAccess.getStatementAccess().getLoopStatementParserRuleCall_9()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getOnStatementParserRuleCall_10()); } + ruleOnStatement + { after(grammarAccess.getStatementAccess().getOnStatementParserRuleCall_10()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getWaitStatementParserRuleCall_11()); } + ruleWaitStatement + { after(grammarAccess.getStatementAccess().getWaitStatementParserRuleCall_11()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getReturnStatementParserRuleCall_12()); } + ruleReturnStatement + { after(grammarAccess.getStatementAccess().getReturnStatementParserRuleCall_12()); } + ) + | + ( + { before(grammarAccess.getStatementAccess().getBlockStatementParserRuleCall_13()); } + ruleBlockStatement + { after(grammarAccess.getStatementAccess().getBlockStatementParserRuleCall_13()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Alternatives_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_0()); } + (rule__PatternStatement__Group_1_0__0) + { after(grammarAccess.getPatternStatementAccess().getGroup_1_0()); } + ) + | + ( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_1()); } + (rule__PatternStatement__Group_1_1__0) + { after(grammarAccess.getPatternStatementAccess().getGroup_1_1()); } + ) + | + ( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_2()); } + (rule__PatternStatement__Group_1_2__0) + { after(grammarAccess.getPatternStatementAccess().getGroup_1_2()); } + ) + | + ( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_3()); } + (rule__PatternStatement__Group_1_3__0) + { after(grammarAccess.getPatternStatementAccess().getGroup_1_3()); } + ) + | + ( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_4()); } + (rule__PatternStatement__Group_1_4__0) + { after(grammarAccess.getPatternStatementAccess().getGroup_1_4()); } + ) + | + ( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_5()); } + (rule__PatternStatement__Group_1_5__0) + { after(grammarAccess.getPatternStatementAccess().getGroup_1_5()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Pattern__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternAccess().getAnyPatternParserRuleCall_0()); } + ruleAnyPattern + { after(grammarAccess.getPatternAccess().getAnyPatternParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getPatternAccess().getIntegerPatternParserRuleCall_1()); } + ruleIntegerPattern + { after(grammarAccess.getPatternAccess().getIntegerPatternParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getPatternAccess().getConstantPatternParserRuleCall_2()); } + ruleConstantPattern + { after(grammarAccess.getPatternAccess().getConstantPatternParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getPatternAccess().getGroup_3()); } + (rule__Pattern__Group_3__0) + { after(grammarAccess.getPatternAccess().getGroup_3()); } + ) + | + ( + { before(grammarAccess.getPatternAccess().getIdentifierPatternParserRuleCall_4()); } + ruleIdentifierPattern + { after(grammarAccess.getPatternAccess().getIdentifierPatternParserRuleCall_4()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IntegerPattern__Alternatives_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIntegerPatternAccess().getPlusSignKeyword_0_0()); } + '+' + { after(grammarAccess.getIntegerPatternAccess().getPlusSignKeyword_0_0()); } + ) + | + ( + { before(grammarAccess.getIntegerPatternAccess().getNegativeAssignment_0_1()); } + (rule__IntegerPattern__NegativeAssignment_0_1) + { after(grammarAccess.getIntegerPatternAccess().getNegativeAssignment_0_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierPatternAccess().getGroup_0()); } + (rule__IdentifierPattern__Group_0__0) + { after(grammarAccess.getIdentifierPatternAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getIdentifierPatternAccess().getGroup_1()); } + (rule__IdentifierPattern__Group_1__0) + { after(grammarAccess.getIdentifierPatternAccess().getGroup_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Alternatives_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierPatternAccess().getGroup_1_1_0()); } + (rule__IdentifierPattern__Group_1_1_0__0) + { after(grammarAccess.getIdentifierPatternAccess().getGroup_1_1_0()); } + ) + | + ( + { before(grammarAccess.getIdentifierPatternAccess().getGroup_1_1_1()); } + (rule__IdentifierPattern__Group_1_1_1__0) + { after(grammarAccess.getIdentifierPatternAccess().getGroup_1_1_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Block__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getBlockAccess().getCompositeBlockParserRuleCall_0()); } + ruleCompositeBlock + { after(grammarAccess.getBlockAccess().getCompositeBlockParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getBlockAccess().getInstanceDeclarationParserRuleCall_1()); } + ruleInstanceDeclaration + { after(grammarAccess.getBlockAccess().getInstanceDeclarationParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__CompositeBlock__Alternatives_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCompositeBlockAccess().getGroup_0_0()); } + (rule__CompositeBlock__Group_0_0__0) + { after(grammarAccess.getCompositeBlockAccess().getGroup_0_0()); } + ) + | + ( + { before(grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); } + '->' + { after(grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__InstanceDeclaration__Alternatives_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getInstanceDeclarationAccess().getGroup_0_0()); } + (rule__InstanceDeclaration__Group_0_0__0) + { after(grammarAccess.getInstanceDeclarationAccess().getGroup_0_0()); } + ) + | + ( + { before(grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); } + '->' + { after(grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortSet__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPortSetAccess().getAllPortsAssignment_0()); } + (rule__PortSet__AllPortsAssignment_0) + { after(grammarAccess.getPortSetAccess().getAllPortsAssignment_0()); } + ) + | + ( + { before(grammarAccess.getPortSetAccess().getGroup_1()); } + (rule__PortSet__Group_1__0) + { after(grammarAccess.getPortSetAccess().getGroup_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQuantifiedExpressionAccess().getGroup_0()); } + (rule__QuantifiedExpression__Group_0__0) + { after(grammarAccess.getQuantifiedExpressionAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getQuantifiedExpressionAccess().getConditionalParserRuleCall_1()); } + ruleConditional + { after(grammarAccess.getQuantifiedExpressionAccess().getConditionalParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Alternatives_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_0_0()); } + (rule__QuantifiedExpression__Group_0_0_0__0) + { after(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_0_0()); } + ) + | + ( + { before(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_0_1()); } + (rule__QuantifiedExpression__Group_0_0_1__0) + { after(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_0_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Alternatives_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComparisonAccess().getGroup_1_0_0()); } + (rule__Comparison__Group_1_0_0__0) + { after(grammarAccess.getComparisonAccess().getGroup_1_0_0()); } + ) + | + ( + { before(grammarAccess.getComparisonAccess().getGroup_1_0_1()); } + (rule__Comparison__Group_1_0_1__0) + { after(grammarAccess.getComparisonAccess().getGroup_1_0_1()); } + ) + | + ( + { before(grammarAccess.getComparisonAccess().getGroup_1_0_2()); } + (rule__Comparison__Group_1_0_2__0) + { after(grammarAccess.getComparisonAccess().getGroup_1_0_2()); } + ) + | + ( + { before(grammarAccess.getComparisonAccess().getGroup_1_0_3()); } + (rule__Comparison__Group_1_0_3__0) + { after(grammarAccess.getComparisonAccess().getGroup_1_0_3()); } + ) + | + ( + { before(grammarAccess.getComparisonAccess().getGroup_1_0_4()); } + (rule__Comparison__Group_1_0_4__0) + { after(grammarAccess.getComparisonAccess().getGroup_1_0_4()); } + ) + | + ( + { before(grammarAccess.getComparisonAccess().getGroup_1_0_5()); } + (rule__Comparison__Group_1_0_5__0) + { after(grammarAccess.getComparisonAccess().getGroup_1_0_5()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUnaryExpressionAccess().getGroup_0()); } + (rule__UnaryExpression__Group_0__0) + { after(grammarAccess.getUnaryExpressionAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getUnaryExpressionAccess().getProjectionParserRuleCall_1()); } + ruleProjection + { after(grammarAccess.getUnaryExpressionAccess().getProjectionParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Alternatives_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_0()); } + (rule__UnaryExpression__Group_0_0_0__0) + { after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_0()); } + ) + | + ( + { before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_1()); } + (rule__UnaryExpression__Group_0_0_1__0) + { after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_1()); } + ) + | + ( + { before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_2()); } + (rule__UnaryExpression__Group_0_0_2__0) + { after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_2()); } + ) + | + ( + { before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_3()); } + (rule__UnaryExpression__Group_0_0_3__0) + { after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_3()); } + ) + | + ( + { before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_4()); } + (rule__UnaryExpression__Group_0_0_4__0) + { after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_4()); } + ) + | + ( + { before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_5()); } + (rule__UnaryExpression__Group_0_0_5__0) + { after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_5()); } + ) + | + ( + { before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_6()); } + (rule__UnaryExpression__Group_0_0_6__0) + { after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_6()); } + ) + | + ( + { before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_7()); } + (rule__UnaryExpression__Group_0_0_7__0) + { after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_7()); } + ) + | + ( + { before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_8()); } + (rule__UnaryExpression__Group_0_0_8__0) + { after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_8()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicExpression__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAtomicExpressionAccess().getIdentifierExpressionParserRuleCall_0()); } + ruleIdentifierExpression + { after(grammarAccess.getAtomicExpressionAccess().getIdentifierExpressionParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getAtomicExpressionAccess().getReferenceExpressionParserRuleCall_1()); } + ruleReferenceExpression + { after(grammarAccess.getAtomicExpressionAccess().getReferenceExpressionParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getAtomicExpressionAccess().getLiteralExpressionParserRuleCall_2()); } + ruleLiteralExpression + { after(grammarAccess.getAtomicExpressionAccess().getLiteralExpressionParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getAtomicExpressionAccess().getRecordExpressionParserRuleCall_3()); } + ruleRecordExpression + { after(grammarAccess.getAtomicExpressionAccess().getRecordExpressionParserRuleCall_3()); } + ) + | + ( + { before(grammarAccess.getAtomicExpressionAccess().getArrayExpressionParserRuleCall_4()); } + ruleArrayExpression + { after(grammarAccess.getAtomicExpressionAccess().getArrayExpressionParserRuleCall_4()); } + ) + | + ( + { before(grammarAccess.getAtomicExpressionAccess().getQueueExpressionParserRuleCall_5()); } + ruleQueueExpression + { after(grammarAccess.getAtomicExpressionAccess().getQueueExpressionParserRuleCall_5()); } + ) + | + ( + { before(grammarAccess.getAtomicExpressionAccess().getEnqueueExpressionParserRuleCall_6()); } + ruleEnqueueExpression + { after(grammarAccess.getAtomicExpressionAccess().getEnqueueExpressionParserRuleCall_6()); } + ) + | + ( + { before(grammarAccess.getAtomicExpressionAccess().getAppendExpressionParserRuleCall_7()); } + ruleAppendExpression + { after(grammarAccess.getAtomicExpressionAccess().getAppendExpressionParserRuleCall_7()); } + ) + | + ( + { before(grammarAccess.getAtomicExpressionAccess().getGroup_8()); } + (rule__AtomicExpression__Group_8__0) + { after(grammarAccess.getAtomicExpressionAccess().getGroup_8()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierExpressionAccess().getGroup_0()); } + (rule__IdentifierExpression__Group_0__0) + { after(grammarAccess.getIdentifierExpressionAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getIdentifierExpressionAccess().getGroup_1()); } + (rule__IdentifierExpression__Group_1__0) + { after(grammarAccess.getIdentifierExpressionAccess().getGroup_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Alternatives_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_0()); } + (rule__IdentifierExpression__Group_1_1_0__0) + { after(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_0()); } + ) + | + ( + { before(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_1()); } + (rule__IdentifierExpression__Group_1_1_1__0) + { after(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LiteralExpression__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLiteralExpressionAccess().getBooleanLiteralParserRuleCall_0()); } + ruleBooleanLiteral + { after(grammarAccess.getLiteralExpressionAccess().getBooleanLiteralParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getLiteralExpressionAccess().getNaturalLiteralParserRuleCall_1()); } + ruleNaturalLiteral + { after(grammarAccess.getLiteralExpressionAccess().getNaturalLiteralParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__BooleanLiteral__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getBooleanLiteralAccess().getGroup_0()); } + (rule__BooleanLiteral__Group_0__0) + { after(grammarAccess.getBooleanLiteralAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getBooleanLiteralAccess().getGroup_1()); } + (rule__BooleanLiteral__Group_1__0) + { after(grammarAccess.getBooleanLiteralAccess().getGroup_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LowerBound__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLowerBoundAccess().getNaturalLowerBoundParserRuleCall_0()); } + ruleNaturalLowerBound + { after(grammarAccess.getLowerBoundAccess().getNaturalLowerBoundParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getLowerBoundAccess().getDecimalLowerBoundParserRuleCall_1()); } + ruleDecimalLowerBound + { after(grammarAccess.getLowerBoundAccess().getDecimalLowerBoundParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getLowerBoundAccess().getVariableLowerBoundParserRuleCall_2()); } + ruleVariableLowerBound + { after(grammarAccess.getLowerBoundAccess().getVariableLowerBoundParserRuleCall_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UpperBound__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUpperBoundAccess().getNaturalUpperBoundParserRuleCall_0()); } + ruleNaturalUpperBound + { after(grammarAccess.getUpperBoundAccess().getNaturalUpperBoundParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getUpperBoundAccess().getDecimalUpperBoundParserRuleCall_1()); } + ruleDecimalUpperBound + { after(grammarAccess.getUpperBoundAccess().getDecimalUpperBoundParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getUpperBoundAccess().getVariableUpperBoundParserRuleCall_2()); } + ruleVariableUpperBound + { after(grammarAccess.getUpperBoundAccess().getVariableUpperBoundParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getUpperBoundAccess().getInfiniteUpperBoundParserRuleCall_3()); } + ruleInfiniteUpperBound + { after(grammarAccess.getUpperBoundAccess().getInfiniteUpperBoundParserRuleCall_3()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalLowerBound__Alternatives_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNaturalLowerBoundAccess().getLeftAssignment_0_0()); } + (rule__NaturalLowerBound__LeftAssignment_0_0) + { after(grammarAccess.getNaturalLowerBoundAccess().getLeftAssignment_0_0()); } + ) + | + ( + { before(grammarAccess.getNaturalLowerBoundAccess().getRightAssignment_0_1()); } + (rule__NaturalLowerBound__RightAssignment_0_1) + { after(grammarAccess.getNaturalLowerBoundAccess().getRightAssignment_0_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalUpperBound__Alternatives_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNaturalUpperBoundAccess().getLeftAssignment_1_0()); } + (rule__NaturalUpperBound__LeftAssignment_1_0) + { after(grammarAccess.getNaturalUpperBoundAccess().getLeftAssignment_1_0()); } + ) + | + ( + { before(grammarAccess.getNaturalUpperBoundAccess().getRightAssignment_1_1()); } + (rule__NaturalUpperBound__RightAssignment_1_1) + { after(grammarAccess.getNaturalUpperBoundAccess().getRightAssignment_1_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalLowerBound__Alternatives_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDecimalLowerBoundAccess().getLeftAssignment_0_0()); } + (rule__DecimalLowerBound__LeftAssignment_0_0) + { after(grammarAccess.getDecimalLowerBoundAccess().getLeftAssignment_0_0()); } + ) + | + ( + { before(grammarAccess.getDecimalLowerBoundAccess().getRightAssignment_0_1()); } + (rule__DecimalLowerBound__RightAssignment_0_1) + { after(grammarAccess.getDecimalLowerBoundAccess().getRightAssignment_0_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalUpperBound__Alternatives_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDecimalUpperBoundAccess().getLeftAssignment_1_0()); } + (rule__DecimalUpperBound__LeftAssignment_1_0) + { after(grammarAccess.getDecimalUpperBoundAccess().getLeftAssignment_1_0()); } + ) + | + ( + { before(grammarAccess.getDecimalUpperBoundAccess().getRightAssignment_1_1()); } + (rule__DecimalUpperBound__RightAssignment_1_1) + { after(grammarAccess.getDecimalUpperBoundAccess().getRightAssignment_1_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableLowerBound__Alternatives_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariableLowerBoundAccess().getLeftAssignment_0_0()); } + (rule__VariableLowerBound__LeftAssignment_0_0) + { after(grammarAccess.getVariableLowerBoundAccess().getLeftAssignment_0_0()); } + ) + | + ( + { before(grammarAccess.getVariableLowerBoundAccess().getRightAssignment_0_1()); } + (rule__VariableLowerBound__RightAssignment_0_1) + { after(grammarAccess.getVariableLowerBoundAccess().getRightAssignment_0_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableUpperBound__Alternatives_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariableUpperBoundAccess().getLeftAssignment_1_0()); } + (rule__VariableUpperBound__LeftAssignment_1_0) + { after(grammarAccess.getVariableUpperBoundAccess().getLeftAssignment_1_0()); } + ) + | + ( + { before(grammarAccess.getVariableUpperBoundAccess().getRightAssignment_1_1()); } + (rule__VariableUpperBound__RightAssignment_1_1) + { after(grammarAccess.getVariableUpperBoundAccess().getRightAssignment_1_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQuantifiedPropertyAccess().getGroup_0()); } + (rule__QuantifiedProperty__Group_0__0) + { after(grammarAccess.getQuantifiedPropertyAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getQuantifiedPropertyAccess().getPropertyDisjunctionParserRuleCall_1()); } + rulePropertyDisjunction + { after(grammarAccess.getQuantifiedPropertyAccess().getPropertyDisjunctionParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Alternatives_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQuantifiedPropertyAccess().getGroup_0_0_0()); } + (rule__QuantifiedProperty__Group_0_0_0__0) + { after(grammarAccess.getQuantifiedPropertyAccess().getGroup_0_0_0()); } + ) + | + ( + { before(grammarAccess.getQuantifiedPropertyAccess().getGroup_0_0_1()); } + (rule__QuantifiedProperty__Group_0_0_1__0) + { after(grammarAccess.getQuantifiedPropertyAccess().getGroup_0_0_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyNegation__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPropertyNegationAccess().getGroup_0()); } + (rule__PropertyNegation__Group_0__0) + { after(grammarAccess.getPropertyNegationAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getPropertyNegationAccess().getAtomicPropertyParserRuleCall_1()); } + ruleAtomicProperty + { after(grammarAccess.getPropertyNegationAccess().getAtomicPropertyParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicProperty__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAtomicPropertyAccess().getPatternPropertyParserRuleCall_0()); } + rulePatternProperty + { after(grammarAccess.getAtomicPropertyAccess().getPatternPropertyParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getAtomicPropertyAccess().getGroup_1()); } + (rule__AtomicProperty__Group_1__0) + { after(grammarAccess.getAtomicPropertyAccess().getGroup_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternProperty__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternPropertyAccess().getLTLPatternParserRuleCall_0()); } + ruleLTLPattern + { after(grammarAccess.getPatternPropertyAccess().getLTLPatternParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getPatternPropertyAccess().getDeadlockFreePatternParserRuleCall_1()); } + ruleDeadlockFreePattern + { after(grammarAccess.getPatternPropertyAccess().getDeadlockFreePatternParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getPatternPropertyAccess().getInfinitelyOftenPatternParserRuleCall_2()); } + ruleInfinitelyOftenPattern + { after(grammarAccess.getPatternPropertyAccess().getInfinitelyOftenPatternParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getPatternPropertyAccess().getMortalPatternParserRuleCall_3()); } + ruleMortalPattern + { after(grammarAccess.getPatternPropertyAccess().getMortalPatternParserRuleCall_3()); } + ) + | + ( + { before(grammarAccess.getPatternPropertyAccess().getPresencePatternParserRuleCall_4()); } + rulePresencePattern + { after(grammarAccess.getPatternPropertyAccess().getPresencePatternParserRuleCall_4()); } + ) + | + ( + { before(grammarAccess.getPatternPropertyAccess().getAbsencePatternParserRuleCall_5()); } + ruleAbsencePattern + { after(grammarAccess.getPatternPropertyAccess().getAbsencePatternParserRuleCall_5()); } + ) + | + ( + { before(grammarAccess.getPatternPropertyAccess().getAlwaysPatternParserRuleCall_6()); } + ruleAlwaysPattern + { after(grammarAccess.getPatternPropertyAccess().getAlwaysPatternParserRuleCall_6()); } + ) + | + ( + { before(grammarAccess.getPatternPropertyAccess().getSequencePatternParserRuleCall_7()); } + ruleSequencePattern + { after(grammarAccess.getPatternPropertyAccess().getSequencePatternParserRuleCall_7()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Alternatives_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getGroup_2_0()); } + (rule__PresencePattern__Group_2_0__0) + { after(grammarAccess.getPresencePatternAccess().getGroup_2_0()); } + ) + | + ( + { before(grammarAccess.getPresencePatternAccess().getGroup_2_1()); } + (rule__PresencePattern__Group_2_1__0) + { after(grammarAccess.getPresencePatternAccess().getGroup_2_1()); } + ) + | + ( + { before(grammarAccess.getPresencePatternAccess().getGroup_2_2()); } + (rule__PresencePattern__Group_2_2__0) + { after(grammarAccess.getPresencePatternAccess().getGroup_2_2()); } + ) + | + ( + { before(grammarAccess.getPresencePatternAccess().getGroup_2_3()); } + (rule__PresencePattern__Group_2_3__0) + { after(grammarAccess.getPresencePatternAccess().getGroup_2_3()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Alternatives_2_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getGroup_2_1_1_0()); } + (rule__PresencePattern__Group_2_1_1_0__0) + { after(grammarAccess.getPresencePatternAccess().getGroup_2_1_1_0()); } + ) + | + ( + { before(grammarAccess.getPresencePatternAccess().getGroup_2_1_1_1()); } + (rule__PresencePattern__Group_2_1_1_1__0) + { after(grammarAccess.getPresencePatternAccess().getGroup_2_1_1_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Alternatives_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getGroup_2_0()); } + (rule__AbsencePattern__Group_2_0__0) + { after(grammarAccess.getAbsencePatternAccess().getGroup_2_0()); } + ) + | + ( + { before(grammarAccess.getAbsencePatternAccess().getGroup_2_1()); } + (rule__AbsencePattern__Group_2_1__0) + { after(grammarAccess.getAbsencePatternAccess().getGroup_2_1()); } + ) + | + ( + { before(grammarAccess.getAbsencePatternAccess().getGroup_2_2()); } + (rule__AbsencePattern__Group_2_2__0) + { after(grammarAccess.getAbsencePatternAccess().getGroup_2_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Alternatives_2_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getGroup_2_0_1_0()); } + (rule__AbsencePattern__Group_2_0_1_0__0) + { after(grammarAccess.getAbsencePatternAccess().getGroup_2_0_1_0()); } + ) + | + ( + { before(grammarAccess.getAbsencePatternAccess().getGroup_2_0_1_1()); } + (rule__AbsencePattern__Group_2_0_1_1__0) + { after(grammarAccess.getAbsencePatternAccess().getGroup_2_0_1_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Alternatives_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAlwaysPatternAccess().getGroup_2_0()); } + (rule__AlwaysPattern__Group_2_0__0) + { after(grammarAccess.getAlwaysPatternAccess().getGroup_2_0()); } + ) + | + ( + { before(grammarAccess.getAlwaysPatternAccess().getGroup_2_1()); } + (rule__AlwaysPattern__Group_2_1__0) + { after(grammarAccess.getAlwaysPatternAccess().getGroup_2_1()); } + ) + | + ( + { before(grammarAccess.getAlwaysPatternAccess().getGroup_2_2()); } + (rule__AlwaysPattern__Group_2_2__0) + { after(grammarAccess.getAlwaysPatternAccess().getGroup_2_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Alternatives_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_0()); } + (rule__SequencePattern__Group_1_0__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_0()); } + ) + | + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_1()); } + (rule__SequencePattern__Group_1_1__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Alternatives_1_0_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_0()); } + (rule__SequencePattern__Group_1_0_3_0__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_0()); } + ) + | + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_1()); } + (rule__SequencePattern__Group_1_0_3_1__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_1()); } + ) + | + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2()); } + (rule__SequencePattern__Group_1_0_3_2__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2()); } + ) + | + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_3()); } + (rule__SequencePattern__Group_1_0_3_3__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_3()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Alternatives_1_0_3_2_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2_2_0()); } + (rule__SequencePattern__Group_1_0_3_2_2_0__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2_2_0()); } + ) + | + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2_2_1()); } + (rule__SequencePattern__Group_1_0_3_2_2_1__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2_2_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Alternatives_1_1_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_0()); } + (rule__SequencePattern__Group_1_1_3_0__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_0()); } + ) + | + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_1()); } + (rule__SequencePattern__Group_1_1_3_1__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_1()); } + ) + | + ( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_2()); } + (rule__SequencePattern__Group_1_1_3_2__0) + { after(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLQuantifiedAccess().getGroup_0()); } + (rule__LTLQuantified__Group_0__0) + { after(grammarAccess.getLTLQuantifiedAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getLTLQuantifiedAccess().getLTLDisjunctionParserRuleCall_1()); } + ruleLTLDisjunction + { after(grammarAccess.getLTLQuantifiedAccess().getLTLDisjunctionParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Alternatives_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLQuantifiedAccess().getGroup_0_0_0()); } + (rule__LTLQuantified__Group_0_0_0__0) + { after(grammarAccess.getLTLQuantifiedAccess().getGroup_0_0_0()); } + ) + | + ( + { before(grammarAccess.getLTLQuantifiedAccess().getGroup_0_0_1()); } + (rule__LTLQuantified__Group_0_0_1__0) + { after(grammarAccess.getLTLQuantifiedAccess().getGroup_0_0_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Alternatives_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLBinaryAccess().getGroup_1_0()); } + (rule__LTLBinary__Group_1_0__0) + { after(grammarAccess.getLTLBinaryAccess().getGroup_1_0()); } + ) + | + ( + { before(grammarAccess.getLTLBinaryAccess().getGroup_1_1()); } + (rule__LTLBinary__Group_1_1__0) + { after(grammarAccess.getLTLBinaryAccess().getGroup_1_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLUnaryAccess().getGroup_0()); } + (rule__LTLUnary__Group_0__0) + { after(grammarAccess.getLTLUnaryAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getLTLUnaryAccess().getAtomicLTLParserRuleCall_1()); } + ruleAtomicLTL + { after(grammarAccess.getLTLUnaryAccess().getAtomicLTLParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Alternatives_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLUnaryAccess().getGroup_0_0_0()); } + (rule__LTLUnary__Group_0_0_0__0) + { after(grammarAccess.getLTLUnaryAccess().getGroup_0_0_0()); } + ) + | + ( + { before(grammarAccess.getLTLUnaryAccess().getGroup_0_0_1()); } + (rule__LTLUnary__Group_0_0_1__0) + { after(grammarAccess.getLTLUnaryAccess().getGroup_0_0_1()); } + ) + | + ( + { before(grammarAccess.getLTLUnaryAccess().getGroup_0_0_2()); } + (rule__LTLUnary__Group_0_0_2__0) + { after(grammarAccess.getLTLUnaryAccess().getGroup_0_0_2()); } + ) + | + ( + { before(grammarAccess.getLTLUnaryAccess().getGroup_0_0_3()); } + (rule__LTLUnary__Group_0_0_3__0) + { after(grammarAccess.getLTLUnaryAccess().getGroup_0_0_3()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicLTL__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAtomicLTLAccess().getGroup_0()); } + (rule__AtomicLTL__Group_0__0) + { after(grammarAccess.getAtomicLTLAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getAtomicLTLAccess().getObservableEventParserRuleCall_1()); } + ruleObservableEvent + { after(grammarAccess.getAtomicLTLAccess().getObservableEventParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getAtomicLTLAccess().getGroup_2()); } + (rule__AtomicLTL__Group_2__0) + { after(grammarAccess.getAtomicLTLAccess().getGroup_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__StateEvent__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getStateEventAccess().getEnterStateEventParserRuleCall_0()); } + ruleEnterStateEvent + { after(grammarAccess.getStateEventAccess().getEnterStateEventParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getStateEventAccess().getLeaveStateEventParserRuleCall_1()); } + ruleLeaveStateEvent + { after(grammarAccess.getStateEventAccess().getLeaveStateEventParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableNegation__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getObservableNegationAccess().getGroup_0()); } + (rule__ObservableNegation__Group_0__0) + { after(grammarAccess.getObservableNegationAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getObservableNegationAccess().getAtomicObservableParserRuleCall_1()); } + ruleAtomicObservable + { after(grammarAccess.getObservableNegationAccess().getAtomicObservableParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicObservable__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAtomicObservableAccess().getGroup_0()); } + (rule__AtomicObservable__Group_0__0) + { after(grammarAccess.getAtomicObservableAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getAtomicObservableAccess().getObservableEventParserRuleCall_1()); } + ruleObservableEvent + { after(grammarAccess.getAtomicObservableAccess().getObservableEventParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableEvent__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getObservableEventAccess().getPathEventParserRuleCall_0()); } + rulePathEvent + { after(grammarAccess.getObservableEventAccess().getPathEventParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getObservableEventAccess().getStateEventParserRuleCall_1()); } + ruleStateEvent + { after(grammarAccess.getObservableEventAccess().getStateEventParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PathItem__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPathItemAccess().getNaturalItemParserRuleCall_0()); } + ruleNaturalItem + { after(grammarAccess.getPathItemAccess().getNaturalItemParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getPathItemAccess().getNamedItemParserRuleCall_1()); } + ruleNamedItem + { after(grammarAccess.getPathItemAccess().getNamedItemParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Subject__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSubjectAccess().getStateSubjectParserRuleCall_0()); } + ruleStateSubject + { after(grammarAccess.getSubjectAccess().getStateSubjectParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getSubjectAccess().getValueSubjectParserRuleCall_1()); } + ruleValueSubject + { after(grammarAccess.getSubjectAccess().getValueSubjectParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getSubjectAccess().getTagSubjectParserRuleCall_2()); } + ruleTagSubject + { after(grammarAccess.getSubjectAccess().getTagSubjectParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getSubjectAccess().getEventSubjectParserRuleCall_3()); } + ruleEventSubject + { after(grammarAccess.getSubjectAccess().getEventSubjectParserRuleCall_3()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Model__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Model__Group__0__Impl + rule__Model__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Model__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getModelAccess().getModelAction_0()); } + () + { after(grammarAccess.getModelAccess().getModelAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Model__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Model__Group__1__Impl + rule__Model__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Model__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getModelAccess().getImportsAssignment_1()); } + (rule__Model__ImportsAssignment_1)* + { after(grammarAccess.getModelAccess().getImportsAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Model__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Model__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Model__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getModelAccess().getAlternatives_2()); } + (rule__Model__Alternatives_2)* + { after(grammarAccess.getModelAccess().getAlternatives_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Root__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Root__Group__0__Impl + rule__Root__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRootAccess().getRootAction_0()); } + () + { after(grammarAccess.getRootAccess().getRootAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Root__Group__1__Impl + rule__Root__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRootAccess().getDeclarationAssignment_1()); } + (rule__Root__DeclarationAssignment_1) + { after(grammarAccess.getRootAccess().getDeclarationAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Root__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRootAccess().getGroup_2()); } + (rule__Root__Group_2__0)? + { after(grammarAccess.getRootAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Root__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Root__Group_2__0__Impl + rule__Root__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRootAccess().getGreaterThanSignKeyword_2_0()); } + '>' + { after(grammarAccess.getRootAccess().getGreaterThanSignKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Root__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRootAccess().getGroup_2_1()); } + (rule__Root__Group_2_1__0) + { after(grammarAccess.getRootAccess().getGroup_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Root__Group_2_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Root__Group_2_1__0__Impl + rule__Root__Group_2_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group_2_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRootAccess().getObservedAssignment_2_1_0()); } + (rule__Root__ObservedAssignment_2_1_0) + { after(grammarAccess.getRootAccess().getObservedAssignment_2_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group_2_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Root__Group_2_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group_2_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRootAccess().getGroup_2_1_1()); } + (rule__Root__Group_2_1_1__0)* + { after(grammarAccess.getRootAccess().getGroup_2_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Root__Group_2_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Root__Group_2_1_1__0__Impl + rule__Root__Group_2_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group_2_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRootAccess().getVerticalLineKeyword_2_1_1_0()); } + '|' + { after(grammarAccess.getRootAccess().getVerticalLineKeyword_2_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group_2_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Root__Group_2_1_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__Group_2_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRootAccess().getObservedAssignment_2_1_1_1()); } + (rule__Root__ObservedAssignment_2_1_1_1) + { after(grammarAccess.getRootAccess().getObservedAssignment_2_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ImportDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ImportDeclaration__Group__0__Impl + rule__ImportDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ImportDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getImportDeclarationAccess().getIncludeKeyword_0()); } + '#include' + { after(grammarAccess.getImportDeclarationAccess().getIncludeKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ImportDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ImportDeclaration__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ImportDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1()); } + (rule__ImportDeclaration__ImportURIAssignment_1) + { after(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__FunctionDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group__0__Impl + rule__FunctionDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getFunctionKeyword_0()); } + 'function' + { after(grammarAccess.getFunctionDeclarationAccess().getFunctionKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group__1__Impl + rule__FunctionDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getNameAssignment_1()); } + (rule__FunctionDeclaration__NameAssignment_1) + { after(grammarAccess.getFunctionDeclarationAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group__2__Impl + rule__FunctionDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getGroup_2()); } + (rule__FunctionDeclaration__Group_2__0) + { after(grammarAccess.getFunctionDeclarationAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group__3__Impl + rule__FunctionDeclaration__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getColonKeyword_3()); } + ':' + { after(grammarAccess.getFunctionDeclarationAccess().getColonKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group__4__Impl + rule__FunctionDeclaration__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getTypeAssignment_4()); } + (rule__FunctionDeclaration__TypeAssignment_4) + { after(grammarAccess.getFunctionDeclarationAccess().getTypeAssignment_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group__5__Impl + rule__FunctionDeclaration__Group__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getIsKeyword_5()); } + 'is' + { after(grammarAccess.getFunctionDeclarationAccess().getIsKeyword_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group__6__Impl + rule__FunctionDeclaration__Group__7 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getGroup_6()); } + (rule__FunctionDeclaration__Group_6__0)? + { after(grammarAccess.getFunctionDeclarationAccess().getGroup_6()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__7 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group__7__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group__7__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getStatementAssignment_7()); } + (rule__FunctionDeclaration__StatementAssignment_7) + { after(grammarAccess.getFunctionDeclarationAccess().getStatementAssignment_7()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__FunctionDeclaration__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_2__0__Impl + rule__FunctionDeclaration__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getLeftParenthesisKeyword_2_0()); } + '(' + { after(grammarAccess.getFunctionDeclarationAccess().getLeftParenthesisKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_2__1__Impl + rule__FunctionDeclaration__Group_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getGroup_2_1()); } + (rule__FunctionDeclaration__Group_2_1__0)? + { after(grammarAccess.getFunctionDeclarationAccess().getGroup_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_2__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getRightParenthesisKeyword_2_2()); } + ')' + { after(grammarAccess.getFunctionDeclarationAccess().getRightParenthesisKeyword_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__FunctionDeclaration__Group_2_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_2_1__0__Impl + rule__FunctionDeclaration__Group_2_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getParametersAssignment_2_1_0()); } + (rule__FunctionDeclaration__ParametersAssignment_2_1_0) + { after(grammarAccess.getFunctionDeclarationAccess().getParametersAssignment_2_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_2_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getGroup_2_1_1()); } + (rule__FunctionDeclaration__Group_2_1_1__0)* + { after(grammarAccess.getFunctionDeclarationAccess().getGroup_2_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__FunctionDeclaration__Group_2_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_2_1_1__0__Impl + rule__FunctionDeclaration__Group_2_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_2_1_1_0()); } + ',' + { after(grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_2_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_2_1_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_2_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getParametersAssignment_2_1_1_1()); } + (rule__FunctionDeclaration__ParametersAssignment_2_1_1_1) + { after(grammarAccess.getFunctionDeclarationAccess().getParametersAssignment_2_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__FunctionDeclaration__Group_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_6__0__Impl + rule__FunctionDeclaration__Group_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getVarKeyword_6_0()); } + 'var' + { after(grammarAccess.getFunctionDeclarationAccess().getVarKeyword_6_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_6__1__Impl + rule__FunctionDeclaration__Group_6__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getVariablesAssignment_6_1()); } + (rule__FunctionDeclaration__VariablesAssignment_6_1) + { after(grammarAccess.getFunctionDeclarationAccess().getVariablesAssignment_6_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_6__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_6__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_6__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getGroup_6_2()); } + (rule__FunctionDeclaration__Group_6_2__0)* + { after(grammarAccess.getFunctionDeclarationAccess().getGroup_6_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__FunctionDeclaration__Group_6_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_6_2__0__Impl + rule__FunctionDeclaration__Group_6_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_6_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_6_2_0()); } + ',' + { after(grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_6_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_6_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionDeclaration__Group_6_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__Group_6_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFunctionDeclarationAccess().getVariablesAssignment_6_2_1()); } + (rule__FunctionDeclaration__VariablesAssignment_6_2_1) + { after(grammarAccess.getFunctionDeclarationAccess().getVariablesAssignment_6_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__TypeDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__TypeDeclaration__Group__0__Impl + rule__TypeDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__TypeDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTypeDeclarationAccess().getTypeKeyword_0()); } + 'type' + { after(grammarAccess.getTypeDeclarationAccess().getTypeKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__TypeDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__TypeDeclaration__Group__1__Impl + rule__TypeDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__TypeDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTypeDeclarationAccess().getNameAssignment_1()); } + (rule__TypeDeclaration__NameAssignment_1) + { after(grammarAccess.getTypeDeclarationAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__TypeDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__TypeDeclaration__Group__2__Impl + rule__TypeDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__TypeDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTypeDeclarationAccess().getIsKeyword_2()); } + 'is' + { after(grammarAccess.getTypeDeclarationAccess().getIsKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__TypeDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__TypeDeclaration__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__TypeDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTypeDeclarationAccess().getValueAssignment_3()); } + (rule__TypeDeclaration__ValueAssignment_3) + { after(grammarAccess.getTypeDeclarationAccess().getValueAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ChannelDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelDeclaration__Group__0__Impl + rule__ChannelDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelDeclarationAccess().getChannelKeyword_0()); } + 'channel' + { after(grammarAccess.getChannelDeclarationAccess().getChannelKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelDeclaration__Group__1__Impl + rule__ChannelDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelDeclarationAccess().getNameAssignment_1()); } + (rule__ChannelDeclaration__NameAssignment_1) + { after(grammarAccess.getChannelDeclarationAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelDeclaration__Group__2__Impl + rule__ChannelDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelDeclarationAccess().getIsKeyword_2()); } + 'is' + { after(grammarAccess.getChannelDeclarationAccess().getIsKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelDeclaration__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelDeclarationAccess().getValueAssignment_3()); } + (rule__ChannelDeclaration__ValueAssignment_3) + { after(grammarAccess.getChannelDeclarationAccess().getValueAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ChannelType__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelType__Group__0__Impl + rule__ChannelType__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelTypeAccess().getChannelTypeAction_0()); } + () + { after(grammarAccess.getChannelTypeAccess().getChannelTypeAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelType__Group__1__Impl + rule__ChannelType__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelTypeAccess().getGroup_1()); } + (rule__ChannelType__Group_1__0)? + { after(grammarAccess.getChannelTypeAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelType__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelTypeAccess().getAlternatives_2()); } + (rule__ChannelType__Alternatives_2) + { after(grammarAccess.getChannelTypeAccess().getAlternatives_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ChannelType__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelType__Group_1__0__Impl + rule__ChannelType__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelTypeAccess().getArrayKeyword_1_0()); } + 'array' + { after(grammarAccess.getChannelTypeAccess().getArrayKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelType__Group_1__1__Impl + rule__ChannelType__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelTypeAccess().getSizeAssignment_1_1()); } + (rule__ChannelType__SizeAssignment_1_1) + { after(grammarAccess.getChannelTypeAccess().getSizeAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelType__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelTypeAccess().getOfKeyword_1_2()); } + 'of' + { after(grammarAccess.getChannelTypeAccess().getOfKeyword_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ChannelType__Group_2_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelType__Group_2_0__0__Impl + rule__ChannelType__Group_2_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_2_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelTypeAccess().getAlternatives_2_0_0()); } + (rule__ChannelType__Alternatives_2_0_0)? + { after(grammarAccess.getChannelTypeAccess().getAlternatives_2_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_2_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelType__Group_2_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_2_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelTypeAccess().getAlternatives_2_0_1()); } + (rule__ChannelType__Alternatives_2_0_1) + { after(grammarAccess.getChannelTypeAccess().getAlternatives_2_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ChannelType__Group_2_0_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelType__Group_2_0_0_0__0__Impl + rule__ChannelType__Group_2_0_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_2_0_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelTypeAccess().getInAssignment_2_0_0_0_0()); } + (rule__ChannelType__InAssignment_2_0_0_0_0) + { after(grammarAccess.getChannelTypeAccess().getInAssignment_2_0_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_2_0_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ChannelType__Group_2_0_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__Group_2_0_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getChannelTypeAccess().getOutAssignment_2_0_0_0_1()); } + (rule__ChannelType__OutAssignment_2_0_0_0_1)? + { after(grammarAccess.getChannelTypeAccess().getOutAssignment_2_0_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__TupleType__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__TupleType__Group__0__Impl + rule__TupleType__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__TupleType__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTupleTypeAccess().getTypeParserRuleCall_0()); } + ruleType + { after(grammarAccess.getTupleTypeAccess().getTypeParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__TupleType__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__TupleType__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__TupleType__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTupleTypeAccess().getGroup_1()); } + (rule__TupleType__Group_1__0)* + { after(grammarAccess.getTupleTypeAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__TupleType__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__TupleType__Group_1__0__Impl + rule__TupleType__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__TupleType__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTupleTypeAccess().getTupleTypeTypesAction_1_0()); } + () + { after(grammarAccess.getTupleTypeAccess().getTupleTypeTypesAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__TupleType__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__TupleType__Group_1__1__Impl + rule__TupleType__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__TupleType__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTupleTypeAccess().getNumberSignKeyword_1_1()); } + '#' + { after(grammarAccess.getTupleTypeAccess().getNumberSignKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__TupleType__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__TupleType__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__TupleType__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTupleTypeAccess().getTypesAssignment_1_2()); } + (rule__TupleType__TypesAssignment_1_2) + { after(grammarAccess.getTupleTypeAccess().getTypesAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__BasicType__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__BasicType__Group_0__0__Impl + rule__BasicType__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__BasicType__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBasicTypeAccess().getNaturalTypeAction_0_0()); } + () + { after(grammarAccess.getBasicTypeAccess().getNaturalTypeAction_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__BasicType__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__BasicType__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__BasicType__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBasicTypeAccess().getNatKeyword_0_1()); } + 'nat' + { after(grammarAccess.getBasicTypeAccess().getNatKeyword_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__BasicType__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__BasicType__Group_1__0__Impl + rule__BasicType__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__BasicType__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBasicTypeAccess().getIntegerTypeAction_1_0()); } + () + { after(grammarAccess.getBasicTypeAccess().getIntegerTypeAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__BasicType__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__BasicType__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__BasicType__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBasicTypeAccess().getIntKeyword_1_1()); } + 'int' + { after(grammarAccess.getBasicTypeAccess().getIntKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__BasicType__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__BasicType__Group_2__0__Impl + rule__BasicType__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__BasicType__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBasicTypeAccess().getBooleanTypeAction_2_0()); } + () + { after(grammarAccess.getBasicTypeAccess().getBooleanTypeAction_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__BasicType__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__BasicType__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__BasicType__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBasicTypeAccess().getBoolKeyword_2_1()); } + 'bool' + { after(grammarAccess.getBasicTypeAccess().getBoolKeyword_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__RangeType__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__RangeType__Group__0__Impl + rule__RangeType__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__RangeType__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRangeTypeAccess().getMinimumAssignment_0()); } + (rule__RangeType__MinimumAssignment_0) + { after(grammarAccess.getRangeTypeAccess().getMinimumAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RangeType__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__RangeType__Group__1__Impl + rule__RangeType__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__RangeType__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRangeTypeAccess().getFullStopFullStopKeyword_1()); } + '..' + { after(grammarAccess.getRangeTypeAccess().getFullStopFullStopKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RangeType__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__RangeType__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__RangeType__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRangeTypeAccess().getMaximumAssignment_2()); } + (rule__RangeType__MaximumAssignment_2) + { after(grammarAccess.getRangeTypeAccess().getMaximumAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnionType__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionType__Group__0__Impl + rule__UnionType__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTypeAccess().getUnionKeyword_0()); } + 'union' + { after(grammarAccess.getUnionTypeAccess().getUnionKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionType__Group__1__Impl + rule__UnionType__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTypeAccess().getTagsAssignment_1()); } + (rule__UnionType__TagsAssignment_1) + { after(grammarAccess.getUnionTypeAccess().getTagsAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionType__Group__2__Impl + rule__UnionType__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTypeAccess().getGroup_2()); } + (rule__UnionType__Group_2__0)* + { after(grammarAccess.getUnionTypeAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionType__Group__3__Impl + rule__UnionType__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTypeAccess().getEndKeyword_3()); } + 'end' + { after(grammarAccess.getUnionTypeAccess().getEndKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionType__Group__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTypeAccess().getUnionKeyword_4()); } + ('union')? + { after(grammarAccess.getUnionTypeAccess().getUnionKeyword_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnionType__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionType__Group_2__0__Impl + rule__UnionType__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTypeAccess().getVerticalLineKeyword_2_0()); } + '|' + { after(grammarAccess.getUnionTypeAccess().getVerticalLineKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionType__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTypeAccess().getTagsAssignment_2_1()); } + (rule__UnionType__TagsAssignment_2_1) + { after(grammarAccess.getUnionTypeAccess().getTagsAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnionTags__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionTags__Group__0__Impl + rule__UnionTags__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTagsAccess().getTagsAssignment_0()); } + (rule__UnionTags__TagsAssignment_0) + { after(grammarAccess.getUnionTagsAccess().getTagsAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionTags__Group__1__Impl + rule__UnionTags__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTagsAccess().getGroup_1()); } + (rule__UnionTags__Group_1__0)* + { after(grammarAccess.getUnionTagsAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionTags__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTagsAccess().getGroup_2()); } + (rule__UnionTags__Group_2__0)? + { after(grammarAccess.getUnionTagsAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnionTags__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionTags__Group_1__0__Impl + rule__UnionTags__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTagsAccess().getCommaKeyword_1_0()); } + ',' + { after(grammarAccess.getUnionTagsAccess().getCommaKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionTags__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTagsAccess().getTagsAssignment_1_1()); } + (rule__UnionTags__TagsAssignment_1_1) + { after(grammarAccess.getUnionTagsAccess().getTagsAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnionTags__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionTags__Group_2__0__Impl + rule__UnionTags__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTagsAccess().getOfKeyword_2_0()); } + 'of' + { after(grammarAccess.getUnionTagsAccess().getOfKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnionTags__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnionTagsAccess().getTypeAssignment_2_1()); } + (rule__UnionTags__TypeAssignment_2_1) + { after(grammarAccess.getUnionTagsAccess().getTypeAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__RecordType__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordType__Group__0__Impl + rule__RecordType__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordTypeAccess().getRecordKeyword_0()); } + 'record' + { after(grammarAccess.getRecordTypeAccess().getRecordKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordType__Group__1__Impl + rule__RecordType__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordTypeAccess().getFieldsAssignment_1()); } + (rule__RecordType__FieldsAssignment_1) + { after(grammarAccess.getRecordTypeAccess().getFieldsAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordType__Group__2__Impl + rule__RecordType__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordTypeAccess().getGroup_2()); } + (rule__RecordType__Group_2__0)* + { after(grammarAccess.getRecordTypeAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordType__Group__3__Impl + rule__RecordType__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordTypeAccess().getEndKeyword_3()); } + 'end' + { after(grammarAccess.getRecordTypeAccess().getEndKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordType__Group__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordTypeAccess().getRecordKeyword_4()); } + ('record')? + { after(grammarAccess.getRecordTypeAccess().getRecordKeyword_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__RecordType__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordType__Group_2__0__Impl + rule__RecordType__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordTypeAccess().getCommaKeyword_2_0()); } + ',' + { after(grammarAccess.getRecordTypeAccess().getCommaKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordType__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordTypeAccess().getFieldsAssignment_2_1()); } + (rule__RecordType__FieldsAssignment_2_1) + { after(grammarAccess.getRecordTypeAccess().getFieldsAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__RecordFields__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordFields__Group__0__Impl + rule__RecordFields__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordFieldsAccess().getFieldsAssignment_0()); } + (rule__RecordFields__FieldsAssignment_0) + { after(grammarAccess.getRecordFieldsAccess().getFieldsAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordFields__Group__1__Impl + rule__RecordFields__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordFieldsAccess().getGroup_1()); } + (rule__RecordFields__Group_1__0)* + { after(grammarAccess.getRecordFieldsAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordFields__Group__2__Impl + rule__RecordFields__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordFieldsAccess().getColonKeyword_2()); } + ':' + { after(grammarAccess.getRecordFieldsAccess().getColonKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordFields__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordFieldsAccess().getTypeAssignment_3()); } + (rule__RecordFields__TypeAssignment_3) + { after(grammarAccess.getRecordFieldsAccess().getTypeAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__RecordFields__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordFields__Group_1__0__Impl + rule__RecordFields__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordFieldsAccess().getCommaKeyword_1_0()); } + ',' + { after(grammarAccess.getRecordFieldsAccess().getCommaKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordFields__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordFieldsAccess().getFieldsAssignment_1_1()); } + (rule__RecordFields__FieldsAssignment_1_1) + { after(grammarAccess.getRecordFieldsAccess().getFieldsAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QueueType__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueType__Group__0__Impl + rule__QueueType__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueType__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueTypeAccess().getQueueKeyword_0()); } + 'queue' + { after(grammarAccess.getQueueTypeAccess().getQueueKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueType__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueType__Group__1__Impl + rule__QueueType__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueType__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueTypeAccess().getSizeAssignment_1()); } + (rule__QueueType__SizeAssignment_1) + { after(grammarAccess.getQueueTypeAccess().getSizeAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueType__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueType__Group__2__Impl + rule__QueueType__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueType__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueTypeAccess().getOfKeyword_2()); } + 'of' + { after(grammarAccess.getQueueTypeAccess().getOfKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueType__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueType__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueType__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueTypeAccess().getTypeAssignment_3()); } + (rule__QueueType__TypeAssignment_3) + { after(grammarAccess.getQueueTypeAccess().getTypeAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ArrayType__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayType__Group__0__Impl + rule__ArrayType__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayType__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayTypeAccess().getArrayKeyword_0()); } + 'array' + { after(grammarAccess.getArrayTypeAccess().getArrayKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayType__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayType__Group__1__Impl + rule__ArrayType__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayType__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayTypeAccess().getSizeAssignment_1()); } + (rule__ArrayType__SizeAssignment_1) + { after(grammarAccess.getArrayTypeAccess().getSizeAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayType__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayType__Group__2__Impl + rule__ArrayType__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayType__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayTypeAccess().getOfKeyword_2()); } + 'of' + { after(grammarAccess.getArrayTypeAccess().getOfKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayType__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayType__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayType__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayTypeAccess().getTypeAssignment_3()); } + (rule__ArrayType__TypeAssignment_3) + { after(grammarAccess.getArrayTypeAccess().getTypeAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ConstantDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConstantDeclaration__Group__0__Impl + rule__ConstantDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConstantDeclarationAccess().getConstKeyword_0()); } + 'const' + { after(grammarAccess.getConstantDeclarationAccess().getConstKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConstantDeclaration__Group__1__Impl + rule__ConstantDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConstantDeclarationAccess().getNameAssignment_1()); } + (rule__ConstantDeclaration__NameAssignment_1) + { after(grammarAccess.getConstantDeclarationAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConstantDeclaration__Group__2__Impl + rule__ConstantDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConstantDeclarationAccess().getColonKeyword_2()); } + ':' + { after(grammarAccess.getConstantDeclarationAccess().getColonKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConstantDeclaration__Group__3__Impl + rule__ConstantDeclaration__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConstantDeclarationAccess().getTypeAssignment_3()); } + (rule__ConstantDeclaration__TypeAssignment_3) + { after(grammarAccess.getConstantDeclarationAccess().getTypeAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConstantDeclaration__Group__4__Impl + rule__ConstantDeclaration__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConstantDeclarationAccess().getIsKeyword_4()); } + 'is' + { after(grammarAccess.getConstantDeclarationAccess().getIsKeyword_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConstantDeclaration__Group__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConstantDeclarationAccess().getValueAssignment_5()); } + (rule__ConstantDeclaration__ValueAssignment_5) + { after(grammarAccess.getConstantDeclarationAccess().getValueAssignment_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__0__Impl + rule__ProcessDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getProcessKeyword_0()); } + 'process' + { after(grammarAccess.getProcessDeclarationAccess().getProcessKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__1__Impl + rule__ProcessDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getNameAssignment_1()); } + (rule__ProcessDeclaration__NameAssignment_1) + { after(grammarAccess.getProcessDeclarationAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__2__Impl + rule__ProcessDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_2()); } + (rule__ProcessDeclaration__Group_2__0)? + { after(grammarAccess.getProcessDeclarationAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__3__Impl + rule__ProcessDeclaration__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_3()); } + (rule__ProcessDeclaration__Group_3__0)? + { after(grammarAccess.getProcessDeclarationAccess().getGroup_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__4__Impl + rule__ProcessDeclaration__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getIsKeyword_4()); } + 'is' + { after(grammarAccess.getProcessDeclarationAccess().getIsKeyword_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__5__Impl + rule__ProcessDeclaration__Group__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_5()); } + (rule__ProcessDeclaration__Group_5__0)? + { after(grammarAccess.getProcessDeclarationAccess().getGroup_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__6__Impl + rule__ProcessDeclaration__Group__7 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_6()); } + (rule__ProcessDeclaration__Group_6__0)? + { after(grammarAccess.getProcessDeclarationAccess().getGroup_6()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__7 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__7__Impl + rule__ProcessDeclaration__Group__8 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__7__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getStatesKeyword_7()); } + 'states' + { after(grammarAccess.getProcessDeclarationAccess().getStatesKeyword_7()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__8 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__8__Impl + rule__ProcessDeclaration__Group__9 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__8__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getStatesAssignment_8()); } + (rule__ProcessDeclaration__StatesAssignment_8) + { after(grammarAccess.getProcessDeclarationAccess().getStatesAssignment_8()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__9 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__9__Impl + rule__ProcessDeclaration__Group__10 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__9__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_9()); } + (rule__ProcessDeclaration__Group_9__0)* + { after(grammarAccess.getProcessDeclarationAccess().getGroup_9()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__10 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__10__Impl + rule__ProcessDeclaration__Group__11 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__10__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_10()); } + (rule__ProcessDeclaration__Group_10__0)? + { after(grammarAccess.getProcessDeclarationAccess().getGroup_10()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__11 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__11__Impl + rule__ProcessDeclaration__Group__12 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__11__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_11()); } + (rule__ProcessDeclaration__Group_11__0)? + { after(grammarAccess.getProcessDeclarationAccess().getGroup_11()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__12 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group__12__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group__12__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + ( + { before(grammarAccess.getProcessDeclarationAccess().getTransitionsAssignment_12()); } + (rule__ProcessDeclaration__TransitionsAssignment_12) + { after(grammarAccess.getProcessDeclarationAccess().getTransitionsAssignment_12()); } + ) + ( + { before(grammarAccess.getProcessDeclarationAccess().getTransitionsAssignment_12()); } + (rule__ProcessDeclaration__TransitionsAssignment_12)* + { after(grammarAccess.getProcessDeclarationAccess().getTransitionsAssignment_12()); } + ) +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_2__0__Impl + rule__ProcessDeclaration__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getLeftSquareBracketKeyword_2_0()); } + '[' + { after(grammarAccess.getProcessDeclarationAccess().getLeftSquareBracketKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_2__1__Impl + rule__ProcessDeclaration__Group_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getPortsAssignment_2_1()); } + (rule__ProcessDeclaration__PortsAssignment_2_1) + { after(grammarAccess.getProcessDeclarationAccess().getPortsAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_2__2__Impl + rule__ProcessDeclaration__Group_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_2_2()); } + (rule__ProcessDeclaration__Group_2_2__0)* + { after(grammarAccess.getProcessDeclarationAccess().getGroup_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getRightSquareBracketKeyword_2_3()); } + ']' + { after(grammarAccess.getProcessDeclarationAccess().getRightSquareBracketKeyword_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_2_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_2_2__0__Impl + rule__ProcessDeclaration__Group_2_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_2_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_2_2_0()); } + ',' + { after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_2_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_2_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_2_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_2_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getPortsAssignment_2_2_1()); } + (rule__ProcessDeclaration__PortsAssignment_2_2_1) + { after(grammarAccess.getProcessDeclarationAccess().getPortsAssignment_2_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_3__0__Impl + rule__ProcessDeclaration__Group_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getLeftParenthesisKeyword_3_0()); } + '(' + { after(grammarAccess.getProcessDeclarationAccess().getLeftParenthesisKeyword_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_3__1__Impl + rule__ProcessDeclaration__Group_3__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getParametersAssignment_3_1()); } + (rule__ProcessDeclaration__ParametersAssignment_3_1) + { after(grammarAccess.getProcessDeclarationAccess().getParametersAssignment_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_3__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_3__2__Impl + rule__ProcessDeclaration__Group_3__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_3__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_3_2()); } + (rule__ProcessDeclaration__Group_3_2__0)* + { after(grammarAccess.getProcessDeclarationAccess().getGroup_3_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_3__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_3__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_3__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getRightParenthesisKeyword_3_3()); } + ')' + { after(grammarAccess.getProcessDeclarationAccess().getRightParenthesisKeyword_3_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_3_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_3_2__0__Impl + rule__ProcessDeclaration__Group_3_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_3_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_3_2_0()); } + ',' + { after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_3_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_3_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_3_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_3_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getParametersAssignment_3_2_1()); } + (rule__ProcessDeclaration__ParametersAssignment_3_2_1) + { after(grammarAccess.getProcessDeclarationAccess().getParametersAssignment_3_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_5__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_5__0__Impl + rule__ProcessDeclaration__Group_5__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_5__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getPortKeyword_5_0()); } + 'port' + { after(grammarAccess.getProcessDeclarationAccess().getPortKeyword_5_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_5__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_5__1__Impl + rule__ProcessDeclaration__Group_5__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_5__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getLocalPortsAssignment_5_1()); } + (rule__ProcessDeclaration__LocalPortsAssignment_5_1) + { after(grammarAccess.getProcessDeclarationAccess().getLocalPortsAssignment_5_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_5__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_5__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_5__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_5_2()); } + (rule__ProcessDeclaration__Group_5_2__0)* + { after(grammarAccess.getProcessDeclarationAccess().getGroup_5_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_5_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_5_2__0__Impl + rule__ProcessDeclaration__Group_5_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_5_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_5_2_0()); } + ',' + { after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_5_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_5_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_5_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_5_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getLocalPortsAssignment_5_2_1()); } + (rule__ProcessDeclaration__LocalPortsAssignment_5_2_1) + { after(grammarAccess.getProcessDeclarationAccess().getLocalPortsAssignment_5_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_6__0__Impl + rule__ProcessDeclaration__Group_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getPriorityKeyword_6_0()); } + 'priority' + { after(grammarAccess.getProcessDeclarationAccess().getPriorityKeyword_6_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_6__1__Impl + rule__ProcessDeclaration__Group_6__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getPrioritiesAssignment_6_1()); } + (rule__ProcessDeclaration__PrioritiesAssignment_6_1) + { after(grammarAccess.getProcessDeclarationAccess().getPrioritiesAssignment_6_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_6__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_6__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_6__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_6_2()); } + (rule__ProcessDeclaration__Group_6_2__0)* + { after(grammarAccess.getProcessDeclarationAccess().getGroup_6_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_6_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_6_2__0__Impl + rule__ProcessDeclaration__Group_6_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_6_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_6_2_0()); } + ',' + { after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_6_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_6_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_6_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_6_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getPrioritiesAssignment_6_2_1()); } + (rule__ProcessDeclaration__PrioritiesAssignment_6_2_1) + { after(grammarAccess.getProcessDeclarationAccess().getPrioritiesAssignment_6_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_9__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_9__0__Impl + rule__ProcessDeclaration__Group_9__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_9__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_9_0()); } + ',' + { after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_9_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_9__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_9__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_9__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getStatesAssignment_9_1()); } + (rule__ProcessDeclaration__StatesAssignment_9_1) + { after(grammarAccess.getProcessDeclarationAccess().getStatesAssignment_9_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_10__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_10__0__Impl + rule__ProcessDeclaration__Group_10__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_10__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getVarKeyword_10_0()); } + 'var' + { after(grammarAccess.getProcessDeclarationAccess().getVarKeyword_10_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_10__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_10__1__Impl + rule__ProcessDeclaration__Group_10__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_10__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getVariablesAssignment_10_1()); } + (rule__ProcessDeclaration__VariablesAssignment_10_1) + { after(grammarAccess.getProcessDeclarationAccess().getVariablesAssignment_10_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_10__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_10__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_10__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getGroup_10_2()); } + (rule__ProcessDeclaration__Group_10_2__0)* + { after(grammarAccess.getProcessDeclarationAccess().getGroup_10_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_10_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_10_2__0__Impl + rule__ProcessDeclaration__Group_10_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_10_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_10_2_0()); } + ',' + { after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_10_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_10_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_10_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_10_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getVariablesAssignment_10_2_1()); } + (rule__ProcessDeclaration__VariablesAssignment_10_2_1) + { after(grammarAccess.getProcessDeclarationAccess().getVariablesAssignment_10_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ProcessDeclaration__Group_11__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_11__0__Impl + rule__ProcessDeclaration__Group_11__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_11__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getInitKeyword_11_0()); } + 'init' + { after(grammarAccess.getProcessDeclarationAccess().getInitKeyword_11_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_11__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ProcessDeclaration__Group_11__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__Group_11__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProcessDeclarationAccess().getPreludeAssignment_11_1()); } + (rule__ProcessDeclaration__PreludeAssignment_11_1) + { after(grammarAccess.getProcessDeclarationAccess().getPreludeAssignment_11_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__TransitionSource__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__TransitionSource__Group__0__Impl + rule__TransitionSource__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__TransitionSource__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTransitionSourceAccess().getFromKeyword_0()); } + 'from' + { after(grammarAccess.getTransitionSourceAccess().getFromKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__TransitionSource__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__TransitionSource__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__TransitionSource__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTransitionSourceAccess().getOriginAssignment_1()); } + (rule__TransitionSource__OriginAssignment_1) + { after(grammarAccess.getTransitionSourceAccess().getOriginAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Transition__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Transition__Group__0__Impl + rule__Transition__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Transition__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTransitionAccess().getSourceAssignment_0()); } + (rule__Transition__SourceAssignment_0) + { after(grammarAccess.getTransitionAccess().getSourceAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Transition__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Transition__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Transition__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTransitionAccess().getActionAssignment_1()); } + (rule__Transition__ActionAssignment_1) + { after(grammarAccess.getTransitionAccess().getActionAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group__0__Impl + rule__ComponentDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getComponentKeyword_0()); } + 'component' + { after(grammarAccess.getComponentDeclarationAccess().getComponentKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group__1__Impl + rule__ComponentDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getNameAssignment_1()); } + (rule__ComponentDeclaration__NameAssignment_1) + { after(grammarAccess.getComponentDeclarationAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group__2__Impl + rule__ComponentDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_2()); } + (rule__ComponentDeclaration__Group_2__0)? + { after(grammarAccess.getComponentDeclarationAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group__3__Impl + rule__ComponentDeclaration__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_3()); } + (rule__ComponentDeclaration__Group_3__0)? + { after(grammarAccess.getComponentDeclarationAccess().getGroup_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group__4__Impl + rule__ComponentDeclaration__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getIsKeyword_4()); } + 'is' + { after(grammarAccess.getComponentDeclarationAccess().getIsKeyword_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group__5__Impl + rule__ComponentDeclaration__Group__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_5()); } + (rule__ComponentDeclaration__Group_5__0)? + { after(grammarAccess.getComponentDeclarationAccess().getGroup_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group__6__Impl + rule__ComponentDeclaration__Group__7 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_6()); } + (rule__ComponentDeclaration__Group_6__0)? + { after(grammarAccess.getComponentDeclarationAccess().getGroup_6()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__7 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group__7__Impl + rule__ComponentDeclaration__Group__8 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__7__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_7()); } + (rule__ComponentDeclaration__Group_7__0)? + { after(grammarAccess.getComponentDeclarationAccess().getGroup_7()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__8 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group__8__Impl + rule__ComponentDeclaration__Group__9 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__8__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_8()); } + (rule__ComponentDeclaration__Group_8__0)? + { after(grammarAccess.getComponentDeclarationAccess().getGroup_8()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__9 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group__9__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group__9__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getBodyAssignment_9()); } + (rule__ComponentDeclaration__BodyAssignment_9) + { after(grammarAccess.getComponentDeclarationAccess().getBodyAssignment_9()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_2__0__Impl + rule__ComponentDeclaration__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getLeftSquareBracketKeyword_2_0()); } + '[' + { after(grammarAccess.getComponentDeclarationAccess().getLeftSquareBracketKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_2__1__Impl + rule__ComponentDeclaration__Group_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getPortsAssignment_2_1()); } + (rule__ComponentDeclaration__PortsAssignment_2_1) + { after(grammarAccess.getComponentDeclarationAccess().getPortsAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_2__2__Impl + rule__ComponentDeclaration__Group_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_2_2()); } + (rule__ComponentDeclaration__Group_2_2__0)* + { after(grammarAccess.getComponentDeclarationAccess().getGroup_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getRightSquareBracketKeyword_2_3()); } + ']' + { after(grammarAccess.getComponentDeclarationAccess().getRightSquareBracketKeyword_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_2_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_2_2__0__Impl + rule__ComponentDeclaration__Group_2_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_2_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_2_2_0()); } + ',' + { after(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_2_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_2_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_2_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_2_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getPortsAssignment_2_2_1()); } + (rule__ComponentDeclaration__PortsAssignment_2_2_1) + { after(grammarAccess.getComponentDeclarationAccess().getPortsAssignment_2_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_3__0__Impl + rule__ComponentDeclaration__Group_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getLeftParenthesisKeyword_3_0()); } + '(' + { after(grammarAccess.getComponentDeclarationAccess().getLeftParenthesisKeyword_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_3__1__Impl + rule__ComponentDeclaration__Group_3__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getParametersAssignment_3_1()); } + (rule__ComponentDeclaration__ParametersAssignment_3_1) + { after(grammarAccess.getComponentDeclarationAccess().getParametersAssignment_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_3__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_3__2__Impl + rule__ComponentDeclaration__Group_3__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_3__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_3_2()); } + (rule__ComponentDeclaration__Group_3_2__0)* + { after(grammarAccess.getComponentDeclarationAccess().getGroup_3_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_3__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_3__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_3__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getRightParenthesisKeyword_3_3()); } + ')' + { after(grammarAccess.getComponentDeclarationAccess().getRightParenthesisKeyword_3_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_3_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_3_2__0__Impl + rule__ComponentDeclaration__Group_3_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_3_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_3_2_0()); } + ',' + { after(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_3_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_3_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_3_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_3_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getParametersAssignment_3_2_1()); } + (rule__ComponentDeclaration__ParametersAssignment_3_2_1) + { after(grammarAccess.getComponentDeclarationAccess().getParametersAssignment_3_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_5__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_5__0__Impl + rule__ComponentDeclaration__Group_5__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_5__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getVarKeyword_5_0()); } + 'var' + { after(grammarAccess.getComponentDeclarationAccess().getVarKeyword_5_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_5__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_5__1__Impl + rule__ComponentDeclaration__Group_5__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_5__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getVariablesAssignment_5_1()); } + (rule__ComponentDeclaration__VariablesAssignment_5_1) + { after(grammarAccess.getComponentDeclarationAccess().getVariablesAssignment_5_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_5__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_5__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_5__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_5_2()); } + (rule__ComponentDeclaration__Group_5_2__0)* + { after(grammarAccess.getComponentDeclarationAccess().getGroup_5_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_5_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_5_2__0__Impl + rule__ComponentDeclaration__Group_5_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_5_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_5_2_0()); } + ',' + { after(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_5_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_5_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_5_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_5_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getVariablesAssignment_5_2_1()); } + (rule__ComponentDeclaration__VariablesAssignment_5_2_1) + { after(grammarAccess.getComponentDeclarationAccess().getVariablesAssignment_5_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_6__0__Impl + rule__ComponentDeclaration__Group_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getPortKeyword_6_0()); } + 'port' + { after(grammarAccess.getComponentDeclarationAccess().getPortKeyword_6_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_6__1__Impl + rule__ComponentDeclaration__Group_6__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getLocalPortsAssignment_6_1()); } + (rule__ComponentDeclaration__LocalPortsAssignment_6_1) + { after(grammarAccess.getComponentDeclarationAccess().getLocalPortsAssignment_6_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_6__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_6__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_6__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_6_2()); } + (rule__ComponentDeclaration__Group_6_2__0)* + { after(grammarAccess.getComponentDeclarationAccess().getGroup_6_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_6_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_6_2__0__Impl + rule__ComponentDeclaration__Group_6_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_6_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_6_2_0()); } + ',' + { after(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_6_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_6_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_6_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_6_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getLocalPortsAssignment_6_2_1()); } + (rule__ComponentDeclaration__LocalPortsAssignment_6_2_1) + { after(grammarAccess.getComponentDeclarationAccess().getLocalPortsAssignment_6_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_7__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_7__0__Impl + rule__ComponentDeclaration__Group_7__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_7__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getPriorityKeyword_7_0()); } + 'priority' + { after(grammarAccess.getComponentDeclarationAccess().getPriorityKeyword_7_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_7__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_7__1__Impl + rule__ComponentDeclaration__Group_7__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_7__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getPrioritiesAssignment_7_1()); } + (rule__ComponentDeclaration__PrioritiesAssignment_7_1) + { after(grammarAccess.getComponentDeclarationAccess().getPrioritiesAssignment_7_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_7__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_7__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_7__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getGroup_7_2()); } + (rule__ComponentDeclaration__Group_7_2__0)* + { after(grammarAccess.getComponentDeclarationAccess().getGroup_7_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_7_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_7_2__0__Impl + rule__ComponentDeclaration__Group_7_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_7_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_7_2_0()); } + ',' + { after(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_7_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_7_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_7_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_7_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getPrioritiesAssignment_7_2_1()); } + (rule__ComponentDeclaration__PrioritiesAssignment_7_2_1) + { after(grammarAccess.getComponentDeclarationAccess().getPrioritiesAssignment_7_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentDeclaration__Group_8__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_8__0__Impl + rule__ComponentDeclaration__Group_8__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_8__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getInitKeyword_8_0()); } + 'init' + { after(grammarAccess.getComponentDeclarationAccess().getInitKeyword_8_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_8__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentDeclaration__Group_8__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__Group_8__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentDeclarationAccess().getPreludeAssignment_8_1()); } + (rule__ComponentDeclaration__PreludeAssignment_8_1) + { after(grammarAccess.getComponentDeclarationAccess().getPreludeAssignment_8_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PortsDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PortsDeclaration__Group__0__Impl + rule__PortsDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPortsDeclarationAccess().getPortsAssignment_0()); } + (rule__PortsDeclaration__PortsAssignment_0) + { after(grammarAccess.getPortsDeclarationAccess().getPortsAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PortsDeclaration__Group__1__Impl + rule__PortsDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPortsDeclarationAccess().getGroup_1()); } + (rule__PortsDeclaration__Group_1__0)* + { after(grammarAccess.getPortsDeclarationAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PortsDeclaration__Group__2__Impl + rule__PortsDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPortsDeclarationAccess().getColonKeyword_2()); } + ':' + { after(grammarAccess.getPortsDeclarationAccess().getColonKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PortsDeclaration__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPortsDeclarationAccess().getTypeAssignment_3()); } + (rule__PortsDeclaration__TypeAssignment_3) + { after(grammarAccess.getPortsDeclarationAccess().getTypeAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PortsDeclaration__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PortsDeclaration__Group_1__0__Impl + rule__PortsDeclaration__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPortsDeclarationAccess().getCommaKeyword_1_0()); } + ',' + { after(grammarAccess.getPortsDeclarationAccess().getCommaKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PortsDeclaration__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPortsDeclarationAccess().getPortsAssignment_1_1()); } + (rule__PortsDeclaration__PortsAssignment_1_1) + { after(grammarAccess.getPortsDeclarationAccess().getPortsAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LocalPortsDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group__0__Impl + rule__LocalPortsDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getPortsAssignment_0()); } + (rule__LocalPortsDeclaration__PortsAssignment_0) + { after(grammarAccess.getLocalPortsDeclarationAccess().getPortsAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group__1__Impl + rule__LocalPortsDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getGroup_1()); } + (rule__LocalPortsDeclaration__Group_1__0)* + { after(grammarAccess.getLocalPortsDeclarationAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group__2__Impl + rule__LocalPortsDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getColonKeyword_2()); } + ':' + { after(grammarAccess.getLocalPortsDeclarationAccess().getColonKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group__3__Impl + rule__LocalPortsDeclaration__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getTypeAssignment_3()); } + (rule__LocalPortsDeclaration__TypeAssignment_3) + { after(grammarAccess.getLocalPortsDeclarationAccess().getTypeAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getGroup_4()); } + (rule__LocalPortsDeclaration__Group_4__0)? + { after(grammarAccess.getLocalPortsDeclarationAccess().getGroup_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LocalPortsDeclaration__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group_1__0__Impl + rule__LocalPortsDeclaration__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_1_0()); } + ',' + { after(grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getPortsAssignment_1_1()); } + (rule__LocalPortsDeclaration__PortsAssignment_1_1) + { after(grammarAccess.getLocalPortsDeclarationAccess().getPortsAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LocalPortsDeclaration__Group_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group_4__0__Impl + rule__LocalPortsDeclaration__Group_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getInKeyword_4_0()); } + 'in' + { after(grammarAccess.getLocalPortsDeclarationAccess().getInKeyword_4_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group_4__1__Impl + rule__LocalPortsDeclaration__Group_4__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getLeftAssignment_4_1()); } + (rule__LocalPortsDeclaration__LeftAssignment_4_1) + { after(grammarAccess.getLocalPortsDeclarationAccess().getLeftAssignment_4_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group_4__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group_4__2__Impl + rule__LocalPortsDeclaration__Group_4__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group_4__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_4_2()); } + ',' + { after(grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_4_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group_4__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__LocalPortsDeclaration__Group_4__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__Group_4__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLocalPortsDeclarationAccess().getRightAssignment_4_3()); } + (rule__LocalPortsDeclaration__RightAssignment_4_3) + { after(grammarAccess.getLocalPortsDeclarationAccess().getRightAssignment_4_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ParametersDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParametersDeclaration__Group__0__Impl + rule__ParametersDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParametersDeclarationAccess().getParametersAssignment_0()); } + (rule__ParametersDeclaration__ParametersAssignment_0) + { after(grammarAccess.getParametersDeclarationAccess().getParametersAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParametersDeclaration__Group__1__Impl + rule__ParametersDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParametersDeclarationAccess().getGroup_1()); } + (rule__ParametersDeclaration__Group_1__0)* + { after(grammarAccess.getParametersDeclarationAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParametersDeclaration__Group__2__Impl + rule__ParametersDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParametersDeclarationAccess().getColonKeyword_2()); } + ':' + { after(grammarAccess.getParametersDeclarationAccess().getColonKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParametersDeclaration__Group__3__Impl + rule__ParametersDeclaration__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParametersDeclarationAccess().getReadAssignment_3()); } + (rule__ParametersDeclaration__ReadAssignment_3)? + { after(grammarAccess.getParametersDeclarationAccess().getReadAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParametersDeclaration__Group__4__Impl + rule__ParametersDeclaration__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParametersDeclarationAccess().getWriteAssignment_4()); } + (rule__ParametersDeclaration__WriteAssignment_4)? + { after(grammarAccess.getParametersDeclarationAccess().getWriteAssignment_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParametersDeclaration__Group__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParametersDeclarationAccess().getTypeAssignment_5()); } + (rule__ParametersDeclaration__TypeAssignment_5) + { after(grammarAccess.getParametersDeclarationAccess().getTypeAssignment_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ParametersDeclaration__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParametersDeclaration__Group_1__0__Impl + rule__ParametersDeclaration__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParametersDeclarationAccess().getCommaKeyword_1_0()); } + ',' + { after(grammarAccess.getParametersDeclarationAccess().getCommaKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParametersDeclaration__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParametersDeclarationAccess().getParametersAssignment_1_1()); } + (rule__ParametersDeclaration__ParametersAssignment_1_1) + { after(grammarAccess.getParametersDeclarationAccess().getParametersAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ParameterDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParameterDeclaration__Group__0__Impl + rule__ParameterDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParameterDeclarationAccess().getGroup_0()); } + (rule__ParameterDeclaration__Group_0__0)? + { after(grammarAccess.getParameterDeclarationAccess().getGroup_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParameterDeclaration__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParameterDeclarationAccess().getNameAssignment_1()); } + (rule__ParameterDeclaration__NameAssignment_1) + { after(grammarAccess.getParameterDeclarationAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ParameterDeclaration__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParameterDeclaration__Group_0__0__Impl + rule__ParameterDeclaration__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParameterDeclarationAccess().getReferenceAssignment_0_0()); } + (rule__ParameterDeclaration__ReferenceAssignment_0_0) + { after(grammarAccess.getParameterDeclarationAccess().getReferenceAssignment_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParameterDeclaration__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParameterDeclarationAccess().getGroup_0_1()); } + (rule__ParameterDeclaration__Group_0_1__0)? + { after(grammarAccess.getParameterDeclarationAccess().getGroup_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ParameterDeclaration__Group_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParameterDeclaration__Group_0_1__0__Impl + rule__ParameterDeclaration__Group_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParameterDeclarationAccess().getArrayAssignment_0_1_0()); } + (rule__ParameterDeclaration__ArrayAssignment_0_1_0) + { after(grammarAccess.getParameterDeclarationAccess().getArrayAssignment_0_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParameterDeclaration__Group_0_1__1__Impl + rule__ParameterDeclaration__Group_0_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParameterDeclarationAccess().getSizeAssignment_0_1_1()); } + (rule__ParameterDeclaration__SizeAssignment_0_1_1) + { after(grammarAccess.getParameterDeclarationAccess().getSizeAssignment_0_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group_0_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ParameterDeclaration__Group_0_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__Group_0_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getParameterDeclarationAccess().getRightSquareBracketKeyword_0_1_2()); } + ']' + { after(grammarAccess.getParameterDeclarationAccess().getRightSquareBracketKeyword_0_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VariablesDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariablesDeclaration__Group__0__Impl + rule__VariablesDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariablesDeclarationAccess().getVariablesAssignment_0()); } + (rule__VariablesDeclaration__VariablesAssignment_0) + { after(grammarAccess.getVariablesDeclarationAccess().getVariablesAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariablesDeclaration__Group__1__Impl + rule__VariablesDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariablesDeclarationAccess().getGroup_1()); } + (rule__VariablesDeclaration__Group_1__0)* + { after(grammarAccess.getVariablesDeclarationAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariablesDeclaration__Group__2__Impl + rule__VariablesDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariablesDeclarationAccess().getColonKeyword_2()); } + ':' + { after(grammarAccess.getVariablesDeclarationAccess().getColonKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariablesDeclaration__Group__3__Impl + rule__VariablesDeclaration__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariablesDeclarationAccess().getTypeAssignment_3()); } + (rule__VariablesDeclaration__TypeAssignment_3) + { after(grammarAccess.getVariablesDeclarationAccess().getTypeAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariablesDeclaration__Group__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariablesDeclarationAccess().getGroup_4()); } + (rule__VariablesDeclaration__Group_4__0)? + { after(grammarAccess.getVariablesDeclarationAccess().getGroup_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VariablesDeclaration__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariablesDeclaration__Group_1__0__Impl + rule__VariablesDeclaration__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariablesDeclarationAccess().getCommaKeyword_1_0()); } + ',' + { after(grammarAccess.getVariablesDeclarationAccess().getCommaKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariablesDeclaration__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariablesDeclarationAccess().getVariablesAssignment_1_1()); } + (rule__VariablesDeclaration__VariablesAssignment_1_1) + { after(grammarAccess.getVariablesDeclarationAccess().getVariablesAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VariablesDeclaration__Group_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariablesDeclaration__Group_4__0__Impl + rule__VariablesDeclaration__Group_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariablesDeclarationAccess().getColonEqualsSignKeyword_4_0()); } + ':=' + { after(grammarAccess.getVariablesDeclarationAccess().getColonEqualsSignKeyword_4_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariablesDeclaration__Group_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__Group_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariablesDeclarationAccess().getValueAssignment_4_1()); } + (rule__VariablesDeclaration__ValueAssignment_4_1) + { after(grammarAccess.getVariablesDeclarationAccess().getValueAssignment_4_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PriorityDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PriorityDeclaration__Group__0__Impl + rule__PriorityDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPriorityDeclarationAccess().getGroupsAssignment_0()); } + (rule__PriorityDeclaration__GroupsAssignment_0) + { after(grammarAccess.getPriorityDeclarationAccess().getGroupsAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PriorityDeclaration__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + ( + { before(grammarAccess.getPriorityDeclarationAccess().getGroup_1()); } + (rule__PriorityDeclaration__Group_1__0) + { after(grammarAccess.getPriorityDeclarationAccess().getGroup_1()); } + ) + ( + { before(grammarAccess.getPriorityDeclarationAccess().getGroup_1()); } + (rule__PriorityDeclaration__Group_1__0)* + { after(grammarAccess.getPriorityDeclarationAccess().getGroup_1()); } + ) +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PriorityDeclaration__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PriorityDeclaration__Group_1__0__Impl + rule__PriorityDeclaration__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityDeclaration__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPriorityDeclarationAccess().getGreaterThanSignKeyword_1_0()); } + '>' + { after(grammarAccess.getPriorityDeclarationAccess().getGreaterThanSignKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityDeclaration__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PriorityDeclaration__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityDeclaration__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPriorityDeclarationAccess().getGroupsAssignment_1_1()); } + (rule__PriorityDeclaration__GroupsAssignment_1_1) + { after(grammarAccess.getPriorityDeclarationAccess().getGroupsAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PriorityGroup__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PriorityGroup__Group__0__Impl + rule__PriorityGroup__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityGroup__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPriorityGroupAccess().getPortsAssignment_0()); } + (rule__PriorityGroup__PortsAssignment_0) + { after(grammarAccess.getPriorityGroupAccess().getPortsAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityGroup__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PriorityGroup__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityGroup__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPriorityGroupAccess().getGroup_1()); } + (rule__PriorityGroup__Group_1__0)* + { after(grammarAccess.getPriorityGroupAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PriorityGroup__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PriorityGroup__Group_1__0__Impl + rule__PriorityGroup__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityGroup__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPriorityGroupAccess().getVerticalLineKeyword_1_0()); } + '|' + { after(grammarAccess.getPriorityGroupAccess().getVerticalLineKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityGroup__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PriorityGroup__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityGroup__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPriorityGroupAccess().getPortsAssignment_1_1()); } + (rule__PriorityGroup__PortsAssignment_1_1) + { after(grammarAccess.getPriorityGroupAccess().getPortsAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnlessStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnlessStatement__Group__0__Impl + rule__UnlessStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnlessStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnlessStatementAccess().getStatementChoiceParserRuleCall_0()); } + ruleStatementChoice + { after(grammarAccess.getUnlessStatementAccess().getStatementChoiceParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnlessStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnlessStatement__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnlessStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnlessStatementAccess().getGroup_1()); } + (rule__UnlessStatement__Group_1__0)* + { after(grammarAccess.getUnlessStatementAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnlessStatement__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnlessStatement__Group_1__0__Impl + rule__UnlessStatement__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnlessStatement__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnlessStatementAccess().getUnlessStatementFollowersAction_1_0()); } + () + { after(grammarAccess.getUnlessStatementAccess().getUnlessStatementFollowersAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnlessStatement__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnlessStatement__Group_1__1__Impl + rule__UnlessStatement__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnlessStatement__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnlessStatementAccess().getUnlessKeyword_1_1()); } + 'unless' + { after(grammarAccess.getUnlessStatementAccess().getUnlessKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnlessStatement__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnlessStatement__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnlessStatement__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnlessStatementAccess().getFollowersAssignment_1_2()); } + (rule__UnlessStatement__FollowersAssignment_1_2) + { after(grammarAccess.getUnlessStatementAccess().getFollowersAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__StatementChoice__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__StatementChoice__Group__0__Impl + rule__StatementChoice__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementChoice__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStatementChoiceAccess().getStatementSequenceParserRuleCall_0()); } + ruleStatementSequence + { after(grammarAccess.getStatementChoiceAccess().getStatementSequenceParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementChoice__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__StatementChoice__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementChoice__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStatementChoiceAccess().getGroup_1()); } + (rule__StatementChoice__Group_1__0)* + { after(grammarAccess.getStatementChoiceAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__StatementChoice__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__StatementChoice__Group_1__0__Impl + rule__StatementChoice__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementChoice__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStatementChoiceAccess().getStatementChoiceChoicesAction_1_0()); } + () + { after(grammarAccess.getStatementChoiceAccess().getStatementChoiceChoicesAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementChoice__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__StatementChoice__Group_1__1__Impl + rule__StatementChoice__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementChoice__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStatementChoiceAccess().getLeftSquareBracketRightSquareBracketKeyword_1_1()); } + '[]' + { after(grammarAccess.getStatementChoiceAccess().getLeftSquareBracketRightSquareBracketKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementChoice__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__StatementChoice__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementChoice__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStatementChoiceAccess().getChoicesAssignment_1_2()); } + (rule__StatementChoice__ChoicesAssignment_1_2) + { after(grammarAccess.getStatementChoiceAccess().getChoicesAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__StatementSequence__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__StatementSequence__Group__0__Impl + rule__StatementSequence__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementSequence__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStatementSequenceAccess().getStatementParserRuleCall_0()); } + ruleStatement + { after(grammarAccess.getStatementSequenceAccess().getStatementParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementSequence__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__StatementSequence__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementSequence__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStatementSequenceAccess().getGroup_1()); } + (rule__StatementSequence__Group_1__0)* + { after(grammarAccess.getStatementSequenceAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__StatementSequence__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__StatementSequence__Group_1__0__Impl + rule__StatementSequence__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementSequence__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStatementSequenceAccess().getStatementSequenceStatementsAction_1_0()); } + () + { after(grammarAccess.getStatementSequenceAccess().getStatementSequenceStatementsAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementSequence__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__StatementSequence__Group_1__1__Impl + rule__StatementSequence__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementSequence__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStatementSequenceAccess().getSemicolonKeyword_1_1()); } + ';' + { after(grammarAccess.getStatementSequenceAccess().getSemicolonKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementSequence__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__StatementSequence__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementSequence__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStatementSequenceAccess().getStatementsAssignment_1_2()); } + (rule__StatementSequence__StatementsAssignment_1_2) + { after(grammarAccess.getStatementSequenceAccess().getStatementsAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__BlockStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__BlockStatement__Group__0__Impl + rule__BlockStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__BlockStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBlockStatementAccess().getBeginKeyword_0()); } + 'begin' + { after(grammarAccess.getBlockStatementAccess().getBeginKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__BlockStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__BlockStatement__Group__1__Impl + rule__BlockStatement__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__BlockStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBlockStatementAccess().getBodyAssignment_1()); } + (rule__BlockStatement__BodyAssignment_1) + { after(grammarAccess.getBlockStatementAccess().getBodyAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__BlockStatement__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__BlockStatement__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__BlockStatement__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBlockStatementAccess().getEndKeyword_2()); } + 'end' + { after(grammarAccess.getBlockStatementAccess().getEndKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ReturnStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ReturnStatement__Group__0__Impl + rule__ReturnStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ReturnStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getReturnStatementAccess().getReturnKeyword_0()); } + 'return' + { after(grammarAccess.getReturnStatementAccess().getReturnKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ReturnStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ReturnStatement__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ReturnStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getReturnStatementAccess().getExpressionAssignment_1()); } + (rule__ReturnStatement__ExpressionAssignment_1) + { after(grammarAccess.getReturnStatementAccess().getExpressionAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__NullStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__NullStatement__Group__0__Impl + rule__NullStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__NullStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getNullStatementAccess().getNullStatementAction_0()); } + () + { after(grammarAccess.getNullStatementAccess().getNullStatementAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__NullStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__NullStatement__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__NullStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getNullStatementAccess().getNullKeyword_1()); } + 'null' + { after(grammarAccess.getNullStatementAccess().getNullKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__TaggedStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__TaggedStatement__Group__0__Impl + rule__TaggedStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__TaggedStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTaggedStatementAccess().getNumberSignKeyword_0()); } + '#' + { after(grammarAccess.getTaggedStatementAccess().getNumberSignKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__TaggedStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__TaggedStatement__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__TaggedStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTaggedStatementAccess().getNameAssignment_1()); } + (rule__TaggedStatement__NameAssignment_1) + { after(grammarAccess.getTaggedStatementAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group__0__Impl + rule__PatternStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getPatternParserRuleCall_0()); } + rulePattern + { after(grammarAccess.getPatternStatementAccess().getPatternParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getAlternatives_1()); } + (rule__PatternStatement__Alternatives_1)? + { after(grammarAccess.getPatternStatementAccess().getAlternatives_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0__0__Impl + rule__PatternStatement__Group_1_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_0()); } + ',' + { after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0__1__Impl + rule__PatternStatement__Group_1_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_0_1()); } + () + { after(grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0__2__Impl + rule__PatternStatement__Group_1_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_0_2()); } + (rule__PatternStatement__PatternsAssignment_1_0_2) + { after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0__3__Impl + rule__PatternStatement__Group_1_0__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_0_3()); } + (rule__PatternStatement__Group_1_0_3__0)* + { after(grammarAccess.getPatternStatementAccess().getGroup_1_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0__4__Impl + rule__PatternStatement__Group_1_0__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_0_4()); } + ':=' + { after(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_0_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0__5__Impl + rule__PatternStatement__Group_1_0__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_0_5()); } + (rule__PatternStatement__ValuesAssignment_1_0_5) + { after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_0_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0__6__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_0_6()); } + (rule__PatternStatement__Group_1_0_6__0)* + { after(grammarAccess.getPatternStatementAccess().getGroup_1_0_6()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_0_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0_3__0__Impl + rule__PatternStatement__Group_1_0_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_3_0()); } + ',' + { after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_0_3_1()); } + (rule__PatternStatement__PatternsAssignment_1_0_3_1) + { after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_0_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_0_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0_6__0__Impl + rule__PatternStatement__Group_1_0_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_6_0()); } + ',' + { after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_6_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_0_6__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_0_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_0_6_1()); } + (rule__PatternStatement__ValuesAssignment_1_0_6_1) + { after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_0_6_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_1__0__Impl + rule__PatternStatement__Group_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_1_0()); } + ':=' + { after(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_1__1__Impl + rule__PatternStatement__Group_1_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_1_1()); } + () + { after(grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_1_2()); } + (rule__PatternStatement__Group_1_1_2__0) + { after(grammarAccess.getPatternStatementAccess().getGroup_1_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_1_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_1_2__0__Impl + rule__PatternStatement__Group_1_1_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_1_2_0()); } + (rule__PatternStatement__ValuesAssignment_1_1_2_0) + { after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_1_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_1_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_1_2_1()); } + (rule__PatternStatement__Group_1_1_2_1__0)* + { after(grammarAccess.getPatternStatementAccess().getGroup_1_1_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_1_2_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_1_2_1__0__Impl + rule__PatternStatement__Group_1_1_2_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1_2_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_1_2_1_0()); } + ',' + { after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_1_2_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1_2_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_1_2_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_1_2_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_1_2_1_1()); } + (rule__PatternStatement__ValuesAssignment_1_1_2_1_1) + { after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_1_2_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2__0__Impl + rule__PatternStatement__Group_1_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_0()); } + ',' + { after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2__1__Impl + rule__PatternStatement__Group_1_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_2_1()); } + () + { after(grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2__2__Impl + rule__PatternStatement__Group_1_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_2_2()); } + (rule__PatternStatement__PatternsAssignment_1_2_2) + { after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2__3__Impl + rule__PatternStatement__Group_1_2__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_2_3()); } + (rule__PatternStatement__Group_1_2_3__0)* + { after(grammarAccess.getPatternStatementAccess().getGroup_1_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2__4__Impl + rule__PatternStatement__Group_1_2__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_2_4()); } + ':=' + { after(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_2_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2__5__Impl + rule__PatternStatement__Group_1_2__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getAnyKeyword_1_2_5()); } + 'any' + { after(grammarAccess.getPatternStatementAccess().getAnyKeyword_1_2_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2__6__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_2_6()); } + (rule__PatternStatement__Group_1_2_6__0)? + { after(grammarAccess.getPatternStatementAccess().getGroup_1_2_6()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_2_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2_3__0__Impl + rule__PatternStatement__Group_1_2_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_3_0()); } + ',' + { after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_2_3_1()); } + (rule__PatternStatement__PatternsAssignment_1_2_3_1) + { after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_2_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_2_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2_6__0__Impl + rule__PatternStatement__Group_1_2_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_2_6_0()); } + 'where' + { after(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_2_6_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_2_6__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_2_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getExpAssignment_1_2_6_1()); } + (rule__PatternStatement__ExpAssignment_1_2_6_1) + { after(grammarAccess.getPatternStatementAccess().getExpAssignment_1_2_6_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_3__0__Impl + rule__PatternStatement__Group_1_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_3_0()); } + ':=' + { after(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_3__1__Impl + rule__PatternStatement__Group_1_3__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_3_1()); } + () + { after(grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_3__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_3__2__Impl + rule__PatternStatement__Group_1_3__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_3__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getAnyKeyword_1_3_2()); } + 'any' + { after(grammarAccess.getPatternStatementAccess().getAnyKeyword_1_3_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_3__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_3__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_3__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_3_3()); } + (rule__PatternStatement__Group_1_3_3__0)? + { after(grammarAccess.getPatternStatementAccess().getGroup_1_3_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_3_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_3_3__0__Impl + rule__PatternStatement__Group_1_3_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_3_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_3_3_0()); } + 'where' + { after(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_3_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_3_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_3_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_3_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getExpAssignment_1_3_3_1()); } + (rule__PatternStatement__ExpAssignment_1_3_3_1) + { after(grammarAccess.getPatternStatementAccess().getExpAssignment_1_3_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_4__0__Impl + rule__PatternStatement__Group_1_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getExclamationMarkKeyword_1_4_0()); } + '!' + { after(grammarAccess.getPatternStatementAccess().getExclamationMarkKeyword_1_4_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_4__1__Impl + rule__PatternStatement__Group_1_4__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getSendStatementPortAction_1_4_1()); } + () + { after(grammarAccess.getPatternStatementAccess().getSendStatementPortAction_1_4_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_4__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_4__2__Impl + rule__PatternStatement__Group_1_4__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_4__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_4_2()); } + (rule__PatternStatement__ValuesAssignment_1_4_2) + { after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_4_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_4__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_4__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_4__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_4_3()); } + (rule__PatternStatement__Group_1_4_3__0)* + { after(grammarAccess.getPatternStatementAccess().getGroup_1_4_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_4_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_4_3__0__Impl + rule__PatternStatement__Group_1_4_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_4_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_4_3_0()); } + ',' + { after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_4_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_4_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_4_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_4_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_4_3_1()); } + (rule__PatternStatement__ValuesAssignment_1_4_3_1) + { after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_4_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_5__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_5__0__Impl + rule__PatternStatement__Group_1_5__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getQuestionMarkKeyword_1_5_0()); } + '?' + { after(grammarAccess.getPatternStatementAccess().getQuestionMarkKeyword_1_5_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_5__1__Impl + rule__PatternStatement__Group_1_5__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getReceiveStatementPortAction_1_5_1()); } + () + { after(grammarAccess.getPatternStatementAccess().getReceiveStatementPortAction_1_5_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_5__2__Impl + rule__PatternStatement__Group_1_5__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_5_2()); } + (rule__PatternStatement__PatternsAssignment_1_5_2) + { after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_5_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_5__3__Impl + rule__PatternStatement__Group_1_5__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_5_3()); } + (rule__PatternStatement__Group_1_5_3__0)* + { after(grammarAccess.getPatternStatementAccess().getGroup_1_5_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_5__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getGroup_1_5_4()); } + (rule__PatternStatement__Group_1_5_4__0)? + { after(grammarAccess.getPatternStatementAccess().getGroup_1_5_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_5_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_5_3__0__Impl + rule__PatternStatement__Group_1_5_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_5_3_0()); } + ',' + { after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_5_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_5_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_5_3_1()); } + (rule__PatternStatement__PatternsAssignment_1_5_3_1) + { after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_5_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PatternStatement__Group_1_5_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_5_4__0__Impl + rule__PatternStatement__Group_1_5_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_5_4_0()); } + 'where' + { after(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_5_4_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PatternStatement__Group_1_5_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__Group_1_5_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternStatementAccess().getExpAssignment_1_5_4_1()); } + (rule__PatternStatement__ExpAssignment_1_5_4_1) + { after(grammarAccess.getPatternStatementAccess().getExpAssignment_1_5_4_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Pattern__Group_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Pattern__Group_3__0__Impl + rule__Pattern__Group_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Pattern__Group_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternAccess().getLeftParenthesisKeyword_3_0()); } + '(' + { after(grammarAccess.getPatternAccess().getLeftParenthesisKeyword_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Pattern__Group_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Pattern__Group_3__1__Impl + rule__Pattern__Group_3__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Pattern__Group_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternAccess().getPatternParserRuleCall_3_1()); } + rulePattern + { after(grammarAccess.getPatternAccess().getPatternParserRuleCall_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Pattern__Group_3__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Pattern__Group_3__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Pattern__Group_3__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPatternAccess().getRightParenthesisKeyword_3_2()); } + ')' + { after(grammarAccess.getPatternAccess().getRightParenthesisKeyword_3_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AnyPattern__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AnyPattern__Group__0__Impl + rule__AnyPattern__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AnyPattern__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAnyPatternAccess().getAnyPatternAction_0()); } + () + { after(grammarAccess.getAnyPatternAccess().getAnyPatternAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AnyPattern__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AnyPattern__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AnyPattern__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAnyPatternAccess().getAnyKeyword_1()); } + 'any' + { after(grammarAccess.getAnyPatternAccess().getAnyKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IntegerPattern__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IntegerPattern__Group__0__Impl + rule__IntegerPattern__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IntegerPattern__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIntegerPatternAccess().getAlternatives_0()); } + (rule__IntegerPattern__Alternatives_0) + { after(grammarAccess.getIntegerPatternAccess().getAlternatives_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IntegerPattern__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IntegerPattern__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IntegerPattern__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIntegerPatternAccess().getValueAssignment_1()); } + (rule__IntegerPattern__ValueAssignment_1) + { after(grammarAccess.getIntegerPatternAccess().getValueAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierPattern__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_0__0__Impl + rule__IdentifierPattern__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getConstructorPatternAction_0_0()); } + () + { after(grammarAccess.getIdentifierPatternAccess().getConstructorPatternAction_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_0__1__Impl + rule__IdentifierPattern__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getDeclarationAssignment_0_1()); } + (rule__IdentifierPattern__DeclarationAssignment_0_1) + { after(grammarAccess.getIdentifierPatternAccess().getDeclarationAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_0__2__Impl + rule__IdentifierPattern__Group_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getLeftParenthesisKeyword_0_2()); } + '(' + { after(grammarAccess.getIdentifierPatternAccess().getLeftParenthesisKeyword_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_0__3__Impl + rule__IdentifierPattern__Group_0__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getGroup_0_3()); } + (rule__IdentifierPattern__Group_0_3__0)? + { after(grammarAccess.getIdentifierPatternAccess().getGroup_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_0__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getRightParenthesisKeyword_0_4()); } + ')' + { after(grammarAccess.getIdentifierPatternAccess().getRightParenthesisKeyword_0_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierPattern__Group_0_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_0_3__0__Impl + rule__IdentifierPattern__Group_0_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getParametersAssignment_0_3_0()); } + (rule__IdentifierPattern__ParametersAssignment_0_3_0) + { after(grammarAccess.getIdentifierPatternAccess().getParametersAssignment_0_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_0_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getGroup_0_3_1()); } + (rule__IdentifierPattern__Group_0_3_1__0)* + { after(grammarAccess.getIdentifierPatternAccess().getGroup_0_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierPattern__Group_0_3_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_0_3_1__0__Impl + rule__IdentifierPattern__Group_0_3_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0_3_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getCommaKeyword_0_3_1_0()); } + ',' + { after(grammarAccess.getIdentifierPatternAccess().getCommaKeyword_0_3_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0_3_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_0_3_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_0_3_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getParametersAssignment_0_3_1_1()); } + (rule__IdentifierPattern__ParametersAssignment_0_3_1_1) + { after(grammarAccess.getIdentifierPatternAccess().getParametersAssignment_0_3_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierPattern__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_1__0__Impl + rule__IdentifierPattern__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getDeclarationAssignment_1_0()); } + (rule__IdentifierPattern__DeclarationAssignment_1_0) + { after(grammarAccess.getIdentifierPatternAccess().getDeclarationAssignment_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getAlternatives_1_1()); } + (rule__IdentifierPattern__Alternatives_1_1)* + { after(grammarAccess.getIdentifierPatternAccess().getAlternatives_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierPattern__Group_1_1_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_1_1_0__0__Impl + rule__IdentifierPattern__Group_1_1_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getLeftSquareBracketKeyword_1_1_0_0()); } + '[' + { after(grammarAccess.getIdentifierPatternAccess().getLeftSquareBracketKeyword_1_1_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_1_1_0__1__Impl + rule__IdentifierPattern__Group_1_1_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getArrayAccessPatternSourceAction_1_1_0_1()); } + () + { after(grammarAccess.getIdentifierPatternAccess().getArrayAccessPatternSourceAction_1_1_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_1_1_0__2__Impl + rule__IdentifierPattern__Group_1_1_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getIndexAssignment_1_1_0_2()); } + (rule__IdentifierPattern__IndexAssignment_1_1_0_2) + { after(grammarAccess.getIdentifierPatternAccess().getIndexAssignment_1_1_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_1_1_0__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getRightSquareBracketKeyword_1_1_0_3()); } + ']' + { after(grammarAccess.getIdentifierPatternAccess().getRightSquareBracketKeyword_1_1_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierPattern__Group_1_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_1_1_1__0__Impl + rule__IdentifierPattern__Group_1_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getFullStopKeyword_1_1_1_0()); } + '.' + { after(grammarAccess.getIdentifierPatternAccess().getFullStopKeyword_1_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_1_1_1__1__Impl + rule__IdentifierPattern__Group_1_1_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getRecordAccessPatternSourceAction_1_1_1_1()); } + () + { after(grammarAccess.getIdentifierPatternAccess().getRecordAccessPatternSourceAction_1_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierPattern__Group_1_1_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__Group_1_1_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierPatternAccess().getFieldAssignment_1_1_1_2()); } + (rule__IdentifierPattern__FieldAssignment_1_1_1_2) + { after(grammarAccess.getIdentifierPatternAccess().getFieldAssignment_1_1_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ConditionalStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConditionalStatement__Group__0__Impl + rule__ConditionalStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalStatementAccess().getIfKeyword_0()); } + 'if' + { after(grammarAccess.getConditionalStatementAccess().getIfKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConditionalStatement__Group__1__Impl + rule__ConditionalStatement__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalStatementAccess().getConditionAssignment_1()); } + (rule__ConditionalStatement__ConditionAssignment_1) + { after(grammarAccess.getConditionalStatementAccess().getConditionAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConditionalStatement__Group__2__Impl + rule__ConditionalStatement__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalStatementAccess().getThenKeyword_2()); } + 'then' + { after(grammarAccess.getConditionalStatementAccess().getThenKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConditionalStatement__Group__3__Impl + rule__ConditionalStatement__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalStatementAccess().getThenAssignment_3()); } + (rule__ConditionalStatement__ThenAssignment_3) + { after(grammarAccess.getConditionalStatementAccess().getThenAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConditionalStatement__Group__4__Impl + rule__ConditionalStatement__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalStatementAccess().getElseifAssignment_4()); } + (rule__ConditionalStatement__ElseifAssignment_4)* + { after(grammarAccess.getConditionalStatementAccess().getElseifAssignment_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConditionalStatement__Group__5__Impl + rule__ConditionalStatement__Group__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalStatementAccess().getGroup_5()); } + (rule__ConditionalStatement__Group_5__0)? + { after(grammarAccess.getConditionalStatementAccess().getGroup_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConditionalStatement__Group__6__Impl + rule__ConditionalStatement__Group__7 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalStatementAccess().getEndKeyword_6()); } + 'end' + { after(grammarAccess.getConditionalStatementAccess().getEndKeyword_6()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__7 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConditionalStatement__Group__7__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group__7__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalStatementAccess().getIfKeyword_7()); } + ('if')? + { after(grammarAccess.getConditionalStatementAccess().getIfKeyword_7()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ConditionalStatement__Group_5__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConditionalStatement__Group_5__0__Impl + rule__ConditionalStatement__Group_5__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group_5__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalStatementAccess().getElseKeyword_5_0()); } + 'else' + { after(grammarAccess.getConditionalStatementAccess().getElseKeyword_5_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group_5__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ConditionalStatement__Group_5__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__Group_5__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalStatementAccess().getElseAssignment_5_1()); } + (rule__ConditionalStatement__ElseAssignment_5_1) + { after(grammarAccess.getConditionalStatementAccess().getElseAssignment_5_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ExtendedConditionalStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ExtendedConditionalStatement__Group__0__Impl + rule__ExtendedConditionalStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ExtendedConditionalStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getExtendedConditionalStatementAccess().getElsifKeyword_0()); } + 'elsif' + { after(grammarAccess.getExtendedConditionalStatementAccess().getElsifKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ExtendedConditionalStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ExtendedConditionalStatement__Group__1__Impl + rule__ExtendedConditionalStatement__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ExtendedConditionalStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getExtendedConditionalStatementAccess().getConditionAssignment_1()); } + (rule__ExtendedConditionalStatement__ConditionAssignment_1) + { after(grammarAccess.getExtendedConditionalStatementAccess().getConditionAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ExtendedConditionalStatement__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ExtendedConditionalStatement__Group__2__Impl + rule__ExtendedConditionalStatement__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ExtendedConditionalStatement__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getExtendedConditionalStatementAccess().getThenKeyword_2()); } + 'then' + { after(grammarAccess.getExtendedConditionalStatementAccess().getThenKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ExtendedConditionalStatement__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ExtendedConditionalStatement__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ExtendedConditionalStatement__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getExtendedConditionalStatementAccess().getThenAssignment_3()); } + (rule__ExtendedConditionalStatement__ThenAssignment_3) + { after(grammarAccess.getExtendedConditionalStatementAccess().getThenAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SelectStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SelectStatement__Group__0__Impl + rule__SelectStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSelectStatementAccess().getSelectKeyword_0()); } + 'select' + { after(grammarAccess.getSelectStatementAccess().getSelectKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SelectStatement__Group__1__Impl + rule__SelectStatement__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSelectStatementAccess().getBodyAssignment_1()); } + (rule__SelectStatement__BodyAssignment_1) + { after(grammarAccess.getSelectStatementAccess().getBodyAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SelectStatement__Group__2__Impl + rule__SelectStatement__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSelectStatementAccess().getGroup_2()); } + (rule__SelectStatement__Group_2__0)? + { after(grammarAccess.getSelectStatementAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__SelectStatement__Group__3__Impl + rule__SelectStatement__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSelectStatementAccess().getEndKeyword_3()); } + 'end' + { after(grammarAccess.getSelectStatementAccess().getEndKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__SelectStatement__Group__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSelectStatementAccess().getSelectKeyword_4()); } + ('select')? + { after(grammarAccess.getSelectStatementAccess().getSelectKeyword_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SelectStatement__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SelectStatement__Group_2__0__Impl + rule__SelectStatement__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSelectStatementAccess().getVerticalLineKeyword_2_0()); } + '|' + { after(grammarAccess.getSelectStatementAccess().getVerticalLineKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SelectStatement__Group_2__1__Impl + rule__SelectStatement__Group_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSelectStatementAccess().getIndexAssignment_2_1()); } + (rule__SelectStatement__IndexAssignment_2_1) + { after(grammarAccess.getSelectStatementAccess().getIndexAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SelectStatement__Group_2__2__Impl + rule__SelectStatement__Group_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSelectStatementAccess().getInKeyword_2_2()); } + 'in' + { after(grammarAccess.getSelectStatementAccess().getInKeyword_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__SelectStatement__Group_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__Group_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSelectStatementAccess().getTypeAssignment_2_3()); } + (rule__SelectStatement__TypeAssignment_2_3) + { after(grammarAccess.getSelectStatementAccess().getTypeAssignment_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__WhileStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__WhileStatement__Group__0__Impl + rule__WhileStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getWhileStatementAccess().getWhileKeyword_0()); } + 'while' + { after(grammarAccess.getWhileStatementAccess().getWhileKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__WhileStatement__Group__1__Impl + rule__WhileStatement__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getWhileStatementAccess().getConditionAssignment_1()); } + (rule__WhileStatement__ConditionAssignment_1) + { after(grammarAccess.getWhileStatementAccess().getConditionAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__WhileStatement__Group__2__Impl + rule__WhileStatement__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getWhileStatementAccess().getDoKeyword_2()); } + 'do' + { after(grammarAccess.getWhileStatementAccess().getDoKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__WhileStatement__Group__3__Impl + rule__WhileStatement__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getWhileStatementAccess().getBodyAssignment_3()); } + (rule__WhileStatement__BodyAssignment_3) + { after(grammarAccess.getWhileStatementAccess().getBodyAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__WhileStatement__Group__4__Impl + rule__WhileStatement__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getWhileStatementAccess().getEndKeyword_4()); } + 'end' + { after(grammarAccess.getWhileStatementAccess().getEndKeyword_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__WhileStatement__Group__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getWhileStatementAccess().getWhileKeyword_5()); } + ('while')? + { after(grammarAccess.getWhileStatementAccess().getWhileKeyword_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ForeachStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ForeachStatement__Group__0__Impl + rule__ForeachStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getForeachStatementAccess().getForeachKeyword_0()); } + 'foreach' + { after(grammarAccess.getForeachStatementAccess().getForeachKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ForeachStatement__Group__1__Impl + rule__ForeachStatement__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getForeachStatementAccess().getVariableAssignment_1()); } + (rule__ForeachStatement__VariableAssignment_1) + { after(grammarAccess.getForeachStatementAccess().getVariableAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ForeachStatement__Group__2__Impl + rule__ForeachStatement__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getForeachStatementAccess().getDoKeyword_2()); } + 'do' + { after(grammarAccess.getForeachStatementAccess().getDoKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ForeachStatement__Group__3__Impl + rule__ForeachStatement__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getForeachStatementAccess().getBodyAssignment_3()); } + (rule__ForeachStatement__BodyAssignment_3) + { after(grammarAccess.getForeachStatementAccess().getBodyAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ForeachStatement__Group__4__Impl + rule__ForeachStatement__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getForeachStatementAccess().getEndKeyword_4()); } + 'end' + { after(grammarAccess.getForeachStatementAccess().getEndKeyword_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ForeachStatement__Group__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getForeachStatementAccess().getForeachKeyword_5()); } + ('foreach')? + { after(grammarAccess.getForeachStatementAccess().getForeachKeyword_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ToStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ToStatement__Group__0__Impl + rule__ToStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ToStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getToStatementAccess().getToKeyword_0()); } + 'to' + { after(grammarAccess.getToStatementAccess().getToKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ToStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ToStatement__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ToStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getToStatementAccess().getStateAssignment_1()); } + (rule__ToStatement__StateAssignment_1) + { after(grammarAccess.getToStatementAccess().getStateAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__CaseStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group__0__Impl + rule__CaseStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getCaseKeyword_0()); } + 'case' + { after(grammarAccess.getCaseStatementAccess().getCaseKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group__1__Impl + rule__CaseStatement__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getValueAssignment_1()); } + (rule__CaseStatement__ValueAssignment_1) + { after(grammarAccess.getCaseStatementAccess().getValueAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group__2__Impl + rule__CaseStatement__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getOfKeyword_2()); } + 'of' + { after(grammarAccess.getCaseStatementAccess().getOfKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group__3__Impl + rule__CaseStatement__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getPatternAssignment_3()); } + (rule__CaseStatement__PatternAssignment_3) + { after(grammarAccess.getCaseStatementAccess().getPatternAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group__4__Impl + rule__CaseStatement__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_4()); } + '->' + { after(grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group__5__Impl + rule__CaseStatement__Group__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getBodyAssignment_5()); } + (rule__CaseStatement__BodyAssignment_5) + { after(grammarAccess.getCaseStatementAccess().getBodyAssignment_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group__6__Impl + rule__CaseStatement__Group__7 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getGroup_6()); } + (rule__CaseStatement__Group_6__0)* + { after(grammarAccess.getCaseStatementAccess().getGroup_6()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__7 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group__7__Impl + rule__CaseStatement__Group__8 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__7__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getEndKeyword_7()); } + 'end' + { after(grammarAccess.getCaseStatementAccess().getEndKeyword_7()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__8 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group__8__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group__8__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getCaseKeyword_8()); } + ('case')? + { after(grammarAccess.getCaseStatementAccess().getCaseKeyword_8()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__CaseStatement__Group_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group_6__0__Impl + rule__CaseStatement__Group_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getVerticalLineKeyword_6_0()); } + '|' + { after(grammarAccess.getCaseStatementAccess().getVerticalLineKeyword_6_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group_6__1__Impl + rule__CaseStatement__Group_6__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getPatternAssignment_6_1()); } + (rule__CaseStatement__PatternAssignment_6_1) + { after(grammarAccess.getCaseStatementAccess().getPatternAssignment_6_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group_6__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group_6__2__Impl + rule__CaseStatement__Group_6__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group_6__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_6_2()); } + '->' + { after(grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_6_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group_6__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__CaseStatement__Group_6__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__Group_6__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCaseStatementAccess().getBodyAssignment_6_3()); } + (rule__CaseStatement__BodyAssignment_6_3) + { after(grammarAccess.getCaseStatementAccess().getBodyAssignment_6_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LoopStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LoopStatement__Group__0__Impl + rule__LoopStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LoopStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLoopStatementAccess().getLoopStatementAction_0()); } + () + { after(grammarAccess.getLoopStatementAccess().getLoopStatementAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LoopStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LoopStatement__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LoopStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLoopStatementAccess().getLoopKeyword_1()); } + 'loop' + { after(grammarAccess.getLoopStatementAccess().getLoopKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__OnStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__OnStatement__Group__0__Impl + rule__OnStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__OnStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getOnStatementAccess().getOnKeyword_0()); } + 'on' + { after(grammarAccess.getOnStatementAccess().getOnKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__OnStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__OnStatement__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__OnStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getOnStatementAccess().getConditionAssignment_1()); } + (rule__OnStatement__ConditionAssignment_1) + { after(grammarAccess.getOnStatementAccess().getConditionAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__WaitStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__WaitStatement__Group__0__Impl + rule__WaitStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__WaitStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getWaitStatementAccess().getWaitKeyword_0()); } + 'wait' + { after(grammarAccess.getWaitStatementAccess().getWaitKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__WaitStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__WaitStatement__Group__1__Impl + rule__WaitStatement__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__WaitStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getWaitStatementAccess().getLeftAssignment_1()); } + (rule__WaitStatement__LeftAssignment_1) + { after(grammarAccess.getWaitStatementAccess().getLeftAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__WaitStatement__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__WaitStatement__Group__2__Impl + rule__WaitStatement__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__WaitStatement__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getWaitStatementAccess().getCommaKeyword_2()); } + ',' + { after(grammarAccess.getWaitStatementAccess().getCommaKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__WaitStatement__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__WaitStatement__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__WaitStatement__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getWaitStatementAccess().getRightAssignment_3()); } + (rule__WaitStatement__RightAssignment_3) + { after(grammarAccess.getWaitStatementAccess().getRightAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Composition__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Composition__Group__0__Impl + rule__Composition__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositionAccess().getParKeyword_0()); } + 'par' + { after(grammarAccess.getCompositionAccess().getParKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Composition__Group__1__Impl + rule__Composition__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositionAccess().getGroup_1()); } + (rule__Composition__Group_1__0)? + { after(grammarAccess.getCompositionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Composition__Group__2__Impl + rule__Composition__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositionAccess().getBlocksAssignment_2()); } + (rule__Composition__BlocksAssignment_2) + { after(grammarAccess.getCompositionAccess().getBlocksAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__Composition__Group__3__Impl + rule__Composition__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositionAccess().getGroup_3()); } + (rule__Composition__Group_3__0)* + { after(grammarAccess.getCompositionAccess().getGroup_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__Composition__Group__4__Impl + rule__Composition__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositionAccess().getEndKeyword_4()); } + 'end' + { after(grammarAccess.getCompositionAccess().getEndKeyword_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__Composition__Group__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositionAccess().getParKeyword_5()); } + ('par')? + { after(grammarAccess.getCompositionAccess().getParKeyword_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Composition__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Composition__Group_1__0__Impl + rule__Composition__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositionAccess().getGlobalAssignment_1_0()); } + (rule__Composition__GlobalAssignment_1_0) + { after(grammarAccess.getCompositionAccess().getGlobalAssignment_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Composition__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositionAccess().getInKeyword_1_1()); } + 'in' + { after(grammarAccess.getCompositionAccess().getInKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Composition__Group_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Composition__Group_3__0__Impl + rule__Composition__Group_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositionAccess().getVerticalLineVerticalLineKeyword_3_0()); } + '||' + { after(grammarAccess.getCompositionAccess().getVerticalLineVerticalLineKeyword_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Composition__Group_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__Group_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositionAccess().getBlocksAssignment_3_1()); } + (rule__Composition__BlocksAssignment_3_1) + { after(grammarAccess.getCompositionAccess().getBlocksAssignment_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__CompositeBlock__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__CompositeBlock__Group__0__Impl + rule__CompositeBlock__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__CompositeBlock__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositeBlockAccess().getAlternatives_0()); } + (rule__CompositeBlock__Alternatives_0)? + { after(grammarAccess.getCompositeBlockAccess().getAlternatives_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CompositeBlock__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__CompositeBlock__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__CompositeBlock__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositeBlockAccess().getCompositionAssignment_1()); } + (rule__CompositeBlock__CompositionAssignment_1) + { after(grammarAccess.getCompositeBlockAccess().getCompositionAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__CompositeBlock__Group_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__CompositeBlock__Group_0_0__0__Impl + rule__CompositeBlock__Group_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__CompositeBlock__Group_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositeBlockAccess().getLocalAssignment_0_0_0()); } + (rule__CompositeBlock__LocalAssignment_0_0_0) + { after(grammarAccess.getCompositeBlockAccess().getLocalAssignment_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__CompositeBlock__Group_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__CompositeBlock__Group_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__CompositeBlock__Group_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); } + '->' + { after(grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__InstanceDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__InstanceDeclaration__Group__0__Impl + rule__InstanceDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__InstanceDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getInstanceDeclarationAccess().getAlternatives_0()); } + (rule__InstanceDeclaration__Alternatives_0)? + { after(grammarAccess.getInstanceDeclarationAccess().getAlternatives_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__InstanceDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__InstanceDeclaration__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__InstanceDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getInstanceDeclarationAccess().getInstanceAssignment_1()); } + (rule__InstanceDeclaration__InstanceAssignment_1) + { after(grammarAccess.getInstanceDeclarationAccess().getInstanceAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__InstanceDeclaration__Group_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__InstanceDeclaration__Group_0_0__0__Impl + rule__InstanceDeclaration__Group_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__InstanceDeclaration__Group_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getInstanceDeclarationAccess().getLocalAssignment_0_0_0()); } + (rule__InstanceDeclaration__LocalAssignment_0_0_0) + { after(grammarAccess.getInstanceDeclarationAccess().getLocalAssignment_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__InstanceDeclaration__Group_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__InstanceDeclaration__Group_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__InstanceDeclaration__Group_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); } + '->' + { after(grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PortSet__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PortSet__Group_1__0__Impl + rule__PortSet__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PortSet__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPortSetAccess().getPortsAssignment_1_0()); } + (rule__PortSet__PortsAssignment_1_0) + { after(grammarAccess.getPortSetAccess().getPortsAssignment_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortSet__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PortSet__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PortSet__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPortSetAccess().getGroup_1_1()); } + (rule__PortSet__Group_1_1__0)* + { after(grammarAccess.getPortSetAccess().getGroup_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PortSet__Group_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PortSet__Group_1_1__0__Impl + rule__PortSet__Group_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PortSet__Group_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPortSetAccess().getCommaKeyword_1_1_0()); } + ',' + { after(grammarAccess.getPortSetAccess().getCommaKeyword_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortSet__Group_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PortSet__Group_1_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PortSet__Group_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPortSetAccess().getPortsAssignment_1_1_1()); } + (rule__PortSet__PortsAssignment_1_1_1) + { after(grammarAccess.getPortSetAccess().getPortsAssignment_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentInstance__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group__0__Impl + rule__ComponentInstance__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getComponentAssignment_0()); } + (rule__ComponentInstance__ComponentAssignment_0) + { after(grammarAccess.getComponentInstanceAccess().getComponentAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group__1__Impl + rule__ComponentInstance__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getGroup_1()); } + (rule__ComponentInstance__Group_1__0)? + { after(grammarAccess.getComponentInstanceAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getGroup_2()); } + (rule__ComponentInstance__Group_2__0)? + { after(grammarAccess.getComponentInstanceAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentInstance__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_1__0__Impl + rule__ComponentInstance__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getLeftSquareBracketKeyword_1_0()); } + '[' + { after(grammarAccess.getComponentInstanceAccess().getLeftSquareBracketKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_1__1__Impl + rule__ComponentInstance__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getPortsAssignment_1_1()); } + (rule__ComponentInstance__PortsAssignment_1_1) + { after(grammarAccess.getComponentInstanceAccess().getPortsAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_1__2__Impl + rule__ComponentInstance__Group_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getGroup_1_2()); } + (rule__ComponentInstance__Group_1_2__0)* + { after(grammarAccess.getComponentInstanceAccess().getGroup_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_1__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getRightSquareBracketKeyword_1_3()); } + ']' + { after(grammarAccess.getComponentInstanceAccess().getRightSquareBracketKeyword_1_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentInstance__Group_1_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_1_2__0__Impl + rule__ComponentInstance__Group_1_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_1_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getCommaKeyword_1_2_0()); } + ',' + { after(grammarAccess.getComponentInstanceAccess().getCommaKeyword_1_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_1_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_1_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_1_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getPortsAssignment_1_2_1()); } + (rule__ComponentInstance__PortsAssignment_1_2_1) + { after(grammarAccess.getComponentInstanceAccess().getPortsAssignment_1_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentInstance__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_2__0__Impl + rule__ComponentInstance__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getLeftParenthesisKeyword_2_0()); } + '(' + { after(grammarAccess.getComponentInstanceAccess().getLeftParenthesisKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_2__1__Impl + rule__ComponentInstance__Group_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getParametersAssignment_2_1()); } + (rule__ComponentInstance__ParametersAssignment_2_1) + { after(grammarAccess.getComponentInstanceAccess().getParametersAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_2__2__Impl + rule__ComponentInstance__Group_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getGroup_2_2()); } + (rule__ComponentInstance__Group_2_2__0)* + { after(grammarAccess.getComponentInstanceAccess().getGroup_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getRightParenthesisKeyword_2_3()); } + ')' + { after(grammarAccess.getComponentInstanceAccess().getRightParenthesisKeyword_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ComponentInstance__Group_2_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_2_2__0__Impl + rule__ComponentInstance__Group_2_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_2_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getCommaKeyword_2_2_0()); } + ',' + { after(grammarAccess.getComponentInstanceAccess().getCommaKeyword_2_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_2_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ComponentInstance__Group_2_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__Group_2_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComponentInstanceAccess().getParametersAssignment_2_2_1()); } + (rule__ComponentInstance__ParametersAssignment_2_2_1) + { after(grammarAccess.getComponentInstanceAccess().getParametersAssignment_2_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QuantifiedExpression__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0__0__Impl + rule__QuantifiedExpression__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getAlternatives_0_0()); } + (rule__QuantifiedExpression__Alternatives_0_0) + { after(grammarAccess.getQuantifiedExpressionAccess().getAlternatives_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0__1__Impl + rule__QuantifiedExpression__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getIndexAssignment_0_1()); } + (rule__QuantifiedExpression__IndexAssignment_0_1) + { after(grammarAccess.getQuantifiedExpressionAccess().getIndexAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0__2__Impl + rule__QuantifiedExpression__Group_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_2()); } + (rule__QuantifiedExpression__Group_0_2__0)? + { after(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0__3__Impl + rule__QuantifiedExpression__Group_0__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getFullStopKeyword_0_3()); } + '.' + { after(grammarAccess.getQuantifiedExpressionAccess().getFullStopKeyword_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getChildAssignment_0_4()); } + (rule__QuantifiedExpression__ChildAssignment_0_4) + { after(grammarAccess.getQuantifiedExpressionAccess().getChildAssignment_0_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QuantifiedExpression__Group_0_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0_0_0__0__Impl + rule__QuantifiedExpression__Group_0_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getAllExpressionAction_0_0_0_0()); } + () + { after(grammarAccess.getQuantifiedExpressionAccess().getAllExpressionAction_0_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getAllKeyword_0_0_0_1()); } + 'all' + { after(grammarAccess.getQuantifiedExpressionAccess().getAllKeyword_0_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QuantifiedExpression__Group_0_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0_0_1__0__Impl + rule__QuantifiedExpression__Group_0_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getExistsExpressionAction_0_0_1_0()); } + () + { after(grammarAccess.getQuantifiedExpressionAccess().getExistsExpressionAction_0_0_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getExistsKeyword_0_0_1_1()); } + 'exists' + { after(grammarAccess.getQuantifiedExpressionAccess().getExistsKeyword_0_0_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QuantifiedExpression__Group_0_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0_2__0__Impl + rule__QuantifiedExpression__Group_0_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getInKeyword_0_2_0()); } + 'in' + { after(grammarAccess.getQuantifiedExpressionAccess().getInKeyword_0_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedExpression__Group_0_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__Group_0_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedExpressionAccess().getTypeAssignment_0_2_1()); } + (rule__QuantifiedExpression__TypeAssignment_0_2_1) + { after(grammarAccess.getQuantifiedExpressionAccess().getTypeAssignment_0_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Conditional__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conditional__Group__0__Impl + rule__Conditional__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalAccess().getDisjunctionParserRuleCall_0()); } + ruleDisjunction + { after(grammarAccess.getConditionalAccess().getDisjunctionParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conditional__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalAccess().getGroup_1()); } + (rule__Conditional__Group_1__0)? + { after(grammarAccess.getConditionalAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Conditional__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conditional__Group_1__0__Impl + rule__Conditional__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalAccess().getQuestionMarkKeyword_1_0()); } + '?' + { after(grammarAccess.getConditionalAccess().getQuestionMarkKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conditional__Group_1__1__Impl + rule__Conditional__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalAccess().getConditionalConditionAction_1_1()); } + () + { after(grammarAccess.getConditionalAccess().getConditionalConditionAction_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conditional__Group_1__2__Impl + rule__Conditional__Group_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalAccess().getThenAssignment_1_2()); } + (rule__Conditional__ThenAssignment_1_2) + { after(grammarAccess.getConditionalAccess().getThenAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conditional__Group_1__3__Impl + rule__Conditional__Group_1__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalAccess().getColonKeyword_1_3()); } + ':' + { after(grammarAccess.getConditionalAccess().getColonKeyword_1_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group_1__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conditional__Group_1__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__Group_1__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConditionalAccess().getElseAssignment_1_4()); } + (rule__Conditional__ElseAssignment_1_4) + { after(grammarAccess.getConditionalAccess().getElseAssignment_1_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Disjunction__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Disjunction__Group__0__Impl + rule__Disjunction__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Disjunction__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDisjunctionAccess().getImplicationParserRuleCall_0()); } + ruleImplication + { after(grammarAccess.getDisjunctionAccess().getImplicationParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Disjunction__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Disjunction__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Disjunction__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDisjunctionAccess().getGroup_1()); } + (rule__Disjunction__Group_1__0)* + { after(grammarAccess.getDisjunctionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Disjunction__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Disjunction__Group_1__0__Impl + rule__Disjunction__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Disjunction__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDisjunctionAccess().getDisjunctionLeftAction_1_0()); } + () + { after(grammarAccess.getDisjunctionAccess().getDisjunctionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Disjunction__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Disjunction__Group_1__1__Impl + rule__Disjunction__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Disjunction__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDisjunctionAccess().getOrKeyword_1_1()); } + 'or' + { after(grammarAccess.getDisjunctionAccess().getOrKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Disjunction__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Disjunction__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Disjunction__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDisjunctionAccess().getRightAssignment_1_2()); } + (rule__Disjunction__RightAssignment_1_2) + { after(grammarAccess.getDisjunctionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Implication__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Implication__Group__0__Impl + rule__Implication__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Implication__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getImplicationAccess().getConjunctionParserRuleCall_0()); } + ruleConjunction + { after(grammarAccess.getImplicationAccess().getConjunctionParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Implication__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Implication__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Implication__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getImplicationAccess().getGroup_1()); } + (rule__Implication__Group_1__0)? + { after(grammarAccess.getImplicationAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Implication__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Implication__Group_1__0__Impl + rule__Implication__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Implication__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getImplicationAccess().getImplicationLeftAction_1_0()); } + () + { after(grammarAccess.getImplicationAccess().getImplicationLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Implication__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Implication__Group_1__1__Impl + rule__Implication__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Implication__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); } + '=>' + { after(grammarAccess.getImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Implication__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Implication__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Implication__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getImplicationAccess().getRightAssignment_1_2()); } + (rule__Implication__RightAssignment_1_2) + { after(grammarAccess.getImplicationAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Conjunction__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conjunction__Group__0__Impl + rule__Conjunction__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Conjunction__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConjunctionAccess().getComparisonParserRuleCall_0()); } + ruleComparison + { after(grammarAccess.getConjunctionAccess().getComparisonParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conjunction__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conjunction__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Conjunction__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConjunctionAccess().getGroup_1()); } + (rule__Conjunction__Group_1__0)* + { after(grammarAccess.getConjunctionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Conjunction__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conjunction__Group_1__0__Impl + rule__Conjunction__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Conjunction__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConjunctionAccess().getConjunctionLeftAction_1_0()); } + () + { after(grammarAccess.getConjunctionAccess().getConjunctionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conjunction__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conjunction__Group_1__1__Impl + rule__Conjunction__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Conjunction__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConjunctionAccess().getAndKeyword_1_1()); } + 'and' + { after(grammarAccess.getConjunctionAccess().getAndKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conjunction__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Conjunction__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Conjunction__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getConjunctionAccess().getRightAssignment_1_2()); } + (rule__Conjunction__RightAssignment_1_2) + { after(grammarAccess.getConjunctionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Comparison__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group__0__Impl + rule__Comparison__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getAdditionParserRuleCall_0()); } + ruleAddition + { after(grammarAccess.getComparisonAccess().getAdditionParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getGroup_1()); } + (rule__Comparison__Group_1__0)? + { after(grammarAccess.getComparisonAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Comparison__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1__0__Impl + rule__Comparison__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getAlternatives_1_0()); } + (rule__Comparison__Alternatives_1_0) + { after(grammarAccess.getComparisonAccess().getAlternatives_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getRightAssignment_1_1()); } + (rule__Comparison__RightAssignment_1_1) + { after(grammarAccess.getComparisonAccess().getRightAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Comparison__Group_1_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_0__0__Impl + rule__Comparison__Group_1_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getComparisonEqualLeftAction_1_0_0_0()); } + () + { after(grammarAccess.getComparisonAccess().getComparisonEqualLeftAction_1_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getEqualsSignKeyword_1_0_0_1()); } + '=' + { after(grammarAccess.getComparisonAccess().getEqualsSignKeyword_1_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Comparison__Group_1_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_1__0__Impl + rule__Comparison__Group_1_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getComparisonNotEqualLeftAction_1_0_1_0()); } + () + { after(grammarAccess.getComparisonAccess().getComparisonNotEqualLeftAction_1_0_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getLessThanSignGreaterThanSignKeyword_1_0_1_1()); } + '<>' + { after(grammarAccess.getComparisonAccess().getLessThanSignGreaterThanSignKeyword_1_0_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Comparison__Group_1_0_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_2__0__Impl + rule__Comparison__Group_1_0_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getComparisonLesserLeftAction_1_0_2_0()); } + () + { after(grammarAccess.getComparisonAccess().getComparisonLesserLeftAction_1_0_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getLessThanSignKeyword_1_0_2_1()); } + '<' + { after(grammarAccess.getComparisonAccess().getLessThanSignKeyword_1_0_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Comparison__Group_1_0_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_3__0__Impl + rule__Comparison__Group_1_0_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getComparisonLesserEqualLeftAction_1_0_3_0()); } + () + { after(grammarAccess.getComparisonAccess().getComparisonLesserEqualLeftAction_1_0_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_3_1()); } + '<=' + { after(grammarAccess.getComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Comparison__Group_1_0_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_4__0__Impl + rule__Comparison__Group_1_0_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getComparisonGreaterLeftAction_1_0_4_0()); } + () + { after(grammarAccess.getComparisonAccess().getComparisonGreaterLeftAction_1_0_4_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getGreaterThanSignKeyword_1_0_4_1()); } + '>' + { after(grammarAccess.getComparisonAccess().getGreaterThanSignKeyword_1_0_4_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Comparison__Group_1_0_5__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_5__0__Impl + rule__Comparison__Group_1_0_5__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_5__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getComparisonGreaterEqualLeftAction_1_0_5_0()); } + () + { after(grammarAccess.getComparisonAccess().getComparisonGreaterEqualLeftAction_1_0_5_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_5__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Comparison__Group_1_0_5__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__Group_1_0_5__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_5_1()); } + '>=' + { after(grammarAccess.getComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_5_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Addition__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group__0__Impl + rule__Addition__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAdditionAccess().getSubstractionParserRuleCall_0()); } + ruleSubstraction + { after(grammarAccess.getAdditionAccess().getSubstractionParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAdditionAccess().getGroup_1()); } + (rule__Addition__Group_1__0)* + { after(grammarAccess.getAdditionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Addition__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group_1__0__Impl + rule__Addition__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAdditionAccess().getAdditionLeftAction_1_0()); } + () + { after(grammarAccess.getAdditionAccess().getAdditionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group_1__1__Impl + rule__Addition__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAdditionAccess().getPlusSignKeyword_1_1()); } + '+' + { after(grammarAccess.getAdditionAccess().getPlusSignKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAdditionAccess().getRightAssignment_1_2()); } + (rule__Addition__RightAssignment_1_2) + { after(grammarAccess.getAdditionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Substraction__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Substraction__Group__0__Impl + rule__Substraction__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Substraction__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSubstractionAccess().getMultiplicationParserRuleCall_0()); } + ruleMultiplication + { after(grammarAccess.getSubstractionAccess().getMultiplicationParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Substraction__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Substraction__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Substraction__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSubstractionAccess().getGroup_1()); } + (rule__Substraction__Group_1__0)* + { after(grammarAccess.getSubstractionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Substraction__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Substraction__Group_1__0__Impl + rule__Substraction__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Substraction__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSubstractionAccess().getSubstractionLeftAction_1_0()); } + () + { after(grammarAccess.getSubstractionAccess().getSubstractionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Substraction__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Substraction__Group_1__1__Impl + rule__Substraction__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Substraction__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSubstractionAccess().getHyphenMinusKeyword_1_1()); } + '-' + { after(grammarAccess.getSubstractionAccess().getHyphenMinusKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Substraction__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Substraction__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Substraction__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSubstractionAccess().getRightAssignment_1_2()); } + (rule__Substraction__RightAssignment_1_2) + { after(grammarAccess.getSubstractionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Multiplication__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group__0__Impl + rule__Multiplication__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getMultiplicationAccess().getDivisionParserRuleCall_0()); } + ruleDivision + { after(grammarAccess.getMultiplicationAccess().getDivisionParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getMultiplicationAccess().getGroup_1()); } + (rule__Multiplication__Group_1__0)* + { after(grammarAccess.getMultiplicationAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Multiplication__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group_1__0__Impl + rule__Multiplication__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getMultiplicationAccess().getMultiplicationLeftAction_1_0()); } + () + { after(grammarAccess.getMultiplicationAccess().getMultiplicationLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group_1__1__Impl + rule__Multiplication__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_1()); } + '*' + { after(grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getMultiplicationAccess().getRightAssignment_1_2()); } + (rule__Multiplication__RightAssignment_1_2) + { after(grammarAccess.getMultiplicationAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Division__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Division__Group__0__Impl + rule__Division__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Division__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDivisionAccess().getModuloParserRuleCall_0()); } + ruleModulo + { after(grammarAccess.getDivisionAccess().getModuloParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Division__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Division__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Division__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDivisionAccess().getGroup_1()); } + (rule__Division__Group_1__0)* + { after(grammarAccess.getDivisionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Division__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Division__Group_1__0__Impl + rule__Division__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Division__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDivisionAccess().getDivisionLeftAction_1_0()); } + () + { after(grammarAccess.getDivisionAccess().getDivisionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Division__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Division__Group_1__1__Impl + rule__Division__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Division__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDivisionAccess().getSolidusKeyword_1_1()); } + '/' + { after(grammarAccess.getDivisionAccess().getSolidusKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Division__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Division__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Division__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDivisionAccess().getRightAssignment_1_2()); } + (rule__Division__RightAssignment_1_2) + { after(grammarAccess.getDivisionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Modulo__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Modulo__Group__0__Impl + rule__Modulo__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Modulo__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getModuloAccess().getUnaryExpressionParserRuleCall_0()); } + ruleUnaryExpression + { after(grammarAccess.getModuloAccess().getUnaryExpressionParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Modulo__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Modulo__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Modulo__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getModuloAccess().getGroup_1()); } + (rule__Modulo__Group_1__0)* + { after(grammarAccess.getModuloAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Modulo__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Modulo__Group_1__0__Impl + rule__Modulo__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Modulo__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getModuloAccess().getModuloLeftAction_1_0()); } + () + { after(grammarAccess.getModuloAccess().getModuloLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Modulo__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Modulo__Group_1__1__Impl + rule__Modulo__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Modulo__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getModuloAccess().getPercentSignKeyword_1_1()); } + '%' + { after(grammarAccess.getModuloAccess().getPercentSignKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Modulo__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Modulo__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Modulo__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getModuloAccess().getRightAssignment_1_2()); } + (rule__Modulo__RightAssignment_1_2) + { after(grammarAccess.getModuloAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnaryExpression__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0__0__Impl + rule__UnaryExpression__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getAlternatives_0_0()); } + (rule__UnaryExpression__Alternatives_0_0) + { after(grammarAccess.getUnaryExpressionAccess().getAlternatives_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getChildAssignment_0_1()); } + (rule__UnaryExpression__ChildAssignment_0_1) + { after(grammarAccess.getUnaryExpressionAccess().getChildAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnaryExpression__Group_0_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_0__0__Impl + rule__UnaryExpression__Group_0_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getUnaryPlusExpressionAction_0_0_0_0()); } + () + { after(grammarAccess.getUnaryExpressionAccess().getUnaryPlusExpressionAction_0_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getPlusSignKeyword_0_0_0_1()); } + '+' + { after(grammarAccess.getUnaryExpressionAccess().getPlusSignKeyword_0_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnaryExpression__Group_0_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_1__0__Impl + rule__UnaryExpression__Group_0_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getUnaryMinusExpressionAction_0_0_1_0()); } + () + { after(grammarAccess.getUnaryExpressionAccess().getUnaryMinusExpressionAction_0_0_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getHyphenMinusKeyword_0_0_1_1()); } + '-' + { after(grammarAccess.getUnaryExpressionAccess().getHyphenMinusKeyword_0_0_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnaryExpression__Group_0_0_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_2__0__Impl + rule__UnaryExpression__Group_0_0_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getUnaryNegationExpressionAction_0_0_2_0()); } + () + { after(grammarAccess.getUnaryExpressionAccess().getUnaryNegationExpressionAction_0_0_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getNotKeyword_0_0_2_1()); } + 'not' + { after(grammarAccess.getUnaryExpressionAccess().getNotKeyword_0_0_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnaryExpression__Group_0_0_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_3__0__Impl + rule__UnaryExpression__Group_0_0_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getUnaryFirstExpressionAction_0_0_3_0()); } + () + { after(grammarAccess.getUnaryExpressionAccess().getUnaryFirstExpressionAction_0_0_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getFirstKeyword_0_0_3_1()); } + 'first' + { after(grammarAccess.getUnaryExpressionAccess().getFirstKeyword_0_0_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnaryExpression__Group_0_0_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_4__0__Impl + rule__UnaryExpression__Group_0_0_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getUnaryLengthExpressionAction_0_0_4_0()); } + () + { after(grammarAccess.getUnaryExpressionAccess().getUnaryLengthExpressionAction_0_0_4_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getLengthKeyword_0_0_4_1()); } + 'length' + { after(grammarAccess.getUnaryExpressionAccess().getLengthKeyword_0_0_4_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnaryExpression__Group_0_0_5__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_5__0__Impl + rule__UnaryExpression__Group_0_0_5__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_5__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getUnaryCoerceExpressionAction_0_0_5_0()); } + () + { after(grammarAccess.getUnaryExpressionAccess().getUnaryCoerceExpressionAction_0_0_5_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_5__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_5__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_5__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getDollarSignKeyword_0_0_5_1()); } + '$' + { after(grammarAccess.getUnaryExpressionAccess().getDollarSignKeyword_0_0_5_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnaryExpression__Group_0_0_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_6__0__Impl + rule__UnaryExpression__Group_0_0_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getUnaryFullExpressionAction_0_0_6_0()); } + () + { after(grammarAccess.getUnaryExpressionAccess().getUnaryFullExpressionAction_0_0_6_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_6__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getFullKeyword_0_0_6_1()); } + 'full' + { after(grammarAccess.getUnaryExpressionAccess().getFullKeyword_0_0_6_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnaryExpression__Group_0_0_7__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_7__0__Impl + rule__UnaryExpression__Group_0_0_7__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_7__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getUnaryDeQueueExpressionAction_0_0_7_0()); } + () + { after(grammarAccess.getUnaryExpressionAccess().getUnaryDeQueueExpressionAction_0_0_7_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_7__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_7__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_7__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getDequeueKeyword_0_0_7_1()); } + 'dequeue' + { after(grammarAccess.getUnaryExpressionAccess().getDequeueKeyword_0_0_7_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__UnaryExpression__Group_0_0_8__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_8__0__Impl + rule__UnaryExpression__Group_0_0_8__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_8__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getUnaryEmptyExpressionAction_0_0_8_0()); } + () + { after(grammarAccess.getUnaryExpressionAccess().getUnaryEmptyExpressionAction_0_0_8_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_8__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__UnaryExpression__Group_0_0_8__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__Group_0_0_8__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getUnaryExpressionAccess().getEmptyKeyword_0_0_8_1()); } + 'empty' + { after(grammarAccess.getUnaryExpressionAccess().getEmptyKeyword_0_0_8_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Projection__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Projection__Group__0__Impl + rule__Projection__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Projection__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProjectionAccess().getAtomicExpressionParserRuleCall_0()); } + ruleAtomicExpression + { after(grammarAccess.getProjectionAccess().getAtomicExpressionParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Projection__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Projection__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Projection__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProjectionAccess().getGroup_1()); } + (rule__Projection__Group_1__0)? + { after(grammarAccess.getProjectionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Projection__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Projection__Group_1__0__Impl + rule__Projection__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Projection__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProjectionAccess().getProjectionChannelAction_1_0()); } + () + { after(grammarAccess.getProjectionAccess().getProjectionChannelAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Projection__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Projection__Group_1__1__Impl + rule__Projection__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Projection__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProjectionAccess().getCircumflexAccentKeyword_1_1()); } + '^' + { after(grammarAccess.getProjectionAccess().getCircumflexAccentKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Projection__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Projection__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Projection__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getProjectionAccess().getFieldAssignment_1_2()); } + (rule__Projection__FieldAssignment_1_2) + { after(grammarAccess.getProjectionAccess().getFieldAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AtomicExpression__Group_8__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicExpression__Group_8__0__Impl + rule__AtomicExpression__Group_8__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicExpression__Group_8__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_8_0()); } + '(' + { after(grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_8_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicExpression__Group_8__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicExpression__Group_8__1__Impl + rule__AtomicExpression__Group_8__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicExpression__Group_8__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_8_1()); } + ruleExpression + { after(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_8_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicExpression__Group_8__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicExpression__Group_8__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicExpression__Group_8__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_8_2()); } + ')' + { after(grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_8_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ReferenceExpression__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ReferenceExpression__Group__0__Impl + rule__ReferenceExpression__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ReferenceExpression__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getReferenceExpressionAccess().getAmpersandKeyword_0()); } + '&' + { after(grammarAccess.getReferenceExpressionAccess().getAmpersandKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ReferenceExpression__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ReferenceExpression__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ReferenceExpression__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getReferenceExpressionAccess().getDeclarationAssignment_1()); } + (rule__ReferenceExpression__DeclarationAssignment_1) + { after(grammarAccess.getReferenceExpressionAccess().getDeclarationAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierExpression__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_0__0__Impl + rule__IdentifierExpression__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getConstructionExpressionAction_0_0()); } + () + { after(grammarAccess.getIdentifierExpressionAccess().getConstructionExpressionAction_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_0__1__Impl + rule__IdentifierExpression__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getDeclarationAssignment_0_1()); } + (rule__IdentifierExpression__DeclarationAssignment_0_1) + { after(grammarAccess.getIdentifierExpressionAccess().getDeclarationAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_0__2__Impl + rule__IdentifierExpression__Group_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getLeftParenthesisKeyword_0_2()); } + '(' + { after(grammarAccess.getIdentifierExpressionAccess().getLeftParenthesisKeyword_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_0__3__Impl + rule__IdentifierExpression__Group_0__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getGroup_0_3()); } + (rule__IdentifierExpression__Group_0_3__0)? + { after(grammarAccess.getIdentifierExpressionAccess().getGroup_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_0__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getRightParenthesisKeyword_0_4()); } + ')' + { after(grammarAccess.getIdentifierExpressionAccess().getRightParenthesisKeyword_0_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierExpression__Group_0_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_0_3__0__Impl + rule__IdentifierExpression__Group_0_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getParametersAssignment_0_3_0()); } + (rule__IdentifierExpression__ParametersAssignment_0_3_0) + { after(grammarAccess.getIdentifierExpressionAccess().getParametersAssignment_0_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_0_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getGroup_0_3_1()); } + (rule__IdentifierExpression__Group_0_3_1__0)* + { after(grammarAccess.getIdentifierExpressionAccess().getGroup_0_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierExpression__Group_0_3_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_0_3_1__0__Impl + rule__IdentifierExpression__Group_0_3_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0_3_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_0_3_1_0()); } + ',' + { after(grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_0_3_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0_3_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_0_3_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_0_3_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getParametersAssignment_0_3_1_1()); } + (rule__IdentifierExpression__ParametersAssignment_0_3_1_1) + { after(grammarAccess.getIdentifierExpressionAccess().getParametersAssignment_0_3_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierExpression__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1__0__Impl + rule__IdentifierExpression__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getDeclarationAssignment_1_0()); } + (rule__IdentifierExpression__DeclarationAssignment_1_0) + { after(grammarAccess.getIdentifierExpressionAccess().getDeclarationAssignment_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getAlternatives_1_1()); } + (rule__IdentifierExpression__Alternatives_1_1)* + { after(grammarAccess.getIdentifierExpressionAccess().getAlternatives_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierExpression__Group_1_1_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1_1_0__0__Impl + rule__IdentifierExpression__Group_1_1_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getLeftSquareBracketKeyword_1_1_0_0()); } + '[' + { after(grammarAccess.getIdentifierExpressionAccess().getLeftSquareBracketKeyword_1_1_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1_1_0__1__Impl + rule__IdentifierExpression__Group_1_1_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getArrayAccessExpressionChildAction_1_1_0_1()); } + () + { after(grammarAccess.getIdentifierExpressionAccess().getArrayAccessExpressionChildAction_1_1_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1_1_0__2__Impl + rule__IdentifierExpression__Group_1_1_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getIndexesAssignment_1_1_0_2()); } + (rule__IdentifierExpression__IndexesAssignment_1_1_0_2) + { after(grammarAccess.getIdentifierExpressionAccess().getIndexesAssignment_1_1_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1_1_0__3__Impl + rule__IdentifierExpression__Group_1_1_0__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_0_3()); } + (rule__IdentifierExpression__Group_1_1_0_3__0)* + { after(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1_1_0__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getRightSquareBracketKeyword_1_1_0_4()); } + ']' + { after(grammarAccess.getIdentifierExpressionAccess().getRightSquareBracketKeyword_1_1_0_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierExpression__Group_1_1_0_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1_1_0_3__0__Impl + rule__IdentifierExpression__Group_1_1_0_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_1_1_0_3_0()); } + ',' + { after(grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_1_1_0_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1_1_0_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_0_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getIndexesAssignment_1_1_0_3_1()); } + (rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1) + { after(grammarAccess.getIdentifierExpressionAccess().getIndexesAssignment_1_1_0_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__IdentifierExpression__Group_1_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1_1_1__0__Impl + rule__IdentifierExpression__Group_1_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getFullStopKeyword_1_1_1_0()); } + '.' + { after(grammarAccess.getIdentifierExpressionAccess().getFullStopKeyword_1_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1_1_1__1__Impl + rule__IdentifierExpression__Group_1_1_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getRecordAccessExpressionChildAction_1_1_1_1()); } + () + { after(grammarAccess.getIdentifierExpressionAccess().getRecordAccessExpressionChildAction_1_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__IdentifierExpression__Group_1_1_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__Group_1_1_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getIdentifierExpressionAccess().getFieldAssignment_1_1_1_2()); } + (rule__IdentifierExpression__FieldAssignment_1_1_1_2) + { after(grammarAccess.getIdentifierExpressionAccess().getFieldAssignment_1_1_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__RecordExpression__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordExpression__Group__0__Impl + rule__RecordExpression__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordExpressionAccess().getLeftCurlyBracketKeyword_0()); } + '{' + { after(grammarAccess.getRecordExpressionAccess().getLeftCurlyBracketKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordExpression__Group__1__Impl + rule__RecordExpression__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordExpressionAccess().getFieldsAssignment_1()); } + (rule__RecordExpression__FieldsAssignment_1) + { after(grammarAccess.getRecordExpressionAccess().getFieldsAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordExpression__Group__2__Impl + rule__RecordExpression__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordExpressionAccess().getGroup_2()); } + (rule__RecordExpression__Group_2__0)* + { after(grammarAccess.getRecordExpressionAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordExpression__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordExpressionAccess().getRightCurlyBracketKeyword_3()); } + '}' + { after(grammarAccess.getRecordExpressionAccess().getRightCurlyBracketKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__RecordExpression__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordExpression__Group_2__0__Impl + rule__RecordExpression__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordExpressionAccess().getCommaKeyword_2_0()); } + ',' + { after(grammarAccess.getRecordExpressionAccess().getCommaKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__RecordExpression__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRecordExpressionAccess().getFieldsAssignment_2_1()); } + (rule__RecordExpression__FieldsAssignment_2_1) + { after(grammarAccess.getRecordExpressionAccess().getFieldsAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__FieldExpression__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__FieldExpression__Group__0__Impl + rule__FieldExpression__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__FieldExpression__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFieldExpressionAccess().getFieldAssignment_0()); } + (rule__FieldExpression__FieldAssignment_0) + { after(grammarAccess.getFieldExpressionAccess().getFieldAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FieldExpression__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__FieldExpression__Group__1__Impl + rule__FieldExpression__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__FieldExpression__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFieldExpressionAccess().getEqualsSignKeyword_1()); } + '=' + { after(grammarAccess.getFieldExpressionAccess().getEqualsSignKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__FieldExpression__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__FieldExpression__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__FieldExpression__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getFieldExpressionAccess().getValueAssignment_2()); } + (rule__FieldExpression__ValueAssignment_2) + { after(grammarAccess.getFieldExpressionAccess().getValueAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ArrayExpression__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayExpression__Group__0__Impl + rule__ArrayExpression__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayExpressionAccess().getArrayExpressionAction_0()); } + () + { after(grammarAccess.getArrayExpressionAccess().getArrayExpressionAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayExpression__Group__1__Impl + rule__ArrayExpression__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayExpressionAccess().getLeftSquareBracketKeyword_1()); } + '[' + { after(grammarAccess.getArrayExpressionAccess().getLeftSquareBracketKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayExpression__Group__2__Impl + rule__ArrayExpression__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayExpressionAccess().getGroup_2()); } + (rule__ArrayExpression__Group_2__0)? + { after(grammarAccess.getArrayExpressionAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayExpression__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayExpressionAccess().getRightSquareBracketKeyword_3()); } + ']' + { after(grammarAccess.getArrayExpressionAccess().getRightSquareBracketKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ArrayExpression__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayExpression__Group_2__0__Impl + rule__ArrayExpression__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayExpressionAccess().getValuesAssignment_2_0()); } + (rule__ArrayExpression__ValuesAssignment_2_0) + { after(grammarAccess.getArrayExpressionAccess().getValuesAssignment_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayExpression__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayExpressionAccess().getGroup_2_1()); } + (rule__ArrayExpression__Group_2_1__0)* + { after(grammarAccess.getArrayExpressionAccess().getGroup_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ArrayExpression__Group_2_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayExpression__Group_2_1__0__Impl + rule__ArrayExpression__Group_2_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group_2_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayExpressionAccess().getCommaKeyword_2_1_0()); } + ',' + { after(grammarAccess.getArrayExpressionAccess().getCommaKeyword_2_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group_2_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ArrayExpression__Group_2_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__Group_2_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getArrayExpressionAccess().getValuesAssignment_2_1_1()); } + (rule__ArrayExpression__ValuesAssignment_2_1_1) + { after(grammarAccess.getArrayExpressionAccess().getValuesAssignment_2_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QueueExpression__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueExpression__Group__0__Impl + rule__QueueExpression__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueExpressionAccess().getQueueExpressionAction_0()); } + () + { after(grammarAccess.getQueueExpressionAccess().getQueueExpressionAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueExpression__Group__1__Impl + rule__QueueExpression__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueExpressionAccess().getLeftCurlyBracketVerticalLineKeyword_1()); } + '{|' + { after(grammarAccess.getQueueExpressionAccess().getLeftCurlyBracketVerticalLineKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueExpression__Group__2__Impl + rule__QueueExpression__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueExpressionAccess().getGroup_2()); } + (rule__QueueExpression__Group_2__0)? + { after(grammarAccess.getQueueExpressionAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueExpression__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueExpressionAccess().getVerticalLineRightCurlyBracketKeyword_3()); } + '|}' + { after(grammarAccess.getQueueExpressionAccess().getVerticalLineRightCurlyBracketKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QueueExpression__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueExpression__Group_2__0__Impl + rule__QueueExpression__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueExpressionAccess().getValuesAssignment_2_0()); } + (rule__QueueExpression__ValuesAssignment_2_0) + { after(grammarAccess.getQueueExpressionAccess().getValuesAssignment_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueExpression__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueExpressionAccess().getGroup_2_1()); } + (rule__QueueExpression__Group_2_1__0)* + { after(grammarAccess.getQueueExpressionAccess().getGroup_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QueueExpression__Group_2_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueExpression__Group_2_1__0__Impl + rule__QueueExpression__Group_2_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group_2_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueExpressionAccess().getCommaKeyword_2_1_0()); } + ',' + { after(grammarAccess.getQueueExpressionAccess().getCommaKeyword_2_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group_2_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QueueExpression__Group_2_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__Group_2_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQueueExpressionAccess().getValuesAssignment_2_1_1()); } + (rule__QueueExpression__ValuesAssignment_2_1_1) + { after(grammarAccess.getQueueExpressionAccess().getValuesAssignment_2_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__EnqueueExpression__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__EnqueueExpression__Group__0__Impl + rule__EnqueueExpression__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getEnqueueExpressionAccess().getEnqueueKeyword_0()); } + 'enqueue' + { after(grammarAccess.getEnqueueExpressionAccess().getEnqueueKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__EnqueueExpression__Group__1__Impl + rule__EnqueueExpression__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getEnqueueExpressionAccess().getLeftParenthesisKeyword_1()); } + '(' + { after(grammarAccess.getEnqueueExpressionAccess().getLeftParenthesisKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__EnqueueExpression__Group__2__Impl + rule__EnqueueExpression__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getEnqueueExpressionAccess().getElementAssignment_2()); } + (rule__EnqueueExpression__ElementAssignment_2) + { after(grammarAccess.getEnqueueExpressionAccess().getElementAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__EnqueueExpression__Group__3__Impl + rule__EnqueueExpression__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getEnqueueExpressionAccess().getCommaKeyword_3()); } + ',' + { after(grammarAccess.getEnqueueExpressionAccess().getCommaKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__EnqueueExpression__Group__4__Impl + rule__EnqueueExpression__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getEnqueueExpressionAccess().getQueueAssignment_4()); } + (rule__EnqueueExpression__QueueAssignment_4) + { after(grammarAccess.getEnqueueExpressionAccess().getQueueAssignment_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__EnqueueExpression__Group__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getEnqueueExpressionAccess().getRightParenthesisKeyword_5()); } + ')' + { after(grammarAccess.getEnqueueExpressionAccess().getRightParenthesisKeyword_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AppendExpression__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AppendExpression__Group__0__Impl + rule__AppendExpression__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAppendExpressionAccess().getAppendKeyword_0()); } + 'append' + { after(grammarAccess.getAppendExpressionAccess().getAppendKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AppendExpression__Group__1__Impl + rule__AppendExpression__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAppendExpressionAccess().getLeftParenthesisKeyword_1()); } + '(' + { after(grammarAccess.getAppendExpressionAccess().getLeftParenthesisKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AppendExpression__Group__2__Impl + rule__AppendExpression__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAppendExpressionAccess().getLeftAssignment_2()); } + (rule__AppendExpression__LeftAssignment_2) + { after(grammarAccess.getAppendExpressionAccess().getLeftAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__AppendExpression__Group__3__Impl + rule__AppendExpression__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAppendExpressionAccess().getCommaKeyword_3()); } + ',' + { after(grammarAccess.getAppendExpressionAccess().getCommaKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__AppendExpression__Group__4__Impl + rule__AppendExpression__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAppendExpressionAccess().getRightAssignment_4()); } + (rule__AppendExpression__RightAssignment_4) + { after(grammarAccess.getAppendExpressionAccess().getRightAssignment_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__AppendExpression__Group__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAppendExpressionAccess().getRightParenthesisKeyword_5()); } + ')' + { after(grammarAccess.getAppendExpressionAccess().getRightParenthesisKeyword_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__BooleanLiteral__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__BooleanLiteral__Group_0__0__Impl + rule__BooleanLiteral__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__BooleanLiteral__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBooleanLiteralAccess().getTrueLiteralAction_0_0()); } + () + { after(grammarAccess.getBooleanLiteralAccess().getTrueLiteralAction_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__BooleanLiteral__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__BooleanLiteral__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__BooleanLiteral__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBooleanLiteralAccess().getTrueKeyword_0_1()); } + 'true' + { after(grammarAccess.getBooleanLiteralAccess().getTrueKeyword_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__BooleanLiteral__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__BooleanLiteral__Group_1__0__Impl + rule__BooleanLiteral__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__BooleanLiteral__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBooleanLiteralAccess().getFalseLiteralAction_1_0()); } + () + { after(grammarAccess.getBooleanLiteralAccess().getFalseLiteralAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__BooleanLiteral__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__BooleanLiteral__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__BooleanLiteral__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBooleanLiteralAccess().getFalseKeyword_1_1()); } + 'false' + { after(grammarAccess.getBooleanLiteralAccess().getFalseKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__NaturalLowerBound__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__NaturalLowerBound__Group__0__Impl + rule__NaturalLowerBound__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalLowerBound__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getNaturalLowerBoundAccess().getAlternatives_0()); } + (rule__NaturalLowerBound__Alternatives_0) + { after(grammarAccess.getNaturalLowerBoundAccess().getAlternatives_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalLowerBound__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__NaturalLowerBound__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalLowerBound__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getNaturalLowerBoundAccess().getValueAssignment_1()); } + (rule__NaturalLowerBound__ValueAssignment_1) + { after(grammarAccess.getNaturalLowerBoundAccess().getValueAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__NaturalUpperBound__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__NaturalUpperBound__Group__0__Impl + rule__NaturalUpperBound__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalUpperBound__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getNaturalUpperBoundAccess().getValueAssignment_0()); } + (rule__NaturalUpperBound__ValueAssignment_0) + { after(grammarAccess.getNaturalUpperBoundAccess().getValueAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalUpperBound__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__NaturalUpperBound__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalUpperBound__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getNaturalUpperBoundAccess().getAlternatives_1()); } + (rule__NaturalUpperBound__Alternatives_1) + { after(grammarAccess.getNaturalUpperBoundAccess().getAlternatives_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__DecimalLowerBound__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__DecimalLowerBound__Group__0__Impl + rule__DecimalLowerBound__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalLowerBound__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDecimalLowerBoundAccess().getAlternatives_0()); } + (rule__DecimalLowerBound__Alternatives_0) + { after(grammarAccess.getDecimalLowerBoundAccess().getAlternatives_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalLowerBound__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__DecimalLowerBound__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalLowerBound__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDecimalLowerBoundAccess().getValueAssignment_1()); } + (rule__DecimalLowerBound__ValueAssignment_1) + { after(grammarAccess.getDecimalLowerBoundAccess().getValueAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__DecimalUpperBound__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__DecimalUpperBound__Group__0__Impl + rule__DecimalUpperBound__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalUpperBound__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDecimalUpperBoundAccess().getValueAssignment_0()); } + (rule__DecimalUpperBound__ValueAssignment_0) + { after(grammarAccess.getDecimalUpperBoundAccess().getValueAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalUpperBound__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__DecimalUpperBound__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalUpperBound__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDecimalUpperBoundAccess().getAlternatives_1()); } + (rule__DecimalUpperBound__Alternatives_1) + { after(grammarAccess.getDecimalUpperBoundAccess().getAlternatives_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VariableLowerBound__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariableLowerBound__Group__0__Impl + rule__VariableLowerBound__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableLowerBound__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariableLowerBoundAccess().getAlternatives_0()); } + (rule__VariableLowerBound__Alternatives_0) + { after(grammarAccess.getVariableLowerBoundAccess().getAlternatives_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableLowerBound__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariableLowerBound__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableLowerBound__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariableLowerBoundAccess().getVariableAssignment_1()); } + (rule__VariableLowerBound__VariableAssignment_1) + { after(grammarAccess.getVariableLowerBoundAccess().getVariableAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VariableUpperBound__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariableUpperBound__Group__0__Impl + rule__VariableUpperBound__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableUpperBound__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariableUpperBoundAccess().getVariableAssignment_0()); } + (rule__VariableUpperBound__VariableAssignment_0) + { after(grammarAccess.getVariableUpperBoundAccess().getVariableAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableUpperBound__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VariableUpperBound__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableUpperBound__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVariableUpperBoundAccess().getAlternatives_1()); } + (rule__VariableUpperBound__Alternatives_1) + { after(grammarAccess.getVariableUpperBoundAccess().getAlternatives_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__InfiniteUpperBound__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__InfiniteUpperBound__Group__0__Impl + rule__InfiniteUpperBound__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__InfiniteUpperBound__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getInfiniteUpperBoundAccess().getInfiniteUpperBoundAction_0()); } + () + { after(grammarAccess.getInfiniteUpperBoundAccess().getInfiniteUpperBoundAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__InfiniteUpperBound__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__InfiniteUpperBound__Group__1__Impl + rule__InfiniteUpperBound__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__InfiniteUpperBound__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getInfiniteUpperBoundAccess().getFullStopFullStopFullStopKeyword_1()); } + '...' + { after(grammarAccess.getInfiniteUpperBoundAccess().getFullStopFullStopFullStopKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__InfiniteUpperBound__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__InfiniteUpperBound__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__InfiniteUpperBound__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getInfiniteUpperBoundAccess().getLeftSquareBracketKeyword_2()); } + '[' + { after(grammarAccess.getInfiniteUpperBoundAccess().getLeftSquareBracketKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Requirement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Requirement__Group__0__Impl + rule__Requirement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRequirementAccess().getAssertKeyword_0()); } + 'assert' + { after(grammarAccess.getRequirementAccess().getAssertKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Requirement__Group__1__Impl + rule__Requirement__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRequirementAccess().getPropertyAssignment_1()); } + (rule__Requirement__PropertyAssignment_1) + { after(grammarAccess.getRequirementAccess().getPropertyAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Requirement__Group__2__Impl + rule__Requirement__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRequirementAccess().getGroup_2()); } + (rule__Requirement__Group_2__0)? + { after(grammarAccess.getRequirementAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__Requirement__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRequirementAccess().getGroup_3()); } + (rule__Requirement__Group_3__0)? + { after(grammarAccess.getRequirementAccess().getGroup_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Requirement__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Requirement__Group_2__0__Impl + rule__Requirement__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRequirementAccess().getTrueKeyword_2_0()); } + '-true' + { after(grammarAccess.getRequirementAccess().getTrueKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Requirement__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRequirementAccess().getPositiveAssignment_2_1()); } + (rule__Requirement__PositiveAssignment_2_1) + { after(grammarAccess.getRequirementAccess().getPositiveAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Requirement__Group_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Requirement__Group_3__0__Impl + rule__Requirement__Group_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRequirementAccess().getFalseKeyword_3_0()); } + '-false' + { after(grammarAccess.getRequirementAccess().getFalseKeyword_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Requirement__Group_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__Group_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getRequirementAccess().getNegativeAssignment_3_1()); } + (rule__Requirement__NegativeAssignment_3_1) + { after(grammarAccess.getRequirementAccess().getNegativeAssignment_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PropertyDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyDeclaration__Group__0__Impl + rule__PropertyDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyDeclarationAccess().getPropertyKeyword_0()); } + 'property' + { after(grammarAccess.getPropertyDeclarationAccess().getPropertyKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyDeclaration__Group__1__Impl + rule__PropertyDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyDeclarationAccess().getNameAssignment_1()); } + (rule__PropertyDeclaration__NameAssignment_1) + { after(grammarAccess.getPropertyDeclarationAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyDeclaration__Group__2__Impl + rule__PropertyDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyDeclarationAccess().getIsKeyword_2()); } + 'is' + { after(grammarAccess.getPropertyDeclarationAccess().getIsKeyword_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyDeclaration__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyDeclarationAccess().getPropertyAssignment_3()); } + (rule__PropertyDeclaration__PropertyAssignment_3) + { after(grammarAccess.getPropertyDeclarationAccess().getPropertyAssignment_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QuantifiedProperty__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedProperty__Group_0__0__Impl + rule__QuantifiedProperty__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedPropertyAccess().getAlternatives_0_0()); } + (rule__QuantifiedProperty__Alternatives_0_0) + { after(grammarAccess.getQuantifiedPropertyAccess().getAlternatives_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedProperty__Group_0__1__Impl + rule__QuantifiedProperty__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedPropertyAccess().getVariableAssignment_0_1()); } + (rule__QuantifiedProperty__VariableAssignment_0_1) + { after(grammarAccess.getQuantifiedPropertyAccess().getVariableAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedProperty__Group_0__2__Impl + rule__QuantifiedProperty__Group_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedPropertyAccess().getInKeyword_0_2()); } + 'in' + { after(grammarAccess.getQuantifiedPropertyAccess().getInKeyword_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedProperty__Group_0__3__Impl + rule__QuantifiedProperty__Group_0__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedPropertyAccess().getTypeAssignment_0_3()); } + (rule__QuantifiedProperty__TypeAssignment_0_3) + { after(grammarAccess.getQuantifiedPropertyAccess().getTypeAssignment_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedProperty__Group_0__4__Impl + rule__QuantifiedProperty__Group_0__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedPropertyAccess().getFullStopKeyword_0_4()); } + '.' + { after(grammarAccess.getQuantifiedPropertyAccess().getFullStopKeyword_0_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedProperty__Group_0__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedPropertyAccess().getChildAssignment_0_5()); } + (rule__QuantifiedProperty__ChildAssignment_0_5) + { after(grammarAccess.getQuantifiedPropertyAccess().getChildAssignment_0_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QuantifiedProperty__Group_0_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedProperty__Group_0_0_0__0__Impl + rule__QuantifiedProperty__Group_0_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedPropertyAccess().getAllPropertyAction_0_0_0_0()); } + () + { after(grammarAccess.getQuantifiedPropertyAccess().getAllPropertyAction_0_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedProperty__Group_0_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedPropertyAccess().getAllKeyword_0_0_0_1()); } + 'all' + { after(grammarAccess.getQuantifiedPropertyAccess().getAllKeyword_0_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__QuantifiedProperty__Group_0_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedProperty__Group_0_0_1__0__Impl + rule__QuantifiedProperty__Group_0_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedPropertyAccess().getExistsPropertyAction_0_0_1_0()); } + () + { after(grammarAccess.getQuantifiedPropertyAccess().getExistsPropertyAction_0_0_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__QuantifiedProperty__Group_0_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__Group_0_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getQuantifiedPropertyAccess().getExistsKeyword_0_0_1_1()); } + 'exists' + { after(grammarAccess.getQuantifiedPropertyAccess().getExistsKeyword_0_0_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PropertyDisjunction__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyDisjunction__Group__0__Impl + rule__PropertyDisjunction__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDisjunction__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyDisjunctionAccess().getPropertyImplicationParserRuleCall_0()); } + rulePropertyImplication + { after(grammarAccess.getPropertyDisjunctionAccess().getPropertyImplicationParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDisjunction__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyDisjunction__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDisjunction__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyDisjunctionAccess().getGroup_1()); } + (rule__PropertyDisjunction__Group_1__0)* + { after(grammarAccess.getPropertyDisjunctionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PropertyDisjunction__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyDisjunction__Group_1__0__Impl + rule__PropertyDisjunction__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDisjunction__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyDisjunctionAccess().getPropertyDisjunctionLeftAction_1_0()); } + () + { after(grammarAccess.getPropertyDisjunctionAccess().getPropertyDisjunctionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDisjunction__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyDisjunction__Group_1__1__Impl + rule__PropertyDisjunction__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDisjunction__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyDisjunctionAccess().getOrKeyword_1_1()); } + 'or' + { after(grammarAccess.getPropertyDisjunctionAccess().getOrKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDisjunction__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyDisjunction__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDisjunction__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyDisjunctionAccess().getRightAssignment_1_2()); } + (rule__PropertyDisjunction__RightAssignment_1_2) + { after(grammarAccess.getPropertyDisjunctionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PropertyImplication__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyImplication__Group__0__Impl + rule__PropertyImplication__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyImplication__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyImplicationAccess().getPropertyConjunctionParserRuleCall_0()); } + rulePropertyConjunction + { after(grammarAccess.getPropertyImplicationAccess().getPropertyConjunctionParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyImplication__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyImplication__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyImplication__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyImplicationAccess().getGroup_1()); } + (rule__PropertyImplication__Group_1__0)? + { after(grammarAccess.getPropertyImplicationAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PropertyImplication__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyImplication__Group_1__0__Impl + rule__PropertyImplication__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyImplication__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyImplicationAccess().getPropertyImplicationLeftAction_1_0()); } + () + { after(grammarAccess.getPropertyImplicationAccess().getPropertyImplicationLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyImplication__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyImplication__Group_1__1__Impl + rule__PropertyImplication__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyImplication__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); } + '=>' + { after(grammarAccess.getPropertyImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyImplication__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyImplication__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyImplication__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyImplicationAccess().getRightAssignment_1_2()); } + (rule__PropertyImplication__RightAssignment_1_2) + { after(grammarAccess.getPropertyImplicationAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PropertyConjunction__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyConjunction__Group__0__Impl + rule__PropertyConjunction__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyConjunction__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyConjunctionAccess().getPropertyNegationParserRuleCall_0()); } + rulePropertyNegation + { after(grammarAccess.getPropertyConjunctionAccess().getPropertyNegationParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyConjunction__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyConjunction__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyConjunction__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyConjunctionAccess().getGroup_1()); } + (rule__PropertyConjunction__Group_1__0)* + { after(grammarAccess.getPropertyConjunctionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PropertyConjunction__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyConjunction__Group_1__0__Impl + rule__PropertyConjunction__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyConjunction__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyConjunctionAccess().getPropertyConjunctionLeftAction_1_0()); } + () + { after(grammarAccess.getPropertyConjunctionAccess().getPropertyConjunctionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyConjunction__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyConjunction__Group_1__1__Impl + rule__PropertyConjunction__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyConjunction__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyConjunctionAccess().getAndKeyword_1_1()); } + 'and' + { after(grammarAccess.getPropertyConjunctionAccess().getAndKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyConjunction__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyConjunction__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyConjunction__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyConjunctionAccess().getRightAssignment_1_2()); } + (rule__PropertyConjunction__RightAssignment_1_2) + { after(grammarAccess.getPropertyConjunctionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PropertyNegation__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyNegation__Group_0__0__Impl + rule__PropertyNegation__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyNegation__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyNegationAccess().getPropertyNegationAction_0_0()); } + () + { after(grammarAccess.getPropertyNegationAccess().getPropertyNegationAction_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyNegation__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyNegation__Group_0__1__Impl + rule__PropertyNegation__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyNegation__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyNegationAccess().getNotKeyword_0_1()); } + 'not' + { after(grammarAccess.getPropertyNegationAccess().getNotKeyword_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyNegation__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PropertyNegation__Group_0__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyNegation__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPropertyNegationAccess().getChildAssignment_0_2()); } + (rule__PropertyNegation__ChildAssignment_0_2) + { after(grammarAccess.getPropertyNegationAccess().getChildAssignment_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AtomicProperty__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicProperty__Group_1__0__Impl + rule__AtomicProperty__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicProperty__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicPropertyAccess().getLeftParenthesisKeyword_1_0()); } + '(' + { after(grammarAccess.getAtomicPropertyAccess().getLeftParenthesisKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicProperty__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicProperty__Group_1__1__Impl + rule__AtomicProperty__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicProperty__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicPropertyAccess().getPropertyParserRuleCall_1_1()); } + ruleProperty + { after(grammarAccess.getAtomicPropertyAccess().getPropertyParserRuleCall_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicProperty__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicProperty__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicProperty__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicPropertyAccess().getRightParenthesisKeyword_1_2()); } + ')' + { after(grammarAccess.getAtomicPropertyAccess().getRightParenthesisKeyword_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLPattern__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLPattern__Group__0__Impl + rule__LTLPattern__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLPattern__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLPatternAccess().getLtlKeyword_0()); } + 'ltl' + { after(grammarAccess.getLTLPatternAccess().getLtlKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLPattern__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLPattern__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLPattern__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLPatternAccess().getPropertyAssignment_1()); } + (rule__LTLPattern__PropertyAssignment_1) + { after(grammarAccess.getLTLPatternAccess().getPropertyAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__DeadlockFreePattern__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__DeadlockFreePattern__Group__0__Impl + rule__DeadlockFreePattern__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__DeadlockFreePattern__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDeadlockFreePatternAccess().getDeadlockFreePatternAction_0()); } + () + { after(grammarAccess.getDeadlockFreePatternAccess().getDeadlockFreePatternAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__DeadlockFreePattern__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__DeadlockFreePattern__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__DeadlockFreePattern__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getDeadlockFreePatternAccess().getDeadlockfreeKeyword_1()); } + 'deadlockfree' + { after(grammarAccess.getDeadlockFreePatternAccess().getDeadlockfreeKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__InfinitelyOftenPattern__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__InfinitelyOftenPattern__Group__0__Impl + rule__InfinitelyOftenPattern__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__InfinitelyOftenPattern__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getInfinitelyOftenPatternAccess().getInfinitelyoftenKeyword_0()); } + 'infinitelyoften' + { after(grammarAccess.getInfinitelyOftenPatternAccess().getInfinitelyoftenKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__InfinitelyOftenPattern__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__InfinitelyOftenPattern__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__InfinitelyOftenPattern__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAssignment_1()); } + (rule__InfinitelyOftenPattern__SubjectAssignment_1) + { after(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__MortalPattern__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__MortalPattern__Group__0__Impl + rule__MortalPattern__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__MortalPattern__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getMortalPatternAccess().getMortalKeyword_0()); } + 'mortal' + { after(grammarAccess.getMortalPatternAccess().getMortalKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__MortalPattern__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__MortalPattern__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__MortalPattern__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getMortalPatternAccess().getSubjectAssignment_1()); } + (rule__MortalPattern__SubjectAssignment_1) + { after(grammarAccess.getMortalPatternAccess().getSubjectAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PresencePattern__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group__0__Impl + rule__PresencePattern__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getPresentKeyword_0()); } + 'present' + { after(grammarAccess.getPresencePatternAccess().getPresentKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group__1__Impl + rule__PresencePattern__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getSubjectAssignment_1()); } + (rule__PresencePattern__SubjectAssignment_1) + { after(grammarAccess.getPresencePatternAccess().getSubjectAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getAlternatives_2()); } + (rule__PresencePattern__Alternatives_2)? + { after(grammarAccess.getPresencePatternAccess().getAlternatives_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PresencePattern__Group_2_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_0__0__Impl + rule__PresencePattern__Group_2_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getLastingKeyword_2_0_0()); } + 'lasting' + { after(grammarAccess.getPresencePatternAccess().getLastingKeyword_2_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getLastingAssignment_2_0_1()); } + (rule__PresencePattern__LastingAssignment_2_0_1) + { after(grammarAccess.getPresencePatternAccess().getLastingAssignment_2_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PresencePattern__Group_2_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_1__0__Impl + rule__PresencePattern__Group_2_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getGroup_2_1_0()); } + (rule__PresencePattern__Group_2_1_0__0) + { after(grammarAccess.getPresencePatternAccess().getGroup_2_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getAlternatives_2_1_1()); } + (rule__PresencePattern__Alternatives_2_1_1)? + { after(grammarAccess.getPresencePatternAccess().getAlternatives_2_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PresencePattern__Group_2_1_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_1_0__0__Impl + rule__PresencePattern__Group_2_1_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getAfterKeyword_2_1_0_0()); } + 'after' + { after(grammarAccess.getPresencePatternAccess().getAfterKeyword_2_1_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_1_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getAfterAssignment_2_1_0_1()); } + (rule__PresencePattern__AfterAssignment_2_1_0_1) + { after(grammarAccess.getPresencePatternAccess().getAfterAssignment_2_1_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PresencePattern__Group_2_1_1_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_1_1_0__0__Impl + rule__PresencePattern__Group_2_1_1_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_1_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getWithinKeyword_2_1_1_0_0()); } + 'within' + { after(grammarAccess.getPresencePatternAccess().getWithinKeyword_2_1_1_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_1_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_1_1_0__1__Impl + rule__PresencePattern__Group_2_1_1_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_1_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getLowerAssignment_2_1_1_0_1()); } + (rule__PresencePattern__LowerAssignment_2_1_1_0_1) + { after(grammarAccess.getPresencePatternAccess().getLowerAssignment_2_1_1_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_1_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_1_1_0__2__Impl + rule__PresencePattern__Group_2_1_1_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_1_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getCommaKeyword_2_1_1_0_2()); } + ',' + { after(grammarAccess.getPresencePatternAccess().getCommaKeyword_2_1_1_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_1_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_1_1_0__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_1_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getUpperAssignment_2_1_1_0_3()); } + (rule__PresencePattern__UpperAssignment_2_1_1_0_3) + { after(grammarAccess.getPresencePatternAccess().getUpperAssignment_2_1_1_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PresencePattern__Group_2_1_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_1_1_1__0__Impl + rule__PresencePattern__Group_2_1_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getUntilKeyword_2_1_1_1_0()); } + 'until' + { after(grammarAccess.getPresencePatternAccess().getUntilKeyword_2_1_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_1_1_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_1_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getUntilAssignment_2_1_1_1_1()); } + (rule__PresencePattern__UntilAssignment_2_1_1_1_1) + { after(grammarAccess.getPresencePatternAccess().getUntilAssignment_2_1_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PresencePattern__Group_2_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_2__0__Impl + rule__PresencePattern__Group_2_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getGroup_2_2_0()); } + (rule__PresencePattern__Group_2_2_0__0) + { after(grammarAccess.getPresencePatternAccess().getGroup_2_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getGroup_2_2_1()); } + (rule__PresencePattern__Group_2_2_1__0)? + { after(grammarAccess.getPresencePatternAccess().getGroup_2_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PresencePattern__Group_2_2_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_2_0__0__Impl + rule__PresencePattern__Group_2_2_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getBeforeKeyword_2_2_0_0()); } + 'before' + { after(grammarAccess.getPresencePatternAccess().getBeforeKeyword_2_2_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_2_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getBeforeAssignment_2_2_0_1()); } + (rule__PresencePattern__BeforeAssignment_2_2_0_1) + { after(grammarAccess.getPresencePatternAccess().getBeforeAssignment_2_2_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PresencePattern__Group_2_2_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_2_1__0__Impl + rule__PresencePattern__Group_2_2_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getWithinKeyword_2_2_1_0()); } + 'within' + { after(grammarAccess.getPresencePatternAccess().getWithinKeyword_2_2_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_2_1__1__Impl + rule__PresencePattern__Group_2_2_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getLowerAssignment_2_2_1_1()); } + (rule__PresencePattern__LowerAssignment_2_2_1_1) + { after(grammarAccess.getPresencePatternAccess().getLowerAssignment_2_2_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_2_1__2__Impl + rule__PresencePattern__Group_2_2_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getCommaKeyword_2_2_1_2()); } + ',' + { after(grammarAccess.getPresencePatternAccess().getCommaKeyword_2_2_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_2_1__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_2_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getUpperAssignment_2_2_1_3()); } + (rule__PresencePattern__UpperAssignment_2_2_1_3) + { after(grammarAccess.getPresencePatternAccess().getUpperAssignment_2_2_1_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PresencePattern__Group_2_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_3__0__Impl + rule__PresencePattern__Group_2_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getBetweenKeyword_2_3_0()); } + 'between' + { after(grammarAccess.getPresencePatternAccess().getBetweenKeyword_2_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_3__1__Impl + rule__PresencePattern__Group_2_3__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getMinAssignment_2_3_1()); } + (rule__PresencePattern__MinAssignment_2_3_1) + { after(grammarAccess.getPresencePatternAccess().getMinAssignment_2_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_3__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_3__2__Impl + rule__PresencePattern__Group_2_3__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_3__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getAndKeyword_2_3_2()); } + 'and' + { after(grammarAccess.getPresencePatternAccess().getAndKeyword_2_3_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_3__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PresencePattern__Group_2_3__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__Group_2_3__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPresencePatternAccess().getMaxAssignment_2_3_3()); } + (rule__PresencePattern__MaxAssignment_2_3_3) + { after(grammarAccess.getPresencePatternAccess().getMaxAssignment_2_3_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AbsencePattern__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group__0__Impl + rule__AbsencePattern__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getAbsentKeyword_0()); } + 'absent' + { after(grammarAccess.getAbsencePatternAccess().getAbsentKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group__1__Impl + rule__AbsencePattern__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getSubjectAssignment_1()); } + (rule__AbsencePattern__SubjectAssignment_1) + { after(grammarAccess.getAbsencePatternAccess().getSubjectAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getAlternatives_2()); } + (rule__AbsencePattern__Alternatives_2)? + { after(grammarAccess.getAbsencePatternAccess().getAlternatives_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AbsencePattern__Group_2_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_0__0__Impl + rule__AbsencePattern__Group_2_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getGroup_2_0_0()); } + (rule__AbsencePattern__Group_2_0_0__0) + { after(grammarAccess.getAbsencePatternAccess().getGroup_2_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getAlternatives_2_0_1()); } + (rule__AbsencePattern__Alternatives_2_0_1)? + { after(grammarAccess.getAbsencePatternAccess().getAlternatives_2_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AbsencePattern__Group_2_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_0_0__0__Impl + rule__AbsencePattern__Group_2_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getAfterKeyword_2_0_0_0()); } + 'after' + { after(grammarAccess.getAbsencePatternAccess().getAfterKeyword_2_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getAfterAssignment_2_0_0_1()); } + (rule__AbsencePattern__AfterAssignment_2_0_0_1) + { after(grammarAccess.getAbsencePatternAccess().getAfterAssignment_2_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AbsencePattern__Group_2_0_1_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_0_1_0__0__Impl + rule__AbsencePattern__Group_2_0_1_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_1_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getWithinKeyword_2_0_1_0_0()); } + 'within' + { after(grammarAccess.getAbsencePatternAccess().getWithinKeyword_2_0_1_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_1_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_0_1_0__1__Impl + rule__AbsencePattern__Group_2_0_1_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_1_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getLowerAssignment_2_0_1_0_1()); } + (rule__AbsencePattern__LowerAssignment_2_0_1_0_1) + { after(grammarAccess.getAbsencePatternAccess().getLowerAssignment_2_0_1_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_1_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_0_1_0__2__Impl + rule__AbsencePattern__Group_2_0_1_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_1_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_0_1_0_2()); } + ',' + { after(grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_0_1_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_1_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_0_1_0__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_1_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getUpperAssignment_2_0_1_0_3()); } + (rule__AbsencePattern__UpperAssignment_2_0_1_0_3) + { after(grammarAccess.getAbsencePatternAccess().getUpperAssignment_2_0_1_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AbsencePattern__Group_2_0_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_0_1_1__0__Impl + rule__AbsencePattern__Group_2_0_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getUntilKeyword_2_0_1_1_0()); } + 'until' + { after(grammarAccess.getAbsencePatternAccess().getUntilKeyword_2_0_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_0_1_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_0_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getUntilAssignment_2_0_1_1_1()); } + (rule__AbsencePattern__UntilAssignment_2_0_1_1_1) + { after(grammarAccess.getAbsencePatternAccess().getUntilAssignment_2_0_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AbsencePattern__Group_2_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_1__0__Impl + rule__AbsencePattern__Group_2_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getGroup_2_1_0()); } + (rule__AbsencePattern__Group_2_1_0__0) + { after(grammarAccess.getAbsencePatternAccess().getGroup_2_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getGroup_2_1_1()); } + (rule__AbsencePattern__Group_2_1_1__0)? + { after(grammarAccess.getAbsencePatternAccess().getGroup_2_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AbsencePattern__Group_2_1_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_1_0__0__Impl + rule__AbsencePattern__Group_2_1_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getBeforeKeyword_2_1_0_0()); } + 'before' + { after(grammarAccess.getAbsencePatternAccess().getBeforeKeyword_2_1_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_1_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getBeforeAssignment_2_1_0_1()); } + (rule__AbsencePattern__BeforeAssignment_2_1_0_1) + { after(grammarAccess.getAbsencePatternAccess().getBeforeAssignment_2_1_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AbsencePattern__Group_2_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_1_1__0__Impl + rule__AbsencePattern__Group_2_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getForKeyword_2_1_1_0()); } + 'for' + { after(grammarAccess.getAbsencePatternAccess().getForKeyword_2_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_1_1__1__Impl + rule__AbsencePattern__Group_2_1_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getLowerAssignment_2_1_1_1()); } + (rule__AbsencePattern__LowerAssignment_2_1_1_1) + { after(grammarAccess.getAbsencePatternAccess().getLowerAssignment_2_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_1_1__2__Impl + rule__AbsencePattern__Group_2_1_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_1_1_2()); } + ',' + { after(grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_1_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_1_1__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_1_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getUpperAssignment_2_1_1_3()); } + (rule__AbsencePattern__UpperAssignment_2_1_1_3) + { after(grammarAccess.getAbsencePatternAccess().getUpperAssignment_2_1_1_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AbsencePattern__Group_2_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_2__0__Impl + rule__AbsencePattern__Group_2_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getBetweenKeyword_2_2_0()); } + 'between' + { after(grammarAccess.getAbsencePatternAccess().getBetweenKeyword_2_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_2__1__Impl + rule__AbsencePattern__Group_2_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getMinAssignment_2_2_1()); } + (rule__AbsencePattern__MinAssignment_2_2_1) + { after(grammarAccess.getAbsencePatternAccess().getMinAssignment_2_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_2__2__Impl + rule__AbsencePattern__Group_2_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getAndKeyword_2_2_2()); } + 'and' + { after(grammarAccess.getAbsencePatternAccess().getAndKeyword_2_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__AbsencePattern__Group_2_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__Group_2_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAbsencePatternAccess().getMaxAssignment_2_2_3()); } + (rule__AbsencePattern__MaxAssignment_2_2_3) + { after(grammarAccess.getAbsencePatternAccess().getMaxAssignment_2_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AlwaysPattern__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group__0__Impl + rule__AlwaysPattern__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getAlwaysKeyword_0()); } + 'always' + { after(grammarAccess.getAlwaysPatternAccess().getAlwaysKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group__1__Impl + rule__AlwaysPattern__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getSubjectAssignment_1()); } + (rule__AlwaysPattern__SubjectAssignment_1) + { after(grammarAccess.getAlwaysPatternAccess().getSubjectAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getAlternatives_2()); } + (rule__AlwaysPattern__Alternatives_2)? + { after(grammarAccess.getAlwaysPatternAccess().getAlternatives_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AlwaysPattern__Group_2_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_0__0__Impl + rule__AlwaysPattern__Group_2_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getBeforeKeyword_2_0_0()); } + 'before' + { after(grammarAccess.getAlwaysPatternAccess().getBeforeKeyword_2_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getBeforeAssignment_2_0_1()); } + (rule__AlwaysPattern__BeforeAssignment_2_0_1) + { after(grammarAccess.getAlwaysPatternAccess().getBeforeAssignment_2_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AlwaysPattern__Group_2_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_1__0__Impl + rule__AlwaysPattern__Group_2_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getAfterKeyword_2_1_0()); } + 'after' + { after(grammarAccess.getAlwaysPatternAccess().getAfterKeyword_2_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_1__1__Impl + rule__AlwaysPattern__Group_2_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getAfterAssignment_2_1_1()); } + (rule__AlwaysPattern__AfterAssignment_2_1_1) + { after(grammarAccess.getAlwaysPatternAccess().getAfterAssignment_2_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getGroup_2_1_2()); } + (rule__AlwaysPattern__Group_2_1_2__0)? + { after(grammarAccess.getAlwaysPatternAccess().getGroup_2_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AlwaysPattern__Group_2_1_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_1_2__0__Impl + rule__AlwaysPattern__Group_2_1_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_1_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getUntilKeyword_2_1_2_0()); } + 'until' + { after(grammarAccess.getAlwaysPatternAccess().getUntilKeyword_2_1_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_1_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_1_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_1_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getUntilAssignment_2_1_2_1()); } + (rule__AlwaysPattern__UntilAssignment_2_1_2_1) + { after(grammarAccess.getAlwaysPatternAccess().getUntilAssignment_2_1_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AlwaysPattern__Group_2_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_2__0__Impl + rule__AlwaysPattern__Group_2_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getBetweenKeyword_2_2_0()); } + 'between' + { after(grammarAccess.getAlwaysPatternAccess().getBetweenKeyword_2_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_2__1__Impl + rule__AlwaysPattern__Group_2_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getMinAssignment_2_2_1()); } + (rule__AlwaysPattern__MinAssignment_2_2_1) + { after(grammarAccess.getAlwaysPatternAccess().getMinAssignment_2_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_2__2__Impl + rule__AlwaysPattern__Group_2_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getAndKeyword_2_2_2()); } + 'and' + { after(grammarAccess.getAlwaysPatternAccess().getAndKeyword_2_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__AlwaysPattern__Group_2_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__Group_2_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAlwaysPatternAccess().getMaxAssignment_2_2_3()); } + (rule__AlwaysPattern__MaxAssignment_2_2_3) + { after(grammarAccess.getAlwaysPatternAccess().getMaxAssignment_2_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group__0__Impl + rule__SequencePattern__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAtomicObservableParserRuleCall_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getAtomicObservableParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAlternatives_1()); } + (rule__SequencePattern__Alternatives_1) + { after(grammarAccess.getSequencePatternAccess().getAlternatives_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0__0__Impl + rule__SequencePattern__Group_1_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getLeadstoKeyword_1_0_0()); } + 'leadsto' + { after(grammarAccess.getSequencePatternAccess().getLeadstoKeyword_1_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0__1__Impl + rule__SequencePattern__Group_1_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getLeadsToPatternSubjectAction_1_0_1()); } + () + { after(grammarAccess.getSequencePatternAccess().getLeadsToPatternSubjectAction_1_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0__2__Impl + rule__SequencePattern__Group_1_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getFollowerAssignment_1_0_2()); } + (rule__SequencePattern__FollowerAssignment_1_0_2) + { after(grammarAccess.getSequencePatternAccess().getFollowerAssignment_1_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAlternatives_1_0_3()); } + (rule__SequencePattern__Alternatives_1_0_3)? + { after(grammarAccess.getSequencePatternAccess().getAlternatives_1_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_0_3_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_0__0__Impl + rule__SequencePattern__Group_1_0_3_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_0_3_0_0()); } + 'before' + { after(grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_0_3_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_0__1__Impl + rule__SequencePattern__Group_1_0_3_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getBeforeAssignment_1_0_3_0_1()); } + (rule__SequencePattern__BeforeAssignment_1_0_3_0_1) + { after(grammarAccess.getSequencePatternAccess().getBeforeAssignment_1_0_3_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_0__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_0_2()); } + (rule__SequencePattern__Group_1_0_3_0_2__0)? + { after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_0_3_0_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_0_2__0__Impl + rule__SequencePattern__Group_1_0_3_0_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_0_2_0()); } + 'within' + { after(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_0_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_0_2__1__Impl + rule__SequencePattern__Group_1_0_3_0_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_0_2_1()); } + (rule__SequencePattern__LowerAssignment_1_0_3_0_2_1) + { after(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_0_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_0_2__2__Impl + rule__SequencePattern__Group_1_0_3_0_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_0_2_2()); } + ',' + { after(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_0_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_0_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_0_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_0_2_3()); } + (rule__SequencePattern__UpperAssignment_1_0_3_0_2_3) + { after(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_0_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_0_3_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_1__0__Impl + rule__SequencePattern__Group_1_0_3_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_1_0()); } + 'within' + { after(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_1__1__Impl + rule__SequencePattern__Group_1_0_3_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_1_1()); } + (rule__SequencePattern__LowerAssignment_1_0_3_1_1) + { after(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_1__2__Impl + rule__SequencePattern__Group_1_0_3_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_1_2()); } + ',' + { after(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_1__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_1_3()); } + (rule__SequencePattern__UpperAssignment_1_0_3_1_3) + { after(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_1_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_0_3_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_2__0__Impl + rule__SequencePattern__Group_1_0_3_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAfterKeyword_1_0_3_2_0()); } + 'after' + { after(grammarAccess.getSequencePatternAccess().getAfterKeyword_1_0_3_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_2__1__Impl + rule__SequencePattern__Group_1_0_3_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAfterAssignment_1_0_3_2_1()); } + (rule__SequencePattern__AfterAssignment_1_0_3_2_1) + { after(grammarAccess.getSequencePatternAccess().getAfterAssignment_1_0_3_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_2__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAlternatives_1_0_3_2_2()); } + (rule__SequencePattern__Alternatives_1_0_3_2_2)? + { after(grammarAccess.getSequencePatternAccess().getAlternatives_1_0_3_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_0_3_2_2_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_2_2_0__0__Impl + rule__SequencePattern__Group_1_0_3_2_2_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2_2_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_2_2_0_0()); } + 'within' + { after(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_2_2_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2_2_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_2_2_0__1__Impl + rule__SequencePattern__Group_1_0_3_2_2_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2_2_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_2_2_0_1()); } + (rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1) + { after(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_2_2_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2_2_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_2_2_0__2__Impl + rule__SequencePattern__Group_1_0_3_2_2_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2_2_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_2_2_0_2()); } + ',' + { after(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_2_2_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2_2_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_2_2_0__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2_2_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_2_2_0_3()); } + (rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3) + { after(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_2_2_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_0_3_2_2_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_2_2_1__0__Impl + rule__SequencePattern__Group_1_0_3_2_2_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2_2_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getUntilKeyword_1_0_3_2_2_1_0()); } + 'until' + { after(grammarAccess.getSequencePatternAccess().getUntilKeyword_1_0_3_2_2_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2_2_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_2_2_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_2_2_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getUntilAssignment_1_0_3_2_2_1_1()); } + (rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1) + { after(grammarAccess.getSequencePatternAccess().getUntilAssignment_1_0_3_2_2_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_0_3_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_3__0__Impl + rule__SequencePattern__Group_1_0_3_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_0_3_3_0()); } + 'between' + { after(grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_0_3_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_3__1__Impl + rule__SequencePattern__Group_1_0_3_3__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getMinAssignment_1_0_3_3_1()); } + (rule__SequencePattern__MinAssignment_1_0_3_3_1) + { after(grammarAccess.getSequencePatternAccess().getMinAssignment_1_0_3_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_3__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_3__2__Impl + rule__SequencePattern__Group_1_0_3_3__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_3__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAndKeyword_1_0_3_3_2()); } + 'and' + { after(grammarAccess.getSequencePatternAccess().getAndKeyword_1_0_3_3_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_3__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_0_3_3__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_0_3_3__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getMaxAssignment_1_0_3_3_3()); } + (rule__SequencePattern__MaxAssignment_1_0_3_3_3) + { after(grammarAccess.getSequencePatternAccess().getMaxAssignment_1_0_3_3_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1__0__Impl + rule__SequencePattern__Group_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getPrecedesKeyword_1_1_0()); } + 'precedes' + { after(grammarAccess.getSequencePatternAccess().getPrecedesKeyword_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1__1__Impl + rule__SequencePattern__Group_1_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getPrecedesPatternSubjectAction_1_1_1()); } + () + { after(grammarAccess.getSequencePatternAccess().getPrecedesPatternSubjectAction_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1__2__Impl + rule__SequencePattern__Group_1_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getFollowerAssignment_1_1_2()); } + (rule__SequencePattern__FollowerAssignment_1_1_2) + { after(grammarAccess.getSequencePatternAccess().getFollowerAssignment_1_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAlternatives_1_1_3()); } + (rule__SequencePattern__Alternatives_1_1_3)? + { after(grammarAccess.getSequencePatternAccess().getAlternatives_1_1_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_1_3_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_0__0__Impl + rule__SequencePattern__Group_1_1_3_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_1_3_0_0()); } + 'before' + { after(grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_1_3_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getBeforeAssignment_1_1_3_0_1()); } + (rule__SequencePattern__BeforeAssignment_1_1_3_0_1) + { after(grammarAccess.getSequencePatternAccess().getBeforeAssignment_1_1_3_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_1_3_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_1__0__Impl + rule__SequencePattern__Group_1_1_3_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAfterKeyword_1_1_3_1_0()); } + 'after' + { after(grammarAccess.getSequencePatternAccess().getAfterKeyword_1_1_3_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_1__1__Impl + rule__SequencePattern__Group_1_1_3_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAfterAssignment_1_1_3_1_1()); } + (rule__SequencePattern__AfterAssignment_1_1_3_1_1) + { after(grammarAccess.getSequencePatternAccess().getAfterAssignment_1_1_3_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_1_2()); } + (rule__SequencePattern__Group_1_1_3_1_2__0)? + { after(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_1_3_1_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_1_2__0__Impl + rule__SequencePattern__Group_1_1_3_1_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_1_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getUntilKeyword_1_1_3_1_2_0()); } + 'until' + { after(grammarAccess.getSequencePatternAccess().getUntilKeyword_1_1_3_1_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_1_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_1_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_1_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getUntilAssignment_1_1_3_1_2_1()); } + (rule__SequencePattern__UntilAssignment_1_1_3_1_2_1) + { after(grammarAccess.getSequencePatternAccess().getUntilAssignment_1_1_3_1_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__SequencePattern__Group_1_1_3_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_2__0__Impl + rule__SequencePattern__Group_1_1_3_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_1_3_2_0()); } + 'between' + { after(grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_1_3_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_2__1__Impl + rule__SequencePattern__Group_1_1_3_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getMinAssignment_1_1_3_2_1()); } + (rule__SequencePattern__MinAssignment_1_1_3_2_1) + { after(grammarAccess.getSequencePatternAccess().getMinAssignment_1_1_3_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_2__2__Impl + rule__SequencePattern__Group_1_1_3_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getAndKeyword_1_1_3_2_2()); } + 'and' + { after(grammarAccess.getSequencePatternAccess().getAndKeyword_1_1_3_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__SequencePattern__Group_1_1_3_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__Group_1_1_3_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getSequencePatternAccess().getMaxAssignment_1_1_3_2_3()); } + (rule__SequencePattern__MaxAssignment_1_1_3_2_3) + { after(grammarAccess.getSequencePatternAccess().getMaxAssignment_1_1_3_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLQuantified__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLQuantified__Group_0__0__Impl + rule__LTLQuantified__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLQuantifiedAccess().getAlternatives_0_0()); } + (rule__LTLQuantified__Alternatives_0_0) + { after(grammarAccess.getLTLQuantifiedAccess().getAlternatives_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLQuantified__Group_0__1__Impl + rule__LTLQuantified__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLQuantifiedAccess().getIndexAssignment_0_1()); } + (rule__LTLQuantified__IndexAssignment_0_1) + { after(grammarAccess.getLTLQuantifiedAccess().getIndexAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLQuantified__Group_0__2__Impl + rule__LTLQuantified__Group_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLQuantifiedAccess().getInKeyword_0_2()); } + 'in' + { after(grammarAccess.getLTLQuantifiedAccess().getInKeyword_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLQuantified__Group_0__3__Impl + rule__LTLQuantified__Group_0__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLQuantifiedAccess().getTypeAssignment_0_3()); } + (rule__LTLQuantified__TypeAssignment_0_3) + { after(grammarAccess.getLTLQuantifiedAccess().getTypeAssignment_0_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLQuantified__Group_0__4__Impl + rule__LTLQuantified__Group_0__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLQuantifiedAccess().getFullStopKeyword_0_4()); } + '.' + { after(grammarAccess.getLTLQuantifiedAccess().getFullStopKeyword_0_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLQuantified__Group_0__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLQuantifiedAccess().getChildAssignment_0_5()); } + (rule__LTLQuantified__ChildAssignment_0_5) + { after(grammarAccess.getLTLQuantifiedAccess().getChildAssignment_0_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLQuantified__Group_0_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLQuantified__Group_0_0_0__0__Impl + rule__LTLQuantified__Group_0_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLQuantifiedAccess().getLTLAllAction_0_0_0_0()); } + () + { after(grammarAccess.getLTLQuantifiedAccess().getLTLAllAction_0_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLQuantified__Group_0_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLQuantifiedAccess().getAllKeyword_0_0_0_1()); } + 'all' + { after(grammarAccess.getLTLQuantifiedAccess().getAllKeyword_0_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLQuantified__Group_0_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLQuantified__Group_0_0_1__0__Impl + rule__LTLQuantified__Group_0_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLQuantifiedAccess().getLTLExistsAction_0_0_1_0()); } + () + { after(grammarAccess.getLTLQuantifiedAccess().getLTLExistsAction_0_0_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLQuantified__Group_0_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__Group_0_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLQuantifiedAccess().getExistsKeyword_0_0_1_1()); } + 'exists' + { after(grammarAccess.getLTLQuantifiedAccess().getExistsKeyword_0_0_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLDisjunction__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLDisjunction__Group__0__Impl + rule__LTLDisjunction__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLDisjunction__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLDisjunctionAccess().getLTLImplicationParserRuleCall_0()); } + ruleLTLImplication + { after(grammarAccess.getLTLDisjunctionAccess().getLTLImplicationParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLDisjunction__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLDisjunction__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLDisjunction__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLDisjunctionAccess().getGroup_1()); } + (rule__LTLDisjunction__Group_1__0)* + { after(grammarAccess.getLTLDisjunctionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLDisjunction__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLDisjunction__Group_1__0__Impl + rule__LTLDisjunction__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLDisjunction__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLDisjunctionAccess().getLTLDisjunctionLeftAction_1_0()); } + () + { after(grammarAccess.getLTLDisjunctionAccess().getLTLDisjunctionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLDisjunction__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLDisjunction__Group_1__1__Impl + rule__LTLDisjunction__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLDisjunction__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLDisjunctionAccess().getOrKeyword_1_1()); } + 'or' + { after(grammarAccess.getLTLDisjunctionAccess().getOrKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLDisjunction__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLDisjunction__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLDisjunction__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLDisjunctionAccess().getRightAssignment_1_2()); } + (rule__LTLDisjunction__RightAssignment_1_2) + { after(grammarAccess.getLTLDisjunctionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLImplication__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLImplication__Group__0__Impl + rule__LTLImplication__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLImplication__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLImplicationAccess().getLTLConjunctionParserRuleCall_0()); } + ruleLTLConjunction + { after(grammarAccess.getLTLImplicationAccess().getLTLConjunctionParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLImplication__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLImplication__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLImplication__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLImplicationAccess().getGroup_1()); } + (rule__LTLImplication__Group_1__0)? + { after(grammarAccess.getLTLImplicationAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLImplication__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLImplication__Group_1__0__Impl + rule__LTLImplication__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLImplication__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLImplicationAccess().getLTLImplicationLeftAction_1_0()); } + () + { after(grammarAccess.getLTLImplicationAccess().getLTLImplicationLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLImplication__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLImplication__Group_1__1__Impl + rule__LTLImplication__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLImplication__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); } + '=>' + { after(grammarAccess.getLTLImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLImplication__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLImplication__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLImplication__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLImplicationAccess().getRightAssignment_1_2()); } + (rule__LTLImplication__RightAssignment_1_2) + { after(grammarAccess.getLTLImplicationAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLConjunction__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLConjunction__Group__0__Impl + rule__LTLConjunction__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLConjunction__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLConjunctionAccess().getLTLBinaryParserRuleCall_0()); } + ruleLTLBinary + { after(grammarAccess.getLTLConjunctionAccess().getLTLBinaryParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLConjunction__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLConjunction__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLConjunction__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLConjunctionAccess().getGroup_1()); } + (rule__LTLConjunction__Group_1__0)* + { after(grammarAccess.getLTLConjunctionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLConjunction__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLConjunction__Group_1__0__Impl + rule__LTLConjunction__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLConjunction__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLConjunctionAccess().getLTLConjunctionLeftAction_1_0()); } + () + { after(grammarAccess.getLTLConjunctionAccess().getLTLConjunctionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLConjunction__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLConjunction__Group_1__1__Impl + rule__LTLConjunction__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLConjunction__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLConjunctionAccess().getAndKeyword_1_1()); } + 'and' + { after(grammarAccess.getLTLConjunctionAccess().getAndKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLConjunction__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLConjunction__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLConjunction__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLConjunctionAccess().getRightAssignment_1_2()); } + (rule__LTLConjunction__RightAssignment_1_2) + { after(grammarAccess.getLTLConjunctionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLBinary__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLBinary__Group__0__Impl + rule__LTLBinary__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLBinaryAccess().getLTLUnaryParserRuleCall_0()); } + ruleLTLUnary + { after(grammarAccess.getLTLBinaryAccess().getLTLUnaryParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLBinary__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLBinaryAccess().getAlternatives_1()); } + (rule__LTLBinary__Alternatives_1)? + { after(grammarAccess.getLTLBinaryAccess().getAlternatives_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLBinary__Group_1_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLBinary__Group_1_0__0__Impl + rule__LTLBinary__Group_1_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group_1_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLBinaryAccess().getLTLUntilLeftAction_1_0_0()); } + () + { after(grammarAccess.getLTLBinaryAccess().getLTLUntilLeftAction_1_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group_1_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLBinary__Group_1_0__1__Impl + rule__LTLBinary__Group_1_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group_1_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLBinaryAccess().getUntilKeyword_1_0_1()); } + 'until' + { after(grammarAccess.getLTLBinaryAccess().getUntilKeyword_1_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group_1_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLBinary__Group_1_0__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group_1_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLBinaryAccess().getRightAssignment_1_0_2()); } + (rule__LTLBinary__RightAssignment_1_0_2) + { after(grammarAccess.getLTLBinaryAccess().getRightAssignment_1_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLBinary__Group_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLBinary__Group_1_1__0__Impl + rule__LTLBinary__Group_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLBinaryAccess().getLTLReleaseLeftAction_1_1_0()); } + () + { after(grammarAccess.getLTLBinaryAccess().getLTLReleaseLeftAction_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLBinary__Group_1_1__1__Impl + rule__LTLBinary__Group_1_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLBinaryAccess().getReleaseKeyword_1_1_1()); } + 'release' + { after(grammarAccess.getLTLBinaryAccess().getReleaseKeyword_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group_1_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLBinary__Group_1_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__Group_1_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLBinaryAccess().getRightAssignment_1_1_2()); } + (rule__LTLBinary__RightAssignment_1_1_2) + { after(grammarAccess.getLTLBinaryAccess().getRightAssignment_1_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLUnary__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLUnary__Group_0__0__Impl + rule__LTLUnary__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLUnaryAccess().getAlternatives_0_0()); } + (rule__LTLUnary__Alternatives_0_0) + { after(grammarAccess.getLTLUnaryAccess().getAlternatives_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLUnary__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLUnaryAccess().getOperandAssignment_0_1()); } + (rule__LTLUnary__OperandAssignment_0_1) + { after(grammarAccess.getLTLUnaryAccess().getOperandAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLUnary__Group_0_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLUnary__Group_0_0_0__0__Impl + rule__LTLUnary__Group_0_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLUnaryAccess().getLTLUnaryNegationAction_0_0_0_0()); } + () + { after(grammarAccess.getLTLUnaryAccess().getLTLUnaryNegationAction_0_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLUnary__Group_0_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLUnaryAccess().getNotKeyword_0_0_0_1()); } + 'not' + { after(grammarAccess.getLTLUnaryAccess().getNotKeyword_0_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLUnary__Group_0_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLUnary__Group_0_0_1__0__Impl + rule__LTLUnary__Group_0_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLUnaryAccess().getLTLUnaryNextAction_0_0_1_0()); } + () + { after(grammarAccess.getLTLUnaryAccess().getLTLUnaryNextAction_0_0_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLUnary__Group_0_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLUnaryAccess().getNextKeyword_0_0_1_1()); } + 'next' + { after(grammarAccess.getLTLUnaryAccess().getNextKeyword_0_0_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLUnary__Group_0_0_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLUnary__Group_0_0_2__0__Impl + rule__LTLUnary__Group_0_0_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLUnaryAccess().getLTLUnaryAlwaysAction_0_0_2_0()); } + () + { after(grammarAccess.getLTLUnaryAccess().getLTLUnaryAlwaysAction_0_0_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLUnary__Group_0_0_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLUnaryAccess().getLeftSquareBracketRightSquareBracketKeyword_0_0_2_1()); } + '[]' + { after(grammarAccess.getLTLUnaryAccess().getLeftSquareBracketRightSquareBracketKeyword_0_0_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LTLUnary__Group_0_0_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLUnary__Group_0_0_3__0__Impl + rule__LTLUnary__Group_0_0_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLUnaryAccess().getLTLUnaryEventuallyAction_0_0_3_0()); } + () + { after(grammarAccess.getLTLUnaryAccess().getLTLUnaryEventuallyAction_0_0_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LTLUnary__Group_0_0_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__Group_0_0_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLTLUnaryAccess().getLessThanSignGreaterThanSignKeyword_0_0_3_1()); } + '<>' + { after(grammarAccess.getLTLUnaryAccess().getLessThanSignGreaterThanSignKeyword_0_0_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AtomicLTL__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicLTL__Group_0__0__Impl + rule__AtomicLTL__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicLTL__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicLTLAccess().getLTLVariableAction_0_0()); } + () + { after(grammarAccess.getAtomicLTLAccess().getLTLVariableAction_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicLTL__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicLTL__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicLTL__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicLTLAccess().getDeclarationAssignment_0_1()); } + (rule__AtomicLTL__DeclarationAssignment_0_1) + { after(grammarAccess.getAtomicLTLAccess().getDeclarationAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AtomicLTL__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicLTL__Group_2__0__Impl + rule__AtomicLTL__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicLTL__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicLTLAccess().getLeftParenthesisKeyword_2_0()); } + '(' + { after(grammarAccess.getAtomicLTLAccess().getLeftParenthesisKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicLTL__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicLTL__Group_2__1__Impl + rule__AtomicLTL__Group_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicLTL__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicLTLAccess().getLTLPropertyParserRuleCall_2_1()); } + ruleLTLProperty + { after(grammarAccess.getAtomicLTLAccess().getLTLPropertyParserRuleCall_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicLTL__Group_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicLTL__Group_2__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicLTL__Group_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicLTLAccess().getRightParenthesisKeyword_2_2()); } + ')' + { after(grammarAccess.getAtomicLTLAccess().getRightParenthesisKeyword_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__EnterStateEvent__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__EnterStateEvent__Group__0__Impl + rule__EnterStateEvent__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__EnterStateEvent__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getEnterStateEventAccess().getEnterKeyword_0()); } + 'enter' + { after(grammarAccess.getEnterStateEventAccess().getEnterKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__EnterStateEvent__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__EnterStateEvent__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__EnterStateEvent__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getEnterStateEventAccess().getSubjectAssignment_1()); } + (rule__EnterStateEvent__SubjectAssignment_1) + { after(grammarAccess.getEnterStateEventAccess().getSubjectAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__LeaveStateEvent__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__LeaveStateEvent__Group__0__Impl + rule__LeaveStateEvent__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__LeaveStateEvent__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLeaveStateEventAccess().getLeaveKeyword_0()); } + 'leave' + { after(grammarAccess.getLeaveStateEventAccess().getLeaveKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__LeaveStateEvent__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__LeaveStateEvent__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__LeaveStateEvent__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getLeaveStateEventAccess().getSubjectAssignment_1()); } + (rule__LeaveStateEvent__SubjectAssignment_1) + { after(grammarAccess.getLeaveStateEventAccess().getSubjectAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ObservableDisjunction__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableDisjunction__Group__0__Impl + rule__ObservableDisjunction__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableDisjunction__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableDisjunctionAccess().getObservableImplicationParserRuleCall_0()); } + ruleObservableImplication + { after(grammarAccess.getObservableDisjunctionAccess().getObservableImplicationParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableDisjunction__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableDisjunction__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableDisjunction__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableDisjunctionAccess().getGroup_1()); } + (rule__ObservableDisjunction__Group_1__0)* + { after(grammarAccess.getObservableDisjunctionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ObservableDisjunction__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableDisjunction__Group_1__0__Impl + rule__ObservableDisjunction__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableDisjunction__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableDisjunctionAccess().getObservableDisjunctionLeftAction_1_0()); } + () + { after(grammarAccess.getObservableDisjunctionAccess().getObservableDisjunctionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableDisjunction__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableDisjunction__Group_1__1__Impl + rule__ObservableDisjunction__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableDisjunction__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableDisjunctionAccess().getOrKeyword_1_1()); } + 'or' + { after(grammarAccess.getObservableDisjunctionAccess().getOrKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableDisjunction__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableDisjunction__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableDisjunction__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableDisjunctionAccess().getRightAssignment_1_2()); } + (rule__ObservableDisjunction__RightAssignment_1_2) + { after(grammarAccess.getObservableDisjunctionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ObservableImplication__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableImplication__Group__0__Impl + rule__ObservableImplication__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableImplication__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableImplicationAccess().getObservableConjunctionParserRuleCall_0()); } + ruleObservableConjunction + { after(grammarAccess.getObservableImplicationAccess().getObservableConjunctionParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableImplication__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableImplication__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableImplication__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableImplicationAccess().getGroup_1()); } + (rule__ObservableImplication__Group_1__0)? + { after(grammarAccess.getObservableImplicationAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ObservableImplication__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableImplication__Group_1__0__Impl + rule__ObservableImplication__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableImplication__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableImplicationAccess().getObservableImplicationLeftAction_1_0()); } + () + { after(grammarAccess.getObservableImplicationAccess().getObservableImplicationLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableImplication__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableImplication__Group_1__1__Impl + rule__ObservableImplication__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableImplication__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); } + '=>' + { after(grammarAccess.getObservableImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableImplication__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableImplication__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableImplication__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableImplicationAccess().getRightAssignment_1_2()); } + (rule__ObservableImplication__RightAssignment_1_2) + { after(grammarAccess.getObservableImplicationAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ObservableConjunction__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableConjunction__Group__0__Impl + rule__ObservableConjunction__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableConjunction__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableConjunctionAccess().getObservableNegationParserRuleCall_0()); } + ruleObservableNegation + { after(grammarAccess.getObservableConjunctionAccess().getObservableNegationParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableConjunction__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableConjunction__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableConjunction__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableConjunctionAccess().getGroup_1()); } + (rule__ObservableConjunction__Group_1__0)* + { after(grammarAccess.getObservableConjunctionAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ObservableConjunction__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableConjunction__Group_1__0__Impl + rule__ObservableConjunction__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableConjunction__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableConjunctionAccess().getObservableConjunctionLeftAction_1_0()); } + () + { after(grammarAccess.getObservableConjunctionAccess().getObservableConjunctionLeftAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableConjunction__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableConjunction__Group_1__1__Impl + rule__ObservableConjunction__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableConjunction__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableConjunctionAccess().getAndKeyword_1_1()); } + 'and' + { after(grammarAccess.getObservableConjunctionAccess().getAndKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableConjunction__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableConjunction__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableConjunction__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableConjunctionAccess().getRightAssignment_1_2()); } + (rule__ObservableConjunction__RightAssignment_1_2) + { after(grammarAccess.getObservableConjunctionAccess().getRightAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ObservableNegation__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableNegation__Group_0__0__Impl + rule__ObservableNegation__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableNegation__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableNegationAccess().getObservableNegationAction_0_0()); } + () + { after(grammarAccess.getObservableNegationAccess().getObservableNegationAction_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableNegation__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableNegation__Group_0__1__Impl + rule__ObservableNegation__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableNegation__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableNegationAccess().getNotKeyword_0_1()); } + 'not' + { after(grammarAccess.getObservableNegationAccess().getNotKeyword_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableNegation__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ObservableNegation__Group_0__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableNegation__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getObservableNegationAccess().getChildAssignment_0_2()); } + (rule__ObservableNegation__ChildAssignment_0_2) + { after(grammarAccess.getObservableNegationAccess().getChildAssignment_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__AtomicObservable__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicObservable__Group_0__0__Impl + rule__AtomicObservable__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicObservable__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicObservableAccess().getLeftParenthesisKeyword_0_0()); } + '(' + { after(grammarAccess.getAtomicObservableAccess().getLeftParenthesisKeyword_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicObservable__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicObservable__Group_0__1__Impl + rule__AtomicObservable__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicObservable__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicObservableAccess().getObservableParserRuleCall_0_1()); } + ruleObservable + { after(grammarAccess.getAtomicObservableAccess().getObservableParserRuleCall_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicObservable__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__AtomicObservable__Group_0__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicObservable__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAtomicObservableAccess().getRightParenthesisKeyword_0_2()); } + ')' + { after(grammarAccess.getAtomicObservableAccess().getRightParenthesisKeyword_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__PathEvent__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PathEvent__Group__0__Impl + rule__PathEvent__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PathEvent__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPathEventAccess().getPathAssignment_0()); } + (rule__PathEvent__PathAssignment_0) + { after(grammarAccess.getPathEventAccess().getPathAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__PathEvent__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PathEvent__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PathEvent__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPathEventAccess().getItemAssignment_1()); } + (rule__PathEvent__ItemAssignment_1) + { after(grammarAccess.getPathEventAccess().getItemAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Path__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Path__Group__0__Impl + rule__Path__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Path__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPathAccess().getItemsAssignment_0()); } + (rule__Path__ItemsAssignment_0) + { after(grammarAccess.getPathAccess().getItemsAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Path__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Path__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Path__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getPathAccess().getSolidusKeyword_1()); } + '/' + { after(grammarAccess.getPathAccess().getSolidusKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__StateSubject__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__StateSubject__Group__0__Impl + rule__StateSubject__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__StateSubject__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStateSubjectAccess().getStateKeyword_0()); } + 'state' + { after(grammarAccess.getStateSubjectAccess().getStateKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__StateSubject__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__StateSubject__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__StateSubject__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStateSubjectAccess().getStateAssignment_1()); } + (rule__StateSubject__StateAssignment_1) + { after(grammarAccess.getStateSubjectAccess().getStateAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__ValueSubject__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ValueSubject__Group__0__Impl + rule__ValueSubject__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ValueSubject__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getValueSubjectAccess().getValueKeyword_0()); } + 'value' + { after(grammarAccess.getValueSubjectAccess().getValueKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__ValueSubject__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ValueSubject__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ValueSubject__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getValueSubjectAccess().getValueAssignment_1()); } + (rule__ValueSubject__ValueAssignment_1) + { after(grammarAccess.getValueSubjectAccess().getValueAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__TagSubject__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__TagSubject__Group__0__Impl + rule__TagSubject__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__TagSubject__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTagSubjectAccess().getTagKeyword_0()); } + 'tag' + { after(grammarAccess.getTagSubjectAccess().getTagKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__TagSubject__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__TagSubject__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__TagSubject__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getTagSubjectAccess().getTagAssignment_1()); } + (rule__TagSubject__TagAssignment_1) + { after(grammarAccess.getTagSubjectAccess().getTagAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__EventSubject__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__EventSubject__Group__0__Impl + rule__EventSubject__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__EventSubject__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getEventSubjectAccess().getEventKeyword_0()); } + 'event' + { after(grammarAccess.getEventSubjectAccess().getEventKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__EventSubject__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__EventSubject__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__EventSubject__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getEventSubjectAccess().getEventAssignment_1()); } + (rule__EventSubject__EventAssignment_1) + { after(grammarAccess.getEventSubjectAccess().getEventAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Model__ImportsAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getModelAccess().getImportsImportDeclarationParserRuleCall_1_0()); } + ruleImportDeclaration + { after(grammarAccess.getModelAccess().getImportsImportDeclarationParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Model__DeclarationsAssignment_2_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_2_0_0()); } + ruleDeclaration + { after(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_2_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Model__RequirementsAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getModelAccess().getRequirementsRequirementParserRuleCall_2_1_0()); } + ruleRequirement + { after(grammarAccess.getModelAccess().getRequirementsRequirementParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Model__RootAssignment_2_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getModelAccess().getRootRootParserRuleCall_2_2_0()); } + ruleRoot + { after(grammarAccess.getModelAccess().getRootRootParserRuleCall_2_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__DeclarationAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRootAccess().getDeclarationRootDeclarationCrossReference_1_0()); } + ( + { before(grammarAccess.getRootAccess().getDeclarationRootDeclarationIDTerminalRuleCall_1_0_1()); } + RULE_ID + { after(grammarAccess.getRootAccess().getDeclarationRootDeclarationIDTerminalRuleCall_1_0_1()); } + ) + { after(grammarAccess.getRootAccess().getDeclarationRootDeclarationCrossReference_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__ObservedAssignment_2_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_0_0()); } + ( + { before(grammarAccess.getRootAccess().getObservedRootDeclarationIDTerminalRuleCall_2_1_0_0_1()); } + RULE_ID + { after(grammarAccess.getRootAccess().getObservedRootDeclarationIDTerminalRuleCall_2_1_0_0_1()); } + ) + { after(grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Root__ObservedAssignment_2_1_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_1_1_0()); } + ( + { before(grammarAccess.getRootAccess().getObservedRootDeclarationIDTerminalRuleCall_2_1_1_1_0_1()); } + RULE_ID + { after(grammarAccess.getRootAccess().getObservedRootDeclarationIDTerminalRuleCall_2_1_1_1_0_1()); } + ) + { after(grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ImportDeclaration__ImportURIAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getImportDeclarationAccess().getImportURISTRINGTerminalRuleCall_1_0()); } + RULE_STRING + { after(grammarAccess.getImportDeclarationAccess().getImportURISTRINGTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFunctionDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + RULE_ID + { after(grammarAccess.getFunctionDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__ParametersAssignment_2_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_0_0()); } + ruleParametersDeclaration + { after(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__ParametersAssignment_2_1_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_1_1_0()); } + ruleParametersDeclaration + { after(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__TypeAssignment_4 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFunctionDeclarationAccess().getTypeTypeParserRuleCall_4_0()); } + ruleType + { after(grammarAccess.getFunctionDeclarationAccess().getTypeTypeParserRuleCall_4_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__VariablesAssignment_6_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_1_0()); } + ruleVariablesDeclaration + { after(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__VariablesAssignment_6_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_2_1_0()); } + ruleVariablesDeclaration + { after(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionDeclaration__StatementAssignment_7 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFunctionDeclarationAccess().getStatementStatementParserRuleCall_7_0()); } + ruleStatement + { after(grammarAccess.getFunctionDeclarationAccess().getStatementStatementParserRuleCall_7_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__TypeDeclaration__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getTypeDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + RULE_ID + { after(grammarAccess.getTypeDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__TypeDeclaration__ValueAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getTypeDeclarationAccess().getValueTypeParserRuleCall_3_0()); } + ruleType + { after(grammarAccess.getTypeDeclarationAccess().getValueTypeParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelDeclaration__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getChannelDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + RULE_ID + { after(grammarAccess.getChannelDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelDeclaration__ValueAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getChannelDeclarationAccess().getValueChannelTypeParserRuleCall_3_0()); } + ruleChannelType + { after(grammarAccess.getChannelDeclarationAccess().getValueChannelTypeParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__SizeAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getChannelTypeAccess().getSizeExpressionParserRuleCall_1_1_0()); } + ruleExpression + { after(grammarAccess.getChannelTypeAccess().getSizeExpressionParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__InAssignment_2_0_0_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getChannelTypeAccess().getInInKeyword_2_0_0_0_0_0()); } + ( + { before(grammarAccess.getChannelTypeAccess().getInInKeyword_2_0_0_0_0_0()); } + 'in' + { after(grammarAccess.getChannelTypeAccess().getInInKeyword_2_0_0_0_0_0()); } + ) + { after(grammarAccess.getChannelTypeAccess().getInInKeyword_2_0_0_0_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__OutAssignment_2_0_0_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_0_1_0()); } + ( + { before(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_0_1_0()); } + 'out' + { after(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_0_1_0()); } + ) + { after(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__OutAssignment_2_0_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_1_0()); } + ( + { before(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_1_0()); } + 'out' + { after(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_1_0()); } + ) + { after(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ChannelType__TypeAssignment_2_0_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getChannelTypeAccess().getTypeTupleTypeParserRuleCall_2_0_1_0_0()); } + ruleTupleType + { after(grammarAccess.getChannelTypeAccess().getTypeTupleTypeParserRuleCall_2_0_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__TupleType__TypesAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getTupleTypeAccess().getTypesTypeParserRuleCall_1_2_0()); } + ruleType + { after(grammarAccess.getTupleTypeAccess().getTypesTypeParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__RangeType__MinimumAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRangeTypeAccess().getMinimumExpressionParserRuleCall_0_0()); } + ruleExpression + { after(grammarAccess.getRangeTypeAccess().getMinimumExpressionParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__RangeType__MaximumAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRangeTypeAccess().getMaximumExpressionParserRuleCall_2_0()); } + ruleExpression + { after(grammarAccess.getRangeTypeAccess().getMaximumExpressionParserRuleCall_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__TagsAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_1_0()); } + ruleUnionTags + { after(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionType__TagsAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_2_1_0()); } + ruleUnionTags + { after(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__TagsAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_0_0()); } + ruleUnionTagDeclaration + { after(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__TagsAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_1_1_0()); } + ruleUnionTagDeclaration + { after(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTags__TypeAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUnionTagsAccess().getTypeTypeParserRuleCall_2_1_0()); } + ruleType + { after(grammarAccess.getUnionTagsAccess().getTypeTypeParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnionTagDeclaration__NameAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUnionTagDeclarationAccess().getNameIDTerminalRuleCall_0()); } + RULE_ID + { after(grammarAccess.getUnionTagDeclarationAccess().getNameIDTerminalRuleCall_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__FieldsAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_1_0()); } + ruleRecordFields + { after(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordType__FieldsAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_2_1_0()); } + ruleRecordFields + { after(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__FieldsAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_0_0()); } + ruleRecordFieldDeclaration + { after(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__FieldsAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_1_1_0()); } + ruleRecordFieldDeclaration + { after(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFields__TypeAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRecordFieldsAccess().getTypeTypeParserRuleCall_3_0()); } + ruleType + { after(grammarAccess.getRecordFieldsAccess().getTypeTypeParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordFieldDeclaration__NameAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRecordFieldDeclarationAccess().getNameIDTerminalRuleCall_0()); } + RULE_ID + { after(grammarAccess.getRecordFieldDeclarationAccess().getNameIDTerminalRuleCall_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueType__SizeAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQueueTypeAccess().getSizeExpressionParserRuleCall_1_0()); } + ruleExpression + { after(grammarAccess.getQueueTypeAccess().getSizeExpressionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueType__TypeAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQueueTypeAccess().getTypeTypeParserRuleCall_3_0()); } + ruleType + { after(grammarAccess.getQueueTypeAccess().getTypeTypeParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayType__SizeAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getArrayTypeAccess().getSizeExpressionParserRuleCall_1_0()); } + ruleExpression + { after(grammarAccess.getArrayTypeAccess().getSizeExpressionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayType__TypeAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getArrayTypeAccess().getTypeTypeParserRuleCall_3_0()); } + ruleType + { after(grammarAccess.getArrayTypeAccess().getTypeTypeParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ReferencedType__TypeAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseCrossReference_0()); } + ( + { before(grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseIDTerminalRuleCall_0_1()); } + RULE_ID + { after(grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseIDTerminalRuleCall_0_1()); } + ) + { after(grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseCrossReference_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConstantDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + RULE_ID + { after(grammarAccess.getConstantDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__TypeAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConstantDeclarationAccess().getTypeTypeParserRuleCall_3_0()); } + ruleType + { after(grammarAccess.getConstantDeclarationAccess().getTypeTypeParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantDeclaration__ValueAssignment_5 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConstantDeclarationAccess().getValueExpressionParserRuleCall_5_0()); } + ruleExpression + { after(grammarAccess.getConstantDeclarationAccess().getValueExpressionParserRuleCall_5_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + RULE_ID + { after(grammarAccess.getProcessDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__PortsAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); } + rulePortsDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__PortsAssignment_2_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); } + rulePortsDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__ParametersAssignment_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); } + ruleParametersDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__ParametersAssignment_3_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); } + ruleParametersDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__LocalPortsAssignment_5_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_1_0()); } + rulePortsDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__LocalPortsAssignment_5_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_2_1_0()); } + rulePortsDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__PrioritiesAssignment_6_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_1_0()); } + rulePriorityDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__PrioritiesAssignment_6_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_2_1_0()); } + rulePriorityDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__StatesAssignment_8 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_8_0()); } + ruleStateDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_8_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__StatesAssignment_9_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_9_1_0()); } + ruleStateDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_9_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__VariablesAssignment_10_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_1_0()); } + ruleVariablesDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__VariablesAssignment_10_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_2_1_0()); } + ruleVariablesDeclaration + { after(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__PreludeAssignment_11_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getPreludeStatementSequenceParserRuleCall_11_1_0()); } + ruleStatementSequence + { after(grammarAccess.getProcessDeclarationAccess().getPreludeStatementSequenceParserRuleCall_11_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ProcessDeclaration__TransitionsAssignment_12 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProcessDeclarationAccess().getTransitionsTransitionParserRuleCall_12_0()); } + ruleTransition + { after(grammarAccess.getProcessDeclarationAccess().getTransitionsTransitionParserRuleCall_12_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__StateDeclaration__NameAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getStateDeclarationAccess().getNameIDTerminalRuleCall_0()); } + RULE_ID + { after(grammarAccess.getStateDeclarationAccess().getNameIDTerminalRuleCall_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__TransitionSource__OriginAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationCrossReference_1_0()); } + ( + { before(grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationIDTerminalRuleCall_1_0_1()); } + RULE_ID + { after(grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationIDTerminalRuleCall_1_0_1()); } + ) + { after(grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationCrossReference_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Transition__SourceAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getTransitionAccess().getSourceTransitionSourceParserRuleCall_0_0()); } + ruleTransitionSource + { after(grammarAccess.getTransitionAccess().getSourceTransitionSourceParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Transition__ActionAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getTransitionAccess().getActionStatementSequenceParserRuleCall_1_0()); } + ruleStatementSequence + { after(grammarAccess.getTransitionAccess().getActionStatementSequenceParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + RULE_ID + { after(grammarAccess.getComponentDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__PortsAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); } + rulePortsDeclaration + { after(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__PortsAssignment_2_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); } + rulePortsDeclaration + { after(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__ParametersAssignment_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); } + ruleParametersDeclaration + { after(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__ParametersAssignment_3_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); } + ruleParametersDeclaration + { after(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__VariablesAssignment_5_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_1_0()); } + ruleVariablesDeclaration + { after(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__VariablesAssignment_5_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_2_1_0()); } + ruleVariablesDeclaration + { after(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__LocalPortsAssignment_6_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_1_0()); } + ruleLocalPortsDeclaration + { after(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__LocalPortsAssignment_6_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_2_1_0()); } + ruleLocalPortsDeclaration + { after(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__PrioritiesAssignment_7_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_1_0()); } + rulePriorityDeclaration + { after(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__PrioritiesAssignment_7_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_2_1_0()); } + rulePriorityDeclaration + { after(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__PreludeAssignment_8_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getPreludeStatementSequenceParserRuleCall_8_1_0()); } + ruleStatementSequence + { after(grammarAccess.getComponentDeclarationAccess().getPreludeStatementSequenceParserRuleCall_8_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentDeclaration__BodyAssignment_9 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentDeclarationAccess().getBodyCompositionParserRuleCall_9_0()); } + ruleComposition + { after(grammarAccess.getComponentDeclarationAccess().getBodyCompositionParserRuleCall_9_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__PortsAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); } + rulePortDeclaration + { after(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__PortsAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); } + rulePortDeclaration + { after(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortsDeclaration__TypeAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); } + ruleChannelType + { after(grammarAccess.getPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortDeclaration__NameAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPortDeclarationAccess().getNameIDTerminalRuleCall_0()); } + RULE_ID + { after(grammarAccess.getPortDeclarationAccess().getNameIDTerminalRuleCall_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__PortsAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); } + rulePortDeclaration + { after(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__PortsAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); } + rulePortDeclaration + { after(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__TypeAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLocalPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); } + ruleChannelType + { after(grammarAccess.getLocalPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__LeftAssignment_4_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLocalPortsDeclarationAccess().getLeftLowerBoundParserRuleCall_4_1_0()); } + ruleLowerBound + { after(grammarAccess.getLocalPortsDeclarationAccess().getLeftLowerBoundParserRuleCall_4_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LocalPortsDeclaration__RightAssignment_4_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLocalPortsDeclarationAccess().getRightUpperBoundParserRuleCall_4_3_0()); } + ruleUpperBound + { after(grammarAccess.getLocalPortsDeclarationAccess().getRightUpperBoundParserRuleCall_4_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__ParametersAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_0_0()); } + ruleParameterDeclaration + { after(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__ParametersAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_1_1_0()); } + ruleParameterDeclaration + { after(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__ReadAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getParametersDeclarationAccess().getReadReadKeyword_3_0()); } + ( + { before(grammarAccess.getParametersDeclarationAccess().getReadReadKeyword_3_0()); } + 'read' + { after(grammarAccess.getParametersDeclarationAccess().getReadReadKeyword_3_0()); } + ) + { after(grammarAccess.getParametersDeclarationAccess().getReadReadKeyword_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__WriteAssignment_4 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getParametersDeclarationAccess().getWriteWriteKeyword_4_0()); } + ( + { before(grammarAccess.getParametersDeclarationAccess().getWriteWriteKeyword_4_0()); } + 'write' + { after(grammarAccess.getParametersDeclarationAccess().getWriteWriteKeyword_4_0()); } + ) + { after(grammarAccess.getParametersDeclarationAccess().getWriteWriteKeyword_4_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParametersDeclaration__TypeAssignment_5 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getParametersDeclarationAccess().getTypeTypeParserRuleCall_5_0()); } + ruleType + { after(grammarAccess.getParametersDeclarationAccess().getTypeTypeParserRuleCall_5_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__ReferenceAssignment_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getParameterDeclarationAccess().getReferenceAmpersandKeyword_0_0_0()); } + ( + { before(grammarAccess.getParameterDeclarationAccess().getReferenceAmpersandKeyword_0_0_0()); } + '&' + { after(grammarAccess.getParameterDeclarationAccess().getReferenceAmpersandKeyword_0_0_0()); } + ) + { after(grammarAccess.getParameterDeclarationAccess().getReferenceAmpersandKeyword_0_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__ArrayAssignment_0_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getParameterDeclarationAccess().getArrayLeftSquareBracketKeyword_0_1_0_0()); } + ( + { before(grammarAccess.getParameterDeclarationAccess().getArrayLeftSquareBracketKeyword_0_1_0_0()); } + '[' + { after(grammarAccess.getParameterDeclarationAccess().getArrayLeftSquareBracketKeyword_0_1_0_0()); } + ) + { after(grammarAccess.getParameterDeclarationAccess().getArrayLeftSquareBracketKeyword_0_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__SizeAssignment_0_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getParameterDeclarationAccess().getSizeExpressionParserRuleCall_0_1_1_0()); } + ruleExpression + { after(grammarAccess.getParameterDeclarationAccess().getSizeExpressionParserRuleCall_0_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ParameterDeclaration__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getParameterDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + RULE_ID + { after(grammarAccess.getParameterDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__VariablesAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_0_0()); } + ruleVariableDeclaration + { after(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__VariablesAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_1_1_0()); } + ruleVariableDeclaration + { after(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__TypeAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariablesDeclarationAccess().getTypeTypeParserRuleCall_3_0()); } + ruleType + { after(grammarAccess.getVariablesDeclarationAccess().getTypeTypeParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariablesDeclaration__ValueAssignment_4_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariablesDeclarationAccess().getValueExpressionParserRuleCall_4_1_0()); } + ruleExpression + { after(grammarAccess.getVariablesDeclarationAccess().getValueExpressionParserRuleCall_4_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableDeclaration__NameAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariableDeclarationAccess().getNameIDTerminalRuleCall_0()); } + RULE_ID + { after(grammarAccess.getVariableDeclarationAccess().getNameIDTerminalRuleCall_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityDeclaration__GroupsAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_0_0()); } + rulePriorityGroup + { after(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityDeclaration__GroupsAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_1_1_0()); } + rulePriorityGroup + { after(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityGroup__PortsAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_0_0()); } + ( + { before(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationIDTerminalRuleCall_0_0_1()); } + RULE_ID + { after(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationIDTerminalRuleCall_0_0_1()); } + ) + { after(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PriorityGroup__PortsAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_1_1_0()); } + ( + { before(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationIDTerminalRuleCall_1_1_0_1()); } + RULE_ID + { after(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationIDTerminalRuleCall_1_1_0_1()); } + ) + { after(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnlessStatement__FollowersAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUnlessStatementAccess().getFollowersStatementChoiceParserRuleCall_1_2_0()); } + ruleStatementChoice + { after(grammarAccess.getUnlessStatementAccess().getFollowersStatementChoiceParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementChoice__ChoicesAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getStatementChoiceAccess().getChoicesStatementSequenceParserRuleCall_1_2_0()); } + ruleStatementSequence + { after(grammarAccess.getStatementChoiceAccess().getChoicesStatementSequenceParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__StatementSequence__StatementsAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getStatementSequenceAccess().getStatementsStatementParserRuleCall_1_2_0()); } + ruleStatement + { after(grammarAccess.getStatementSequenceAccess().getStatementsStatementParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__BlockStatement__BodyAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getBlockStatementAccess().getBodyStatementSequenceParserRuleCall_1_0()); } + ruleStatementSequence + { after(grammarAccess.getBlockStatementAccess().getBodyStatementSequenceParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ReturnStatement__ExpressionAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getReturnStatementAccess().getExpressionExpressionParserRuleCall_1_0()); } + ruleExpression + { after(grammarAccess.getReturnStatementAccess().getExpressionExpressionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__TaggedStatement__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getTaggedStatementAccess().getNameIDTerminalRuleCall_1_0()); } + RULE_ID + { after(grammarAccess.getTaggedStatementAccess().getNameIDTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__PatternsAssignment_1_0_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_2_0()); } + rulePattern + { after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__PatternsAssignment_1_0_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_3_1_0()); } + rulePattern + { after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__ValuesAssignment_1_0_5 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_5_0()); } + ruleExpression + { after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_5_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__ValuesAssignment_1_0_6_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_6_1_0()); } + ruleExpression + { after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_6_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__ValuesAssignment_1_1_2_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_0_0()); } + ruleExpression + { after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__ValuesAssignment_1_1_2_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_1_1_0()); } + ruleExpression + { after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__PatternsAssignment_1_2_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_2_0()); } + rulePattern + { after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__PatternsAssignment_1_2_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_3_1_0()); } + rulePattern + { after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__ExpAssignment_1_2_6_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_2_6_1_0()); } + ruleExpression + { after(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_2_6_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__ExpAssignment_1_3_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_3_3_1_0()); } + ruleExpression + { after(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_3_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__ValuesAssignment_1_4_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_2_0()); } + ruleExpression + { after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__ValuesAssignment_1_4_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_3_1_0()); } + ruleExpression + { after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__PatternsAssignment_1_5_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_2_0()); } + rulePattern + { after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__PatternsAssignment_1_5_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_3_1_0()); } + rulePattern + { after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PatternStatement__ExpAssignment_1_5_4_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_5_4_1_0()); } + ruleExpression + { after(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_5_4_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConstantPattern__ValueAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConstantPatternAccess().getValueLiteralExpressionParserRuleCall_0()); } + ruleLiteralExpression + { after(grammarAccess.getConstantPatternAccess().getValueLiteralExpressionParserRuleCall_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IntegerPattern__NegativeAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIntegerPatternAccess().getNegativeHyphenMinusKeyword_0_1_0()); } + ( + { before(grammarAccess.getIntegerPatternAccess().getNegativeHyphenMinusKeyword_0_1_0()); } + '-' + { after(grammarAccess.getIntegerPatternAccess().getNegativeHyphenMinusKeyword_0_1_0()); } + ) + { after(grammarAccess.getIntegerPatternAccess().getNegativeHyphenMinusKeyword_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IntegerPattern__ValueAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIntegerPatternAccess().getValueINTTerminalRuleCall_1_0()); } + RULE_INT + { after(grammarAccess.getIntegerPatternAccess().getValueINTTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__DeclarationAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_0_1_0()); } + ( + { before(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseIDTerminalRuleCall_0_1_0_1()); } + RULE_ID + { after(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseIDTerminalRuleCall_0_1_0_1()); } + ) + { after(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__ParametersAssignment_0_3_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_0_0()); } + rulePattern + { after(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__ParametersAssignment_0_3_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_1_1_0()); } + rulePattern + { after(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__DeclarationAssignment_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_1_0_0()); } + ( + { before(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseIDTerminalRuleCall_1_0_0_1()); } + RULE_ID + { after(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseIDTerminalRuleCall_1_0_0_1()); } + ) + { after(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__IndexAssignment_1_1_0_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierPatternAccess().getIndexExpressionParserRuleCall_1_1_0_2_0()); } + ruleExpression + { after(grammarAccess.getIdentifierPatternAccess().getIndexExpressionParserRuleCall_1_1_0_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierPattern__FieldAssignment_1_1_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); } + ( + { before(grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1()); } + RULE_ID + { after(grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1()); } + ) + { after(grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__ConditionAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); } + ruleExpression + { after(grammarAccess.getConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__ThenAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); } + ruleStatementSequence + { after(grammarAccess.getConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__ElseifAssignment_4 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConditionalStatementAccess().getElseifExtendedConditionalStatementParserRuleCall_4_0()); } + ruleExtendedConditionalStatement + { after(grammarAccess.getConditionalStatementAccess().getElseifExtendedConditionalStatementParserRuleCall_4_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ConditionalStatement__ElseAssignment_5_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConditionalStatementAccess().getElseStatementSequenceParserRuleCall_5_1_0()); } + ruleStatementSequence + { after(grammarAccess.getConditionalStatementAccess().getElseStatementSequenceParserRuleCall_5_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ExtendedConditionalStatement__ConditionAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getExtendedConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); } + ruleExpression + { after(grammarAccess.getExtendedConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ExtendedConditionalStatement__ThenAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getExtendedConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); } + ruleStatementSequence + { after(grammarAccess.getExtendedConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__BodyAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSelectStatementAccess().getBodyUnlessStatementParserRuleCall_1_0()); } + ruleUnlessStatement + { after(grammarAccess.getSelectStatementAccess().getBodyUnlessStatementParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__IndexAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSelectStatementAccess().getIndexVariableDeclarationParserRuleCall_2_1_0()); } + ruleVariableDeclaration + { after(grammarAccess.getSelectStatementAccess().getIndexVariableDeclarationParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SelectStatement__TypeAssignment_2_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSelectStatementAccess().getTypeRangeTypeParserRuleCall_2_3_0()); } + ruleRangeType + { after(grammarAccess.getSelectStatementAccess().getTypeRangeTypeParserRuleCall_2_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__ConditionAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getWhileStatementAccess().getConditionExpressionParserRuleCall_1_0()); } + ruleExpression + { after(grammarAccess.getWhileStatementAccess().getConditionExpressionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__WhileStatement__BodyAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getWhileStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); } + ruleStatementSequence + { after(grammarAccess.getWhileStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__VariableAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getForeachStatementAccess().getVariableVariableDeclarationParserRuleCall_1_0()); } + ruleVariableDeclaration + { after(grammarAccess.getForeachStatementAccess().getVariableVariableDeclarationParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ForeachStatement__BodyAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getForeachStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); } + ruleStatementSequence + { after(grammarAccess.getForeachStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ToStatement__StateAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getToStatementAccess().getStateStateDeclarationCrossReference_1_0()); } + ( + { before(grammarAccess.getToStatementAccess().getStateStateDeclarationIDTerminalRuleCall_1_0_1()); } + RULE_ID + { after(grammarAccess.getToStatementAccess().getStateStateDeclarationIDTerminalRuleCall_1_0_1()); } + ) + { after(grammarAccess.getToStatementAccess().getStateStateDeclarationCrossReference_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__ValueAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCaseStatementAccess().getValueExpressionParserRuleCall_1_0()); } + ruleExpression + { after(grammarAccess.getCaseStatementAccess().getValueExpressionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__PatternAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_3_0()); } + rulePattern + { after(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__BodyAssignment_5 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_5_0()); } + ruleStatementSequence + { after(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_5_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__PatternAssignment_6_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_6_1_0()); } + rulePattern + { after(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_6_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__CaseStatement__BodyAssignment_6_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_6_3_0()); } + ruleStatementSequence + { after(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_6_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__OnStatement__ConditionAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getOnStatementAccess().getConditionExpressionParserRuleCall_1_0()); } + ruleExpression + { after(grammarAccess.getOnStatementAccess().getConditionExpressionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__WaitStatement__LeftAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getWaitStatementAccess().getLeftLowerBoundParserRuleCall_1_0()); } + ruleLowerBound + { after(grammarAccess.getWaitStatementAccess().getLeftLowerBoundParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__WaitStatement__RightAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getWaitStatementAccess().getRightUpperBoundParserRuleCall_3_0()); } + ruleUpperBound + { after(grammarAccess.getWaitStatementAccess().getRightUpperBoundParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__GlobalAssignment_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCompositionAccess().getGlobalPortSetParserRuleCall_1_0_0()); } + rulePortSet + { after(grammarAccess.getCompositionAccess().getGlobalPortSetParserRuleCall_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__BlocksAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_2_0()); } + ruleBlock + { after(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Composition__BlocksAssignment_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_3_1_0()); } + ruleBlock + { after(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__CompositeBlock__LocalAssignment_0_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCompositeBlockAccess().getLocalPortSetParserRuleCall_0_0_0_0()); } + rulePortSet + { after(grammarAccess.getCompositeBlockAccess().getLocalPortSetParserRuleCall_0_0_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__CompositeBlock__CompositionAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getCompositeBlockAccess().getCompositionCompositionParserRuleCall_1_0()); } + ruleComposition + { after(grammarAccess.getCompositeBlockAccess().getCompositionCompositionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__InstanceDeclaration__LocalAssignment_0_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getInstanceDeclarationAccess().getLocalPortSetParserRuleCall_0_0_0_0()); } + rulePortSet + { after(grammarAccess.getInstanceDeclarationAccess().getLocalPortSetParserRuleCall_0_0_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__InstanceDeclaration__InstanceAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getInstanceDeclarationAccess().getInstanceComponentInstanceParserRuleCall_1_0()); } + ruleComponentInstance + { after(grammarAccess.getInstanceDeclarationAccess().getInstanceComponentInstanceParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortSet__AllPortsAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPortSetAccess().getAllPortsAsteriskKeyword_0_0()); } + ( + { before(grammarAccess.getPortSetAccess().getAllPortsAsteriskKeyword_0_0()); } + '*' + { after(grammarAccess.getPortSetAccess().getAllPortsAsteriskKeyword_0_0()); } + ) + { after(grammarAccess.getPortSetAccess().getAllPortsAsteriskKeyword_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortSet__PortsAssignment_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_0_0()); } + ruleExpression + { after(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PortSet__PortsAssignment_1_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_1_1_0()); } + ruleExpression + { after(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__ComponentAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentInstanceAccess().getComponentParameterizedDeclarationCrossReference_0_0()); } + ( + { before(grammarAccess.getComponentInstanceAccess().getComponentParameterizedDeclarationIDTerminalRuleCall_0_0_1()); } + RULE_ID + { after(grammarAccess.getComponentInstanceAccess().getComponentParameterizedDeclarationIDTerminalRuleCall_0_0_1()); } + ) + { after(grammarAccess.getComponentInstanceAccess().getComponentParameterizedDeclarationCrossReference_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__PortsAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_1_0()); } + ruleExpression + { after(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__PortsAssignment_1_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_2_1_0()); } + ruleExpression + { after(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__ParametersAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_1_0()); } + ruleExpression + { after(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ComponentInstance__ParametersAssignment_2_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_2_1_0()); } + ruleExpression + { after(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__IndexAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQuantifiedExpressionAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); } + ruleVariableDeclaration + { after(grammarAccess.getQuantifiedExpressionAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__TypeAssignment_0_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQuantifiedExpressionAccess().getTypeRangeTypeParserRuleCall_0_2_1_0()); } + ruleRangeType + { after(grammarAccess.getQuantifiedExpressionAccess().getTypeRangeTypeParserRuleCall_0_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedExpression__ChildAssignment_0_4 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQuantifiedExpressionAccess().getChildQuantifiedExpressionParserRuleCall_0_4_0()); } + ruleQuantifiedExpression + { after(grammarAccess.getQuantifiedExpressionAccess().getChildQuantifiedExpressionParserRuleCall_0_4_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__ThenAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConditionalAccess().getThenDisjunctionParserRuleCall_1_2_0()); } + ruleDisjunction + { after(grammarAccess.getConditionalAccess().getThenDisjunctionParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conditional__ElseAssignment_1_4 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConditionalAccess().getElseDisjunctionParserRuleCall_1_4_0()); } + ruleDisjunction + { after(grammarAccess.getConditionalAccess().getElseDisjunctionParserRuleCall_1_4_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Disjunction__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDisjunctionAccess().getRightImplicationParserRuleCall_1_2_0()); } + ruleImplication + { after(grammarAccess.getDisjunctionAccess().getRightImplicationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Implication__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getImplicationAccess().getRightImplicationParserRuleCall_1_2_0()); } + ruleImplication + { after(grammarAccess.getImplicationAccess().getRightImplicationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Conjunction__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getConjunctionAccess().getRightComparisonParserRuleCall_1_2_0()); } + ruleComparison + { after(grammarAccess.getConjunctionAccess().getRightComparisonParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Comparison__RightAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0()); } + ruleAddition + { after(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAdditionAccess().getRightSubstractionParserRuleCall_1_2_0()); } + ruleSubstraction + { after(grammarAccess.getAdditionAccess().getRightSubstractionParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Substraction__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSubstractionAccess().getRightMultiplicationParserRuleCall_1_2_0()); } + ruleMultiplication + { after(grammarAccess.getSubstractionAccess().getRightMultiplicationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getMultiplicationAccess().getRightDivisionParserRuleCall_1_2_0()); } + ruleDivision + { after(grammarAccess.getMultiplicationAccess().getRightDivisionParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Division__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDivisionAccess().getRightModuloParserRuleCall_1_2_0()); } + ruleModulo + { after(grammarAccess.getDivisionAccess().getRightModuloParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Modulo__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getModuloAccess().getRightUnaryExpressionParserRuleCall_1_2_0()); } + ruleUnaryExpression + { after(grammarAccess.getModuloAccess().getRightUnaryExpressionParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__UnaryExpression__ChildAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0()); } + ruleUnaryExpression + { after(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Projection__FieldAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getProjectionAccess().getFieldAtomicExpressionParserRuleCall_1_2_0()); } + ruleAtomicExpression + { after(grammarAccess.getProjectionAccess().getFieldAtomicExpressionParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ReferenceExpression__DeclarationAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseCrossReference_1_0()); } + ( + { before(grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseIDTerminalRuleCall_1_0_1()); } + RULE_ID + { after(grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseIDTerminalRuleCall_1_0_1()); } + ) + { after(grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseCrossReference_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__DeclarationAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_0_1_0()); } + ( + { before(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseIDTerminalRuleCall_0_1_0_1()); } + RULE_ID + { after(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseIDTerminalRuleCall_0_1_0_1()); } + ) + { after(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__ParametersAssignment_0_3_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_0_0()); } + ruleExpression + { after(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__ParametersAssignment_0_3_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_1_1_0()); } + ruleExpression + { after(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__DeclarationAssignment_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_1_0_0()); } + ( + { before(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseIDTerminalRuleCall_1_0_0_1()); } + RULE_ID + { after(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseIDTerminalRuleCall_1_0_0_1()); } + ) + { after(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__IndexesAssignment_1_1_0_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_2_0()); } + ruleExpression + { after(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_3_1_0()); } + ruleExpression + { after(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__IdentifierExpression__FieldAssignment_1_1_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); } + ( + { before(grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1()); } + RULE_ID + { after(grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1()); } + ) + { after(grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__FieldsAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_1_0()); } + ruleFieldExpression + { after(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__RecordExpression__FieldsAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_2_1_0()); } + ruleFieldExpression + { after(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FieldExpression__FieldAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseCrossReference_0_0()); } + ( + { before(grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseIDTerminalRuleCall_0_0_1()); } + RULE_ID + { after(grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseIDTerminalRuleCall_0_0_1()); } + ) + { after(grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseCrossReference_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FieldExpression__ValueAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFieldExpressionAccess().getValueExpressionParserRuleCall_2_0()); } + ruleExpression + { after(grammarAccess.getFieldExpressionAccess().getValueExpressionParserRuleCall_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__ValuesAssignment_2_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); } + ruleExpression + { after(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ArrayExpression__ValuesAssignment_2_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); } + ruleExpression + { after(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__ValuesAssignment_2_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); } + ruleExpression + { after(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QueueExpression__ValuesAssignment_2_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); } + ruleExpression + { after(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__ElementAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getEnqueueExpressionAccess().getElementExpressionParserRuleCall_2_0()); } + ruleExpression + { after(grammarAccess.getEnqueueExpressionAccess().getElementExpressionParserRuleCall_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__EnqueueExpression__QueueAssignment_4 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getEnqueueExpressionAccess().getQueueExpressionParserRuleCall_4_0()); } + ruleExpression + { after(grammarAccess.getEnqueueExpressionAccess().getQueueExpressionParserRuleCall_4_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__LeftAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAppendExpressionAccess().getLeftExpressionParserRuleCall_2_0()); } + ruleExpression + { after(grammarAccess.getAppendExpressionAccess().getLeftExpressionParserRuleCall_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AppendExpression__RightAssignment_4 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAppendExpressionAccess().getRightExpressionParserRuleCall_4_0()); } + ruleExpression + { after(grammarAccess.getAppendExpressionAccess().getRightExpressionParserRuleCall_4_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalLiteral__ValueAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNaturalLiteralAccess().getValueINTTerminalRuleCall_0()); } + RULE_INT + { after(grammarAccess.getNaturalLiteralAccess().getValueINTTerminalRuleCall_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalLowerBound__LeftAssignment_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNaturalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + ( + { before(grammarAccess.getNaturalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + '[' + { after(grammarAccess.getNaturalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + ) + { after(grammarAccess.getNaturalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalLowerBound__RightAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNaturalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ( + { before(grammarAccess.getNaturalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ']' + { after(grammarAccess.getNaturalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ) + { after(grammarAccess.getNaturalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalLowerBound__ValueAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNaturalLowerBoundAccess().getValueINTTerminalRuleCall_1_0()); } + RULE_INT + { after(grammarAccess.getNaturalLowerBoundAccess().getValueINTTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalUpperBound__ValueAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNaturalUpperBoundAccess().getValueINTTerminalRuleCall_0_0()); } + RULE_INT + { after(grammarAccess.getNaturalUpperBoundAccess().getValueINTTerminalRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalUpperBound__LeftAssignment_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNaturalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + ( + { before(grammarAccess.getNaturalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + '[' + { after(grammarAccess.getNaturalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + ) + { after(grammarAccess.getNaturalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalUpperBound__RightAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNaturalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ( + { before(grammarAccess.getNaturalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ']' + { after(grammarAccess.getNaturalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ) + { after(grammarAccess.getNaturalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalLowerBound__LeftAssignment_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDecimalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + ( + { before(grammarAccess.getDecimalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + '[' + { after(grammarAccess.getDecimalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + ) + { after(grammarAccess.getDecimalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalLowerBound__RightAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDecimalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ( + { before(grammarAccess.getDecimalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ']' + { after(grammarAccess.getDecimalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ) + { after(grammarAccess.getDecimalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalLowerBound__ValueAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDecimalLowerBoundAccess().getValueFLTTerminalRuleCall_1_0()); } + RULE_FLT + { after(grammarAccess.getDecimalLowerBoundAccess().getValueFLTTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalUpperBound__ValueAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDecimalUpperBoundAccess().getValueFLTTerminalRuleCall_0_0()); } + RULE_FLT + { after(grammarAccess.getDecimalUpperBoundAccess().getValueFLTTerminalRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalUpperBound__LeftAssignment_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDecimalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + ( + { before(grammarAccess.getDecimalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + '[' + { after(grammarAccess.getDecimalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + ) + { after(grammarAccess.getDecimalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__DecimalUpperBound__RightAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDecimalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ( + { before(grammarAccess.getDecimalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ']' + { after(grammarAccess.getDecimalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ) + { after(grammarAccess.getDecimalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableLowerBound__LeftAssignment_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariableLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + ( + { before(grammarAccess.getVariableLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + '[' + { after(grammarAccess.getVariableLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + ) + { after(grammarAccess.getVariableLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableLowerBound__RightAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariableLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ( + { before(grammarAccess.getVariableLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ']' + { after(grammarAccess.getVariableLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ) + { after(grammarAccess.getVariableLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableLowerBound__VariableAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariableLowerBoundAccess().getVariableBoundDeclarationUseCrossReference_1_0()); } + ( + { before(grammarAccess.getVariableLowerBoundAccess().getVariableBoundDeclarationUseIDTerminalRuleCall_1_0_1()); } + RULE_ID + { after(grammarAccess.getVariableLowerBoundAccess().getVariableBoundDeclarationUseIDTerminalRuleCall_1_0_1()); } + ) + { after(grammarAccess.getVariableLowerBoundAccess().getVariableBoundDeclarationUseCrossReference_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableUpperBound__VariableAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariableUpperBoundAccess().getVariableBoundDeclarationUseCrossReference_0_0()); } + ( + { before(grammarAccess.getVariableUpperBoundAccess().getVariableBoundDeclarationUseIDTerminalRuleCall_0_0_1()); } + RULE_ID + { after(grammarAccess.getVariableUpperBoundAccess().getVariableBoundDeclarationUseIDTerminalRuleCall_0_0_1()); } + ) + { after(grammarAccess.getVariableUpperBoundAccess().getVariableBoundDeclarationUseCrossReference_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableUpperBound__LeftAssignment_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariableUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + ( + { before(grammarAccess.getVariableUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + '[' + { after(grammarAccess.getVariableUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + ) + { after(grammarAccess.getVariableUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VariableUpperBound__RightAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVariableUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ( + { before(grammarAccess.getVariableUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ']' + { after(grammarAccess.getVariableUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ) + { after(grammarAccess.getVariableUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__PropertyAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRequirementAccess().getPropertyPropertyDeclarationCrossReference_1_0()); } + ( + { before(grammarAccess.getRequirementAccess().getPropertyPropertyDeclarationIDTerminalRuleCall_1_0_1()); } + RULE_ID + { after(grammarAccess.getRequirementAccess().getPropertyPropertyDeclarationIDTerminalRuleCall_1_0_1()); } + ) + { after(grammarAccess.getRequirementAccess().getPropertyPropertyDeclarationCrossReference_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__PositiveAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRequirementAccess().getPositiveSTRINGTerminalRuleCall_2_1_0()); } + RULE_STRING + { after(grammarAccess.getRequirementAccess().getPositiveSTRINGTerminalRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Requirement__NegativeAssignment_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getRequirementAccess().getNegativeSTRINGTerminalRuleCall_3_1_0()); } + RULE_STRING + { after(grammarAccess.getRequirementAccess().getNegativeSTRINGTerminalRuleCall_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDeclaration__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPropertyDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + RULE_ID + { after(grammarAccess.getPropertyDeclarationAccess().getNameIDTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDeclaration__PropertyAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPropertyDeclarationAccess().getPropertyPropertyParserRuleCall_3_0()); } + ruleProperty + { after(grammarAccess.getPropertyDeclarationAccess().getPropertyPropertyParserRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__VariableAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQuantifiedPropertyAccess().getVariableVariableDeclarationParserRuleCall_0_1_0()); } + ruleVariableDeclaration + { after(grammarAccess.getQuantifiedPropertyAccess().getVariableVariableDeclarationParserRuleCall_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__TypeAssignment_0_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQuantifiedPropertyAccess().getTypeRangeTypeParserRuleCall_0_3_0()); } + ruleRangeType + { after(grammarAccess.getQuantifiedPropertyAccess().getTypeRangeTypeParserRuleCall_0_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__QuantifiedProperty__ChildAssignment_0_5 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getQuantifiedPropertyAccess().getChildQuantifiedPropertyParserRuleCall_0_5_0()); } + ruleQuantifiedProperty + { after(grammarAccess.getQuantifiedPropertyAccess().getChildQuantifiedPropertyParserRuleCall_0_5_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyDisjunction__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPropertyDisjunctionAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); } + rulePropertyImplication + { after(grammarAccess.getPropertyDisjunctionAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyImplication__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPropertyImplicationAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); } + rulePropertyImplication + { after(grammarAccess.getPropertyImplicationAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyConjunction__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPropertyConjunctionAccess().getRightPropertyNegationParserRuleCall_1_2_0()); } + rulePropertyNegation + { after(grammarAccess.getPropertyConjunctionAccess().getRightPropertyNegationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PropertyNegation__ChildAssignment_0_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPropertyNegationAccess().getChildPropertyNegationParserRuleCall_0_2_0()); } + rulePropertyNegation + { after(grammarAccess.getPropertyNegationAccess().getChildPropertyNegationParserRuleCall_0_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLPattern__PropertyAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLPatternAccess().getPropertyLTLUnaryParserRuleCall_1_0()); } + ruleLTLUnary + { after(grammarAccess.getLTLPatternAccess().getPropertyLTLUnaryParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__InfinitelyOftenPattern__SubjectAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__MortalPattern__SubjectAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getMortalPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getMortalPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__SubjectAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getPresencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__LastingAssignment_2_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getLastingINTTerminalRuleCall_2_0_1_0()); } + RULE_INT + { after(grammarAccess.getPresencePatternAccess().getLastingINTTerminalRuleCall_2_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__AfterAssignment_2_1_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getAfterAtomicObservableParserRuleCall_2_1_0_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getPresencePatternAccess().getAfterAtomicObservableParserRuleCall_2_1_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__LowerAssignment_2_1_1_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_0_1_0()); } + ruleLowerBound + { after(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__UpperAssignment_2_1_1_0_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_0_3_0()); } + ruleUpperBound + { after(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_0_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__UntilAssignment_2_1_1_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getUntilAtomicObservableParserRuleCall_2_1_1_1_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getPresencePatternAccess().getUntilAtomicObservableParserRuleCall_2_1_1_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__BeforeAssignment_2_2_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_2_0_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getPresencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_2_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__LowerAssignment_2_2_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_2_1_1_0()); } + ruleLowerBound + { after(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_2_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__UpperAssignment_2_2_1_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_2_1_3_0()); } + ruleUpperBound + { after(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_2_1_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__MinAssignment_2_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getMinAtomicObservableParserRuleCall_2_3_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getPresencePatternAccess().getMinAtomicObservableParserRuleCall_2_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PresencePattern__MaxAssignment_2_3_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPresencePatternAccess().getMaxAtomicObservableParserRuleCall_2_3_3_0()); } + ruleAtomicObservable + { after(grammarAccess.getPresencePatternAccess().getMaxAtomicObservableParserRuleCall_2_3_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__SubjectAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getAbsencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__AfterAssignment_2_0_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getAfterAtomicObservableParserRuleCall_2_0_0_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getAbsencePatternAccess().getAfterAtomicObservableParserRuleCall_2_0_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__LowerAssignment_2_0_1_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_0_1_0_1_0()); } + ruleLowerBound + { after(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_0_1_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__UpperAssignment_2_0_1_0_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_0_1_0_3_0()); } + ruleUpperBound + { after(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_0_1_0_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__UntilAssignment_2_0_1_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getUntilAtomicObservableParserRuleCall_2_0_1_1_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getAbsencePatternAccess().getUntilAtomicObservableParserRuleCall_2_0_1_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__BeforeAssignment_2_1_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_1_0_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getAbsencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_1_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__LowerAssignment_2_1_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_1_0()); } + ruleLowerBound + { after(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__UpperAssignment_2_1_1_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_3_0()); } + ruleUpperBound + { after(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__MinAssignment_2_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getAbsencePatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AbsencePattern__MaxAssignment_2_2_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAbsencePatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); } + ruleAtomicObservable + { after(grammarAccess.getAbsencePatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__SubjectAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAlwaysPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getAlwaysPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__BeforeAssignment_2_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAlwaysPatternAccess().getBeforeAtomicObservableParserRuleCall_2_0_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getAlwaysPatternAccess().getBeforeAtomicObservableParserRuleCall_2_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__AfterAssignment_2_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAlwaysPatternAccess().getAfterAtomicObservableParserRuleCall_2_1_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getAlwaysPatternAccess().getAfterAtomicObservableParserRuleCall_2_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__UntilAssignment_2_1_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAlwaysPatternAccess().getUntilAtomicObservableParserRuleCall_2_1_2_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getAlwaysPatternAccess().getUntilAtomicObservableParserRuleCall_2_1_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__MinAssignment_2_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAlwaysPatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getAlwaysPatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AlwaysPattern__MaxAssignment_2_2_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAlwaysPatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); } + ruleAtomicObservable + { after(grammarAccess.getAlwaysPatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__FollowerAssignment_1_0_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_0_2_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_0_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__BeforeAssignment_1_0_3_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_0_3_0_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_0_3_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__LowerAssignment_1_0_3_0_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_0_2_1_0()); } + ruleLowerBound + { after(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_0_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__UpperAssignment_1_0_3_0_2_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_0_2_3_0()); } + ruleUpperBound + { after(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_0_2_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__LowerAssignment_1_0_3_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_1_1_0()); } + ruleLowerBound + { after(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__UpperAssignment_1_0_3_1_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_1_3_0()); } + ruleUpperBound + { after(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_1_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__AfterAssignment_1_0_3_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_0_3_2_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_0_3_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_2_2_0_1_0()); } + ruleLowerBound + { after(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_2_2_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_2_2_0_3_0()); } + ruleUpperBound + { after(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_2_2_0_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_0_3_2_2_1_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_0_3_2_2_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__MinAssignment_1_0_3_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_0_3_3_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_0_3_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__MaxAssignment_1_0_3_3_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_0_3_3_3_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_0_3_3_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__FollowerAssignment_1_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_1_2_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__BeforeAssignment_1_1_3_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_1_3_0_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_1_3_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__AfterAssignment_1_1_3_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_1_3_1_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_1_3_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__UntilAssignment_1_1_3_1_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_1_3_1_2_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_1_3_1_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__MinAssignment_1_1_3_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_1_3_2_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_1_3_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__SequencePattern__MaxAssignment_1_1_3_2_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_1_3_2_3_0()); } + ruleAtomicObservable + { after(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_1_3_2_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__IndexAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLQuantifiedAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); } + ruleVariableDeclaration + { after(grammarAccess.getLTLQuantifiedAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__TypeAssignment_0_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLQuantifiedAccess().getTypeRangeTypeParserRuleCall_0_3_0()); } + ruleRangeType + { after(grammarAccess.getLTLQuantifiedAccess().getTypeRangeTypeParserRuleCall_0_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLQuantified__ChildAssignment_0_5 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLQuantifiedAccess().getChildLTLQuantifiedParserRuleCall_0_5_0()); } + ruleLTLQuantified + { after(grammarAccess.getLTLQuantifiedAccess().getChildLTLQuantifiedParserRuleCall_0_5_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLDisjunction__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLDisjunctionAccess().getRightLTLImplicationParserRuleCall_1_2_0()); } + ruleLTLImplication + { after(grammarAccess.getLTLDisjunctionAccess().getRightLTLImplicationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLImplication__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLImplicationAccess().getRightLTLImplicationParserRuleCall_1_2_0()); } + ruleLTLImplication + { after(grammarAccess.getLTLImplicationAccess().getRightLTLImplicationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLConjunction__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLConjunctionAccess().getRightLTLBinaryParserRuleCall_1_2_0()); } + ruleLTLBinary + { after(grammarAccess.getLTLConjunctionAccess().getRightLTLBinaryParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__RightAssignment_1_0_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_0_2_0()); } + ruleLTLUnary + { after(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_0_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLBinary__RightAssignment_1_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_1_2_0()); } + ruleLTLUnary + { after(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LTLUnary__OperandAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLTLUnaryAccess().getOperandLTLUnaryParserRuleCall_0_1_0()); } + ruleLTLUnary + { after(grammarAccess.getLTLUnaryAccess().getOperandLTLUnaryParserRuleCall_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__AtomicLTL__DeclarationAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseCrossReference_0_1_0()); } + ( + { before(grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseIDTerminalRuleCall_0_1_0_1()); } + RULE_ID + { after(grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseIDTerminalRuleCall_0_1_0_1()); } + ) + { after(grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseCrossReference_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__EnterStateEvent__SubjectAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getEnterStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getEnterStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LeaveStateEvent__SubjectAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLeaveStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ruleAtomicObservable + { after(grammarAccess.getLeaveStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableDisjunction__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getObservableDisjunctionAccess().getRightObservableImplicationParserRuleCall_1_2_0()); } + ruleObservableImplication + { after(grammarAccess.getObservableDisjunctionAccess().getRightObservableImplicationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableImplication__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getObservableImplicationAccess().getRightObservableImplicationParserRuleCall_1_2_0()); } + ruleObservableImplication + { after(grammarAccess.getObservableImplicationAccess().getRightObservableImplicationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableConjunction__RightAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getObservableConjunctionAccess().getRightObservableNegationParserRuleCall_1_2_0()); } + ruleObservableNegation + { after(grammarAccess.getObservableConjunctionAccess().getRightObservableNegationParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ObservableNegation__ChildAssignment_0_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getObservableNegationAccess().getChildObservableNegationParserRuleCall_0_2_0()); } + ruleObservableNegation + { after(grammarAccess.getObservableNegationAccess().getChildObservableNegationParserRuleCall_0_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PathEvent__PathAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPathEventAccess().getPathPathParserRuleCall_0_0()); } + rulePath + { after(grammarAccess.getPathEventAccess().getPathPathParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__PathEvent__ItemAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPathEventAccess().getItemSubjectParserRuleCall_1_0()); } + ruleSubject + { after(grammarAccess.getPathEventAccess().getItemSubjectParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Path__ItemsAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getPathAccess().getItemsPathItemParserRuleCall_0_0()); } + rulePathItem + { after(grammarAccess.getPathAccess().getItemsPathItemParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NaturalItem__ValueAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNaturalItemAccess().getValueINTTerminalRuleCall_0()); } + RULE_INT + { after(grammarAccess.getNaturalItemAccess().getValueINTTerminalRuleCall_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__NamedItem__DeclarationAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseCrossReference_0()); } + ( + { before(grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseIDTerminalRuleCall_0_1()); } + RULE_ID + { after(grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseIDTerminalRuleCall_0_1()); } + ) + { after(grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseCrossReference_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__StateSubject__StateAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getStateSubjectAccess().getStateStateDeclarationCrossReference_1_0()); } + ( + { before(grammarAccess.getStateSubjectAccess().getStateStateDeclarationIDTerminalRuleCall_1_0_1()); } + RULE_ID + { after(grammarAccess.getStateSubjectAccess().getStateStateDeclarationIDTerminalRuleCall_1_0_1()); } + ) + { after(grammarAccess.getStateSubjectAccess().getStateStateDeclarationCrossReference_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__ValueSubject__ValueAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getValueSubjectAccess().getValueAtomicExpressionParserRuleCall_1_0()); } + ruleAtomicExpression + { after(grammarAccess.getValueSubjectAccess().getValueAtomicExpressionParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__TagSubject__TagAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getTagSubjectAccess().getTagTaggedStatementCrossReference_1_0()); } + ( + { before(grammarAccess.getTagSubjectAccess().getTagTaggedStatementIDTerminalRuleCall_1_0_1()); } + RULE_ID + { after(grammarAccess.getTagSubjectAccess().getTagTaggedStatementIDTerminalRuleCall_1_0_1()); } + ) + { after(grammarAccess.getTagSubjectAccess().getTagTaggedStatementCrossReference_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__EventSubject__EventAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getEventSubjectAccess().getEventIDTerminalRuleCall_1_0()); } + RULE_ID + { after(grammarAccess.getEventSubjectAccess().getEventIDTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +RULE_INT : ('0'..'9')+; + +RULE_ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*; + +RULE_FLT : RULE_INT '.' RULE_INT; + +RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\''); + +RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; + +RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; + +RULE_WS : (' '|'\t'|'\r'|'\n')+; + +RULE_ANY_OTHER : .; diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacre.tokens b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacre.tokens new file mode 100644 index 0000000..b1d3ad9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacre.tokens @@ -0,0 +1,264 @@ +'!'=59 +'#'=30 +'#include'=18 +'$'=94 +'%'=90 +'&'=99 +'('=22 +')'=23 +'*'=88 +'+'=14 +','=24 +'-'=87 +'->'=15 +'-false'=111 +'-true'=110 +'.'=61 +'..'=34 +'...'=108 +'/'=89 +':'=20 +':='=50 +';'=53 +'<'=84 +'<='=85 +'<>'=83 +'='=82 +'=>'=80 +'>'=16 +'>='=86 +'?'=60 +'['=42 +'[]'=52 +']'=43 +'^'=98 +'absent'=124 +'after'=119 +'all'=77 +'always'=126 +'and'=81 +'any'=57 +'append'=105 +'array'=28 +'assert'=109 +'before'=122 +'begin'=54 +'between'=123 +'bool'=33 +'case'=71 +'channel'=27 +'component'=48 +'const'=39 +'deadlockfree'=114 +'dequeue'=96 +'do'=68 +'else'=64 +'elsif'=65 +'empty'=97 +'end'=36 +'enqueue'=104 +'enter'=131 +'event'=136 +'exists'=78 +'false'=107 +'first'=92 +'for'=125 +'foreach'=69 +'from'=47 +'full'=95 +'function'=19 +'if'=62 +'in'=49 +'infinitelyoften'=115 +'init'=46 +'int'=32 +'is'=21 +'lasting'=118 +'leadsto'=127 +'leave'=132 +'length'=93 +'loop'=72 +'ltl'=113 +'mortal'=116 +'nat'=31 +'next'=130 +'none'=12 +'not'=91 +'null'=56 +'of'=29 +'on'=73 +'or'=79 +'out'=137 +'par'=75 +'port'=44 +'precedes'=128 +'present'=117 +'priority'=45 +'process'=40 +'property'=112 +'queue'=38 +'read'=138 +'record'=37 +'release'=129 +'return'=55 +'select'=66 +'state'=133 +'states'=41 +'sync'=13 +'tag'=135 +'then'=63 +'to'=70 +'true'=106 +'type'=26 +'union'=35 +'unless'=51 +'until'=121 +'value'=134 +'var'=25 +'wait'=74 +'where'=58 +'while'=67 +'within'=120 +'write'=139 +'{'=100 +'{|'=102 +'|'=17 +'||'=76 +'|}'=103 +'}'=101 +RULE_ANY_OTHER=11 +RULE_FLT=7 +RULE_ID=4 +RULE_INT=6 +RULE_ML_COMMENT=8 +RULE_SL_COMMENT=9 +RULE_STRING=5 +RULE_WS=10 +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__12=12 +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__13=13 +T__14=14 +T__15=15 +T__16=16 +T__17=17 +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/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacreLexer.java b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacreLexer.java new file mode 100644 index 0000000..26b61a0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacreLexer.java @@ -0,0 +1,4994 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +package fr.irit.fiacre.xtext.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 InternalFiacreLexer extends Lexer { + public static final int T__50=50; + 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=4; + public static final int T__131=131; + public static final int T__130=130; + public static final int RULE_INT=6; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=8; + 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__37=37; + public static final int T__38=38; + public static final int T__39=39; + 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__30=30; + public static final int T__31=31; + public static final int T__32=32; + 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 T__46=46; + public static final int T__47=47; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + 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 T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__99=99; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + 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 RULE_FLT=7; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__22=22; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__20=20; + public static final int T__21=21; + public static final int T__122=122; + public static final int T__70=70; + public static final int T__121=121; + public static final int T__71=71; + public static final int T__124=124; + public static final int T__72=72; + public static final int T__123=123; + public static final int T__120=120; + public static final int RULE_STRING=5; + public static final int RULE_SL_COMMENT=9; + 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 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=10; + public static final int RULE_ANY_OTHER=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 InternalFiacreLexer() {;} + public InternalFiacreLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public InternalFiacreLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "InternalFiacre.g"; } + + // $ANTLR start "T__12" + public final void mT__12() throws RecognitionException { + try { + int _type = T__12; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:11:7: ( 'none' ) + // InternalFiacre.g:11:9: 'none' + { + match("none"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__12" + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:12:7: ( 'sync' ) + // InternalFiacre.g:12:9: 'sync' + { + match("sync"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:13:7: ( '+' ) + // InternalFiacre.g:13:9: '+' + { + match('+'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__14" + + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { + try { + int _type = T__15; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:14:7: ( '->' ) + // InternalFiacre.g:14:9: '->' + { + match("->"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__15" + + // $ANTLR start "T__16" + public final void mT__16() throws RecognitionException { + try { + int _type = T__16; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:15:7: ( '>' ) + // InternalFiacre.g:15:9: '>' + { + match('>'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__16" + + // $ANTLR start "T__17" + public final void mT__17() throws RecognitionException { + try { + int _type = T__17; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:16:7: ( '|' ) + // InternalFiacre.g:16:9: '|' + { + match('|'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__17" + + // $ANTLR start "T__18" + public final void mT__18() throws RecognitionException { + try { + int _type = T__18; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:17:7: ( '#include' ) + // InternalFiacre.g:17:9: '#include' + { + match("#include"); + + + } + + 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; + // InternalFiacre.g:18:7: ( 'function' ) + // InternalFiacre.g:18:9: 'function' + { + match("function"); + + + } + + 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; + // InternalFiacre.g:19:7: ( ':' ) + // InternalFiacre.g:19:9: ':' + { + match(':'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__20" + + // $ANTLR start "T__21" + public final void mT__21() throws RecognitionException { + try { + int _type = T__21; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:20:7: ( 'is' ) + // InternalFiacre.g:20:9: 'is' + { + match("is"); + + + } + + 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; + // InternalFiacre.g:21:7: ( '(' ) + // InternalFiacre.g:21:9: '(' + { + match('('); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__22" + + // $ANTLR start "T__23" + public final void mT__23() throws RecognitionException { + try { + int _type = T__23; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:22:7: ( ')' ) + // InternalFiacre.g:22:9: ')' + { + match(')'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__23" + + // $ANTLR start "T__24" + public final void mT__24() throws RecognitionException { + try { + int _type = T__24; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:23:7: ( ',' ) + // InternalFiacre.g:23:9: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__24" + + // $ANTLR start "T__25" + public final void mT__25() throws RecognitionException { + try { + int _type = T__25; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:24:7: ( 'var' ) + // InternalFiacre.g:24:9: 'var' + { + match("var"); + + + } + + 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; + // InternalFiacre.g:25:7: ( 'type' ) + // InternalFiacre.g:25:9: 'type' + { + match("type"); + + + } + + 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; + // InternalFiacre.g:26:7: ( 'channel' ) + // InternalFiacre.g:26:9: 'channel' + { + match("channel"); + + + } + + 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; + // InternalFiacre.g:27:7: ( 'array' ) + // InternalFiacre.g:27:9: 'array' + { + match("array"); + + + } + + 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; + // InternalFiacre.g:28:7: ( 'of' ) + // InternalFiacre.g:28:9: 'of' + { + match("of"); + + + } + + 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; + // InternalFiacre.g:29:7: ( '#' ) + // InternalFiacre.g:29:9: '#' + { + match('#'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__30" + + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { + try { + int _type = T__31; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:30:7: ( 'nat' ) + // InternalFiacre.g:30:9: 'nat' + { + match("nat"); + + + } + + 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; + // InternalFiacre.g:31:7: ( 'int' ) + // InternalFiacre.g:31:9: 'int' + { + match("int"); + + + } + + 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; + // InternalFiacre.g:32:7: ( 'bool' ) + // InternalFiacre.g:32:9: 'bool' + { + match("bool"); + + + } + + 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; + // InternalFiacre.g:33:7: ( '..' ) + // InternalFiacre.g:33:9: '..' + { + match(".."); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__34" + + // $ANTLR start "T__35" + public final void mT__35() throws RecognitionException { + try { + int _type = T__35; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:34:7: ( 'union' ) + // InternalFiacre.g:34:9: 'union' + { + match("union"); + + + } + + 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; + // InternalFiacre.g:35:7: ( 'end' ) + // InternalFiacre.g:35:9: 'end' + { + match("end"); + + + } + + 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; + // InternalFiacre.g:36:7: ( 'record' ) + // InternalFiacre.g:36:9: 'record' + { + match("record"); + + + } + + 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; + // InternalFiacre.g:37:7: ( 'queue' ) + // InternalFiacre.g:37:9: 'queue' + { + match("queue"); + + + } + + 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; + // InternalFiacre.g:38:7: ( 'const' ) + // InternalFiacre.g:38:9: 'const' + { + match("const"); + + + } + + 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; + // InternalFiacre.g:39:7: ( 'process' ) + // InternalFiacre.g:39:9: 'process' + { + match("process"); + + + } + + 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; + // InternalFiacre.g:40:7: ( 'states' ) + // InternalFiacre.g:40:9: 'states' + { + match("states"); + + + } + + 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; + // InternalFiacre.g:41:7: ( '[' ) + // InternalFiacre.g:41:9: '[' + { + match('['); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__42" + + // $ANTLR start "T__43" + public final void mT__43() throws RecognitionException { + try { + int _type = T__43; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:42:7: ( ']' ) + // InternalFiacre.g:42:9: ']' + { + match(']'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__43" + + // $ANTLR start "T__44" + public final void mT__44() throws RecognitionException { + try { + int _type = T__44; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:43:7: ( 'port' ) + // InternalFiacre.g:43:9: 'port' + { + match("port"); + + + } + + 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; + // InternalFiacre.g:44:7: ( 'priority' ) + // InternalFiacre.g:44:9: 'priority' + { + match("priority"); + + + } + + 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; + // InternalFiacre.g:45:7: ( 'init' ) + // InternalFiacre.g:45:9: 'init' + { + match("init"); + + + } + + 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; + // InternalFiacre.g:46:7: ( 'from' ) + // InternalFiacre.g:46:9: 'from' + { + match("from"); + + + } + + 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; + // InternalFiacre.g:47:7: ( 'component' ) + // InternalFiacre.g:47:9: 'component' + { + match("component"); + + + } + + 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; + // InternalFiacre.g:48:7: ( 'in' ) + // InternalFiacre.g:48:9: 'in' + { + match("in"); + + + } + + 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; + // InternalFiacre.g:49:7: ( ':=' ) + // InternalFiacre.g:49:9: ':=' + { + match(":="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__50" + + // $ANTLR start "T__51" + public final void mT__51() throws RecognitionException { + try { + int _type = T__51; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:50:7: ( 'unless' ) + // InternalFiacre.g:50:9: 'unless' + { + match("unless"); + + + } + + 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; + // InternalFiacre.g:51:7: ( '[]' ) + // InternalFiacre.g:51:9: '[]' + { + match("[]"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__52" + + // $ANTLR start "T__53" + public final void mT__53() throws RecognitionException { + try { + int _type = T__53; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:52:7: ( ';' ) + // InternalFiacre.g:52:9: ';' + { + match(';'); + + } + + 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; + // InternalFiacre.g:53:7: ( 'begin' ) + // InternalFiacre.g:53:9: 'begin' + { + match("begin"); + + + } + + 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; + // InternalFiacre.g:54:7: ( 'return' ) + // InternalFiacre.g:54:9: 'return' + { + match("return"); + + + } + + 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; + // InternalFiacre.g:55:7: ( 'null' ) + // InternalFiacre.g:55:9: 'null' + { + match("null"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__56" + + // $ANTLR start "T__57" + public final void mT__57() throws RecognitionException { + try { + int _type = T__57; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:56:7: ( 'any' ) + // InternalFiacre.g:56:9: 'any' + { + match("any"); + + + } + + 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; + // InternalFiacre.g:57:7: ( 'where' ) + // InternalFiacre.g:57:9: 'where' + { + match("where"); + + + } + + 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; + // InternalFiacre.g:58:7: ( '!' ) + // InternalFiacre.g:58:9: '!' + { + match('!'); + + } + + 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; + // InternalFiacre.g:59:7: ( '?' ) + // InternalFiacre.g:59:9: '?' + { + match('?'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__60" + + // $ANTLR start "T__61" + public final void mT__61() throws RecognitionException { + try { + int _type = T__61; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:60:7: ( '.' ) + // InternalFiacre.g:60:9: '.' + { + match('.'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__61" + + // $ANTLR start "T__62" + public final void mT__62() throws RecognitionException { + try { + int _type = T__62; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:61:7: ( 'if' ) + // InternalFiacre.g:61:9: 'if' + { + match("if"); + + + } + + 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; + // InternalFiacre.g:62:7: ( 'then' ) + // InternalFiacre.g:62:9: 'then' + { + match("then"); + + + } + + 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; + // InternalFiacre.g:63:7: ( 'else' ) + // InternalFiacre.g:63:9: 'else' + { + match("else"); + + + } + + 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; + // InternalFiacre.g:64:7: ( 'elsif' ) + // InternalFiacre.g:64:9: 'elsif' + { + match("elsif"); + + + } + + 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; + // InternalFiacre.g:65:7: ( 'select' ) + // InternalFiacre.g:65: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; + // InternalFiacre.g:66:7: ( 'while' ) + // InternalFiacre.g:66:9: 'while' + { + match("while"); + + + } + + 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; + // InternalFiacre.g:67:7: ( 'do' ) + // InternalFiacre.g:67:9: 'do' + { + match("do"); + + + } + + 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; + // InternalFiacre.g:68:7: ( 'foreach' ) + // InternalFiacre.g:68:9: 'foreach' + { + match("foreach"); + + + } + + 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; + // InternalFiacre.g:69:7: ( 'to' ) + // InternalFiacre.g:69:9: 'to' + { + match("to"); + + + } + + 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; + // InternalFiacre.g:70:7: ( 'case' ) + // InternalFiacre.g:70:9: 'case' + { + match("case"); + + + } + + 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; + // InternalFiacre.g:71:7: ( 'loop' ) + // InternalFiacre.g:71:9: 'loop' + { + match("loop"); + + + } + + 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; + // InternalFiacre.g:72:7: ( 'on' ) + // InternalFiacre.g:72:9: 'on' + { + match("on"); + + + } + + 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; + // InternalFiacre.g:73:7: ( 'wait' ) + // InternalFiacre.g:73:9: 'wait' + { + match("wait"); + + + } + + 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; + // InternalFiacre.g:74:7: ( 'par' ) + // InternalFiacre.g:74:9: 'par' + { + match("par"); + + + } + + 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; + // InternalFiacre.g:75:7: ( '||' ) + // InternalFiacre.g:75:9: '||' + { + match("||"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__76" + + // $ANTLR start "T__77" + public final void mT__77() throws RecognitionException { + try { + int _type = T__77; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:76:7: ( 'all' ) + // InternalFiacre.g:76:9: 'all' + { + match("all"); + + + } + + 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; + // InternalFiacre.g:77:7: ( 'exists' ) + // InternalFiacre.g:77:9: 'exists' + { + match("exists"); + + + } + + 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; + // InternalFiacre.g:78:7: ( 'or' ) + // InternalFiacre.g:78:9: 'or' + { + match("or"); + + + } + + 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; + // InternalFiacre.g:79:7: ( '=>' ) + // InternalFiacre.g:79:9: '=>' + { + match("=>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__80" + + // $ANTLR start "T__81" + public final void mT__81() throws RecognitionException { + try { + int _type = T__81; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:80:7: ( 'and' ) + // InternalFiacre.g:80:9: 'and' + { + match("and"); + + + } + + 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; + // InternalFiacre.g:81:7: ( '=' ) + // InternalFiacre.g:81:9: '=' + { + match('='); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__82" + + // $ANTLR start "T__83" + public final void mT__83() throws RecognitionException { + try { + int _type = T__83; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:82:7: ( '<>' ) + // InternalFiacre.g:82:9: '<>' + { + match("<>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__83" + + // $ANTLR start "T__84" + public final void mT__84() throws RecognitionException { + try { + int _type = T__84; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:83:7: ( '<' ) + // InternalFiacre.g:83:9: '<' + { + match('<'); + + } + + 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; + // InternalFiacre.g:84:7: ( '<=' ) + // InternalFiacre.g:84:9: '<=' + { + match("<="); + + + } + + 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; + // InternalFiacre.g:85:7: ( '>=' ) + // InternalFiacre.g:85:9: '>=' + { + match(">="); + + + } + + 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; + // InternalFiacre.g:86:7: ( '-' ) + // InternalFiacre.g:86:9: '-' + { + match('-'); + + } + + 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; + // InternalFiacre.g:87:7: ( '*' ) + // InternalFiacre.g:87:9: '*' + { + match('*'); + + } + + 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; + // InternalFiacre.g:88:7: ( '/' ) + // InternalFiacre.g:88:9: '/' + { + match('/'); + + } + + 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; + // InternalFiacre.g:89:7: ( '%' ) + // InternalFiacre.g:89:9: '%' + { + match('%'); + + } + + 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; + // InternalFiacre.g:90:7: ( 'not' ) + // InternalFiacre.g:90:9: 'not' + { + match("not"); + + + } + + 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; + // InternalFiacre.g:91:7: ( 'first' ) + // InternalFiacre.g:91:9: 'first' + { + match("first"); + + + } + + 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; + // InternalFiacre.g:92:7: ( 'length' ) + // InternalFiacre.g:92:9: 'length' + { + match("length"); + + + } + + 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; + // InternalFiacre.g:93:7: ( '$' ) + // InternalFiacre.g:93:9: '$' + { + match('$'); + + } + + 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; + // InternalFiacre.g:94:7: ( 'full' ) + // InternalFiacre.g:94:9: 'full' + { + match("full"); + + + } + + 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; + // InternalFiacre.g:95:7: ( 'dequeue' ) + // InternalFiacre.g:95:9: 'dequeue' + { + match("dequeue"); + + + } + + 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; + // InternalFiacre.g:96:7: ( 'empty' ) + // InternalFiacre.g:96:9: 'empty' + { + match("empty"); + + + } + + 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; + // InternalFiacre.g:97:7: ( '^' ) + // InternalFiacre.g:97: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; + // InternalFiacre.g:98:7: ( '&' ) + // InternalFiacre.g:98:9: '&' + { + match('&'); + + } + + 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; + // InternalFiacre.g:99:8: ( '{' ) + // InternalFiacre.g:99:10: '{' + { + match('{'); + + } + + 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; + // InternalFiacre.g:100:8: ( '}' ) + // InternalFiacre.g:100: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; + // InternalFiacre.g:101:8: ( '{|' ) + // InternalFiacre.g:101: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; + // InternalFiacre.g:102:8: ( '|}' ) + // InternalFiacre.g:102:10: '|}' + { + match("|}"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__103" + + // $ANTLR start "T__104" + public final void mT__104() throws RecognitionException { + try { + int _type = T__104; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:103:8: ( 'enqueue' ) + // InternalFiacre.g:103:10: 'enqueue' + { + match("enqueue"); + + + } + + 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; + // InternalFiacre.g:104:8: ( 'append' ) + // InternalFiacre.g:104:10: 'append' + { + match("append"); + + + } + + 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; + // InternalFiacre.g:105:8: ( 'true' ) + // InternalFiacre.g:105:10: 'true' + { + match("true"); + + + } + + 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; + // InternalFiacre.g:106:8: ( 'false' ) + // InternalFiacre.g:106:10: 'false' + { + match("false"); + + + } + + 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; + // InternalFiacre.g:107:8: ( '...' ) + // InternalFiacre.g:107:10: '...' + { + match("..."); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__108" + + // $ANTLR start "T__109" + public final void mT__109() throws RecognitionException { + try { + int _type = T__109; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:108:8: ( 'assert' ) + // InternalFiacre.g:108:10: 'assert' + { + match("assert"); + + + } + + 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; + // InternalFiacre.g:109:8: ( '-true' ) + // InternalFiacre.g:109:10: '-true' + { + match("-true"); + + + } + + 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; + // InternalFiacre.g:110:8: ( '-false' ) + // InternalFiacre.g:110:10: '-false' + { + match("-false"); + + + } + + 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; + // InternalFiacre.g:111:8: ( 'property' ) + // InternalFiacre.g:111:10: 'property' + { + match("property"); + + + } + + 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; + // InternalFiacre.g:112:8: ( 'ltl' ) + // InternalFiacre.g:112:10: 'ltl' + { + match("ltl"); + + + } + + 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; + // InternalFiacre.g:113:8: ( 'deadlockfree' ) + // InternalFiacre.g:113:10: 'deadlockfree' + { + match("deadlockfree"); + + + } + + 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; + // InternalFiacre.g:114:8: ( 'infinitelyoften' ) + // InternalFiacre.g:114:10: 'infinitelyoften' + { + match("infinitelyoften"); + + + } + + 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; + // InternalFiacre.g:115:8: ( 'mortal' ) + // InternalFiacre.g:115:10: 'mortal' + { + match("mortal"); + + + } + + 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; + // InternalFiacre.g:116:8: ( 'present' ) + // InternalFiacre.g:116:10: 'present' + { + match("present"); + + + } + + 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; + // InternalFiacre.g:117:8: ( 'lasting' ) + // InternalFiacre.g:117:10: 'lasting' + { + match("lasting"); + + + } + + 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; + // InternalFiacre.g:118:8: ( 'after' ) + // InternalFiacre.g:118:10: 'after' + { + match("after"); + + + } + + 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; + // InternalFiacre.g:119:8: ( 'within' ) + // InternalFiacre.g:119:10: 'within' + { + match("within"); + + + } + + 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; + // InternalFiacre.g:120:8: ( 'until' ) + // InternalFiacre.g:120:10: 'until' + { + match("until"); + + + } + + 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; + // InternalFiacre.g:121:8: ( 'before' ) + // InternalFiacre.g:121:10: 'before' + { + match("before"); + + + } + + 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; + // InternalFiacre.g:122:8: ( 'between' ) + // InternalFiacre.g:122:10: 'between' + { + match("between"); + + + } + + 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; + // InternalFiacre.g:123:8: ( 'absent' ) + // InternalFiacre.g:123:10: 'absent' + { + match("absent"); + + + } + + 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; + // InternalFiacre.g:124:8: ( 'for' ) + // InternalFiacre.g:124:10: 'for' + { + match("for"); + + + } + + 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; + // InternalFiacre.g:125:8: ( 'always' ) + // InternalFiacre.g:125:10: 'always' + { + match("always"); + + + } + + 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; + // InternalFiacre.g:126:8: ( 'leadsto' ) + // InternalFiacre.g:126:10: 'leadsto' + { + match("leadsto"); + + + } + + 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; + // InternalFiacre.g:127:8: ( 'precedes' ) + // InternalFiacre.g:127:10: 'precedes' + { + match("precedes"); + + + } + + 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; + // InternalFiacre.g:128:8: ( 'release' ) + // InternalFiacre.g:128:10: 'release' + { + match("release"); + + + } + + 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; + // InternalFiacre.g:129:8: ( 'next' ) + // InternalFiacre.g:129:10: 'next' + { + match("next"); + + + } + + 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; + // InternalFiacre.g:130:8: ( 'enter' ) + // InternalFiacre.g:130:10: 'enter' + { + match("enter"); + + + } + + 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; + // InternalFiacre.g:131:8: ( 'leave' ) + // InternalFiacre.g:131:10: 'leave' + { + match("leave"); + + + } + + 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; + // InternalFiacre.g:132:8: ( 'state' ) + // InternalFiacre.g:132:10: 'state' + { + match("state"); + + + } + + 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; + // InternalFiacre.g:133:8: ( 'value' ) + // InternalFiacre.g:133:10: 'value' + { + match("value"); + + + } + + 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; + // InternalFiacre.g:134:8: ( 'tag' ) + // InternalFiacre.g:134:10: 'tag' + { + match("tag"); + + + } + + 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; + // InternalFiacre.g:135:8: ( 'event' ) + // InternalFiacre.g:135:10: 'event' + { + match("event"); + + + } + + 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; + // InternalFiacre.g:136:8: ( 'out' ) + // InternalFiacre.g:136:10: 'out' + { + match("out"); + + + } + + 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; + // InternalFiacre.g:137:8: ( 'read' ) + // InternalFiacre.g:137:10: 'read' + { + match("read"); + + + } + + 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; + // InternalFiacre.g:138:8: ( 'write' ) + // InternalFiacre.g:138:10: 'write' + { + match("write"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__139" + + // $ANTLR start "RULE_INT" + public final void mRULE_INT() throws RecognitionException { + try { + int _type = RULE_INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:33780:10: ( ( '0' .. '9' )+ ) + // InternalFiacre.g:33780:12: ( '0' .. '9' )+ + { + // InternalFiacre.g:33780:12: ( '0' .. '9' )+ + int cnt1=0; + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( ((LA1_0>='0' && LA1_0<='9')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // InternalFiacre.g:33780:13: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt1 >= 1 ) break loop1; + EarlyExitException eee = + new EarlyExitException(1, input); + throw eee; + } + cnt1++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_INT" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:33782:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) + // InternalFiacre.g:33782:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* + { + if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // InternalFiacre.g:33782:35: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // InternalFiacre.g: + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop2; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ID" + + // $ANTLR start "RULE_FLT" + public final void mRULE_FLT() throws RecognitionException { + try { + int _type = RULE_FLT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:33784:10: ( RULE_INT '.' RULE_INT ) + // InternalFiacre.g:33784:12: RULE_INT '.' RULE_INT + { + mRULE_INT(); + match('.'); + mRULE_INT(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_FLT" + + // $ANTLR start "RULE_STRING" + public final void mRULE_STRING() throws RecognitionException { + try { + int _type = RULE_STRING; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:33786:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalFiacre.g:33786:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + { + // InternalFiacre.g:33786:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0=='\"') ) { + alt5=1; + } + else if ( (LA5_0=='\'') ) { + alt5=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + } + switch (alt5) { + case 1 : + // InternalFiacre.g:33786:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // InternalFiacre.g:33786:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + loop3: + do { + int alt3=3; + int LA3_0 = input.LA(1); + + if ( (LA3_0=='\\') ) { + alt3=1; + } + else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFF')) ) { + alt3=2; + } + + + switch (alt3) { + case 1 : + // InternalFiacre.g:33786:21: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalFiacre.g:33786:28: ~ ( ( '\\\\' | '\"' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop3; + } + } while (true); + + match('\"'); + + } + break; + case 2 : + // InternalFiacre.g:33786:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + { + match('\''); + // InternalFiacre.g:33786:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + loop4: + do { + int alt4=3; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='\\') ) { + alt4=1; + } + else if ( ((LA4_0>='\u0000' && LA4_0<='&')||(LA4_0>='(' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) { + alt4=2; + } + + + switch (alt4) { + case 1 : + // InternalFiacre.g:33786:54: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalFiacre.g:33786:61: ~ ( ( '\\\\' | '\\'' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop4; + } + } while (true); + + match('\''); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_STRING" + + // $ANTLR start "RULE_ML_COMMENT" + public final void mRULE_ML_COMMENT() throws RecognitionException { + try { + int _type = RULE_ML_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:33788:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalFiacre.g:33788:19: '/*' ( options {greedy=false; } : . )* '*/' + { + match("/*"); + + // InternalFiacre.g:33788:24: ( options {greedy=false; } : . )* + loop6: + do { + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0=='*') ) { + int LA6_1 = input.LA(2); + + if ( (LA6_1=='/') ) { + alt6=2; + } + else if ( ((LA6_1>='\u0000' && LA6_1<='.')||(LA6_1>='0' && LA6_1<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_0>='\u0000' && LA6_0<=')')||(LA6_0>='+' && LA6_0<='\uFFFF')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // InternalFiacre.g:33788:52: . + { + matchAny(); + + } + break; + + default : + break loop6; + } + } 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; + // InternalFiacre.g:33790:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalFiacre.g:33790:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + { + match("//"); + + // InternalFiacre.g:33790:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( ((LA7_0>='\u0000' && LA7_0<='\t')||(LA7_0>='\u000B' && LA7_0<='\f')||(LA7_0>='\u000E' && LA7_0<='\uFFFF')) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // InternalFiacre.g:33790: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 loop7; + } + } while (true); + + // InternalFiacre.g:33790:40: ( ( '\\r' )? '\\n' )? + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0=='\n'||LA9_0=='\r') ) { + alt9=1; + } + switch (alt9) { + case 1 : + // InternalFiacre.g:33790:41: ( '\\r' )? '\\n' + { + // InternalFiacre.g:33790:41: ( '\\r' )? + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0=='\r') ) { + alt8=1; + } + switch (alt8) { + case 1 : + // InternalFiacre.g:33790:41: '\\r' + { + match('\r'); + + } + break; + + } + + match('\n'); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SL_COMMENT" + + // $ANTLR start "RULE_WS" + public final void mRULE_WS() throws RecognitionException { + try { + int _type = RULE_WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:33792:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalFiacre.g:33792:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + { + // InternalFiacre.g:33792:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt10=0; + loop10: + do { + int alt10=2; + int LA10_0 = input.LA(1); + + if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // InternalFiacre.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 ( cnt10 >= 1 ) break loop10; + EarlyExitException eee = + new EarlyExitException(10, input); + throw eee; + } + cnt10++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_WS" + + // $ANTLR start "RULE_ANY_OTHER" + public final void mRULE_ANY_OTHER() throws RecognitionException { + try { + int _type = RULE_ANY_OTHER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:33794:16: ( . ) + // InternalFiacre.g:33794:18: . + { + matchAny(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + public void mTokens() throws RecognitionException { + // InternalFiacre.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | 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 | RULE_INT | RULE_ID | RULE_FLT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt11=136; + alt11 = dfa11.predict(input); + switch (alt11) { + case 1 : + // InternalFiacre.g:1:10: T__12 + { + mT__12(); + + } + break; + case 2 : + // InternalFiacre.g:1:16: T__13 + { + mT__13(); + + } + break; + case 3 : + // InternalFiacre.g:1:22: T__14 + { + mT__14(); + + } + break; + case 4 : + // InternalFiacre.g:1:28: T__15 + { + mT__15(); + + } + break; + case 5 : + // InternalFiacre.g:1:34: T__16 + { + mT__16(); + + } + break; + case 6 : + // InternalFiacre.g:1:40: T__17 + { + mT__17(); + + } + break; + case 7 : + // InternalFiacre.g:1:46: T__18 + { + mT__18(); + + } + break; + case 8 : + // InternalFiacre.g:1:52: T__19 + { + mT__19(); + + } + break; + case 9 : + // InternalFiacre.g:1:58: T__20 + { + mT__20(); + + } + break; + case 10 : + // InternalFiacre.g:1:64: T__21 + { + mT__21(); + + } + break; + case 11 : + // InternalFiacre.g:1:70: T__22 + { + mT__22(); + + } + break; + case 12 : + // InternalFiacre.g:1:76: T__23 + { + mT__23(); + + } + break; + case 13 : + // InternalFiacre.g:1:82: T__24 + { + mT__24(); + + } + break; + case 14 : + // InternalFiacre.g:1:88: T__25 + { + mT__25(); + + } + break; + case 15 : + // InternalFiacre.g:1:94: T__26 + { + mT__26(); + + } + break; + case 16 : + // InternalFiacre.g:1:100: T__27 + { + mT__27(); + + } + break; + case 17 : + // InternalFiacre.g:1:106: T__28 + { + mT__28(); + + } + break; + case 18 : + // InternalFiacre.g:1:112: T__29 + { + mT__29(); + + } + break; + case 19 : + // InternalFiacre.g:1:118: T__30 + { + mT__30(); + + } + break; + case 20 : + // InternalFiacre.g:1:124: T__31 + { + mT__31(); + + } + break; + case 21 : + // InternalFiacre.g:1:130: T__32 + { + mT__32(); + + } + break; + case 22 : + // InternalFiacre.g:1:136: T__33 + { + mT__33(); + + } + break; + case 23 : + // InternalFiacre.g:1:142: T__34 + { + mT__34(); + + } + break; + case 24 : + // InternalFiacre.g:1:148: T__35 + { + mT__35(); + + } + break; + case 25 : + // InternalFiacre.g:1:154: T__36 + { + mT__36(); + + } + break; + case 26 : + // InternalFiacre.g:1:160: T__37 + { + mT__37(); + + } + break; + case 27 : + // InternalFiacre.g:1:166: T__38 + { + mT__38(); + + } + break; + case 28 : + // InternalFiacre.g:1:172: T__39 + { + mT__39(); + + } + break; + case 29 : + // InternalFiacre.g:1:178: T__40 + { + mT__40(); + + } + break; + case 30 : + // InternalFiacre.g:1:184: T__41 + { + mT__41(); + + } + break; + case 31 : + // InternalFiacre.g:1:190: T__42 + { + mT__42(); + + } + break; + case 32 : + // InternalFiacre.g:1:196: T__43 + { + mT__43(); + + } + break; + case 33 : + // InternalFiacre.g:1:202: T__44 + { + mT__44(); + + } + break; + case 34 : + // InternalFiacre.g:1:208: T__45 + { + mT__45(); + + } + break; + case 35 : + // InternalFiacre.g:1:214: T__46 + { + mT__46(); + + } + break; + case 36 : + // InternalFiacre.g:1:220: T__47 + { + mT__47(); + + } + break; + case 37 : + // InternalFiacre.g:1:226: T__48 + { + mT__48(); + + } + break; + case 38 : + // InternalFiacre.g:1:232: T__49 + { + mT__49(); + + } + break; + case 39 : + // InternalFiacre.g:1:238: T__50 + { + mT__50(); + + } + break; + case 40 : + // InternalFiacre.g:1:244: T__51 + { + mT__51(); + + } + break; + case 41 : + // InternalFiacre.g:1:250: T__52 + { + mT__52(); + + } + break; + case 42 : + // InternalFiacre.g:1:256: T__53 + { + mT__53(); + + } + break; + case 43 : + // InternalFiacre.g:1:262: T__54 + { + mT__54(); + + } + break; + case 44 : + // InternalFiacre.g:1:268: T__55 + { + mT__55(); + + } + break; + case 45 : + // InternalFiacre.g:1:274: T__56 + { + mT__56(); + + } + break; + case 46 : + // InternalFiacre.g:1:280: T__57 + { + mT__57(); + + } + break; + case 47 : + // InternalFiacre.g:1:286: T__58 + { + mT__58(); + + } + break; + case 48 : + // InternalFiacre.g:1:292: T__59 + { + mT__59(); + + } + break; + case 49 : + // InternalFiacre.g:1:298: T__60 + { + mT__60(); + + } + break; + case 50 : + // InternalFiacre.g:1:304: T__61 + { + mT__61(); + + } + break; + case 51 : + // InternalFiacre.g:1:310: T__62 + { + mT__62(); + + } + break; + case 52 : + // InternalFiacre.g:1:316: T__63 + { + mT__63(); + + } + break; + case 53 : + // InternalFiacre.g:1:322: T__64 + { + mT__64(); + + } + break; + case 54 : + // InternalFiacre.g:1:328: T__65 + { + mT__65(); + + } + break; + case 55 : + // InternalFiacre.g:1:334: T__66 + { + mT__66(); + + } + break; + case 56 : + // InternalFiacre.g:1:340: T__67 + { + mT__67(); + + } + break; + case 57 : + // InternalFiacre.g:1:346: T__68 + { + mT__68(); + + } + break; + case 58 : + // InternalFiacre.g:1:352: T__69 + { + mT__69(); + + } + break; + case 59 : + // InternalFiacre.g:1:358: T__70 + { + mT__70(); + + } + break; + case 60 : + // InternalFiacre.g:1:364: T__71 + { + mT__71(); + + } + break; + case 61 : + // InternalFiacre.g:1:370: T__72 + { + mT__72(); + + } + break; + case 62 : + // InternalFiacre.g:1:376: T__73 + { + mT__73(); + + } + break; + case 63 : + // InternalFiacre.g:1:382: T__74 + { + mT__74(); + + } + break; + case 64 : + // InternalFiacre.g:1:388: T__75 + { + mT__75(); + + } + break; + case 65 : + // InternalFiacre.g:1:394: T__76 + { + mT__76(); + + } + break; + case 66 : + // InternalFiacre.g:1:400: T__77 + { + mT__77(); + + } + break; + case 67 : + // InternalFiacre.g:1:406: T__78 + { + mT__78(); + + } + break; + case 68 : + // InternalFiacre.g:1:412: T__79 + { + mT__79(); + + } + break; + case 69 : + // InternalFiacre.g:1:418: T__80 + { + mT__80(); + + } + break; + case 70 : + // InternalFiacre.g:1:424: T__81 + { + mT__81(); + + } + break; + case 71 : + // InternalFiacre.g:1:430: T__82 + { + mT__82(); + + } + break; + case 72 : + // InternalFiacre.g:1:436: T__83 + { + mT__83(); + + } + break; + case 73 : + // InternalFiacre.g:1:442: T__84 + { + mT__84(); + + } + break; + case 74 : + // InternalFiacre.g:1:448: T__85 + { + mT__85(); + + } + break; + case 75 : + // InternalFiacre.g:1:454: T__86 + { + mT__86(); + + } + break; + case 76 : + // InternalFiacre.g:1:460: T__87 + { + mT__87(); + + } + break; + case 77 : + // InternalFiacre.g:1:466: T__88 + { + mT__88(); + + } + break; + case 78 : + // InternalFiacre.g:1:472: T__89 + { + mT__89(); + + } + break; + case 79 : + // InternalFiacre.g:1:478: T__90 + { + mT__90(); + + } + break; + case 80 : + // InternalFiacre.g:1:484: T__91 + { + mT__91(); + + } + break; + case 81 : + // InternalFiacre.g:1:490: T__92 + { + mT__92(); + + } + break; + case 82 : + // InternalFiacre.g:1:496: T__93 + { + mT__93(); + + } + break; + case 83 : + // InternalFiacre.g:1:502: T__94 + { + mT__94(); + + } + break; + case 84 : + // InternalFiacre.g:1:508: T__95 + { + mT__95(); + + } + break; + case 85 : + // InternalFiacre.g:1:514: T__96 + { + mT__96(); + + } + break; + case 86 : + // InternalFiacre.g:1:520: T__97 + { + mT__97(); + + } + break; + case 87 : + // InternalFiacre.g:1:526: T__98 + { + mT__98(); + + } + break; + case 88 : + // InternalFiacre.g:1:532: T__99 + { + mT__99(); + + } + break; + case 89 : + // InternalFiacre.g:1:538: T__100 + { + mT__100(); + + } + break; + case 90 : + // InternalFiacre.g:1:545: T__101 + { + mT__101(); + + } + break; + case 91 : + // InternalFiacre.g:1:552: T__102 + { + mT__102(); + + } + break; + case 92 : + // InternalFiacre.g:1:559: T__103 + { + mT__103(); + + } + break; + case 93 : + // InternalFiacre.g:1:566: T__104 + { + mT__104(); + + } + break; + case 94 : + // InternalFiacre.g:1:573: T__105 + { + mT__105(); + + } + break; + case 95 : + // InternalFiacre.g:1:580: T__106 + { + mT__106(); + + } + break; + case 96 : + // InternalFiacre.g:1:587: T__107 + { + mT__107(); + + } + break; + case 97 : + // InternalFiacre.g:1:594: T__108 + { + mT__108(); + + } + break; + case 98 : + // InternalFiacre.g:1:601: T__109 + { + mT__109(); + + } + break; + case 99 : + // InternalFiacre.g:1:608: T__110 + { + mT__110(); + + } + break; + case 100 : + // InternalFiacre.g:1:615: T__111 + { + mT__111(); + + } + break; + case 101 : + // InternalFiacre.g:1:622: T__112 + { + mT__112(); + + } + break; + case 102 : + // InternalFiacre.g:1:629: T__113 + { + mT__113(); + + } + break; + case 103 : + // InternalFiacre.g:1:636: T__114 + { + mT__114(); + + } + break; + case 104 : + // InternalFiacre.g:1:643: T__115 + { + mT__115(); + + } + break; + case 105 : + // InternalFiacre.g:1:650: T__116 + { + mT__116(); + + } + break; + case 106 : + // InternalFiacre.g:1:657: T__117 + { + mT__117(); + + } + break; + case 107 : + // InternalFiacre.g:1:664: T__118 + { + mT__118(); + + } + break; + case 108 : + // InternalFiacre.g:1:671: T__119 + { + mT__119(); + + } + break; + case 109 : + // InternalFiacre.g:1:678: T__120 + { + mT__120(); + + } + break; + case 110 : + // InternalFiacre.g:1:685: T__121 + { + mT__121(); + + } + break; + case 111 : + // InternalFiacre.g:1:692: T__122 + { + mT__122(); + + } + break; + case 112 : + // InternalFiacre.g:1:699: T__123 + { + mT__123(); + + } + break; + case 113 : + // InternalFiacre.g:1:706: T__124 + { + mT__124(); + + } + break; + case 114 : + // InternalFiacre.g:1:713: T__125 + { + mT__125(); + + } + break; + case 115 : + // InternalFiacre.g:1:720: T__126 + { + mT__126(); + + } + break; + case 116 : + // InternalFiacre.g:1:727: T__127 + { + mT__127(); + + } + break; + case 117 : + // InternalFiacre.g:1:734: T__128 + { + mT__128(); + + } + break; + case 118 : + // InternalFiacre.g:1:741: T__129 + { + mT__129(); + + } + break; + case 119 : + // InternalFiacre.g:1:748: T__130 + { + mT__130(); + + } + break; + case 120 : + // InternalFiacre.g:1:755: T__131 + { + mT__131(); + + } + break; + case 121 : + // InternalFiacre.g:1:762: T__132 + { + mT__132(); + + } + break; + case 122 : + // InternalFiacre.g:1:769: T__133 + { + mT__133(); + + } + break; + case 123 : + // InternalFiacre.g:1:776: T__134 + { + mT__134(); + + } + break; + case 124 : + // InternalFiacre.g:1:783: T__135 + { + mT__135(); + + } + break; + case 125 : + // InternalFiacre.g:1:790: T__136 + { + mT__136(); + + } + break; + case 126 : + // InternalFiacre.g:1:797: T__137 + { + mT__137(); + + } + break; + case 127 : + // InternalFiacre.g:1:804: T__138 + { + mT__138(); + + } + break; + case 128 : + // InternalFiacre.g:1:811: T__139 + { + mT__139(); + + } + break; + case 129 : + // InternalFiacre.g:1:818: RULE_INT + { + mRULE_INT(); + + } + break; + case 130 : + // InternalFiacre.g:1:827: RULE_ID + { + mRULE_ID(); + + } + break; + case 131 : + // InternalFiacre.g:1:835: RULE_FLT + { + mRULE_FLT(); + + } + break; + case 132 : + // InternalFiacre.g:1:844: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 133 : + // InternalFiacre.g:1:856: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 134 : + // InternalFiacre.g:1:872: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 135 : + // InternalFiacre.g:1:888: RULE_WS + { + mRULE_WS(); + + } + break; + case 136 : + // InternalFiacre.g:1:896: RULE_ANY_OTHER + { + mRULE_ANY_OTHER(); + + } + break; + + } + + } + + + protected DFA11 dfa11 = new DFA11(this); + static final String DFA11_eotS = + "\1\uffff\2\67\1\uffff\1\77\1\101\1\104\1\106\1\67\1\115\1\67\3\uffff\6\67\1\153\5\67\1\170\2\uffff\1\67\2\uffff\2\67\1\u0088\1\u008b\1\uffff\1\u008f\4\uffff\1\u0095\1\uffff\1\67\1\u0098\1\uffff\2\62\2\uffff\4\67\1\uffff\3\67\14\uffff\5\67\2\uffff\1\u00ab\1\u00af\1\u00b0\3\uffff\3\67\1\u00b5\14\67\1\u00c5\1\u00c6\1\u00c7\3\67\1\u00ce\1\uffff\13\67\4\uffff\4\67\2\uffff\1\u00e8\5\67\20\uffff\1\67\1\uffff\1\u0098\3\uffff\1\67\1\u00f2\1\u00f3\10\67\1\u00fd\2\67\1\uffff\1\u0100\2\67\2\uffff\1\u0103\3\67\1\uffff\1\67\1\u0108\5\67\1\u010e\1\u010f\1\u0110\5\67\3\uffff\1\u0116\4\67\2\uffff\3\67\1\u011e\17\67\1\u0131\5\67\1\uffff\5\67\1\u013d\2\67\1\u0140\2\uffff\1\u0141\1\u0142\1\u0143\3\67\1\u0147\1\u0148\1\67\1\uffff\2\67\1\uffff\1\u014c\1\67\1\uffff\1\67\1\u014f\1\u0150\1\u0151\1\uffff\3\67\1\u0155\1\67\3\uffff\5\67\1\uffff\1\u015c\6\67\1\uffff\2\67\1\u0165\7\67\1\u016d\6\67\1\u0174\1\uffff\2\67\1\u0177\4\67\1\u017c\3\67\1\uffff\2\67\4\uffff\1\u0183\2\67\2\uffff\1\67\1\u0187\1\u0188\1\uffff\1\67\1\u018a\3\uffff\1\67\1\u018c\1\67\1\uffff\1\u018e\3\67\1\u0192\1\67\1\uffff\1\u0194\2\67\1\u0197\1\67\1\u0199\1\67\1\u019b\1\uffff\1\u019c\1\67\1\u019e\1\u019f\3\67\1\uffff\1\u01a3\5\67\1\uffff\1\u01a9\1\u01aa\1\uffff\1\67\1\u01ac\2\67\1\uffff\2\67\1\u01b1\2\67\1\u01b4\1\uffff\1\u01b5\2\67\2\uffff\1\67\1\uffff\1\67\1\uffff\1\67\1\uffff\1\u01bb\1\u01bc\1\u01bd\1\uffff\1\u01be\1\uffff\1\u01bf\1\67\1\uffff\1\u01c1\1\uffff\1\67\2\uffff\1\u01c3\2\uffff\1\u01c4\1\u01c5\1\67\1\uffff\5\67\2\uffff\1\u01cc\1\uffff\2\67\1\u01cf\1\67\1\uffff\1\67\1\u01d2\2\uffff\1\67\1\u01d4\1\67\1\u01d6\1\67\5\uffff\1\u01d8\1\uffff\1\u01d9\3\uffff\1\u01da\1\u01db\2\67\1\u01de\1\67\1\uffff\1\u01e0\1\67\1\uffff\1\u01e2\1\u01e3\1\uffff\1\u01e4\1\uffff\1\67\1\uffff\1\67\4\uffff\1\u01e7\1\u01e8\1\uffff\1\u01e9\1\uffff\1\67\3\uffff\1\67\1\u01ec\3\uffff\2\67\1\uffff\4\67\1\u01f3\1\67\1\uffff\1\67\1\u01f6\1\uffff"; + static final String DFA11_eofS = + "\u01f7\uffff"; + static final String DFA11_minS = + "\1\0\1\141\1\145\1\uffff\1\76\1\75\1\174\1\151\1\141\1\75\1\146\3\uffff\3\141\1\142\1\146\1\145\1\56\1\156\1\154\1\145\1\165\1\141\1\135\2\uffff\1\141\2\uffff\1\145\1\141\1\76\1\75\1\uffff\1\52\4\uffff\1\174\1\uffff\1\157\1\56\1\uffff\2\0\2\uffff\1\156\1\164\1\154\1\170\1\uffff\1\156\1\141\1\154\14\uffff\1\154\1\157\2\162\1\154\2\uffff\3\60\3\uffff\1\154\1\160\1\145\1\60\1\165\1\147\1\141\1\155\1\163\1\162\1\144\1\154\1\160\1\163\1\164\1\163\3\60\1\164\1\157\1\146\1\56\1\uffff\1\151\1\144\1\163\1\151\1\160\1\145\1\141\2\145\2\162\4\uffff\1\145\1\151\1\164\1\151\2\uffff\1\60\1\141\1\157\1\141\1\154\1\163\20\uffff\1\162\1\uffff\1\56\3\uffff\1\145\2\60\1\154\1\164\1\143\1\164\1\145\1\143\1\154\1\155\1\60\2\163\1\uffff\1\60\1\164\1\151\2\uffff\1\60\1\165\1\145\1\156\1\uffff\1\145\1\60\1\156\1\163\1\160\1\145\1\141\3\60\1\141\4\145\3\uffff\1\60\1\154\1\151\1\157\1\167\2\uffff\1\157\1\145\1\151\1\60\1\165\2\145\1\163\1\164\1\156\1\157\1\165\1\145\1\144\1\165\1\143\1\157\1\143\1\164\1\60\1\162\1\154\1\164\1\150\1\164\1\uffff\1\165\1\144\1\160\1\147\1\144\1\60\2\164\1\60\2\uffff\3\60\1\145\1\143\1\164\2\60\1\141\1\uffff\1\164\1\145\1\uffff\1\60\1\156\1\uffff\1\145\3\60\1\uffff\1\156\1\164\1\157\1\60\1\171\3\uffff\1\171\1\156\2\162\1\156\1\uffff\1\60\1\156\1\162\1\145\1\156\1\163\1\154\1\uffff\1\145\1\162\1\60\1\146\1\164\1\171\1\164\2\162\1\141\1\60\3\145\1\162\2\145\1\60\1\uffff\2\145\1\60\1\151\2\145\1\154\1\60\1\164\1\163\1\145\1\uffff\1\151\1\141\4\uffff\1\60\1\164\1\151\2\uffff\1\143\2\60\1\uffff\1\151\1\60\3\uffff\1\145\1\60\1\156\1\uffff\1\60\1\163\1\144\1\164\1\60\1\164\1\uffff\1\60\2\145\1\60\1\163\1\60\1\165\1\60\1\uffff\1\60\1\163\2\60\1\144\1\156\1\163\1\uffff\1\60\1\163\1\162\1\151\1\156\1\144\1\uffff\2\60\1\uffff\1\156\1\60\1\165\1\157\1\uffff\1\150\1\164\1\60\1\156\1\154\1\60\1\uffff\1\60\1\157\1\150\2\uffff\1\164\1\uffff\1\154\1\uffff\1\145\1\uffff\3\60\1\uffff\1\60\1\uffff\1\60\1\156\1\uffff\1\60\1\uffff\1\145\2\uffff\1\60\2\uffff\2\60\1\145\1\uffff\1\163\3\164\1\145\2\uffff\1\60\1\uffff\1\145\1\143\1\60\1\157\1\uffff\1\147\1\60\2\uffff\1\156\1\60\1\145\1\60\1\156\5\uffff\1\60\1\uffff\1\60\3\uffff\2\60\2\171\1\60\1\163\1\uffff\1\60\1\153\1\uffff\2\60\1\uffff\1\60\1\uffff\1\154\1\uffff\1\164\4\uffff\2\60\1\uffff\1\60\1\uffff\1\146\3\uffff\1\171\1\60\3\uffff\1\162\1\157\1\uffff\1\145\1\146\1\145\1\164\1\60\1\145\1\uffff\1\156\1\60\1\uffff"; + static final String DFA11_maxS = + "\1\uffff\1\165\1\171\1\uffff\1\164\1\75\1\175\1\151\1\165\1\75\1\163\3\uffff\1\141\1\171\1\157\1\163\1\165\1\157\1\56\1\156\1\170\1\145\1\165\1\162\1\135\2\uffff\1\162\2\uffff\1\157\1\164\2\76\1\uffff\1\57\4\uffff\1\174\1\uffff\1\157\1\71\1\uffff\2\uffff\2\uffff\2\164\1\154\1\170\1\uffff\1\156\1\141\1\154\14\uffff\1\156\1\157\2\162\1\154\2\uffff\3\172\3\uffff\1\162\1\160\1\145\1\172\1\165\1\147\1\141\1\156\1\163\1\162\1\171\1\167\1\160\1\163\1\164\1\163\3\172\1\164\1\157\1\164\1\56\1\uffff\2\164\1\163\1\151\1\160\1\145\1\164\1\145\1\157\2\162\4\uffff\2\151\1\164\1\151\2\uffff\1\172\1\161\1\157\1\156\1\154\1\163\20\uffff\1\162\1\uffff\1\71\3\uffff\1\145\2\172\1\154\1\164\1\143\1\164\1\145\1\143\1\154\1\155\1\172\2\163\1\uffff\1\172\1\164\1\151\2\uffff\1\172\1\165\1\145\1\156\1\uffff\1\145\1\172\1\156\1\163\1\160\1\145\1\141\3\172\1\141\4\145\3\uffff\1\172\1\154\1\151\1\157\1\167\2\uffff\1\157\1\145\1\151\1\172\1\165\1\145\1\151\1\163\1\164\1\156\1\157\1\165\1\145\1\144\1\165\1\160\1\157\1\163\1\164\1\172\1\162\1\154\1\164\1\150\1\164\1\uffff\1\165\1\144\1\160\1\147\1\166\1\172\2\164\1\172\2\uffff\3\172\1\145\1\143\1\164\2\172\1\141\1\uffff\1\164\1\145\1\uffff\1\172\1\156\1\uffff\1\145\3\172\1\uffff\1\156\1\164\1\157\1\172\1\171\3\uffff\1\171\1\156\2\162\1\156\1\uffff\1\172\1\156\1\162\1\145\1\156\1\163\1\154\1\uffff\1\145\1\162\1\172\1\146\1\164\1\171\1\164\2\162\1\141\1\172\3\145\1\162\2\145\1\172\1\uffff\2\145\1\172\1\151\2\145\1\154\1\172\1\164\1\163\1\145\1\uffff\1\151\1\141\4\uffff\1\172\1\164\1\151\2\uffff\1\143\2\172\1\uffff\1\151\1\172\3\uffff\1\145\1\172\1\156\1\uffff\1\172\1\163\1\144\1\164\1\172\1\164\1\uffff\1\172\2\145\1\172\1\163\1\172\1\165\1\172\1\uffff\1\172\1\163\2\172\1\144\1\156\1\163\1\uffff\1\172\1\163\1\162\1\151\1\156\1\144\1\uffff\2\172\1\uffff\1\156\1\172\1\165\1\157\1\uffff\1\150\1\164\1\172\1\156\1\154\1\172\1\uffff\1\172\1\157\1\150\2\uffff\1\164\1\uffff\1\154\1\uffff\1\145\1\uffff\3\172\1\uffff\1\172\1\uffff\1\172\1\156\1\uffff\1\172\1\uffff\1\145\2\uffff\1\172\2\uffff\2\172\1\145\1\uffff\1\163\3\164\1\145\2\uffff\1\172\1\uffff\1\145\1\143\1\172\1\157\1\uffff\1\147\1\172\2\uffff\1\156\1\172\1\145\1\172\1\156\5\uffff\1\172\1\uffff\1\172\3\uffff\2\172\2\171\1\172\1\163\1\uffff\1\172\1\153\1\uffff\2\172\1\uffff\1\172\1\uffff\1\154\1\uffff\1\164\4\uffff\2\172\1\uffff\1\172\1\uffff\1\146\3\uffff\1\171\1\172\3\uffff\1\162\1\157\1\uffff\1\145\1\146\1\145\1\164\1\172\1\145\1\uffff\1\156\1\172\1\uffff"; + static final String DFA11_acceptS = + "\3\uffff\1\3\7\uffff\1\13\1\14\1\15\15\uffff\1\40\1\52\1\uffff\1\60\1\61\4\uffff\1\115\1\uffff\1\117\1\123\1\127\1\130\1\uffff\1\132\2\uffff\1\u0082\2\uffff\1\u0087\1\u0088\4\uffff\1\u0082\3\uffff\1\3\1\4\1\143\1\144\1\114\1\113\1\5\1\101\1\134\1\6\1\7\1\23\5\uffff\1\47\1\11\3\uffff\1\13\1\14\1\15\27\uffff\1\62\13\uffff\1\51\1\37\1\40\1\52\4\uffff\1\60\1\61\6\uffff\1\105\1\107\1\110\1\112\1\111\1\115\1\u0085\1\u0086\1\116\1\117\1\123\1\127\1\130\1\133\1\131\1\132\1\uffff\1\u0081\1\uffff\1\u0083\1\u0084\1\u0087\16\uffff\1\12\3\uffff\1\46\1\63\4\uffff\1\73\17\uffff\1\22\1\76\1\104\5\uffff\1\141\1\27\31\uffff\1\71\11\uffff\1\120\1\24\11\uffff\1\162\2\uffff\1\25\2\uffff\1\16\4\uffff\1\174\5\uffff\1\56\1\106\1\102\5\uffff\1\176\7\uffff\1\31\22\uffff\1\100\13\uffff\1\146\2\uffff\1\1\1\55\1\167\1\2\3\uffff\1\124\1\44\3\uffff\1\43\2\uffff\1\17\1\64\1\137\3\uffff\1\74\6\uffff\1\26\10\uffff\1\65\7\uffff\1\177\6\uffff\1\41\2\uffff\1\77\4\uffff\1\75\6\uffff\1\172\3\uffff\1\121\1\140\1\uffff\1\173\1\uffff\1\34\1\uffff\1\21\3\uffff\1\154\1\uffff\1\53\2\uffff\1\30\1\uffff\1\156\1\uffff\1\170\1\66\1\uffff\1\126\1\175\3\uffff\1\33\5\uffff\1\57\1\70\1\uffff\1\u0080\4\uffff\1\171\2\uffff\1\36\1\67\5\uffff\1\163\1\136\1\142\1\161\1\157\1\uffff\1\50\1\uffff\1\103\1\32\1\54\6\uffff\1\155\2\uffff\1\122\2\uffff\1\151\1\uffff\1\72\1\uffff\1\20\1\uffff\1\160\1\135\1\166\1\35\2\uffff\1\152\1\uffff\1\125\1\uffff\1\164\1\153\1\10\2\uffff\1\145\1\42\1\165\2\uffff\1\45\6\uffff\1\147\2\uffff\1\150"; + static final String DFA11_specialS = + "\1\0\56\uffff\1\1\1\2\u01c6\uffff}>"; + static final String[] DFA11_transitionS = { + "\11\62\2\61\2\62\1\61\22\62\1\61\1\36\1\57\1\7\1\47\1\46\1\51\1\60\1\13\1\14\1\44\1\3\1\15\1\4\1\24\1\45\12\55\1\11\1\34\1\43\1\42\1\5\1\37\1\62\32\56\1\32\1\62\1\33\1\50\1\56\1\62\1\21\1\23\1\20\1\40\1\26\1\10\2\56\1\12\2\56\1\41\1\54\1\1\1\22\1\31\1\30\1\27\1\2\1\17\1\25\1\16\1\35\3\56\1\52\1\6\1\53\uff82\62", + "\1\64\3\uffff\1\66\11\uffff\1\63\5\uffff\1\65", + "\1\72\16\uffff\1\71\4\uffff\1\70", + "", + "\1\74\47\uffff\1\76\15\uffff\1\75", + "\1\100", + "\1\102\1\103", + "\1\105", + "\1\113\7\uffff\1\112\5\uffff\1\111\2\uffff\1\110\2\uffff\1\107", + "\1\114", + "\1\120\7\uffff\1\117\4\uffff\1\116", + "", + "", + "", + "\1\124", + "\1\131\6\uffff\1\126\6\uffff\1\127\2\uffff\1\130\6\uffff\1\125", + "\1\134\6\uffff\1\132\6\uffff\1\133", + "\1\143\3\uffff\1\142\5\uffff\1\137\1\uffff\1\136\1\uffff\1\140\1\uffff\1\135\1\141", + "\1\144\7\uffff\1\145\3\uffff\1\146\2\uffff\1\147", + "\1\151\11\uffff\1\150", + "\1\152", + "\1\154", + "\1\156\1\160\1\155\7\uffff\1\161\1\uffff\1\157", + "\1\162", + "\1\163", + "\1\166\15\uffff\1\165\2\uffff\1\164", + "\1\167", + "", + "", + "\1\174\6\uffff\1\173\1\175\10\uffff\1\176", + "", + "", + "\1\u0082\11\uffff\1\u0081", + "\1\u0086\3\uffff\1\u0084\11\uffff\1\u0083\4\uffff\1\u0085", + "\1\u0087", + "\1\u008a\1\u0089", + "", + "\1\u008d\4\uffff\1\u008e", + "", + "", + "", + "", + "\1\u0094", + "", + "\1\u0097", + "\1\u009a\1\uffff\12\u0099", + "", + "\0\u009b", + "\0\u009b", + "", + "", + "\1\u009d\5\uffff\1\u009e", + "\1\u009f", + "\1\u00a0", + "\1\u00a1", + "", + "\1\u00a2", + "\1\u00a3", + "\1\u00a4", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\u00a6\1\uffff\1\u00a5", + "\1\u00a7", + "\1\u00a8", + "\1\u00a9", + "\1\u00aa", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\5\67\1\u00ae\2\67\1\u00ad\12\67\1\u00ac\6\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "", + "", + "\1\u00b2\5\uffff\1\u00b1", + "\1\u00b3", + "\1\u00b4", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u00b6", + "\1\u00b7", + "\1\u00b8", + "\1\u00ba\1\u00b9", + "\1\u00bb", + "\1\u00bc", + "\1\u00be\24\uffff\1\u00bd", + "\1\u00bf\12\uffff\1\u00c0", + "\1\u00c1", + "\1\u00c2", + "\1\u00c3", + "\1\u00c4", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u00c8", + "\1\u00c9", + "\1\u00cb\1\u00ca\14\uffff\1\u00cc", + "\1\u00cd", + "", + "\1\u00cf\2\uffff\1\u00d0\7\uffff\1\u00d1", + "\1\u00d2\14\uffff\1\u00d3\2\uffff\1\u00d4", + "\1\u00d5", + "\1\u00d6", + "\1\u00d7", + "\1\u00d8", + "\1\u00dc\1\uffff\1\u00d9\10\uffff\1\u00db\7\uffff\1\u00da", + "\1\u00dd", + "\1\u00e0\3\uffff\1\u00df\5\uffff\1\u00de", + "\1\u00e1", + "\1\u00e2", + "", + "", + "", + "", + "\1\u00e3\3\uffff\1\u00e4", + "\1\u00e5", + "\1\u00e6", + "\1\u00e7", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u00ea\17\uffff\1\u00e9", + "\1\u00eb", + "\1\u00ed\14\uffff\1\u00ec", + "\1\u00ee", + "\1\u00ef", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\u00f0", + "", + "\1\u009a\1\uffff\12\u0099", + "", + "", + "", + "\1\u00f1", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u00f4", + "\1\u00f5", + "\1\u00f6", + "\1\u00f7", + "\1\u00f8", + "\1\u00f9", + "\1\u00fa", + "\1\u00fb", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\4\67\1\u00fc\25\67", + "\1\u00fe", + "\1\u00ff", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0101", + "\1\u0102", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0104", + "\1\u0105", + "\1\u0106", + "", + "\1\u0107", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0109", + "\1\u010a", + "\1\u010b", + "\1\u010c", + "\1\u010d", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0111", + "\1\u0112", + "\1\u0113", + "\1\u0114", + "\1\u0115", + "", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0117", + "\1\u0118", + "\1\u0119", + "\1\u011a", + "", + "", + "\1\u011b", + "\1\u011c", + "\1\u011d", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u011f", + "\1\u0120", + "\1\u0121\3\uffff\1\u0122", + "\1\u0123", + "\1\u0124", + "\1\u0125", + "\1\u0126", + "\1\u0127", + "\1\u0128", + "\1\u0129", + "\1\u012a", + "\1\u012b\14\uffff\1\u012c", + "\1\u012d", + "\1\u012f\17\uffff\1\u012e", + "\1\u0130", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0132", + "\1\u0133", + "\1\u0134", + "\1\u0135", + "\1\u0136", + "", + "\1\u0137", + "\1\u0138", + "\1\u0139", + "\1\u013a", + "\1\u013b\21\uffff\1\u013c", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u013e", + "\1\u013f", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0144", + "\1\u0145", + "\1\u0146", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0149", + "", + "\1\u014a", + "\1\u014b", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u014d", + "", + "\1\u014e", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\1\u0152", + "\1\u0153", + "\1\u0154", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0156", + "", + "", + "", + "\1\u0157", + "\1\u0158", + "\1\u0159", + "\1\u015a", + "\1\u015b", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u015d", + "\1\u015e", + "\1\u015f", + "\1\u0160", + "\1\u0161", + "\1\u0162", + "", + "\1\u0163", + "\1\u0164", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0166", + "\1\u0167", + "\1\u0168", + "\1\u0169", + "\1\u016a", + "\1\u016b", + "\1\u016c", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u016e", + "\1\u016f", + "\1\u0170", + "\1\u0171", + "\1\u0172", + "\1\u0173", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\1\u0175", + "\1\u0176", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0178", + "\1\u0179", + "\1\u017a", + "\1\u017b", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u017d", + "\1\u017e", + "\1\u017f", + "", + "\1\u0180", + "\1\u0181", + "", + "", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\22\67\1\u0182\7\67", + "\1\u0184", + "\1\u0185", + "", + "", + "\1\u0186", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\1\u0189", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "", + "", + "\1\u018b", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u018d", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u018f", + "\1\u0190", + "\1\u0191", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0193", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0195", + "\1\u0196", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u0198", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u019a", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u019d", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01a0", + "\1\u01a1", + "\1\u01a2", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01a4", + "\1\u01a5", + "\1\u01a6", + "\1\u01a7", + "\1\u01a8", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\1\u01ab", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01ad", + "\1\u01ae", + "", + "\1\u01af", + "\1\u01b0", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01b2", + "\1\u01b3", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01b6", + "\1\u01b7", + "", + "", + "\1\u01b8", + "", + "\1\u01b9", + "", + "\1\u01ba", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01c0", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\1\u01c2", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01c6", + "", + "\1\u01c7", + "\1\u01c8", + "\1\u01c9", + "\1\u01ca", + "\1\u01cb", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\1\u01cd", + "\1\u01ce", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01d0", + "", + "\1\u01d1", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "", + "\1\u01d3", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01d5", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01d7", + "", + "", + "", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01dc", + "\1\u01dd", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01df", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01e1", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\1\u01e5", + "", + "\1\u01e6", + "", + "", + "", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "\1\u01ea", + "", + "", + "", + "\1\u01eb", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "", + "", + "", + "\1\u01ed", + "\1\u01ee", + "", + "\1\u01ef", + "\1\u01f0", + "\1\u01f1", + "\1\u01f2", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "\1\u01f4", + "", + "\1\u01f5", + "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67", + "" + }; + + static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS); + static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS); + static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS); + static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS); + static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS); + static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS); + static final short[][] DFA11_transition; + + static { + int numStates = DFA11_transitionS.length; + DFA11_transition = new short[numStates][]; + for (int i=0; i') ) {s = 5;} + + else if ( (LA11_0=='|') ) {s = 6;} + + else if ( (LA11_0=='#') ) {s = 7;} + + else if ( (LA11_0=='f') ) {s = 8;} + + else if ( (LA11_0==':') ) {s = 9;} + + else if ( (LA11_0=='i') ) {s = 10;} + + else if ( (LA11_0=='(') ) {s = 11;} + + else if ( (LA11_0==')') ) {s = 12;} + + else if ( (LA11_0==',') ) {s = 13;} + + else if ( (LA11_0=='v') ) {s = 14;} + + else if ( (LA11_0=='t') ) {s = 15;} + + else if ( (LA11_0=='c') ) {s = 16;} + + else if ( (LA11_0=='a') ) {s = 17;} + + else if ( (LA11_0=='o') ) {s = 18;} + + else if ( (LA11_0=='b') ) {s = 19;} + + else if ( (LA11_0=='.') ) {s = 20;} + + else if ( (LA11_0=='u') ) {s = 21;} + + else if ( (LA11_0=='e') ) {s = 22;} + + else if ( (LA11_0=='r') ) {s = 23;} + + else if ( (LA11_0=='q') ) {s = 24;} + + else if ( (LA11_0=='p') ) {s = 25;} + + else if ( (LA11_0=='[') ) {s = 26;} + + else if ( (LA11_0==']') ) {s = 27;} + + else if ( (LA11_0==';') ) {s = 28;} + + else if ( (LA11_0=='w') ) {s = 29;} + + else if ( (LA11_0=='!') ) {s = 30;} + + else if ( (LA11_0=='?') ) {s = 31;} + + else if ( (LA11_0=='d') ) {s = 32;} + + else if ( (LA11_0=='l') ) {s = 33;} + + else if ( (LA11_0=='=') ) {s = 34;} + + else if ( (LA11_0=='<') ) {s = 35;} + + else if ( (LA11_0=='*') ) {s = 36;} + + else if ( (LA11_0=='/') ) {s = 37;} + + else if ( (LA11_0=='%') ) {s = 38;} + + else if ( (LA11_0=='$') ) {s = 39;} + + else if ( (LA11_0=='^') ) {s = 40;} + + else if ( (LA11_0=='&') ) {s = 41;} + + else if ( (LA11_0=='{') ) {s = 42;} + + else if ( (LA11_0=='}') ) {s = 43;} + + else if ( (LA11_0=='m') ) {s = 44;} + + else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 45;} + + else if ( ((LA11_0>='A' && LA11_0<='Z')||LA11_0=='_'||(LA11_0>='g' && LA11_0<='h')||(LA11_0>='j' && LA11_0<='k')||(LA11_0>='x' && LA11_0<='z')) ) {s = 46;} + + else if ( (LA11_0=='\"') ) {s = 47;} + + else if ( (LA11_0=='\'') ) {s = 48;} + + else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 49;} + + else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||LA11_0=='@'||LA11_0=='\\'||LA11_0=='`'||(LA11_0>='~' && LA11_0<='\uFFFF')) ) {s = 50;} + + if ( s>=0 ) return s; + break; + case 1 : + int LA11_47 = input.LA(1); + + s = -1; + if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 155;} + + else s = 50; + + if ( s>=0 ) return s; + break; + case 2 : + int LA11_48 = input.LA(1); + + s = -1; + if ( ((LA11_48>='\u0000' && LA11_48<='\uFFFF')) ) {s = 155;} + + else s = 50; + + if ( s>=0 ) return s; + break; + } + NoViableAltException nvae = + new NoViableAltException(getDescription(), 11, _s, input); + error(nvae); + throw nvae; + } + } + + +} \ No newline at end of file diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacreParser.java b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacreParser.java new file mode 100644 index 0000000..582e576 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src-gen/fr/irit/fiacre/xtext/ide/contentassist/antlr/internal/InternalFiacreParser.java @@ -0,0 +1,110771 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +package fr.irit.fiacre.xtext.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 fr.irit.fiacre.xtext.services.FiacreGrammarAccess; + + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +@SuppressWarnings("all") +public class InternalFiacreParser extends AbstractInternalContentAssistParser { + public static final String[] tokenNames = new String[] { + "", "", "", "", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_FLT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'none'", "'sync'", "'+'", "'->'", "'>'", "'|'", "'#include'", "'function'", "':'", "'is'", "'('", "')'", "','", "'var'", "'type'", "'channel'", "'array'", "'of'", "'#'", "'nat'", "'int'", "'bool'", "'..'", "'union'", "'end'", "'record'", "'queue'", "'const'", "'process'", "'states'", "'['", "']'", "'port'", "'priority'", "'init'", "'from'", "'component'", "'in'", "':='", "'unless'", "'[]'", "';'", "'begin'", "'return'", "'null'", "'any'", "'where'", "'!'", "'?'", "'.'", "'if'", "'then'", "'else'", "'elsif'", "'select'", "'while'", "'do'", "'foreach'", "'to'", "'case'", "'loop'", "'on'", "'wait'", "'par'", "'||'", "'all'", "'exists'", "'or'", "'=>'", "'and'", "'='", "'<>'", "'<'", "'<='", "'>='", "'-'", "'*'", "'/'", "'%'", "'not'", "'first'", "'length'", "'$'", "'full'", "'dequeue'", "'empty'", "'^'", "'&'", "'{'", "'}'", "'{|'", "'|}'", "'enqueue'", "'append'", "'true'", "'false'", "'...'", "'assert'", "'-true'", "'-false'", "'property'", "'ltl'", "'deadlockfree'", "'infinitelyoften'", "'mortal'", "'present'", "'lasting'", "'after'", "'within'", "'until'", "'before'", "'between'", "'absent'", "'for'", "'always'", "'leadsto'", "'precedes'", "'release'", "'next'", "'enter'", "'leave'", "'state'", "'value'", "'tag'", "'event'", "'out'", "'read'", "'write'" + }; + public static final int T__50=50; + 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=4; + public static final int T__131=131; + public static final int T__130=130; + public static final int RULE_INT=6; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=8; + 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__37=37; + public static final int T__38=38; + public static final int T__39=39; + 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__30=30; + public static final int T__31=31; + public static final int T__32=32; + 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 T__46=46; + public static final int T__47=47; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + 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 T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__99=99; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + 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 RULE_FLT=7; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__22=22; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__20=20; + public static final int T__21=21; + public static final int T__122=122; + public static final int T__70=70; + public static final int T__121=121; + public static final int T__71=71; + public static final int T__124=124; + public static final int T__72=72; + public static final int T__123=123; + public static final int T__120=120; + public static final int RULE_STRING=5; + public static final int RULE_SL_COMMENT=9; + 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 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=10; + public static final int RULE_ANY_OTHER=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 InternalFiacreParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public InternalFiacreParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + + } + + + public String[] getTokenNames() { return InternalFiacreParser.tokenNames; } + public String getGrammarFileName() { return "InternalFiacre.g"; } + + + private FiacreGrammarAccess grammarAccess; + + public void setGrammarAccess(FiacreGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + + @Override + protected Grammar getGrammar() { + return grammarAccess.getGrammar(); + } + + @Override + protected String getValueForTokenName(String tokenName) { + return tokenName; + } + + + + // $ANTLR start "entryRuleModel" + // InternalFiacre.g:54:1: entryRuleModel : ruleModel EOF ; + public final void entryRuleModel() throws RecognitionException { + try { + // InternalFiacre.g:55:1: ( ruleModel EOF ) + // InternalFiacre.g:56:1: ruleModel EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleModel(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getModelRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleModel" + + + // $ANTLR start "ruleModel" + // InternalFiacre.g:63:1: ruleModel : ( ( rule__Model__Group__0 ) ) ; + public final void ruleModel() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:67:2: ( ( ( rule__Model__Group__0 ) ) ) + // InternalFiacre.g:68:2: ( ( rule__Model__Group__0 ) ) + { + // InternalFiacre.g:68:2: ( ( rule__Model__Group__0 ) ) + // InternalFiacre.g:69:3: ( rule__Model__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getGroup()); + } + // InternalFiacre.g:70:3: ( rule__Model__Group__0 ) + // InternalFiacre.g:70:4: rule__Model__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Model__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleModel" + + + // $ANTLR start "entryRuleRoot" + // InternalFiacre.g:79:1: entryRuleRoot : ruleRoot EOF ; + public final void entryRuleRoot() throws RecognitionException { + try { + // InternalFiacre.g:80:1: ( ruleRoot EOF ) + // InternalFiacre.g:81:1: ruleRoot EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleRoot(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRootRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleRoot" + + + // $ANTLR start "ruleRoot" + // InternalFiacre.g:88:1: ruleRoot : ( ( rule__Root__Group__0 ) ) ; + public final void ruleRoot() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:92:2: ( ( ( rule__Root__Group__0 ) ) ) + // InternalFiacre.g:93:2: ( ( rule__Root__Group__0 ) ) + { + // InternalFiacre.g:93:2: ( ( rule__Root__Group__0 ) ) + // InternalFiacre.g:94:3: ( rule__Root__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getGroup()); + } + // InternalFiacre.g:95:3: ( rule__Root__Group__0 ) + // InternalFiacre.g:95:4: rule__Root__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleRoot" + + + // $ANTLR start "entryRuleImportDeclaration" + // InternalFiacre.g:104:1: entryRuleImportDeclaration : ruleImportDeclaration EOF ; + public final void entryRuleImportDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:105:1: ( ruleImportDeclaration EOF ) + // InternalFiacre.g:106:1: ruleImportDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImportDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleImportDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getImportDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleImportDeclaration" + + + // $ANTLR start "ruleImportDeclaration" + // InternalFiacre.g:113:1: ruleImportDeclaration : ( ( rule__ImportDeclaration__Group__0 ) ) ; + public final void ruleImportDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:117:2: ( ( ( rule__ImportDeclaration__Group__0 ) ) ) + // InternalFiacre.g:118:2: ( ( rule__ImportDeclaration__Group__0 ) ) + { + // InternalFiacre.g:118:2: ( ( rule__ImportDeclaration__Group__0 ) ) + // InternalFiacre.g:119:3: ( rule__ImportDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImportDeclarationAccess().getGroup()); + } + // InternalFiacre.g:120:3: ( rule__ImportDeclaration__Group__0 ) + // InternalFiacre.g:120:4: rule__ImportDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ImportDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getImportDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleImportDeclaration" + + + // $ANTLR start "entryRuleDeclaration" + // InternalFiacre.g:129:1: entryRuleDeclaration : ruleDeclaration EOF ; + public final void entryRuleDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:130:1: ( ruleDeclaration EOF ) + // InternalFiacre.g:131:1: ruleDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleDeclaration" + + + // $ANTLR start "ruleDeclaration" + // InternalFiacre.g:138:1: ruleDeclaration : ( ( rule__Declaration__Alternatives ) ) ; + public final void ruleDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:142:2: ( ( ( rule__Declaration__Alternatives ) ) ) + // InternalFiacre.g:143:2: ( ( rule__Declaration__Alternatives ) ) + { + // InternalFiacre.g:143:2: ( ( rule__Declaration__Alternatives ) ) + // InternalFiacre.g:144:3: ( rule__Declaration__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeclarationAccess().getAlternatives()); + } + // InternalFiacre.g:145:3: ( rule__Declaration__Alternatives ) + // InternalFiacre.g:145:4: rule__Declaration__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Declaration__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDeclarationAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleDeclaration" + + + // $ANTLR start "entryRuleParameterizedDeclaration" + // InternalFiacre.g:154:1: entryRuleParameterizedDeclaration : ruleParameterizedDeclaration EOF ; + public final void entryRuleParameterizedDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:155:1: ( ruleParameterizedDeclaration EOF ) + // InternalFiacre.g:156:1: ruleParameterizedDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterizedDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleParameterizedDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterizedDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleParameterizedDeclaration" + + + // $ANTLR start "ruleParameterizedDeclaration" + // InternalFiacre.g:163:1: ruleParameterizedDeclaration : ( ( rule__ParameterizedDeclaration__Alternatives ) ) ; + public final void ruleParameterizedDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:167:2: ( ( ( rule__ParameterizedDeclaration__Alternatives ) ) ) + // InternalFiacre.g:168:2: ( ( rule__ParameterizedDeclaration__Alternatives ) ) + { + // InternalFiacre.g:168:2: ( ( rule__ParameterizedDeclaration__Alternatives ) ) + // InternalFiacre.g:169:3: ( rule__ParameterizedDeclaration__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterizedDeclarationAccess().getAlternatives()); + } + // InternalFiacre.g:170:3: ( rule__ParameterizedDeclaration__Alternatives ) + // InternalFiacre.g:170:4: rule__ParameterizedDeclaration__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterizedDeclaration__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterizedDeclarationAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleParameterizedDeclaration" + + + // $ANTLR start "entryRuleFunctionDeclaration" + // InternalFiacre.g:179:1: entryRuleFunctionDeclaration : ruleFunctionDeclaration EOF ; + public final void entryRuleFunctionDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:180:1: ( ruleFunctionDeclaration EOF ) + // InternalFiacre.g:181:1: ruleFunctionDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleFunctionDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleFunctionDeclaration" + + + // $ANTLR start "ruleFunctionDeclaration" + // InternalFiacre.g:188:1: ruleFunctionDeclaration : ( ( rule__FunctionDeclaration__Group__0 ) ) ; + public final void ruleFunctionDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:192:2: ( ( ( rule__FunctionDeclaration__Group__0 ) ) ) + // InternalFiacre.g:193:2: ( ( rule__FunctionDeclaration__Group__0 ) ) + { + // InternalFiacre.g:193:2: ( ( rule__FunctionDeclaration__Group__0 ) ) + // InternalFiacre.g:194:3: ( rule__FunctionDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getGroup()); + } + // InternalFiacre.g:195:3: ( rule__FunctionDeclaration__Group__0 ) + // InternalFiacre.g:195:4: rule__FunctionDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleFunctionDeclaration" + + + // $ANTLR start "entryRuleTypeDeclaration" + // InternalFiacre.g:204:1: entryRuleTypeDeclaration : ruleTypeDeclaration EOF ; + public final void entryRuleTypeDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:205:1: ( ruleTypeDeclaration EOF ) + // InternalFiacre.g:206:1: ruleTypeDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleTypeDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleTypeDeclaration" + + + // $ANTLR start "ruleTypeDeclaration" + // InternalFiacre.g:213:1: ruleTypeDeclaration : ( ( rule__TypeDeclaration__Group__0 ) ) ; + public final void ruleTypeDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:217:2: ( ( ( rule__TypeDeclaration__Group__0 ) ) ) + // InternalFiacre.g:218:2: ( ( rule__TypeDeclaration__Group__0 ) ) + { + // InternalFiacre.g:218:2: ( ( rule__TypeDeclaration__Group__0 ) ) + // InternalFiacre.g:219:3: ( rule__TypeDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeDeclarationAccess().getGroup()); + } + // InternalFiacre.g:220:3: ( rule__TypeDeclaration__Group__0 ) + // InternalFiacre.g:220:4: rule__TypeDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TypeDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleTypeDeclaration" + + + // $ANTLR start "entryRuleChannelDeclaration" + // InternalFiacre.g:229:1: entryRuleChannelDeclaration : ruleChannelDeclaration EOF ; + public final void entryRuleChannelDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:230:1: ( ruleChannelDeclaration EOF ) + // InternalFiacre.g:231:1: ruleChannelDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleChannelDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleChannelDeclaration" + + + // $ANTLR start "ruleChannelDeclaration" + // InternalFiacre.g:238:1: ruleChannelDeclaration : ( ( rule__ChannelDeclaration__Group__0 ) ) ; + public final void ruleChannelDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:242:2: ( ( ( rule__ChannelDeclaration__Group__0 ) ) ) + // InternalFiacre.g:243:2: ( ( rule__ChannelDeclaration__Group__0 ) ) + { + // InternalFiacre.g:243:2: ( ( rule__ChannelDeclaration__Group__0 ) ) + // InternalFiacre.g:244:3: ( rule__ChannelDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelDeclarationAccess().getGroup()); + } + // InternalFiacre.g:245:3: ( rule__ChannelDeclaration__Group__0 ) + // InternalFiacre.g:245:4: rule__ChannelDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleChannelDeclaration" + + + // $ANTLR start "entryRuleChannelType" + // InternalFiacre.g:254:1: entryRuleChannelType : ruleChannelType EOF ; + public final void entryRuleChannelType() throws RecognitionException { + try { + // InternalFiacre.g:255:1: ( ruleChannelType EOF ) + // InternalFiacre.g:256:1: ruleChannelType EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleChannelType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleChannelType" + + + // $ANTLR start "ruleChannelType" + // InternalFiacre.g:263:1: ruleChannelType : ( ( rule__ChannelType__Group__0 ) ) ; + public final void ruleChannelType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:267:2: ( ( ( rule__ChannelType__Group__0 ) ) ) + // InternalFiacre.g:268:2: ( ( rule__ChannelType__Group__0 ) ) + { + // InternalFiacre.g:268:2: ( ( rule__ChannelType__Group__0 ) ) + // InternalFiacre.g:269:3: ( rule__ChannelType__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getGroup()); + } + // InternalFiacre.g:270:3: ( rule__ChannelType__Group__0 ) + // InternalFiacre.g:270:4: rule__ChannelType__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleChannelType" + + + // $ANTLR start "entryRuleType" + // InternalFiacre.g:279:1: entryRuleType : ruleType EOF ; + public final void entryRuleType() throws RecognitionException { + try { + // InternalFiacre.g:280:1: ( ruleType EOF ) + // InternalFiacre.g:281:1: ruleType EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleType" + + + // $ANTLR start "ruleType" + // InternalFiacre.g:288:1: ruleType : ( ( rule__Type__Alternatives ) ) ; + public final void ruleType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:292:2: ( ( ( rule__Type__Alternatives ) ) ) + // InternalFiacre.g:293:2: ( ( rule__Type__Alternatives ) ) + { + // InternalFiacre.g:293:2: ( ( rule__Type__Alternatives ) ) + // InternalFiacre.g:294:3: ( rule__Type__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeAccess().getAlternatives()); + } + // InternalFiacre.g:295:3: ( rule__Type__Alternatives ) + // InternalFiacre.g:295:4: rule__Type__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Type__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleType" + + + // $ANTLR start "entryRuleTupleType" + // InternalFiacre.g:304:1: entryRuleTupleType : ruleTupleType EOF ; + public final void entryRuleTupleType() throws RecognitionException { + try { + // InternalFiacre.g:305:1: ( ruleTupleType EOF ) + // InternalFiacre.g:306:1: ruleTupleType EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTupleTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleTupleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTupleTypeRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleTupleType" + + + // $ANTLR start "ruleTupleType" + // InternalFiacre.g:313:1: ruleTupleType : ( ( rule__TupleType__Group__0 ) ) ; + public final void ruleTupleType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:317:2: ( ( ( rule__TupleType__Group__0 ) ) ) + // InternalFiacre.g:318:2: ( ( rule__TupleType__Group__0 ) ) + { + // InternalFiacre.g:318:2: ( ( rule__TupleType__Group__0 ) ) + // InternalFiacre.g:319:3: ( rule__TupleType__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTupleTypeAccess().getGroup()); + } + // InternalFiacre.g:320:3: ( rule__TupleType__Group__0 ) + // InternalFiacre.g:320:4: rule__TupleType__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TupleType__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTupleTypeAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleTupleType" + + + // $ANTLR start "entryRuleBasicType" + // InternalFiacre.g:329:1: entryRuleBasicType : ruleBasicType EOF ; + public final void entryRuleBasicType() throws RecognitionException { + try { + // InternalFiacre.g:330:1: ( ruleBasicType EOF ) + // InternalFiacre.g:331:1: ruleBasicType EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleBasicType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleBasicType" + + + // $ANTLR start "ruleBasicType" + // InternalFiacre.g:338:1: ruleBasicType : ( ( rule__BasicType__Alternatives ) ) ; + public final void ruleBasicType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:342:2: ( ( ( rule__BasicType__Alternatives ) ) ) + // InternalFiacre.g:343:2: ( ( rule__BasicType__Alternatives ) ) + { + // InternalFiacre.g:343:2: ( ( rule__BasicType__Alternatives ) ) + // InternalFiacre.g:344:3: ( rule__BasicType__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeAccess().getAlternatives()); + } + // InternalFiacre.g:345:3: ( rule__BasicType__Alternatives ) + // InternalFiacre.g:345:4: rule__BasicType__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BasicType__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleBasicType" + + + // $ANTLR start "entryRuleRangeType" + // InternalFiacre.g:354:1: entryRuleRangeType : ruleRangeType EOF ; + public final void entryRuleRangeType() throws RecognitionException { + try { + // InternalFiacre.g:355:1: ( ruleRangeType EOF ) + // InternalFiacre.g:356:1: ruleRangeType EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRangeTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleRangeType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRangeTypeRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleRangeType" + + + // $ANTLR start "ruleRangeType" + // InternalFiacre.g:363:1: ruleRangeType : ( ( rule__RangeType__Group__0 ) ) ; + public final void ruleRangeType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:367:2: ( ( ( rule__RangeType__Group__0 ) ) ) + // InternalFiacre.g:368:2: ( ( rule__RangeType__Group__0 ) ) + { + // InternalFiacre.g:368:2: ( ( rule__RangeType__Group__0 ) ) + // InternalFiacre.g:369:3: ( rule__RangeType__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRangeTypeAccess().getGroup()); + } + // InternalFiacre.g:370:3: ( rule__RangeType__Group__0 ) + // InternalFiacre.g:370:4: rule__RangeType__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RangeType__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRangeTypeAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleRangeType" + + + // $ANTLR start "entryRuleUnionType" + // InternalFiacre.g:379:1: entryRuleUnionType : ruleUnionType EOF ; + public final void entryRuleUnionType() throws RecognitionException { + try { + // InternalFiacre.g:380:1: ( ruleUnionType EOF ) + // InternalFiacre.g:381:1: ruleUnionType EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleUnionType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleUnionType" + + + // $ANTLR start "ruleUnionType" + // InternalFiacre.g:388:1: ruleUnionType : ( ( rule__UnionType__Group__0 ) ) ; + public final void ruleUnionType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:392:2: ( ( ( rule__UnionType__Group__0 ) ) ) + // InternalFiacre.g:393:2: ( ( rule__UnionType__Group__0 ) ) + { + // InternalFiacre.g:393:2: ( ( rule__UnionType__Group__0 ) ) + // InternalFiacre.g:394:3: ( rule__UnionType__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeAccess().getGroup()); + } + // InternalFiacre.g:395:3: ( rule__UnionType__Group__0 ) + // InternalFiacre.g:395:4: rule__UnionType__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionType__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleUnionType" + + + // $ANTLR start "entryRuleUnionTags" + // InternalFiacre.g:404:1: entryRuleUnionTags : ruleUnionTags EOF ; + public final void entryRuleUnionTags() throws RecognitionException { + try { + // InternalFiacre.g:405:1: ( ruleUnionTags EOF ) + // InternalFiacre.g:406:1: ruleUnionTags EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleUnionTags(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleUnionTags" + + + // $ANTLR start "ruleUnionTags" + // InternalFiacre.g:413:1: ruleUnionTags : ( ( rule__UnionTags__Group__0 ) ) ; + public final void ruleUnionTags() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:417:2: ( ( ( rule__UnionTags__Group__0 ) ) ) + // InternalFiacre.g:418:2: ( ( rule__UnionTags__Group__0 ) ) + { + // InternalFiacre.g:418:2: ( ( rule__UnionTags__Group__0 ) ) + // InternalFiacre.g:419:3: ( rule__UnionTags__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getGroup()); + } + // InternalFiacre.g:420:3: ( rule__UnionTags__Group__0 ) + // InternalFiacre.g:420:4: rule__UnionTags__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleUnionTags" + + + // $ANTLR start "entryRuleUnionTagDeclaration" + // InternalFiacre.g:429:1: entryRuleUnionTagDeclaration : ruleUnionTagDeclaration EOF ; + public final void entryRuleUnionTagDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:430:1: ( ruleUnionTagDeclaration EOF ) + // InternalFiacre.g:431:1: ruleUnionTagDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleUnionTagDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleUnionTagDeclaration" + + + // $ANTLR start "ruleUnionTagDeclaration" + // InternalFiacre.g:438:1: ruleUnionTagDeclaration : ( ( rule__UnionTagDeclaration__NameAssignment ) ) ; + public final void ruleUnionTagDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:442:2: ( ( ( rule__UnionTagDeclaration__NameAssignment ) ) ) + // InternalFiacre.g:443:2: ( ( rule__UnionTagDeclaration__NameAssignment ) ) + { + // InternalFiacre.g:443:2: ( ( rule__UnionTagDeclaration__NameAssignment ) ) + // InternalFiacre.g:444:3: ( rule__UnionTagDeclaration__NameAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagDeclarationAccess().getNameAssignment()); + } + // InternalFiacre.g:445:3: ( rule__UnionTagDeclaration__NameAssignment ) + // InternalFiacre.g:445:4: rule__UnionTagDeclaration__NameAssignment + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTagDeclaration__NameAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagDeclarationAccess().getNameAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleUnionTagDeclaration" + + + // $ANTLR start "entryRuleRecordType" + // InternalFiacre.g:454:1: entryRuleRecordType : ruleRecordType EOF ; + public final void entryRuleRecordType() throws RecognitionException { + try { + // InternalFiacre.g:455:1: ( ruleRecordType EOF ) + // InternalFiacre.g:456:1: ruleRecordType EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleRecordType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleRecordType" + + + // $ANTLR start "ruleRecordType" + // InternalFiacre.g:463:1: ruleRecordType : ( ( rule__RecordType__Group__0 ) ) ; + public final void ruleRecordType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:467:2: ( ( ( rule__RecordType__Group__0 ) ) ) + // InternalFiacre.g:468:2: ( ( rule__RecordType__Group__0 ) ) + { + // InternalFiacre.g:468:2: ( ( rule__RecordType__Group__0 ) ) + // InternalFiacre.g:469:3: ( rule__RecordType__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeAccess().getGroup()); + } + // InternalFiacre.g:470:3: ( rule__RecordType__Group__0 ) + // InternalFiacre.g:470:4: rule__RecordType__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordType__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleRecordType" + + + // $ANTLR start "entryRuleRecordFields" + // InternalFiacre.g:479:1: entryRuleRecordFields : ruleRecordFields EOF ; + public final void entryRuleRecordFields() throws RecognitionException { + try { + // InternalFiacre.g:480:1: ( ruleRecordFields EOF ) + // InternalFiacre.g:481:1: ruleRecordFields EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleRecordFields(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleRecordFields" + + + // $ANTLR start "ruleRecordFields" + // InternalFiacre.g:488:1: ruleRecordFields : ( ( rule__RecordFields__Group__0 ) ) ; + public final void ruleRecordFields() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:492:2: ( ( ( rule__RecordFields__Group__0 ) ) ) + // InternalFiacre.g:493:2: ( ( rule__RecordFields__Group__0 ) ) + { + // InternalFiacre.g:493:2: ( ( rule__RecordFields__Group__0 ) ) + // InternalFiacre.g:494:3: ( rule__RecordFields__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsAccess().getGroup()); + } + // InternalFiacre.g:495:3: ( rule__RecordFields__Group__0 ) + // InternalFiacre.g:495:4: rule__RecordFields__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFields__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleRecordFields" + + + // $ANTLR start "entryRuleRecordFieldDeclaration" + // InternalFiacre.g:504:1: entryRuleRecordFieldDeclaration : ruleRecordFieldDeclaration EOF ; + public final void entryRuleRecordFieldDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:505:1: ( ruleRecordFieldDeclaration EOF ) + // InternalFiacre.g:506:1: ruleRecordFieldDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleRecordFieldDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleRecordFieldDeclaration" + + + // $ANTLR start "ruleRecordFieldDeclaration" + // InternalFiacre.g:513:1: ruleRecordFieldDeclaration : ( ( rule__RecordFieldDeclaration__NameAssignment ) ) ; + public final void ruleRecordFieldDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:517:2: ( ( ( rule__RecordFieldDeclaration__NameAssignment ) ) ) + // InternalFiacre.g:518:2: ( ( rule__RecordFieldDeclaration__NameAssignment ) ) + { + // InternalFiacre.g:518:2: ( ( rule__RecordFieldDeclaration__NameAssignment ) ) + // InternalFiacre.g:519:3: ( rule__RecordFieldDeclaration__NameAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldDeclarationAccess().getNameAssignment()); + } + // InternalFiacre.g:520:3: ( rule__RecordFieldDeclaration__NameAssignment ) + // InternalFiacre.g:520:4: rule__RecordFieldDeclaration__NameAssignment + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFieldDeclaration__NameAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldDeclarationAccess().getNameAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleRecordFieldDeclaration" + + + // $ANTLR start "entryRuleQueueType" + // InternalFiacre.g:529:1: entryRuleQueueType : ruleQueueType EOF ; + public final void entryRuleQueueType() throws RecognitionException { + try { + // InternalFiacre.g:530:1: ( ruleQueueType EOF ) + // InternalFiacre.g:531:1: ruleQueueType EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleQueueType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueTypeRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleQueueType" + + + // $ANTLR start "ruleQueueType" + // InternalFiacre.g:538:1: ruleQueueType : ( ( rule__QueueType__Group__0 ) ) ; + public final void ruleQueueType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:542:2: ( ( ( rule__QueueType__Group__0 ) ) ) + // InternalFiacre.g:543:2: ( ( rule__QueueType__Group__0 ) ) + { + // InternalFiacre.g:543:2: ( ( rule__QueueType__Group__0 ) ) + // InternalFiacre.g:544:3: ( rule__QueueType__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueTypeAccess().getGroup()); + } + // InternalFiacre.g:545:3: ( rule__QueueType__Group__0 ) + // InternalFiacre.g:545:4: rule__QueueType__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueType__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueTypeAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleQueueType" + + + // $ANTLR start "entryRuleArrayType" + // InternalFiacre.g:554:1: entryRuleArrayType : ruleArrayType EOF ; + public final void entryRuleArrayType() throws RecognitionException { + try { + // InternalFiacre.g:555:1: ( ruleArrayType EOF ) + // InternalFiacre.g:556:1: ruleArrayType EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleArrayType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayTypeRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleArrayType" + + + // $ANTLR start "ruleArrayType" + // InternalFiacre.g:563:1: ruleArrayType : ( ( rule__ArrayType__Group__0 ) ) ; + public final void ruleArrayType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:567:2: ( ( ( rule__ArrayType__Group__0 ) ) ) + // InternalFiacre.g:568:2: ( ( rule__ArrayType__Group__0 ) ) + { + // InternalFiacre.g:568:2: ( ( rule__ArrayType__Group__0 ) ) + // InternalFiacre.g:569:3: ( rule__ArrayType__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayTypeAccess().getGroup()); + } + // InternalFiacre.g:570:3: ( rule__ArrayType__Group__0 ) + // InternalFiacre.g:570:4: rule__ArrayType__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayType__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayTypeAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleArrayType" + + + // $ANTLR start "entryRuleReferencedType" + // InternalFiacre.g:579:1: entryRuleReferencedType : ruleReferencedType EOF ; + public final void entryRuleReferencedType() throws RecognitionException { + try { + // InternalFiacre.g:580:1: ( ruleReferencedType EOF ) + // InternalFiacre.g:581:1: ruleReferencedType EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReferencedTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleReferencedType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getReferencedTypeRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleReferencedType" + + + // $ANTLR start "ruleReferencedType" + // InternalFiacre.g:588:1: ruleReferencedType : ( ( rule__ReferencedType__TypeAssignment ) ) ; + public final void ruleReferencedType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:592:2: ( ( ( rule__ReferencedType__TypeAssignment ) ) ) + // InternalFiacre.g:593:2: ( ( rule__ReferencedType__TypeAssignment ) ) + { + // InternalFiacre.g:593:2: ( ( rule__ReferencedType__TypeAssignment ) ) + // InternalFiacre.g:594:3: ( rule__ReferencedType__TypeAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReferencedTypeAccess().getTypeAssignment()); + } + // InternalFiacre.g:595:3: ( rule__ReferencedType__TypeAssignment ) + // InternalFiacre.g:595:4: rule__ReferencedType__TypeAssignment + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ReferencedType__TypeAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getReferencedTypeAccess().getTypeAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleReferencedType" + + + // $ANTLR start "entryRuleConstantDeclaration" + // InternalFiacre.g:604:1: entryRuleConstantDeclaration : ruleConstantDeclaration EOF ; + public final void entryRuleConstantDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:605:1: ( ruleConstantDeclaration EOF ) + // InternalFiacre.g:606:1: ruleConstantDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleConstantDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleConstantDeclaration" + + + // $ANTLR start "ruleConstantDeclaration" + // InternalFiacre.g:613:1: ruleConstantDeclaration : ( ( rule__ConstantDeclaration__Group__0 ) ) ; + public final void ruleConstantDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:617:2: ( ( ( rule__ConstantDeclaration__Group__0 ) ) ) + // InternalFiacre.g:618:2: ( ( rule__ConstantDeclaration__Group__0 ) ) + { + // InternalFiacre.g:618:2: ( ( rule__ConstantDeclaration__Group__0 ) ) + // InternalFiacre.g:619:3: ( rule__ConstantDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationAccess().getGroup()); + } + // InternalFiacre.g:620:3: ( rule__ConstantDeclaration__Group__0 ) + // InternalFiacre.g:620:4: rule__ConstantDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleConstantDeclaration" + + + // $ANTLR start "entryRuleProcessDeclaration" + // InternalFiacre.g:629:1: entryRuleProcessDeclaration : ruleProcessDeclaration EOF ; + public final void entryRuleProcessDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:630:1: ( ruleProcessDeclaration EOF ) + // InternalFiacre.g:631:1: ruleProcessDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleProcessDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleProcessDeclaration" + + + // $ANTLR start "ruleProcessDeclaration" + // InternalFiacre.g:638:1: ruleProcessDeclaration : ( ( rule__ProcessDeclaration__Group__0 ) ) ; + public final void ruleProcessDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:642:2: ( ( ( rule__ProcessDeclaration__Group__0 ) ) ) + // InternalFiacre.g:643:2: ( ( rule__ProcessDeclaration__Group__0 ) ) + { + // InternalFiacre.g:643:2: ( ( rule__ProcessDeclaration__Group__0 ) ) + // InternalFiacre.g:644:3: ( rule__ProcessDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup()); + } + // InternalFiacre.g:645:3: ( rule__ProcessDeclaration__Group__0 ) + // InternalFiacre.g:645:4: rule__ProcessDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleProcessDeclaration" + + + // $ANTLR start "entryRuleStateDeclaration" + // InternalFiacre.g:654:1: entryRuleStateDeclaration : ruleStateDeclaration EOF ; + public final void entryRuleStateDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:655:1: ( ruleStateDeclaration EOF ) + // InternalFiacre.g:656:1: ruleStateDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleStateDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStateDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleStateDeclaration" + + + // $ANTLR start "ruleStateDeclaration" + // InternalFiacre.g:663:1: ruleStateDeclaration : ( ( rule__StateDeclaration__NameAssignment ) ) ; + public final void ruleStateDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:667:2: ( ( ( rule__StateDeclaration__NameAssignment ) ) ) + // InternalFiacre.g:668:2: ( ( rule__StateDeclaration__NameAssignment ) ) + { + // InternalFiacre.g:668:2: ( ( rule__StateDeclaration__NameAssignment ) ) + // InternalFiacre.g:669:3: ( rule__StateDeclaration__NameAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateDeclarationAccess().getNameAssignment()); + } + // InternalFiacre.g:670:3: ( rule__StateDeclaration__NameAssignment ) + // InternalFiacre.g:670:4: rule__StateDeclaration__NameAssignment + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StateDeclaration__NameAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStateDeclarationAccess().getNameAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleStateDeclaration" + + + // $ANTLR start "entryRuleTransitionSource" + // InternalFiacre.g:679:1: entryRuleTransitionSource : ruleTransitionSource EOF ; + public final void entryRuleTransitionSource() throws RecognitionException { + try { + // InternalFiacre.g:680:1: ( ruleTransitionSource EOF ) + // InternalFiacre.g:681:1: ruleTransitionSource EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionSourceRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleTransitionSource(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionSourceRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleTransitionSource" + + + // $ANTLR start "ruleTransitionSource" + // InternalFiacre.g:688:1: ruleTransitionSource : ( ( rule__TransitionSource__Group__0 ) ) ; + public final void ruleTransitionSource() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:692:2: ( ( ( rule__TransitionSource__Group__0 ) ) ) + // InternalFiacre.g:693:2: ( ( rule__TransitionSource__Group__0 ) ) + { + // InternalFiacre.g:693:2: ( ( rule__TransitionSource__Group__0 ) ) + // InternalFiacre.g:694:3: ( rule__TransitionSource__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionSourceAccess().getGroup()); + } + // InternalFiacre.g:695:3: ( rule__TransitionSource__Group__0 ) + // InternalFiacre.g:695:4: rule__TransitionSource__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TransitionSource__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionSourceAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleTransitionSource" + + + // $ANTLR start "entryRuleTransition" + // InternalFiacre.g:704:1: entryRuleTransition : ruleTransition EOF ; + public final void entryRuleTransition() throws RecognitionException { + try { + // InternalFiacre.g:705:1: ( ruleTransition EOF ) + // InternalFiacre.g:706:1: ruleTransition EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleTransition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleTransition" + + + // $ANTLR start "ruleTransition" + // InternalFiacre.g:713:1: ruleTransition : ( ( rule__Transition__Group__0 ) ) ; + public final void ruleTransition() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:717:2: ( ( ( rule__Transition__Group__0 ) ) ) + // InternalFiacre.g:718:2: ( ( rule__Transition__Group__0 ) ) + { + // InternalFiacre.g:718:2: ( ( rule__Transition__Group__0 ) ) + // InternalFiacre.g:719:3: ( rule__Transition__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionAccess().getGroup()); + } + // InternalFiacre.g:720:3: ( rule__Transition__Group__0 ) + // InternalFiacre.g:720:4: rule__Transition__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Transition__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleTransition" + + + // $ANTLR start "entryRuleComponentDeclaration" + // InternalFiacre.g:729:1: entryRuleComponentDeclaration : ruleComponentDeclaration EOF ; + public final void entryRuleComponentDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:730:1: ( ruleComponentDeclaration EOF ) + // InternalFiacre.g:731:1: ruleComponentDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleComponentDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleComponentDeclaration" + + + // $ANTLR start "ruleComponentDeclaration" + // InternalFiacre.g:738:1: ruleComponentDeclaration : ( ( rule__ComponentDeclaration__Group__0 ) ) ; + public final void ruleComponentDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:742:2: ( ( ( rule__ComponentDeclaration__Group__0 ) ) ) + // InternalFiacre.g:743:2: ( ( rule__ComponentDeclaration__Group__0 ) ) + { + // InternalFiacre.g:743:2: ( ( rule__ComponentDeclaration__Group__0 ) ) + // InternalFiacre.g:744:3: ( rule__ComponentDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup()); + } + // InternalFiacre.g:745:3: ( rule__ComponentDeclaration__Group__0 ) + // InternalFiacre.g:745:4: rule__ComponentDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleComponentDeclaration" + + + // $ANTLR start "entryRulePortsDeclaration" + // InternalFiacre.g:754:1: entryRulePortsDeclaration : rulePortsDeclaration EOF ; + public final void entryRulePortsDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:755:1: ( rulePortsDeclaration EOF ) + // InternalFiacre.g:756:1: rulePortsDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePortsDeclaration" + + + // $ANTLR start "rulePortsDeclaration" + // InternalFiacre.g:763:1: rulePortsDeclaration : ( ( rule__PortsDeclaration__Group__0 ) ) ; + public final void rulePortsDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:767:2: ( ( ( rule__PortsDeclaration__Group__0 ) ) ) + // InternalFiacre.g:768:2: ( ( rule__PortsDeclaration__Group__0 ) ) + { + // InternalFiacre.g:768:2: ( ( rule__PortsDeclaration__Group__0 ) ) + // InternalFiacre.g:769:3: ( rule__PortsDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationAccess().getGroup()); + } + // InternalFiacre.g:770:3: ( rule__PortsDeclaration__Group__0 ) + // InternalFiacre.g:770:4: rule__PortsDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortsDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePortsDeclaration" + + + // $ANTLR start "entryRulePortDeclaration" + // InternalFiacre.g:779:1: entryRulePortDeclaration : rulePortDeclaration EOF ; + public final void entryRulePortDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:780:1: ( rulePortDeclaration EOF ) + // InternalFiacre.g:781:1: rulePortDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePortDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePortDeclaration" + + + // $ANTLR start "rulePortDeclaration" + // InternalFiacre.g:788:1: rulePortDeclaration : ( ( rule__PortDeclaration__NameAssignment ) ) ; + public final void rulePortDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:792:2: ( ( ( rule__PortDeclaration__NameAssignment ) ) ) + // InternalFiacre.g:793:2: ( ( rule__PortDeclaration__NameAssignment ) ) + { + // InternalFiacre.g:793:2: ( ( rule__PortDeclaration__NameAssignment ) ) + // InternalFiacre.g:794:3: ( rule__PortDeclaration__NameAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortDeclarationAccess().getNameAssignment()); + } + // InternalFiacre.g:795:3: ( rule__PortDeclaration__NameAssignment ) + // InternalFiacre.g:795:4: rule__PortDeclaration__NameAssignment + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortDeclaration__NameAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortDeclarationAccess().getNameAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePortDeclaration" + + + // $ANTLR start "entryRuleLocalPortsDeclaration" + // InternalFiacre.g:804:1: entryRuleLocalPortsDeclaration : ruleLocalPortsDeclaration EOF ; + public final void entryRuleLocalPortsDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:805:1: ( ruleLocalPortsDeclaration EOF ) + // InternalFiacre.g:806:1: ruleLocalPortsDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLocalPortsDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLocalPortsDeclaration" + + + // $ANTLR start "ruleLocalPortsDeclaration" + // InternalFiacre.g:813:1: ruleLocalPortsDeclaration : ( ( rule__LocalPortsDeclaration__Group__0 ) ) ; + public final void ruleLocalPortsDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:817:2: ( ( ( rule__LocalPortsDeclaration__Group__0 ) ) ) + // InternalFiacre.g:818:2: ( ( rule__LocalPortsDeclaration__Group__0 ) ) + { + // InternalFiacre.g:818:2: ( ( rule__LocalPortsDeclaration__Group__0 ) ) + // InternalFiacre.g:819:3: ( rule__LocalPortsDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getGroup()); + } + // InternalFiacre.g:820:3: ( rule__LocalPortsDeclaration__Group__0 ) + // InternalFiacre.g:820:4: rule__LocalPortsDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLocalPortsDeclaration" + + + // $ANTLR start "entryRuleParametersDeclaration" + // InternalFiacre.g:829:1: entryRuleParametersDeclaration : ruleParametersDeclaration EOF ; + public final void entryRuleParametersDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:830:1: ( ruleParametersDeclaration EOF ) + // InternalFiacre.g:831:1: ruleParametersDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleParametersDeclaration" + + + // $ANTLR start "ruleParametersDeclaration" + // InternalFiacre.g:838:1: ruleParametersDeclaration : ( ( rule__ParametersDeclaration__Group__0 ) ) ; + public final void ruleParametersDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:842:2: ( ( ( rule__ParametersDeclaration__Group__0 ) ) ) + // InternalFiacre.g:843:2: ( ( rule__ParametersDeclaration__Group__0 ) ) + { + // InternalFiacre.g:843:2: ( ( rule__ParametersDeclaration__Group__0 ) ) + // InternalFiacre.g:844:3: ( rule__ParametersDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getGroup()); + } + // InternalFiacre.g:845:3: ( rule__ParametersDeclaration__Group__0 ) + // InternalFiacre.g:845:4: rule__ParametersDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleParametersDeclaration" + + + // $ANTLR start "entryRuleParameterDeclaration" + // InternalFiacre.g:854:1: entryRuleParameterDeclaration : ruleParameterDeclaration EOF ; + public final void entryRuleParameterDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:855:1: ( ruleParameterDeclaration EOF ) + // InternalFiacre.g:856:1: ruleParameterDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleParameterDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleParameterDeclaration" + + + // $ANTLR start "ruleParameterDeclaration" + // InternalFiacre.g:863:1: ruleParameterDeclaration : ( ( rule__ParameterDeclaration__Group__0 ) ) ; + public final void ruleParameterDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:867:2: ( ( ( rule__ParameterDeclaration__Group__0 ) ) ) + // InternalFiacre.g:868:2: ( ( rule__ParameterDeclaration__Group__0 ) ) + { + // InternalFiacre.g:868:2: ( ( rule__ParameterDeclaration__Group__0 ) ) + // InternalFiacre.g:869:3: ( rule__ParameterDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getGroup()); + } + // InternalFiacre.g:870:3: ( rule__ParameterDeclaration__Group__0 ) + // InternalFiacre.g:870:4: rule__ParameterDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleParameterDeclaration" + + + // $ANTLR start "entryRuleVariablesDeclaration" + // InternalFiacre.g:879:1: entryRuleVariablesDeclaration : ruleVariablesDeclaration EOF ; + public final void entryRuleVariablesDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:880:1: ( ruleVariablesDeclaration EOF ) + // InternalFiacre.g:881:1: ruleVariablesDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVariablesDeclaration" + + + // $ANTLR start "ruleVariablesDeclaration" + // InternalFiacre.g:888:1: ruleVariablesDeclaration : ( ( rule__VariablesDeclaration__Group__0 ) ) ; + public final void ruleVariablesDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:892:2: ( ( ( rule__VariablesDeclaration__Group__0 ) ) ) + // InternalFiacre.g:893:2: ( ( rule__VariablesDeclaration__Group__0 ) ) + { + // InternalFiacre.g:893:2: ( ( rule__VariablesDeclaration__Group__0 ) ) + // InternalFiacre.g:894:3: ( rule__VariablesDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getGroup()); + } + // InternalFiacre.g:895:3: ( rule__VariablesDeclaration__Group__0 ) + // InternalFiacre.g:895:4: rule__VariablesDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVariablesDeclaration" + + + // $ANTLR start "entryRuleVariableDeclaration" + // InternalFiacre.g:904:1: entryRuleVariableDeclaration : ruleVariableDeclaration EOF ; + public final void entryRuleVariableDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:905:1: ( ruleVariableDeclaration EOF ) + // InternalFiacre.g:906:1: ruleVariableDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVariableDeclaration" + + + // $ANTLR start "ruleVariableDeclaration" + // InternalFiacre.g:913:1: ruleVariableDeclaration : ( ( rule__VariableDeclaration__NameAssignment ) ) ; + public final void ruleVariableDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:917:2: ( ( ( rule__VariableDeclaration__NameAssignment ) ) ) + // InternalFiacre.g:918:2: ( ( rule__VariableDeclaration__NameAssignment ) ) + { + // InternalFiacre.g:918:2: ( ( rule__VariableDeclaration__NameAssignment ) ) + // InternalFiacre.g:919:3: ( rule__VariableDeclaration__NameAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableDeclarationAccess().getNameAssignment()); + } + // InternalFiacre.g:920:3: ( rule__VariableDeclaration__NameAssignment ) + // InternalFiacre.g:920:4: rule__VariableDeclaration__NameAssignment + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableDeclaration__NameAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableDeclarationAccess().getNameAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVariableDeclaration" + + + // $ANTLR start "entryRulePriorityDeclaration" + // InternalFiacre.g:929:1: entryRulePriorityDeclaration : rulePriorityDeclaration EOF ; + public final void entryRulePriorityDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:930:1: ( rulePriorityDeclaration EOF ) + // InternalFiacre.g:931:1: rulePriorityDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePriorityDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePriorityDeclaration" + + + // $ANTLR start "rulePriorityDeclaration" + // InternalFiacre.g:938:1: rulePriorityDeclaration : ( ( rule__PriorityDeclaration__Group__0 ) ) ; + public final void rulePriorityDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:942:2: ( ( ( rule__PriorityDeclaration__Group__0 ) ) ) + // InternalFiacre.g:943:2: ( ( rule__PriorityDeclaration__Group__0 ) ) + { + // InternalFiacre.g:943:2: ( ( rule__PriorityDeclaration__Group__0 ) ) + // InternalFiacre.g:944:3: ( rule__PriorityDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityDeclarationAccess().getGroup()); + } + // InternalFiacre.g:945:3: ( rule__PriorityDeclaration__Group__0 ) + // InternalFiacre.g:945:4: rule__PriorityDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePriorityDeclaration" + + + // $ANTLR start "entryRulePriorityGroup" + // InternalFiacre.g:954:1: entryRulePriorityGroup : rulePriorityGroup EOF ; + public final void entryRulePriorityGroup() throws RecognitionException { + try { + // InternalFiacre.g:955:1: ( rulePriorityGroup EOF ) + // InternalFiacre.g:956:1: rulePriorityGroup EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityGroupRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePriorityGroup(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityGroupRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePriorityGroup" + + + // $ANTLR start "rulePriorityGroup" + // InternalFiacre.g:963:1: rulePriorityGroup : ( ( rule__PriorityGroup__Group__0 ) ) ; + public final void rulePriorityGroup() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:967:2: ( ( ( rule__PriorityGroup__Group__0 ) ) ) + // InternalFiacre.g:968:2: ( ( rule__PriorityGroup__Group__0 ) ) + { + // InternalFiacre.g:968:2: ( ( rule__PriorityGroup__Group__0 ) ) + // InternalFiacre.g:969:3: ( rule__PriorityGroup__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityGroupAccess().getGroup()); + } + // InternalFiacre.g:970:3: ( rule__PriorityGroup__Group__0 ) + // InternalFiacre.g:970:4: rule__PriorityGroup__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityGroup__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityGroupAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePriorityGroup" + + + // $ANTLR start "entryRuleUnlessStatement" + // InternalFiacre.g:979:1: entryRuleUnlessStatement : ruleUnlessStatement EOF ; + public final void entryRuleUnlessStatement() throws RecognitionException { + try { + // InternalFiacre.g:980:1: ( ruleUnlessStatement EOF ) + // InternalFiacre.g:981:1: ruleUnlessStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnlessStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleUnlessStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnlessStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleUnlessStatement" + + + // $ANTLR start "ruleUnlessStatement" + // InternalFiacre.g:988:1: ruleUnlessStatement : ( ( rule__UnlessStatement__Group__0 ) ) ; + public final void ruleUnlessStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:992:2: ( ( ( rule__UnlessStatement__Group__0 ) ) ) + // InternalFiacre.g:993:2: ( ( rule__UnlessStatement__Group__0 ) ) + { + // InternalFiacre.g:993:2: ( ( rule__UnlessStatement__Group__0 ) ) + // InternalFiacre.g:994:3: ( rule__UnlessStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnlessStatementAccess().getGroup()); + } + // InternalFiacre.g:995:3: ( rule__UnlessStatement__Group__0 ) + // InternalFiacre.g:995:4: rule__UnlessStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnlessStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnlessStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleUnlessStatement" + + + // $ANTLR start "entryRuleStatementChoice" + // InternalFiacre.g:1004:1: entryRuleStatementChoice : ruleStatementChoice EOF ; + public final void entryRuleStatementChoice() throws RecognitionException { + try { + // InternalFiacre.g:1005:1: ( ruleStatementChoice EOF ) + // InternalFiacre.g:1006:1: ruleStatementChoice EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementChoiceRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleStatementChoice(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementChoiceRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleStatementChoice" + + + // $ANTLR start "ruleStatementChoice" + // InternalFiacre.g:1013:1: ruleStatementChoice : ( ( rule__StatementChoice__Group__0 ) ) ; + public final void ruleStatementChoice() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1017:2: ( ( ( rule__StatementChoice__Group__0 ) ) ) + // InternalFiacre.g:1018:2: ( ( rule__StatementChoice__Group__0 ) ) + { + // InternalFiacre.g:1018:2: ( ( rule__StatementChoice__Group__0 ) ) + // InternalFiacre.g:1019:3: ( rule__StatementChoice__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementChoiceAccess().getGroup()); + } + // InternalFiacre.g:1020:3: ( rule__StatementChoice__Group__0 ) + // InternalFiacre.g:1020:4: rule__StatementChoice__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementChoice__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementChoiceAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleStatementChoice" + + + // $ANTLR start "entryRuleStatementSequence" + // InternalFiacre.g:1029:1: entryRuleStatementSequence : ruleStatementSequence EOF ; + public final void entryRuleStatementSequence() throws RecognitionException { + try { + // InternalFiacre.g:1030:1: ( ruleStatementSequence EOF ) + // InternalFiacre.g:1031:1: ruleStatementSequence EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementSequenceRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementSequenceRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleStatementSequence" + + + // $ANTLR start "ruleStatementSequence" + // InternalFiacre.g:1038:1: ruleStatementSequence : ( ( rule__StatementSequence__Group__0 ) ) ; + public final void ruleStatementSequence() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1042:2: ( ( ( rule__StatementSequence__Group__0 ) ) ) + // InternalFiacre.g:1043:2: ( ( rule__StatementSequence__Group__0 ) ) + { + // InternalFiacre.g:1043:2: ( ( rule__StatementSequence__Group__0 ) ) + // InternalFiacre.g:1044:3: ( rule__StatementSequence__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementSequenceAccess().getGroup()); + } + // InternalFiacre.g:1045:3: ( rule__StatementSequence__Group__0 ) + // InternalFiacre.g:1045:4: rule__StatementSequence__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementSequence__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementSequenceAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleStatementSequence" + + + // $ANTLR start "entryRuleStatement" + // InternalFiacre.g:1054:1: entryRuleStatement : ruleStatement EOF ; + public final void entryRuleStatement() throws RecognitionException { + try { + // InternalFiacre.g:1055:1: ( ruleStatement EOF ) + // InternalFiacre.g:1056:1: ruleStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleStatement" + + + // $ANTLR start "ruleStatement" + // InternalFiacre.g:1063:1: ruleStatement : ( ( rule__Statement__Alternatives ) ) ; + public final void ruleStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1067:2: ( ( ( rule__Statement__Alternatives ) ) ) + // InternalFiacre.g:1068:2: ( ( rule__Statement__Alternatives ) ) + { + // InternalFiacre.g:1068:2: ( ( rule__Statement__Alternatives ) ) + // InternalFiacre.g:1069:3: ( rule__Statement__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getAlternatives()); + } + // InternalFiacre.g:1070:3: ( rule__Statement__Alternatives ) + // InternalFiacre.g:1070:4: rule__Statement__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Statement__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleStatement" + + + // $ANTLR start "entryRuleBlockStatement" + // InternalFiacre.g:1079:1: entryRuleBlockStatement : ruleBlockStatement EOF ; + public final void entryRuleBlockStatement() throws RecognitionException { + try { + // InternalFiacre.g:1080:1: ( ruleBlockStatement EOF ) + // InternalFiacre.g:1081:1: ruleBlockStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleBlockStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBlockStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleBlockStatement" + + + // $ANTLR start "ruleBlockStatement" + // InternalFiacre.g:1088:1: ruleBlockStatement : ( ( rule__BlockStatement__Group__0 ) ) ; + public final void ruleBlockStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1092:2: ( ( ( rule__BlockStatement__Group__0 ) ) ) + // InternalFiacre.g:1093:2: ( ( rule__BlockStatement__Group__0 ) ) + { + // InternalFiacre.g:1093:2: ( ( rule__BlockStatement__Group__0 ) ) + // InternalFiacre.g:1094:3: ( rule__BlockStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockStatementAccess().getGroup()); + } + // InternalFiacre.g:1095:3: ( rule__BlockStatement__Group__0 ) + // InternalFiacre.g:1095:4: rule__BlockStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BlockStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBlockStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleBlockStatement" + + + // $ANTLR start "entryRuleReturnStatement" + // InternalFiacre.g:1104:1: entryRuleReturnStatement : ruleReturnStatement EOF ; + public final void entryRuleReturnStatement() throws RecognitionException { + try { + // InternalFiacre.g:1105:1: ( ruleReturnStatement EOF ) + // InternalFiacre.g:1106:1: ruleReturnStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReturnStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleReturnStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getReturnStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleReturnStatement" + + + // $ANTLR start "ruleReturnStatement" + // InternalFiacre.g:1113:1: ruleReturnStatement : ( ( rule__ReturnStatement__Group__0 ) ) ; + public final void ruleReturnStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1117:2: ( ( ( rule__ReturnStatement__Group__0 ) ) ) + // InternalFiacre.g:1118:2: ( ( rule__ReturnStatement__Group__0 ) ) + { + // InternalFiacre.g:1118:2: ( ( rule__ReturnStatement__Group__0 ) ) + // InternalFiacre.g:1119:3: ( rule__ReturnStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReturnStatementAccess().getGroup()); + } + // InternalFiacre.g:1120:3: ( rule__ReturnStatement__Group__0 ) + // InternalFiacre.g:1120:4: rule__ReturnStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ReturnStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getReturnStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleReturnStatement" + + + // $ANTLR start "entryRuleNullStatement" + // InternalFiacre.g:1129:1: entryRuleNullStatement : ruleNullStatement EOF ; + public final void entryRuleNullStatement() throws RecognitionException { + try { + // InternalFiacre.g:1130:1: ( ruleNullStatement EOF ) + // InternalFiacre.g:1131:1: ruleNullStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNullStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleNullStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNullStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleNullStatement" + + + // $ANTLR start "ruleNullStatement" + // InternalFiacre.g:1138:1: ruleNullStatement : ( ( rule__NullStatement__Group__0 ) ) ; + public final void ruleNullStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1142:2: ( ( ( rule__NullStatement__Group__0 ) ) ) + // InternalFiacre.g:1143:2: ( ( rule__NullStatement__Group__0 ) ) + { + // InternalFiacre.g:1143:2: ( ( rule__NullStatement__Group__0 ) ) + // InternalFiacre.g:1144:3: ( rule__NullStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNullStatementAccess().getGroup()); + } + // InternalFiacre.g:1145:3: ( rule__NullStatement__Group__0 ) + // InternalFiacre.g:1145:4: rule__NullStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NullStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNullStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleNullStatement" + + + // $ANTLR start "entryRuleTaggedStatement" + // InternalFiacre.g:1154:1: entryRuleTaggedStatement : ruleTaggedStatement EOF ; + public final void entryRuleTaggedStatement() throws RecognitionException { + try { + // InternalFiacre.g:1155:1: ( ruleTaggedStatement EOF ) + // InternalFiacre.g:1156:1: ruleTaggedStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTaggedStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleTaggedStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTaggedStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleTaggedStatement" + + + // $ANTLR start "ruleTaggedStatement" + // InternalFiacre.g:1163:1: ruleTaggedStatement : ( ( rule__TaggedStatement__Group__0 ) ) ; + public final void ruleTaggedStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1167:2: ( ( ( rule__TaggedStatement__Group__0 ) ) ) + // InternalFiacre.g:1168:2: ( ( rule__TaggedStatement__Group__0 ) ) + { + // InternalFiacre.g:1168:2: ( ( rule__TaggedStatement__Group__0 ) ) + // InternalFiacre.g:1169:3: ( rule__TaggedStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTaggedStatementAccess().getGroup()); + } + // InternalFiacre.g:1170:3: ( rule__TaggedStatement__Group__0 ) + // InternalFiacre.g:1170:4: rule__TaggedStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TaggedStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTaggedStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleTaggedStatement" + + + // $ANTLR start "entryRulePatternStatement" + // InternalFiacre.g:1179:1: entryRulePatternStatement : rulePatternStatement EOF ; + public final void entryRulePatternStatement() throws RecognitionException { + try { + // InternalFiacre.g:1180:1: ( rulePatternStatement EOF ) + // InternalFiacre.g:1181:1: rulePatternStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePatternStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePatternStatement" + + + // $ANTLR start "rulePatternStatement" + // InternalFiacre.g:1188:1: rulePatternStatement : ( ( rule__PatternStatement__Group__0 ) ) ; + public final void rulePatternStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1192:2: ( ( ( rule__PatternStatement__Group__0 ) ) ) + // InternalFiacre.g:1193:2: ( ( rule__PatternStatement__Group__0 ) ) + { + // InternalFiacre.g:1193:2: ( ( rule__PatternStatement__Group__0 ) ) + // InternalFiacre.g:1194:3: ( rule__PatternStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup()); + } + // InternalFiacre.g:1195:3: ( rule__PatternStatement__Group__0 ) + // InternalFiacre.g:1195:4: rule__PatternStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePatternStatement" + + + // $ANTLR start "entryRulePattern" + // InternalFiacre.g:1204:1: entryRulePattern : rulePattern EOF ; + public final void entryRulePattern() throws RecognitionException { + try { + // InternalFiacre.g:1205:1: ( rulePattern EOF ) + // InternalFiacre.g:1206:1: rulePattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePattern" + + + // $ANTLR start "rulePattern" + // InternalFiacre.g:1213:1: rulePattern : ( ( rule__Pattern__Alternatives ) ) ; + public final void rulePattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1217:2: ( ( ( rule__Pattern__Alternatives ) ) ) + // InternalFiacre.g:1218:2: ( ( rule__Pattern__Alternatives ) ) + { + // InternalFiacre.g:1218:2: ( ( rule__Pattern__Alternatives ) ) + // InternalFiacre.g:1219:3: ( rule__Pattern__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternAccess().getAlternatives()); + } + // InternalFiacre.g:1220:3: ( rule__Pattern__Alternatives ) + // InternalFiacre.g:1220:4: rule__Pattern__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Pattern__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePattern" + + + // $ANTLR start "entryRuleAnyPattern" + // InternalFiacre.g:1229:1: entryRuleAnyPattern : ruleAnyPattern EOF ; + public final void entryRuleAnyPattern() throws RecognitionException { + try { + // InternalFiacre.g:1230:1: ( ruleAnyPattern EOF ) + // InternalFiacre.g:1231:1: ruleAnyPattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAnyPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleAnyPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAnyPatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleAnyPattern" + + + // $ANTLR start "ruleAnyPattern" + // InternalFiacre.g:1238:1: ruleAnyPattern : ( ( rule__AnyPattern__Group__0 ) ) ; + public final void ruleAnyPattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1242:2: ( ( ( rule__AnyPattern__Group__0 ) ) ) + // InternalFiacre.g:1243:2: ( ( rule__AnyPattern__Group__0 ) ) + { + // InternalFiacre.g:1243:2: ( ( rule__AnyPattern__Group__0 ) ) + // InternalFiacre.g:1244:3: ( rule__AnyPattern__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAnyPatternAccess().getGroup()); + } + // InternalFiacre.g:1245:3: ( rule__AnyPattern__Group__0 ) + // InternalFiacre.g:1245:4: rule__AnyPattern__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AnyPattern__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAnyPatternAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleAnyPattern" + + + // $ANTLR start "entryRuleConstantPattern" + // InternalFiacre.g:1254:1: entryRuleConstantPattern : ruleConstantPattern EOF ; + public final void entryRuleConstantPattern() throws RecognitionException { + try { + // InternalFiacre.g:1255:1: ( ruleConstantPattern EOF ) + // InternalFiacre.g:1256:1: ruleConstantPattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleConstantPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantPatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleConstantPattern" + + + // $ANTLR start "ruleConstantPattern" + // InternalFiacre.g:1263:1: ruleConstantPattern : ( ( rule__ConstantPattern__ValueAssignment ) ) ; + public final void ruleConstantPattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1267:2: ( ( ( rule__ConstantPattern__ValueAssignment ) ) ) + // InternalFiacre.g:1268:2: ( ( rule__ConstantPattern__ValueAssignment ) ) + { + // InternalFiacre.g:1268:2: ( ( rule__ConstantPattern__ValueAssignment ) ) + // InternalFiacre.g:1269:3: ( rule__ConstantPattern__ValueAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantPatternAccess().getValueAssignment()); + } + // InternalFiacre.g:1270:3: ( rule__ConstantPattern__ValueAssignment ) + // InternalFiacre.g:1270:4: rule__ConstantPattern__ValueAssignment + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantPattern__ValueAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantPatternAccess().getValueAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleConstantPattern" + + + // $ANTLR start "entryRuleIntegerPattern" + // InternalFiacre.g:1279:1: entryRuleIntegerPattern : ruleIntegerPattern EOF ; + public final void entryRuleIntegerPattern() throws RecognitionException { + try { + // InternalFiacre.g:1280:1: ( ruleIntegerPattern EOF ) + // InternalFiacre.g:1281:1: ruleIntegerPattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIntegerPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleIntegerPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIntegerPatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleIntegerPattern" + + + // $ANTLR start "ruleIntegerPattern" + // InternalFiacre.g:1288:1: ruleIntegerPattern : ( ( rule__IntegerPattern__Group__0 ) ) ; + public final void ruleIntegerPattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1292:2: ( ( ( rule__IntegerPattern__Group__0 ) ) ) + // InternalFiacre.g:1293:2: ( ( rule__IntegerPattern__Group__0 ) ) + { + // InternalFiacre.g:1293:2: ( ( rule__IntegerPattern__Group__0 ) ) + // InternalFiacre.g:1294:3: ( rule__IntegerPattern__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIntegerPatternAccess().getGroup()); + } + // InternalFiacre.g:1295:3: ( rule__IntegerPattern__Group__0 ) + // InternalFiacre.g:1295:4: rule__IntegerPattern__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IntegerPattern__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIntegerPatternAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleIntegerPattern" + + + // $ANTLR start "entryRuleIdentifierPattern" + // InternalFiacre.g:1304:1: entryRuleIdentifierPattern : ruleIdentifierPattern EOF ; + public final void entryRuleIdentifierPattern() throws RecognitionException { + try { + // InternalFiacre.g:1305:1: ( ruleIdentifierPattern EOF ) + // InternalFiacre.g:1306:1: ruleIdentifierPattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleIdentifierPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleIdentifierPattern" + + + // $ANTLR start "ruleIdentifierPattern" + // InternalFiacre.g:1313:1: ruleIdentifierPattern : ( ( rule__IdentifierPattern__Alternatives ) ) ; + public final void ruleIdentifierPattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1317:2: ( ( ( rule__IdentifierPattern__Alternatives ) ) ) + // InternalFiacre.g:1318:2: ( ( rule__IdentifierPattern__Alternatives ) ) + { + // InternalFiacre.g:1318:2: ( ( rule__IdentifierPattern__Alternatives ) ) + // InternalFiacre.g:1319:3: ( rule__IdentifierPattern__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getAlternatives()); + } + // InternalFiacre.g:1320:3: ( rule__IdentifierPattern__Alternatives ) + // InternalFiacre.g:1320:4: rule__IdentifierPattern__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleIdentifierPattern" + + + // $ANTLR start "entryRuleConditionalStatement" + // InternalFiacre.g:1329:1: entryRuleConditionalStatement : ruleConditionalStatement EOF ; + public final void entryRuleConditionalStatement() throws RecognitionException { + try { + // InternalFiacre.g:1330:1: ( ruleConditionalStatement EOF ) + // InternalFiacre.g:1331:1: ruleConditionalStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleConditionalStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleConditionalStatement" + + + // $ANTLR start "ruleConditionalStatement" + // InternalFiacre.g:1338:1: ruleConditionalStatement : ( ( rule__ConditionalStatement__Group__0 ) ) ; + public final void ruleConditionalStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1342:2: ( ( ( rule__ConditionalStatement__Group__0 ) ) ) + // InternalFiacre.g:1343:2: ( ( rule__ConditionalStatement__Group__0 ) ) + { + // InternalFiacre.g:1343:2: ( ( rule__ConditionalStatement__Group__0 ) ) + // InternalFiacre.g:1344:3: ( rule__ConditionalStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getGroup()); + } + // InternalFiacre.g:1345:3: ( rule__ConditionalStatement__Group__0 ) + // InternalFiacre.g:1345:4: rule__ConditionalStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleConditionalStatement" + + + // $ANTLR start "entryRuleExtendedConditionalStatement" + // InternalFiacre.g:1354:1: entryRuleExtendedConditionalStatement : ruleExtendedConditionalStatement EOF ; + public final void entryRuleExtendedConditionalStatement() throws RecognitionException { + try { + // InternalFiacre.g:1355:1: ( ruleExtendedConditionalStatement EOF ) + // InternalFiacre.g:1356:1: ruleExtendedConditionalStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getExtendedConditionalStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleExtendedConditionalStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getExtendedConditionalStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleExtendedConditionalStatement" + + + // $ANTLR start "ruleExtendedConditionalStatement" + // InternalFiacre.g:1363:1: ruleExtendedConditionalStatement : ( ( rule__ExtendedConditionalStatement__Group__0 ) ) ; + public final void ruleExtendedConditionalStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1367:2: ( ( ( rule__ExtendedConditionalStatement__Group__0 ) ) ) + // InternalFiacre.g:1368:2: ( ( rule__ExtendedConditionalStatement__Group__0 ) ) + { + // InternalFiacre.g:1368:2: ( ( rule__ExtendedConditionalStatement__Group__0 ) ) + // InternalFiacre.g:1369:3: ( rule__ExtendedConditionalStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getExtendedConditionalStatementAccess().getGroup()); + } + // InternalFiacre.g:1370:3: ( rule__ExtendedConditionalStatement__Group__0 ) + // InternalFiacre.g:1370:4: rule__ExtendedConditionalStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ExtendedConditionalStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getExtendedConditionalStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleExtendedConditionalStatement" + + + // $ANTLR start "entryRuleSelectStatement" + // InternalFiacre.g:1379:1: entryRuleSelectStatement : ruleSelectStatement EOF ; + public final void entryRuleSelectStatement() throws RecognitionException { + try { + // InternalFiacre.g:1380:1: ( ruleSelectStatement EOF ) + // InternalFiacre.g:1381:1: ruleSelectStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleSelectStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleSelectStatement" + + + // $ANTLR start "ruleSelectStatement" + // InternalFiacre.g:1388:1: ruleSelectStatement : ( ( rule__SelectStatement__Group__0 ) ) ; + public final void ruleSelectStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1392:2: ( ( ( rule__SelectStatement__Group__0 ) ) ) + // InternalFiacre.g:1393:2: ( ( rule__SelectStatement__Group__0 ) ) + { + // InternalFiacre.g:1393:2: ( ( rule__SelectStatement__Group__0 ) ) + // InternalFiacre.g:1394:3: ( rule__SelectStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getGroup()); + } + // InternalFiacre.g:1395:3: ( rule__SelectStatement__Group__0 ) + // InternalFiacre.g:1395:4: rule__SelectStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleSelectStatement" + + + // $ANTLR start "entryRuleWhileStatement" + // InternalFiacre.g:1404:1: entryRuleWhileStatement : ruleWhileStatement EOF ; + public final void entryRuleWhileStatement() throws RecognitionException { + try { + // InternalFiacre.g:1405:1: ( ruleWhileStatement EOF ) + // InternalFiacre.g:1406:1: ruleWhileStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWhileStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleWhileStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWhileStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleWhileStatement" + + + // $ANTLR start "ruleWhileStatement" + // InternalFiacre.g:1413:1: ruleWhileStatement : ( ( rule__WhileStatement__Group__0 ) ) ; + public final void ruleWhileStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1417:2: ( ( ( rule__WhileStatement__Group__0 ) ) ) + // InternalFiacre.g:1418:2: ( ( rule__WhileStatement__Group__0 ) ) + { + // InternalFiacre.g:1418:2: ( ( rule__WhileStatement__Group__0 ) ) + // InternalFiacre.g:1419:3: ( rule__WhileStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWhileStatementAccess().getGroup()); + } + // InternalFiacre.g:1420:3: ( rule__WhileStatement__Group__0 ) + // InternalFiacre.g:1420:4: rule__WhileStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__WhileStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getWhileStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleWhileStatement" + + + // $ANTLR start "entryRuleForeachStatement" + // InternalFiacre.g:1429:1: entryRuleForeachStatement : ruleForeachStatement EOF ; + public final void entryRuleForeachStatement() throws RecognitionException { + try { + // InternalFiacre.g:1430:1: ( ruleForeachStatement EOF ) + // InternalFiacre.g:1431:1: ruleForeachStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getForeachStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleForeachStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getForeachStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleForeachStatement" + + + // $ANTLR start "ruleForeachStatement" + // InternalFiacre.g:1438:1: ruleForeachStatement : ( ( rule__ForeachStatement__Group__0 ) ) ; + public final void ruleForeachStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1442:2: ( ( ( rule__ForeachStatement__Group__0 ) ) ) + // InternalFiacre.g:1443:2: ( ( rule__ForeachStatement__Group__0 ) ) + { + // InternalFiacre.g:1443:2: ( ( rule__ForeachStatement__Group__0 ) ) + // InternalFiacre.g:1444:3: ( rule__ForeachStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getForeachStatementAccess().getGroup()); + } + // InternalFiacre.g:1445:3: ( rule__ForeachStatement__Group__0 ) + // InternalFiacre.g:1445:4: rule__ForeachStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ForeachStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getForeachStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleForeachStatement" + + + // $ANTLR start "entryRuleToStatement" + // InternalFiacre.g:1454:1: entryRuleToStatement : ruleToStatement EOF ; + public final void entryRuleToStatement() throws RecognitionException { + try { + // InternalFiacre.g:1455:1: ( ruleToStatement EOF ) + // InternalFiacre.g:1456:1: ruleToStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getToStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleToStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getToStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleToStatement" + + + // $ANTLR start "ruleToStatement" + // InternalFiacre.g:1463:1: ruleToStatement : ( ( rule__ToStatement__Group__0 ) ) ; + public final void ruleToStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1467:2: ( ( ( rule__ToStatement__Group__0 ) ) ) + // InternalFiacre.g:1468:2: ( ( rule__ToStatement__Group__0 ) ) + { + // InternalFiacre.g:1468:2: ( ( rule__ToStatement__Group__0 ) ) + // InternalFiacre.g:1469:3: ( rule__ToStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getToStatementAccess().getGroup()); + } + // InternalFiacre.g:1470:3: ( rule__ToStatement__Group__0 ) + // InternalFiacre.g:1470:4: rule__ToStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ToStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getToStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleToStatement" + + + // $ANTLR start "entryRuleCaseStatement" + // InternalFiacre.g:1479:1: entryRuleCaseStatement : ruleCaseStatement EOF ; + public final void entryRuleCaseStatement() throws RecognitionException { + try { + // InternalFiacre.g:1480:1: ( ruleCaseStatement EOF ) + // InternalFiacre.g:1481:1: ruleCaseStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleCaseStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleCaseStatement" + + + // $ANTLR start "ruleCaseStatement" + // InternalFiacre.g:1488:1: ruleCaseStatement : ( ( rule__CaseStatement__Group__0 ) ) ; + public final void ruleCaseStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1492:2: ( ( ( rule__CaseStatement__Group__0 ) ) ) + // InternalFiacre.g:1493:2: ( ( rule__CaseStatement__Group__0 ) ) + { + // InternalFiacre.g:1493:2: ( ( rule__CaseStatement__Group__0 ) ) + // InternalFiacre.g:1494:3: ( rule__CaseStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getGroup()); + } + // InternalFiacre.g:1495:3: ( rule__CaseStatement__Group__0 ) + // InternalFiacre.g:1495:4: rule__CaseStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleCaseStatement" + + + // $ANTLR start "entryRuleLoopStatement" + // InternalFiacre.g:1504:1: entryRuleLoopStatement : ruleLoopStatement EOF ; + public final void entryRuleLoopStatement() throws RecognitionException { + try { + // InternalFiacre.g:1505:1: ( ruleLoopStatement EOF ) + // InternalFiacre.g:1506:1: ruleLoopStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLoopStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLoopStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLoopStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLoopStatement" + + + // $ANTLR start "ruleLoopStatement" + // InternalFiacre.g:1513:1: ruleLoopStatement : ( ( rule__LoopStatement__Group__0 ) ) ; + public final void ruleLoopStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1517:2: ( ( ( rule__LoopStatement__Group__0 ) ) ) + // InternalFiacre.g:1518:2: ( ( rule__LoopStatement__Group__0 ) ) + { + // InternalFiacre.g:1518:2: ( ( rule__LoopStatement__Group__0 ) ) + // InternalFiacre.g:1519:3: ( rule__LoopStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLoopStatementAccess().getGroup()); + } + // InternalFiacre.g:1520:3: ( rule__LoopStatement__Group__0 ) + // InternalFiacre.g:1520:4: rule__LoopStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LoopStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLoopStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLoopStatement" + + + // $ANTLR start "entryRuleOnStatement" + // InternalFiacre.g:1529:1: entryRuleOnStatement : ruleOnStatement EOF ; + public final void entryRuleOnStatement() throws RecognitionException { + try { + // InternalFiacre.g:1530:1: ( ruleOnStatement EOF ) + // InternalFiacre.g:1531:1: ruleOnStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getOnStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleOnStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getOnStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleOnStatement" + + + // $ANTLR start "ruleOnStatement" + // InternalFiacre.g:1538:1: ruleOnStatement : ( ( rule__OnStatement__Group__0 ) ) ; + public final void ruleOnStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1542:2: ( ( ( rule__OnStatement__Group__0 ) ) ) + // InternalFiacre.g:1543:2: ( ( rule__OnStatement__Group__0 ) ) + { + // InternalFiacre.g:1543:2: ( ( rule__OnStatement__Group__0 ) ) + // InternalFiacre.g:1544:3: ( rule__OnStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getOnStatementAccess().getGroup()); + } + // InternalFiacre.g:1545:3: ( rule__OnStatement__Group__0 ) + // InternalFiacre.g:1545:4: rule__OnStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__OnStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getOnStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleOnStatement" + + + // $ANTLR start "entryRuleWaitStatement" + // InternalFiacre.g:1554:1: entryRuleWaitStatement : ruleWaitStatement EOF ; + public final void entryRuleWaitStatement() throws RecognitionException { + try { + // InternalFiacre.g:1555:1: ( ruleWaitStatement EOF ) + // InternalFiacre.g:1556:1: ruleWaitStatement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWaitStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleWaitStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWaitStatementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleWaitStatement" + + + // $ANTLR start "ruleWaitStatement" + // InternalFiacre.g:1563:1: ruleWaitStatement : ( ( rule__WaitStatement__Group__0 ) ) ; + public final void ruleWaitStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1567:2: ( ( ( rule__WaitStatement__Group__0 ) ) ) + // InternalFiacre.g:1568:2: ( ( rule__WaitStatement__Group__0 ) ) + { + // InternalFiacre.g:1568:2: ( ( rule__WaitStatement__Group__0 ) ) + // InternalFiacre.g:1569:3: ( rule__WaitStatement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWaitStatementAccess().getGroup()); + } + // InternalFiacre.g:1570:3: ( rule__WaitStatement__Group__0 ) + // InternalFiacre.g:1570:4: rule__WaitStatement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__WaitStatement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getWaitStatementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleWaitStatement" + + + // $ANTLR start "entryRuleComposition" + // InternalFiacre.g:1579:1: entryRuleComposition : ruleComposition EOF ; + public final void entryRuleComposition() throws RecognitionException { + try { + // InternalFiacre.g:1580:1: ( ruleComposition EOF ) + // InternalFiacre.g:1581:1: ruleComposition EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleComposition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleComposition" + + + // $ANTLR start "ruleComposition" + // InternalFiacre.g:1588:1: ruleComposition : ( ( rule__Composition__Group__0 ) ) ; + public final void ruleComposition() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1592:2: ( ( ( rule__Composition__Group__0 ) ) ) + // InternalFiacre.g:1593:2: ( ( rule__Composition__Group__0 ) ) + { + // InternalFiacre.g:1593:2: ( ( rule__Composition__Group__0 ) ) + // InternalFiacre.g:1594:3: ( rule__Composition__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getGroup()); + } + // InternalFiacre.g:1595:3: ( rule__Composition__Group__0 ) + // InternalFiacre.g:1595:4: rule__Composition__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleComposition" + + + // $ANTLR start "entryRuleBlock" + // InternalFiacre.g:1604:1: entryRuleBlock : ruleBlock EOF ; + public final void entryRuleBlock() throws RecognitionException { + try { + // InternalFiacre.g:1605:1: ( ruleBlock EOF ) + // InternalFiacre.g:1606:1: ruleBlock EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleBlock(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBlockRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleBlock" + + + // $ANTLR start "ruleBlock" + // InternalFiacre.g:1613:1: ruleBlock : ( ( rule__Block__Alternatives ) ) ; + public final void ruleBlock() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1617:2: ( ( ( rule__Block__Alternatives ) ) ) + // InternalFiacre.g:1618:2: ( ( rule__Block__Alternatives ) ) + { + // InternalFiacre.g:1618:2: ( ( rule__Block__Alternatives ) ) + // InternalFiacre.g:1619:3: ( rule__Block__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockAccess().getAlternatives()); + } + // InternalFiacre.g:1620:3: ( rule__Block__Alternatives ) + // InternalFiacre.g:1620:4: rule__Block__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Block__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBlockAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleBlock" + + + // $ANTLR start "entryRuleCompositeBlock" + // InternalFiacre.g:1629:1: entryRuleCompositeBlock : ruleCompositeBlock EOF ; + public final void entryRuleCompositeBlock() throws RecognitionException { + try { + // InternalFiacre.g:1630:1: ( ruleCompositeBlock EOF ) + // InternalFiacre.g:1631:1: ruleCompositeBlock EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositeBlockRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleCompositeBlock(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositeBlockRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleCompositeBlock" + + + // $ANTLR start "ruleCompositeBlock" + // InternalFiacre.g:1638:1: ruleCompositeBlock : ( ( rule__CompositeBlock__Group__0 ) ) ; + public final void ruleCompositeBlock() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1642:2: ( ( ( rule__CompositeBlock__Group__0 ) ) ) + // InternalFiacre.g:1643:2: ( ( rule__CompositeBlock__Group__0 ) ) + { + // InternalFiacre.g:1643:2: ( ( rule__CompositeBlock__Group__0 ) ) + // InternalFiacre.g:1644:3: ( rule__CompositeBlock__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositeBlockAccess().getGroup()); + } + // InternalFiacre.g:1645:3: ( rule__CompositeBlock__Group__0 ) + // InternalFiacre.g:1645:4: rule__CompositeBlock__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CompositeBlock__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositeBlockAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleCompositeBlock" + + + // $ANTLR start "entryRuleInstanceDeclaration" + // InternalFiacre.g:1654:1: entryRuleInstanceDeclaration : ruleInstanceDeclaration EOF ; + public final void entryRuleInstanceDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:1655:1: ( ruleInstanceDeclaration EOF ) + // InternalFiacre.g:1656:1: ruleInstanceDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInstanceDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleInstanceDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInstanceDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleInstanceDeclaration" + + + // $ANTLR start "ruleInstanceDeclaration" + // InternalFiacre.g:1663:1: ruleInstanceDeclaration : ( ( rule__InstanceDeclaration__Group__0 ) ) ; + public final void ruleInstanceDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1667:2: ( ( ( rule__InstanceDeclaration__Group__0 ) ) ) + // InternalFiacre.g:1668:2: ( ( rule__InstanceDeclaration__Group__0 ) ) + { + // InternalFiacre.g:1668:2: ( ( rule__InstanceDeclaration__Group__0 ) ) + // InternalFiacre.g:1669:3: ( rule__InstanceDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInstanceDeclarationAccess().getGroup()); + } + // InternalFiacre.g:1670:3: ( rule__InstanceDeclaration__Group__0 ) + // InternalFiacre.g:1670:4: rule__InstanceDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InstanceDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getInstanceDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleInstanceDeclaration" + + + // $ANTLR start "entryRulePortSet" + // InternalFiacre.g:1679:1: entryRulePortSet : rulePortSet EOF ; + public final void entryRulePortSet() throws RecognitionException { + try { + // InternalFiacre.g:1680:1: ( rulePortSet EOF ) + // InternalFiacre.g:1681:1: rulePortSet EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePortSet(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePortSet" + + + // $ANTLR start "rulePortSet" + // InternalFiacre.g:1688:1: rulePortSet : ( ( rule__PortSet__Alternatives ) ) ; + public final void rulePortSet() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1692:2: ( ( ( rule__PortSet__Alternatives ) ) ) + // InternalFiacre.g:1693:2: ( ( rule__PortSet__Alternatives ) ) + { + // InternalFiacre.g:1693:2: ( ( rule__PortSet__Alternatives ) ) + // InternalFiacre.g:1694:3: ( rule__PortSet__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getAlternatives()); + } + // InternalFiacre.g:1695:3: ( rule__PortSet__Alternatives ) + // InternalFiacre.g:1695:4: rule__PortSet__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortSet__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePortSet" + + + // $ANTLR start "entryRuleComponentInstance" + // InternalFiacre.g:1704:1: entryRuleComponentInstance : ruleComponentInstance EOF ; + public final void entryRuleComponentInstance() throws RecognitionException { + try { + // InternalFiacre.g:1705:1: ( ruleComponentInstance EOF ) + // InternalFiacre.g:1706:1: ruleComponentInstance EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleComponentInstance(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleComponentInstance" + + + // $ANTLR start "ruleComponentInstance" + // InternalFiacre.g:1713:1: ruleComponentInstance : ( ( rule__ComponentInstance__Group__0 ) ) ; + public final void ruleComponentInstance() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1717:2: ( ( ( rule__ComponentInstance__Group__0 ) ) ) + // InternalFiacre.g:1718:2: ( ( rule__ComponentInstance__Group__0 ) ) + { + // InternalFiacre.g:1718:2: ( ( rule__ComponentInstance__Group__0 ) ) + // InternalFiacre.g:1719:3: ( rule__ComponentInstance__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getGroup()); + } + // InternalFiacre.g:1720:3: ( rule__ComponentInstance__Group__0 ) + // InternalFiacre.g:1720:4: rule__ComponentInstance__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleComponentInstance" + + + // $ANTLR start "entryRuleExpression" + // InternalFiacre.g:1729:1: entryRuleExpression : ruleExpression EOF ; + public final void entryRuleExpression() throws RecognitionException { + try { + // InternalFiacre.g:1730:1: ( ruleExpression EOF ) + // InternalFiacre.g:1731:1: ruleExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleExpression" + + + // $ANTLR start "ruleExpression" + // InternalFiacre.g:1738:1: ruleExpression : ( ruleQuantifiedExpression ) ; + public final void ruleExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1742:2: ( ( ruleQuantifiedExpression ) ) + // InternalFiacre.g:1743:2: ( ruleQuantifiedExpression ) + { + // InternalFiacre.g:1743:2: ( ruleQuantifiedExpression ) + // InternalFiacre.g:1744:3: ruleQuantifiedExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getExpressionAccess().getQuantifiedExpressionParserRuleCall()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleQuantifiedExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getExpressionAccess().getQuantifiedExpressionParserRuleCall()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleExpression" + + + // $ANTLR start "entryRuleQuantifiedExpression" + // InternalFiacre.g:1754:1: entryRuleQuantifiedExpression : ruleQuantifiedExpression EOF ; + public final void entryRuleQuantifiedExpression() throws RecognitionException { + try { + // InternalFiacre.g:1755:1: ( ruleQuantifiedExpression EOF ) + // InternalFiacre.g:1756:1: ruleQuantifiedExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleQuantifiedExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleQuantifiedExpression" + + + // $ANTLR start "ruleQuantifiedExpression" + // InternalFiacre.g:1763:1: ruleQuantifiedExpression : ( ( rule__QuantifiedExpression__Alternatives ) ) ; + public final void ruleQuantifiedExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1767:2: ( ( ( rule__QuantifiedExpression__Alternatives ) ) ) + // InternalFiacre.g:1768:2: ( ( rule__QuantifiedExpression__Alternatives ) ) + { + // InternalFiacre.g:1768:2: ( ( rule__QuantifiedExpression__Alternatives ) ) + // InternalFiacre.g:1769:3: ( rule__QuantifiedExpression__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getAlternatives()); + } + // InternalFiacre.g:1770:3: ( rule__QuantifiedExpression__Alternatives ) + // InternalFiacre.g:1770:4: rule__QuantifiedExpression__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleQuantifiedExpression" + + + // $ANTLR start "entryRuleConditional" + // InternalFiacre.g:1779:1: entryRuleConditional : ruleConditional EOF ; + public final void entryRuleConditional() throws RecognitionException { + try { + // InternalFiacre.g:1780:1: ( ruleConditional EOF ) + // InternalFiacre.g:1781:1: ruleConditional EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleConditional(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleConditional" + + + // $ANTLR start "ruleConditional" + // InternalFiacre.g:1788:1: ruleConditional : ( ( rule__Conditional__Group__0 ) ) ; + public final void ruleConditional() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1792:2: ( ( ( rule__Conditional__Group__0 ) ) ) + // InternalFiacre.g:1793:2: ( ( rule__Conditional__Group__0 ) ) + { + // InternalFiacre.g:1793:2: ( ( rule__Conditional__Group__0 ) ) + // InternalFiacre.g:1794:3: ( rule__Conditional__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalAccess().getGroup()); + } + // InternalFiacre.g:1795:3: ( rule__Conditional__Group__0 ) + // InternalFiacre.g:1795:4: rule__Conditional__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleConditional" + + + // $ANTLR start "entryRuleDisjunction" + // InternalFiacre.g:1804:1: entryRuleDisjunction : ruleDisjunction EOF ; + public final void entryRuleDisjunction() throws RecognitionException { + try { + // InternalFiacre.g:1805:1: ( ruleDisjunction EOF ) + // InternalFiacre.g:1806:1: ruleDisjunction EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDisjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleDisjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDisjunctionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleDisjunction" + + + // $ANTLR start "ruleDisjunction" + // InternalFiacre.g:1813:1: ruleDisjunction : ( ( rule__Disjunction__Group__0 ) ) ; + public final void ruleDisjunction() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1817:2: ( ( ( rule__Disjunction__Group__0 ) ) ) + // InternalFiacre.g:1818:2: ( ( rule__Disjunction__Group__0 ) ) + { + // InternalFiacre.g:1818:2: ( ( rule__Disjunction__Group__0 ) ) + // InternalFiacre.g:1819:3: ( rule__Disjunction__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDisjunctionAccess().getGroup()); + } + // InternalFiacre.g:1820:3: ( rule__Disjunction__Group__0 ) + // InternalFiacre.g:1820:4: rule__Disjunction__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Disjunction__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDisjunctionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleDisjunction" + + + // $ANTLR start "entryRuleImplication" + // InternalFiacre.g:1829:1: entryRuleImplication : ruleImplication EOF ; + public final void entryRuleImplication() throws RecognitionException { + try { + // InternalFiacre.g:1830:1: ( ruleImplication EOF ) + // InternalFiacre.g:1831:1: ruleImplication EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImplicationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getImplicationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleImplication" + + + // $ANTLR start "ruleImplication" + // InternalFiacre.g:1838:1: ruleImplication : ( ( rule__Implication__Group__0 ) ) ; + public final void ruleImplication() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1842:2: ( ( ( rule__Implication__Group__0 ) ) ) + // InternalFiacre.g:1843:2: ( ( rule__Implication__Group__0 ) ) + { + // InternalFiacre.g:1843:2: ( ( rule__Implication__Group__0 ) ) + // InternalFiacre.g:1844:3: ( rule__Implication__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImplicationAccess().getGroup()); + } + // InternalFiacre.g:1845:3: ( rule__Implication__Group__0 ) + // InternalFiacre.g:1845:4: rule__Implication__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Implication__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getImplicationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleImplication" + + + // $ANTLR start "entryRuleConjunction" + // InternalFiacre.g:1854:1: entryRuleConjunction : ruleConjunction EOF ; + public final void entryRuleConjunction() throws RecognitionException { + try { + // InternalFiacre.g:1855:1: ( ruleConjunction EOF ) + // InternalFiacre.g:1856:1: ruleConjunction EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleConjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConjunctionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleConjunction" + + + // $ANTLR start "ruleConjunction" + // InternalFiacre.g:1863:1: ruleConjunction : ( ( rule__Conjunction__Group__0 ) ) ; + public final void ruleConjunction() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1867:2: ( ( ( rule__Conjunction__Group__0 ) ) ) + // InternalFiacre.g:1868:2: ( ( rule__Conjunction__Group__0 ) ) + { + // InternalFiacre.g:1868:2: ( ( rule__Conjunction__Group__0 ) ) + // InternalFiacre.g:1869:3: ( rule__Conjunction__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConjunctionAccess().getGroup()); + } + // InternalFiacre.g:1870:3: ( rule__Conjunction__Group__0 ) + // InternalFiacre.g:1870:4: rule__Conjunction__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Conjunction__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConjunctionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleConjunction" + + + // $ANTLR start "entryRuleComparison" + // InternalFiacre.g:1879:1: entryRuleComparison : ruleComparison EOF ; + public final void entryRuleComparison() throws RecognitionException { + try { + // InternalFiacre.g:1880:1: ( ruleComparison EOF ) + // InternalFiacre.g:1881:1: ruleComparison EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleComparison(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleComparison" + + + // $ANTLR start "ruleComparison" + // InternalFiacre.g:1888:1: ruleComparison : ( ( rule__Comparison__Group__0 ) ) ; + public final void ruleComparison() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1892:2: ( ( ( rule__Comparison__Group__0 ) ) ) + // InternalFiacre.g:1893:2: ( ( rule__Comparison__Group__0 ) ) + { + // InternalFiacre.g:1893:2: ( ( rule__Comparison__Group__0 ) ) + // InternalFiacre.g:1894:3: ( rule__Comparison__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getGroup()); + } + // InternalFiacre.g:1895:3: ( rule__Comparison__Group__0 ) + // InternalFiacre.g:1895:4: rule__Comparison__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleComparison" + + + // $ANTLR start "entryRuleAddition" + // InternalFiacre.g:1904:1: entryRuleAddition : ruleAddition EOF ; + public final void entryRuleAddition() throws RecognitionException { + try { + // InternalFiacre.g:1905:1: ( ruleAddition EOF ) + // InternalFiacre.g:1906:1: ruleAddition EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAdditionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleAddition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAdditionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleAddition" + + + // $ANTLR start "ruleAddition" + // InternalFiacre.g:1913:1: ruleAddition : ( ( rule__Addition__Group__0 ) ) ; + public final void ruleAddition() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1917:2: ( ( ( rule__Addition__Group__0 ) ) ) + // InternalFiacre.g:1918:2: ( ( rule__Addition__Group__0 ) ) + { + // InternalFiacre.g:1918:2: ( ( rule__Addition__Group__0 ) ) + // InternalFiacre.g:1919:3: ( rule__Addition__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAdditionAccess().getGroup()); + } + // InternalFiacre.g:1920:3: ( rule__Addition__Group__0 ) + // InternalFiacre.g:1920:4: rule__Addition__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Addition__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAdditionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleAddition" + + + // $ANTLR start "entryRuleSubstraction" + // InternalFiacre.g:1929:1: entryRuleSubstraction : ruleSubstraction EOF ; + public final void entryRuleSubstraction() throws RecognitionException { + try { + // InternalFiacre.g:1930:1: ( ruleSubstraction EOF ) + // InternalFiacre.g:1931:1: ruleSubstraction EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubstractionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleSubstraction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSubstractionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleSubstraction" + + + // $ANTLR start "ruleSubstraction" + // InternalFiacre.g:1938:1: ruleSubstraction : ( ( rule__Substraction__Group__0 ) ) ; + public final void ruleSubstraction() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1942:2: ( ( ( rule__Substraction__Group__0 ) ) ) + // InternalFiacre.g:1943:2: ( ( rule__Substraction__Group__0 ) ) + { + // InternalFiacre.g:1943:2: ( ( rule__Substraction__Group__0 ) ) + // InternalFiacre.g:1944:3: ( rule__Substraction__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubstractionAccess().getGroup()); + } + // InternalFiacre.g:1945:3: ( rule__Substraction__Group__0 ) + // InternalFiacre.g:1945:4: rule__Substraction__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Substraction__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSubstractionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleSubstraction" + + + // $ANTLR start "entryRuleMultiplication" + // InternalFiacre.g:1954:1: entryRuleMultiplication : ruleMultiplication EOF ; + public final void entryRuleMultiplication() throws RecognitionException { + try { + // InternalFiacre.g:1955:1: ( ruleMultiplication EOF ) + // InternalFiacre.g:1956:1: ruleMultiplication EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMultiplicationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleMultiplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getMultiplicationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleMultiplication" + + + // $ANTLR start "ruleMultiplication" + // InternalFiacre.g:1963:1: ruleMultiplication : ( ( rule__Multiplication__Group__0 ) ) ; + public final void ruleMultiplication() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1967:2: ( ( ( rule__Multiplication__Group__0 ) ) ) + // InternalFiacre.g:1968:2: ( ( rule__Multiplication__Group__0 ) ) + { + // InternalFiacre.g:1968:2: ( ( rule__Multiplication__Group__0 ) ) + // InternalFiacre.g:1969:3: ( rule__Multiplication__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMultiplicationAccess().getGroup()); + } + // InternalFiacre.g:1970:3: ( rule__Multiplication__Group__0 ) + // InternalFiacre.g:1970:4: rule__Multiplication__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Multiplication__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getMultiplicationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleMultiplication" + + + // $ANTLR start "entryRuleDivision" + // InternalFiacre.g:1979:1: entryRuleDivision : ruleDivision EOF ; + public final void entryRuleDivision() throws RecognitionException { + try { + // InternalFiacre.g:1980:1: ( ruleDivision EOF ) + // InternalFiacre.g:1981:1: ruleDivision EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDivisionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleDivision(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDivisionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleDivision" + + + // $ANTLR start "ruleDivision" + // InternalFiacre.g:1988:1: ruleDivision : ( ( rule__Division__Group__0 ) ) ; + public final void ruleDivision() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:1992:2: ( ( ( rule__Division__Group__0 ) ) ) + // InternalFiacre.g:1993:2: ( ( rule__Division__Group__0 ) ) + { + // InternalFiacre.g:1993:2: ( ( rule__Division__Group__0 ) ) + // InternalFiacre.g:1994:3: ( rule__Division__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDivisionAccess().getGroup()); + } + // InternalFiacre.g:1995:3: ( rule__Division__Group__0 ) + // InternalFiacre.g:1995:4: rule__Division__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Division__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDivisionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleDivision" + + + // $ANTLR start "entryRuleModulo" + // InternalFiacre.g:2004:1: entryRuleModulo : ruleModulo EOF ; + public final void entryRuleModulo() throws RecognitionException { + try { + // InternalFiacre.g:2005:1: ( ruleModulo EOF ) + // InternalFiacre.g:2006:1: ruleModulo EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModuloRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleModulo(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getModuloRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleModulo" + + + // $ANTLR start "ruleModulo" + // InternalFiacre.g:2013:1: ruleModulo : ( ( rule__Modulo__Group__0 ) ) ; + public final void ruleModulo() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2017:2: ( ( ( rule__Modulo__Group__0 ) ) ) + // InternalFiacre.g:2018:2: ( ( rule__Modulo__Group__0 ) ) + { + // InternalFiacre.g:2018:2: ( ( rule__Modulo__Group__0 ) ) + // InternalFiacre.g:2019:3: ( rule__Modulo__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModuloAccess().getGroup()); + } + // InternalFiacre.g:2020:3: ( rule__Modulo__Group__0 ) + // InternalFiacre.g:2020:4: rule__Modulo__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Modulo__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getModuloAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleModulo" + + + // $ANTLR start "entryRuleUnaryExpression" + // InternalFiacre.g:2029:1: entryRuleUnaryExpression : ruleUnaryExpression EOF ; + public final void entryRuleUnaryExpression() throws RecognitionException { + try { + // InternalFiacre.g:2030:1: ( ruleUnaryExpression EOF ) + // InternalFiacre.g:2031:1: ruleUnaryExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleUnaryExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleUnaryExpression" + + + // $ANTLR start "ruleUnaryExpression" + // InternalFiacre.g:2038:1: ruleUnaryExpression : ( ( rule__UnaryExpression__Alternatives ) ) ; + public final void ruleUnaryExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2042:2: ( ( ( rule__UnaryExpression__Alternatives ) ) ) + // InternalFiacre.g:2043:2: ( ( rule__UnaryExpression__Alternatives ) ) + { + // InternalFiacre.g:2043:2: ( ( rule__UnaryExpression__Alternatives ) ) + // InternalFiacre.g:2044:3: ( rule__UnaryExpression__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getAlternatives()); + } + // InternalFiacre.g:2045:3: ( rule__UnaryExpression__Alternatives ) + // InternalFiacre.g:2045:4: rule__UnaryExpression__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleUnaryExpression" + + + // $ANTLR start "entryRuleProjection" + // InternalFiacre.g:2054:1: entryRuleProjection : ruleProjection EOF ; + public final void entryRuleProjection() throws RecognitionException { + try { + // InternalFiacre.g:2055:1: ( ruleProjection EOF ) + // InternalFiacre.g:2056:1: ruleProjection EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProjectionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleProjection(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProjectionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleProjection" + + + // $ANTLR start "ruleProjection" + // InternalFiacre.g:2063:1: ruleProjection : ( ( rule__Projection__Group__0 ) ) ; + public final void ruleProjection() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2067:2: ( ( ( rule__Projection__Group__0 ) ) ) + // InternalFiacre.g:2068:2: ( ( rule__Projection__Group__0 ) ) + { + // InternalFiacre.g:2068:2: ( ( rule__Projection__Group__0 ) ) + // InternalFiacre.g:2069:3: ( rule__Projection__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProjectionAccess().getGroup()); + } + // InternalFiacre.g:2070:3: ( rule__Projection__Group__0 ) + // InternalFiacre.g:2070:4: rule__Projection__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Projection__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProjectionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleProjection" + + + // $ANTLR start "entryRuleAtomicExpression" + // InternalFiacre.g:2079:1: entryRuleAtomicExpression : ruleAtomicExpression EOF ; + public final void entryRuleAtomicExpression() throws RecognitionException { + try { + // InternalFiacre.g:2080:1: ( ruleAtomicExpression EOF ) + // InternalFiacre.g:2081:1: ruleAtomicExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleAtomicExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleAtomicExpression" + + + // $ANTLR start "ruleAtomicExpression" + // InternalFiacre.g:2088:1: ruleAtomicExpression : ( ( rule__AtomicExpression__Alternatives ) ) ; + public final void ruleAtomicExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2092:2: ( ( ( rule__AtomicExpression__Alternatives ) ) ) + // InternalFiacre.g:2093:2: ( ( rule__AtomicExpression__Alternatives ) ) + { + // InternalFiacre.g:2093:2: ( ( rule__AtomicExpression__Alternatives ) ) + // InternalFiacre.g:2094:3: ( rule__AtomicExpression__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getAlternatives()); + } + // InternalFiacre.g:2095:3: ( rule__AtomicExpression__Alternatives ) + // InternalFiacre.g:2095:4: rule__AtomicExpression__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicExpression__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleAtomicExpression" + + + // $ANTLR start "entryRuleReferenceExpression" + // InternalFiacre.g:2104:1: entryRuleReferenceExpression : ruleReferenceExpression EOF ; + public final void entryRuleReferenceExpression() throws RecognitionException { + try { + // InternalFiacre.g:2105:1: ( ruleReferenceExpression EOF ) + // InternalFiacre.g:2106:1: ruleReferenceExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReferenceExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleReferenceExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getReferenceExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleReferenceExpression" + + + // $ANTLR start "ruleReferenceExpression" + // InternalFiacre.g:2113:1: ruleReferenceExpression : ( ( rule__ReferenceExpression__Group__0 ) ) ; + public final void ruleReferenceExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2117:2: ( ( ( rule__ReferenceExpression__Group__0 ) ) ) + // InternalFiacre.g:2118:2: ( ( rule__ReferenceExpression__Group__0 ) ) + { + // InternalFiacre.g:2118:2: ( ( rule__ReferenceExpression__Group__0 ) ) + // InternalFiacre.g:2119:3: ( rule__ReferenceExpression__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReferenceExpressionAccess().getGroup()); + } + // InternalFiacre.g:2120:3: ( rule__ReferenceExpression__Group__0 ) + // InternalFiacre.g:2120:4: rule__ReferenceExpression__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ReferenceExpression__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getReferenceExpressionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleReferenceExpression" + + + // $ANTLR start "entryRuleIdentifierExpression" + // InternalFiacre.g:2129:1: entryRuleIdentifierExpression : ruleIdentifierExpression EOF ; + public final void entryRuleIdentifierExpression() throws RecognitionException { + try { + // InternalFiacre.g:2130:1: ( ruleIdentifierExpression EOF ) + // InternalFiacre.g:2131:1: ruleIdentifierExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleIdentifierExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleIdentifierExpression" + + + // $ANTLR start "ruleIdentifierExpression" + // InternalFiacre.g:2138:1: ruleIdentifierExpression : ( ( rule__IdentifierExpression__Alternatives ) ) ; + public final void ruleIdentifierExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2142:2: ( ( ( rule__IdentifierExpression__Alternatives ) ) ) + // InternalFiacre.g:2143:2: ( ( rule__IdentifierExpression__Alternatives ) ) + { + // InternalFiacre.g:2143:2: ( ( rule__IdentifierExpression__Alternatives ) ) + // InternalFiacre.g:2144:3: ( rule__IdentifierExpression__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getAlternatives()); + } + // InternalFiacre.g:2145:3: ( rule__IdentifierExpression__Alternatives ) + // InternalFiacre.g:2145:4: rule__IdentifierExpression__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleIdentifierExpression" + + + // $ANTLR start "entryRuleRecordExpression" + // InternalFiacre.g:2154:1: entryRuleRecordExpression : ruleRecordExpression EOF ; + public final void entryRuleRecordExpression() throws RecognitionException { + try { + // InternalFiacre.g:2155:1: ( ruleRecordExpression EOF ) + // InternalFiacre.g:2156:1: ruleRecordExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleRecordExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleRecordExpression" + + + // $ANTLR start "ruleRecordExpression" + // InternalFiacre.g:2163:1: ruleRecordExpression : ( ( rule__RecordExpression__Group__0 ) ) ; + public final void ruleRecordExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2167:2: ( ( ( rule__RecordExpression__Group__0 ) ) ) + // InternalFiacre.g:2168:2: ( ( rule__RecordExpression__Group__0 ) ) + { + // InternalFiacre.g:2168:2: ( ( rule__RecordExpression__Group__0 ) ) + // InternalFiacre.g:2169:3: ( rule__RecordExpression__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordExpressionAccess().getGroup()); + } + // InternalFiacre.g:2170:3: ( rule__RecordExpression__Group__0 ) + // InternalFiacre.g:2170:4: rule__RecordExpression__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordExpression__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordExpressionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleRecordExpression" + + + // $ANTLR start "entryRuleFieldExpression" + // InternalFiacre.g:2179:1: entryRuleFieldExpression : ruleFieldExpression EOF ; + public final void entryRuleFieldExpression() throws RecognitionException { + try { + // InternalFiacre.g:2180:1: ( ruleFieldExpression EOF ) + // InternalFiacre.g:2181:1: ruleFieldExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFieldExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleFieldExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFieldExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleFieldExpression" + + + // $ANTLR start "ruleFieldExpression" + // InternalFiacre.g:2188:1: ruleFieldExpression : ( ( rule__FieldExpression__Group__0 ) ) ; + public final void ruleFieldExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2192:2: ( ( ( rule__FieldExpression__Group__0 ) ) ) + // InternalFiacre.g:2193:2: ( ( rule__FieldExpression__Group__0 ) ) + { + // InternalFiacre.g:2193:2: ( ( rule__FieldExpression__Group__0 ) ) + // InternalFiacre.g:2194:3: ( rule__FieldExpression__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFieldExpressionAccess().getGroup()); + } + // InternalFiacre.g:2195:3: ( rule__FieldExpression__Group__0 ) + // InternalFiacre.g:2195:4: rule__FieldExpression__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FieldExpression__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFieldExpressionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleFieldExpression" + + + // $ANTLR start "entryRuleArrayExpression" + // InternalFiacre.g:2204:1: entryRuleArrayExpression : ruleArrayExpression EOF ; + public final void entryRuleArrayExpression() throws RecognitionException { + try { + // InternalFiacre.g:2205:1: ( ruleArrayExpression EOF ) + // InternalFiacre.g:2206:1: ruleArrayExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleArrayExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleArrayExpression" + + + // $ANTLR start "ruleArrayExpression" + // InternalFiacre.g:2213:1: ruleArrayExpression : ( ( rule__ArrayExpression__Group__0 ) ) ; + public final void ruleArrayExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2217:2: ( ( ( rule__ArrayExpression__Group__0 ) ) ) + // InternalFiacre.g:2218:2: ( ( rule__ArrayExpression__Group__0 ) ) + { + // InternalFiacre.g:2218:2: ( ( rule__ArrayExpression__Group__0 ) ) + // InternalFiacre.g:2219:3: ( rule__ArrayExpression__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getGroup()); + } + // InternalFiacre.g:2220:3: ( rule__ArrayExpression__Group__0 ) + // InternalFiacre.g:2220:4: rule__ArrayExpression__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleArrayExpression" + + + // $ANTLR start "entryRuleQueueExpression" + // InternalFiacre.g:2229:1: entryRuleQueueExpression : ruleQueueExpression EOF ; + public final void entryRuleQueueExpression() throws RecognitionException { + try { + // InternalFiacre.g:2230:1: ( ruleQueueExpression EOF ) + // InternalFiacre.g:2231:1: ruleQueueExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleQueueExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleQueueExpression" + + + // $ANTLR start "ruleQueueExpression" + // InternalFiacre.g:2238:1: ruleQueueExpression : ( ( rule__QueueExpression__Group__0 ) ) ; + public final void ruleQueueExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2242:2: ( ( ( rule__QueueExpression__Group__0 ) ) ) + // InternalFiacre.g:2243:2: ( ( rule__QueueExpression__Group__0 ) ) + { + // InternalFiacre.g:2243:2: ( ( rule__QueueExpression__Group__0 ) ) + // InternalFiacre.g:2244:3: ( rule__QueueExpression__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getGroup()); + } + // InternalFiacre.g:2245:3: ( rule__QueueExpression__Group__0 ) + // InternalFiacre.g:2245:4: rule__QueueExpression__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleQueueExpression" + + + // $ANTLR start "entryRuleEnqueueExpression" + // InternalFiacre.g:2254:1: entryRuleEnqueueExpression : ruleEnqueueExpression EOF ; + public final void entryRuleEnqueueExpression() throws RecognitionException { + try { + // InternalFiacre.g:2255:1: ( ruleEnqueueExpression EOF ) + // InternalFiacre.g:2256:1: ruleEnqueueExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnqueueExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleEnqueueExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEnqueueExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleEnqueueExpression" + + + // $ANTLR start "ruleEnqueueExpression" + // InternalFiacre.g:2263:1: ruleEnqueueExpression : ( ( rule__EnqueueExpression__Group__0 ) ) ; + public final void ruleEnqueueExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2267:2: ( ( ( rule__EnqueueExpression__Group__0 ) ) ) + // InternalFiacre.g:2268:2: ( ( rule__EnqueueExpression__Group__0 ) ) + { + // InternalFiacre.g:2268:2: ( ( rule__EnqueueExpression__Group__0 ) ) + // InternalFiacre.g:2269:3: ( rule__EnqueueExpression__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnqueueExpressionAccess().getGroup()); + } + // InternalFiacre.g:2270:3: ( rule__EnqueueExpression__Group__0 ) + // InternalFiacre.g:2270:4: rule__EnqueueExpression__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__EnqueueExpression__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getEnqueueExpressionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleEnqueueExpression" + + + // $ANTLR start "entryRuleAppendExpression" + // InternalFiacre.g:2279:1: entryRuleAppendExpression : ruleAppendExpression EOF ; + public final void entryRuleAppendExpression() throws RecognitionException { + try { + // InternalFiacre.g:2280:1: ( ruleAppendExpression EOF ) + // InternalFiacre.g:2281:1: ruleAppendExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAppendExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleAppendExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAppendExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleAppendExpression" + + + // $ANTLR start "ruleAppendExpression" + // InternalFiacre.g:2288:1: ruleAppendExpression : ( ( rule__AppendExpression__Group__0 ) ) ; + public final void ruleAppendExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2292:2: ( ( ( rule__AppendExpression__Group__0 ) ) ) + // InternalFiacre.g:2293:2: ( ( rule__AppendExpression__Group__0 ) ) + { + // InternalFiacre.g:2293:2: ( ( rule__AppendExpression__Group__0 ) ) + // InternalFiacre.g:2294:3: ( rule__AppendExpression__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAppendExpressionAccess().getGroup()); + } + // InternalFiacre.g:2295:3: ( rule__AppendExpression__Group__0 ) + // InternalFiacre.g:2295:4: rule__AppendExpression__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AppendExpression__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAppendExpressionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleAppendExpression" + + + // $ANTLR start "entryRuleLiteralExpression" + // InternalFiacre.g:2304:1: entryRuleLiteralExpression : ruleLiteralExpression EOF ; + public final void entryRuleLiteralExpression() throws RecognitionException { + try { + // InternalFiacre.g:2305:1: ( ruleLiteralExpression EOF ) + // InternalFiacre.g:2306:1: ruleLiteralExpression EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLiteralExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLiteralExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLiteralExpressionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLiteralExpression" + + + // $ANTLR start "ruleLiteralExpression" + // InternalFiacre.g:2313:1: ruleLiteralExpression : ( ( rule__LiteralExpression__Alternatives ) ) ; + public final void ruleLiteralExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2317:2: ( ( ( rule__LiteralExpression__Alternatives ) ) ) + // InternalFiacre.g:2318:2: ( ( rule__LiteralExpression__Alternatives ) ) + { + // InternalFiacre.g:2318:2: ( ( rule__LiteralExpression__Alternatives ) ) + // InternalFiacre.g:2319:3: ( rule__LiteralExpression__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLiteralExpressionAccess().getAlternatives()); + } + // InternalFiacre.g:2320:3: ( rule__LiteralExpression__Alternatives ) + // InternalFiacre.g:2320:4: rule__LiteralExpression__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LiteralExpression__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLiteralExpressionAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLiteralExpression" + + + // $ANTLR start "entryRuleBooleanLiteral" + // InternalFiacre.g:2329:1: entryRuleBooleanLiteral : ruleBooleanLiteral EOF ; + public final void entryRuleBooleanLiteral() throws RecognitionException { + try { + // InternalFiacre.g:2330:1: ( ruleBooleanLiteral EOF ) + // InternalFiacre.g:2331:1: ruleBooleanLiteral EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBooleanLiteralRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleBooleanLiteral(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBooleanLiteralRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleBooleanLiteral" + + + // $ANTLR start "ruleBooleanLiteral" + // InternalFiacre.g:2338:1: ruleBooleanLiteral : ( ( rule__BooleanLiteral__Alternatives ) ) ; + public final void ruleBooleanLiteral() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2342:2: ( ( ( rule__BooleanLiteral__Alternatives ) ) ) + // InternalFiacre.g:2343:2: ( ( rule__BooleanLiteral__Alternatives ) ) + { + // InternalFiacre.g:2343:2: ( ( rule__BooleanLiteral__Alternatives ) ) + // InternalFiacre.g:2344:3: ( rule__BooleanLiteral__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBooleanLiteralAccess().getAlternatives()); + } + // InternalFiacre.g:2345:3: ( rule__BooleanLiteral__Alternatives ) + // InternalFiacre.g:2345:4: rule__BooleanLiteral__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BooleanLiteral__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBooleanLiteralAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleBooleanLiteral" + + + // $ANTLR start "entryRuleNaturalLiteral" + // InternalFiacre.g:2354:1: entryRuleNaturalLiteral : ruleNaturalLiteral EOF ; + public final void entryRuleNaturalLiteral() throws RecognitionException { + try { + // InternalFiacre.g:2355:1: ( ruleNaturalLiteral EOF ) + // InternalFiacre.g:2356:1: ruleNaturalLiteral EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLiteralRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleNaturalLiteral(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLiteralRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleNaturalLiteral" + + + // $ANTLR start "ruleNaturalLiteral" + // InternalFiacre.g:2363:1: ruleNaturalLiteral : ( ( rule__NaturalLiteral__ValueAssignment ) ) ; + public final void ruleNaturalLiteral() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2367:2: ( ( ( rule__NaturalLiteral__ValueAssignment ) ) ) + // InternalFiacre.g:2368:2: ( ( rule__NaturalLiteral__ValueAssignment ) ) + { + // InternalFiacre.g:2368:2: ( ( rule__NaturalLiteral__ValueAssignment ) ) + // InternalFiacre.g:2369:3: ( rule__NaturalLiteral__ValueAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLiteralAccess().getValueAssignment()); + } + // InternalFiacre.g:2370:3: ( rule__NaturalLiteral__ValueAssignment ) + // InternalFiacre.g:2370:4: rule__NaturalLiteral__ValueAssignment + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalLiteral__ValueAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLiteralAccess().getValueAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleNaturalLiteral" + + + // $ANTLR start "entryRuleLowerBound" + // InternalFiacre.g:2379:1: entryRuleLowerBound : ruleLowerBound EOF ; + public final void entryRuleLowerBound() throws RecognitionException { + try { + // InternalFiacre.g:2380:1: ( ruleLowerBound EOF ) + // InternalFiacre.g:2381:1: ruleLowerBound EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLowerBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLowerBoundRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLowerBound" + + + // $ANTLR start "ruleLowerBound" + // InternalFiacre.g:2388:1: ruleLowerBound : ( ( rule__LowerBound__Alternatives ) ) ; + public final void ruleLowerBound() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2392:2: ( ( ( rule__LowerBound__Alternatives ) ) ) + // InternalFiacre.g:2393:2: ( ( rule__LowerBound__Alternatives ) ) + { + // InternalFiacre.g:2393:2: ( ( rule__LowerBound__Alternatives ) ) + // InternalFiacre.g:2394:3: ( rule__LowerBound__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLowerBoundAccess().getAlternatives()); + } + // InternalFiacre.g:2395:3: ( rule__LowerBound__Alternatives ) + // InternalFiacre.g:2395:4: rule__LowerBound__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LowerBound__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLowerBoundAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLowerBound" + + + // $ANTLR start "entryRuleUpperBound" + // InternalFiacre.g:2404:1: entryRuleUpperBound : ruleUpperBound EOF ; + public final void entryRuleUpperBound() throws RecognitionException { + try { + // InternalFiacre.g:2405:1: ( ruleUpperBound EOF ) + // InternalFiacre.g:2406:1: ruleUpperBound EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUpperBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUpperBoundRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleUpperBound" + + + // $ANTLR start "ruleUpperBound" + // InternalFiacre.g:2413:1: ruleUpperBound : ( ( rule__UpperBound__Alternatives ) ) ; + public final void ruleUpperBound() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2417:2: ( ( ( rule__UpperBound__Alternatives ) ) ) + // InternalFiacre.g:2418:2: ( ( rule__UpperBound__Alternatives ) ) + { + // InternalFiacre.g:2418:2: ( ( rule__UpperBound__Alternatives ) ) + // InternalFiacre.g:2419:3: ( rule__UpperBound__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUpperBoundAccess().getAlternatives()); + } + // InternalFiacre.g:2420:3: ( rule__UpperBound__Alternatives ) + // InternalFiacre.g:2420:4: rule__UpperBound__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UpperBound__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUpperBoundAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleUpperBound" + + + // $ANTLR start "entryRuleNaturalLowerBound" + // InternalFiacre.g:2429:1: entryRuleNaturalLowerBound : ruleNaturalLowerBound EOF ; + public final void entryRuleNaturalLowerBound() throws RecognitionException { + try { + // InternalFiacre.g:2430:1: ( ruleNaturalLowerBound EOF ) + // InternalFiacre.g:2431:1: ruleNaturalLowerBound EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleNaturalLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleNaturalLowerBound" + + + // $ANTLR start "ruleNaturalLowerBound" + // InternalFiacre.g:2438:1: ruleNaturalLowerBound : ( ( rule__NaturalLowerBound__Group__0 ) ) ; + public final void ruleNaturalLowerBound() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2442:2: ( ( ( rule__NaturalLowerBound__Group__0 ) ) ) + // InternalFiacre.g:2443:2: ( ( rule__NaturalLowerBound__Group__0 ) ) + { + // InternalFiacre.g:2443:2: ( ( rule__NaturalLowerBound__Group__0 ) ) + // InternalFiacre.g:2444:3: ( rule__NaturalLowerBound__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundAccess().getGroup()); + } + // InternalFiacre.g:2445:3: ( rule__NaturalLowerBound__Group__0 ) + // InternalFiacre.g:2445:4: rule__NaturalLowerBound__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalLowerBound__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleNaturalLowerBound" + + + // $ANTLR start "entryRuleNaturalUpperBound" + // InternalFiacre.g:2454:1: entryRuleNaturalUpperBound : ruleNaturalUpperBound EOF ; + public final void entryRuleNaturalUpperBound() throws RecognitionException { + try { + // InternalFiacre.g:2455:1: ( ruleNaturalUpperBound EOF ) + // InternalFiacre.g:2456:1: ruleNaturalUpperBound EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleNaturalUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleNaturalUpperBound" + + + // $ANTLR start "ruleNaturalUpperBound" + // InternalFiacre.g:2463:1: ruleNaturalUpperBound : ( ( rule__NaturalUpperBound__Group__0 ) ) ; + public final void ruleNaturalUpperBound() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2467:2: ( ( ( rule__NaturalUpperBound__Group__0 ) ) ) + // InternalFiacre.g:2468:2: ( ( rule__NaturalUpperBound__Group__0 ) ) + { + // InternalFiacre.g:2468:2: ( ( rule__NaturalUpperBound__Group__0 ) ) + // InternalFiacre.g:2469:3: ( rule__NaturalUpperBound__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundAccess().getGroup()); + } + // InternalFiacre.g:2470:3: ( rule__NaturalUpperBound__Group__0 ) + // InternalFiacre.g:2470:4: rule__NaturalUpperBound__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalUpperBound__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleNaturalUpperBound" + + + // $ANTLR start "entryRuleDecimalLowerBound" + // InternalFiacre.g:2479:1: entryRuleDecimalLowerBound : ruleDecimalLowerBound EOF ; + public final void entryRuleDecimalLowerBound() throws RecognitionException { + try { + // InternalFiacre.g:2480:1: ( ruleDecimalLowerBound EOF ) + // InternalFiacre.g:2481:1: ruleDecimalLowerBound EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleDecimalLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleDecimalLowerBound" + + + // $ANTLR start "ruleDecimalLowerBound" + // InternalFiacre.g:2488:1: ruleDecimalLowerBound : ( ( rule__DecimalLowerBound__Group__0 ) ) ; + public final void ruleDecimalLowerBound() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2492:2: ( ( ( rule__DecimalLowerBound__Group__0 ) ) ) + // InternalFiacre.g:2493:2: ( ( rule__DecimalLowerBound__Group__0 ) ) + { + // InternalFiacre.g:2493:2: ( ( rule__DecimalLowerBound__Group__0 ) ) + // InternalFiacre.g:2494:3: ( rule__DecimalLowerBound__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundAccess().getGroup()); + } + // InternalFiacre.g:2495:3: ( rule__DecimalLowerBound__Group__0 ) + // InternalFiacre.g:2495:4: rule__DecimalLowerBound__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalLowerBound__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleDecimalLowerBound" + + + // $ANTLR start "entryRuleDecimalUpperBound" + // InternalFiacre.g:2504:1: entryRuleDecimalUpperBound : ruleDecimalUpperBound EOF ; + public final void entryRuleDecimalUpperBound() throws RecognitionException { + try { + // InternalFiacre.g:2505:1: ( ruleDecimalUpperBound EOF ) + // InternalFiacre.g:2506:1: ruleDecimalUpperBound EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleDecimalUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleDecimalUpperBound" + + + // $ANTLR start "ruleDecimalUpperBound" + // InternalFiacre.g:2513:1: ruleDecimalUpperBound : ( ( rule__DecimalUpperBound__Group__0 ) ) ; + public final void ruleDecimalUpperBound() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2517:2: ( ( ( rule__DecimalUpperBound__Group__0 ) ) ) + // InternalFiacre.g:2518:2: ( ( rule__DecimalUpperBound__Group__0 ) ) + { + // InternalFiacre.g:2518:2: ( ( rule__DecimalUpperBound__Group__0 ) ) + // InternalFiacre.g:2519:3: ( rule__DecimalUpperBound__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundAccess().getGroup()); + } + // InternalFiacre.g:2520:3: ( rule__DecimalUpperBound__Group__0 ) + // InternalFiacre.g:2520:4: rule__DecimalUpperBound__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalUpperBound__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleDecimalUpperBound" + + + // $ANTLR start "entryRuleVariableLowerBound" + // InternalFiacre.g:2529:1: entryRuleVariableLowerBound : ruleVariableLowerBound EOF ; + public final void entryRuleVariableLowerBound() throws RecognitionException { + try { + // InternalFiacre.g:2530:1: ( ruleVariableLowerBound EOF ) + // InternalFiacre.g:2531:1: ruleVariableLowerBound EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleVariableLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVariableLowerBound" + + + // $ANTLR start "ruleVariableLowerBound" + // InternalFiacre.g:2538:1: ruleVariableLowerBound : ( ( rule__VariableLowerBound__Group__0 ) ) ; + public final void ruleVariableLowerBound() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2542:2: ( ( ( rule__VariableLowerBound__Group__0 ) ) ) + // InternalFiacre.g:2543:2: ( ( rule__VariableLowerBound__Group__0 ) ) + { + // InternalFiacre.g:2543:2: ( ( rule__VariableLowerBound__Group__0 ) ) + // InternalFiacre.g:2544:3: ( rule__VariableLowerBound__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getGroup()); + } + // InternalFiacre.g:2545:3: ( rule__VariableLowerBound__Group__0 ) + // InternalFiacre.g:2545:4: rule__VariableLowerBound__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableLowerBound__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVariableLowerBound" + + + // $ANTLR start "entryRuleVariableUpperBound" + // InternalFiacre.g:2554:1: entryRuleVariableUpperBound : ruleVariableUpperBound EOF ; + public final void entryRuleVariableUpperBound() throws RecognitionException { + try { + // InternalFiacre.g:2555:1: ( ruleVariableUpperBound EOF ) + // InternalFiacre.g:2556:1: ruleVariableUpperBound EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleVariableUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVariableUpperBound" + + + // $ANTLR start "ruleVariableUpperBound" + // InternalFiacre.g:2563:1: ruleVariableUpperBound : ( ( rule__VariableUpperBound__Group__0 ) ) ; + public final void ruleVariableUpperBound() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2567:2: ( ( ( rule__VariableUpperBound__Group__0 ) ) ) + // InternalFiacre.g:2568:2: ( ( rule__VariableUpperBound__Group__0 ) ) + { + // InternalFiacre.g:2568:2: ( ( rule__VariableUpperBound__Group__0 ) ) + // InternalFiacre.g:2569:3: ( rule__VariableUpperBound__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getGroup()); + } + // InternalFiacre.g:2570:3: ( rule__VariableUpperBound__Group__0 ) + // InternalFiacre.g:2570:4: rule__VariableUpperBound__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableUpperBound__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVariableUpperBound" + + + // $ANTLR start "entryRuleInfiniteUpperBound" + // InternalFiacre.g:2579:1: entryRuleInfiniteUpperBound : ruleInfiniteUpperBound EOF ; + public final void entryRuleInfiniteUpperBound() throws RecognitionException { + try { + // InternalFiacre.g:2580:1: ( ruleInfiniteUpperBound EOF ) + // InternalFiacre.g:2581:1: ruleInfiniteUpperBound EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInfiniteUpperBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleInfiniteUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInfiniteUpperBoundRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleInfiniteUpperBound" + + + // $ANTLR start "ruleInfiniteUpperBound" + // InternalFiacre.g:2588:1: ruleInfiniteUpperBound : ( ( rule__InfiniteUpperBound__Group__0 ) ) ; + public final void ruleInfiniteUpperBound() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2592:2: ( ( ( rule__InfiniteUpperBound__Group__0 ) ) ) + // InternalFiacre.g:2593:2: ( ( rule__InfiniteUpperBound__Group__0 ) ) + { + // InternalFiacre.g:2593:2: ( ( rule__InfiniteUpperBound__Group__0 ) ) + // InternalFiacre.g:2594:3: ( rule__InfiniteUpperBound__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInfiniteUpperBoundAccess().getGroup()); + } + // InternalFiacre.g:2595:3: ( rule__InfiniteUpperBound__Group__0 ) + // InternalFiacre.g:2595:4: rule__InfiniteUpperBound__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InfiniteUpperBound__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getInfiniteUpperBoundAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleInfiniteUpperBound" + + + // $ANTLR start "entryRuleRequirement" + // InternalFiacre.g:2604:1: entryRuleRequirement : ruleRequirement EOF ; + public final void entryRuleRequirement() throws RecognitionException { + try { + // InternalFiacre.g:2605:1: ( ruleRequirement EOF ) + // InternalFiacre.g:2606:1: ruleRequirement EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleRequirement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleRequirement" + + + // $ANTLR start "ruleRequirement" + // InternalFiacre.g:2613:1: ruleRequirement : ( ( rule__Requirement__Group__0 ) ) ; + public final void ruleRequirement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2617:2: ( ( ( rule__Requirement__Group__0 ) ) ) + // InternalFiacre.g:2618:2: ( ( rule__Requirement__Group__0 ) ) + { + // InternalFiacre.g:2618:2: ( ( rule__Requirement__Group__0 ) ) + // InternalFiacre.g:2619:3: ( rule__Requirement__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getGroup()); + } + // InternalFiacre.g:2620:3: ( rule__Requirement__Group__0 ) + // InternalFiacre.g:2620:4: rule__Requirement__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleRequirement" + + + // $ANTLR start "entryRulePropertyDeclaration" + // InternalFiacre.g:2629:1: entryRulePropertyDeclaration : rulePropertyDeclaration EOF ; + public final void entryRulePropertyDeclaration() throws RecognitionException { + try { + // InternalFiacre.g:2630:1: ( rulePropertyDeclaration EOF ) + // InternalFiacre.g:2631:1: rulePropertyDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePropertyDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDeclarationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePropertyDeclaration" + + + // $ANTLR start "rulePropertyDeclaration" + // InternalFiacre.g:2638:1: rulePropertyDeclaration : ( ( rule__PropertyDeclaration__Group__0 ) ) ; + public final void rulePropertyDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2642:2: ( ( ( rule__PropertyDeclaration__Group__0 ) ) ) + // InternalFiacre.g:2643:2: ( ( rule__PropertyDeclaration__Group__0 ) ) + { + // InternalFiacre.g:2643:2: ( ( rule__PropertyDeclaration__Group__0 ) ) + // InternalFiacre.g:2644:3: ( rule__PropertyDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDeclarationAccess().getGroup()); + } + // InternalFiacre.g:2645:3: ( rule__PropertyDeclaration__Group__0 ) + // InternalFiacre.g:2645:4: rule__PropertyDeclaration__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePropertyDeclaration" + + + // $ANTLR start "entryRuleProperty" + // InternalFiacre.g:2654:1: entryRuleProperty : ruleProperty EOF ; + public final void entryRuleProperty() throws RecognitionException { + try { + // InternalFiacre.g:2655:1: ( ruleProperty EOF ) + // InternalFiacre.g:2656:1: ruleProperty EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleProperty" + + + // $ANTLR start "ruleProperty" + // InternalFiacre.g:2663:1: ruleProperty : ( ruleQuantifiedProperty ) ; + public final void ruleProperty() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2667:2: ( ( ruleQuantifiedProperty ) ) + // InternalFiacre.g:2668:2: ( ruleQuantifiedProperty ) + { + // InternalFiacre.g:2668:2: ( ruleQuantifiedProperty ) + // InternalFiacre.g:2669:3: ruleQuantifiedProperty + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyAccess().getQuantifiedPropertyParserRuleCall()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleQuantifiedProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyAccess().getQuantifiedPropertyParserRuleCall()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleProperty" + + + // $ANTLR start "entryRuleQuantifiedProperty" + // InternalFiacre.g:2679:1: entryRuleQuantifiedProperty : ruleQuantifiedProperty EOF ; + public final void entryRuleQuantifiedProperty() throws RecognitionException { + try { + // InternalFiacre.g:2680:1: ( ruleQuantifiedProperty EOF ) + // InternalFiacre.g:2681:1: ruleQuantifiedProperty EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleQuantifiedProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleQuantifiedProperty" + + + // $ANTLR start "ruleQuantifiedProperty" + // InternalFiacre.g:2688:1: ruleQuantifiedProperty : ( ( rule__QuantifiedProperty__Alternatives ) ) ; + public final void ruleQuantifiedProperty() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2692:2: ( ( ( rule__QuantifiedProperty__Alternatives ) ) ) + // InternalFiacre.g:2693:2: ( ( rule__QuantifiedProperty__Alternatives ) ) + { + // InternalFiacre.g:2693:2: ( ( rule__QuantifiedProperty__Alternatives ) ) + // InternalFiacre.g:2694:3: ( rule__QuantifiedProperty__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getAlternatives()); + } + // InternalFiacre.g:2695:3: ( rule__QuantifiedProperty__Alternatives ) + // InternalFiacre.g:2695:4: rule__QuantifiedProperty__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleQuantifiedProperty" + + + // $ANTLR start "entryRulePropertyDisjunction" + // InternalFiacre.g:2704:1: entryRulePropertyDisjunction : rulePropertyDisjunction EOF ; + public final void entryRulePropertyDisjunction() throws RecognitionException { + try { + // InternalFiacre.g:2705:1: ( rulePropertyDisjunction EOF ) + // InternalFiacre.g:2706:1: rulePropertyDisjunction EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDisjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePropertyDisjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDisjunctionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePropertyDisjunction" + + + // $ANTLR start "rulePropertyDisjunction" + // InternalFiacre.g:2713:1: rulePropertyDisjunction : ( ( rule__PropertyDisjunction__Group__0 ) ) ; + public final void rulePropertyDisjunction() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2717:2: ( ( ( rule__PropertyDisjunction__Group__0 ) ) ) + // InternalFiacre.g:2718:2: ( ( rule__PropertyDisjunction__Group__0 ) ) + { + // InternalFiacre.g:2718:2: ( ( rule__PropertyDisjunction__Group__0 ) ) + // InternalFiacre.g:2719:3: ( rule__PropertyDisjunction__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDisjunctionAccess().getGroup()); + } + // InternalFiacre.g:2720:3: ( rule__PropertyDisjunction__Group__0 ) + // InternalFiacre.g:2720:4: rule__PropertyDisjunction__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDisjunction__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDisjunctionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePropertyDisjunction" + + + // $ANTLR start "entryRulePropertyImplication" + // InternalFiacre.g:2729:1: entryRulePropertyImplication : rulePropertyImplication EOF ; + public final void entryRulePropertyImplication() throws RecognitionException { + try { + // InternalFiacre.g:2730:1: ( rulePropertyImplication EOF ) + // InternalFiacre.g:2731:1: rulePropertyImplication EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyImplicationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePropertyImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyImplicationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePropertyImplication" + + + // $ANTLR start "rulePropertyImplication" + // InternalFiacre.g:2738:1: rulePropertyImplication : ( ( rule__PropertyImplication__Group__0 ) ) ; + public final void rulePropertyImplication() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2742:2: ( ( ( rule__PropertyImplication__Group__0 ) ) ) + // InternalFiacre.g:2743:2: ( ( rule__PropertyImplication__Group__0 ) ) + { + // InternalFiacre.g:2743:2: ( ( rule__PropertyImplication__Group__0 ) ) + // InternalFiacre.g:2744:3: ( rule__PropertyImplication__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyImplicationAccess().getGroup()); + } + // InternalFiacre.g:2745:3: ( rule__PropertyImplication__Group__0 ) + // InternalFiacre.g:2745:4: rule__PropertyImplication__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyImplication__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyImplicationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePropertyImplication" + + + // $ANTLR start "entryRulePropertyConjunction" + // InternalFiacre.g:2754:1: entryRulePropertyConjunction : rulePropertyConjunction EOF ; + public final void entryRulePropertyConjunction() throws RecognitionException { + try { + // InternalFiacre.g:2755:1: ( rulePropertyConjunction EOF ) + // InternalFiacre.g:2756:1: rulePropertyConjunction EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyConjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePropertyConjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyConjunctionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePropertyConjunction" + + + // $ANTLR start "rulePropertyConjunction" + // InternalFiacre.g:2763:1: rulePropertyConjunction : ( ( rule__PropertyConjunction__Group__0 ) ) ; + public final void rulePropertyConjunction() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2767:2: ( ( ( rule__PropertyConjunction__Group__0 ) ) ) + // InternalFiacre.g:2768:2: ( ( rule__PropertyConjunction__Group__0 ) ) + { + // InternalFiacre.g:2768:2: ( ( rule__PropertyConjunction__Group__0 ) ) + // InternalFiacre.g:2769:3: ( rule__PropertyConjunction__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyConjunctionAccess().getGroup()); + } + // InternalFiacre.g:2770:3: ( rule__PropertyConjunction__Group__0 ) + // InternalFiacre.g:2770:4: rule__PropertyConjunction__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyConjunction__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyConjunctionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePropertyConjunction" + + + // $ANTLR start "entryRulePropertyNegation" + // InternalFiacre.g:2779:1: entryRulePropertyNegation : rulePropertyNegation EOF ; + public final void entryRulePropertyNegation() throws RecognitionException { + try { + // InternalFiacre.g:2780:1: ( rulePropertyNegation EOF ) + // InternalFiacre.g:2781:1: rulePropertyNegation EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyNegationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePropertyNegation(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyNegationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePropertyNegation" + + + // $ANTLR start "rulePropertyNegation" + // InternalFiacre.g:2788:1: rulePropertyNegation : ( ( rule__PropertyNegation__Alternatives ) ) ; + public final void rulePropertyNegation() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2792:2: ( ( ( rule__PropertyNegation__Alternatives ) ) ) + // InternalFiacre.g:2793:2: ( ( rule__PropertyNegation__Alternatives ) ) + { + // InternalFiacre.g:2793:2: ( ( rule__PropertyNegation__Alternatives ) ) + // InternalFiacre.g:2794:3: ( rule__PropertyNegation__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyNegationAccess().getAlternatives()); + } + // InternalFiacre.g:2795:3: ( rule__PropertyNegation__Alternatives ) + // InternalFiacre.g:2795:4: rule__PropertyNegation__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyNegation__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyNegationAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePropertyNegation" + + + // $ANTLR start "entryRuleAtomicProperty" + // InternalFiacre.g:2804:1: entryRuleAtomicProperty : ruleAtomicProperty EOF ; + public final void entryRuleAtomicProperty() throws RecognitionException { + try { + // InternalFiacre.g:2805:1: ( ruleAtomicProperty EOF ) + // InternalFiacre.g:2806:1: ruleAtomicProperty EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicPropertyRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleAtomicProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicPropertyRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleAtomicProperty" + + + // $ANTLR start "ruleAtomicProperty" + // InternalFiacre.g:2813:1: ruleAtomicProperty : ( ( rule__AtomicProperty__Alternatives ) ) ; + public final void ruleAtomicProperty() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2817:2: ( ( ( rule__AtomicProperty__Alternatives ) ) ) + // InternalFiacre.g:2818:2: ( ( rule__AtomicProperty__Alternatives ) ) + { + // InternalFiacre.g:2818:2: ( ( rule__AtomicProperty__Alternatives ) ) + // InternalFiacre.g:2819:3: ( rule__AtomicProperty__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicPropertyAccess().getAlternatives()); + } + // InternalFiacre.g:2820:3: ( rule__AtomicProperty__Alternatives ) + // InternalFiacre.g:2820:4: rule__AtomicProperty__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicProperty__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicPropertyAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleAtomicProperty" + + + // $ANTLR start "entryRulePatternProperty" + // InternalFiacre.g:2829:1: entryRulePatternProperty : rulePatternProperty EOF ; + public final void entryRulePatternProperty() throws RecognitionException { + try { + // InternalFiacre.g:2830:1: ( rulePatternProperty EOF ) + // InternalFiacre.g:2831:1: rulePatternProperty EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternPropertyRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePatternProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternPropertyRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePatternProperty" + + + // $ANTLR start "rulePatternProperty" + // InternalFiacre.g:2838:1: rulePatternProperty : ( ( rule__PatternProperty__Alternatives ) ) ; + public final void rulePatternProperty() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2842:2: ( ( ( rule__PatternProperty__Alternatives ) ) ) + // InternalFiacre.g:2843:2: ( ( rule__PatternProperty__Alternatives ) ) + { + // InternalFiacre.g:2843:2: ( ( rule__PatternProperty__Alternatives ) ) + // InternalFiacre.g:2844:3: ( rule__PatternProperty__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternPropertyAccess().getAlternatives()); + } + // InternalFiacre.g:2845:3: ( rule__PatternProperty__Alternatives ) + // InternalFiacre.g:2845:4: rule__PatternProperty__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternProperty__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternPropertyAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePatternProperty" + + + // $ANTLR start "entryRuleLTLPattern" + // InternalFiacre.g:2854:1: entryRuleLTLPattern : ruleLTLPattern EOF ; + public final void entryRuleLTLPattern() throws RecognitionException { + try { + // InternalFiacre.g:2855:1: ( ruleLTLPattern EOF ) + // InternalFiacre.g:2856:1: ruleLTLPattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLTLPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLPatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLTLPattern" + + + // $ANTLR start "ruleLTLPattern" + // InternalFiacre.g:2863:1: ruleLTLPattern : ( ( rule__LTLPattern__Group__0 ) ) ; + public final void ruleLTLPattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2867:2: ( ( ( rule__LTLPattern__Group__0 ) ) ) + // InternalFiacre.g:2868:2: ( ( rule__LTLPattern__Group__0 ) ) + { + // InternalFiacre.g:2868:2: ( ( rule__LTLPattern__Group__0 ) ) + // InternalFiacre.g:2869:3: ( rule__LTLPattern__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLPatternAccess().getGroup()); + } + // InternalFiacre.g:2870:3: ( rule__LTLPattern__Group__0 ) + // InternalFiacre.g:2870:4: rule__LTLPattern__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLPattern__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLPatternAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLTLPattern" + + + // $ANTLR start "entryRuleDeadlockFreePattern" + // InternalFiacre.g:2879:1: entryRuleDeadlockFreePattern : ruleDeadlockFreePattern EOF ; + public final void entryRuleDeadlockFreePattern() throws RecognitionException { + try { + // InternalFiacre.g:2880:1: ( ruleDeadlockFreePattern EOF ) + // InternalFiacre.g:2881:1: ruleDeadlockFreePattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeadlockFreePatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleDeadlockFreePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDeadlockFreePatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleDeadlockFreePattern" + + + // $ANTLR start "ruleDeadlockFreePattern" + // InternalFiacre.g:2888:1: ruleDeadlockFreePattern : ( ( rule__DeadlockFreePattern__Group__0 ) ) ; + public final void ruleDeadlockFreePattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2892:2: ( ( ( rule__DeadlockFreePattern__Group__0 ) ) ) + // InternalFiacre.g:2893:2: ( ( rule__DeadlockFreePattern__Group__0 ) ) + { + // InternalFiacre.g:2893:2: ( ( rule__DeadlockFreePattern__Group__0 ) ) + // InternalFiacre.g:2894:3: ( rule__DeadlockFreePattern__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeadlockFreePatternAccess().getGroup()); + } + // InternalFiacre.g:2895:3: ( rule__DeadlockFreePattern__Group__0 ) + // InternalFiacre.g:2895:4: rule__DeadlockFreePattern__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DeadlockFreePattern__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDeadlockFreePatternAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleDeadlockFreePattern" + + + // $ANTLR start "entryRuleInfinitelyOftenPattern" + // InternalFiacre.g:2904:1: entryRuleInfinitelyOftenPattern : ruleInfinitelyOftenPattern EOF ; + public final void entryRuleInfinitelyOftenPattern() throws RecognitionException { + try { + // InternalFiacre.g:2905:1: ( ruleInfinitelyOftenPattern EOF ) + // InternalFiacre.g:2906:1: ruleInfinitelyOftenPattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInfinitelyOftenPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleInfinitelyOftenPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInfinitelyOftenPatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleInfinitelyOftenPattern" + + + // $ANTLR start "ruleInfinitelyOftenPattern" + // InternalFiacre.g:2913:1: ruleInfinitelyOftenPattern : ( ( rule__InfinitelyOftenPattern__Group__0 ) ) ; + public final void ruleInfinitelyOftenPattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2917:2: ( ( ( rule__InfinitelyOftenPattern__Group__0 ) ) ) + // InternalFiacre.g:2918:2: ( ( rule__InfinitelyOftenPattern__Group__0 ) ) + { + // InternalFiacre.g:2918:2: ( ( rule__InfinitelyOftenPattern__Group__0 ) ) + // InternalFiacre.g:2919:3: ( rule__InfinitelyOftenPattern__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInfinitelyOftenPatternAccess().getGroup()); + } + // InternalFiacre.g:2920:3: ( rule__InfinitelyOftenPattern__Group__0 ) + // InternalFiacre.g:2920:4: rule__InfinitelyOftenPattern__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InfinitelyOftenPattern__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getInfinitelyOftenPatternAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleInfinitelyOftenPattern" + + + // $ANTLR start "entryRuleMortalPattern" + // InternalFiacre.g:2929:1: entryRuleMortalPattern : ruleMortalPattern EOF ; + public final void entryRuleMortalPattern() throws RecognitionException { + try { + // InternalFiacre.g:2930:1: ( ruleMortalPattern EOF ) + // InternalFiacre.g:2931:1: ruleMortalPattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMortalPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleMortalPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getMortalPatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleMortalPattern" + + + // $ANTLR start "ruleMortalPattern" + // InternalFiacre.g:2938:1: ruleMortalPattern : ( ( rule__MortalPattern__Group__0 ) ) ; + public final void ruleMortalPattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2942:2: ( ( ( rule__MortalPattern__Group__0 ) ) ) + // InternalFiacre.g:2943:2: ( ( rule__MortalPattern__Group__0 ) ) + { + // InternalFiacre.g:2943:2: ( ( rule__MortalPattern__Group__0 ) ) + // InternalFiacre.g:2944:3: ( rule__MortalPattern__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMortalPatternAccess().getGroup()); + } + // InternalFiacre.g:2945:3: ( rule__MortalPattern__Group__0 ) + // InternalFiacre.g:2945:4: rule__MortalPattern__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__MortalPattern__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getMortalPatternAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleMortalPattern" + + + // $ANTLR start "entryRulePresencePattern" + // InternalFiacre.g:2954:1: entryRulePresencePattern : rulePresencePattern EOF ; + public final void entryRulePresencePattern() throws RecognitionException { + try { + // InternalFiacre.g:2955:1: ( rulePresencePattern EOF ) + // InternalFiacre.g:2956:1: rulePresencePattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePresencePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePresencePattern" + + + // $ANTLR start "rulePresencePattern" + // InternalFiacre.g:2963:1: rulePresencePattern : ( ( rule__PresencePattern__Group__0 ) ) ; + public final void rulePresencePattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2967:2: ( ( ( rule__PresencePattern__Group__0 ) ) ) + // InternalFiacre.g:2968:2: ( ( rule__PresencePattern__Group__0 ) ) + { + // InternalFiacre.g:2968:2: ( ( rule__PresencePattern__Group__0 ) ) + // InternalFiacre.g:2969:3: ( rule__PresencePattern__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getGroup()); + } + // InternalFiacre.g:2970:3: ( rule__PresencePattern__Group__0 ) + // InternalFiacre.g:2970:4: rule__PresencePattern__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePresencePattern" + + + // $ANTLR start "entryRuleAbsencePattern" + // InternalFiacre.g:2979:1: entryRuleAbsencePattern : ruleAbsencePattern EOF ; + public final void entryRuleAbsencePattern() throws RecognitionException { + try { + // InternalFiacre.g:2980:1: ( ruleAbsencePattern EOF ) + // InternalFiacre.g:2981:1: ruleAbsencePattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleAbsencePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleAbsencePattern" + + + // $ANTLR start "ruleAbsencePattern" + // InternalFiacre.g:2988:1: ruleAbsencePattern : ( ( rule__AbsencePattern__Group__0 ) ) ; + public final void ruleAbsencePattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:2992:2: ( ( ( rule__AbsencePattern__Group__0 ) ) ) + // InternalFiacre.g:2993:2: ( ( rule__AbsencePattern__Group__0 ) ) + { + // InternalFiacre.g:2993:2: ( ( rule__AbsencePattern__Group__0 ) ) + // InternalFiacre.g:2994:3: ( rule__AbsencePattern__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getGroup()); + } + // InternalFiacre.g:2995:3: ( rule__AbsencePattern__Group__0 ) + // InternalFiacre.g:2995:4: rule__AbsencePattern__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleAbsencePattern" + + + // $ANTLR start "entryRuleAlwaysPattern" + // InternalFiacre.g:3004:1: entryRuleAlwaysPattern : ruleAlwaysPattern EOF ; + public final void entryRuleAlwaysPattern() throws RecognitionException { + try { + // InternalFiacre.g:3005:1: ( ruleAlwaysPattern EOF ) + // InternalFiacre.g:3006:1: ruleAlwaysPattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleAlwaysPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleAlwaysPattern" + + + // $ANTLR start "ruleAlwaysPattern" + // InternalFiacre.g:3013:1: ruleAlwaysPattern : ( ( rule__AlwaysPattern__Group__0 ) ) ; + public final void ruleAlwaysPattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3017:2: ( ( ( rule__AlwaysPattern__Group__0 ) ) ) + // InternalFiacre.g:3018:2: ( ( rule__AlwaysPattern__Group__0 ) ) + { + // InternalFiacre.g:3018:2: ( ( rule__AlwaysPattern__Group__0 ) ) + // InternalFiacre.g:3019:3: ( rule__AlwaysPattern__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getGroup()); + } + // InternalFiacre.g:3020:3: ( rule__AlwaysPattern__Group__0 ) + // InternalFiacre.g:3020:4: rule__AlwaysPattern__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleAlwaysPattern" + + + // $ANTLR start "entryRuleSequencePattern" + // InternalFiacre.g:3029:1: entryRuleSequencePattern : ruleSequencePattern EOF ; + public final void entryRuleSequencePattern() throws RecognitionException { + try { + // InternalFiacre.g:3030:1: ( ruleSequencePattern EOF ) + // InternalFiacre.g:3031:1: ruleSequencePattern EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleSequencePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleSequencePattern" + + + // $ANTLR start "ruleSequencePattern" + // InternalFiacre.g:3038:1: ruleSequencePattern : ( ( rule__SequencePattern__Group__0 ) ) ; + public final void ruleSequencePattern() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3042:2: ( ( ( rule__SequencePattern__Group__0 ) ) ) + // InternalFiacre.g:3043:2: ( ( rule__SequencePattern__Group__0 ) ) + { + // InternalFiacre.g:3043:2: ( ( rule__SequencePattern__Group__0 ) ) + // InternalFiacre.g:3044:3: ( rule__SequencePattern__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup()); + } + // InternalFiacre.g:3045:3: ( rule__SequencePattern__Group__0 ) + // InternalFiacre.g:3045:4: rule__SequencePattern__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleSequencePattern" + + + // $ANTLR start "entryRuleLTLProperty" + // InternalFiacre.g:3054:1: entryRuleLTLProperty : ruleLTLProperty EOF ; + public final void entryRuleLTLProperty() throws RecognitionException { + try { + // InternalFiacre.g:3055:1: ( ruleLTLProperty EOF ) + // InternalFiacre.g:3056:1: ruleLTLProperty EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLPropertyRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLTLProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLPropertyRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLTLProperty" + + + // $ANTLR start "ruleLTLProperty" + // InternalFiacre.g:3063:1: ruleLTLProperty : ( ruleLTLQuantified ) ; + public final void ruleLTLProperty() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3067:2: ( ( ruleLTLQuantified ) ) + // InternalFiacre.g:3068:2: ( ruleLTLQuantified ) + { + // InternalFiacre.g:3068:2: ( ruleLTLQuantified ) + // InternalFiacre.g:3069:3: ruleLTLQuantified + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLPropertyAccess().getLTLQuantifiedParserRuleCall()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLQuantified(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLPropertyAccess().getLTLQuantifiedParserRuleCall()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLTLProperty" + + + // $ANTLR start "entryRuleLTLQuantified" + // InternalFiacre.g:3079:1: entryRuleLTLQuantified : ruleLTLQuantified EOF ; + public final void entryRuleLTLQuantified() throws RecognitionException { + try { + // InternalFiacre.g:3080:1: ( ruleLTLQuantified EOF ) + // InternalFiacre.g:3081:1: ruleLTLQuantified EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLTLQuantified(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLTLQuantified" + + + // $ANTLR start "ruleLTLQuantified" + // InternalFiacre.g:3088:1: ruleLTLQuantified : ( ( rule__LTLQuantified__Alternatives ) ) ; + public final void ruleLTLQuantified() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3092:2: ( ( ( rule__LTLQuantified__Alternatives ) ) ) + // InternalFiacre.g:3093:2: ( ( rule__LTLQuantified__Alternatives ) ) + { + // InternalFiacre.g:3093:2: ( ( rule__LTLQuantified__Alternatives ) ) + // InternalFiacre.g:3094:3: ( rule__LTLQuantified__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getAlternatives()); + } + // InternalFiacre.g:3095:3: ( rule__LTLQuantified__Alternatives ) + // InternalFiacre.g:3095:4: rule__LTLQuantified__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLTLQuantified" + + + // $ANTLR start "entryRuleLTLDisjunction" + // InternalFiacre.g:3104:1: entryRuleLTLDisjunction : ruleLTLDisjunction EOF ; + public final void entryRuleLTLDisjunction() throws RecognitionException { + try { + // InternalFiacre.g:3105:1: ( ruleLTLDisjunction EOF ) + // InternalFiacre.g:3106:1: ruleLTLDisjunction EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLDisjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLTLDisjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLDisjunctionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLTLDisjunction" + + + // $ANTLR start "ruleLTLDisjunction" + // InternalFiacre.g:3113:1: ruleLTLDisjunction : ( ( rule__LTLDisjunction__Group__0 ) ) ; + public final void ruleLTLDisjunction() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3117:2: ( ( ( rule__LTLDisjunction__Group__0 ) ) ) + // InternalFiacre.g:3118:2: ( ( rule__LTLDisjunction__Group__0 ) ) + { + // InternalFiacre.g:3118:2: ( ( rule__LTLDisjunction__Group__0 ) ) + // InternalFiacre.g:3119:3: ( rule__LTLDisjunction__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLDisjunctionAccess().getGroup()); + } + // InternalFiacre.g:3120:3: ( rule__LTLDisjunction__Group__0 ) + // InternalFiacre.g:3120:4: rule__LTLDisjunction__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLDisjunction__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLDisjunctionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLTLDisjunction" + + + // $ANTLR start "entryRuleLTLImplication" + // InternalFiacre.g:3129:1: entryRuleLTLImplication : ruleLTLImplication EOF ; + public final void entryRuleLTLImplication() throws RecognitionException { + try { + // InternalFiacre.g:3130:1: ( ruleLTLImplication EOF ) + // InternalFiacre.g:3131:1: ruleLTLImplication EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLImplicationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLTLImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLImplicationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLTLImplication" + + + // $ANTLR start "ruleLTLImplication" + // InternalFiacre.g:3138:1: ruleLTLImplication : ( ( rule__LTLImplication__Group__0 ) ) ; + public final void ruleLTLImplication() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3142:2: ( ( ( rule__LTLImplication__Group__0 ) ) ) + // InternalFiacre.g:3143:2: ( ( rule__LTLImplication__Group__0 ) ) + { + // InternalFiacre.g:3143:2: ( ( rule__LTLImplication__Group__0 ) ) + // InternalFiacre.g:3144:3: ( rule__LTLImplication__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLImplicationAccess().getGroup()); + } + // InternalFiacre.g:3145:3: ( rule__LTLImplication__Group__0 ) + // InternalFiacre.g:3145:4: rule__LTLImplication__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLImplication__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLImplicationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLTLImplication" + + + // $ANTLR start "entryRuleLTLConjunction" + // InternalFiacre.g:3154:1: entryRuleLTLConjunction : ruleLTLConjunction EOF ; + public final void entryRuleLTLConjunction() throws RecognitionException { + try { + // InternalFiacre.g:3155:1: ( ruleLTLConjunction EOF ) + // InternalFiacre.g:3156:1: ruleLTLConjunction EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLConjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLTLConjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLConjunctionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLTLConjunction" + + + // $ANTLR start "ruleLTLConjunction" + // InternalFiacre.g:3163:1: ruleLTLConjunction : ( ( rule__LTLConjunction__Group__0 ) ) ; + public final void ruleLTLConjunction() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3167:2: ( ( ( rule__LTLConjunction__Group__0 ) ) ) + // InternalFiacre.g:3168:2: ( ( rule__LTLConjunction__Group__0 ) ) + { + // InternalFiacre.g:3168:2: ( ( rule__LTLConjunction__Group__0 ) ) + // InternalFiacre.g:3169:3: ( rule__LTLConjunction__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLConjunctionAccess().getGroup()); + } + // InternalFiacre.g:3170:3: ( rule__LTLConjunction__Group__0 ) + // InternalFiacre.g:3170:4: rule__LTLConjunction__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLConjunction__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLConjunctionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLTLConjunction" + + + // $ANTLR start "entryRuleLTLBinary" + // InternalFiacre.g:3179:1: entryRuleLTLBinary : ruleLTLBinary EOF ; + public final void entryRuleLTLBinary() throws RecognitionException { + try { + // InternalFiacre.g:3180:1: ( ruleLTLBinary EOF ) + // InternalFiacre.g:3181:1: ruleLTLBinary EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLTLBinary(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLTLBinary" + + + // $ANTLR start "ruleLTLBinary" + // InternalFiacre.g:3188:1: ruleLTLBinary : ( ( rule__LTLBinary__Group__0 ) ) ; + public final void ruleLTLBinary() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3192:2: ( ( ( rule__LTLBinary__Group__0 ) ) ) + // InternalFiacre.g:3193:2: ( ( rule__LTLBinary__Group__0 ) ) + { + // InternalFiacre.g:3193:2: ( ( rule__LTLBinary__Group__0 ) ) + // InternalFiacre.g:3194:3: ( rule__LTLBinary__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getGroup()); + } + // InternalFiacre.g:3195:3: ( rule__LTLBinary__Group__0 ) + // InternalFiacre.g:3195:4: rule__LTLBinary__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLTLBinary" + + + // $ANTLR start "entryRuleLTLUnary" + // InternalFiacre.g:3204:1: entryRuleLTLUnary : ruleLTLUnary EOF ; + public final void entryRuleLTLUnary() throws RecognitionException { + try { + // InternalFiacre.g:3205:1: ( ruleLTLUnary EOF ) + // InternalFiacre.g:3206:1: ruleLTLUnary EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLTLUnary(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLTLUnary" + + + // $ANTLR start "ruleLTLUnary" + // InternalFiacre.g:3213:1: ruleLTLUnary : ( ( rule__LTLUnary__Alternatives ) ) ; + public final void ruleLTLUnary() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3217:2: ( ( ( rule__LTLUnary__Alternatives ) ) ) + // InternalFiacre.g:3218:2: ( ( rule__LTLUnary__Alternatives ) ) + { + // InternalFiacre.g:3218:2: ( ( rule__LTLUnary__Alternatives ) ) + // InternalFiacre.g:3219:3: ( rule__LTLUnary__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getAlternatives()); + } + // InternalFiacre.g:3220:3: ( rule__LTLUnary__Alternatives ) + // InternalFiacre.g:3220:4: rule__LTLUnary__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLTLUnary" + + + // $ANTLR start "entryRuleAtomicLTL" + // InternalFiacre.g:3229:1: entryRuleAtomicLTL : ruleAtomicLTL EOF ; + public final void entryRuleAtomicLTL() throws RecognitionException { + try { + // InternalFiacre.g:3230:1: ( ruleAtomicLTL EOF ) + // InternalFiacre.g:3231:1: ruleAtomicLTL EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleAtomicLTL(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleAtomicLTL" + + + // $ANTLR start "ruleAtomicLTL" + // InternalFiacre.g:3238:1: ruleAtomicLTL : ( ( rule__AtomicLTL__Alternatives ) ) ; + public final void ruleAtomicLTL() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3242:2: ( ( ( rule__AtomicLTL__Alternatives ) ) ) + // InternalFiacre.g:3243:2: ( ( rule__AtomicLTL__Alternatives ) ) + { + // InternalFiacre.g:3243:2: ( ( rule__AtomicLTL__Alternatives ) ) + // InternalFiacre.g:3244:3: ( rule__AtomicLTL__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getAlternatives()); + } + // InternalFiacre.g:3245:3: ( rule__AtomicLTL__Alternatives ) + // InternalFiacre.g:3245:4: rule__AtomicLTL__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicLTL__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleAtomicLTL" + + + // $ANTLR start "entryRuleStateEvent" + // InternalFiacre.g:3254:1: entryRuleStateEvent : ruleStateEvent EOF ; + public final void entryRuleStateEvent() throws RecognitionException { + try { + // InternalFiacre.g:3255:1: ( ruleStateEvent EOF ) + // InternalFiacre.g:3256:1: ruleStateEvent EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateEventRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleStateEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStateEventRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleStateEvent" + + + // $ANTLR start "ruleStateEvent" + // InternalFiacre.g:3263:1: ruleStateEvent : ( ( rule__StateEvent__Alternatives ) ) ; + public final void ruleStateEvent() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3267:2: ( ( ( rule__StateEvent__Alternatives ) ) ) + // InternalFiacre.g:3268:2: ( ( rule__StateEvent__Alternatives ) ) + { + // InternalFiacre.g:3268:2: ( ( rule__StateEvent__Alternatives ) ) + // InternalFiacre.g:3269:3: ( rule__StateEvent__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateEventAccess().getAlternatives()); + } + // InternalFiacre.g:3270:3: ( rule__StateEvent__Alternatives ) + // InternalFiacre.g:3270:4: rule__StateEvent__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StateEvent__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStateEventAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleStateEvent" + + + // $ANTLR start "entryRuleEnterStateEvent" + // InternalFiacre.g:3279:1: entryRuleEnterStateEvent : ruleEnterStateEvent EOF ; + public final void entryRuleEnterStateEvent() throws RecognitionException { + try { + // InternalFiacre.g:3280:1: ( ruleEnterStateEvent EOF ) + // InternalFiacre.g:3281:1: ruleEnterStateEvent EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnterStateEventRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleEnterStateEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEnterStateEventRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleEnterStateEvent" + + + // $ANTLR start "ruleEnterStateEvent" + // InternalFiacre.g:3288:1: ruleEnterStateEvent : ( ( rule__EnterStateEvent__Group__0 ) ) ; + public final void ruleEnterStateEvent() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3292:2: ( ( ( rule__EnterStateEvent__Group__0 ) ) ) + // InternalFiacre.g:3293:2: ( ( rule__EnterStateEvent__Group__0 ) ) + { + // InternalFiacre.g:3293:2: ( ( rule__EnterStateEvent__Group__0 ) ) + // InternalFiacre.g:3294:3: ( rule__EnterStateEvent__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnterStateEventAccess().getGroup()); + } + // InternalFiacre.g:3295:3: ( rule__EnterStateEvent__Group__0 ) + // InternalFiacre.g:3295:4: rule__EnterStateEvent__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__EnterStateEvent__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getEnterStateEventAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleEnterStateEvent" + + + // $ANTLR start "entryRuleLeaveStateEvent" + // InternalFiacre.g:3304:1: entryRuleLeaveStateEvent : ruleLeaveStateEvent EOF ; + public final void entryRuleLeaveStateEvent() throws RecognitionException { + try { + // InternalFiacre.g:3305:1: ( ruleLeaveStateEvent EOF ) + // InternalFiacre.g:3306:1: ruleLeaveStateEvent EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLeaveStateEventRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleLeaveStateEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLeaveStateEventRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLeaveStateEvent" + + + // $ANTLR start "ruleLeaveStateEvent" + // InternalFiacre.g:3313:1: ruleLeaveStateEvent : ( ( rule__LeaveStateEvent__Group__0 ) ) ; + public final void ruleLeaveStateEvent() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3317:2: ( ( ( rule__LeaveStateEvent__Group__0 ) ) ) + // InternalFiacre.g:3318:2: ( ( rule__LeaveStateEvent__Group__0 ) ) + { + // InternalFiacre.g:3318:2: ( ( rule__LeaveStateEvent__Group__0 ) ) + // InternalFiacre.g:3319:3: ( rule__LeaveStateEvent__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLeaveStateEventAccess().getGroup()); + } + // InternalFiacre.g:3320:3: ( rule__LeaveStateEvent__Group__0 ) + // InternalFiacre.g:3320:4: rule__LeaveStateEvent__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LeaveStateEvent__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLeaveStateEventAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLeaveStateEvent" + + + // $ANTLR start "entryRuleObservable" + // InternalFiacre.g:3329:1: entryRuleObservable : ruleObservable EOF ; + public final void entryRuleObservable() throws RecognitionException { + try { + // InternalFiacre.g:3330:1: ( ruleObservable EOF ) + // InternalFiacre.g:3331:1: ruleObservable EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleObservable" + + + // $ANTLR start "ruleObservable" + // InternalFiacre.g:3338:1: ruleObservable : ( ruleObservableDisjunction ) ; + public final void ruleObservable() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3342:2: ( ( ruleObservableDisjunction ) ) + // InternalFiacre.g:3343:2: ( ruleObservableDisjunction ) + { + // InternalFiacre.g:3343:2: ( ruleObservableDisjunction ) + // InternalFiacre.g:3344:3: ruleObservableDisjunction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableAccess().getObservableDisjunctionParserRuleCall()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservableDisjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableAccess().getObservableDisjunctionParserRuleCall()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleObservable" + + + // $ANTLR start "entryRuleObservableDisjunction" + // InternalFiacre.g:3354:1: entryRuleObservableDisjunction : ruleObservableDisjunction EOF ; + public final void entryRuleObservableDisjunction() throws RecognitionException { + try { + // InternalFiacre.g:3355:1: ( ruleObservableDisjunction EOF ) + // InternalFiacre.g:3356:1: ruleObservableDisjunction EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableDisjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleObservableDisjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableDisjunctionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleObservableDisjunction" + + + // $ANTLR start "ruleObservableDisjunction" + // InternalFiacre.g:3363:1: ruleObservableDisjunction : ( ( rule__ObservableDisjunction__Group__0 ) ) ; + public final void ruleObservableDisjunction() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3367:2: ( ( ( rule__ObservableDisjunction__Group__0 ) ) ) + // InternalFiacre.g:3368:2: ( ( rule__ObservableDisjunction__Group__0 ) ) + { + // InternalFiacre.g:3368:2: ( ( rule__ObservableDisjunction__Group__0 ) ) + // InternalFiacre.g:3369:3: ( rule__ObservableDisjunction__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableDisjunctionAccess().getGroup()); + } + // InternalFiacre.g:3370:3: ( rule__ObservableDisjunction__Group__0 ) + // InternalFiacre.g:3370:4: rule__ObservableDisjunction__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableDisjunction__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableDisjunctionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleObservableDisjunction" + + + // $ANTLR start "entryRuleObservableImplication" + // InternalFiacre.g:3379:1: entryRuleObservableImplication : ruleObservableImplication EOF ; + public final void entryRuleObservableImplication() throws RecognitionException { + try { + // InternalFiacre.g:3380:1: ( ruleObservableImplication EOF ) + // InternalFiacre.g:3381:1: ruleObservableImplication EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableImplicationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleObservableImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableImplicationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleObservableImplication" + + + // $ANTLR start "ruleObservableImplication" + // InternalFiacre.g:3388:1: ruleObservableImplication : ( ( rule__ObservableImplication__Group__0 ) ) ; + public final void ruleObservableImplication() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3392:2: ( ( ( rule__ObservableImplication__Group__0 ) ) ) + // InternalFiacre.g:3393:2: ( ( rule__ObservableImplication__Group__0 ) ) + { + // InternalFiacre.g:3393:2: ( ( rule__ObservableImplication__Group__0 ) ) + // InternalFiacre.g:3394:3: ( rule__ObservableImplication__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableImplicationAccess().getGroup()); + } + // InternalFiacre.g:3395:3: ( rule__ObservableImplication__Group__0 ) + // InternalFiacre.g:3395:4: rule__ObservableImplication__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableImplication__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableImplicationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleObservableImplication" + + + // $ANTLR start "entryRuleObservableConjunction" + // InternalFiacre.g:3404:1: entryRuleObservableConjunction : ruleObservableConjunction EOF ; + public final void entryRuleObservableConjunction() throws RecognitionException { + try { + // InternalFiacre.g:3405:1: ( ruleObservableConjunction EOF ) + // InternalFiacre.g:3406:1: ruleObservableConjunction EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableConjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleObservableConjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableConjunctionRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleObservableConjunction" + + + // $ANTLR start "ruleObservableConjunction" + // InternalFiacre.g:3413:1: ruleObservableConjunction : ( ( rule__ObservableConjunction__Group__0 ) ) ; + public final void ruleObservableConjunction() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3417:2: ( ( ( rule__ObservableConjunction__Group__0 ) ) ) + // InternalFiacre.g:3418:2: ( ( rule__ObservableConjunction__Group__0 ) ) + { + // InternalFiacre.g:3418:2: ( ( rule__ObservableConjunction__Group__0 ) ) + // InternalFiacre.g:3419:3: ( rule__ObservableConjunction__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableConjunctionAccess().getGroup()); + } + // InternalFiacre.g:3420:3: ( rule__ObservableConjunction__Group__0 ) + // InternalFiacre.g:3420:4: rule__ObservableConjunction__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableConjunction__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableConjunctionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleObservableConjunction" + + + // $ANTLR start "entryRuleObservableNegation" + // InternalFiacre.g:3429:1: entryRuleObservableNegation : ruleObservableNegation EOF ; + public final void entryRuleObservableNegation() throws RecognitionException { + try { + // InternalFiacre.g:3430:1: ( ruleObservableNegation EOF ) + // InternalFiacre.g:3431:1: ruleObservableNegation EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableNegationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleObservableNegation(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableNegationRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleObservableNegation" + + + // $ANTLR start "ruleObservableNegation" + // InternalFiacre.g:3438:1: ruleObservableNegation : ( ( rule__ObservableNegation__Alternatives ) ) ; + public final void ruleObservableNegation() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3442:2: ( ( ( rule__ObservableNegation__Alternatives ) ) ) + // InternalFiacre.g:3443:2: ( ( rule__ObservableNegation__Alternatives ) ) + { + // InternalFiacre.g:3443:2: ( ( rule__ObservableNegation__Alternatives ) ) + // InternalFiacre.g:3444:3: ( rule__ObservableNegation__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableNegationAccess().getAlternatives()); + } + // InternalFiacre.g:3445:3: ( rule__ObservableNegation__Alternatives ) + // InternalFiacre.g:3445:4: rule__ObservableNegation__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableNegation__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableNegationAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleObservableNegation" + + + // $ANTLR start "entryRuleAtomicObservable" + // InternalFiacre.g:3454:1: entryRuleAtomicObservable : ruleAtomicObservable EOF ; + public final void entryRuleAtomicObservable() throws RecognitionException { + try { + // InternalFiacre.g:3455:1: ( ruleAtomicObservable EOF ) + // InternalFiacre.g:3456:1: ruleAtomicObservable EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicObservableRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicObservableRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleAtomicObservable" + + + // $ANTLR start "ruleAtomicObservable" + // InternalFiacre.g:3463:1: ruleAtomicObservable : ( ( rule__AtomicObservable__Alternatives ) ) ; + public final void ruleAtomicObservable() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3467:2: ( ( ( rule__AtomicObservable__Alternatives ) ) ) + // InternalFiacre.g:3468:2: ( ( rule__AtomicObservable__Alternatives ) ) + { + // InternalFiacre.g:3468:2: ( ( rule__AtomicObservable__Alternatives ) ) + // InternalFiacre.g:3469:3: ( rule__AtomicObservable__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicObservableAccess().getAlternatives()); + } + // InternalFiacre.g:3470:3: ( rule__AtomicObservable__Alternatives ) + // InternalFiacre.g:3470:4: rule__AtomicObservable__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicObservable__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicObservableAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleAtomicObservable" + + + // $ANTLR start "entryRuleObservableEvent" + // InternalFiacre.g:3479:1: entryRuleObservableEvent : ruleObservableEvent EOF ; + public final void entryRuleObservableEvent() throws RecognitionException { + try { + // InternalFiacre.g:3480:1: ( ruleObservableEvent EOF ) + // InternalFiacre.g:3481:1: ruleObservableEvent EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableEventRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleObservableEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableEventRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleObservableEvent" + + + // $ANTLR start "ruleObservableEvent" + // InternalFiacre.g:3488:1: ruleObservableEvent : ( ( rule__ObservableEvent__Alternatives ) ) ; + public final void ruleObservableEvent() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3492:2: ( ( ( rule__ObservableEvent__Alternatives ) ) ) + // InternalFiacre.g:3493:2: ( ( rule__ObservableEvent__Alternatives ) ) + { + // InternalFiacre.g:3493:2: ( ( rule__ObservableEvent__Alternatives ) ) + // InternalFiacre.g:3494:3: ( rule__ObservableEvent__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableEventAccess().getAlternatives()); + } + // InternalFiacre.g:3495:3: ( rule__ObservableEvent__Alternatives ) + // InternalFiacre.g:3495:4: rule__ObservableEvent__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableEvent__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableEventAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleObservableEvent" + + + // $ANTLR start "entryRulePathEvent" + // InternalFiacre.g:3504:1: entryRulePathEvent : rulePathEvent EOF ; + public final void entryRulePathEvent() throws RecognitionException { + try { + // InternalFiacre.g:3505:1: ( rulePathEvent EOF ) + // InternalFiacre.g:3506:1: rulePathEvent EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathEventRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePathEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPathEventRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePathEvent" + + + // $ANTLR start "rulePathEvent" + // InternalFiacre.g:3513:1: rulePathEvent : ( ( rule__PathEvent__Group__0 ) ) ; + public final void rulePathEvent() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3517:2: ( ( ( rule__PathEvent__Group__0 ) ) ) + // InternalFiacre.g:3518:2: ( ( rule__PathEvent__Group__0 ) ) + { + // InternalFiacre.g:3518:2: ( ( rule__PathEvent__Group__0 ) ) + // InternalFiacre.g:3519:3: ( rule__PathEvent__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathEventAccess().getGroup()); + } + // InternalFiacre.g:3520:3: ( rule__PathEvent__Group__0 ) + // InternalFiacre.g:3520:4: rule__PathEvent__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PathEvent__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPathEventAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePathEvent" + + + // $ANTLR start "entryRulePath" + // InternalFiacre.g:3529:1: entryRulePath : rulePath EOF ; + public final void entryRulePath() throws RecognitionException { + try { + // InternalFiacre.g:3530:1: ( rulePath EOF ) + // InternalFiacre.g:3531:1: rulePath EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePath(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPathRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePath" + + + // $ANTLR start "rulePath" + // InternalFiacre.g:3538:1: rulePath : ( ( ( rule__Path__Group__0 ) ) ( ( rule__Path__Group__0 )* ) ) ; + public final void rulePath() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3542:2: ( ( ( ( rule__Path__Group__0 ) ) ( ( rule__Path__Group__0 )* ) ) ) + // InternalFiacre.g:3543:2: ( ( ( rule__Path__Group__0 ) ) ( ( rule__Path__Group__0 )* ) ) + { + // InternalFiacre.g:3543:2: ( ( ( rule__Path__Group__0 ) ) ( ( rule__Path__Group__0 )* ) ) + // InternalFiacre.g:3544:3: ( ( rule__Path__Group__0 ) ) ( ( rule__Path__Group__0 )* ) + { + // InternalFiacre.g:3544:3: ( ( rule__Path__Group__0 ) ) + // InternalFiacre.g:3545:4: ( rule__Path__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathAccess().getGroup()); + } + // InternalFiacre.g:3546:4: ( rule__Path__Group__0 ) + // InternalFiacre.g:3546:5: rule__Path__Group__0 + { + pushFollow(FollowSets000.FOLLOW_3); + rule__Path__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPathAccess().getGroup()); + } + + } + + // InternalFiacre.g:3549:3: ( ( rule__Path__Group__0 )* ) + // InternalFiacre.g:3550:4: ( rule__Path__Group__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathAccess().getGroup()); + } + // InternalFiacre.g:3551:4: ( rule__Path__Group__0 )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==RULE_ID||LA1_0==RULE_INT) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // InternalFiacre.g:3551:5: rule__Path__Group__0 + { + pushFollow(FollowSets000.FOLLOW_3); + rule__Path__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop1; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPathAccess().getGroup()); + } + + } + + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePath" + + + // $ANTLR start "entryRulePathItem" + // InternalFiacre.g:3561:1: entryRulePathItem : rulePathItem EOF ; + public final void entryRulePathItem() throws RecognitionException { + try { + // InternalFiacre.g:3562:1: ( rulePathItem EOF ) + // InternalFiacre.g:3563:1: rulePathItem EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathItemRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + rulePathItem(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPathItemRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePathItem" + + + // $ANTLR start "rulePathItem" + // InternalFiacre.g:3570:1: rulePathItem : ( ( rule__PathItem__Alternatives ) ) ; + public final void rulePathItem() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3574:2: ( ( ( rule__PathItem__Alternatives ) ) ) + // InternalFiacre.g:3575:2: ( ( rule__PathItem__Alternatives ) ) + { + // InternalFiacre.g:3575:2: ( ( rule__PathItem__Alternatives ) ) + // InternalFiacre.g:3576:3: ( rule__PathItem__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathItemAccess().getAlternatives()); + } + // InternalFiacre.g:3577:3: ( rule__PathItem__Alternatives ) + // InternalFiacre.g:3577:4: rule__PathItem__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PathItem__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPathItemAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePathItem" + + + // $ANTLR start "entryRuleNaturalItem" + // InternalFiacre.g:3586:1: entryRuleNaturalItem : ruleNaturalItem EOF ; + public final void entryRuleNaturalItem() throws RecognitionException { + try { + // InternalFiacre.g:3587:1: ( ruleNaturalItem EOF ) + // InternalFiacre.g:3588:1: ruleNaturalItem EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalItemRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleNaturalItem(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalItemRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleNaturalItem" + + + // $ANTLR start "ruleNaturalItem" + // InternalFiacre.g:3595:1: ruleNaturalItem : ( ( rule__NaturalItem__ValueAssignment ) ) ; + public final void ruleNaturalItem() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3599:2: ( ( ( rule__NaturalItem__ValueAssignment ) ) ) + // InternalFiacre.g:3600:2: ( ( rule__NaturalItem__ValueAssignment ) ) + { + // InternalFiacre.g:3600:2: ( ( rule__NaturalItem__ValueAssignment ) ) + // InternalFiacre.g:3601:3: ( rule__NaturalItem__ValueAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalItemAccess().getValueAssignment()); + } + // InternalFiacre.g:3602:3: ( rule__NaturalItem__ValueAssignment ) + // InternalFiacre.g:3602:4: rule__NaturalItem__ValueAssignment + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalItem__ValueAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalItemAccess().getValueAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleNaturalItem" + + + // $ANTLR start "entryRuleNamedItem" + // InternalFiacre.g:3611:1: entryRuleNamedItem : ruleNamedItem EOF ; + public final void entryRuleNamedItem() throws RecognitionException { + try { + // InternalFiacre.g:3612:1: ( ruleNamedItem EOF ) + // InternalFiacre.g:3613:1: ruleNamedItem EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNamedItemRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleNamedItem(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNamedItemRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleNamedItem" + + + // $ANTLR start "ruleNamedItem" + // InternalFiacre.g:3620:1: ruleNamedItem : ( ( rule__NamedItem__DeclarationAssignment ) ) ; + public final void ruleNamedItem() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3624:2: ( ( ( rule__NamedItem__DeclarationAssignment ) ) ) + // InternalFiacre.g:3625:2: ( ( rule__NamedItem__DeclarationAssignment ) ) + { + // InternalFiacre.g:3625:2: ( ( rule__NamedItem__DeclarationAssignment ) ) + // InternalFiacre.g:3626:3: ( rule__NamedItem__DeclarationAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNamedItemAccess().getDeclarationAssignment()); + } + // InternalFiacre.g:3627:3: ( rule__NamedItem__DeclarationAssignment ) + // InternalFiacre.g:3627:4: rule__NamedItem__DeclarationAssignment + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NamedItem__DeclarationAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNamedItemAccess().getDeclarationAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleNamedItem" + + + // $ANTLR start "entryRuleSubject" + // InternalFiacre.g:3636:1: entryRuleSubject : ruleSubject EOF ; + public final void entryRuleSubject() throws RecognitionException { + try { + // InternalFiacre.g:3637:1: ( ruleSubject EOF ) + // InternalFiacre.g:3638:1: ruleSubject EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubjectRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleSubject(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSubjectRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleSubject" + + + // $ANTLR start "ruleSubject" + // InternalFiacre.g:3645:1: ruleSubject : ( ( rule__Subject__Alternatives ) ) ; + public final void ruleSubject() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3649:2: ( ( ( rule__Subject__Alternatives ) ) ) + // InternalFiacre.g:3650:2: ( ( rule__Subject__Alternatives ) ) + { + // InternalFiacre.g:3650:2: ( ( rule__Subject__Alternatives ) ) + // InternalFiacre.g:3651:3: ( rule__Subject__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubjectAccess().getAlternatives()); + } + // InternalFiacre.g:3652:3: ( rule__Subject__Alternatives ) + // InternalFiacre.g:3652:4: rule__Subject__Alternatives + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Subject__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSubjectAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleSubject" + + + // $ANTLR start "entryRuleStateSubject" + // InternalFiacre.g:3661:1: entryRuleStateSubject : ruleStateSubject EOF ; + public final void entryRuleStateSubject() throws RecognitionException { + try { + // InternalFiacre.g:3662:1: ( ruleStateSubject EOF ) + // InternalFiacre.g:3663:1: ruleStateSubject EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateSubjectRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleStateSubject(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStateSubjectRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleStateSubject" + + + // $ANTLR start "ruleStateSubject" + // InternalFiacre.g:3670:1: ruleStateSubject : ( ( rule__StateSubject__Group__0 ) ) ; + public final void ruleStateSubject() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3674:2: ( ( ( rule__StateSubject__Group__0 ) ) ) + // InternalFiacre.g:3675:2: ( ( rule__StateSubject__Group__0 ) ) + { + // InternalFiacre.g:3675:2: ( ( rule__StateSubject__Group__0 ) ) + // InternalFiacre.g:3676:3: ( rule__StateSubject__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateSubjectAccess().getGroup()); + } + // InternalFiacre.g:3677:3: ( rule__StateSubject__Group__0 ) + // InternalFiacre.g:3677:4: rule__StateSubject__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StateSubject__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStateSubjectAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleStateSubject" + + + // $ANTLR start "entryRuleValueSubject" + // InternalFiacre.g:3686:1: entryRuleValueSubject : ruleValueSubject EOF ; + public final void entryRuleValueSubject() throws RecognitionException { + try { + // InternalFiacre.g:3687:1: ( ruleValueSubject EOF ) + // InternalFiacre.g:3688:1: ruleValueSubject EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getValueSubjectRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleValueSubject(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getValueSubjectRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleValueSubject" + + + // $ANTLR start "ruleValueSubject" + // InternalFiacre.g:3695:1: ruleValueSubject : ( ( rule__ValueSubject__Group__0 ) ) ; + public final void ruleValueSubject() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3699:2: ( ( ( rule__ValueSubject__Group__0 ) ) ) + // InternalFiacre.g:3700:2: ( ( rule__ValueSubject__Group__0 ) ) + { + // InternalFiacre.g:3700:2: ( ( rule__ValueSubject__Group__0 ) ) + // InternalFiacre.g:3701:3: ( rule__ValueSubject__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getValueSubjectAccess().getGroup()); + } + // InternalFiacre.g:3702:3: ( rule__ValueSubject__Group__0 ) + // InternalFiacre.g:3702:4: rule__ValueSubject__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ValueSubject__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getValueSubjectAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleValueSubject" + + + // $ANTLR start "entryRuleTagSubject" + // InternalFiacre.g:3711:1: entryRuleTagSubject : ruleTagSubject EOF ; + public final void entryRuleTagSubject() throws RecognitionException { + try { + // InternalFiacre.g:3712:1: ( ruleTagSubject EOF ) + // InternalFiacre.g:3713:1: ruleTagSubject EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTagSubjectRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleTagSubject(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTagSubjectRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleTagSubject" + + + // $ANTLR start "ruleTagSubject" + // InternalFiacre.g:3720:1: ruleTagSubject : ( ( rule__TagSubject__Group__0 ) ) ; + public final void ruleTagSubject() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3724:2: ( ( ( rule__TagSubject__Group__0 ) ) ) + // InternalFiacre.g:3725:2: ( ( rule__TagSubject__Group__0 ) ) + { + // InternalFiacre.g:3725:2: ( ( rule__TagSubject__Group__0 ) ) + // InternalFiacre.g:3726:3: ( rule__TagSubject__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTagSubjectAccess().getGroup()); + } + // InternalFiacre.g:3727:3: ( rule__TagSubject__Group__0 ) + // InternalFiacre.g:3727:4: rule__TagSubject__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TagSubject__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTagSubjectAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleTagSubject" + + + // $ANTLR start "entryRuleEventSubject" + // InternalFiacre.g:3736:1: entryRuleEventSubject : ruleEventSubject EOF ; + public final void entryRuleEventSubject() throws RecognitionException { + try { + // InternalFiacre.g:3737:1: ( ruleEventSubject EOF ) + // InternalFiacre.g:3738:1: ruleEventSubject EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEventSubjectRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + ruleEventSubject(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEventSubjectRule()); + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleEventSubject" + + + // $ANTLR start "ruleEventSubject" + // InternalFiacre.g:3745:1: ruleEventSubject : ( ( rule__EventSubject__Group__0 ) ) ; + public final void ruleEventSubject() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3749:2: ( ( ( rule__EventSubject__Group__0 ) ) ) + // InternalFiacre.g:3750:2: ( ( rule__EventSubject__Group__0 ) ) + { + // InternalFiacre.g:3750:2: ( ( rule__EventSubject__Group__0 ) ) + // InternalFiacre.g:3751:3: ( rule__EventSubject__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEventSubjectAccess().getGroup()); + } + // InternalFiacre.g:3752:3: ( rule__EventSubject__Group__0 ) + // InternalFiacre.g:3752:4: rule__EventSubject__Group__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__EventSubject__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getEventSubjectAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleEventSubject" + + + // $ANTLR start "rule__Model__Alternatives_2" + // InternalFiacre.g:3760:1: rule__Model__Alternatives_2 : ( ( ( rule__Model__DeclarationsAssignment_2_0 ) ) | ( ( rule__Model__RequirementsAssignment_2_1 ) ) | ( ( rule__Model__RootAssignment_2_2 ) ) ); + public final void rule__Model__Alternatives_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3764:1: ( ( ( rule__Model__DeclarationsAssignment_2_0 ) ) | ( ( rule__Model__RequirementsAssignment_2_1 ) ) | ( ( rule__Model__RootAssignment_2_2 ) ) ) + int alt2=3; + switch ( input.LA(1) ) { + case 19: + case 26: + case 27: + case 39: + case 40: + case 48: + case 112: + { + alt2=1; + } + break; + case 109: + { + alt2=2; + } + break; + case RULE_ID: + { + alt2=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); + + throw nvae; + } + + switch (alt2) { + case 1 : + // InternalFiacre.g:3765:2: ( ( rule__Model__DeclarationsAssignment_2_0 ) ) + { + // InternalFiacre.g:3765:2: ( ( rule__Model__DeclarationsAssignment_2_0 ) ) + // InternalFiacre.g:3766:3: ( rule__Model__DeclarationsAssignment_2_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getDeclarationsAssignment_2_0()); + } + // InternalFiacre.g:3767:3: ( rule__Model__DeclarationsAssignment_2_0 ) + // InternalFiacre.g:3767:4: rule__Model__DeclarationsAssignment_2_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Model__DeclarationsAssignment_2_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getDeclarationsAssignment_2_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:3771:2: ( ( rule__Model__RequirementsAssignment_2_1 ) ) + { + // InternalFiacre.g:3771:2: ( ( rule__Model__RequirementsAssignment_2_1 ) ) + // InternalFiacre.g:3772:3: ( rule__Model__RequirementsAssignment_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getRequirementsAssignment_2_1()); + } + // InternalFiacre.g:3773:3: ( rule__Model__RequirementsAssignment_2_1 ) + // InternalFiacre.g:3773:4: rule__Model__RequirementsAssignment_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Model__RequirementsAssignment_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getRequirementsAssignment_2_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:3777:2: ( ( rule__Model__RootAssignment_2_2 ) ) + { + // InternalFiacre.g:3777:2: ( ( rule__Model__RootAssignment_2_2 ) ) + // InternalFiacre.g:3778:3: ( rule__Model__RootAssignment_2_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getRootAssignment_2_2()); + } + // InternalFiacre.g:3779:3: ( rule__Model__RootAssignment_2_2 ) + // InternalFiacre.g:3779:4: rule__Model__RootAssignment_2_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Model__RootAssignment_2_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getRootAssignment_2_2()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__Alternatives_2" + + + // $ANTLR start "rule__Declaration__Alternatives" + // InternalFiacre.g:3787:1: rule__Declaration__Alternatives : ( ( ruleTypeDeclaration ) | ( ruleChannelDeclaration ) | ( ruleConstantDeclaration ) | ( ruleParameterizedDeclaration ) | ( rulePropertyDeclaration ) ); + public final void rule__Declaration__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3791:1: ( ( ruleTypeDeclaration ) | ( ruleChannelDeclaration ) | ( ruleConstantDeclaration ) | ( ruleParameterizedDeclaration ) | ( rulePropertyDeclaration ) ) + int alt3=5; + switch ( input.LA(1) ) { + case 26: + { + alt3=1; + } + break; + case 27: + { + alt3=2; + } + break; + case 39: + { + alt3=3; + } + break; + case 19: + case 40: + case 48: + { + alt3=4; + } + break; + case 112: + { + alt3=5; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 3, 0, input); + + throw nvae; + } + + switch (alt3) { + case 1 : + // InternalFiacre.g:3792:2: ( ruleTypeDeclaration ) + { + // InternalFiacre.g:3792:2: ( ruleTypeDeclaration ) + // InternalFiacre.g:3793:3: ruleTypeDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeclarationAccess().getTypeDeclarationParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleTypeDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDeclarationAccess().getTypeDeclarationParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:3798:2: ( ruleChannelDeclaration ) + { + // InternalFiacre.g:3798:2: ( ruleChannelDeclaration ) + // InternalFiacre.g:3799:3: ruleChannelDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeclarationAccess().getChannelDeclarationParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleChannelDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDeclarationAccess().getChannelDeclarationParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:3804:2: ( ruleConstantDeclaration ) + { + // InternalFiacre.g:3804:2: ( ruleConstantDeclaration ) + // InternalFiacre.g:3805:3: ruleConstantDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeclarationAccess().getConstantDeclarationParserRuleCall_2()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleConstantDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDeclarationAccess().getConstantDeclarationParserRuleCall_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:3810:2: ( ruleParameterizedDeclaration ) + { + // InternalFiacre.g:3810:2: ( ruleParameterizedDeclaration ) + // InternalFiacre.g:3811:3: ruleParameterizedDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeclarationAccess().getParameterizedDeclarationParserRuleCall_3()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleParameterizedDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDeclarationAccess().getParameterizedDeclarationParserRuleCall_3()); + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:3816:2: ( rulePropertyDeclaration ) + { + // InternalFiacre.g:3816:2: ( rulePropertyDeclaration ) + // InternalFiacre.g:3817:3: rulePropertyDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeclarationAccess().getPropertyDeclarationParserRuleCall_4()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePropertyDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDeclarationAccess().getPropertyDeclarationParserRuleCall_4()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Declaration__Alternatives" + + + // $ANTLR start "rule__ParameterizedDeclaration__Alternatives" + // InternalFiacre.g:3826:1: rule__ParameterizedDeclaration__Alternatives : ( ( ruleProcessDeclaration ) | ( ruleComponentDeclaration ) | ( ruleFunctionDeclaration ) ); + public final void rule__ParameterizedDeclaration__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3830:1: ( ( ruleProcessDeclaration ) | ( ruleComponentDeclaration ) | ( ruleFunctionDeclaration ) ) + int alt4=3; + switch ( input.LA(1) ) { + case 40: + { + alt4=1; + } + break; + case 48: + { + alt4=2; + } + break; + case 19: + { + alt4=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 4, 0, input); + + throw nvae; + } + + switch (alt4) { + case 1 : + // InternalFiacre.g:3831:2: ( ruleProcessDeclaration ) + { + // InternalFiacre.g:3831:2: ( ruleProcessDeclaration ) + // InternalFiacre.g:3832:3: ruleProcessDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterizedDeclarationAccess().getProcessDeclarationParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleProcessDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterizedDeclarationAccess().getProcessDeclarationParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:3837:2: ( ruleComponentDeclaration ) + { + // InternalFiacre.g:3837:2: ( ruleComponentDeclaration ) + // InternalFiacre.g:3838:3: ruleComponentDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterizedDeclarationAccess().getComponentDeclarationParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleComponentDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterizedDeclarationAccess().getComponentDeclarationParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:3843:2: ( ruleFunctionDeclaration ) + { + // InternalFiacre.g:3843:2: ( ruleFunctionDeclaration ) + // InternalFiacre.g:3844:3: ruleFunctionDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterizedDeclarationAccess().getFunctionDeclarationParserRuleCall_2()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleFunctionDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterizedDeclarationAccess().getFunctionDeclarationParserRuleCall_2()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterizedDeclaration__Alternatives" + + + // $ANTLR start "rule__ChannelType__Alternatives_2" + // InternalFiacre.g:3853:1: rule__ChannelType__Alternatives_2 : ( ( ( rule__ChannelType__Group_2_0__0 ) ) | ( 'none' ) | ( 'sync' ) ); + public final void rule__ChannelType__Alternatives_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3857:1: ( ( ( rule__ChannelType__Group_2_0__0 ) ) | ( 'none' ) | ( 'sync' ) ) + int alt5=3; + switch ( input.LA(1) ) { + case RULE_ID: + case RULE_INT: + case 14: + case 22: + case 28: + case 31: + case 32: + case 33: + case 35: + case 37: + case 38: + case 42: + case 49: + case 77: + case 78: + case 87: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + case 99: + case 100: + case 102: + case 104: + case 105: + case 106: + case 107: + case 137: + { + alt5=1; + } + break; + case 12: + { + int LA5_2 = input.LA(2); + + if ( (synpred10_InternalFiacre()) ) { + alt5=1; + } + else if ( (synpred11_InternalFiacre()) ) { + alt5=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 5, 2, input); + + throw nvae; + } + } + break; + case 13: + { + alt5=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + } + + switch (alt5) { + case 1 : + // InternalFiacre.g:3858:2: ( ( rule__ChannelType__Group_2_0__0 ) ) + { + // InternalFiacre.g:3858:2: ( ( rule__ChannelType__Group_2_0__0 ) ) + // InternalFiacre.g:3859:3: ( rule__ChannelType__Group_2_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getGroup_2_0()); + } + // InternalFiacre.g:3860:3: ( rule__ChannelType__Group_2_0__0 ) + // InternalFiacre.g:3860:4: rule__ChannelType__Group_2_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_2_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getGroup_2_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:3864:2: ( 'none' ) + { + // InternalFiacre.g:3864:2: ( 'none' ) + // InternalFiacre.g:3865:3: 'none' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getNoneKeyword_2_1()); + } + match(input,12,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getNoneKeyword_2_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:3870:2: ( 'sync' ) + { + // InternalFiacre.g:3870:2: ( 'sync' ) + // InternalFiacre.g:3871:3: 'sync' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getSyncKeyword_2_2()); + } + match(input,13,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getSyncKeyword_2_2()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Alternatives_2" + + + // $ANTLR start "rule__ChannelType__Alternatives_2_0_0" + // InternalFiacre.g:3880:1: rule__ChannelType__Alternatives_2_0_0 : ( ( ( rule__ChannelType__Group_2_0_0_0__0 ) ) | ( ( rule__ChannelType__OutAssignment_2_0_0_1 ) ) ); + public final void rule__ChannelType__Alternatives_2_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3884:1: ( ( ( rule__ChannelType__Group_2_0_0_0__0 ) ) | ( ( rule__ChannelType__OutAssignment_2_0_0_1 ) ) ) + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==49) ) { + alt6=1; + } + else if ( (LA6_0==137) ) { + alt6=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + } + switch (alt6) { + case 1 : + // InternalFiacre.g:3885:2: ( ( rule__ChannelType__Group_2_0_0_0__0 ) ) + { + // InternalFiacre.g:3885:2: ( ( rule__ChannelType__Group_2_0_0_0__0 ) ) + // InternalFiacre.g:3886:3: ( rule__ChannelType__Group_2_0_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getGroup_2_0_0_0()); + } + // InternalFiacre.g:3887:3: ( rule__ChannelType__Group_2_0_0_0__0 ) + // InternalFiacre.g:3887:4: rule__ChannelType__Group_2_0_0_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_2_0_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getGroup_2_0_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:3891:2: ( ( rule__ChannelType__OutAssignment_2_0_0_1 ) ) + { + // InternalFiacre.g:3891:2: ( ( rule__ChannelType__OutAssignment_2_0_0_1 ) ) + // InternalFiacre.g:3892:3: ( rule__ChannelType__OutAssignment_2_0_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getOutAssignment_2_0_0_1()); + } + // InternalFiacre.g:3893:3: ( rule__ChannelType__OutAssignment_2_0_0_1 ) + // InternalFiacre.g:3893:4: rule__ChannelType__OutAssignment_2_0_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__OutAssignment_2_0_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getOutAssignment_2_0_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Alternatives_2_0_0" + + + // $ANTLR start "rule__ChannelType__Alternatives_2_0_1" + // InternalFiacre.g:3901:1: rule__ChannelType__Alternatives_2_0_1 : ( ( ( rule__ChannelType__TypeAssignment_2_0_1_0 ) ) | ( 'none' ) ); + public final void rule__ChannelType__Alternatives_2_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3905:1: ( ( ( rule__ChannelType__TypeAssignment_2_0_1_0 ) ) | ( 'none' ) ) + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==RULE_ID||LA7_0==RULE_INT||LA7_0==14||LA7_0==22||LA7_0==28||(LA7_0>=31 && LA7_0<=33)||LA7_0==35||(LA7_0>=37 && LA7_0<=38)||LA7_0==42||(LA7_0>=77 && LA7_0<=78)||LA7_0==87||(LA7_0>=91 && LA7_0<=97)||(LA7_0>=99 && LA7_0<=100)||LA7_0==102||(LA7_0>=104 && LA7_0<=107)) ) { + alt7=1; + } + else if ( (LA7_0==12) ) { + alt7=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + } + switch (alt7) { + case 1 : + // InternalFiacre.g:3906:2: ( ( rule__ChannelType__TypeAssignment_2_0_1_0 ) ) + { + // InternalFiacre.g:3906:2: ( ( rule__ChannelType__TypeAssignment_2_0_1_0 ) ) + // InternalFiacre.g:3907:3: ( rule__ChannelType__TypeAssignment_2_0_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getTypeAssignment_2_0_1_0()); + } + // InternalFiacre.g:3908:3: ( rule__ChannelType__TypeAssignment_2_0_1_0 ) + // InternalFiacre.g:3908:4: rule__ChannelType__TypeAssignment_2_0_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__TypeAssignment_2_0_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getTypeAssignment_2_0_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:3912:2: ( 'none' ) + { + // InternalFiacre.g:3912:2: ( 'none' ) + // InternalFiacre.g:3913:3: 'none' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getNoneKeyword_2_0_1_1()); + } + match(input,12,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getNoneKeyword_2_0_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Alternatives_2_0_1" + + + // $ANTLR start "rule__Type__Alternatives" + // InternalFiacre.g:3922:1: rule__Type__Alternatives : ( ( ruleBasicType ) | ( ruleRangeType ) | ( ruleUnionType ) | ( ruleRecordType ) | ( ruleQueueType ) | ( ruleArrayType ) | ( ruleReferencedType ) ); + public final void rule__Type__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3926:1: ( ( ruleBasicType ) | ( ruleRangeType ) | ( ruleUnionType ) | ( ruleRecordType ) | ( ruleQueueType ) | ( ruleArrayType ) | ( ruleReferencedType ) ) + int alt8=7; + alt8 = dfa8.predict(input); + switch (alt8) { + case 1 : + // InternalFiacre.g:3927:2: ( ruleBasicType ) + { + // InternalFiacre.g:3927:2: ( ruleBasicType ) + // InternalFiacre.g:3928:3: ruleBasicType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeAccess().getBasicTypeParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleBasicType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeAccess().getBasicTypeParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:3933:2: ( ruleRangeType ) + { + // InternalFiacre.g:3933:2: ( ruleRangeType ) + // InternalFiacre.g:3934:3: ruleRangeType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeAccess().getRangeTypeParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRangeType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeAccess().getRangeTypeParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:3939:2: ( ruleUnionType ) + { + // InternalFiacre.g:3939:2: ( ruleUnionType ) + // InternalFiacre.g:3940:3: ruleUnionType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeAccess().getUnionTypeParserRuleCall_2()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUnionType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeAccess().getUnionTypeParserRuleCall_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:3945:2: ( ruleRecordType ) + { + // InternalFiacre.g:3945:2: ( ruleRecordType ) + // InternalFiacre.g:3946:3: ruleRecordType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeAccess().getRecordTypeParserRuleCall_3()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRecordType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeAccess().getRecordTypeParserRuleCall_3()); + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:3951:2: ( ruleQueueType ) + { + // InternalFiacre.g:3951:2: ( ruleQueueType ) + // InternalFiacre.g:3952:3: ruleQueueType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeAccess().getQueueTypeParserRuleCall_4()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleQueueType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeAccess().getQueueTypeParserRuleCall_4()); + } + + } + + + } + break; + case 6 : + // InternalFiacre.g:3957:2: ( ruleArrayType ) + { + // InternalFiacre.g:3957:2: ( ruleArrayType ) + // InternalFiacre.g:3958:3: ruleArrayType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeAccess().getArrayTypeParserRuleCall_5()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleArrayType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeAccess().getArrayTypeParserRuleCall_5()); + } + + } + + + } + break; + case 7 : + // InternalFiacre.g:3963:2: ( ruleReferencedType ) + { + // InternalFiacre.g:3963:2: ( ruleReferencedType ) + // InternalFiacre.g:3964:3: ruleReferencedType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeAccess().getReferencedTypeParserRuleCall_6()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleReferencedType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeAccess().getReferencedTypeParserRuleCall_6()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Type__Alternatives" + + + // $ANTLR start "rule__BasicType__Alternatives" + // InternalFiacre.g:3973:1: rule__BasicType__Alternatives : ( ( ( rule__BasicType__Group_0__0 ) ) | ( ( rule__BasicType__Group_1__0 ) ) | ( ( rule__BasicType__Group_2__0 ) ) ); + public final void rule__BasicType__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:3977:1: ( ( ( rule__BasicType__Group_0__0 ) ) | ( ( rule__BasicType__Group_1__0 ) ) | ( ( rule__BasicType__Group_2__0 ) ) ) + int alt9=3; + switch ( input.LA(1) ) { + case 31: + { + alt9=1; + } + break; + case 32: + { + alt9=2; + } + break; + case 33: + { + alt9=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 9, 0, input); + + throw nvae; + } + + switch (alt9) { + case 1 : + // InternalFiacre.g:3978:2: ( ( rule__BasicType__Group_0__0 ) ) + { + // InternalFiacre.g:3978:2: ( ( rule__BasicType__Group_0__0 ) ) + // InternalFiacre.g:3979:3: ( rule__BasicType__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeAccess().getGroup_0()); + } + // InternalFiacre.g:3980:3: ( rule__BasicType__Group_0__0 ) + // InternalFiacre.g:3980:4: rule__BasicType__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BasicType__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:3984:2: ( ( rule__BasicType__Group_1__0 ) ) + { + // InternalFiacre.g:3984:2: ( ( rule__BasicType__Group_1__0 ) ) + // InternalFiacre.g:3985:3: ( rule__BasicType__Group_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeAccess().getGroup_1()); + } + // InternalFiacre.g:3986:3: ( rule__BasicType__Group_1__0 ) + // InternalFiacre.g:3986:4: rule__BasicType__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BasicType__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeAccess().getGroup_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:3990:2: ( ( rule__BasicType__Group_2__0 ) ) + { + // InternalFiacre.g:3990:2: ( ( rule__BasicType__Group_2__0 ) ) + // InternalFiacre.g:3991:3: ( rule__BasicType__Group_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeAccess().getGroup_2()); + } + // InternalFiacre.g:3992:3: ( rule__BasicType__Group_2__0 ) + // InternalFiacre.g:3992:4: rule__BasicType__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BasicType__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeAccess().getGroup_2()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BasicType__Alternatives" + + + // $ANTLR start "rule__Statement__Alternatives" + // InternalFiacre.g:4000:1: rule__Statement__Alternatives : ( ( ruleNullStatement ) | ( ruleTaggedStatement ) | ( rulePatternStatement ) | ( ruleConditionalStatement ) | ( ruleSelectStatement ) | ( ruleWhileStatement ) | ( ruleForeachStatement ) | ( ruleToStatement ) | ( ruleCaseStatement ) | ( ruleLoopStatement ) | ( ruleOnStatement ) | ( ruleWaitStatement ) | ( ruleReturnStatement ) | ( ruleBlockStatement ) ); + public final void rule__Statement__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4004:1: ( ( ruleNullStatement ) | ( ruleTaggedStatement ) | ( rulePatternStatement ) | ( ruleConditionalStatement ) | ( ruleSelectStatement ) | ( ruleWhileStatement ) | ( ruleForeachStatement ) | ( ruleToStatement ) | ( ruleCaseStatement ) | ( ruleLoopStatement ) | ( ruleOnStatement ) | ( ruleWaitStatement ) | ( ruleReturnStatement ) | ( ruleBlockStatement ) ) + int alt10=14; + switch ( input.LA(1) ) { + case 56: + { + alt10=1; + } + break; + case 30: + { + alt10=2; + } + break; + case RULE_ID: + case RULE_INT: + case 14: + case 22: + case 57: + case 87: + case 106: + case 107: + { + alt10=3; + } + break; + case 62: + { + alt10=4; + } + break; + case 66: + { + alt10=5; + } + break; + case 67: + { + alt10=6; + } + break; + case 69: + { + alt10=7; + } + break; + case 70: + { + alt10=8; + } + break; + case 71: + { + alt10=9; + } + break; + case 72: + { + alt10=10; + } + break; + case 73: + { + alt10=11; + } + break; + case 74: + { + alt10=12; + } + break; + case 55: + { + alt10=13; + } + break; + case 54: + { + alt10=14; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 10, 0, input); + + throw nvae; + } + + switch (alt10) { + case 1 : + // InternalFiacre.g:4005:2: ( ruleNullStatement ) + { + // InternalFiacre.g:4005:2: ( ruleNullStatement ) + // InternalFiacre.g:4006:3: ruleNullStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getNullStatementParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleNullStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getNullStatementParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4011:2: ( ruleTaggedStatement ) + { + // InternalFiacre.g:4011:2: ( ruleTaggedStatement ) + // InternalFiacre.g:4012:3: ruleTaggedStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getTaggedStatementParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleTaggedStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getTaggedStatementParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:4017:2: ( rulePatternStatement ) + { + // InternalFiacre.g:4017:2: ( rulePatternStatement ) + // InternalFiacre.g:4018:3: rulePatternStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getPatternStatementParserRuleCall_2()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePatternStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getPatternStatementParserRuleCall_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:4023:2: ( ruleConditionalStatement ) + { + // InternalFiacre.g:4023:2: ( ruleConditionalStatement ) + // InternalFiacre.g:4024:3: ruleConditionalStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getConditionalStatementParserRuleCall_3()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleConditionalStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getConditionalStatementParserRuleCall_3()); + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:4029:2: ( ruleSelectStatement ) + { + // InternalFiacre.g:4029:2: ( ruleSelectStatement ) + // InternalFiacre.g:4030:3: ruleSelectStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getSelectStatementParserRuleCall_4()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleSelectStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getSelectStatementParserRuleCall_4()); + } + + } + + + } + break; + case 6 : + // InternalFiacre.g:4035:2: ( ruleWhileStatement ) + { + // InternalFiacre.g:4035:2: ( ruleWhileStatement ) + // InternalFiacre.g:4036:3: ruleWhileStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getWhileStatementParserRuleCall_5()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleWhileStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getWhileStatementParserRuleCall_5()); + } + + } + + + } + break; + case 7 : + // InternalFiacre.g:4041:2: ( ruleForeachStatement ) + { + // InternalFiacre.g:4041:2: ( ruleForeachStatement ) + // InternalFiacre.g:4042:3: ruleForeachStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getForeachStatementParserRuleCall_6()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleForeachStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getForeachStatementParserRuleCall_6()); + } + + } + + + } + break; + case 8 : + // InternalFiacre.g:4047:2: ( ruleToStatement ) + { + // InternalFiacre.g:4047:2: ( ruleToStatement ) + // InternalFiacre.g:4048:3: ruleToStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getToStatementParserRuleCall_7()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleToStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getToStatementParserRuleCall_7()); + } + + } + + + } + break; + case 9 : + // InternalFiacre.g:4053:2: ( ruleCaseStatement ) + { + // InternalFiacre.g:4053:2: ( ruleCaseStatement ) + // InternalFiacre.g:4054:3: ruleCaseStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getCaseStatementParserRuleCall_8()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleCaseStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getCaseStatementParserRuleCall_8()); + } + + } + + + } + break; + case 10 : + // InternalFiacre.g:4059:2: ( ruleLoopStatement ) + { + // InternalFiacre.g:4059:2: ( ruleLoopStatement ) + // InternalFiacre.g:4060:3: ruleLoopStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getLoopStatementParserRuleCall_9()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLoopStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getLoopStatementParserRuleCall_9()); + } + + } + + + } + break; + case 11 : + // InternalFiacre.g:4065:2: ( ruleOnStatement ) + { + // InternalFiacre.g:4065:2: ( ruleOnStatement ) + // InternalFiacre.g:4066:3: ruleOnStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getOnStatementParserRuleCall_10()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleOnStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getOnStatementParserRuleCall_10()); + } + + } + + + } + break; + case 12 : + // InternalFiacre.g:4071:2: ( ruleWaitStatement ) + { + // InternalFiacre.g:4071:2: ( ruleWaitStatement ) + // InternalFiacre.g:4072:3: ruleWaitStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getWaitStatementParserRuleCall_11()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleWaitStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getWaitStatementParserRuleCall_11()); + } + + } + + + } + break; + case 13 : + // InternalFiacre.g:4077:2: ( ruleReturnStatement ) + { + // InternalFiacre.g:4077:2: ( ruleReturnStatement ) + // InternalFiacre.g:4078:3: ruleReturnStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getReturnStatementParserRuleCall_12()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleReturnStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getReturnStatementParserRuleCall_12()); + } + + } + + + } + break; + case 14 : + // InternalFiacre.g:4083:2: ( ruleBlockStatement ) + { + // InternalFiacre.g:4083:2: ( ruleBlockStatement ) + // InternalFiacre.g:4084:3: ruleBlockStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementAccess().getBlockStatementParserRuleCall_13()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleBlockStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementAccess().getBlockStatementParserRuleCall_13()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Statement__Alternatives" + + + // $ANTLR start "rule__PatternStatement__Alternatives_1" + // InternalFiacre.g:4093:1: rule__PatternStatement__Alternatives_1 : ( ( ( rule__PatternStatement__Group_1_0__0 ) ) | ( ( rule__PatternStatement__Group_1_1__0 ) ) | ( ( rule__PatternStatement__Group_1_2__0 ) ) | ( ( rule__PatternStatement__Group_1_3__0 ) ) | ( ( rule__PatternStatement__Group_1_4__0 ) ) | ( ( rule__PatternStatement__Group_1_5__0 ) ) ); + public final void rule__PatternStatement__Alternatives_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4097:1: ( ( ( rule__PatternStatement__Group_1_0__0 ) ) | ( ( rule__PatternStatement__Group_1_1__0 ) ) | ( ( rule__PatternStatement__Group_1_2__0 ) ) | ( ( rule__PatternStatement__Group_1_3__0 ) ) | ( ( rule__PatternStatement__Group_1_4__0 ) ) | ( ( rule__PatternStatement__Group_1_5__0 ) ) ) + int alt11=6; + switch ( input.LA(1) ) { + case 24: + { + int LA11_1 = input.LA(2); + + if ( (synpred35_InternalFiacre()) ) { + alt11=1; + } + else if ( (synpred37_InternalFiacre()) ) { + alt11=3; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 11, 1, input); + + throw nvae; + } + } + break; + case 50: + { + int LA11_2 = input.LA(2); + + if ( (synpred36_InternalFiacre()) ) { + alt11=2; + } + else if ( (synpred38_InternalFiacre()) ) { + alt11=4; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 11, 2, input); + + throw nvae; + } + } + break; + case 59: + { + alt11=5; + } + break; + case 60: + { + alt11=6; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 11, 0, input); + + throw nvae; + } + + switch (alt11) { + case 1 : + // InternalFiacre.g:4098:2: ( ( rule__PatternStatement__Group_1_0__0 ) ) + { + // InternalFiacre.g:4098:2: ( ( rule__PatternStatement__Group_1_0__0 ) ) + // InternalFiacre.g:4099:3: ( rule__PatternStatement__Group_1_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_0()); + } + // InternalFiacre.g:4100:3: ( rule__PatternStatement__Group_1_0__0 ) + // InternalFiacre.g:4100:4: rule__PatternStatement__Group_1_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4104:2: ( ( rule__PatternStatement__Group_1_1__0 ) ) + { + // InternalFiacre.g:4104:2: ( ( rule__PatternStatement__Group_1_1__0 ) ) + // InternalFiacre.g:4105:3: ( rule__PatternStatement__Group_1_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_1()); + } + // InternalFiacre.g:4106:3: ( rule__PatternStatement__Group_1_1__0 ) + // InternalFiacre.g:4106:4: rule__PatternStatement__Group_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:4110:2: ( ( rule__PatternStatement__Group_1_2__0 ) ) + { + // InternalFiacre.g:4110:2: ( ( rule__PatternStatement__Group_1_2__0 ) ) + // InternalFiacre.g:4111:3: ( rule__PatternStatement__Group_1_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_2()); + } + // InternalFiacre.g:4112:3: ( rule__PatternStatement__Group_1_2__0 ) + // InternalFiacre.g:4112:4: rule__PatternStatement__Group_1_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:4116:2: ( ( rule__PatternStatement__Group_1_3__0 ) ) + { + // InternalFiacre.g:4116:2: ( ( rule__PatternStatement__Group_1_3__0 ) ) + // InternalFiacre.g:4117:3: ( rule__PatternStatement__Group_1_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_3()); + } + // InternalFiacre.g:4118:3: ( rule__PatternStatement__Group_1_3__0 ) + // InternalFiacre.g:4118:4: rule__PatternStatement__Group_1_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_3()); + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:4122:2: ( ( rule__PatternStatement__Group_1_4__0 ) ) + { + // InternalFiacre.g:4122:2: ( ( rule__PatternStatement__Group_1_4__0 ) ) + // InternalFiacre.g:4123:3: ( rule__PatternStatement__Group_1_4__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_4()); + } + // InternalFiacre.g:4124:3: ( rule__PatternStatement__Group_1_4__0 ) + // InternalFiacre.g:4124:4: rule__PatternStatement__Group_1_4__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_4()); + } + + } + + + } + break; + case 6 : + // InternalFiacre.g:4128:2: ( ( rule__PatternStatement__Group_1_5__0 ) ) + { + // InternalFiacre.g:4128:2: ( ( rule__PatternStatement__Group_1_5__0 ) ) + // InternalFiacre.g:4129:3: ( rule__PatternStatement__Group_1_5__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_5()); + } + // InternalFiacre.g:4130:3: ( rule__PatternStatement__Group_1_5__0 ) + // InternalFiacre.g:4130:4: rule__PatternStatement__Group_1_5__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_5()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Alternatives_1" + + + // $ANTLR start "rule__Pattern__Alternatives" + // InternalFiacre.g:4138:1: rule__Pattern__Alternatives : ( ( ruleAnyPattern ) | ( ruleIntegerPattern ) | ( ruleConstantPattern ) | ( ( rule__Pattern__Group_3__0 ) ) | ( ruleIdentifierPattern ) ); + public final void rule__Pattern__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4142:1: ( ( ruleAnyPattern ) | ( ruleIntegerPattern ) | ( ruleConstantPattern ) | ( ( rule__Pattern__Group_3__0 ) ) | ( ruleIdentifierPattern ) ) + int alt12=5; + switch ( input.LA(1) ) { + case 57: + { + alt12=1; + } + break; + case 14: + case 87: + { + alt12=2; + } + break; + case RULE_INT: + case 106: + case 107: + { + alt12=3; + } + break; + case 22: + { + alt12=4; + } + break; + case RULE_ID: + { + alt12=5; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 12, 0, input); + + throw nvae; + } + + switch (alt12) { + case 1 : + // InternalFiacre.g:4143:2: ( ruleAnyPattern ) + { + // InternalFiacre.g:4143:2: ( ruleAnyPattern ) + // InternalFiacre.g:4144:3: ruleAnyPattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternAccess().getAnyPatternParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAnyPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternAccess().getAnyPatternParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4149:2: ( ruleIntegerPattern ) + { + // InternalFiacre.g:4149:2: ( ruleIntegerPattern ) + // InternalFiacre.g:4150:3: ruleIntegerPattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternAccess().getIntegerPatternParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleIntegerPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternAccess().getIntegerPatternParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:4155:2: ( ruleConstantPattern ) + { + // InternalFiacre.g:4155:2: ( ruleConstantPattern ) + // InternalFiacre.g:4156:3: ruleConstantPattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternAccess().getConstantPatternParserRuleCall_2()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleConstantPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternAccess().getConstantPatternParserRuleCall_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:4161:2: ( ( rule__Pattern__Group_3__0 ) ) + { + // InternalFiacre.g:4161:2: ( ( rule__Pattern__Group_3__0 ) ) + // InternalFiacre.g:4162:3: ( rule__Pattern__Group_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternAccess().getGroup_3()); + } + // InternalFiacre.g:4163:3: ( rule__Pattern__Group_3__0 ) + // InternalFiacre.g:4163:4: rule__Pattern__Group_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Pattern__Group_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternAccess().getGroup_3()); + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:4167:2: ( ruleIdentifierPattern ) + { + // InternalFiacre.g:4167:2: ( ruleIdentifierPattern ) + // InternalFiacre.g:4168:3: ruleIdentifierPattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternAccess().getIdentifierPatternParserRuleCall_4()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleIdentifierPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternAccess().getIdentifierPatternParserRuleCall_4()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Pattern__Alternatives" + + + // $ANTLR start "rule__IntegerPattern__Alternatives_0" + // InternalFiacre.g:4177:1: rule__IntegerPattern__Alternatives_0 : ( ( '+' ) | ( ( rule__IntegerPattern__NegativeAssignment_0_1 ) ) ); + public final void rule__IntegerPattern__Alternatives_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4181:1: ( ( '+' ) | ( ( rule__IntegerPattern__NegativeAssignment_0_1 ) ) ) + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==14) ) { + alt13=1; + } + else if ( (LA13_0==87) ) { + alt13=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 13, 0, input); + + throw nvae; + } + switch (alt13) { + case 1 : + // InternalFiacre.g:4182:2: ( '+' ) + { + // InternalFiacre.g:4182:2: ( '+' ) + // InternalFiacre.g:4183:3: '+' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIntegerPatternAccess().getPlusSignKeyword_0_0()); + } + match(input,14,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIntegerPatternAccess().getPlusSignKeyword_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4188:2: ( ( rule__IntegerPattern__NegativeAssignment_0_1 ) ) + { + // InternalFiacre.g:4188:2: ( ( rule__IntegerPattern__NegativeAssignment_0_1 ) ) + // InternalFiacre.g:4189:3: ( rule__IntegerPattern__NegativeAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIntegerPatternAccess().getNegativeAssignment_0_1()); + } + // InternalFiacre.g:4190:3: ( rule__IntegerPattern__NegativeAssignment_0_1 ) + // InternalFiacre.g:4190:4: rule__IntegerPattern__NegativeAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IntegerPattern__NegativeAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIntegerPatternAccess().getNegativeAssignment_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IntegerPattern__Alternatives_0" + + + // $ANTLR start "rule__IdentifierPattern__Alternatives" + // InternalFiacre.g:4198:1: rule__IdentifierPattern__Alternatives : ( ( ( rule__IdentifierPattern__Group_0__0 ) ) | ( ( rule__IdentifierPattern__Group_1__0 ) ) ); + public final void rule__IdentifierPattern__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4202:1: ( ( ( rule__IdentifierPattern__Group_0__0 ) ) | ( ( rule__IdentifierPattern__Group_1__0 ) ) ) + int alt14=2; + int LA14_0 = input.LA(1); + + if ( (LA14_0==RULE_ID) ) { + int LA14_1 = input.LA(2); + + if ( (LA14_1==EOF||LA14_1==RULE_ID||LA14_1==15||LA14_1==17||LA14_1==19||(LA14_1>=23 && LA14_1<=24)||(LA14_1>=26 && LA14_1<=27)||LA14_1==36||(LA14_1>=39 && LA14_1<=40)||LA14_1==42||(LA14_1>=47 && LA14_1<=48)||(LA14_1>=50 && LA14_1<=53)||(LA14_1>=58 && LA14_1<=61)||(LA14_1>=64 && LA14_1<=65)||LA14_1==75||LA14_1==109||LA14_1==112) ) { + alt14=2; + } + else if ( (LA14_1==22) ) { + alt14=1; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 14, 1, input); + + throw nvae; + } + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 14, 0, input); + + throw nvae; + } + switch (alt14) { + case 1 : + // InternalFiacre.g:4203:2: ( ( rule__IdentifierPattern__Group_0__0 ) ) + { + // InternalFiacre.g:4203:2: ( ( rule__IdentifierPattern__Group_0__0 ) ) + // InternalFiacre.g:4204:3: ( rule__IdentifierPattern__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getGroup_0()); + } + // InternalFiacre.g:4205:3: ( rule__IdentifierPattern__Group_0__0 ) + // InternalFiacre.g:4205:4: rule__IdentifierPattern__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4209:2: ( ( rule__IdentifierPattern__Group_1__0 ) ) + { + // InternalFiacre.g:4209:2: ( ( rule__IdentifierPattern__Group_1__0 ) ) + // InternalFiacre.g:4210:3: ( rule__IdentifierPattern__Group_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getGroup_1()); + } + // InternalFiacre.g:4211:3: ( rule__IdentifierPattern__Group_1__0 ) + // InternalFiacre.g:4211:4: rule__IdentifierPattern__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getGroup_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Alternatives" + + + // $ANTLR start "rule__IdentifierPattern__Alternatives_1_1" + // InternalFiacre.g:4219:1: rule__IdentifierPattern__Alternatives_1_1 : ( ( ( rule__IdentifierPattern__Group_1_1_0__0 ) ) | ( ( rule__IdentifierPattern__Group_1_1_1__0 ) ) ); + public final void rule__IdentifierPattern__Alternatives_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4223:1: ( ( ( rule__IdentifierPattern__Group_1_1_0__0 ) ) | ( ( rule__IdentifierPattern__Group_1_1_1__0 ) ) ) + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0==42) ) { + alt15=1; + } + else if ( (LA15_0==61) ) { + alt15=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 15, 0, input); + + throw nvae; + } + switch (alt15) { + case 1 : + // InternalFiacre.g:4224:2: ( ( rule__IdentifierPattern__Group_1_1_0__0 ) ) + { + // InternalFiacre.g:4224:2: ( ( rule__IdentifierPattern__Group_1_1_0__0 ) ) + // InternalFiacre.g:4225:3: ( rule__IdentifierPattern__Group_1_1_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getGroup_1_1_0()); + } + // InternalFiacre.g:4226:3: ( rule__IdentifierPattern__Group_1_1_0__0 ) + // InternalFiacre.g:4226:4: rule__IdentifierPattern__Group_1_1_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_1_1_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getGroup_1_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4230:2: ( ( rule__IdentifierPattern__Group_1_1_1__0 ) ) + { + // InternalFiacre.g:4230:2: ( ( rule__IdentifierPattern__Group_1_1_1__0 ) ) + // InternalFiacre.g:4231:3: ( rule__IdentifierPattern__Group_1_1_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getGroup_1_1_1()); + } + // InternalFiacre.g:4232:3: ( rule__IdentifierPattern__Group_1_1_1__0 ) + // InternalFiacre.g:4232:4: rule__IdentifierPattern__Group_1_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_1_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getGroup_1_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Alternatives_1_1" + + + // $ANTLR start "rule__Block__Alternatives" + // InternalFiacre.g:4240:1: rule__Block__Alternatives : ( ( ruleCompositeBlock ) | ( ruleInstanceDeclaration ) ); + public final void rule__Block__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4244:1: ( ( ruleCompositeBlock ) | ( ruleInstanceDeclaration ) ) + int alt16=2; + alt16 = dfa16.predict(input); + switch (alt16) { + case 1 : + // InternalFiacre.g:4245:2: ( ruleCompositeBlock ) + { + // InternalFiacre.g:4245:2: ( ruleCompositeBlock ) + // InternalFiacre.g:4246:3: ruleCompositeBlock + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockAccess().getCompositeBlockParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleCompositeBlock(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBlockAccess().getCompositeBlockParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4251:2: ( ruleInstanceDeclaration ) + { + // InternalFiacre.g:4251:2: ( ruleInstanceDeclaration ) + // InternalFiacre.g:4252:3: ruleInstanceDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockAccess().getInstanceDeclarationParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleInstanceDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBlockAccess().getInstanceDeclarationParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Alternatives" + + + // $ANTLR start "rule__CompositeBlock__Alternatives_0" + // InternalFiacre.g:4261:1: rule__CompositeBlock__Alternatives_0 : ( ( ( rule__CompositeBlock__Group_0_0__0 ) ) | ( '->' ) ); + public final void rule__CompositeBlock__Alternatives_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4265:1: ( ( ( rule__CompositeBlock__Group_0_0__0 ) ) | ( '->' ) ) + int alt17=2; + int LA17_0 = input.LA(1); + + if ( (LA17_0==RULE_ID||LA17_0==RULE_INT||LA17_0==14||LA17_0==22||LA17_0==42||(LA17_0>=77 && LA17_0<=78)||(LA17_0>=87 && LA17_0<=88)||(LA17_0>=91 && LA17_0<=97)||(LA17_0>=99 && LA17_0<=100)||LA17_0==102||(LA17_0>=104 && LA17_0<=107)) ) { + alt17=1; + } + else if ( (LA17_0==15) ) { + alt17=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 17, 0, input); + + throw nvae; + } + switch (alt17) { + case 1 : + // InternalFiacre.g:4266:2: ( ( rule__CompositeBlock__Group_0_0__0 ) ) + { + // InternalFiacre.g:4266:2: ( ( rule__CompositeBlock__Group_0_0__0 ) ) + // InternalFiacre.g:4267:3: ( rule__CompositeBlock__Group_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositeBlockAccess().getGroup_0_0()); + } + // InternalFiacre.g:4268:3: ( rule__CompositeBlock__Group_0_0__0 ) + // InternalFiacre.g:4268:4: rule__CompositeBlock__Group_0_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CompositeBlock__Group_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositeBlockAccess().getGroup_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4272:2: ( '->' ) + { + // InternalFiacre.g:4272:2: ( '->' ) + // InternalFiacre.g:4273:3: '->' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); + } + match(input,15,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompositeBlock__Alternatives_0" + + + // $ANTLR start "rule__InstanceDeclaration__Alternatives_0" + // InternalFiacre.g:4282:1: rule__InstanceDeclaration__Alternatives_0 : ( ( ( rule__InstanceDeclaration__Group_0_0__0 ) ) | ( '->' ) ); + public final void rule__InstanceDeclaration__Alternatives_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4286:1: ( ( ( rule__InstanceDeclaration__Group_0_0__0 ) ) | ( '->' ) ) + int alt18=2; + int LA18_0 = input.LA(1); + + if ( (LA18_0==RULE_ID||LA18_0==RULE_INT||LA18_0==14||LA18_0==22||LA18_0==42||(LA18_0>=77 && LA18_0<=78)||(LA18_0>=87 && LA18_0<=88)||(LA18_0>=91 && LA18_0<=97)||(LA18_0>=99 && LA18_0<=100)||LA18_0==102||(LA18_0>=104 && LA18_0<=107)) ) { + alt18=1; + } + else if ( (LA18_0==15) ) { + alt18=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 18, 0, input); + + throw nvae; + } + switch (alt18) { + case 1 : + // InternalFiacre.g:4287:2: ( ( rule__InstanceDeclaration__Group_0_0__0 ) ) + { + // InternalFiacre.g:4287:2: ( ( rule__InstanceDeclaration__Group_0_0__0 ) ) + // InternalFiacre.g:4288:3: ( rule__InstanceDeclaration__Group_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInstanceDeclarationAccess().getGroup_0_0()); + } + // InternalFiacre.g:4289:3: ( rule__InstanceDeclaration__Group_0_0__0 ) + // InternalFiacre.g:4289:4: rule__InstanceDeclaration__Group_0_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InstanceDeclaration__Group_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getInstanceDeclarationAccess().getGroup_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4293:2: ( '->' ) + { + // InternalFiacre.g:4293:2: ( '->' ) + // InternalFiacre.g:4294:3: '->' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); + } + match(input,15,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InstanceDeclaration__Alternatives_0" + + + // $ANTLR start "rule__PortSet__Alternatives" + // InternalFiacre.g:4303:1: rule__PortSet__Alternatives : ( ( ( rule__PortSet__AllPortsAssignment_0 ) ) | ( ( rule__PortSet__Group_1__0 ) ) ); + public final void rule__PortSet__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4307:1: ( ( ( rule__PortSet__AllPortsAssignment_0 ) ) | ( ( rule__PortSet__Group_1__0 ) ) ) + int alt19=2; + int LA19_0 = input.LA(1); + + if ( (LA19_0==88) ) { + alt19=1; + } + else if ( (LA19_0==RULE_ID||LA19_0==RULE_INT||LA19_0==14||LA19_0==22||LA19_0==42||(LA19_0>=77 && LA19_0<=78)||LA19_0==87||(LA19_0>=91 && LA19_0<=97)||(LA19_0>=99 && LA19_0<=100)||LA19_0==102||(LA19_0>=104 && LA19_0<=107)) ) { + alt19=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 19, 0, input); + + throw nvae; + } + switch (alt19) { + case 1 : + // InternalFiacre.g:4308:2: ( ( rule__PortSet__AllPortsAssignment_0 ) ) + { + // InternalFiacre.g:4308:2: ( ( rule__PortSet__AllPortsAssignment_0 ) ) + // InternalFiacre.g:4309:3: ( rule__PortSet__AllPortsAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getAllPortsAssignment_0()); + } + // InternalFiacre.g:4310:3: ( rule__PortSet__AllPortsAssignment_0 ) + // InternalFiacre.g:4310:4: rule__PortSet__AllPortsAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortSet__AllPortsAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getAllPortsAssignment_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4314:2: ( ( rule__PortSet__Group_1__0 ) ) + { + // InternalFiacre.g:4314:2: ( ( rule__PortSet__Group_1__0 ) ) + // InternalFiacre.g:4315:3: ( rule__PortSet__Group_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getGroup_1()); + } + // InternalFiacre.g:4316:3: ( rule__PortSet__Group_1__0 ) + // InternalFiacre.g:4316:4: rule__PortSet__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortSet__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getGroup_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortSet__Alternatives" + + + // $ANTLR start "rule__QuantifiedExpression__Alternatives" + // InternalFiacre.g:4324:1: rule__QuantifiedExpression__Alternatives : ( ( ( rule__QuantifiedExpression__Group_0__0 ) ) | ( ruleConditional ) ); + public final void rule__QuantifiedExpression__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4328:1: ( ( ( rule__QuantifiedExpression__Group_0__0 ) ) | ( ruleConditional ) ) + int alt20=2; + int LA20_0 = input.LA(1); + + if ( ((LA20_0>=77 && LA20_0<=78)) ) { + alt20=1; + } + else if ( (LA20_0==RULE_ID||LA20_0==RULE_INT||LA20_0==14||LA20_0==22||LA20_0==42||LA20_0==87||(LA20_0>=91 && LA20_0<=97)||(LA20_0>=99 && LA20_0<=100)||LA20_0==102||(LA20_0>=104 && LA20_0<=107)) ) { + alt20=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 20, 0, input); + + throw nvae; + } + switch (alt20) { + case 1 : + // InternalFiacre.g:4329:2: ( ( rule__QuantifiedExpression__Group_0__0 ) ) + { + // InternalFiacre.g:4329:2: ( ( rule__QuantifiedExpression__Group_0__0 ) ) + // InternalFiacre.g:4330:3: ( rule__QuantifiedExpression__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getGroup_0()); + } + // InternalFiacre.g:4331:3: ( rule__QuantifiedExpression__Group_0__0 ) + // InternalFiacre.g:4331:4: rule__QuantifiedExpression__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4335:2: ( ruleConditional ) + { + // InternalFiacre.g:4335:2: ( ruleConditional ) + // InternalFiacre.g:4336:3: ruleConditional + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getConditionalParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleConditional(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getConditionalParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Alternatives" + + + // $ANTLR start "rule__QuantifiedExpression__Alternatives_0_0" + // InternalFiacre.g:4345:1: rule__QuantifiedExpression__Alternatives_0_0 : ( ( ( rule__QuantifiedExpression__Group_0_0_0__0 ) ) | ( ( rule__QuantifiedExpression__Group_0_0_1__0 ) ) ); + public final void rule__QuantifiedExpression__Alternatives_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4349:1: ( ( ( rule__QuantifiedExpression__Group_0_0_0__0 ) ) | ( ( rule__QuantifiedExpression__Group_0_0_1__0 ) ) ) + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==77) ) { + alt21=1; + } + else if ( (LA21_0==78) ) { + alt21=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 21, 0, input); + + throw nvae; + } + switch (alt21) { + case 1 : + // InternalFiacre.g:4350:2: ( ( rule__QuantifiedExpression__Group_0_0_0__0 ) ) + { + // InternalFiacre.g:4350:2: ( ( rule__QuantifiedExpression__Group_0_0_0__0 ) ) + // InternalFiacre.g:4351:3: ( rule__QuantifiedExpression__Group_0_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_0_0()); + } + // InternalFiacre.g:4352:3: ( rule__QuantifiedExpression__Group_0_0_0__0 ) + // InternalFiacre.g:4352:4: rule__QuantifiedExpression__Group_0_0_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_0_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4356:2: ( ( rule__QuantifiedExpression__Group_0_0_1__0 ) ) + { + // InternalFiacre.g:4356:2: ( ( rule__QuantifiedExpression__Group_0_0_1__0 ) ) + // InternalFiacre.g:4357:3: ( rule__QuantifiedExpression__Group_0_0_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_0_1()); + } + // InternalFiacre.g:4358:3: ( rule__QuantifiedExpression__Group_0_0_1__0 ) + // InternalFiacre.g:4358:4: rule__QuantifiedExpression__Group_0_0_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_0_0_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Alternatives_0_0" + + + // $ANTLR start "rule__Comparison__Alternatives_1_0" + // InternalFiacre.g:4366:1: rule__Comparison__Alternatives_1_0 : ( ( ( rule__Comparison__Group_1_0_0__0 ) ) | ( ( rule__Comparison__Group_1_0_1__0 ) ) | ( ( rule__Comparison__Group_1_0_2__0 ) ) | ( ( rule__Comparison__Group_1_0_3__0 ) ) | ( ( rule__Comparison__Group_1_0_4__0 ) ) | ( ( rule__Comparison__Group_1_0_5__0 ) ) ); + public final void rule__Comparison__Alternatives_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4370:1: ( ( ( rule__Comparison__Group_1_0_0__0 ) ) | ( ( rule__Comparison__Group_1_0_1__0 ) ) | ( ( rule__Comparison__Group_1_0_2__0 ) ) | ( ( rule__Comparison__Group_1_0_3__0 ) ) | ( ( rule__Comparison__Group_1_0_4__0 ) ) | ( ( rule__Comparison__Group_1_0_5__0 ) ) ) + int alt22=6; + switch ( input.LA(1) ) { + case 82: + { + alt22=1; + } + break; + case 83: + { + alt22=2; + } + break; + case 84: + { + alt22=3; + } + break; + case 85: + { + alt22=4; + } + break; + case 16: + { + alt22=5; + } + break; + case 86: + { + alt22=6; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 22, 0, input); + + throw nvae; + } + + switch (alt22) { + case 1 : + // InternalFiacre.g:4371:2: ( ( rule__Comparison__Group_1_0_0__0 ) ) + { + // InternalFiacre.g:4371:2: ( ( rule__Comparison__Group_1_0_0__0 ) ) + // InternalFiacre.g:4372:3: ( rule__Comparison__Group_1_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getGroup_1_0_0()); + } + // InternalFiacre.g:4373:3: ( rule__Comparison__Group_1_0_0__0 ) + // InternalFiacre.g:4373:4: rule__Comparison__Group_1_0_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getGroup_1_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4377:2: ( ( rule__Comparison__Group_1_0_1__0 ) ) + { + // InternalFiacre.g:4377:2: ( ( rule__Comparison__Group_1_0_1__0 ) ) + // InternalFiacre.g:4378:3: ( rule__Comparison__Group_1_0_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getGroup_1_0_1()); + } + // InternalFiacre.g:4379:3: ( rule__Comparison__Group_1_0_1__0 ) + // InternalFiacre.g:4379:4: rule__Comparison__Group_1_0_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getGroup_1_0_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:4383:2: ( ( rule__Comparison__Group_1_0_2__0 ) ) + { + // InternalFiacre.g:4383:2: ( ( rule__Comparison__Group_1_0_2__0 ) ) + // InternalFiacre.g:4384:3: ( rule__Comparison__Group_1_0_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getGroup_1_0_2()); + } + // InternalFiacre.g:4385:3: ( rule__Comparison__Group_1_0_2__0 ) + // InternalFiacre.g:4385:4: rule__Comparison__Group_1_0_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getGroup_1_0_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:4389:2: ( ( rule__Comparison__Group_1_0_3__0 ) ) + { + // InternalFiacre.g:4389:2: ( ( rule__Comparison__Group_1_0_3__0 ) ) + // InternalFiacre.g:4390:3: ( rule__Comparison__Group_1_0_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getGroup_1_0_3()); + } + // InternalFiacre.g:4391:3: ( rule__Comparison__Group_1_0_3__0 ) + // InternalFiacre.g:4391:4: rule__Comparison__Group_1_0_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getGroup_1_0_3()); + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:4395:2: ( ( rule__Comparison__Group_1_0_4__0 ) ) + { + // InternalFiacre.g:4395:2: ( ( rule__Comparison__Group_1_0_4__0 ) ) + // InternalFiacre.g:4396:3: ( rule__Comparison__Group_1_0_4__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getGroup_1_0_4()); + } + // InternalFiacre.g:4397:3: ( rule__Comparison__Group_1_0_4__0 ) + // InternalFiacre.g:4397:4: rule__Comparison__Group_1_0_4__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getGroup_1_0_4()); + } + + } + + + } + break; + case 6 : + // InternalFiacre.g:4401:2: ( ( rule__Comparison__Group_1_0_5__0 ) ) + { + // InternalFiacre.g:4401:2: ( ( rule__Comparison__Group_1_0_5__0 ) ) + // InternalFiacre.g:4402:3: ( rule__Comparison__Group_1_0_5__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getGroup_1_0_5()); + } + // InternalFiacre.g:4403:3: ( rule__Comparison__Group_1_0_5__0 ) + // InternalFiacre.g:4403:4: rule__Comparison__Group_1_0_5__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_5__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getGroup_1_0_5()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Alternatives_1_0" + + + // $ANTLR start "rule__UnaryExpression__Alternatives" + // InternalFiacre.g:4411:1: rule__UnaryExpression__Alternatives : ( ( ( rule__UnaryExpression__Group_0__0 ) ) | ( ruleProjection ) ); + public final void rule__UnaryExpression__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4415:1: ( ( ( rule__UnaryExpression__Group_0__0 ) ) | ( ruleProjection ) ) + int alt23=2; + int LA23_0 = input.LA(1); + + if ( (LA23_0==14||LA23_0==87||(LA23_0>=91 && LA23_0<=97)) ) { + alt23=1; + } + else if ( (LA23_0==RULE_ID||LA23_0==RULE_INT||LA23_0==22||LA23_0==42||(LA23_0>=99 && LA23_0<=100)||LA23_0==102||(LA23_0>=104 && LA23_0<=107)) ) { + alt23=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 23, 0, input); + + throw nvae; + } + switch (alt23) { + case 1 : + // InternalFiacre.g:4416:2: ( ( rule__UnaryExpression__Group_0__0 ) ) + { + // InternalFiacre.g:4416:2: ( ( rule__UnaryExpression__Group_0__0 ) ) + // InternalFiacre.g:4417:3: ( rule__UnaryExpression__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getGroup_0()); + } + // InternalFiacre.g:4418:3: ( rule__UnaryExpression__Group_0__0 ) + // InternalFiacre.g:4418:4: rule__UnaryExpression__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4422:2: ( ruleProjection ) + { + // InternalFiacre.g:4422:2: ( ruleProjection ) + // InternalFiacre.g:4423:3: ruleProjection + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getProjectionParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleProjection(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getProjectionParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Alternatives" + + + // $ANTLR start "rule__UnaryExpression__Alternatives_0_0" + // InternalFiacre.g:4432:1: rule__UnaryExpression__Alternatives_0_0 : ( ( ( rule__UnaryExpression__Group_0_0_0__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_1__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_2__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_3__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_4__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_5__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_6__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_7__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_8__0 ) ) ); + public final void rule__UnaryExpression__Alternatives_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4436:1: ( ( ( rule__UnaryExpression__Group_0_0_0__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_1__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_2__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_3__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_4__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_5__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_6__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_7__0 ) ) | ( ( rule__UnaryExpression__Group_0_0_8__0 ) ) ) + int alt24=9; + switch ( input.LA(1) ) { + case 14: + { + alt24=1; + } + break; + case 87: + { + alt24=2; + } + break; + case 91: + { + alt24=3; + } + break; + case 92: + { + alt24=4; + } + break; + case 93: + { + alt24=5; + } + break; + case 94: + { + alt24=6; + } + break; + case 95: + { + alt24=7; + } + break; + case 96: + { + alt24=8; + } + break; + case 97: + { + alt24=9; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 24, 0, input); + + throw nvae; + } + + switch (alt24) { + case 1 : + // InternalFiacre.g:4437:2: ( ( rule__UnaryExpression__Group_0_0_0__0 ) ) + { + // InternalFiacre.g:4437:2: ( ( rule__UnaryExpression__Group_0_0_0__0 ) ) + // InternalFiacre.g:4438:3: ( rule__UnaryExpression__Group_0_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_0()); + } + // InternalFiacre.g:4439:3: ( rule__UnaryExpression__Group_0_0_0__0 ) + // InternalFiacre.g:4439:4: rule__UnaryExpression__Group_0_0_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4443:2: ( ( rule__UnaryExpression__Group_0_0_1__0 ) ) + { + // InternalFiacre.g:4443:2: ( ( rule__UnaryExpression__Group_0_0_1__0 ) ) + // InternalFiacre.g:4444:3: ( rule__UnaryExpression__Group_0_0_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_1()); + } + // InternalFiacre.g:4445:3: ( rule__UnaryExpression__Group_0_0_1__0 ) + // InternalFiacre.g:4445:4: rule__UnaryExpression__Group_0_0_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0_0_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:4449:2: ( ( rule__UnaryExpression__Group_0_0_2__0 ) ) + { + // InternalFiacre.g:4449:2: ( ( rule__UnaryExpression__Group_0_0_2__0 ) ) + // InternalFiacre.g:4450:3: ( rule__UnaryExpression__Group_0_0_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_2()); + } + // InternalFiacre.g:4451:3: ( rule__UnaryExpression__Group_0_0_2__0 ) + // InternalFiacre.g:4451:4: rule__UnaryExpression__Group_0_0_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0_0_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:4455:2: ( ( rule__UnaryExpression__Group_0_0_3__0 ) ) + { + // InternalFiacre.g:4455:2: ( ( rule__UnaryExpression__Group_0_0_3__0 ) ) + // InternalFiacre.g:4456:3: ( rule__UnaryExpression__Group_0_0_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_3()); + } + // InternalFiacre.g:4457:3: ( rule__UnaryExpression__Group_0_0_3__0 ) + // InternalFiacre.g:4457:4: rule__UnaryExpression__Group_0_0_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0_0_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_3()); + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:4461:2: ( ( rule__UnaryExpression__Group_0_0_4__0 ) ) + { + // InternalFiacre.g:4461:2: ( ( rule__UnaryExpression__Group_0_0_4__0 ) ) + // InternalFiacre.g:4462:3: ( rule__UnaryExpression__Group_0_0_4__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_4()); + } + // InternalFiacre.g:4463:3: ( rule__UnaryExpression__Group_0_0_4__0 ) + // InternalFiacre.g:4463:4: rule__UnaryExpression__Group_0_0_4__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0_0_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_4()); + } + + } + + + } + break; + case 6 : + // InternalFiacre.g:4467:2: ( ( rule__UnaryExpression__Group_0_0_5__0 ) ) + { + // InternalFiacre.g:4467:2: ( ( rule__UnaryExpression__Group_0_0_5__0 ) ) + // InternalFiacre.g:4468:3: ( rule__UnaryExpression__Group_0_0_5__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_5()); + } + // InternalFiacre.g:4469:3: ( rule__UnaryExpression__Group_0_0_5__0 ) + // InternalFiacre.g:4469:4: rule__UnaryExpression__Group_0_0_5__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0_0_5__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_5()); + } + + } + + + } + break; + case 7 : + // InternalFiacre.g:4473:2: ( ( rule__UnaryExpression__Group_0_0_6__0 ) ) + { + // InternalFiacre.g:4473:2: ( ( rule__UnaryExpression__Group_0_0_6__0 ) ) + // InternalFiacre.g:4474:3: ( rule__UnaryExpression__Group_0_0_6__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_6()); + } + // InternalFiacre.g:4475:3: ( rule__UnaryExpression__Group_0_0_6__0 ) + // InternalFiacre.g:4475:4: rule__UnaryExpression__Group_0_0_6__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0_0_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_6()); + } + + } + + + } + break; + case 8 : + // InternalFiacre.g:4479:2: ( ( rule__UnaryExpression__Group_0_0_7__0 ) ) + { + // InternalFiacre.g:4479:2: ( ( rule__UnaryExpression__Group_0_0_7__0 ) ) + // InternalFiacre.g:4480:3: ( rule__UnaryExpression__Group_0_0_7__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_7()); + } + // InternalFiacre.g:4481:3: ( rule__UnaryExpression__Group_0_0_7__0 ) + // InternalFiacre.g:4481:4: rule__UnaryExpression__Group_0_0_7__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0_0_7__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_7()); + } + + } + + + } + break; + case 9 : + // InternalFiacre.g:4485:2: ( ( rule__UnaryExpression__Group_0_0_8__0 ) ) + { + // InternalFiacre.g:4485:2: ( ( rule__UnaryExpression__Group_0_0_8__0 ) ) + // InternalFiacre.g:4486:3: ( rule__UnaryExpression__Group_0_0_8__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_8()); + } + // InternalFiacre.g:4487:3: ( rule__UnaryExpression__Group_0_0_8__0 ) + // InternalFiacre.g:4487:4: rule__UnaryExpression__Group_0_0_8__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0_0_8__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getGroup_0_0_8()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Alternatives_0_0" + + + // $ANTLR start "rule__AtomicExpression__Alternatives" + // InternalFiacre.g:4495:1: rule__AtomicExpression__Alternatives : ( ( ruleIdentifierExpression ) | ( ruleReferenceExpression ) | ( ruleLiteralExpression ) | ( ruleRecordExpression ) | ( ruleArrayExpression ) | ( ruleQueueExpression ) | ( ruleEnqueueExpression ) | ( ruleAppendExpression ) | ( ( rule__AtomicExpression__Group_8__0 ) ) ); + public final void rule__AtomicExpression__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4499:1: ( ( ruleIdentifierExpression ) | ( ruleReferenceExpression ) | ( ruleLiteralExpression ) | ( ruleRecordExpression ) | ( ruleArrayExpression ) | ( ruleQueueExpression ) | ( ruleEnqueueExpression ) | ( ruleAppendExpression ) | ( ( rule__AtomicExpression__Group_8__0 ) ) ) + int alt25=9; + switch ( input.LA(1) ) { + case RULE_ID: + { + alt25=1; + } + break; + case 99: + { + alt25=2; + } + break; + case RULE_INT: + case 106: + case 107: + { + alt25=3; + } + break; + case 100: + { + alt25=4; + } + break; + case 42: + { + alt25=5; + } + break; + case 102: + { + alt25=6; + } + break; + case 104: + { + alt25=7; + } + break; + case 105: + { + alt25=8; + } + break; + case 22: + { + alt25=9; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 25, 0, input); + + throw nvae; + } + + switch (alt25) { + case 1 : + // InternalFiacre.g:4500:2: ( ruleIdentifierExpression ) + { + // InternalFiacre.g:4500:2: ( ruleIdentifierExpression ) + // InternalFiacre.g:4501:3: ruleIdentifierExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getIdentifierExpressionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleIdentifierExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getIdentifierExpressionParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4506:2: ( ruleReferenceExpression ) + { + // InternalFiacre.g:4506:2: ( ruleReferenceExpression ) + // InternalFiacre.g:4507:3: ruleReferenceExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getReferenceExpressionParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleReferenceExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getReferenceExpressionParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:4512:2: ( ruleLiteralExpression ) + { + // InternalFiacre.g:4512:2: ( ruleLiteralExpression ) + // InternalFiacre.g:4513:3: ruleLiteralExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getLiteralExpressionParserRuleCall_2()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLiteralExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getLiteralExpressionParserRuleCall_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:4518:2: ( ruleRecordExpression ) + { + // InternalFiacre.g:4518:2: ( ruleRecordExpression ) + // InternalFiacre.g:4519:3: ruleRecordExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getRecordExpressionParserRuleCall_3()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRecordExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getRecordExpressionParserRuleCall_3()); + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:4524:2: ( ruleArrayExpression ) + { + // InternalFiacre.g:4524:2: ( ruleArrayExpression ) + // InternalFiacre.g:4525:3: ruleArrayExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getArrayExpressionParserRuleCall_4()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleArrayExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getArrayExpressionParserRuleCall_4()); + } + + } + + + } + break; + case 6 : + // InternalFiacre.g:4530:2: ( ruleQueueExpression ) + { + // InternalFiacre.g:4530:2: ( ruleQueueExpression ) + // InternalFiacre.g:4531:3: ruleQueueExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getQueueExpressionParserRuleCall_5()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleQueueExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getQueueExpressionParserRuleCall_5()); + } + + } + + + } + break; + case 7 : + // InternalFiacre.g:4536:2: ( ruleEnqueueExpression ) + { + // InternalFiacre.g:4536:2: ( ruleEnqueueExpression ) + // InternalFiacre.g:4537:3: ruleEnqueueExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getEnqueueExpressionParserRuleCall_6()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleEnqueueExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getEnqueueExpressionParserRuleCall_6()); + } + + } + + + } + break; + case 8 : + // InternalFiacre.g:4542:2: ( ruleAppendExpression ) + { + // InternalFiacre.g:4542:2: ( ruleAppendExpression ) + // InternalFiacre.g:4543:3: ruleAppendExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getAppendExpressionParserRuleCall_7()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAppendExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getAppendExpressionParserRuleCall_7()); + } + + } + + + } + break; + case 9 : + // InternalFiacre.g:4548:2: ( ( rule__AtomicExpression__Group_8__0 ) ) + { + // InternalFiacre.g:4548:2: ( ( rule__AtomicExpression__Group_8__0 ) ) + // InternalFiacre.g:4549:3: ( rule__AtomicExpression__Group_8__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getGroup_8()); + } + // InternalFiacre.g:4550:3: ( rule__AtomicExpression__Group_8__0 ) + // InternalFiacre.g:4550:4: rule__AtomicExpression__Group_8__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicExpression__Group_8__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getGroup_8()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicExpression__Alternatives" + + + // $ANTLR start "rule__IdentifierExpression__Alternatives" + // InternalFiacre.g:4558:1: rule__IdentifierExpression__Alternatives : ( ( ( rule__IdentifierExpression__Group_0__0 ) ) | ( ( rule__IdentifierExpression__Group_1__0 ) ) ); + public final void rule__IdentifierExpression__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4562:1: ( ( ( rule__IdentifierExpression__Group_0__0 ) ) | ( ( rule__IdentifierExpression__Group_1__0 ) ) ) + int alt26=2; + int LA26_0 = input.LA(1); + + if ( (LA26_0==RULE_ID) ) { + int LA26_1 = input.LA(2); + + if ( (synpred75_InternalFiacre()) ) { + alt26=1; + } + else if ( (true) ) { + alt26=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 26, 1, input); + + throw nvae; + } + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 26, 0, input); + + throw nvae; + } + switch (alt26) { + case 1 : + // InternalFiacre.g:4563:2: ( ( rule__IdentifierExpression__Group_0__0 ) ) + { + // InternalFiacre.g:4563:2: ( ( rule__IdentifierExpression__Group_0__0 ) ) + // InternalFiacre.g:4564:3: ( rule__IdentifierExpression__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getGroup_0()); + } + // InternalFiacre.g:4565:3: ( rule__IdentifierExpression__Group_0__0 ) + // InternalFiacre.g:4565:4: rule__IdentifierExpression__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4569:2: ( ( rule__IdentifierExpression__Group_1__0 ) ) + { + // InternalFiacre.g:4569:2: ( ( rule__IdentifierExpression__Group_1__0 ) ) + // InternalFiacre.g:4570:3: ( rule__IdentifierExpression__Group_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getGroup_1()); + } + // InternalFiacre.g:4571:3: ( rule__IdentifierExpression__Group_1__0 ) + // InternalFiacre.g:4571:4: rule__IdentifierExpression__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getGroup_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Alternatives" + + + // $ANTLR start "rule__IdentifierExpression__Alternatives_1_1" + // InternalFiacre.g:4579:1: rule__IdentifierExpression__Alternatives_1_1 : ( ( ( rule__IdentifierExpression__Group_1_1_0__0 ) ) | ( ( rule__IdentifierExpression__Group_1_1_1__0 ) ) ); + public final void rule__IdentifierExpression__Alternatives_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4583:1: ( ( ( rule__IdentifierExpression__Group_1_1_0__0 ) ) | ( ( rule__IdentifierExpression__Group_1_1_1__0 ) ) ) + int alt27=2; + int LA27_0 = input.LA(1); + + if ( (LA27_0==42) ) { + alt27=1; + } + else if ( (LA27_0==61) ) { + alt27=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 27, 0, input); + + throw nvae; + } + switch (alt27) { + case 1 : + // InternalFiacre.g:4584:2: ( ( rule__IdentifierExpression__Group_1_1_0__0 ) ) + { + // InternalFiacre.g:4584:2: ( ( rule__IdentifierExpression__Group_1_1_0__0 ) ) + // InternalFiacre.g:4585:3: ( rule__IdentifierExpression__Group_1_1_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_0()); + } + // InternalFiacre.g:4586:3: ( rule__IdentifierExpression__Group_1_1_0__0 ) + // InternalFiacre.g:4586:4: rule__IdentifierExpression__Group_1_1_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1_1_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4590:2: ( ( rule__IdentifierExpression__Group_1_1_1__0 ) ) + { + // InternalFiacre.g:4590:2: ( ( rule__IdentifierExpression__Group_1_1_1__0 ) ) + // InternalFiacre.g:4591:3: ( rule__IdentifierExpression__Group_1_1_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_1()); + } + // InternalFiacre.g:4592:3: ( rule__IdentifierExpression__Group_1_1_1__0 ) + // InternalFiacre.g:4592:4: rule__IdentifierExpression__Group_1_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Alternatives_1_1" + + + // $ANTLR start "rule__LiteralExpression__Alternatives" + // InternalFiacre.g:4600:1: rule__LiteralExpression__Alternatives : ( ( ruleBooleanLiteral ) | ( ruleNaturalLiteral ) ); + public final void rule__LiteralExpression__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4604:1: ( ( ruleBooleanLiteral ) | ( ruleNaturalLiteral ) ) + int alt28=2; + int LA28_0 = input.LA(1); + + if ( ((LA28_0>=106 && LA28_0<=107)) ) { + alt28=1; + } + else if ( (LA28_0==RULE_INT) ) { + alt28=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 28, 0, input); + + throw nvae; + } + switch (alt28) { + case 1 : + // InternalFiacre.g:4605:2: ( ruleBooleanLiteral ) + { + // InternalFiacre.g:4605:2: ( ruleBooleanLiteral ) + // InternalFiacre.g:4606:3: ruleBooleanLiteral + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLiteralExpressionAccess().getBooleanLiteralParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleBooleanLiteral(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLiteralExpressionAccess().getBooleanLiteralParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4611:2: ( ruleNaturalLiteral ) + { + // InternalFiacre.g:4611:2: ( ruleNaturalLiteral ) + // InternalFiacre.g:4612:3: ruleNaturalLiteral + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLiteralExpressionAccess().getNaturalLiteralParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleNaturalLiteral(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLiteralExpressionAccess().getNaturalLiteralParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LiteralExpression__Alternatives" + + + // $ANTLR start "rule__BooleanLiteral__Alternatives" + // InternalFiacre.g:4621:1: rule__BooleanLiteral__Alternatives : ( ( ( rule__BooleanLiteral__Group_0__0 ) ) | ( ( rule__BooleanLiteral__Group_1__0 ) ) ); + public final void rule__BooleanLiteral__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4625:1: ( ( ( rule__BooleanLiteral__Group_0__0 ) ) | ( ( rule__BooleanLiteral__Group_1__0 ) ) ) + int alt29=2; + int LA29_0 = input.LA(1); + + if ( (LA29_0==106) ) { + alt29=1; + } + else if ( (LA29_0==107) ) { + alt29=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 29, 0, input); + + throw nvae; + } + switch (alt29) { + case 1 : + // InternalFiacre.g:4626:2: ( ( rule__BooleanLiteral__Group_0__0 ) ) + { + // InternalFiacre.g:4626:2: ( ( rule__BooleanLiteral__Group_0__0 ) ) + // InternalFiacre.g:4627:3: ( rule__BooleanLiteral__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBooleanLiteralAccess().getGroup_0()); + } + // InternalFiacre.g:4628:3: ( rule__BooleanLiteral__Group_0__0 ) + // InternalFiacre.g:4628:4: rule__BooleanLiteral__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BooleanLiteral__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBooleanLiteralAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4632:2: ( ( rule__BooleanLiteral__Group_1__0 ) ) + { + // InternalFiacre.g:4632:2: ( ( rule__BooleanLiteral__Group_1__0 ) ) + // InternalFiacre.g:4633:3: ( rule__BooleanLiteral__Group_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBooleanLiteralAccess().getGroup_1()); + } + // InternalFiacre.g:4634:3: ( rule__BooleanLiteral__Group_1__0 ) + // InternalFiacre.g:4634:4: rule__BooleanLiteral__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BooleanLiteral__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBooleanLiteralAccess().getGroup_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BooleanLiteral__Alternatives" + + + // $ANTLR start "rule__LowerBound__Alternatives" + // InternalFiacre.g:4642:1: rule__LowerBound__Alternatives : ( ( ruleNaturalLowerBound ) | ( ruleDecimalLowerBound ) | ( ruleVariableLowerBound ) ); + public final void rule__LowerBound__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4646:1: ( ( ruleNaturalLowerBound ) | ( ruleDecimalLowerBound ) | ( ruleVariableLowerBound ) ) + int alt30=3; + int LA30_0 = input.LA(1); + + if ( (LA30_0==42) ) { + switch ( input.LA(2) ) { + case RULE_ID: + { + alt30=3; + } + break; + case RULE_INT: + { + alt30=1; + } + break; + case RULE_FLT: + { + alt30=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 30, 1, input); + + throw nvae; + } + + } + else if ( (LA30_0==43) ) { + switch ( input.LA(2) ) { + case RULE_FLT: + { + alt30=2; + } + break; + case RULE_ID: + { + alt30=3; + } + break; + case RULE_INT: + { + alt30=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 30, 2, input); + + throw nvae; + } + + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 30, 0, input); + + throw nvae; + } + switch (alt30) { + case 1 : + // InternalFiacre.g:4647:2: ( ruleNaturalLowerBound ) + { + // InternalFiacre.g:4647:2: ( ruleNaturalLowerBound ) + // InternalFiacre.g:4648:3: ruleNaturalLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLowerBoundAccess().getNaturalLowerBoundParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleNaturalLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLowerBoundAccess().getNaturalLowerBoundParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4653:2: ( ruleDecimalLowerBound ) + { + // InternalFiacre.g:4653:2: ( ruleDecimalLowerBound ) + // InternalFiacre.g:4654:3: ruleDecimalLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLowerBoundAccess().getDecimalLowerBoundParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleDecimalLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLowerBoundAccess().getDecimalLowerBoundParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:4659:2: ( ruleVariableLowerBound ) + { + // InternalFiacre.g:4659:2: ( ruleVariableLowerBound ) + // InternalFiacre.g:4660:3: ruleVariableLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLowerBoundAccess().getVariableLowerBoundParserRuleCall_2()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariableLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLowerBoundAccess().getVariableLowerBoundParserRuleCall_2()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LowerBound__Alternatives" + + + // $ANTLR start "rule__UpperBound__Alternatives" + // InternalFiacre.g:4669:1: rule__UpperBound__Alternatives : ( ( ruleNaturalUpperBound ) | ( ruleDecimalUpperBound ) | ( ruleVariableUpperBound ) | ( ruleInfiniteUpperBound ) ); + public final void rule__UpperBound__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4673:1: ( ( ruleNaturalUpperBound ) | ( ruleDecimalUpperBound ) | ( ruleVariableUpperBound ) | ( ruleInfiniteUpperBound ) ) + int alt31=4; + switch ( input.LA(1) ) { + case RULE_INT: + { + alt31=1; + } + break; + case RULE_FLT: + { + alt31=2; + } + break; + case RULE_ID: + { + alt31=3; + } + break; + case 108: + { + alt31=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 31, 0, input); + + throw nvae; + } + + switch (alt31) { + case 1 : + // InternalFiacre.g:4674:2: ( ruleNaturalUpperBound ) + { + // InternalFiacre.g:4674:2: ( ruleNaturalUpperBound ) + // InternalFiacre.g:4675:3: ruleNaturalUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUpperBoundAccess().getNaturalUpperBoundParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleNaturalUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUpperBoundAccess().getNaturalUpperBoundParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4680:2: ( ruleDecimalUpperBound ) + { + // InternalFiacre.g:4680:2: ( ruleDecimalUpperBound ) + // InternalFiacre.g:4681:3: ruleDecimalUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUpperBoundAccess().getDecimalUpperBoundParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleDecimalUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUpperBoundAccess().getDecimalUpperBoundParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:4686:2: ( ruleVariableUpperBound ) + { + // InternalFiacre.g:4686:2: ( ruleVariableUpperBound ) + // InternalFiacre.g:4687:3: ruleVariableUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUpperBoundAccess().getVariableUpperBoundParserRuleCall_2()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariableUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUpperBoundAccess().getVariableUpperBoundParserRuleCall_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:4692:2: ( ruleInfiniteUpperBound ) + { + // InternalFiacre.g:4692:2: ( ruleInfiniteUpperBound ) + // InternalFiacre.g:4693:3: ruleInfiniteUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUpperBoundAccess().getInfiniteUpperBoundParserRuleCall_3()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleInfiniteUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUpperBoundAccess().getInfiniteUpperBoundParserRuleCall_3()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UpperBound__Alternatives" + + + // $ANTLR start "rule__NaturalLowerBound__Alternatives_0" + // InternalFiacre.g:4702:1: rule__NaturalLowerBound__Alternatives_0 : ( ( ( rule__NaturalLowerBound__LeftAssignment_0_0 ) ) | ( ( rule__NaturalLowerBound__RightAssignment_0_1 ) ) ); + public final void rule__NaturalLowerBound__Alternatives_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4706:1: ( ( ( rule__NaturalLowerBound__LeftAssignment_0_0 ) ) | ( ( rule__NaturalLowerBound__RightAssignment_0_1 ) ) ) + int alt32=2; + int LA32_0 = input.LA(1); + + if ( (LA32_0==42) ) { + alt32=1; + } + else if ( (LA32_0==43) ) { + alt32=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 32, 0, input); + + throw nvae; + } + switch (alt32) { + case 1 : + // InternalFiacre.g:4707:2: ( ( rule__NaturalLowerBound__LeftAssignment_0_0 ) ) + { + // InternalFiacre.g:4707:2: ( ( rule__NaturalLowerBound__LeftAssignment_0_0 ) ) + // InternalFiacre.g:4708:3: ( rule__NaturalLowerBound__LeftAssignment_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundAccess().getLeftAssignment_0_0()); + } + // InternalFiacre.g:4709:3: ( rule__NaturalLowerBound__LeftAssignment_0_0 ) + // InternalFiacre.g:4709:4: rule__NaturalLowerBound__LeftAssignment_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalLowerBound__LeftAssignment_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundAccess().getLeftAssignment_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4713:2: ( ( rule__NaturalLowerBound__RightAssignment_0_1 ) ) + { + // InternalFiacre.g:4713:2: ( ( rule__NaturalLowerBound__RightAssignment_0_1 ) ) + // InternalFiacre.g:4714:3: ( rule__NaturalLowerBound__RightAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundAccess().getRightAssignment_0_1()); + } + // InternalFiacre.g:4715:3: ( rule__NaturalLowerBound__RightAssignment_0_1 ) + // InternalFiacre.g:4715:4: rule__NaturalLowerBound__RightAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalLowerBound__RightAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundAccess().getRightAssignment_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalLowerBound__Alternatives_0" + + + // $ANTLR start "rule__NaturalUpperBound__Alternatives_1" + // InternalFiacre.g:4723:1: rule__NaturalUpperBound__Alternatives_1 : ( ( ( rule__NaturalUpperBound__LeftAssignment_1_0 ) ) | ( ( rule__NaturalUpperBound__RightAssignment_1_1 ) ) ); + public final void rule__NaturalUpperBound__Alternatives_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4727:1: ( ( ( rule__NaturalUpperBound__LeftAssignment_1_0 ) ) | ( ( rule__NaturalUpperBound__RightAssignment_1_1 ) ) ) + int alt33=2; + int LA33_0 = input.LA(1); + + if ( (LA33_0==42) ) { + alt33=1; + } + else if ( (LA33_0==43) ) { + alt33=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 33, 0, input); + + throw nvae; + } + switch (alt33) { + case 1 : + // InternalFiacre.g:4728:2: ( ( rule__NaturalUpperBound__LeftAssignment_1_0 ) ) + { + // InternalFiacre.g:4728:2: ( ( rule__NaturalUpperBound__LeftAssignment_1_0 ) ) + // InternalFiacre.g:4729:3: ( rule__NaturalUpperBound__LeftAssignment_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundAccess().getLeftAssignment_1_0()); + } + // InternalFiacre.g:4730:3: ( rule__NaturalUpperBound__LeftAssignment_1_0 ) + // InternalFiacre.g:4730:4: rule__NaturalUpperBound__LeftAssignment_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalUpperBound__LeftAssignment_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundAccess().getLeftAssignment_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4734:2: ( ( rule__NaturalUpperBound__RightAssignment_1_1 ) ) + { + // InternalFiacre.g:4734:2: ( ( rule__NaturalUpperBound__RightAssignment_1_1 ) ) + // InternalFiacre.g:4735:3: ( rule__NaturalUpperBound__RightAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundAccess().getRightAssignment_1_1()); + } + // InternalFiacre.g:4736:3: ( rule__NaturalUpperBound__RightAssignment_1_1 ) + // InternalFiacre.g:4736:4: rule__NaturalUpperBound__RightAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalUpperBound__RightAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundAccess().getRightAssignment_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalUpperBound__Alternatives_1" + + + // $ANTLR start "rule__DecimalLowerBound__Alternatives_0" + // InternalFiacre.g:4744:1: rule__DecimalLowerBound__Alternatives_0 : ( ( ( rule__DecimalLowerBound__LeftAssignment_0_0 ) ) | ( ( rule__DecimalLowerBound__RightAssignment_0_1 ) ) ); + public final void rule__DecimalLowerBound__Alternatives_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4748:1: ( ( ( rule__DecimalLowerBound__LeftAssignment_0_0 ) ) | ( ( rule__DecimalLowerBound__RightAssignment_0_1 ) ) ) + int alt34=2; + int LA34_0 = input.LA(1); + + if ( (LA34_0==42) ) { + alt34=1; + } + else if ( (LA34_0==43) ) { + alt34=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 34, 0, input); + + throw nvae; + } + switch (alt34) { + case 1 : + // InternalFiacre.g:4749:2: ( ( rule__DecimalLowerBound__LeftAssignment_0_0 ) ) + { + // InternalFiacre.g:4749:2: ( ( rule__DecimalLowerBound__LeftAssignment_0_0 ) ) + // InternalFiacre.g:4750:3: ( rule__DecimalLowerBound__LeftAssignment_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundAccess().getLeftAssignment_0_0()); + } + // InternalFiacre.g:4751:3: ( rule__DecimalLowerBound__LeftAssignment_0_0 ) + // InternalFiacre.g:4751:4: rule__DecimalLowerBound__LeftAssignment_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalLowerBound__LeftAssignment_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundAccess().getLeftAssignment_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4755:2: ( ( rule__DecimalLowerBound__RightAssignment_0_1 ) ) + { + // InternalFiacre.g:4755:2: ( ( rule__DecimalLowerBound__RightAssignment_0_1 ) ) + // InternalFiacre.g:4756:3: ( rule__DecimalLowerBound__RightAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundAccess().getRightAssignment_0_1()); + } + // InternalFiacre.g:4757:3: ( rule__DecimalLowerBound__RightAssignment_0_1 ) + // InternalFiacre.g:4757:4: rule__DecimalLowerBound__RightAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalLowerBound__RightAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundAccess().getRightAssignment_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalLowerBound__Alternatives_0" + + + // $ANTLR start "rule__DecimalUpperBound__Alternatives_1" + // InternalFiacre.g:4765:1: rule__DecimalUpperBound__Alternatives_1 : ( ( ( rule__DecimalUpperBound__LeftAssignment_1_0 ) ) | ( ( rule__DecimalUpperBound__RightAssignment_1_1 ) ) ); + public final void rule__DecimalUpperBound__Alternatives_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4769:1: ( ( ( rule__DecimalUpperBound__LeftAssignment_1_0 ) ) | ( ( rule__DecimalUpperBound__RightAssignment_1_1 ) ) ) + int alt35=2; + int LA35_0 = input.LA(1); + + if ( (LA35_0==42) ) { + alt35=1; + } + else if ( (LA35_0==43) ) { + alt35=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 35, 0, input); + + throw nvae; + } + switch (alt35) { + case 1 : + // InternalFiacre.g:4770:2: ( ( rule__DecimalUpperBound__LeftAssignment_1_0 ) ) + { + // InternalFiacre.g:4770:2: ( ( rule__DecimalUpperBound__LeftAssignment_1_0 ) ) + // InternalFiacre.g:4771:3: ( rule__DecimalUpperBound__LeftAssignment_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundAccess().getLeftAssignment_1_0()); + } + // InternalFiacre.g:4772:3: ( rule__DecimalUpperBound__LeftAssignment_1_0 ) + // InternalFiacre.g:4772:4: rule__DecimalUpperBound__LeftAssignment_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalUpperBound__LeftAssignment_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundAccess().getLeftAssignment_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4776:2: ( ( rule__DecimalUpperBound__RightAssignment_1_1 ) ) + { + // InternalFiacre.g:4776:2: ( ( rule__DecimalUpperBound__RightAssignment_1_1 ) ) + // InternalFiacre.g:4777:3: ( rule__DecimalUpperBound__RightAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundAccess().getRightAssignment_1_1()); + } + // InternalFiacre.g:4778:3: ( rule__DecimalUpperBound__RightAssignment_1_1 ) + // InternalFiacre.g:4778:4: rule__DecimalUpperBound__RightAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalUpperBound__RightAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundAccess().getRightAssignment_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalUpperBound__Alternatives_1" + + + // $ANTLR start "rule__VariableLowerBound__Alternatives_0" + // InternalFiacre.g:4786:1: rule__VariableLowerBound__Alternatives_0 : ( ( ( rule__VariableLowerBound__LeftAssignment_0_0 ) ) | ( ( rule__VariableLowerBound__RightAssignment_0_1 ) ) ); + public final void rule__VariableLowerBound__Alternatives_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4790:1: ( ( ( rule__VariableLowerBound__LeftAssignment_0_0 ) ) | ( ( rule__VariableLowerBound__RightAssignment_0_1 ) ) ) + int alt36=2; + int LA36_0 = input.LA(1); + + if ( (LA36_0==42) ) { + alt36=1; + } + else if ( (LA36_0==43) ) { + alt36=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 36, 0, input); + + throw nvae; + } + switch (alt36) { + case 1 : + // InternalFiacre.g:4791:2: ( ( rule__VariableLowerBound__LeftAssignment_0_0 ) ) + { + // InternalFiacre.g:4791:2: ( ( rule__VariableLowerBound__LeftAssignment_0_0 ) ) + // InternalFiacre.g:4792:3: ( rule__VariableLowerBound__LeftAssignment_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getLeftAssignment_0_0()); + } + // InternalFiacre.g:4793:3: ( rule__VariableLowerBound__LeftAssignment_0_0 ) + // InternalFiacre.g:4793:4: rule__VariableLowerBound__LeftAssignment_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableLowerBound__LeftAssignment_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getLeftAssignment_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4797:2: ( ( rule__VariableLowerBound__RightAssignment_0_1 ) ) + { + // InternalFiacre.g:4797:2: ( ( rule__VariableLowerBound__RightAssignment_0_1 ) ) + // InternalFiacre.g:4798:3: ( rule__VariableLowerBound__RightAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getRightAssignment_0_1()); + } + // InternalFiacre.g:4799:3: ( rule__VariableLowerBound__RightAssignment_0_1 ) + // InternalFiacre.g:4799:4: rule__VariableLowerBound__RightAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableLowerBound__RightAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getRightAssignment_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableLowerBound__Alternatives_0" + + + // $ANTLR start "rule__VariableUpperBound__Alternatives_1" + // InternalFiacre.g:4807:1: rule__VariableUpperBound__Alternatives_1 : ( ( ( rule__VariableUpperBound__LeftAssignment_1_0 ) ) | ( ( rule__VariableUpperBound__RightAssignment_1_1 ) ) ); + public final void rule__VariableUpperBound__Alternatives_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4811:1: ( ( ( rule__VariableUpperBound__LeftAssignment_1_0 ) ) | ( ( rule__VariableUpperBound__RightAssignment_1_1 ) ) ) + int alt37=2; + int LA37_0 = input.LA(1); + + if ( (LA37_0==42) ) { + alt37=1; + } + else if ( (LA37_0==43) ) { + alt37=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 37, 0, input); + + throw nvae; + } + switch (alt37) { + case 1 : + // InternalFiacre.g:4812:2: ( ( rule__VariableUpperBound__LeftAssignment_1_0 ) ) + { + // InternalFiacre.g:4812:2: ( ( rule__VariableUpperBound__LeftAssignment_1_0 ) ) + // InternalFiacre.g:4813:3: ( rule__VariableUpperBound__LeftAssignment_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getLeftAssignment_1_0()); + } + // InternalFiacre.g:4814:3: ( rule__VariableUpperBound__LeftAssignment_1_0 ) + // InternalFiacre.g:4814:4: rule__VariableUpperBound__LeftAssignment_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableUpperBound__LeftAssignment_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getLeftAssignment_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4818:2: ( ( rule__VariableUpperBound__RightAssignment_1_1 ) ) + { + // InternalFiacre.g:4818:2: ( ( rule__VariableUpperBound__RightAssignment_1_1 ) ) + // InternalFiacre.g:4819:3: ( rule__VariableUpperBound__RightAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getRightAssignment_1_1()); + } + // InternalFiacre.g:4820:3: ( rule__VariableUpperBound__RightAssignment_1_1 ) + // InternalFiacre.g:4820:4: rule__VariableUpperBound__RightAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableUpperBound__RightAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getRightAssignment_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableUpperBound__Alternatives_1" + + + // $ANTLR start "rule__QuantifiedProperty__Alternatives" + // InternalFiacre.g:4828:1: rule__QuantifiedProperty__Alternatives : ( ( ( rule__QuantifiedProperty__Group_0__0 ) ) | ( rulePropertyDisjunction ) ); + public final void rule__QuantifiedProperty__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4832:1: ( ( ( rule__QuantifiedProperty__Group_0__0 ) ) | ( rulePropertyDisjunction ) ) + int alt38=2; + int LA38_0 = input.LA(1); + + if ( ((LA38_0>=77 && LA38_0<=78)) ) { + alt38=1; + } + else if ( (LA38_0==RULE_ID||LA38_0==RULE_INT||LA38_0==22||LA38_0==91||(LA38_0>=113 && LA38_0<=117)||LA38_0==124||LA38_0==126||(LA38_0>=131 && LA38_0<=132)) ) { + alt38=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 38, 0, input); + + throw nvae; + } + switch (alt38) { + case 1 : + // InternalFiacre.g:4833:2: ( ( rule__QuantifiedProperty__Group_0__0 ) ) + { + // InternalFiacre.g:4833:2: ( ( rule__QuantifiedProperty__Group_0__0 ) ) + // InternalFiacre.g:4834:3: ( rule__QuantifiedProperty__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getGroup_0()); + } + // InternalFiacre.g:4835:3: ( rule__QuantifiedProperty__Group_0__0 ) + // InternalFiacre.g:4835:4: rule__QuantifiedProperty__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4839:2: ( rulePropertyDisjunction ) + { + // InternalFiacre.g:4839:2: ( rulePropertyDisjunction ) + // InternalFiacre.g:4840:3: rulePropertyDisjunction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getPropertyDisjunctionParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePropertyDisjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getPropertyDisjunctionParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Alternatives" + + + // $ANTLR start "rule__QuantifiedProperty__Alternatives_0_0" + // InternalFiacre.g:4849:1: rule__QuantifiedProperty__Alternatives_0_0 : ( ( ( rule__QuantifiedProperty__Group_0_0_0__0 ) ) | ( ( rule__QuantifiedProperty__Group_0_0_1__0 ) ) ); + public final void rule__QuantifiedProperty__Alternatives_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4853:1: ( ( ( rule__QuantifiedProperty__Group_0_0_0__0 ) ) | ( ( rule__QuantifiedProperty__Group_0_0_1__0 ) ) ) + int alt39=2; + int LA39_0 = input.LA(1); + + if ( (LA39_0==77) ) { + alt39=1; + } + else if ( (LA39_0==78) ) { + alt39=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 39, 0, input); + + throw nvae; + } + switch (alt39) { + case 1 : + // InternalFiacre.g:4854:2: ( ( rule__QuantifiedProperty__Group_0_0_0__0 ) ) + { + // InternalFiacre.g:4854:2: ( ( rule__QuantifiedProperty__Group_0_0_0__0 ) ) + // InternalFiacre.g:4855:3: ( rule__QuantifiedProperty__Group_0_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getGroup_0_0_0()); + } + // InternalFiacre.g:4856:3: ( rule__QuantifiedProperty__Group_0_0_0__0 ) + // InternalFiacre.g:4856:4: rule__QuantifiedProperty__Group_0_0_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_0_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getGroup_0_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4860:2: ( ( rule__QuantifiedProperty__Group_0_0_1__0 ) ) + { + // InternalFiacre.g:4860:2: ( ( rule__QuantifiedProperty__Group_0_0_1__0 ) ) + // InternalFiacre.g:4861:3: ( rule__QuantifiedProperty__Group_0_0_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getGroup_0_0_1()); + } + // InternalFiacre.g:4862:3: ( rule__QuantifiedProperty__Group_0_0_1__0 ) + // InternalFiacre.g:4862:4: rule__QuantifiedProperty__Group_0_0_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_0_0_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getGroup_0_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Alternatives_0_0" + + + // $ANTLR start "rule__PropertyNegation__Alternatives" + // InternalFiacre.g:4870:1: rule__PropertyNegation__Alternatives : ( ( ( rule__PropertyNegation__Group_0__0 ) ) | ( ruleAtomicProperty ) ); + public final void rule__PropertyNegation__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4874:1: ( ( ( rule__PropertyNegation__Group_0__0 ) ) | ( ruleAtomicProperty ) ) + int alt40=2; + int LA40_0 = input.LA(1); + + if ( (LA40_0==91) ) { + alt40=1; + } + else if ( (LA40_0==RULE_ID||LA40_0==RULE_INT||LA40_0==22||(LA40_0>=113 && LA40_0<=117)||LA40_0==124||LA40_0==126||(LA40_0>=131 && LA40_0<=132)) ) { + alt40=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 40, 0, input); + + throw nvae; + } + switch (alt40) { + case 1 : + // InternalFiacre.g:4875:2: ( ( rule__PropertyNegation__Group_0__0 ) ) + { + // InternalFiacre.g:4875:2: ( ( rule__PropertyNegation__Group_0__0 ) ) + // InternalFiacre.g:4876:3: ( rule__PropertyNegation__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyNegationAccess().getGroup_0()); + } + // InternalFiacre.g:4877:3: ( rule__PropertyNegation__Group_0__0 ) + // InternalFiacre.g:4877:4: rule__PropertyNegation__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyNegation__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyNegationAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4881:2: ( ruleAtomicProperty ) + { + // InternalFiacre.g:4881:2: ( ruleAtomicProperty ) + // InternalFiacre.g:4882:3: ruleAtomicProperty + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyNegationAccess().getAtomicPropertyParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyNegationAccess().getAtomicPropertyParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyNegation__Alternatives" + + + // $ANTLR start "rule__AtomicProperty__Alternatives" + // InternalFiacre.g:4891:1: rule__AtomicProperty__Alternatives : ( ( rulePatternProperty ) | ( ( rule__AtomicProperty__Group_1__0 ) ) ); + public final void rule__AtomicProperty__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4895:1: ( ( rulePatternProperty ) | ( ( rule__AtomicProperty__Group_1__0 ) ) ) + int alt41=2; + alt41 = dfa41.predict(input); + switch (alt41) { + case 1 : + // InternalFiacre.g:4896:2: ( rulePatternProperty ) + { + // InternalFiacre.g:4896:2: ( rulePatternProperty ) + // InternalFiacre.g:4897:3: rulePatternProperty + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicPropertyAccess().getPatternPropertyParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePatternProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicPropertyAccess().getPatternPropertyParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4902:2: ( ( rule__AtomicProperty__Group_1__0 ) ) + { + // InternalFiacre.g:4902:2: ( ( rule__AtomicProperty__Group_1__0 ) ) + // InternalFiacre.g:4903:3: ( rule__AtomicProperty__Group_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicPropertyAccess().getGroup_1()); + } + // InternalFiacre.g:4904:3: ( rule__AtomicProperty__Group_1__0 ) + // InternalFiacre.g:4904:4: rule__AtomicProperty__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicProperty__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicPropertyAccess().getGroup_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicProperty__Alternatives" + + + // $ANTLR start "rule__PatternProperty__Alternatives" + // InternalFiacre.g:4912:1: rule__PatternProperty__Alternatives : ( ( ruleLTLPattern ) | ( ruleDeadlockFreePattern ) | ( ruleInfinitelyOftenPattern ) | ( ruleMortalPattern ) | ( rulePresencePattern ) | ( ruleAbsencePattern ) | ( ruleAlwaysPattern ) | ( ruleSequencePattern ) ); + public final void rule__PatternProperty__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4916:1: ( ( ruleLTLPattern ) | ( ruleDeadlockFreePattern ) | ( ruleInfinitelyOftenPattern ) | ( ruleMortalPattern ) | ( rulePresencePattern ) | ( ruleAbsencePattern ) | ( ruleAlwaysPattern ) | ( ruleSequencePattern ) ) + int alt42=8; + switch ( input.LA(1) ) { + case 113: + { + alt42=1; + } + break; + case 114: + { + alt42=2; + } + break; + case 115: + { + alt42=3; + } + break; + case 116: + { + alt42=4; + } + break; + case 117: + { + alt42=5; + } + break; + case 124: + { + alt42=6; + } + break; + case 126: + { + alt42=7; + } + break; + case RULE_ID: + case RULE_INT: + case 22: + case 131: + case 132: + { + alt42=8; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 42, 0, input); + + throw nvae; + } + + switch (alt42) { + case 1 : + // InternalFiacre.g:4917:2: ( ruleLTLPattern ) + { + // InternalFiacre.g:4917:2: ( ruleLTLPattern ) + // InternalFiacre.g:4918:3: ruleLTLPattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternPropertyAccess().getLTLPatternParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternPropertyAccess().getLTLPatternParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4923:2: ( ruleDeadlockFreePattern ) + { + // InternalFiacre.g:4923:2: ( ruleDeadlockFreePattern ) + // InternalFiacre.g:4924:3: ruleDeadlockFreePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternPropertyAccess().getDeadlockFreePatternParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleDeadlockFreePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternPropertyAccess().getDeadlockFreePatternParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:4929:2: ( ruleInfinitelyOftenPattern ) + { + // InternalFiacre.g:4929:2: ( ruleInfinitelyOftenPattern ) + // InternalFiacre.g:4930:3: ruleInfinitelyOftenPattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternPropertyAccess().getInfinitelyOftenPatternParserRuleCall_2()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleInfinitelyOftenPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternPropertyAccess().getInfinitelyOftenPatternParserRuleCall_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:4935:2: ( ruleMortalPattern ) + { + // InternalFiacre.g:4935:2: ( ruleMortalPattern ) + // InternalFiacre.g:4936:3: ruleMortalPattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternPropertyAccess().getMortalPatternParserRuleCall_3()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleMortalPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternPropertyAccess().getMortalPatternParserRuleCall_3()); + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:4941:2: ( rulePresencePattern ) + { + // InternalFiacre.g:4941:2: ( rulePresencePattern ) + // InternalFiacre.g:4942:3: rulePresencePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternPropertyAccess().getPresencePatternParserRuleCall_4()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePresencePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternPropertyAccess().getPresencePatternParserRuleCall_4()); + } + + } + + + } + break; + case 6 : + // InternalFiacre.g:4947:2: ( ruleAbsencePattern ) + { + // InternalFiacre.g:4947:2: ( ruleAbsencePattern ) + // InternalFiacre.g:4948:3: ruleAbsencePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternPropertyAccess().getAbsencePatternParserRuleCall_5()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAbsencePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternPropertyAccess().getAbsencePatternParserRuleCall_5()); + } + + } + + + } + break; + case 7 : + // InternalFiacre.g:4953:2: ( ruleAlwaysPattern ) + { + // InternalFiacre.g:4953:2: ( ruleAlwaysPattern ) + // InternalFiacre.g:4954:3: ruleAlwaysPattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternPropertyAccess().getAlwaysPatternParserRuleCall_6()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAlwaysPattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternPropertyAccess().getAlwaysPatternParserRuleCall_6()); + } + + } + + + } + break; + case 8 : + // InternalFiacre.g:4959:2: ( ruleSequencePattern ) + { + // InternalFiacre.g:4959:2: ( ruleSequencePattern ) + // InternalFiacre.g:4960:3: ruleSequencePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternPropertyAccess().getSequencePatternParserRuleCall_7()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleSequencePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternPropertyAccess().getSequencePatternParserRuleCall_7()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternProperty__Alternatives" + + + // $ANTLR start "rule__PresencePattern__Alternatives_2" + // InternalFiacre.g:4969:1: rule__PresencePattern__Alternatives_2 : ( ( ( rule__PresencePattern__Group_2_0__0 ) ) | ( ( rule__PresencePattern__Group_2_1__0 ) ) | ( ( rule__PresencePattern__Group_2_2__0 ) ) | ( ( rule__PresencePattern__Group_2_3__0 ) ) ); + public final void rule__PresencePattern__Alternatives_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:4973:1: ( ( ( rule__PresencePattern__Group_2_0__0 ) ) | ( ( rule__PresencePattern__Group_2_1__0 ) ) | ( ( rule__PresencePattern__Group_2_2__0 ) ) | ( ( rule__PresencePattern__Group_2_3__0 ) ) ) + int alt43=4; + switch ( input.LA(1) ) { + case 118: + { + alt43=1; + } + break; + case 119: + { + alt43=2; + } + break; + case 122: + { + alt43=3; + } + break; + case 123: + { + alt43=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 43, 0, input); + + throw nvae; + } + + switch (alt43) { + case 1 : + // InternalFiacre.g:4974:2: ( ( rule__PresencePattern__Group_2_0__0 ) ) + { + // InternalFiacre.g:4974:2: ( ( rule__PresencePattern__Group_2_0__0 ) ) + // InternalFiacre.g:4975:3: ( rule__PresencePattern__Group_2_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getGroup_2_0()); + } + // InternalFiacre.g:4976:3: ( rule__PresencePattern__Group_2_0__0 ) + // InternalFiacre.g:4976:4: rule__PresencePattern__Group_2_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getGroup_2_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4980:2: ( ( rule__PresencePattern__Group_2_1__0 ) ) + { + // InternalFiacre.g:4980:2: ( ( rule__PresencePattern__Group_2_1__0 ) ) + // InternalFiacre.g:4981:3: ( rule__PresencePattern__Group_2_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getGroup_2_1()); + } + // InternalFiacre.g:4982:3: ( rule__PresencePattern__Group_2_1__0 ) + // InternalFiacre.g:4982:4: rule__PresencePattern__Group_2_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getGroup_2_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:4986:2: ( ( rule__PresencePattern__Group_2_2__0 ) ) + { + // InternalFiacre.g:4986:2: ( ( rule__PresencePattern__Group_2_2__0 ) ) + // InternalFiacre.g:4987:3: ( rule__PresencePattern__Group_2_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getGroup_2_2()); + } + // InternalFiacre.g:4988:3: ( rule__PresencePattern__Group_2_2__0 ) + // InternalFiacre.g:4988:4: rule__PresencePattern__Group_2_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getGroup_2_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:4992:2: ( ( rule__PresencePattern__Group_2_3__0 ) ) + { + // InternalFiacre.g:4992:2: ( ( rule__PresencePattern__Group_2_3__0 ) ) + // InternalFiacre.g:4993:3: ( rule__PresencePattern__Group_2_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getGroup_2_3()); + } + // InternalFiacre.g:4994:3: ( rule__PresencePattern__Group_2_3__0 ) + // InternalFiacre.g:4994:4: rule__PresencePattern__Group_2_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getGroup_2_3()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Alternatives_2" + + + // $ANTLR start "rule__PresencePattern__Alternatives_2_1_1" + // InternalFiacre.g:5002:1: rule__PresencePattern__Alternatives_2_1_1 : ( ( ( rule__PresencePattern__Group_2_1_1_0__0 ) ) | ( ( rule__PresencePattern__Group_2_1_1_1__0 ) ) ); + public final void rule__PresencePattern__Alternatives_2_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5006:1: ( ( ( rule__PresencePattern__Group_2_1_1_0__0 ) ) | ( ( rule__PresencePattern__Group_2_1_1_1__0 ) ) ) + int alt44=2; + int LA44_0 = input.LA(1); + + if ( (LA44_0==120) ) { + alt44=1; + } + else if ( (LA44_0==121) ) { + alt44=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 44, 0, input); + + throw nvae; + } + switch (alt44) { + case 1 : + // InternalFiacre.g:5007:2: ( ( rule__PresencePattern__Group_2_1_1_0__0 ) ) + { + // InternalFiacre.g:5007:2: ( ( rule__PresencePattern__Group_2_1_1_0__0 ) ) + // InternalFiacre.g:5008:3: ( rule__PresencePattern__Group_2_1_1_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getGroup_2_1_1_0()); + } + // InternalFiacre.g:5009:3: ( rule__PresencePattern__Group_2_1_1_0__0 ) + // InternalFiacre.g:5009:4: rule__PresencePattern__Group_2_1_1_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_1_1_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getGroup_2_1_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5013:2: ( ( rule__PresencePattern__Group_2_1_1_1__0 ) ) + { + // InternalFiacre.g:5013:2: ( ( rule__PresencePattern__Group_2_1_1_1__0 ) ) + // InternalFiacre.g:5014:3: ( rule__PresencePattern__Group_2_1_1_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getGroup_2_1_1_1()); + } + // InternalFiacre.g:5015:3: ( rule__PresencePattern__Group_2_1_1_1__0 ) + // InternalFiacre.g:5015:4: rule__PresencePattern__Group_2_1_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_1_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getGroup_2_1_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Alternatives_2_1_1" + + + // $ANTLR start "rule__AbsencePattern__Alternatives_2" + // InternalFiacre.g:5023:1: rule__AbsencePattern__Alternatives_2 : ( ( ( rule__AbsencePattern__Group_2_0__0 ) ) | ( ( rule__AbsencePattern__Group_2_1__0 ) ) | ( ( rule__AbsencePattern__Group_2_2__0 ) ) ); + public final void rule__AbsencePattern__Alternatives_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5027:1: ( ( ( rule__AbsencePattern__Group_2_0__0 ) ) | ( ( rule__AbsencePattern__Group_2_1__0 ) ) | ( ( rule__AbsencePattern__Group_2_2__0 ) ) ) + int alt45=3; + switch ( input.LA(1) ) { + case 119: + { + alt45=1; + } + break; + case 122: + { + alt45=2; + } + break; + case 123: + { + alt45=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 45, 0, input); + + throw nvae; + } + + switch (alt45) { + case 1 : + // InternalFiacre.g:5028:2: ( ( rule__AbsencePattern__Group_2_0__0 ) ) + { + // InternalFiacre.g:5028:2: ( ( rule__AbsencePattern__Group_2_0__0 ) ) + // InternalFiacre.g:5029:3: ( rule__AbsencePattern__Group_2_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getGroup_2_0()); + } + // InternalFiacre.g:5030:3: ( rule__AbsencePattern__Group_2_0__0 ) + // InternalFiacre.g:5030:4: rule__AbsencePattern__Group_2_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getGroup_2_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5034:2: ( ( rule__AbsencePattern__Group_2_1__0 ) ) + { + // InternalFiacre.g:5034:2: ( ( rule__AbsencePattern__Group_2_1__0 ) ) + // InternalFiacre.g:5035:3: ( rule__AbsencePattern__Group_2_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getGroup_2_1()); + } + // InternalFiacre.g:5036:3: ( rule__AbsencePattern__Group_2_1__0 ) + // InternalFiacre.g:5036:4: rule__AbsencePattern__Group_2_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getGroup_2_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:5040:2: ( ( rule__AbsencePattern__Group_2_2__0 ) ) + { + // InternalFiacre.g:5040:2: ( ( rule__AbsencePattern__Group_2_2__0 ) ) + // InternalFiacre.g:5041:3: ( rule__AbsencePattern__Group_2_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getGroup_2_2()); + } + // InternalFiacre.g:5042:3: ( rule__AbsencePattern__Group_2_2__0 ) + // InternalFiacre.g:5042:4: rule__AbsencePattern__Group_2_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getGroup_2_2()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Alternatives_2" + + + // $ANTLR start "rule__AbsencePattern__Alternatives_2_0_1" + // InternalFiacre.g:5050:1: rule__AbsencePattern__Alternatives_2_0_1 : ( ( ( rule__AbsencePattern__Group_2_0_1_0__0 ) ) | ( ( rule__AbsencePattern__Group_2_0_1_1__0 ) ) ); + public final void rule__AbsencePattern__Alternatives_2_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5054:1: ( ( ( rule__AbsencePattern__Group_2_0_1_0__0 ) ) | ( ( rule__AbsencePattern__Group_2_0_1_1__0 ) ) ) + int alt46=2; + int LA46_0 = input.LA(1); + + if ( (LA46_0==120) ) { + alt46=1; + } + else if ( (LA46_0==121) ) { + alt46=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 46, 0, input); + + throw nvae; + } + switch (alt46) { + case 1 : + // InternalFiacre.g:5055:2: ( ( rule__AbsencePattern__Group_2_0_1_0__0 ) ) + { + // InternalFiacre.g:5055:2: ( ( rule__AbsencePattern__Group_2_0_1_0__0 ) ) + // InternalFiacre.g:5056:3: ( rule__AbsencePattern__Group_2_0_1_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getGroup_2_0_1_0()); + } + // InternalFiacre.g:5057:3: ( rule__AbsencePattern__Group_2_0_1_0__0 ) + // InternalFiacre.g:5057:4: rule__AbsencePattern__Group_2_0_1_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0_1_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getGroup_2_0_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5061:2: ( ( rule__AbsencePattern__Group_2_0_1_1__0 ) ) + { + // InternalFiacre.g:5061:2: ( ( rule__AbsencePattern__Group_2_0_1_1__0 ) ) + // InternalFiacre.g:5062:3: ( rule__AbsencePattern__Group_2_0_1_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getGroup_2_0_1_1()); + } + // InternalFiacre.g:5063:3: ( rule__AbsencePattern__Group_2_0_1_1__0 ) + // InternalFiacre.g:5063:4: rule__AbsencePattern__Group_2_0_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getGroup_2_0_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Alternatives_2_0_1" + + + // $ANTLR start "rule__AlwaysPattern__Alternatives_2" + // InternalFiacre.g:5071:1: rule__AlwaysPattern__Alternatives_2 : ( ( ( rule__AlwaysPattern__Group_2_0__0 ) ) | ( ( rule__AlwaysPattern__Group_2_1__0 ) ) | ( ( rule__AlwaysPattern__Group_2_2__0 ) ) ); + public final void rule__AlwaysPattern__Alternatives_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5075:1: ( ( ( rule__AlwaysPattern__Group_2_0__0 ) ) | ( ( rule__AlwaysPattern__Group_2_1__0 ) ) | ( ( rule__AlwaysPattern__Group_2_2__0 ) ) ) + int alt47=3; + switch ( input.LA(1) ) { + case 122: + { + alt47=1; + } + break; + case 119: + { + alt47=2; + } + break; + case 123: + { + alt47=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 47, 0, input); + + throw nvae; + } + + switch (alt47) { + case 1 : + // InternalFiacre.g:5076:2: ( ( rule__AlwaysPattern__Group_2_0__0 ) ) + { + // InternalFiacre.g:5076:2: ( ( rule__AlwaysPattern__Group_2_0__0 ) ) + // InternalFiacre.g:5077:3: ( rule__AlwaysPattern__Group_2_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getGroup_2_0()); + } + // InternalFiacre.g:5078:3: ( rule__AlwaysPattern__Group_2_0__0 ) + // InternalFiacre.g:5078:4: rule__AlwaysPattern__Group_2_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getGroup_2_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5082:2: ( ( rule__AlwaysPattern__Group_2_1__0 ) ) + { + // InternalFiacre.g:5082:2: ( ( rule__AlwaysPattern__Group_2_1__0 ) ) + // InternalFiacre.g:5083:3: ( rule__AlwaysPattern__Group_2_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getGroup_2_1()); + } + // InternalFiacre.g:5084:3: ( rule__AlwaysPattern__Group_2_1__0 ) + // InternalFiacre.g:5084:4: rule__AlwaysPattern__Group_2_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getGroup_2_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:5088:2: ( ( rule__AlwaysPattern__Group_2_2__0 ) ) + { + // InternalFiacre.g:5088:2: ( ( rule__AlwaysPattern__Group_2_2__0 ) ) + // InternalFiacre.g:5089:3: ( rule__AlwaysPattern__Group_2_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getGroup_2_2()); + } + // InternalFiacre.g:5090:3: ( rule__AlwaysPattern__Group_2_2__0 ) + // InternalFiacre.g:5090:4: rule__AlwaysPattern__Group_2_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getGroup_2_2()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Alternatives_2" + + + // $ANTLR start "rule__SequencePattern__Alternatives_1" + // InternalFiacre.g:5098:1: rule__SequencePattern__Alternatives_1 : ( ( ( rule__SequencePattern__Group_1_0__0 ) ) | ( ( rule__SequencePattern__Group_1_1__0 ) ) ); + public final void rule__SequencePattern__Alternatives_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5102:1: ( ( ( rule__SequencePattern__Group_1_0__0 ) ) | ( ( rule__SequencePattern__Group_1_1__0 ) ) ) + int alt48=2; + int LA48_0 = input.LA(1); + + if ( (LA48_0==127) ) { + alt48=1; + } + else if ( (LA48_0==128) ) { + alt48=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 48, 0, input); + + throw nvae; + } + switch (alt48) { + case 1 : + // InternalFiacre.g:5103:2: ( ( rule__SequencePattern__Group_1_0__0 ) ) + { + // InternalFiacre.g:5103:2: ( ( rule__SequencePattern__Group_1_0__0 ) ) + // InternalFiacre.g:5104:3: ( rule__SequencePattern__Group_1_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_0()); + } + // InternalFiacre.g:5105:3: ( rule__SequencePattern__Group_1_0__0 ) + // InternalFiacre.g:5105:4: rule__SequencePattern__Group_1_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5109:2: ( ( rule__SequencePattern__Group_1_1__0 ) ) + { + // InternalFiacre.g:5109:2: ( ( rule__SequencePattern__Group_1_1__0 ) ) + // InternalFiacre.g:5110:3: ( rule__SequencePattern__Group_1_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_1()); + } + // InternalFiacre.g:5111:3: ( rule__SequencePattern__Group_1_1__0 ) + // InternalFiacre.g:5111:4: rule__SequencePattern__Group_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Alternatives_1" + + + // $ANTLR start "rule__SequencePattern__Alternatives_1_0_3" + // InternalFiacre.g:5119:1: rule__SequencePattern__Alternatives_1_0_3 : ( ( ( rule__SequencePattern__Group_1_0_3_0__0 ) ) | ( ( rule__SequencePattern__Group_1_0_3_1__0 ) ) | ( ( rule__SequencePattern__Group_1_0_3_2__0 ) ) | ( ( rule__SequencePattern__Group_1_0_3_3__0 ) ) ); + public final void rule__SequencePattern__Alternatives_1_0_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5123:1: ( ( ( rule__SequencePattern__Group_1_0_3_0__0 ) ) | ( ( rule__SequencePattern__Group_1_0_3_1__0 ) ) | ( ( rule__SequencePattern__Group_1_0_3_2__0 ) ) | ( ( rule__SequencePattern__Group_1_0_3_3__0 ) ) ) + int alt49=4; + switch ( input.LA(1) ) { + case 122: + { + alt49=1; + } + break; + case 120: + { + alt49=2; + } + break; + case 119: + { + alt49=3; + } + break; + case 123: + { + alt49=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 49, 0, input); + + throw nvae; + } + + switch (alt49) { + case 1 : + // InternalFiacre.g:5124:2: ( ( rule__SequencePattern__Group_1_0_3_0__0 ) ) + { + // InternalFiacre.g:5124:2: ( ( rule__SequencePattern__Group_1_0_3_0__0 ) ) + // InternalFiacre.g:5125:3: ( rule__SequencePattern__Group_1_0_3_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_0()); + } + // InternalFiacre.g:5126:3: ( rule__SequencePattern__Group_1_0_3_0__0 ) + // InternalFiacre.g:5126:4: rule__SequencePattern__Group_1_0_3_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5130:2: ( ( rule__SequencePattern__Group_1_0_3_1__0 ) ) + { + // InternalFiacre.g:5130:2: ( ( rule__SequencePattern__Group_1_0_3_1__0 ) ) + // InternalFiacre.g:5131:3: ( rule__SequencePattern__Group_1_0_3_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_1()); + } + // InternalFiacre.g:5132:3: ( rule__SequencePattern__Group_1_0_3_1__0 ) + // InternalFiacre.g:5132:4: rule__SequencePattern__Group_1_0_3_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:5136:2: ( ( rule__SequencePattern__Group_1_0_3_2__0 ) ) + { + // InternalFiacre.g:5136:2: ( ( rule__SequencePattern__Group_1_0_3_2__0 ) ) + // InternalFiacre.g:5137:3: ( rule__SequencePattern__Group_1_0_3_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2()); + } + // InternalFiacre.g:5138:3: ( rule__SequencePattern__Group_1_0_3_2__0 ) + // InternalFiacre.g:5138:4: rule__SequencePattern__Group_1_0_3_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:5142:2: ( ( rule__SequencePattern__Group_1_0_3_3__0 ) ) + { + // InternalFiacre.g:5142:2: ( ( rule__SequencePattern__Group_1_0_3_3__0 ) ) + // InternalFiacre.g:5143:3: ( rule__SequencePattern__Group_1_0_3_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_3()); + } + // InternalFiacre.g:5144:3: ( rule__SequencePattern__Group_1_0_3_3__0 ) + // InternalFiacre.g:5144:4: rule__SequencePattern__Group_1_0_3_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_3()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Alternatives_1_0_3" + + + // $ANTLR start "rule__SequencePattern__Alternatives_1_0_3_2_2" + // InternalFiacre.g:5152:1: rule__SequencePattern__Alternatives_1_0_3_2_2 : ( ( ( rule__SequencePattern__Group_1_0_3_2_2_0__0 ) ) | ( ( rule__SequencePattern__Group_1_0_3_2_2_1__0 ) ) ); + public final void rule__SequencePattern__Alternatives_1_0_3_2_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5156:1: ( ( ( rule__SequencePattern__Group_1_0_3_2_2_0__0 ) ) | ( ( rule__SequencePattern__Group_1_0_3_2_2_1__0 ) ) ) + int alt50=2; + int LA50_0 = input.LA(1); + + if ( (LA50_0==120) ) { + alt50=1; + } + else if ( (LA50_0==121) ) { + alt50=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 50, 0, input); + + throw nvae; + } + switch (alt50) { + case 1 : + // InternalFiacre.g:5157:2: ( ( rule__SequencePattern__Group_1_0_3_2_2_0__0 ) ) + { + // InternalFiacre.g:5157:2: ( ( rule__SequencePattern__Group_1_0_3_2_2_0__0 ) ) + // InternalFiacre.g:5158:3: ( rule__SequencePattern__Group_1_0_3_2_2_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2_2_0()); + } + // InternalFiacre.g:5159:3: ( rule__SequencePattern__Group_1_0_3_2_2_0__0 ) + // InternalFiacre.g:5159:4: rule__SequencePattern__Group_1_0_3_2_2_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_2_2_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2_2_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5163:2: ( ( rule__SequencePattern__Group_1_0_3_2_2_1__0 ) ) + { + // InternalFiacre.g:5163:2: ( ( rule__SequencePattern__Group_1_0_3_2_2_1__0 ) ) + // InternalFiacre.g:5164:3: ( rule__SequencePattern__Group_1_0_3_2_2_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2_2_1()); + } + // InternalFiacre.g:5165:3: ( rule__SequencePattern__Group_1_0_3_2_2_1__0 ) + // InternalFiacre.g:5165:4: rule__SequencePattern__Group_1_0_3_2_2_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_2_2_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_2_2_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Alternatives_1_0_3_2_2" + + + // $ANTLR start "rule__SequencePattern__Alternatives_1_1_3" + // InternalFiacre.g:5173:1: rule__SequencePattern__Alternatives_1_1_3 : ( ( ( rule__SequencePattern__Group_1_1_3_0__0 ) ) | ( ( rule__SequencePattern__Group_1_1_3_1__0 ) ) | ( ( rule__SequencePattern__Group_1_1_3_2__0 ) ) ); + public final void rule__SequencePattern__Alternatives_1_1_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5177:1: ( ( ( rule__SequencePattern__Group_1_1_3_0__0 ) ) | ( ( rule__SequencePattern__Group_1_1_3_1__0 ) ) | ( ( rule__SequencePattern__Group_1_1_3_2__0 ) ) ) + int alt51=3; + switch ( input.LA(1) ) { + case 122: + { + alt51=1; + } + break; + case 119: + { + alt51=2; + } + break; + case 123: + { + alt51=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 51, 0, input); + + throw nvae; + } + + switch (alt51) { + case 1 : + // InternalFiacre.g:5178:2: ( ( rule__SequencePattern__Group_1_1_3_0__0 ) ) + { + // InternalFiacre.g:5178:2: ( ( rule__SequencePattern__Group_1_1_3_0__0 ) ) + // InternalFiacre.g:5179:3: ( rule__SequencePattern__Group_1_1_3_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_0()); + } + // InternalFiacre.g:5180:3: ( rule__SequencePattern__Group_1_1_3_0__0 ) + // InternalFiacre.g:5180:4: rule__SequencePattern__Group_1_1_3_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5184:2: ( ( rule__SequencePattern__Group_1_1_3_1__0 ) ) + { + // InternalFiacre.g:5184:2: ( ( rule__SequencePattern__Group_1_1_3_1__0 ) ) + // InternalFiacre.g:5185:3: ( rule__SequencePattern__Group_1_1_3_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_1()); + } + // InternalFiacre.g:5186:3: ( rule__SequencePattern__Group_1_1_3_1__0 ) + // InternalFiacre.g:5186:4: rule__SequencePattern__Group_1_1_3_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:5190:2: ( ( rule__SequencePattern__Group_1_1_3_2__0 ) ) + { + // InternalFiacre.g:5190:2: ( ( rule__SequencePattern__Group_1_1_3_2__0 ) ) + // InternalFiacre.g:5191:3: ( rule__SequencePattern__Group_1_1_3_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_2()); + } + // InternalFiacre.g:5192:3: ( rule__SequencePattern__Group_1_1_3_2__0 ) + // InternalFiacre.g:5192:4: rule__SequencePattern__Group_1_1_3_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_2()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Alternatives_1_1_3" + + + // $ANTLR start "rule__LTLQuantified__Alternatives" + // InternalFiacre.g:5200:1: rule__LTLQuantified__Alternatives : ( ( ( rule__LTLQuantified__Group_0__0 ) ) | ( ruleLTLDisjunction ) ); + public final void rule__LTLQuantified__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5204:1: ( ( ( rule__LTLQuantified__Group_0__0 ) ) | ( ruleLTLDisjunction ) ) + int alt52=2; + int LA52_0 = input.LA(1); + + if ( ((LA52_0>=77 && LA52_0<=78)) ) { + alt52=1; + } + else if ( (LA52_0==RULE_ID||LA52_0==RULE_INT||LA52_0==22||LA52_0==52||LA52_0==83||LA52_0==91||(LA52_0>=130 && LA52_0<=132)) ) { + alt52=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 52, 0, input); + + throw nvae; + } + switch (alt52) { + case 1 : + // InternalFiacre.g:5205:2: ( ( rule__LTLQuantified__Group_0__0 ) ) + { + // InternalFiacre.g:5205:2: ( ( rule__LTLQuantified__Group_0__0 ) ) + // InternalFiacre.g:5206:3: ( rule__LTLQuantified__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getGroup_0()); + } + // InternalFiacre.g:5207:3: ( rule__LTLQuantified__Group_0__0 ) + // InternalFiacre.g:5207:4: rule__LTLQuantified__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5211:2: ( ruleLTLDisjunction ) + { + // InternalFiacre.g:5211:2: ( ruleLTLDisjunction ) + // InternalFiacre.g:5212:3: ruleLTLDisjunction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getLTLDisjunctionParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLDisjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getLTLDisjunctionParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Alternatives" + + + // $ANTLR start "rule__LTLQuantified__Alternatives_0_0" + // InternalFiacre.g:5221:1: rule__LTLQuantified__Alternatives_0_0 : ( ( ( rule__LTLQuantified__Group_0_0_0__0 ) ) | ( ( rule__LTLQuantified__Group_0_0_1__0 ) ) ); + public final void rule__LTLQuantified__Alternatives_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5225:1: ( ( ( rule__LTLQuantified__Group_0_0_0__0 ) ) | ( ( rule__LTLQuantified__Group_0_0_1__0 ) ) ) + int alt53=2; + int LA53_0 = input.LA(1); + + if ( (LA53_0==77) ) { + alt53=1; + } + else if ( (LA53_0==78) ) { + alt53=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 53, 0, input); + + throw nvae; + } + switch (alt53) { + case 1 : + // InternalFiacre.g:5226:2: ( ( rule__LTLQuantified__Group_0_0_0__0 ) ) + { + // InternalFiacre.g:5226:2: ( ( rule__LTLQuantified__Group_0_0_0__0 ) ) + // InternalFiacre.g:5227:3: ( rule__LTLQuantified__Group_0_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getGroup_0_0_0()); + } + // InternalFiacre.g:5228:3: ( rule__LTLQuantified__Group_0_0_0__0 ) + // InternalFiacre.g:5228:4: rule__LTLQuantified__Group_0_0_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_0_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getGroup_0_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5232:2: ( ( rule__LTLQuantified__Group_0_0_1__0 ) ) + { + // InternalFiacre.g:5232:2: ( ( rule__LTLQuantified__Group_0_0_1__0 ) ) + // InternalFiacre.g:5233:3: ( rule__LTLQuantified__Group_0_0_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getGroup_0_0_1()); + } + // InternalFiacre.g:5234:3: ( rule__LTLQuantified__Group_0_0_1__0 ) + // InternalFiacre.g:5234:4: rule__LTLQuantified__Group_0_0_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_0_0_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getGroup_0_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Alternatives_0_0" + + + // $ANTLR start "rule__LTLBinary__Alternatives_1" + // InternalFiacre.g:5242:1: rule__LTLBinary__Alternatives_1 : ( ( ( rule__LTLBinary__Group_1_0__0 ) ) | ( ( rule__LTLBinary__Group_1_1__0 ) ) ); + public final void rule__LTLBinary__Alternatives_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5246:1: ( ( ( rule__LTLBinary__Group_1_0__0 ) ) | ( ( rule__LTLBinary__Group_1_1__0 ) ) ) + int alt54=2; + int LA54_0 = input.LA(1); + + if ( (LA54_0==121) ) { + alt54=1; + } + else if ( (LA54_0==129) ) { + alt54=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 54, 0, input); + + throw nvae; + } + switch (alt54) { + case 1 : + // InternalFiacre.g:5247:2: ( ( rule__LTLBinary__Group_1_0__0 ) ) + { + // InternalFiacre.g:5247:2: ( ( rule__LTLBinary__Group_1_0__0 ) ) + // InternalFiacre.g:5248:3: ( rule__LTLBinary__Group_1_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getGroup_1_0()); + } + // InternalFiacre.g:5249:3: ( rule__LTLBinary__Group_1_0__0 ) + // InternalFiacre.g:5249:4: rule__LTLBinary__Group_1_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Group_1_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getGroup_1_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5253:2: ( ( rule__LTLBinary__Group_1_1__0 ) ) + { + // InternalFiacre.g:5253:2: ( ( rule__LTLBinary__Group_1_1__0 ) ) + // InternalFiacre.g:5254:3: ( rule__LTLBinary__Group_1_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getGroup_1_1()); + } + // InternalFiacre.g:5255:3: ( rule__LTLBinary__Group_1_1__0 ) + // InternalFiacre.g:5255:4: rule__LTLBinary__Group_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Group_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getGroup_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Alternatives_1" + + + // $ANTLR start "rule__LTLUnary__Alternatives" + // InternalFiacre.g:5263:1: rule__LTLUnary__Alternatives : ( ( ( rule__LTLUnary__Group_0__0 ) ) | ( ruleAtomicLTL ) ); + public final void rule__LTLUnary__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5267:1: ( ( ( rule__LTLUnary__Group_0__0 ) ) | ( ruleAtomicLTL ) ) + int alt55=2; + int LA55_0 = input.LA(1); + + if ( (LA55_0==52||LA55_0==83||LA55_0==91||LA55_0==130) ) { + alt55=1; + } + else if ( (LA55_0==RULE_ID||LA55_0==RULE_INT||LA55_0==22||(LA55_0>=131 && LA55_0<=132)) ) { + alt55=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 55, 0, input); + + throw nvae; + } + switch (alt55) { + case 1 : + // InternalFiacre.g:5268:2: ( ( rule__LTLUnary__Group_0__0 ) ) + { + // InternalFiacre.g:5268:2: ( ( rule__LTLUnary__Group_0__0 ) ) + // InternalFiacre.g:5269:3: ( rule__LTLUnary__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getGroup_0()); + } + // InternalFiacre.g:5270:3: ( rule__LTLUnary__Group_0__0 ) + // InternalFiacre.g:5270:4: rule__LTLUnary__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5274:2: ( ruleAtomicLTL ) + { + // InternalFiacre.g:5274:2: ( ruleAtomicLTL ) + // InternalFiacre.g:5275:3: ruleAtomicLTL + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getAtomicLTLParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicLTL(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getAtomicLTLParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Alternatives" + + + // $ANTLR start "rule__LTLUnary__Alternatives_0_0" + // InternalFiacre.g:5284:1: rule__LTLUnary__Alternatives_0_0 : ( ( ( rule__LTLUnary__Group_0_0_0__0 ) ) | ( ( rule__LTLUnary__Group_0_0_1__0 ) ) | ( ( rule__LTLUnary__Group_0_0_2__0 ) ) | ( ( rule__LTLUnary__Group_0_0_3__0 ) ) ); + public final void rule__LTLUnary__Alternatives_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5288:1: ( ( ( rule__LTLUnary__Group_0_0_0__0 ) ) | ( ( rule__LTLUnary__Group_0_0_1__0 ) ) | ( ( rule__LTLUnary__Group_0_0_2__0 ) ) | ( ( rule__LTLUnary__Group_0_0_3__0 ) ) ) + int alt56=4; + switch ( input.LA(1) ) { + case 91: + { + alt56=1; + } + break; + case 130: + { + alt56=2; + } + break; + case 52: + { + alt56=3; + } + break; + case 83: + { + alt56=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 56, 0, input); + + throw nvae; + } + + switch (alt56) { + case 1 : + // InternalFiacre.g:5289:2: ( ( rule__LTLUnary__Group_0_0_0__0 ) ) + { + // InternalFiacre.g:5289:2: ( ( rule__LTLUnary__Group_0_0_0__0 ) ) + // InternalFiacre.g:5290:3: ( rule__LTLUnary__Group_0_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getGroup_0_0_0()); + } + // InternalFiacre.g:5291:3: ( rule__LTLUnary__Group_0_0_0__0 ) + // InternalFiacre.g:5291:4: rule__LTLUnary__Group_0_0_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_0_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getGroup_0_0_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5295:2: ( ( rule__LTLUnary__Group_0_0_1__0 ) ) + { + // InternalFiacre.g:5295:2: ( ( rule__LTLUnary__Group_0_0_1__0 ) ) + // InternalFiacre.g:5296:3: ( rule__LTLUnary__Group_0_0_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getGroup_0_0_1()); + } + // InternalFiacre.g:5297:3: ( rule__LTLUnary__Group_0_0_1__0 ) + // InternalFiacre.g:5297:4: rule__LTLUnary__Group_0_0_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_0_0_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getGroup_0_0_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:5301:2: ( ( rule__LTLUnary__Group_0_0_2__0 ) ) + { + // InternalFiacre.g:5301:2: ( ( rule__LTLUnary__Group_0_0_2__0 ) ) + // InternalFiacre.g:5302:3: ( rule__LTLUnary__Group_0_0_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getGroup_0_0_2()); + } + // InternalFiacre.g:5303:3: ( rule__LTLUnary__Group_0_0_2__0 ) + // InternalFiacre.g:5303:4: rule__LTLUnary__Group_0_0_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_0_0_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getGroup_0_0_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:5307:2: ( ( rule__LTLUnary__Group_0_0_3__0 ) ) + { + // InternalFiacre.g:5307:2: ( ( rule__LTLUnary__Group_0_0_3__0 ) ) + // InternalFiacre.g:5308:3: ( rule__LTLUnary__Group_0_0_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getGroup_0_0_3()); + } + // InternalFiacre.g:5309:3: ( rule__LTLUnary__Group_0_0_3__0 ) + // InternalFiacre.g:5309:4: rule__LTLUnary__Group_0_0_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_0_0_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getGroup_0_0_3()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Alternatives_0_0" + + + // $ANTLR start "rule__AtomicLTL__Alternatives" + // InternalFiacre.g:5317:1: rule__AtomicLTL__Alternatives : ( ( ( rule__AtomicLTL__Group_0__0 ) ) | ( ruleObservableEvent ) | ( ( rule__AtomicLTL__Group_2__0 ) ) ); + public final void rule__AtomicLTL__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5321:1: ( ( ( rule__AtomicLTL__Group_0__0 ) ) | ( ruleObservableEvent ) | ( ( rule__AtomicLTL__Group_2__0 ) ) ) + int alt57=3; + switch ( input.LA(1) ) { + case RULE_ID: + { + int LA57_1 = input.LA(2); + + if ( (LA57_1==EOF||LA57_1==RULE_ID||LA57_1==19||LA57_1==23||(LA57_1>=26 && LA57_1<=27)||(LA57_1>=39 && LA57_1<=40)||LA57_1==48||(LA57_1>=79 && LA57_1<=81)||LA57_1==109||LA57_1==112||LA57_1==121||LA57_1==129) ) { + alt57=1; + } + else if ( (LA57_1==89) ) { + alt57=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 57, 1, input); + + throw nvae; + } + } + break; + case RULE_INT: + case 131: + case 132: + { + alt57=2; + } + break; + case 22: + { + alt57=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 57, 0, input); + + throw nvae; + } + + switch (alt57) { + case 1 : + // InternalFiacre.g:5322:2: ( ( rule__AtomicLTL__Group_0__0 ) ) + { + // InternalFiacre.g:5322:2: ( ( rule__AtomicLTL__Group_0__0 ) ) + // InternalFiacre.g:5323:3: ( rule__AtomicLTL__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getGroup_0()); + } + // InternalFiacre.g:5324:3: ( rule__AtomicLTL__Group_0__0 ) + // InternalFiacre.g:5324:4: rule__AtomicLTL__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicLTL__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5328:2: ( ruleObservableEvent ) + { + // InternalFiacre.g:5328:2: ( ruleObservableEvent ) + // InternalFiacre.g:5329:3: ruleObservableEvent + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getObservableEventParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservableEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getObservableEventParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:5334:2: ( ( rule__AtomicLTL__Group_2__0 ) ) + { + // InternalFiacre.g:5334:2: ( ( rule__AtomicLTL__Group_2__0 ) ) + // InternalFiacre.g:5335:3: ( rule__AtomicLTL__Group_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getGroup_2()); + } + // InternalFiacre.g:5336:3: ( rule__AtomicLTL__Group_2__0 ) + // InternalFiacre.g:5336:4: rule__AtomicLTL__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicLTL__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getGroup_2()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicLTL__Alternatives" + + + // $ANTLR start "rule__StateEvent__Alternatives" + // InternalFiacre.g:5344:1: rule__StateEvent__Alternatives : ( ( ruleEnterStateEvent ) | ( ruleLeaveStateEvent ) ); + public final void rule__StateEvent__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5348:1: ( ( ruleEnterStateEvent ) | ( ruleLeaveStateEvent ) ) + int alt58=2; + int LA58_0 = input.LA(1); + + if ( (LA58_0==131) ) { + alt58=1; + } + else if ( (LA58_0==132) ) { + alt58=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 58, 0, input); + + throw nvae; + } + switch (alt58) { + case 1 : + // InternalFiacre.g:5349:2: ( ruleEnterStateEvent ) + { + // InternalFiacre.g:5349:2: ( ruleEnterStateEvent ) + // InternalFiacre.g:5350:3: ruleEnterStateEvent + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateEventAccess().getEnterStateEventParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleEnterStateEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStateEventAccess().getEnterStateEventParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5355:2: ( ruleLeaveStateEvent ) + { + // InternalFiacre.g:5355:2: ( ruleLeaveStateEvent ) + // InternalFiacre.g:5356:3: ruleLeaveStateEvent + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateEventAccess().getLeaveStateEventParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLeaveStateEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStateEventAccess().getLeaveStateEventParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateEvent__Alternatives" + + + // $ANTLR start "rule__ObservableNegation__Alternatives" + // InternalFiacre.g:5365:1: rule__ObservableNegation__Alternatives : ( ( ( rule__ObservableNegation__Group_0__0 ) ) | ( ruleAtomicObservable ) ); + public final void rule__ObservableNegation__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5369:1: ( ( ( rule__ObservableNegation__Group_0__0 ) ) | ( ruleAtomicObservable ) ) + int alt59=2; + int LA59_0 = input.LA(1); + + if ( (LA59_0==91) ) { + alt59=1; + } + else if ( (LA59_0==RULE_ID||LA59_0==RULE_INT||LA59_0==22||(LA59_0>=131 && LA59_0<=132)) ) { + alt59=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 59, 0, input); + + throw nvae; + } + switch (alt59) { + case 1 : + // InternalFiacre.g:5370:2: ( ( rule__ObservableNegation__Group_0__0 ) ) + { + // InternalFiacre.g:5370:2: ( ( rule__ObservableNegation__Group_0__0 ) ) + // InternalFiacre.g:5371:3: ( rule__ObservableNegation__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableNegationAccess().getGroup_0()); + } + // InternalFiacre.g:5372:3: ( rule__ObservableNegation__Group_0__0 ) + // InternalFiacre.g:5372:4: rule__ObservableNegation__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableNegation__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableNegationAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5376:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:5376:2: ( ruleAtomicObservable ) + // InternalFiacre.g:5377:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableNegationAccess().getAtomicObservableParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableNegationAccess().getAtomicObservableParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableNegation__Alternatives" + + + // $ANTLR start "rule__AtomicObservable__Alternatives" + // InternalFiacre.g:5386:1: rule__AtomicObservable__Alternatives : ( ( ( rule__AtomicObservable__Group_0__0 ) ) | ( ruleObservableEvent ) ); + public final void rule__AtomicObservable__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5390:1: ( ( ( rule__AtomicObservable__Group_0__0 ) ) | ( ruleObservableEvent ) ) + int alt60=2; + int LA60_0 = input.LA(1); + + if ( (LA60_0==22) ) { + alt60=1; + } + else if ( (LA60_0==RULE_ID||LA60_0==RULE_INT||(LA60_0>=131 && LA60_0<=132)) ) { + alt60=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 60, 0, input); + + throw nvae; + } + switch (alt60) { + case 1 : + // InternalFiacre.g:5391:2: ( ( rule__AtomicObservable__Group_0__0 ) ) + { + // InternalFiacre.g:5391:2: ( ( rule__AtomicObservable__Group_0__0 ) ) + // InternalFiacre.g:5392:3: ( rule__AtomicObservable__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicObservableAccess().getGroup_0()); + } + // InternalFiacre.g:5393:3: ( rule__AtomicObservable__Group_0__0 ) + // InternalFiacre.g:5393:4: rule__AtomicObservable__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicObservable__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicObservableAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5397:2: ( ruleObservableEvent ) + { + // InternalFiacre.g:5397:2: ( ruleObservableEvent ) + // InternalFiacre.g:5398:3: ruleObservableEvent + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicObservableAccess().getObservableEventParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservableEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicObservableAccess().getObservableEventParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicObservable__Alternatives" + + + // $ANTLR start "rule__ObservableEvent__Alternatives" + // InternalFiacre.g:5407:1: rule__ObservableEvent__Alternatives : ( ( rulePathEvent ) | ( ruleStateEvent ) ); + public final void rule__ObservableEvent__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5411:1: ( ( rulePathEvent ) | ( ruleStateEvent ) ) + int alt61=2; + int LA61_0 = input.LA(1); + + if ( (LA61_0==RULE_ID||LA61_0==RULE_INT) ) { + alt61=1; + } + else if ( ((LA61_0>=131 && LA61_0<=132)) ) { + alt61=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 61, 0, input); + + throw nvae; + } + switch (alt61) { + case 1 : + // InternalFiacre.g:5412:2: ( rulePathEvent ) + { + // InternalFiacre.g:5412:2: ( rulePathEvent ) + // InternalFiacre.g:5413:3: rulePathEvent + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableEventAccess().getPathEventParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePathEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableEventAccess().getPathEventParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5418:2: ( ruleStateEvent ) + { + // InternalFiacre.g:5418:2: ( ruleStateEvent ) + // InternalFiacre.g:5419:3: ruleStateEvent + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableEventAccess().getStateEventParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStateEvent(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableEventAccess().getStateEventParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableEvent__Alternatives" + + + // $ANTLR start "rule__PathItem__Alternatives" + // InternalFiacre.g:5428:1: rule__PathItem__Alternatives : ( ( ruleNaturalItem ) | ( ruleNamedItem ) ); + public final void rule__PathItem__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5432:1: ( ( ruleNaturalItem ) | ( ruleNamedItem ) ) + int alt62=2; + int LA62_0 = input.LA(1); + + if ( (LA62_0==RULE_INT) ) { + alt62=1; + } + else if ( (LA62_0==RULE_ID) ) { + alt62=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 62, 0, input); + + throw nvae; + } + switch (alt62) { + case 1 : + // InternalFiacre.g:5433:2: ( ruleNaturalItem ) + { + // InternalFiacre.g:5433:2: ( ruleNaturalItem ) + // InternalFiacre.g:5434:3: ruleNaturalItem + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathItemAccess().getNaturalItemParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleNaturalItem(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPathItemAccess().getNaturalItemParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5439:2: ( ruleNamedItem ) + { + // InternalFiacre.g:5439:2: ( ruleNamedItem ) + // InternalFiacre.g:5440:3: ruleNamedItem + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathItemAccess().getNamedItemParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleNamedItem(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPathItemAccess().getNamedItemParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PathItem__Alternatives" + + + // $ANTLR start "rule__Subject__Alternatives" + // InternalFiacre.g:5449:1: rule__Subject__Alternatives : ( ( ruleStateSubject ) | ( ruleValueSubject ) | ( ruleTagSubject ) | ( ruleEventSubject ) ); + public final void rule__Subject__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5453:1: ( ( ruleStateSubject ) | ( ruleValueSubject ) | ( ruleTagSubject ) | ( ruleEventSubject ) ) + int alt63=4; + switch ( input.LA(1) ) { + case 133: + { + alt63=1; + } + break; + case 134: + { + alt63=2; + } + break; + case 135: + { + alt63=3; + } + break; + case 136: + { + alt63=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 63, 0, input); + + throw nvae; + } + + switch (alt63) { + case 1 : + // InternalFiacre.g:5454:2: ( ruleStateSubject ) + { + // InternalFiacre.g:5454:2: ( ruleStateSubject ) + // InternalFiacre.g:5455:3: ruleStateSubject + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubjectAccess().getStateSubjectParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStateSubject(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSubjectAccess().getStateSubjectParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5460:2: ( ruleValueSubject ) + { + // InternalFiacre.g:5460:2: ( ruleValueSubject ) + // InternalFiacre.g:5461:3: ruleValueSubject + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubjectAccess().getValueSubjectParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleValueSubject(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSubjectAccess().getValueSubjectParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:5466:2: ( ruleTagSubject ) + { + // InternalFiacre.g:5466:2: ( ruleTagSubject ) + // InternalFiacre.g:5467:3: ruleTagSubject + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubjectAccess().getTagSubjectParserRuleCall_2()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleTagSubject(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSubjectAccess().getTagSubjectParserRuleCall_2()); + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:5472:2: ( ruleEventSubject ) + { + // InternalFiacre.g:5472:2: ( ruleEventSubject ) + // InternalFiacre.g:5473:3: ruleEventSubject + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubjectAccess().getEventSubjectParserRuleCall_3()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleEventSubject(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSubjectAccess().getEventSubjectParserRuleCall_3()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Subject__Alternatives" + + + // $ANTLR start "rule__Model__Group__0" + // InternalFiacre.g:5482:1: rule__Model__Group__0 : rule__Model__Group__0__Impl rule__Model__Group__1 ; + public final void rule__Model__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5486:1: ( rule__Model__Group__0__Impl rule__Model__Group__1 ) + // InternalFiacre.g:5487:2: rule__Model__Group__0__Impl rule__Model__Group__1 + { + pushFollow(FollowSets000.FOLLOW_4); + rule__Model__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Model__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__Group__0" + + + // $ANTLR start "rule__Model__Group__0__Impl" + // InternalFiacre.g:5494:1: rule__Model__Group__0__Impl : ( () ) ; + public final void rule__Model__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5498:1: ( ( () ) ) + // InternalFiacre.g:5499:1: ( () ) + { + // InternalFiacre.g:5499:1: ( () ) + // InternalFiacre.g:5500:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getModelAction_0()); + } + // InternalFiacre.g:5501:2: () + // InternalFiacre.g:5501:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getModelAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__Group__0__Impl" + + + // $ANTLR start "rule__Model__Group__1" + // InternalFiacre.g:5509:1: rule__Model__Group__1 : rule__Model__Group__1__Impl rule__Model__Group__2 ; + public final void rule__Model__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5513:1: ( rule__Model__Group__1__Impl rule__Model__Group__2 ) + // InternalFiacre.g:5514:2: rule__Model__Group__1__Impl rule__Model__Group__2 + { + pushFollow(FollowSets000.FOLLOW_4); + rule__Model__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Model__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__Group__1" + + + // $ANTLR start "rule__Model__Group__1__Impl" + // InternalFiacre.g:5521:1: rule__Model__Group__1__Impl : ( ( rule__Model__ImportsAssignment_1 )* ) ; + public final void rule__Model__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5525:1: ( ( ( rule__Model__ImportsAssignment_1 )* ) ) + // InternalFiacre.g:5526:1: ( ( rule__Model__ImportsAssignment_1 )* ) + { + // InternalFiacre.g:5526:1: ( ( rule__Model__ImportsAssignment_1 )* ) + // InternalFiacre.g:5527:2: ( rule__Model__ImportsAssignment_1 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getImportsAssignment_1()); + } + // InternalFiacre.g:5528:2: ( rule__Model__ImportsAssignment_1 )* + loop64: + do { + int alt64=2; + int LA64_0 = input.LA(1); + + if ( (LA64_0==18) ) { + alt64=1; + } + + + switch (alt64) { + case 1 : + // InternalFiacre.g:5528:3: rule__Model__ImportsAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_5); + rule__Model__ImportsAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop64; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getImportsAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__Group__1__Impl" + + + // $ANTLR start "rule__Model__Group__2" + // InternalFiacre.g:5536:1: rule__Model__Group__2 : rule__Model__Group__2__Impl ; + public final void rule__Model__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5540:1: ( rule__Model__Group__2__Impl ) + // InternalFiacre.g:5541:2: rule__Model__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Model__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__Group__2" + + + // $ANTLR start "rule__Model__Group__2__Impl" + // InternalFiacre.g:5547:1: rule__Model__Group__2__Impl : ( ( rule__Model__Alternatives_2 )* ) ; + public final void rule__Model__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5551:1: ( ( ( rule__Model__Alternatives_2 )* ) ) + // InternalFiacre.g:5552:1: ( ( rule__Model__Alternatives_2 )* ) + { + // InternalFiacre.g:5552:1: ( ( rule__Model__Alternatives_2 )* ) + // InternalFiacre.g:5553:2: ( rule__Model__Alternatives_2 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getAlternatives_2()); + } + // InternalFiacre.g:5554:2: ( rule__Model__Alternatives_2 )* + loop65: + do { + int alt65=2; + int LA65_0 = input.LA(1); + + if ( (LA65_0==RULE_ID||LA65_0==19||(LA65_0>=26 && LA65_0<=27)||(LA65_0>=39 && LA65_0<=40)||LA65_0==48||LA65_0==109||LA65_0==112) ) { + alt65=1; + } + + + switch (alt65) { + case 1 : + // InternalFiacre.g:5554:3: rule__Model__Alternatives_2 + { + pushFollow(FollowSets000.FOLLOW_6); + rule__Model__Alternatives_2(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop65; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getAlternatives_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__Group__2__Impl" + + + // $ANTLR start "rule__Root__Group__0" + // InternalFiacre.g:5563:1: rule__Root__Group__0 : rule__Root__Group__0__Impl rule__Root__Group__1 ; + public final void rule__Root__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5567:1: ( rule__Root__Group__0__Impl rule__Root__Group__1 ) + // InternalFiacre.g:5568:2: rule__Root__Group__0__Impl rule__Root__Group__1 + { + pushFollow(FollowSets000.FOLLOW_7); + rule__Root__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group__0" + + + // $ANTLR start "rule__Root__Group__0__Impl" + // InternalFiacre.g:5575:1: rule__Root__Group__0__Impl : ( () ) ; + public final void rule__Root__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5579:1: ( ( () ) ) + // InternalFiacre.g:5580:1: ( () ) + { + // InternalFiacre.g:5580:1: ( () ) + // InternalFiacre.g:5581:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getRootAction_0()); + } + // InternalFiacre.g:5582:2: () + // InternalFiacre.g:5582:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getRootAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group__0__Impl" + + + // $ANTLR start "rule__Root__Group__1" + // InternalFiacre.g:5590:1: rule__Root__Group__1 : rule__Root__Group__1__Impl rule__Root__Group__2 ; + public final void rule__Root__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5594:1: ( rule__Root__Group__1__Impl rule__Root__Group__2 ) + // InternalFiacre.g:5595:2: rule__Root__Group__1__Impl rule__Root__Group__2 + { + pushFollow(FollowSets000.FOLLOW_8); + rule__Root__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group__1" + + + // $ANTLR start "rule__Root__Group__1__Impl" + // InternalFiacre.g:5602:1: rule__Root__Group__1__Impl : ( ( rule__Root__DeclarationAssignment_1 ) ) ; + public final void rule__Root__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5606:1: ( ( ( rule__Root__DeclarationAssignment_1 ) ) ) + // InternalFiacre.g:5607:1: ( ( rule__Root__DeclarationAssignment_1 ) ) + { + // InternalFiacre.g:5607:1: ( ( rule__Root__DeclarationAssignment_1 ) ) + // InternalFiacre.g:5608:2: ( rule__Root__DeclarationAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getDeclarationAssignment_1()); + } + // InternalFiacre.g:5609:2: ( rule__Root__DeclarationAssignment_1 ) + // InternalFiacre.g:5609:3: rule__Root__DeclarationAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__DeclarationAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getDeclarationAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group__1__Impl" + + + // $ANTLR start "rule__Root__Group__2" + // InternalFiacre.g:5617:1: rule__Root__Group__2 : rule__Root__Group__2__Impl ; + public final void rule__Root__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5621:1: ( rule__Root__Group__2__Impl ) + // InternalFiacre.g:5622:2: rule__Root__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group__2" + + + // $ANTLR start "rule__Root__Group__2__Impl" + // InternalFiacre.g:5628:1: rule__Root__Group__2__Impl : ( ( rule__Root__Group_2__0 )? ) ; + public final void rule__Root__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5632:1: ( ( ( rule__Root__Group_2__0 )? ) ) + // InternalFiacre.g:5633:1: ( ( rule__Root__Group_2__0 )? ) + { + // InternalFiacre.g:5633:1: ( ( rule__Root__Group_2__0 )? ) + // InternalFiacre.g:5634:2: ( rule__Root__Group_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getGroup_2()); + } + // InternalFiacre.g:5635:2: ( rule__Root__Group_2__0 )? + int alt66=2; + int LA66_0 = input.LA(1); + + if ( (LA66_0==16) ) { + alt66=1; + } + switch (alt66) { + case 1 : + // InternalFiacre.g:5635:3: rule__Root__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group__2__Impl" + + + // $ANTLR start "rule__Root__Group_2__0" + // InternalFiacre.g:5644:1: rule__Root__Group_2__0 : rule__Root__Group_2__0__Impl rule__Root__Group_2__1 ; + public final void rule__Root__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5648:1: ( rule__Root__Group_2__0__Impl rule__Root__Group_2__1 ) + // InternalFiacre.g:5649:2: rule__Root__Group_2__0__Impl rule__Root__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__Root__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group_2__0" + + + // $ANTLR start "rule__Root__Group_2__0__Impl" + // InternalFiacre.g:5656:1: rule__Root__Group_2__0__Impl : ( '>' ) ; + public final void rule__Root__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5660:1: ( ( '>' ) ) + // InternalFiacre.g:5661:1: ( '>' ) + { + // InternalFiacre.g:5661:1: ( '>' ) + // InternalFiacre.g:5662:2: '>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getGreaterThanSignKeyword_2_0()); + } + match(input,16,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getGreaterThanSignKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group_2__0__Impl" + + + // $ANTLR start "rule__Root__Group_2__1" + // InternalFiacre.g:5671:1: rule__Root__Group_2__1 : rule__Root__Group_2__1__Impl ; + public final void rule__Root__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5675:1: ( rule__Root__Group_2__1__Impl ) + // InternalFiacre.g:5676:2: rule__Root__Group_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__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__Root__Group_2__1" + + + // $ANTLR start "rule__Root__Group_2__1__Impl" + // InternalFiacre.g:5682:1: rule__Root__Group_2__1__Impl : ( ( rule__Root__Group_2_1__0 ) ) ; + public final void rule__Root__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5686:1: ( ( ( rule__Root__Group_2_1__0 ) ) ) + // InternalFiacre.g:5687:1: ( ( rule__Root__Group_2_1__0 ) ) + { + // InternalFiacre.g:5687:1: ( ( rule__Root__Group_2_1__0 ) ) + // InternalFiacre.g:5688:2: ( rule__Root__Group_2_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getGroup_2_1()); + } + // InternalFiacre.g:5689:2: ( rule__Root__Group_2_1__0 ) + // InternalFiacre.g:5689:3: rule__Root__Group_2_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__Group_2_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getGroup_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group_2__1__Impl" + + + // $ANTLR start "rule__Root__Group_2_1__0" + // InternalFiacre.g:5698:1: rule__Root__Group_2_1__0 : rule__Root__Group_2_1__0__Impl rule__Root__Group_2_1__1 ; + public final void rule__Root__Group_2_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5702:1: ( rule__Root__Group_2_1__0__Impl rule__Root__Group_2_1__1 ) + // InternalFiacre.g:5703:2: rule__Root__Group_2_1__0__Impl rule__Root__Group_2_1__1 + { + pushFollow(FollowSets000.FOLLOW_10); + rule__Root__Group_2_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__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__Root__Group_2_1__0" + + + // $ANTLR start "rule__Root__Group_2_1__0__Impl" + // InternalFiacre.g:5710:1: rule__Root__Group_2_1__0__Impl : ( ( rule__Root__ObservedAssignment_2_1_0 ) ) ; + public final void rule__Root__Group_2_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5714:1: ( ( ( rule__Root__ObservedAssignment_2_1_0 ) ) ) + // InternalFiacre.g:5715:1: ( ( rule__Root__ObservedAssignment_2_1_0 ) ) + { + // InternalFiacre.g:5715:1: ( ( rule__Root__ObservedAssignment_2_1_0 ) ) + // InternalFiacre.g:5716:2: ( rule__Root__ObservedAssignment_2_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getObservedAssignment_2_1_0()); + } + // InternalFiacre.g:5717:2: ( rule__Root__ObservedAssignment_2_1_0 ) + // InternalFiacre.g:5717:3: rule__Root__ObservedAssignment_2_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__ObservedAssignment_2_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getObservedAssignment_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group_2_1__0__Impl" + + + // $ANTLR start "rule__Root__Group_2_1__1" + // InternalFiacre.g:5725:1: rule__Root__Group_2_1__1 : rule__Root__Group_2_1__1__Impl ; + public final void rule__Root__Group_2_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5729:1: ( rule__Root__Group_2_1__1__Impl ) + // InternalFiacre.g:5730:2: rule__Root__Group_2_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__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__Root__Group_2_1__1" + + + // $ANTLR start "rule__Root__Group_2_1__1__Impl" + // InternalFiacre.g:5736:1: rule__Root__Group_2_1__1__Impl : ( ( rule__Root__Group_2_1_1__0 )* ) ; + public final void rule__Root__Group_2_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5740:1: ( ( ( rule__Root__Group_2_1_1__0 )* ) ) + // InternalFiacre.g:5741:1: ( ( rule__Root__Group_2_1_1__0 )* ) + { + // InternalFiacre.g:5741:1: ( ( rule__Root__Group_2_1_1__0 )* ) + // InternalFiacre.g:5742:2: ( rule__Root__Group_2_1_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getGroup_2_1_1()); + } + // InternalFiacre.g:5743:2: ( rule__Root__Group_2_1_1__0 )* + loop67: + do { + int alt67=2; + int LA67_0 = input.LA(1); + + if ( (LA67_0==17) ) { + alt67=1; + } + + + switch (alt67) { + case 1 : + // InternalFiacre.g:5743:3: rule__Root__Group_2_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_11); + rule__Root__Group_2_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop67; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getGroup_2_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group_2_1__1__Impl" + + + // $ANTLR start "rule__Root__Group_2_1_1__0" + // InternalFiacre.g:5752:1: rule__Root__Group_2_1_1__0 : rule__Root__Group_2_1_1__0__Impl rule__Root__Group_2_1_1__1 ; + public final void rule__Root__Group_2_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5756:1: ( rule__Root__Group_2_1_1__0__Impl rule__Root__Group_2_1_1__1 ) + // InternalFiacre.g:5757:2: rule__Root__Group_2_1_1__0__Impl rule__Root__Group_2_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__Root__Group_2_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__Group_2_1_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group_2_1_1__0" + + + // $ANTLR start "rule__Root__Group_2_1_1__0__Impl" + // InternalFiacre.g:5764:1: rule__Root__Group_2_1_1__0__Impl : ( '|' ) ; + public final void rule__Root__Group_2_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5768:1: ( ( '|' ) ) + // InternalFiacre.g:5769:1: ( '|' ) + { + // InternalFiacre.g:5769:1: ( '|' ) + // InternalFiacre.g:5770:2: '|' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getVerticalLineKeyword_2_1_1_0()); + } + match(input,17,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getVerticalLineKeyword_2_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group_2_1_1__0__Impl" + + + // $ANTLR start "rule__Root__Group_2_1_1__1" + // InternalFiacre.g:5779:1: rule__Root__Group_2_1_1__1 : rule__Root__Group_2_1_1__1__Impl ; + public final void rule__Root__Group_2_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5783:1: ( rule__Root__Group_2_1_1__1__Impl ) + // InternalFiacre.g:5784:2: rule__Root__Group_2_1_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__Group_2_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__Root__Group_2_1_1__1" + + + // $ANTLR start "rule__Root__Group_2_1_1__1__Impl" + // InternalFiacre.g:5790:1: rule__Root__Group_2_1_1__1__Impl : ( ( rule__Root__ObservedAssignment_2_1_1_1 ) ) ; + public final void rule__Root__Group_2_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5794:1: ( ( ( rule__Root__ObservedAssignment_2_1_1_1 ) ) ) + // InternalFiacre.g:5795:1: ( ( rule__Root__ObservedAssignment_2_1_1_1 ) ) + { + // InternalFiacre.g:5795:1: ( ( rule__Root__ObservedAssignment_2_1_1_1 ) ) + // InternalFiacre.g:5796:2: ( rule__Root__ObservedAssignment_2_1_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getObservedAssignment_2_1_1_1()); + } + // InternalFiacre.g:5797:2: ( rule__Root__ObservedAssignment_2_1_1_1 ) + // InternalFiacre.g:5797:3: rule__Root__ObservedAssignment_2_1_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Root__ObservedAssignment_2_1_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getObservedAssignment_2_1_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__Group_2_1_1__1__Impl" + + + // $ANTLR start "rule__ImportDeclaration__Group__0" + // InternalFiacre.g:5806:1: rule__ImportDeclaration__Group__0 : rule__ImportDeclaration__Group__0__Impl rule__ImportDeclaration__Group__1 ; + public final void rule__ImportDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5810:1: ( rule__ImportDeclaration__Group__0__Impl rule__ImportDeclaration__Group__1 ) + // InternalFiacre.g:5811:2: rule__ImportDeclaration__Group__0__Impl rule__ImportDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_12); + rule__ImportDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ImportDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ImportDeclaration__Group__0" + + + // $ANTLR start "rule__ImportDeclaration__Group__0__Impl" + // InternalFiacre.g:5818:1: rule__ImportDeclaration__Group__0__Impl : ( '#include' ) ; + public final void rule__ImportDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5822:1: ( ( '#include' ) ) + // InternalFiacre.g:5823:1: ( '#include' ) + { + // InternalFiacre.g:5823:1: ( '#include' ) + // InternalFiacre.g:5824:2: '#include' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImportDeclarationAccess().getIncludeKeyword_0()); + } + match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getImportDeclarationAccess().getIncludeKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ImportDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ImportDeclaration__Group__1" + // InternalFiacre.g:5833:1: rule__ImportDeclaration__Group__1 : rule__ImportDeclaration__Group__1__Impl ; + public final void rule__ImportDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5837:1: ( rule__ImportDeclaration__Group__1__Impl ) + // InternalFiacre.g:5838:2: rule__ImportDeclaration__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ImportDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ImportDeclaration__Group__1" + + + // $ANTLR start "rule__ImportDeclaration__Group__1__Impl" + // InternalFiacre.g:5844:1: rule__ImportDeclaration__Group__1__Impl : ( ( rule__ImportDeclaration__ImportURIAssignment_1 ) ) ; + public final void rule__ImportDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5848:1: ( ( ( rule__ImportDeclaration__ImportURIAssignment_1 ) ) ) + // InternalFiacre.g:5849:1: ( ( rule__ImportDeclaration__ImportURIAssignment_1 ) ) + { + // InternalFiacre.g:5849:1: ( ( rule__ImportDeclaration__ImportURIAssignment_1 ) ) + // InternalFiacre.g:5850:2: ( rule__ImportDeclaration__ImportURIAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1()); + } + // InternalFiacre.g:5851:2: ( rule__ImportDeclaration__ImportURIAssignment_1 ) + // InternalFiacre.g:5851:3: rule__ImportDeclaration__ImportURIAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ImportDeclaration__ImportURIAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ImportDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group__0" + // InternalFiacre.g:5860:1: rule__FunctionDeclaration__Group__0 : rule__FunctionDeclaration__Group__0__Impl rule__FunctionDeclaration__Group__1 ; + public final void rule__FunctionDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5864:1: ( rule__FunctionDeclaration__Group__0__Impl rule__FunctionDeclaration__Group__1 ) + // InternalFiacre.g:5865:2: rule__FunctionDeclaration__Group__0__Impl rule__FunctionDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__FunctionDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__0" + + + // $ANTLR start "rule__FunctionDeclaration__Group__0__Impl" + // InternalFiacre.g:5872:1: rule__FunctionDeclaration__Group__0__Impl : ( 'function' ) ; + public final void rule__FunctionDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5876:1: ( ( 'function' ) ) + // InternalFiacre.g:5877:1: ( 'function' ) + { + // InternalFiacre.g:5877:1: ( 'function' ) + // InternalFiacre.g:5878:2: 'function' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getFunctionKeyword_0()); + } + match(input,19,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getFunctionKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group__1" + // InternalFiacre.g:5887:1: rule__FunctionDeclaration__Group__1 : rule__FunctionDeclaration__Group__1__Impl rule__FunctionDeclaration__Group__2 ; + public final void rule__FunctionDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5891:1: ( rule__FunctionDeclaration__Group__1__Impl rule__FunctionDeclaration__Group__2 ) + // InternalFiacre.g:5892:2: rule__FunctionDeclaration__Group__1__Impl rule__FunctionDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_13); + rule__FunctionDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__1" + + + // $ANTLR start "rule__FunctionDeclaration__Group__1__Impl" + // InternalFiacre.g:5899:1: rule__FunctionDeclaration__Group__1__Impl : ( ( rule__FunctionDeclaration__NameAssignment_1 ) ) ; + public final void rule__FunctionDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5903:1: ( ( ( rule__FunctionDeclaration__NameAssignment_1 ) ) ) + // InternalFiacre.g:5904:1: ( ( rule__FunctionDeclaration__NameAssignment_1 ) ) + { + // InternalFiacre.g:5904:1: ( ( rule__FunctionDeclaration__NameAssignment_1 ) ) + // InternalFiacre.g:5905:2: ( rule__FunctionDeclaration__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getNameAssignment_1()); + } + // InternalFiacre.g:5906:2: ( rule__FunctionDeclaration__NameAssignment_1 ) + // InternalFiacre.g:5906:3: rule__FunctionDeclaration__NameAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group__2" + // InternalFiacre.g:5914:1: rule__FunctionDeclaration__Group__2 : rule__FunctionDeclaration__Group__2__Impl rule__FunctionDeclaration__Group__3 ; + public final void rule__FunctionDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5918:1: ( rule__FunctionDeclaration__Group__2__Impl rule__FunctionDeclaration__Group__3 ) + // InternalFiacre.g:5919:2: rule__FunctionDeclaration__Group__2__Impl rule__FunctionDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_14); + rule__FunctionDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__2" + + + // $ANTLR start "rule__FunctionDeclaration__Group__2__Impl" + // InternalFiacre.g:5926:1: rule__FunctionDeclaration__Group__2__Impl : ( ( rule__FunctionDeclaration__Group_2__0 ) ) ; + public final void rule__FunctionDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5930:1: ( ( ( rule__FunctionDeclaration__Group_2__0 ) ) ) + // InternalFiacre.g:5931:1: ( ( rule__FunctionDeclaration__Group_2__0 ) ) + { + // InternalFiacre.g:5931:1: ( ( rule__FunctionDeclaration__Group_2__0 ) ) + // InternalFiacre.g:5932:2: ( rule__FunctionDeclaration__Group_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getGroup_2()); + } + // InternalFiacre.g:5933:2: ( rule__FunctionDeclaration__Group_2__0 ) + // InternalFiacre.g:5933:3: rule__FunctionDeclaration__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group__3" + // InternalFiacre.g:5941:1: rule__FunctionDeclaration__Group__3 : rule__FunctionDeclaration__Group__3__Impl rule__FunctionDeclaration__Group__4 ; + public final void rule__FunctionDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5945:1: ( rule__FunctionDeclaration__Group__3__Impl rule__FunctionDeclaration__Group__4 ) + // InternalFiacre.g:5946:2: rule__FunctionDeclaration__Group__3__Impl rule__FunctionDeclaration__Group__4 + { + pushFollow(FollowSets000.FOLLOW_15); + rule__FunctionDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__3" + + + // $ANTLR start "rule__FunctionDeclaration__Group__3__Impl" + // InternalFiacre.g:5953:1: rule__FunctionDeclaration__Group__3__Impl : ( ':' ) ; + public final void rule__FunctionDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5957:1: ( ( ':' ) ) + // InternalFiacre.g:5958:1: ( ':' ) + { + // InternalFiacre.g:5958:1: ( ':' ) + // InternalFiacre.g:5959:2: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getColonKeyword_3()); + } + match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getColonKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group__4" + // InternalFiacre.g:5968:1: rule__FunctionDeclaration__Group__4 : rule__FunctionDeclaration__Group__4__Impl rule__FunctionDeclaration__Group__5 ; + public final void rule__FunctionDeclaration__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5972:1: ( rule__FunctionDeclaration__Group__4__Impl rule__FunctionDeclaration__Group__5 ) + // InternalFiacre.g:5973:2: rule__FunctionDeclaration__Group__4__Impl rule__FunctionDeclaration__Group__5 + { + pushFollow(FollowSets000.FOLLOW_16); + rule__FunctionDeclaration__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__4" + + + // $ANTLR start "rule__FunctionDeclaration__Group__4__Impl" + // InternalFiacre.g:5980:1: rule__FunctionDeclaration__Group__4__Impl : ( ( rule__FunctionDeclaration__TypeAssignment_4 ) ) ; + public final void rule__FunctionDeclaration__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5984:1: ( ( ( rule__FunctionDeclaration__TypeAssignment_4 ) ) ) + // InternalFiacre.g:5985:1: ( ( rule__FunctionDeclaration__TypeAssignment_4 ) ) + { + // InternalFiacre.g:5985:1: ( ( rule__FunctionDeclaration__TypeAssignment_4 ) ) + // InternalFiacre.g:5986:2: ( rule__FunctionDeclaration__TypeAssignment_4 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getTypeAssignment_4()); + } + // InternalFiacre.g:5987:2: ( rule__FunctionDeclaration__TypeAssignment_4 ) + // InternalFiacre.g:5987:3: rule__FunctionDeclaration__TypeAssignment_4 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__TypeAssignment_4(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getTypeAssignment_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__4__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group__5" + // InternalFiacre.g:5995:1: rule__FunctionDeclaration__Group__5 : rule__FunctionDeclaration__Group__5__Impl rule__FunctionDeclaration__Group__6 ; + public final void rule__FunctionDeclaration__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:5999:1: ( rule__FunctionDeclaration__Group__5__Impl rule__FunctionDeclaration__Group__6 ) + // InternalFiacre.g:6000:2: rule__FunctionDeclaration__Group__5__Impl rule__FunctionDeclaration__Group__6 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__FunctionDeclaration__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__5" + + + // $ANTLR start "rule__FunctionDeclaration__Group__5__Impl" + // InternalFiacre.g:6007:1: rule__FunctionDeclaration__Group__5__Impl : ( 'is' ) ; + public final void rule__FunctionDeclaration__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6011:1: ( ( 'is' ) ) + // InternalFiacre.g:6012:1: ( 'is' ) + { + // InternalFiacre.g:6012:1: ( 'is' ) + // InternalFiacre.g:6013:2: 'is' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getIsKeyword_5()); + } + match(input,21,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getIsKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__5__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group__6" + // InternalFiacre.g:6022:1: rule__FunctionDeclaration__Group__6 : rule__FunctionDeclaration__Group__6__Impl rule__FunctionDeclaration__Group__7 ; + public final void rule__FunctionDeclaration__Group__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6026:1: ( rule__FunctionDeclaration__Group__6__Impl rule__FunctionDeclaration__Group__7 ) + // InternalFiacre.g:6027:2: rule__FunctionDeclaration__Group__6__Impl rule__FunctionDeclaration__Group__7 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__FunctionDeclaration__Group__6__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group__7(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__6" + + + // $ANTLR start "rule__FunctionDeclaration__Group__6__Impl" + // InternalFiacre.g:6034:1: rule__FunctionDeclaration__Group__6__Impl : ( ( rule__FunctionDeclaration__Group_6__0 )? ) ; + public final void rule__FunctionDeclaration__Group__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6038:1: ( ( ( rule__FunctionDeclaration__Group_6__0 )? ) ) + // InternalFiacre.g:6039:1: ( ( rule__FunctionDeclaration__Group_6__0 )? ) + { + // InternalFiacre.g:6039:1: ( ( rule__FunctionDeclaration__Group_6__0 )? ) + // InternalFiacre.g:6040:2: ( rule__FunctionDeclaration__Group_6__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getGroup_6()); + } + // InternalFiacre.g:6041:2: ( rule__FunctionDeclaration__Group_6__0 )? + int alt68=2; + int LA68_0 = input.LA(1); + + if ( (LA68_0==25) ) { + alt68=1; + } + switch (alt68) { + case 1 : + // InternalFiacre.g:6041:3: rule__FunctionDeclaration__Group_6__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getGroup_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__6__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group__7" + // InternalFiacre.g:6049:1: rule__FunctionDeclaration__Group__7 : rule__FunctionDeclaration__Group__7__Impl ; + public final void rule__FunctionDeclaration__Group__7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6053:1: ( rule__FunctionDeclaration__Group__7__Impl ) + // InternalFiacre.g:6054:2: rule__FunctionDeclaration__Group__7__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group__7__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__7" + + + // $ANTLR start "rule__FunctionDeclaration__Group__7__Impl" + // InternalFiacre.g:6060:1: rule__FunctionDeclaration__Group__7__Impl : ( ( rule__FunctionDeclaration__StatementAssignment_7 ) ) ; + public final void rule__FunctionDeclaration__Group__7__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6064:1: ( ( ( rule__FunctionDeclaration__StatementAssignment_7 ) ) ) + // InternalFiacre.g:6065:1: ( ( rule__FunctionDeclaration__StatementAssignment_7 ) ) + { + // InternalFiacre.g:6065:1: ( ( rule__FunctionDeclaration__StatementAssignment_7 ) ) + // InternalFiacre.g:6066:2: ( rule__FunctionDeclaration__StatementAssignment_7 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getStatementAssignment_7()); + } + // InternalFiacre.g:6067:2: ( rule__FunctionDeclaration__StatementAssignment_7 ) + // InternalFiacre.g:6067:3: rule__FunctionDeclaration__StatementAssignment_7 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__StatementAssignment_7(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getStatementAssignment_7()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group__7__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2__0" + // InternalFiacre.g:6076:1: rule__FunctionDeclaration__Group_2__0 : rule__FunctionDeclaration__Group_2__0__Impl rule__FunctionDeclaration__Group_2__1 ; + public final void rule__FunctionDeclaration__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6080:1: ( rule__FunctionDeclaration__Group_2__0__Impl rule__FunctionDeclaration__Group_2__1 ) + // InternalFiacre.g:6081:2: rule__FunctionDeclaration__Group_2__0__Impl rule__FunctionDeclaration__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_18); + rule__FunctionDeclaration__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_2__0" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2__0__Impl" + // InternalFiacre.g:6088:1: rule__FunctionDeclaration__Group_2__0__Impl : ( '(' ) ; + public final void rule__FunctionDeclaration__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6092:1: ( ( '(' ) ) + // InternalFiacre.g:6093:1: ( '(' ) + { + // InternalFiacre.g:6093:1: ( '(' ) + // InternalFiacre.g:6094:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getLeftParenthesisKeyword_2_0()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getLeftParenthesisKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_2__0__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2__1" + // InternalFiacre.g:6103:1: rule__FunctionDeclaration__Group_2__1 : rule__FunctionDeclaration__Group_2__1__Impl rule__FunctionDeclaration__Group_2__2 ; + public final void rule__FunctionDeclaration__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6107:1: ( rule__FunctionDeclaration__Group_2__1__Impl rule__FunctionDeclaration__Group_2__2 ) + // InternalFiacre.g:6108:2: rule__FunctionDeclaration__Group_2__1__Impl rule__FunctionDeclaration__Group_2__2 + { + pushFollow(FollowSets000.FOLLOW_18); + rule__FunctionDeclaration__Group_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_2__1" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2__1__Impl" + // InternalFiacre.g:6115:1: rule__FunctionDeclaration__Group_2__1__Impl : ( ( rule__FunctionDeclaration__Group_2_1__0 )? ) ; + public final void rule__FunctionDeclaration__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6119:1: ( ( ( rule__FunctionDeclaration__Group_2_1__0 )? ) ) + // InternalFiacre.g:6120:1: ( ( rule__FunctionDeclaration__Group_2_1__0 )? ) + { + // InternalFiacre.g:6120:1: ( ( rule__FunctionDeclaration__Group_2_1__0 )? ) + // InternalFiacre.g:6121:2: ( rule__FunctionDeclaration__Group_2_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getGroup_2_1()); + } + // InternalFiacre.g:6122:2: ( rule__FunctionDeclaration__Group_2_1__0 )? + int alt69=2; + int LA69_0 = input.LA(1); + + if ( (LA69_0==RULE_ID||LA69_0==99) ) { + alt69=1; + } + switch (alt69) { + case 1 : + // InternalFiacre.g:6122:3: rule__FunctionDeclaration__Group_2_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_2_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getGroup_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_2__1__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2__2" + // InternalFiacre.g:6130:1: rule__FunctionDeclaration__Group_2__2 : rule__FunctionDeclaration__Group_2__2__Impl ; + public final void rule__FunctionDeclaration__Group_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6134:1: ( rule__FunctionDeclaration__Group_2__2__Impl ) + // InternalFiacre.g:6135:2: rule__FunctionDeclaration__Group_2__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__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__FunctionDeclaration__Group_2__2" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2__2__Impl" + // InternalFiacre.g:6141:1: rule__FunctionDeclaration__Group_2__2__Impl : ( ')' ) ; + public final void rule__FunctionDeclaration__Group_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6145:1: ( ( ')' ) ) + // InternalFiacre.g:6146:1: ( ')' ) + { + // InternalFiacre.g:6146:1: ( ')' ) + // InternalFiacre.g:6147:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getRightParenthesisKeyword_2_2()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getRightParenthesisKeyword_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_2__2__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2_1__0" + // InternalFiacre.g:6157:1: rule__FunctionDeclaration__Group_2_1__0 : rule__FunctionDeclaration__Group_2_1__0__Impl rule__FunctionDeclaration__Group_2_1__1 ; + public final void rule__FunctionDeclaration__Group_2_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6161:1: ( rule__FunctionDeclaration__Group_2_1__0__Impl rule__FunctionDeclaration__Group_2_1__1 ) + // InternalFiacre.g:6162:2: rule__FunctionDeclaration__Group_2_1__0__Impl rule__FunctionDeclaration__Group_2_1__1 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__FunctionDeclaration__Group_2_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__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__FunctionDeclaration__Group_2_1__0" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2_1__0__Impl" + // InternalFiacre.g:6169:1: rule__FunctionDeclaration__Group_2_1__0__Impl : ( ( rule__FunctionDeclaration__ParametersAssignment_2_1_0 ) ) ; + public final void rule__FunctionDeclaration__Group_2_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6173:1: ( ( ( rule__FunctionDeclaration__ParametersAssignment_2_1_0 ) ) ) + // InternalFiacre.g:6174:1: ( ( rule__FunctionDeclaration__ParametersAssignment_2_1_0 ) ) + { + // InternalFiacre.g:6174:1: ( ( rule__FunctionDeclaration__ParametersAssignment_2_1_0 ) ) + // InternalFiacre.g:6175:2: ( rule__FunctionDeclaration__ParametersAssignment_2_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getParametersAssignment_2_1_0()); + } + // InternalFiacre.g:6176:2: ( rule__FunctionDeclaration__ParametersAssignment_2_1_0 ) + // InternalFiacre.g:6176:3: rule__FunctionDeclaration__ParametersAssignment_2_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__ParametersAssignment_2_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getParametersAssignment_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_2_1__0__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2_1__1" + // InternalFiacre.g:6184:1: rule__FunctionDeclaration__Group_2_1__1 : rule__FunctionDeclaration__Group_2_1__1__Impl ; + public final void rule__FunctionDeclaration__Group_2_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6188:1: ( rule__FunctionDeclaration__Group_2_1__1__Impl ) + // InternalFiacre.g:6189:2: rule__FunctionDeclaration__Group_2_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__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__FunctionDeclaration__Group_2_1__1" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2_1__1__Impl" + // InternalFiacre.g:6195:1: rule__FunctionDeclaration__Group_2_1__1__Impl : ( ( rule__FunctionDeclaration__Group_2_1_1__0 )* ) ; + public final void rule__FunctionDeclaration__Group_2_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6199:1: ( ( ( rule__FunctionDeclaration__Group_2_1_1__0 )* ) ) + // InternalFiacre.g:6200:1: ( ( rule__FunctionDeclaration__Group_2_1_1__0 )* ) + { + // InternalFiacre.g:6200:1: ( ( rule__FunctionDeclaration__Group_2_1_1__0 )* ) + // InternalFiacre.g:6201:2: ( rule__FunctionDeclaration__Group_2_1_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getGroup_2_1_1()); + } + // InternalFiacre.g:6202:2: ( rule__FunctionDeclaration__Group_2_1_1__0 )* + loop70: + do { + int alt70=2; + int LA70_0 = input.LA(1); + + if ( (LA70_0==24) ) { + alt70=1; + } + + + switch (alt70) { + case 1 : + // InternalFiacre.g:6202:3: rule__FunctionDeclaration__Group_2_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__FunctionDeclaration__Group_2_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop70; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getGroup_2_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_2_1__1__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2_1_1__0" + // InternalFiacre.g:6211:1: rule__FunctionDeclaration__Group_2_1_1__0 : rule__FunctionDeclaration__Group_2_1_1__0__Impl rule__FunctionDeclaration__Group_2_1_1__1 ; + public final void rule__FunctionDeclaration__Group_2_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6215:1: ( rule__FunctionDeclaration__Group_2_1_1__0__Impl rule__FunctionDeclaration__Group_2_1_1__1 ) + // InternalFiacre.g:6216:2: rule__FunctionDeclaration__Group_2_1_1__0__Impl rule__FunctionDeclaration__Group_2_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_21); + rule__FunctionDeclaration__Group_2_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_2_1_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_2_1_1__0" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2_1_1__0__Impl" + // InternalFiacre.g:6223:1: rule__FunctionDeclaration__Group_2_1_1__0__Impl : ( ',' ) ; + public final void rule__FunctionDeclaration__Group_2_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6227:1: ( ( ',' ) ) + // InternalFiacre.g:6228:1: ( ',' ) + { + // InternalFiacre.g:6228:1: ( ',' ) + // InternalFiacre.g:6229:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_2_1_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_2_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_2_1_1__0__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2_1_1__1" + // InternalFiacre.g:6238:1: rule__FunctionDeclaration__Group_2_1_1__1 : rule__FunctionDeclaration__Group_2_1_1__1__Impl ; + public final void rule__FunctionDeclaration__Group_2_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6242:1: ( rule__FunctionDeclaration__Group_2_1_1__1__Impl ) + // InternalFiacre.g:6243:2: rule__FunctionDeclaration__Group_2_1_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_2_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__FunctionDeclaration__Group_2_1_1__1" + + + // $ANTLR start "rule__FunctionDeclaration__Group_2_1_1__1__Impl" + // InternalFiacre.g:6249:1: rule__FunctionDeclaration__Group_2_1_1__1__Impl : ( ( rule__FunctionDeclaration__ParametersAssignment_2_1_1_1 ) ) ; + public final void rule__FunctionDeclaration__Group_2_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6253:1: ( ( ( rule__FunctionDeclaration__ParametersAssignment_2_1_1_1 ) ) ) + // InternalFiacre.g:6254:1: ( ( rule__FunctionDeclaration__ParametersAssignment_2_1_1_1 ) ) + { + // InternalFiacre.g:6254:1: ( ( rule__FunctionDeclaration__ParametersAssignment_2_1_1_1 ) ) + // InternalFiacre.g:6255:2: ( rule__FunctionDeclaration__ParametersAssignment_2_1_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getParametersAssignment_2_1_1_1()); + } + // InternalFiacre.g:6256:2: ( rule__FunctionDeclaration__ParametersAssignment_2_1_1_1 ) + // InternalFiacre.g:6256:3: rule__FunctionDeclaration__ParametersAssignment_2_1_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__ParametersAssignment_2_1_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getParametersAssignment_2_1_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_2_1_1__1__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_6__0" + // InternalFiacre.g:6265:1: rule__FunctionDeclaration__Group_6__0 : rule__FunctionDeclaration__Group_6__0__Impl rule__FunctionDeclaration__Group_6__1 ; + public final void rule__FunctionDeclaration__Group_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6269:1: ( rule__FunctionDeclaration__Group_6__0__Impl rule__FunctionDeclaration__Group_6__1 ) + // InternalFiacre.g:6270:2: rule__FunctionDeclaration__Group_6__0__Impl rule__FunctionDeclaration__Group_6__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__FunctionDeclaration__Group_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_6__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_6__0" + + + // $ANTLR start "rule__FunctionDeclaration__Group_6__0__Impl" + // InternalFiacre.g:6277:1: rule__FunctionDeclaration__Group_6__0__Impl : ( 'var' ) ; + public final void rule__FunctionDeclaration__Group_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6281:1: ( ( 'var' ) ) + // InternalFiacre.g:6282:1: ( 'var' ) + { + // InternalFiacre.g:6282:1: ( 'var' ) + // InternalFiacre.g:6283:2: 'var' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getVarKeyword_6_0()); + } + match(input,25,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getVarKeyword_6_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_6__0__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_6__1" + // InternalFiacre.g:6292:1: rule__FunctionDeclaration__Group_6__1 : rule__FunctionDeclaration__Group_6__1__Impl rule__FunctionDeclaration__Group_6__2 ; + public final void rule__FunctionDeclaration__Group_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6296:1: ( rule__FunctionDeclaration__Group_6__1__Impl rule__FunctionDeclaration__Group_6__2 ) + // InternalFiacre.g:6297:2: rule__FunctionDeclaration__Group_6__1__Impl rule__FunctionDeclaration__Group_6__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__FunctionDeclaration__Group_6__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_6__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_6__1" + + + // $ANTLR start "rule__FunctionDeclaration__Group_6__1__Impl" + // InternalFiacre.g:6304:1: rule__FunctionDeclaration__Group_6__1__Impl : ( ( rule__FunctionDeclaration__VariablesAssignment_6_1 ) ) ; + public final void rule__FunctionDeclaration__Group_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6308:1: ( ( ( rule__FunctionDeclaration__VariablesAssignment_6_1 ) ) ) + // InternalFiacre.g:6309:1: ( ( rule__FunctionDeclaration__VariablesAssignment_6_1 ) ) + { + // InternalFiacre.g:6309:1: ( ( rule__FunctionDeclaration__VariablesAssignment_6_1 ) ) + // InternalFiacre.g:6310:2: ( rule__FunctionDeclaration__VariablesAssignment_6_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getVariablesAssignment_6_1()); + } + // InternalFiacre.g:6311:2: ( rule__FunctionDeclaration__VariablesAssignment_6_1 ) + // InternalFiacre.g:6311:3: rule__FunctionDeclaration__VariablesAssignment_6_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__VariablesAssignment_6_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getVariablesAssignment_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_6__1__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_6__2" + // InternalFiacre.g:6319:1: rule__FunctionDeclaration__Group_6__2 : rule__FunctionDeclaration__Group_6__2__Impl ; + public final void rule__FunctionDeclaration__Group_6__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6323:1: ( rule__FunctionDeclaration__Group_6__2__Impl ) + // InternalFiacre.g:6324:2: rule__FunctionDeclaration__Group_6__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_6__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_6__2" + + + // $ANTLR start "rule__FunctionDeclaration__Group_6__2__Impl" + // InternalFiacre.g:6330:1: rule__FunctionDeclaration__Group_6__2__Impl : ( ( rule__FunctionDeclaration__Group_6_2__0 )* ) ; + public final void rule__FunctionDeclaration__Group_6__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6334:1: ( ( ( rule__FunctionDeclaration__Group_6_2__0 )* ) ) + // InternalFiacre.g:6335:1: ( ( rule__FunctionDeclaration__Group_6_2__0 )* ) + { + // InternalFiacre.g:6335:1: ( ( rule__FunctionDeclaration__Group_6_2__0 )* ) + // InternalFiacre.g:6336:2: ( rule__FunctionDeclaration__Group_6_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getGroup_6_2()); + } + // InternalFiacre.g:6337:2: ( rule__FunctionDeclaration__Group_6_2__0 )* + loop71: + do { + int alt71=2; + int LA71_0 = input.LA(1); + + if ( (LA71_0==24) ) { + alt71=1; + } + + + switch (alt71) { + case 1 : + // InternalFiacre.g:6337:3: rule__FunctionDeclaration__Group_6_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__FunctionDeclaration__Group_6_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop71; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getGroup_6_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_6__2__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_6_2__0" + // InternalFiacre.g:6346:1: rule__FunctionDeclaration__Group_6_2__0 : rule__FunctionDeclaration__Group_6_2__0__Impl rule__FunctionDeclaration__Group_6_2__1 ; + public final void rule__FunctionDeclaration__Group_6_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6350:1: ( rule__FunctionDeclaration__Group_6_2__0__Impl rule__FunctionDeclaration__Group_6_2__1 ) + // InternalFiacre.g:6351:2: rule__FunctionDeclaration__Group_6_2__0__Impl rule__FunctionDeclaration__Group_6_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__FunctionDeclaration__Group_6_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_6_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_6_2__0" + + + // $ANTLR start "rule__FunctionDeclaration__Group_6_2__0__Impl" + // InternalFiacre.g:6358:1: rule__FunctionDeclaration__Group_6_2__0__Impl : ( ',' ) ; + public final void rule__FunctionDeclaration__Group_6_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6362:1: ( ( ',' ) ) + // InternalFiacre.g:6363:1: ( ',' ) + { + // InternalFiacre.g:6363:1: ( ',' ) + // InternalFiacre.g:6364:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_6_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_6_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_6_2__0__Impl" + + + // $ANTLR start "rule__FunctionDeclaration__Group_6_2__1" + // InternalFiacre.g:6373:1: rule__FunctionDeclaration__Group_6_2__1 : rule__FunctionDeclaration__Group_6_2__1__Impl ; + public final void rule__FunctionDeclaration__Group_6_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6377:1: ( rule__FunctionDeclaration__Group_6_2__1__Impl ) + // InternalFiacre.g:6378:2: rule__FunctionDeclaration__Group_6_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__Group_6_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_6_2__1" + + + // $ANTLR start "rule__FunctionDeclaration__Group_6_2__1__Impl" + // InternalFiacre.g:6384:1: rule__FunctionDeclaration__Group_6_2__1__Impl : ( ( rule__FunctionDeclaration__VariablesAssignment_6_2_1 ) ) ; + public final void rule__FunctionDeclaration__Group_6_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6388:1: ( ( ( rule__FunctionDeclaration__VariablesAssignment_6_2_1 ) ) ) + // InternalFiacre.g:6389:1: ( ( rule__FunctionDeclaration__VariablesAssignment_6_2_1 ) ) + { + // InternalFiacre.g:6389:1: ( ( rule__FunctionDeclaration__VariablesAssignment_6_2_1 ) ) + // InternalFiacre.g:6390:2: ( rule__FunctionDeclaration__VariablesAssignment_6_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getVariablesAssignment_6_2_1()); + } + // InternalFiacre.g:6391:2: ( rule__FunctionDeclaration__VariablesAssignment_6_2_1 ) + // InternalFiacre.g:6391:3: rule__FunctionDeclaration__VariablesAssignment_6_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FunctionDeclaration__VariablesAssignment_6_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getVariablesAssignment_6_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__Group_6_2__1__Impl" + + + // $ANTLR start "rule__TypeDeclaration__Group__0" + // InternalFiacre.g:6400:1: rule__TypeDeclaration__Group__0 : rule__TypeDeclaration__Group__0__Impl rule__TypeDeclaration__Group__1 ; + public final void rule__TypeDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6404:1: ( rule__TypeDeclaration__Group__0__Impl rule__TypeDeclaration__Group__1 ) + // InternalFiacre.g:6405:2: rule__TypeDeclaration__Group__0__Impl rule__TypeDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__TypeDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__TypeDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TypeDeclaration__Group__0" + + + // $ANTLR start "rule__TypeDeclaration__Group__0__Impl" + // InternalFiacre.g:6412:1: rule__TypeDeclaration__Group__0__Impl : ( 'type' ) ; + public final void rule__TypeDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6416:1: ( ( 'type' ) ) + // InternalFiacre.g:6417:1: ( 'type' ) + { + // InternalFiacre.g:6417:1: ( 'type' ) + // InternalFiacre.g:6418:2: 'type' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeDeclarationAccess().getTypeKeyword_0()); + } + match(input,26,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeDeclarationAccess().getTypeKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TypeDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__TypeDeclaration__Group__1" + // InternalFiacre.g:6427:1: rule__TypeDeclaration__Group__1 : rule__TypeDeclaration__Group__1__Impl rule__TypeDeclaration__Group__2 ; + public final void rule__TypeDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6431:1: ( rule__TypeDeclaration__Group__1__Impl rule__TypeDeclaration__Group__2 ) + // InternalFiacre.g:6432:2: rule__TypeDeclaration__Group__1__Impl rule__TypeDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_16); + rule__TypeDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__TypeDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TypeDeclaration__Group__1" + + + // $ANTLR start "rule__TypeDeclaration__Group__1__Impl" + // InternalFiacre.g:6439:1: rule__TypeDeclaration__Group__1__Impl : ( ( rule__TypeDeclaration__NameAssignment_1 ) ) ; + public final void rule__TypeDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6443:1: ( ( ( rule__TypeDeclaration__NameAssignment_1 ) ) ) + // InternalFiacre.g:6444:1: ( ( rule__TypeDeclaration__NameAssignment_1 ) ) + { + // InternalFiacre.g:6444:1: ( ( rule__TypeDeclaration__NameAssignment_1 ) ) + // InternalFiacre.g:6445:2: ( rule__TypeDeclaration__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeDeclarationAccess().getNameAssignment_1()); + } + // InternalFiacre.g:6446:2: ( rule__TypeDeclaration__NameAssignment_1 ) + // InternalFiacre.g:6446:3: rule__TypeDeclaration__NameAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TypeDeclaration__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeDeclarationAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TypeDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__TypeDeclaration__Group__2" + // InternalFiacre.g:6454:1: rule__TypeDeclaration__Group__2 : rule__TypeDeclaration__Group__2__Impl rule__TypeDeclaration__Group__3 ; + public final void rule__TypeDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6458:1: ( rule__TypeDeclaration__Group__2__Impl rule__TypeDeclaration__Group__3 ) + // InternalFiacre.g:6459:2: rule__TypeDeclaration__Group__2__Impl rule__TypeDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_15); + rule__TypeDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__TypeDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TypeDeclaration__Group__2" + + + // $ANTLR start "rule__TypeDeclaration__Group__2__Impl" + // InternalFiacre.g:6466:1: rule__TypeDeclaration__Group__2__Impl : ( 'is' ) ; + public final void rule__TypeDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6470:1: ( ( 'is' ) ) + // InternalFiacre.g:6471:1: ( 'is' ) + { + // InternalFiacre.g:6471:1: ( 'is' ) + // InternalFiacre.g:6472:2: 'is' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeDeclarationAccess().getIsKeyword_2()); + } + match(input,21,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeDeclarationAccess().getIsKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TypeDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__TypeDeclaration__Group__3" + // InternalFiacre.g:6481:1: rule__TypeDeclaration__Group__3 : rule__TypeDeclaration__Group__3__Impl ; + public final void rule__TypeDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6485:1: ( rule__TypeDeclaration__Group__3__Impl ) + // InternalFiacre.g:6486:2: rule__TypeDeclaration__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TypeDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TypeDeclaration__Group__3" + + + // $ANTLR start "rule__TypeDeclaration__Group__3__Impl" + // InternalFiacre.g:6492:1: rule__TypeDeclaration__Group__3__Impl : ( ( rule__TypeDeclaration__ValueAssignment_3 ) ) ; + public final void rule__TypeDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6496:1: ( ( ( rule__TypeDeclaration__ValueAssignment_3 ) ) ) + // InternalFiacre.g:6497:1: ( ( rule__TypeDeclaration__ValueAssignment_3 ) ) + { + // InternalFiacre.g:6497:1: ( ( rule__TypeDeclaration__ValueAssignment_3 ) ) + // InternalFiacre.g:6498:2: ( rule__TypeDeclaration__ValueAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeDeclarationAccess().getValueAssignment_3()); + } + // InternalFiacre.g:6499:2: ( rule__TypeDeclaration__ValueAssignment_3 ) + // InternalFiacre.g:6499:3: rule__TypeDeclaration__ValueAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TypeDeclaration__ValueAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeDeclarationAccess().getValueAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TypeDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__ChannelDeclaration__Group__0" + // InternalFiacre.g:6508:1: rule__ChannelDeclaration__Group__0 : rule__ChannelDeclaration__Group__0__Impl rule__ChannelDeclaration__Group__1 ; + public final void rule__ChannelDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6512:1: ( rule__ChannelDeclaration__Group__0__Impl rule__ChannelDeclaration__Group__1 ) + // InternalFiacre.g:6513:2: rule__ChannelDeclaration__Group__0__Impl rule__ChannelDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ChannelDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelDeclaration__Group__0" + + + // $ANTLR start "rule__ChannelDeclaration__Group__0__Impl" + // InternalFiacre.g:6520:1: rule__ChannelDeclaration__Group__0__Impl : ( 'channel' ) ; + public final void rule__ChannelDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6524:1: ( ( 'channel' ) ) + // InternalFiacre.g:6525:1: ( 'channel' ) + { + // InternalFiacre.g:6525:1: ( 'channel' ) + // InternalFiacre.g:6526:2: 'channel' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelDeclarationAccess().getChannelKeyword_0()); + } + match(input,27,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelDeclarationAccess().getChannelKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ChannelDeclaration__Group__1" + // InternalFiacre.g:6535:1: rule__ChannelDeclaration__Group__1 : rule__ChannelDeclaration__Group__1__Impl rule__ChannelDeclaration__Group__2 ; + public final void rule__ChannelDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6539:1: ( rule__ChannelDeclaration__Group__1__Impl rule__ChannelDeclaration__Group__2 ) + // InternalFiacre.g:6540:2: rule__ChannelDeclaration__Group__1__Impl rule__ChannelDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_16); + rule__ChannelDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelDeclaration__Group__1" + + + // $ANTLR start "rule__ChannelDeclaration__Group__1__Impl" + // InternalFiacre.g:6547:1: rule__ChannelDeclaration__Group__1__Impl : ( ( rule__ChannelDeclaration__NameAssignment_1 ) ) ; + public final void rule__ChannelDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6551:1: ( ( ( rule__ChannelDeclaration__NameAssignment_1 ) ) ) + // InternalFiacre.g:6552:1: ( ( rule__ChannelDeclaration__NameAssignment_1 ) ) + { + // InternalFiacre.g:6552:1: ( ( rule__ChannelDeclaration__NameAssignment_1 ) ) + // InternalFiacre.g:6553:2: ( rule__ChannelDeclaration__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelDeclarationAccess().getNameAssignment_1()); + } + // InternalFiacre.g:6554:2: ( rule__ChannelDeclaration__NameAssignment_1 ) + // InternalFiacre.g:6554:3: rule__ChannelDeclaration__NameAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelDeclaration__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelDeclarationAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__ChannelDeclaration__Group__2" + // InternalFiacre.g:6562:1: rule__ChannelDeclaration__Group__2 : rule__ChannelDeclaration__Group__2__Impl rule__ChannelDeclaration__Group__3 ; + public final void rule__ChannelDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6566:1: ( rule__ChannelDeclaration__Group__2__Impl rule__ChannelDeclaration__Group__3 ) + // InternalFiacre.g:6567:2: rule__ChannelDeclaration__Group__2__Impl rule__ChannelDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_22); + rule__ChannelDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelDeclaration__Group__2" + + + // $ANTLR start "rule__ChannelDeclaration__Group__2__Impl" + // InternalFiacre.g:6574:1: rule__ChannelDeclaration__Group__2__Impl : ( 'is' ) ; + public final void rule__ChannelDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6578:1: ( ( 'is' ) ) + // InternalFiacre.g:6579:1: ( 'is' ) + { + // InternalFiacre.g:6579:1: ( 'is' ) + // InternalFiacre.g:6580:2: 'is' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelDeclarationAccess().getIsKeyword_2()); + } + match(input,21,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelDeclarationAccess().getIsKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__ChannelDeclaration__Group__3" + // InternalFiacre.g:6589:1: rule__ChannelDeclaration__Group__3 : rule__ChannelDeclaration__Group__3__Impl ; + public final void rule__ChannelDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6593:1: ( rule__ChannelDeclaration__Group__3__Impl ) + // InternalFiacre.g:6594:2: rule__ChannelDeclaration__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelDeclaration__Group__3" + + + // $ANTLR start "rule__ChannelDeclaration__Group__3__Impl" + // InternalFiacre.g:6600:1: rule__ChannelDeclaration__Group__3__Impl : ( ( rule__ChannelDeclaration__ValueAssignment_3 ) ) ; + public final void rule__ChannelDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6604:1: ( ( ( rule__ChannelDeclaration__ValueAssignment_3 ) ) ) + // InternalFiacre.g:6605:1: ( ( rule__ChannelDeclaration__ValueAssignment_3 ) ) + { + // InternalFiacre.g:6605:1: ( ( rule__ChannelDeclaration__ValueAssignment_3 ) ) + // InternalFiacre.g:6606:2: ( rule__ChannelDeclaration__ValueAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelDeclarationAccess().getValueAssignment_3()); + } + // InternalFiacre.g:6607:2: ( rule__ChannelDeclaration__ValueAssignment_3 ) + // InternalFiacre.g:6607:3: rule__ChannelDeclaration__ValueAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelDeclaration__ValueAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelDeclarationAccess().getValueAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__ChannelType__Group__0" + // InternalFiacre.g:6616:1: rule__ChannelType__Group__0 : rule__ChannelType__Group__0__Impl rule__ChannelType__Group__1 ; + public final void rule__ChannelType__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6620:1: ( rule__ChannelType__Group__0__Impl rule__ChannelType__Group__1 ) + // InternalFiacre.g:6621:2: rule__ChannelType__Group__0__Impl rule__ChannelType__Group__1 + { + pushFollow(FollowSets000.FOLLOW_22); + rule__ChannelType__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group__0" + + + // $ANTLR start "rule__ChannelType__Group__0__Impl" + // InternalFiacre.g:6628:1: rule__ChannelType__Group__0__Impl : ( () ) ; + public final void rule__ChannelType__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6632:1: ( ( () ) ) + // InternalFiacre.g:6633:1: ( () ) + { + // InternalFiacre.g:6633:1: ( () ) + // InternalFiacre.g:6634:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getChannelTypeAction_0()); + } + // InternalFiacre.g:6635:2: () + // InternalFiacre.g:6635:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getChannelTypeAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group__0__Impl" + + + // $ANTLR start "rule__ChannelType__Group__1" + // InternalFiacre.g:6643:1: rule__ChannelType__Group__1 : rule__ChannelType__Group__1__Impl rule__ChannelType__Group__2 ; + public final void rule__ChannelType__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6647:1: ( rule__ChannelType__Group__1__Impl rule__ChannelType__Group__2 ) + // InternalFiacre.g:6648:2: rule__ChannelType__Group__1__Impl rule__ChannelType__Group__2 + { + pushFollow(FollowSets000.FOLLOW_22); + rule__ChannelType__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group__1" + + + // $ANTLR start "rule__ChannelType__Group__1__Impl" + // InternalFiacre.g:6655:1: rule__ChannelType__Group__1__Impl : ( ( rule__ChannelType__Group_1__0 )? ) ; + public final void rule__ChannelType__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6659:1: ( ( ( rule__ChannelType__Group_1__0 )? ) ) + // InternalFiacre.g:6660:1: ( ( rule__ChannelType__Group_1__0 )? ) + { + // InternalFiacre.g:6660:1: ( ( rule__ChannelType__Group_1__0 )? ) + // InternalFiacre.g:6661:2: ( rule__ChannelType__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getGroup_1()); + } + // InternalFiacre.g:6662:2: ( rule__ChannelType__Group_1__0 )? + int alt72=2; + alt72 = dfa72.predict(input); + switch (alt72) { + case 1 : + // InternalFiacre.g:6662:3: rule__ChannelType__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group__1__Impl" + + + // $ANTLR start "rule__ChannelType__Group__2" + // InternalFiacre.g:6670:1: rule__ChannelType__Group__2 : rule__ChannelType__Group__2__Impl ; + public final void rule__ChannelType__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6674:1: ( rule__ChannelType__Group__2__Impl ) + // InternalFiacre.g:6675:2: rule__ChannelType__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group__2" + + + // $ANTLR start "rule__ChannelType__Group__2__Impl" + // InternalFiacre.g:6681:1: rule__ChannelType__Group__2__Impl : ( ( rule__ChannelType__Alternatives_2 ) ) ; + public final void rule__ChannelType__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6685:1: ( ( ( rule__ChannelType__Alternatives_2 ) ) ) + // InternalFiacre.g:6686:1: ( ( rule__ChannelType__Alternatives_2 ) ) + { + // InternalFiacre.g:6686:1: ( ( rule__ChannelType__Alternatives_2 ) ) + // InternalFiacre.g:6687:2: ( rule__ChannelType__Alternatives_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getAlternatives_2()); + } + // InternalFiacre.g:6688:2: ( rule__ChannelType__Alternatives_2 ) + // InternalFiacre.g:6688:3: rule__ChannelType__Alternatives_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Alternatives_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getAlternatives_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group__2__Impl" + + + // $ANTLR start "rule__ChannelType__Group_1__0" + // InternalFiacre.g:6697:1: rule__ChannelType__Group_1__0 : rule__ChannelType__Group_1__0__Impl rule__ChannelType__Group_1__1 ; + public final void rule__ChannelType__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6701:1: ( rule__ChannelType__Group_1__0__Impl rule__ChannelType__Group_1__1 ) + // InternalFiacre.g:6702:2: rule__ChannelType__Group_1__0__Impl rule__ChannelType__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ChannelType__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_1__0" + + + // $ANTLR start "rule__ChannelType__Group_1__0__Impl" + // InternalFiacre.g:6709:1: rule__ChannelType__Group_1__0__Impl : ( 'array' ) ; + public final void rule__ChannelType__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6713:1: ( ( 'array' ) ) + // InternalFiacre.g:6714:1: ( 'array' ) + { + // InternalFiacre.g:6714:1: ( 'array' ) + // InternalFiacre.g:6715:2: 'array' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getArrayKeyword_1_0()); + } + match(input,28,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getArrayKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_1__0__Impl" + + + // $ANTLR start "rule__ChannelType__Group_1__1" + // InternalFiacre.g:6724:1: rule__ChannelType__Group_1__1 : rule__ChannelType__Group_1__1__Impl rule__ChannelType__Group_1__2 ; + public final void rule__ChannelType__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6728:1: ( rule__ChannelType__Group_1__1__Impl rule__ChannelType__Group_1__2 ) + // InternalFiacre.g:6729:2: rule__ChannelType__Group_1__1__Impl rule__ChannelType__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_24); + rule__ChannelType__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_1__1" + + + // $ANTLR start "rule__ChannelType__Group_1__1__Impl" + // InternalFiacre.g:6736:1: rule__ChannelType__Group_1__1__Impl : ( ( rule__ChannelType__SizeAssignment_1_1 ) ) ; + public final void rule__ChannelType__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6740:1: ( ( ( rule__ChannelType__SizeAssignment_1_1 ) ) ) + // InternalFiacre.g:6741:1: ( ( rule__ChannelType__SizeAssignment_1_1 ) ) + { + // InternalFiacre.g:6741:1: ( ( rule__ChannelType__SizeAssignment_1_1 ) ) + // InternalFiacre.g:6742:2: ( rule__ChannelType__SizeAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getSizeAssignment_1_1()); + } + // InternalFiacre.g:6743:2: ( rule__ChannelType__SizeAssignment_1_1 ) + // InternalFiacre.g:6743:3: rule__ChannelType__SizeAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__SizeAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getSizeAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_1__1__Impl" + + + // $ANTLR start "rule__ChannelType__Group_1__2" + // InternalFiacre.g:6751:1: rule__ChannelType__Group_1__2 : rule__ChannelType__Group_1__2__Impl ; + public final void rule__ChannelType__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6755:1: ( rule__ChannelType__Group_1__2__Impl ) + // InternalFiacre.g:6756:2: rule__ChannelType__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__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__ChannelType__Group_1__2" + + + // $ANTLR start "rule__ChannelType__Group_1__2__Impl" + // InternalFiacre.g:6762:1: rule__ChannelType__Group_1__2__Impl : ( 'of' ) ; + public final void rule__ChannelType__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6766:1: ( ( 'of' ) ) + // InternalFiacre.g:6767:1: ( 'of' ) + { + // InternalFiacre.g:6767:1: ( 'of' ) + // InternalFiacre.g:6768:2: 'of' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getOfKeyword_1_2()); + } + match(input,29,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getOfKeyword_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_1__2__Impl" + + + // $ANTLR start "rule__ChannelType__Group_2_0__0" + // InternalFiacre.g:6778:1: rule__ChannelType__Group_2_0__0 : rule__ChannelType__Group_2_0__0__Impl rule__ChannelType__Group_2_0__1 ; + public final void rule__ChannelType__Group_2_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6782:1: ( rule__ChannelType__Group_2_0__0__Impl rule__ChannelType__Group_2_0__1 ) + // InternalFiacre.g:6783:2: rule__ChannelType__Group_2_0__0__Impl rule__ChannelType__Group_2_0__1 + { + pushFollow(FollowSets000.FOLLOW_25); + rule__ChannelType__Group_2_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_2_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_2_0__0" + + + // $ANTLR start "rule__ChannelType__Group_2_0__0__Impl" + // InternalFiacre.g:6790:1: rule__ChannelType__Group_2_0__0__Impl : ( ( rule__ChannelType__Alternatives_2_0_0 )? ) ; + public final void rule__ChannelType__Group_2_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6794:1: ( ( ( rule__ChannelType__Alternatives_2_0_0 )? ) ) + // InternalFiacre.g:6795:1: ( ( rule__ChannelType__Alternatives_2_0_0 )? ) + { + // InternalFiacre.g:6795:1: ( ( rule__ChannelType__Alternatives_2_0_0 )? ) + // InternalFiacre.g:6796:2: ( rule__ChannelType__Alternatives_2_0_0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getAlternatives_2_0_0()); + } + // InternalFiacre.g:6797:2: ( rule__ChannelType__Alternatives_2_0_0 )? + int alt73=2; + int LA73_0 = input.LA(1); + + if ( (LA73_0==49||LA73_0==137) ) { + alt73=1; + } + switch (alt73) { + case 1 : + // InternalFiacre.g:6797:3: rule__ChannelType__Alternatives_2_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Alternatives_2_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getAlternatives_2_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_2_0__0__Impl" + + + // $ANTLR start "rule__ChannelType__Group_2_0__1" + // InternalFiacre.g:6805:1: rule__ChannelType__Group_2_0__1 : rule__ChannelType__Group_2_0__1__Impl ; + public final void rule__ChannelType__Group_2_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6809:1: ( rule__ChannelType__Group_2_0__1__Impl ) + // InternalFiacre.g:6810:2: rule__ChannelType__Group_2_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_2_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_2_0__1" + + + // $ANTLR start "rule__ChannelType__Group_2_0__1__Impl" + // InternalFiacre.g:6816:1: rule__ChannelType__Group_2_0__1__Impl : ( ( rule__ChannelType__Alternatives_2_0_1 ) ) ; + public final void rule__ChannelType__Group_2_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6820:1: ( ( ( rule__ChannelType__Alternatives_2_0_1 ) ) ) + // InternalFiacre.g:6821:1: ( ( rule__ChannelType__Alternatives_2_0_1 ) ) + { + // InternalFiacre.g:6821:1: ( ( rule__ChannelType__Alternatives_2_0_1 ) ) + // InternalFiacre.g:6822:2: ( rule__ChannelType__Alternatives_2_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getAlternatives_2_0_1()); + } + // InternalFiacre.g:6823:2: ( rule__ChannelType__Alternatives_2_0_1 ) + // InternalFiacre.g:6823:3: rule__ChannelType__Alternatives_2_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Alternatives_2_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getAlternatives_2_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_2_0__1__Impl" + + + // $ANTLR start "rule__ChannelType__Group_2_0_0_0__0" + // InternalFiacre.g:6832:1: rule__ChannelType__Group_2_0_0_0__0 : rule__ChannelType__Group_2_0_0_0__0__Impl rule__ChannelType__Group_2_0_0_0__1 ; + public final void rule__ChannelType__Group_2_0_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6836:1: ( rule__ChannelType__Group_2_0_0_0__0__Impl rule__ChannelType__Group_2_0_0_0__1 ) + // InternalFiacre.g:6837:2: rule__ChannelType__Group_2_0_0_0__0__Impl rule__ChannelType__Group_2_0_0_0__1 + { + pushFollow(FollowSets000.FOLLOW_26); + rule__ChannelType__Group_2_0_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_2_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__ChannelType__Group_2_0_0_0__0" + + + // $ANTLR start "rule__ChannelType__Group_2_0_0_0__0__Impl" + // InternalFiacre.g:6844:1: rule__ChannelType__Group_2_0_0_0__0__Impl : ( ( rule__ChannelType__InAssignment_2_0_0_0_0 ) ) ; + public final void rule__ChannelType__Group_2_0_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6848:1: ( ( ( rule__ChannelType__InAssignment_2_0_0_0_0 ) ) ) + // InternalFiacre.g:6849:1: ( ( rule__ChannelType__InAssignment_2_0_0_0_0 ) ) + { + // InternalFiacre.g:6849:1: ( ( rule__ChannelType__InAssignment_2_0_0_0_0 ) ) + // InternalFiacre.g:6850:2: ( rule__ChannelType__InAssignment_2_0_0_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getInAssignment_2_0_0_0_0()); + } + // InternalFiacre.g:6851:2: ( rule__ChannelType__InAssignment_2_0_0_0_0 ) + // InternalFiacre.g:6851:3: rule__ChannelType__InAssignment_2_0_0_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__InAssignment_2_0_0_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getInAssignment_2_0_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_2_0_0_0__0__Impl" + + + // $ANTLR start "rule__ChannelType__Group_2_0_0_0__1" + // InternalFiacre.g:6859:1: rule__ChannelType__Group_2_0_0_0__1 : rule__ChannelType__Group_2_0_0_0__1__Impl ; + public final void rule__ChannelType__Group_2_0_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6863:1: ( rule__ChannelType__Group_2_0_0_0__1__Impl ) + // InternalFiacre.g:6864:2: rule__ChannelType__Group_2_0_0_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_2_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__ChannelType__Group_2_0_0_0__1" + + + // $ANTLR start "rule__ChannelType__Group_2_0_0_0__1__Impl" + // InternalFiacre.g:6870:1: rule__ChannelType__Group_2_0_0_0__1__Impl : ( ( rule__ChannelType__OutAssignment_2_0_0_0_1 )? ) ; + public final void rule__ChannelType__Group_2_0_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6874:1: ( ( ( rule__ChannelType__OutAssignment_2_0_0_0_1 )? ) ) + // InternalFiacre.g:6875:1: ( ( rule__ChannelType__OutAssignment_2_0_0_0_1 )? ) + { + // InternalFiacre.g:6875:1: ( ( rule__ChannelType__OutAssignment_2_0_0_0_1 )? ) + // InternalFiacre.g:6876:2: ( rule__ChannelType__OutAssignment_2_0_0_0_1 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getOutAssignment_2_0_0_0_1()); + } + // InternalFiacre.g:6877:2: ( rule__ChannelType__OutAssignment_2_0_0_0_1 )? + int alt74=2; + int LA74_0 = input.LA(1); + + if ( (LA74_0==137) ) { + alt74=1; + } + switch (alt74) { + case 1 : + // InternalFiacre.g:6877:3: rule__ChannelType__OutAssignment_2_0_0_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__OutAssignment_2_0_0_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getOutAssignment_2_0_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__Group_2_0_0_0__1__Impl" + + + // $ANTLR start "rule__TupleType__Group__0" + // InternalFiacre.g:6886:1: rule__TupleType__Group__0 : rule__TupleType__Group__0__Impl rule__TupleType__Group__1 ; + public final void rule__TupleType__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6890:1: ( rule__TupleType__Group__0__Impl rule__TupleType__Group__1 ) + // InternalFiacre.g:6891:2: rule__TupleType__Group__0__Impl rule__TupleType__Group__1 + { + pushFollow(FollowSets000.FOLLOW_27); + rule__TupleType__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__TupleType__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TupleType__Group__0" + + + // $ANTLR start "rule__TupleType__Group__0__Impl" + // InternalFiacre.g:6898:1: rule__TupleType__Group__0__Impl : ( ruleType ) ; + public final void rule__TupleType__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6902:1: ( ( ruleType ) ) + // InternalFiacre.g:6903:1: ( ruleType ) + { + // InternalFiacre.g:6903:1: ( ruleType ) + // InternalFiacre.g:6904:2: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTupleTypeAccess().getTypeParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTupleTypeAccess().getTypeParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TupleType__Group__0__Impl" + + + // $ANTLR start "rule__TupleType__Group__1" + // InternalFiacre.g:6913:1: rule__TupleType__Group__1 : rule__TupleType__Group__1__Impl ; + public final void rule__TupleType__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6917:1: ( rule__TupleType__Group__1__Impl ) + // InternalFiacre.g:6918:2: rule__TupleType__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TupleType__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TupleType__Group__1" + + + // $ANTLR start "rule__TupleType__Group__1__Impl" + // InternalFiacre.g:6924:1: rule__TupleType__Group__1__Impl : ( ( rule__TupleType__Group_1__0 )* ) ; + public final void rule__TupleType__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6928:1: ( ( ( rule__TupleType__Group_1__0 )* ) ) + // InternalFiacre.g:6929:1: ( ( rule__TupleType__Group_1__0 )* ) + { + // InternalFiacre.g:6929:1: ( ( rule__TupleType__Group_1__0 )* ) + // InternalFiacre.g:6930:2: ( rule__TupleType__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTupleTypeAccess().getGroup_1()); + } + // InternalFiacre.g:6931:2: ( rule__TupleType__Group_1__0 )* + loop75: + do { + int alt75=2; + int LA75_0 = input.LA(1); + + if ( (LA75_0==30) ) { + alt75=1; + } + + + switch (alt75) { + case 1 : + // InternalFiacre.g:6931:3: rule__TupleType__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_28); + rule__TupleType__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop75; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getTupleTypeAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TupleType__Group__1__Impl" + + + // $ANTLR start "rule__TupleType__Group_1__0" + // InternalFiacre.g:6940:1: rule__TupleType__Group_1__0 : rule__TupleType__Group_1__0__Impl rule__TupleType__Group_1__1 ; + public final void rule__TupleType__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6944:1: ( rule__TupleType__Group_1__0__Impl rule__TupleType__Group_1__1 ) + // InternalFiacre.g:6945:2: rule__TupleType__Group_1__0__Impl rule__TupleType__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_27); + rule__TupleType__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__TupleType__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TupleType__Group_1__0" + + + // $ANTLR start "rule__TupleType__Group_1__0__Impl" + // InternalFiacre.g:6952:1: rule__TupleType__Group_1__0__Impl : ( () ) ; + public final void rule__TupleType__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6956:1: ( ( () ) ) + // InternalFiacre.g:6957:1: ( () ) + { + // InternalFiacre.g:6957:1: ( () ) + // InternalFiacre.g:6958:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTupleTypeAccess().getTupleTypeTypesAction_1_0()); + } + // InternalFiacre.g:6959:2: () + // InternalFiacre.g:6959:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTupleTypeAccess().getTupleTypeTypesAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TupleType__Group_1__0__Impl" + + + // $ANTLR start "rule__TupleType__Group_1__1" + // InternalFiacre.g:6967:1: rule__TupleType__Group_1__1 : rule__TupleType__Group_1__1__Impl rule__TupleType__Group_1__2 ; + public final void rule__TupleType__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6971:1: ( rule__TupleType__Group_1__1__Impl rule__TupleType__Group_1__2 ) + // InternalFiacre.g:6972:2: rule__TupleType__Group_1__1__Impl rule__TupleType__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_15); + rule__TupleType__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__TupleType__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TupleType__Group_1__1" + + + // $ANTLR start "rule__TupleType__Group_1__1__Impl" + // InternalFiacre.g:6979:1: rule__TupleType__Group_1__1__Impl : ( '#' ) ; + public final void rule__TupleType__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6983:1: ( ( '#' ) ) + // InternalFiacre.g:6984:1: ( '#' ) + { + // InternalFiacre.g:6984:1: ( '#' ) + // InternalFiacre.g:6985:2: '#' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTupleTypeAccess().getNumberSignKeyword_1_1()); + } + match(input,30,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTupleTypeAccess().getNumberSignKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TupleType__Group_1__1__Impl" + + + // $ANTLR start "rule__TupleType__Group_1__2" + // InternalFiacre.g:6994:1: rule__TupleType__Group_1__2 : rule__TupleType__Group_1__2__Impl ; + public final void rule__TupleType__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:6998:1: ( rule__TupleType__Group_1__2__Impl ) + // InternalFiacre.g:6999:2: rule__TupleType__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TupleType__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__TupleType__Group_1__2" + + + // $ANTLR start "rule__TupleType__Group_1__2__Impl" + // InternalFiacre.g:7005:1: rule__TupleType__Group_1__2__Impl : ( ( rule__TupleType__TypesAssignment_1_2 ) ) ; + public final void rule__TupleType__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7009:1: ( ( ( rule__TupleType__TypesAssignment_1_2 ) ) ) + // InternalFiacre.g:7010:1: ( ( rule__TupleType__TypesAssignment_1_2 ) ) + { + // InternalFiacre.g:7010:1: ( ( rule__TupleType__TypesAssignment_1_2 ) ) + // InternalFiacre.g:7011:2: ( rule__TupleType__TypesAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTupleTypeAccess().getTypesAssignment_1_2()); + } + // InternalFiacre.g:7012:2: ( rule__TupleType__TypesAssignment_1_2 ) + // InternalFiacre.g:7012:3: rule__TupleType__TypesAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TupleType__TypesAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTupleTypeAccess().getTypesAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TupleType__Group_1__2__Impl" + + + // $ANTLR start "rule__BasicType__Group_0__0" + // InternalFiacre.g:7021:1: rule__BasicType__Group_0__0 : rule__BasicType__Group_0__0__Impl rule__BasicType__Group_0__1 ; + public final void rule__BasicType__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7025:1: ( rule__BasicType__Group_0__0__Impl rule__BasicType__Group_0__1 ) + // InternalFiacre.g:7026:2: rule__BasicType__Group_0__0__Impl rule__BasicType__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_29); + rule__BasicType__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__BasicType__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BasicType__Group_0__0" + + + // $ANTLR start "rule__BasicType__Group_0__0__Impl" + // InternalFiacre.g:7033:1: rule__BasicType__Group_0__0__Impl : ( () ) ; + public final void rule__BasicType__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7037:1: ( ( () ) ) + // InternalFiacre.g:7038:1: ( () ) + { + // InternalFiacre.g:7038:1: ( () ) + // InternalFiacre.g:7039:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeAccess().getNaturalTypeAction_0_0()); + } + // InternalFiacre.g:7040:2: () + // InternalFiacre.g:7040:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeAccess().getNaturalTypeAction_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BasicType__Group_0__0__Impl" + + + // $ANTLR start "rule__BasicType__Group_0__1" + // InternalFiacre.g:7048:1: rule__BasicType__Group_0__1 : rule__BasicType__Group_0__1__Impl ; + public final void rule__BasicType__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7052:1: ( rule__BasicType__Group_0__1__Impl ) + // InternalFiacre.g:7053:2: rule__BasicType__Group_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BasicType__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__BasicType__Group_0__1" + + + // $ANTLR start "rule__BasicType__Group_0__1__Impl" + // InternalFiacre.g:7059:1: rule__BasicType__Group_0__1__Impl : ( 'nat' ) ; + public final void rule__BasicType__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7063:1: ( ( 'nat' ) ) + // InternalFiacre.g:7064:1: ( 'nat' ) + { + // InternalFiacre.g:7064:1: ( 'nat' ) + // InternalFiacre.g:7065:2: 'nat' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeAccess().getNatKeyword_0_1()); + } + match(input,31,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeAccess().getNatKeyword_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BasicType__Group_0__1__Impl" + + + // $ANTLR start "rule__BasicType__Group_1__0" + // InternalFiacre.g:7075:1: rule__BasicType__Group_1__0 : rule__BasicType__Group_1__0__Impl rule__BasicType__Group_1__1 ; + public final void rule__BasicType__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7079:1: ( rule__BasicType__Group_1__0__Impl rule__BasicType__Group_1__1 ) + // InternalFiacre.g:7080:2: rule__BasicType__Group_1__0__Impl rule__BasicType__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_30); + rule__BasicType__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__BasicType__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BasicType__Group_1__0" + + + // $ANTLR start "rule__BasicType__Group_1__0__Impl" + // InternalFiacre.g:7087:1: rule__BasicType__Group_1__0__Impl : ( () ) ; + public final void rule__BasicType__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7091:1: ( ( () ) ) + // InternalFiacre.g:7092:1: ( () ) + { + // InternalFiacre.g:7092:1: ( () ) + // InternalFiacre.g:7093:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeAccess().getIntegerTypeAction_1_0()); + } + // InternalFiacre.g:7094:2: () + // InternalFiacre.g:7094:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeAccess().getIntegerTypeAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BasicType__Group_1__0__Impl" + + + // $ANTLR start "rule__BasicType__Group_1__1" + // InternalFiacre.g:7102:1: rule__BasicType__Group_1__1 : rule__BasicType__Group_1__1__Impl ; + public final void rule__BasicType__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7106:1: ( rule__BasicType__Group_1__1__Impl ) + // InternalFiacre.g:7107:2: rule__BasicType__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BasicType__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__BasicType__Group_1__1" + + + // $ANTLR start "rule__BasicType__Group_1__1__Impl" + // InternalFiacre.g:7113:1: rule__BasicType__Group_1__1__Impl : ( 'int' ) ; + public final void rule__BasicType__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7117:1: ( ( 'int' ) ) + // InternalFiacre.g:7118:1: ( 'int' ) + { + // InternalFiacre.g:7118:1: ( 'int' ) + // InternalFiacre.g:7119:2: 'int' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeAccess().getIntKeyword_1_1()); + } + match(input,32,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeAccess().getIntKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BasicType__Group_1__1__Impl" + + + // $ANTLR start "rule__BasicType__Group_2__0" + // InternalFiacre.g:7129:1: rule__BasicType__Group_2__0 : rule__BasicType__Group_2__0__Impl rule__BasicType__Group_2__1 ; + public final void rule__BasicType__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7133:1: ( rule__BasicType__Group_2__0__Impl rule__BasicType__Group_2__1 ) + // InternalFiacre.g:7134:2: rule__BasicType__Group_2__0__Impl rule__BasicType__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_31); + rule__BasicType__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__BasicType__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BasicType__Group_2__0" + + + // $ANTLR start "rule__BasicType__Group_2__0__Impl" + // InternalFiacre.g:7141:1: rule__BasicType__Group_2__0__Impl : ( () ) ; + public final void rule__BasicType__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7145:1: ( ( () ) ) + // InternalFiacre.g:7146:1: ( () ) + { + // InternalFiacre.g:7146:1: ( () ) + // InternalFiacre.g:7147:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeAccess().getBooleanTypeAction_2_0()); + } + // InternalFiacre.g:7148:2: () + // InternalFiacre.g:7148:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeAccess().getBooleanTypeAction_2_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BasicType__Group_2__0__Impl" + + + // $ANTLR start "rule__BasicType__Group_2__1" + // InternalFiacre.g:7156:1: rule__BasicType__Group_2__1 : rule__BasicType__Group_2__1__Impl ; + public final void rule__BasicType__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7160:1: ( rule__BasicType__Group_2__1__Impl ) + // InternalFiacre.g:7161:2: rule__BasicType__Group_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BasicType__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__BasicType__Group_2__1" + + + // $ANTLR start "rule__BasicType__Group_2__1__Impl" + // InternalFiacre.g:7167:1: rule__BasicType__Group_2__1__Impl : ( 'bool' ) ; + public final void rule__BasicType__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7171:1: ( ( 'bool' ) ) + // InternalFiacre.g:7172:1: ( 'bool' ) + { + // InternalFiacre.g:7172:1: ( 'bool' ) + // InternalFiacre.g:7173:2: 'bool' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBasicTypeAccess().getBoolKeyword_2_1()); + } + match(input,33,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBasicTypeAccess().getBoolKeyword_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BasicType__Group_2__1__Impl" + + + // $ANTLR start "rule__RangeType__Group__0" + // InternalFiacre.g:7183:1: rule__RangeType__Group__0 : rule__RangeType__Group__0__Impl rule__RangeType__Group__1 ; + public final void rule__RangeType__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7187:1: ( rule__RangeType__Group__0__Impl rule__RangeType__Group__1 ) + // InternalFiacre.g:7188:2: rule__RangeType__Group__0__Impl rule__RangeType__Group__1 + { + pushFollow(FollowSets000.FOLLOW_32); + rule__RangeType__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RangeType__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RangeType__Group__0" + + + // $ANTLR start "rule__RangeType__Group__0__Impl" + // InternalFiacre.g:7195:1: rule__RangeType__Group__0__Impl : ( ( rule__RangeType__MinimumAssignment_0 ) ) ; + public final void rule__RangeType__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7199:1: ( ( ( rule__RangeType__MinimumAssignment_0 ) ) ) + // InternalFiacre.g:7200:1: ( ( rule__RangeType__MinimumAssignment_0 ) ) + { + // InternalFiacre.g:7200:1: ( ( rule__RangeType__MinimumAssignment_0 ) ) + // InternalFiacre.g:7201:2: ( rule__RangeType__MinimumAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRangeTypeAccess().getMinimumAssignment_0()); + } + // InternalFiacre.g:7202:2: ( rule__RangeType__MinimumAssignment_0 ) + // InternalFiacre.g:7202:3: rule__RangeType__MinimumAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RangeType__MinimumAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRangeTypeAccess().getMinimumAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RangeType__Group__0__Impl" + + + // $ANTLR start "rule__RangeType__Group__1" + // InternalFiacre.g:7210:1: rule__RangeType__Group__1 : rule__RangeType__Group__1__Impl rule__RangeType__Group__2 ; + public final void rule__RangeType__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7214:1: ( rule__RangeType__Group__1__Impl rule__RangeType__Group__2 ) + // InternalFiacre.g:7215:2: rule__RangeType__Group__1__Impl rule__RangeType__Group__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__RangeType__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RangeType__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RangeType__Group__1" + + + // $ANTLR start "rule__RangeType__Group__1__Impl" + // InternalFiacre.g:7222:1: rule__RangeType__Group__1__Impl : ( '..' ) ; + public final void rule__RangeType__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7226:1: ( ( '..' ) ) + // InternalFiacre.g:7227:1: ( '..' ) + { + // InternalFiacre.g:7227:1: ( '..' ) + // InternalFiacre.g:7228:2: '..' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRangeTypeAccess().getFullStopFullStopKeyword_1()); + } + match(input,34,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRangeTypeAccess().getFullStopFullStopKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RangeType__Group__1__Impl" + + + // $ANTLR start "rule__RangeType__Group__2" + // InternalFiacre.g:7237:1: rule__RangeType__Group__2 : rule__RangeType__Group__2__Impl ; + public final void rule__RangeType__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7241:1: ( rule__RangeType__Group__2__Impl ) + // InternalFiacre.g:7242:2: rule__RangeType__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RangeType__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RangeType__Group__2" + + + // $ANTLR start "rule__RangeType__Group__2__Impl" + // InternalFiacre.g:7248:1: rule__RangeType__Group__2__Impl : ( ( rule__RangeType__MaximumAssignment_2 ) ) ; + public final void rule__RangeType__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7252:1: ( ( ( rule__RangeType__MaximumAssignment_2 ) ) ) + // InternalFiacre.g:7253:1: ( ( rule__RangeType__MaximumAssignment_2 ) ) + { + // InternalFiacre.g:7253:1: ( ( rule__RangeType__MaximumAssignment_2 ) ) + // InternalFiacre.g:7254:2: ( rule__RangeType__MaximumAssignment_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRangeTypeAccess().getMaximumAssignment_2()); + } + // InternalFiacre.g:7255:2: ( rule__RangeType__MaximumAssignment_2 ) + // InternalFiacre.g:7255:3: rule__RangeType__MaximumAssignment_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RangeType__MaximumAssignment_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRangeTypeAccess().getMaximumAssignment_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RangeType__Group__2__Impl" + + + // $ANTLR start "rule__UnionType__Group__0" + // InternalFiacre.g:7264:1: rule__UnionType__Group__0 : rule__UnionType__Group__0__Impl rule__UnionType__Group__1 ; + public final void rule__UnionType__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7268:1: ( rule__UnionType__Group__0__Impl rule__UnionType__Group__1 ) + // InternalFiacre.g:7269:2: rule__UnionType__Group__0__Impl rule__UnionType__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__UnionType__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionType__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group__0" + + + // $ANTLR start "rule__UnionType__Group__0__Impl" + // InternalFiacre.g:7276:1: rule__UnionType__Group__0__Impl : ( 'union' ) ; + public final void rule__UnionType__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7280:1: ( ( 'union' ) ) + // InternalFiacre.g:7281:1: ( 'union' ) + { + // InternalFiacre.g:7281:1: ( 'union' ) + // InternalFiacre.g:7282:2: 'union' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeAccess().getUnionKeyword_0()); + } + match(input,35,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeAccess().getUnionKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group__0__Impl" + + + // $ANTLR start "rule__UnionType__Group__1" + // InternalFiacre.g:7291:1: rule__UnionType__Group__1 : rule__UnionType__Group__1__Impl rule__UnionType__Group__2 ; + public final void rule__UnionType__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7295:1: ( rule__UnionType__Group__1__Impl rule__UnionType__Group__2 ) + // InternalFiacre.g:7296:2: rule__UnionType__Group__1__Impl rule__UnionType__Group__2 + { + pushFollow(FollowSets000.FOLLOW_33); + rule__UnionType__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionType__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group__1" + + + // $ANTLR start "rule__UnionType__Group__1__Impl" + // InternalFiacre.g:7303:1: rule__UnionType__Group__1__Impl : ( ( rule__UnionType__TagsAssignment_1 ) ) ; + public final void rule__UnionType__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7307:1: ( ( ( rule__UnionType__TagsAssignment_1 ) ) ) + // InternalFiacre.g:7308:1: ( ( rule__UnionType__TagsAssignment_1 ) ) + { + // InternalFiacre.g:7308:1: ( ( rule__UnionType__TagsAssignment_1 ) ) + // InternalFiacre.g:7309:2: ( rule__UnionType__TagsAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeAccess().getTagsAssignment_1()); + } + // InternalFiacre.g:7310:2: ( rule__UnionType__TagsAssignment_1 ) + // InternalFiacre.g:7310:3: rule__UnionType__TagsAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionType__TagsAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeAccess().getTagsAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group__1__Impl" + + + // $ANTLR start "rule__UnionType__Group__2" + // InternalFiacre.g:7318:1: rule__UnionType__Group__2 : rule__UnionType__Group__2__Impl rule__UnionType__Group__3 ; + public final void rule__UnionType__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7322:1: ( rule__UnionType__Group__2__Impl rule__UnionType__Group__3 ) + // InternalFiacre.g:7323:2: rule__UnionType__Group__2__Impl rule__UnionType__Group__3 + { + pushFollow(FollowSets000.FOLLOW_33); + rule__UnionType__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionType__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group__2" + + + // $ANTLR start "rule__UnionType__Group__2__Impl" + // InternalFiacre.g:7330:1: rule__UnionType__Group__2__Impl : ( ( rule__UnionType__Group_2__0 )* ) ; + public final void rule__UnionType__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7334:1: ( ( ( rule__UnionType__Group_2__0 )* ) ) + // InternalFiacre.g:7335:1: ( ( rule__UnionType__Group_2__0 )* ) + { + // InternalFiacre.g:7335:1: ( ( rule__UnionType__Group_2__0 )* ) + // InternalFiacre.g:7336:2: ( rule__UnionType__Group_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeAccess().getGroup_2()); + } + // InternalFiacre.g:7337:2: ( rule__UnionType__Group_2__0 )* + loop76: + do { + int alt76=2; + int LA76_0 = input.LA(1); + + if ( (LA76_0==17) ) { + alt76=1; + } + + + switch (alt76) { + case 1 : + // InternalFiacre.g:7337:3: rule__UnionType__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_11); + rule__UnionType__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop76; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group__2__Impl" + + + // $ANTLR start "rule__UnionType__Group__3" + // InternalFiacre.g:7345:1: rule__UnionType__Group__3 : rule__UnionType__Group__3__Impl rule__UnionType__Group__4 ; + public final void rule__UnionType__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7349:1: ( rule__UnionType__Group__3__Impl rule__UnionType__Group__4 ) + // InternalFiacre.g:7350:2: rule__UnionType__Group__3__Impl rule__UnionType__Group__4 + { + pushFollow(FollowSets000.FOLLOW_34); + rule__UnionType__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionType__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group__3" + + + // $ANTLR start "rule__UnionType__Group__3__Impl" + // InternalFiacre.g:7357:1: rule__UnionType__Group__3__Impl : ( 'end' ) ; + public final void rule__UnionType__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7361:1: ( ( 'end' ) ) + // InternalFiacre.g:7362:1: ( 'end' ) + { + // InternalFiacre.g:7362:1: ( 'end' ) + // InternalFiacre.g:7363:2: 'end' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeAccess().getEndKeyword_3()); + } + match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeAccess().getEndKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group__3__Impl" + + + // $ANTLR start "rule__UnionType__Group__4" + // InternalFiacre.g:7372:1: rule__UnionType__Group__4 : rule__UnionType__Group__4__Impl ; + public final void rule__UnionType__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7376:1: ( rule__UnionType__Group__4__Impl ) + // InternalFiacre.g:7377:2: rule__UnionType__Group__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionType__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group__4" + + + // $ANTLR start "rule__UnionType__Group__4__Impl" + // InternalFiacre.g:7383:1: rule__UnionType__Group__4__Impl : ( ( 'union' )? ) ; + public final void rule__UnionType__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7387:1: ( ( ( 'union' )? ) ) + // InternalFiacre.g:7388:1: ( ( 'union' )? ) + { + // InternalFiacre.g:7388:1: ( ( 'union' )? ) + // InternalFiacre.g:7389:2: ( 'union' )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeAccess().getUnionKeyword_4()); + } + // InternalFiacre.g:7390:2: ( 'union' )? + int alt77=2; + int LA77_0 = input.LA(1); + + if ( (LA77_0==35) ) { + alt77=1; + } + switch (alt77) { + case 1 : + // InternalFiacre.g:7390:3: 'union' + { + match(input,35,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeAccess().getUnionKeyword_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group__4__Impl" + + + // $ANTLR start "rule__UnionType__Group_2__0" + // InternalFiacre.g:7399:1: rule__UnionType__Group_2__0 : rule__UnionType__Group_2__0__Impl rule__UnionType__Group_2__1 ; + public final void rule__UnionType__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7403:1: ( rule__UnionType__Group_2__0__Impl rule__UnionType__Group_2__1 ) + // InternalFiacre.g:7404:2: rule__UnionType__Group_2__0__Impl rule__UnionType__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__UnionType__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionType__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group_2__0" + + + // $ANTLR start "rule__UnionType__Group_2__0__Impl" + // InternalFiacre.g:7411:1: rule__UnionType__Group_2__0__Impl : ( '|' ) ; + public final void rule__UnionType__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7415:1: ( ( '|' ) ) + // InternalFiacre.g:7416:1: ( '|' ) + { + // InternalFiacre.g:7416:1: ( '|' ) + // InternalFiacre.g:7417:2: '|' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeAccess().getVerticalLineKeyword_2_0()); + } + match(input,17,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeAccess().getVerticalLineKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group_2__0__Impl" + + + // $ANTLR start "rule__UnionType__Group_2__1" + // InternalFiacre.g:7426:1: rule__UnionType__Group_2__1 : rule__UnionType__Group_2__1__Impl ; + public final void rule__UnionType__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7430:1: ( rule__UnionType__Group_2__1__Impl ) + // InternalFiacre.g:7431:2: rule__UnionType__Group_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionType__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__UnionType__Group_2__1" + + + // $ANTLR start "rule__UnionType__Group_2__1__Impl" + // InternalFiacre.g:7437:1: rule__UnionType__Group_2__1__Impl : ( ( rule__UnionType__TagsAssignment_2_1 ) ) ; + public final void rule__UnionType__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7441:1: ( ( ( rule__UnionType__TagsAssignment_2_1 ) ) ) + // InternalFiacre.g:7442:1: ( ( rule__UnionType__TagsAssignment_2_1 ) ) + { + // InternalFiacre.g:7442:1: ( ( rule__UnionType__TagsAssignment_2_1 ) ) + // InternalFiacre.g:7443:2: ( rule__UnionType__TagsAssignment_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeAccess().getTagsAssignment_2_1()); + } + // InternalFiacre.g:7444:2: ( rule__UnionType__TagsAssignment_2_1 ) + // InternalFiacre.g:7444:3: rule__UnionType__TagsAssignment_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionType__TagsAssignment_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeAccess().getTagsAssignment_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__Group_2__1__Impl" + + + // $ANTLR start "rule__UnionTags__Group__0" + // InternalFiacre.g:7453:1: rule__UnionTags__Group__0 : rule__UnionTags__Group__0__Impl rule__UnionTags__Group__1 ; + public final void rule__UnionTags__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7457:1: ( rule__UnionTags__Group__0__Impl rule__UnionTags__Group__1 ) + // InternalFiacre.g:7458:2: rule__UnionTags__Group__0__Impl rule__UnionTags__Group__1 + { + pushFollow(FollowSets000.FOLLOW_35); + rule__UnionTags__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group__0" + + + // $ANTLR start "rule__UnionTags__Group__0__Impl" + // InternalFiacre.g:7465:1: rule__UnionTags__Group__0__Impl : ( ( rule__UnionTags__TagsAssignment_0 ) ) ; + public final void rule__UnionTags__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7469:1: ( ( ( rule__UnionTags__TagsAssignment_0 ) ) ) + // InternalFiacre.g:7470:1: ( ( rule__UnionTags__TagsAssignment_0 ) ) + { + // InternalFiacre.g:7470:1: ( ( rule__UnionTags__TagsAssignment_0 ) ) + // InternalFiacre.g:7471:2: ( rule__UnionTags__TagsAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getTagsAssignment_0()); + } + // InternalFiacre.g:7472:2: ( rule__UnionTags__TagsAssignment_0 ) + // InternalFiacre.g:7472:3: rule__UnionTags__TagsAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__TagsAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getTagsAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group__0__Impl" + + + // $ANTLR start "rule__UnionTags__Group__1" + // InternalFiacre.g:7480:1: rule__UnionTags__Group__1 : rule__UnionTags__Group__1__Impl rule__UnionTags__Group__2 ; + public final void rule__UnionTags__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7484:1: ( rule__UnionTags__Group__1__Impl rule__UnionTags__Group__2 ) + // InternalFiacre.g:7485:2: rule__UnionTags__Group__1__Impl rule__UnionTags__Group__2 + { + pushFollow(FollowSets000.FOLLOW_35); + rule__UnionTags__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group__1" + + + // $ANTLR start "rule__UnionTags__Group__1__Impl" + // InternalFiacre.g:7492:1: rule__UnionTags__Group__1__Impl : ( ( rule__UnionTags__Group_1__0 )* ) ; + public final void rule__UnionTags__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7496:1: ( ( ( rule__UnionTags__Group_1__0 )* ) ) + // InternalFiacre.g:7497:1: ( ( rule__UnionTags__Group_1__0 )* ) + { + // InternalFiacre.g:7497:1: ( ( rule__UnionTags__Group_1__0 )* ) + // InternalFiacre.g:7498:2: ( rule__UnionTags__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getGroup_1()); + } + // InternalFiacre.g:7499:2: ( rule__UnionTags__Group_1__0 )* + loop78: + do { + int alt78=2; + int LA78_0 = input.LA(1); + + if ( (LA78_0==24) ) { + alt78=1; + } + + + switch (alt78) { + case 1 : + // InternalFiacre.g:7499:3: rule__UnionTags__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__UnionTags__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop78; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group__1__Impl" + + + // $ANTLR start "rule__UnionTags__Group__2" + // InternalFiacre.g:7507:1: rule__UnionTags__Group__2 : rule__UnionTags__Group__2__Impl ; + public final void rule__UnionTags__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7511:1: ( rule__UnionTags__Group__2__Impl ) + // InternalFiacre.g:7512:2: rule__UnionTags__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group__2" + + + // $ANTLR start "rule__UnionTags__Group__2__Impl" + // InternalFiacre.g:7518:1: rule__UnionTags__Group__2__Impl : ( ( rule__UnionTags__Group_2__0 )? ) ; + public final void rule__UnionTags__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7522:1: ( ( ( rule__UnionTags__Group_2__0 )? ) ) + // InternalFiacre.g:7523:1: ( ( rule__UnionTags__Group_2__0 )? ) + { + // InternalFiacre.g:7523:1: ( ( rule__UnionTags__Group_2__0 )? ) + // InternalFiacre.g:7524:2: ( rule__UnionTags__Group_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getGroup_2()); + } + // InternalFiacre.g:7525:2: ( rule__UnionTags__Group_2__0 )? + int alt79=2; + int LA79_0 = input.LA(1); + + if ( (LA79_0==29) ) { + alt79=1; + } + switch (alt79) { + case 1 : + // InternalFiacre.g:7525:3: rule__UnionTags__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group__2__Impl" + + + // $ANTLR start "rule__UnionTags__Group_1__0" + // InternalFiacre.g:7534:1: rule__UnionTags__Group_1__0 : rule__UnionTags__Group_1__0__Impl rule__UnionTags__Group_1__1 ; + public final void rule__UnionTags__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7538:1: ( rule__UnionTags__Group_1__0__Impl rule__UnionTags__Group_1__1 ) + // InternalFiacre.g:7539:2: rule__UnionTags__Group_1__0__Impl rule__UnionTags__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__UnionTags__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group_1__0" + + + // $ANTLR start "rule__UnionTags__Group_1__0__Impl" + // InternalFiacre.g:7546:1: rule__UnionTags__Group_1__0__Impl : ( ',' ) ; + public final void rule__UnionTags__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7550:1: ( ( ',' ) ) + // InternalFiacre.g:7551:1: ( ',' ) + { + // InternalFiacre.g:7551:1: ( ',' ) + // InternalFiacre.g:7552:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getCommaKeyword_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getCommaKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group_1__0__Impl" + + + // $ANTLR start "rule__UnionTags__Group_1__1" + // InternalFiacre.g:7561:1: rule__UnionTags__Group_1__1 : rule__UnionTags__Group_1__1__Impl ; + public final void rule__UnionTags__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7565:1: ( rule__UnionTags__Group_1__1__Impl ) + // InternalFiacre.g:7566:2: rule__UnionTags__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__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__UnionTags__Group_1__1" + + + // $ANTLR start "rule__UnionTags__Group_1__1__Impl" + // InternalFiacre.g:7572:1: rule__UnionTags__Group_1__1__Impl : ( ( rule__UnionTags__TagsAssignment_1_1 ) ) ; + public final void rule__UnionTags__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7576:1: ( ( ( rule__UnionTags__TagsAssignment_1_1 ) ) ) + // InternalFiacre.g:7577:1: ( ( rule__UnionTags__TagsAssignment_1_1 ) ) + { + // InternalFiacre.g:7577:1: ( ( rule__UnionTags__TagsAssignment_1_1 ) ) + // InternalFiacre.g:7578:2: ( rule__UnionTags__TagsAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getTagsAssignment_1_1()); + } + // InternalFiacre.g:7579:2: ( rule__UnionTags__TagsAssignment_1_1 ) + // InternalFiacre.g:7579:3: rule__UnionTags__TagsAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__TagsAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getTagsAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group_1__1__Impl" + + + // $ANTLR start "rule__UnionTags__Group_2__0" + // InternalFiacre.g:7588:1: rule__UnionTags__Group_2__0 : rule__UnionTags__Group_2__0__Impl rule__UnionTags__Group_2__1 ; + public final void rule__UnionTags__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7592:1: ( rule__UnionTags__Group_2__0__Impl rule__UnionTags__Group_2__1 ) + // InternalFiacre.g:7593:2: rule__UnionTags__Group_2__0__Impl rule__UnionTags__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_15); + rule__UnionTags__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group_2__0" + + + // $ANTLR start "rule__UnionTags__Group_2__0__Impl" + // InternalFiacre.g:7600:1: rule__UnionTags__Group_2__0__Impl : ( 'of' ) ; + public final void rule__UnionTags__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7604:1: ( ( 'of' ) ) + // InternalFiacre.g:7605:1: ( 'of' ) + { + // InternalFiacre.g:7605:1: ( 'of' ) + // InternalFiacre.g:7606:2: 'of' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getOfKeyword_2_0()); + } + match(input,29,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getOfKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group_2__0__Impl" + + + // $ANTLR start "rule__UnionTags__Group_2__1" + // InternalFiacre.g:7615:1: rule__UnionTags__Group_2__1 : rule__UnionTags__Group_2__1__Impl ; + public final void rule__UnionTags__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7619:1: ( rule__UnionTags__Group_2__1__Impl ) + // InternalFiacre.g:7620:2: rule__UnionTags__Group_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__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__UnionTags__Group_2__1" + + + // $ANTLR start "rule__UnionTags__Group_2__1__Impl" + // InternalFiacre.g:7626:1: rule__UnionTags__Group_2__1__Impl : ( ( rule__UnionTags__TypeAssignment_2_1 ) ) ; + public final void rule__UnionTags__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7630:1: ( ( ( rule__UnionTags__TypeAssignment_2_1 ) ) ) + // InternalFiacre.g:7631:1: ( ( rule__UnionTags__TypeAssignment_2_1 ) ) + { + // InternalFiacre.g:7631:1: ( ( rule__UnionTags__TypeAssignment_2_1 ) ) + // InternalFiacre.g:7632:2: ( rule__UnionTags__TypeAssignment_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getTypeAssignment_2_1()); + } + // InternalFiacre.g:7633:2: ( rule__UnionTags__TypeAssignment_2_1 ) + // InternalFiacre.g:7633:3: rule__UnionTags__TypeAssignment_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnionTags__TypeAssignment_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getTypeAssignment_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__Group_2__1__Impl" + + + // $ANTLR start "rule__RecordType__Group__0" + // InternalFiacre.g:7642:1: rule__RecordType__Group__0 : rule__RecordType__Group__0__Impl rule__RecordType__Group__1 ; + public final void rule__RecordType__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7646:1: ( rule__RecordType__Group__0__Impl rule__RecordType__Group__1 ) + // InternalFiacre.g:7647:2: rule__RecordType__Group__0__Impl rule__RecordType__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__RecordType__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordType__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group__0" + + + // $ANTLR start "rule__RecordType__Group__0__Impl" + // InternalFiacre.g:7654:1: rule__RecordType__Group__0__Impl : ( 'record' ) ; + public final void rule__RecordType__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7658:1: ( ( 'record' ) ) + // InternalFiacre.g:7659:1: ( 'record' ) + { + // InternalFiacre.g:7659:1: ( 'record' ) + // InternalFiacre.g:7660:2: 'record' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeAccess().getRecordKeyword_0()); + } + match(input,37,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeAccess().getRecordKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group__0__Impl" + + + // $ANTLR start "rule__RecordType__Group__1" + // InternalFiacre.g:7669:1: rule__RecordType__Group__1 : rule__RecordType__Group__1__Impl rule__RecordType__Group__2 ; + public final void rule__RecordType__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7673:1: ( rule__RecordType__Group__1__Impl rule__RecordType__Group__2 ) + // InternalFiacre.g:7674:2: rule__RecordType__Group__1__Impl rule__RecordType__Group__2 + { + pushFollow(FollowSets000.FOLLOW_36); + rule__RecordType__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordType__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group__1" + + + // $ANTLR start "rule__RecordType__Group__1__Impl" + // InternalFiacre.g:7681:1: rule__RecordType__Group__1__Impl : ( ( rule__RecordType__FieldsAssignment_1 ) ) ; + public final void rule__RecordType__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7685:1: ( ( ( rule__RecordType__FieldsAssignment_1 ) ) ) + // InternalFiacre.g:7686:1: ( ( rule__RecordType__FieldsAssignment_1 ) ) + { + // InternalFiacre.g:7686:1: ( ( rule__RecordType__FieldsAssignment_1 ) ) + // InternalFiacre.g:7687:2: ( rule__RecordType__FieldsAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeAccess().getFieldsAssignment_1()); + } + // InternalFiacre.g:7688:2: ( rule__RecordType__FieldsAssignment_1 ) + // InternalFiacre.g:7688:3: rule__RecordType__FieldsAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordType__FieldsAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeAccess().getFieldsAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group__1__Impl" + + + // $ANTLR start "rule__RecordType__Group__2" + // InternalFiacre.g:7696:1: rule__RecordType__Group__2 : rule__RecordType__Group__2__Impl rule__RecordType__Group__3 ; + public final void rule__RecordType__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7700:1: ( rule__RecordType__Group__2__Impl rule__RecordType__Group__3 ) + // InternalFiacre.g:7701:2: rule__RecordType__Group__2__Impl rule__RecordType__Group__3 + { + pushFollow(FollowSets000.FOLLOW_36); + rule__RecordType__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordType__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group__2" + + + // $ANTLR start "rule__RecordType__Group__2__Impl" + // InternalFiacre.g:7708:1: rule__RecordType__Group__2__Impl : ( ( rule__RecordType__Group_2__0 )* ) ; + public final void rule__RecordType__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7712:1: ( ( ( rule__RecordType__Group_2__0 )* ) ) + // InternalFiacre.g:7713:1: ( ( rule__RecordType__Group_2__0 )* ) + { + // InternalFiacre.g:7713:1: ( ( rule__RecordType__Group_2__0 )* ) + // InternalFiacre.g:7714:2: ( rule__RecordType__Group_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeAccess().getGroup_2()); + } + // InternalFiacre.g:7715:2: ( rule__RecordType__Group_2__0 )* + loop80: + do { + int alt80=2; + int LA80_0 = input.LA(1); + + if ( (LA80_0==24) ) { + alt80=1; + } + + + switch (alt80) { + case 1 : + // InternalFiacre.g:7715:3: rule__RecordType__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__RecordType__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop80; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group__2__Impl" + + + // $ANTLR start "rule__RecordType__Group__3" + // InternalFiacre.g:7723:1: rule__RecordType__Group__3 : rule__RecordType__Group__3__Impl rule__RecordType__Group__4 ; + public final void rule__RecordType__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7727:1: ( rule__RecordType__Group__3__Impl rule__RecordType__Group__4 ) + // InternalFiacre.g:7728:2: rule__RecordType__Group__3__Impl rule__RecordType__Group__4 + { + pushFollow(FollowSets000.FOLLOW_37); + rule__RecordType__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordType__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group__3" + + + // $ANTLR start "rule__RecordType__Group__3__Impl" + // InternalFiacre.g:7735:1: rule__RecordType__Group__3__Impl : ( 'end' ) ; + public final void rule__RecordType__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7739:1: ( ( 'end' ) ) + // InternalFiacre.g:7740:1: ( 'end' ) + { + // InternalFiacre.g:7740:1: ( 'end' ) + // InternalFiacre.g:7741:2: 'end' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeAccess().getEndKeyword_3()); + } + match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeAccess().getEndKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group__3__Impl" + + + // $ANTLR start "rule__RecordType__Group__4" + // InternalFiacre.g:7750:1: rule__RecordType__Group__4 : rule__RecordType__Group__4__Impl ; + public final void rule__RecordType__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7754:1: ( rule__RecordType__Group__4__Impl ) + // InternalFiacre.g:7755:2: rule__RecordType__Group__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordType__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group__4" + + + // $ANTLR start "rule__RecordType__Group__4__Impl" + // InternalFiacre.g:7761:1: rule__RecordType__Group__4__Impl : ( ( 'record' )? ) ; + public final void rule__RecordType__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7765:1: ( ( ( 'record' )? ) ) + // InternalFiacre.g:7766:1: ( ( 'record' )? ) + { + // InternalFiacre.g:7766:1: ( ( 'record' )? ) + // InternalFiacre.g:7767:2: ( 'record' )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeAccess().getRecordKeyword_4()); + } + // InternalFiacre.g:7768:2: ( 'record' )? + int alt81=2; + int LA81_0 = input.LA(1); + + if ( (LA81_0==37) ) { + alt81=1; + } + switch (alt81) { + case 1 : + // InternalFiacre.g:7768:3: 'record' + { + match(input,37,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeAccess().getRecordKeyword_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group__4__Impl" + + + // $ANTLR start "rule__RecordType__Group_2__0" + // InternalFiacre.g:7777:1: rule__RecordType__Group_2__0 : rule__RecordType__Group_2__0__Impl rule__RecordType__Group_2__1 ; + public final void rule__RecordType__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7781:1: ( rule__RecordType__Group_2__0__Impl rule__RecordType__Group_2__1 ) + // InternalFiacre.g:7782:2: rule__RecordType__Group_2__0__Impl rule__RecordType__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__RecordType__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordType__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group_2__0" + + + // $ANTLR start "rule__RecordType__Group_2__0__Impl" + // InternalFiacre.g:7789:1: rule__RecordType__Group_2__0__Impl : ( ',' ) ; + public final void rule__RecordType__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7793:1: ( ( ',' ) ) + // InternalFiacre.g:7794:1: ( ',' ) + { + // InternalFiacre.g:7794:1: ( ',' ) + // InternalFiacre.g:7795:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeAccess().getCommaKeyword_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeAccess().getCommaKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group_2__0__Impl" + + + // $ANTLR start "rule__RecordType__Group_2__1" + // InternalFiacre.g:7804:1: rule__RecordType__Group_2__1 : rule__RecordType__Group_2__1__Impl ; + public final void rule__RecordType__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7808:1: ( rule__RecordType__Group_2__1__Impl ) + // InternalFiacre.g:7809:2: rule__RecordType__Group_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordType__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__RecordType__Group_2__1" + + + // $ANTLR start "rule__RecordType__Group_2__1__Impl" + // InternalFiacre.g:7815:1: rule__RecordType__Group_2__1__Impl : ( ( rule__RecordType__FieldsAssignment_2_1 ) ) ; + public final void rule__RecordType__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7819:1: ( ( ( rule__RecordType__FieldsAssignment_2_1 ) ) ) + // InternalFiacre.g:7820:1: ( ( rule__RecordType__FieldsAssignment_2_1 ) ) + { + // InternalFiacre.g:7820:1: ( ( rule__RecordType__FieldsAssignment_2_1 ) ) + // InternalFiacre.g:7821:2: ( rule__RecordType__FieldsAssignment_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeAccess().getFieldsAssignment_2_1()); + } + // InternalFiacre.g:7822:2: ( rule__RecordType__FieldsAssignment_2_1 ) + // InternalFiacre.g:7822:3: rule__RecordType__FieldsAssignment_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordType__FieldsAssignment_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeAccess().getFieldsAssignment_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__Group_2__1__Impl" + + + // $ANTLR start "rule__RecordFields__Group__0" + // InternalFiacre.g:7831:1: rule__RecordFields__Group__0 : rule__RecordFields__Group__0__Impl rule__RecordFields__Group__1 ; + public final void rule__RecordFields__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7835:1: ( rule__RecordFields__Group__0__Impl rule__RecordFields__Group__1 ) + // InternalFiacre.g:7836:2: rule__RecordFields__Group__0__Impl rule__RecordFields__Group__1 + { + pushFollow(FollowSets000.FOLLOW_38); + rule__RecordFields__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFields__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group__0" + + + // $ANTLR start "rule__RecordFields__Group__0__Impl" + // InternalFiacre.g:7843:1: rule__RecordFields__Group__0__Impl : ( ( rule__RecordFields__FieldsAssignment_0 ) ) ; + public final void rule__RecordFields__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7847:1: ( ( ( rule__RecordFields__FieldsAssignment_0 ) ) ) + // InternalFiacre.g:7848:1: ( ( rule__RecordFields__FieldsAssignment_0 ) ) + { + // InternalFiacre.g:7848:1: ( ( rule__RecordFields__FieldsAssignment_0 ) ) + // InternalFiacre.g:7849:2: ( rule__RecordFields__FieldsAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsAccess().getFieldsAssignment_0()); + } + // InternalFiacre.g:7850:2: ( rule__RecordFields__FieldsAssignment_0 ) + // InternalFiacre.g:7850:3: rule__RecordFields__FieldsAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFields__FieldsAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsAccess().getFieldsAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group__0__Impl" + + + // $ANTLR start "rule__RecordFields__Group__1" + // InternalFiacre.g:7858:1: rule__RecordFields__Group__1 : rule__RecordFields__Group__1__Impl rule__RecordFields__Group__2 ; + public final void rule__RecordFields__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7862:1: ( rule__RecordFields__Group__1__Impl rule__RecordFields__Group__2 ) + // InternalFiacre.g:7863:2: rule__RecordFields__Group__1__Impl rule__RecordFields__Group__2 + { + pushFollow(FollowSets000.FOLLOW_38); + rule__RecordFields__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFields__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group__1" + + + // $ANTLR start "rule__RecordFields__Group__1__Impl" + // InternalFiacre.g:7870:1: rule__RecordFields__Group__1__Impl : ( ( rule__RecordFields__Group_1__0 )* ) ; + public final void rule__RecordFields__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7874:1: ( ( ( rule__RecordFields__Group_1__0 )* ) ) + // InternalFiacre.g:7875:1: ( ( rule__RecordFields__Group_1__0 )* ) + { + // InternalFiacre.g:7875:1: ( ( rule__RecordFields__Group_1__0 )* ) + // InternalFiacre.g:7876:2: ( rule__RecordFields__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsAccess().getGroup_1()); + } + // InternalFiacre.g:7877:2: ( rule__RecordFields__Group_1__0 )* + loop82: + do { + int alt82=2; + int LA82_0 = input.LA(1); + + if ( (LA82_0==24) ) { + alt82=1; + } + + + switch (alt82) { + case 1 : + // InternalFiacre.g:7877:3: rule__RecordFields__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__RecordFields__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop82; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group__1__Impl" + + + // $ANTLR start "rule__RecordFields__Group__2" + // InternalFiacre.g:7885:1: rule__RecordFields__Group__2 : rule__RecordFields__Group__2__Impl rule__RecordFields__Group__3 ; + public final void rule__RecordFields__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7889:1: ( rule__RecordFields__Group__2__Impl rule__RecordFields__Group__3 ) + // InternalFiacre.g:7890:2: rule__RecordFields__Group__2__Impl rule__RecordFields__Group__3 + { + pushFollow(FollowSets000.FOLLOW_15); + rule__RecordFields__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFields__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group__2" + + + // $ANTLR start "rule__RecordFields__Group__2__Impl" + // InternalFiacre.g:7897:1: rule__RecordFields__Group__2__Impl : ( ':' ) ; + public final void rule__RecordFields__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7901:1: ( ( ':' ) ) + // InternalFiacre.g:7902:1: ( ':' ) + { + // InternalFiacre.g:7902:1: ( ':' ) + // InternalFiacre.g:7903:2: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsAccess().getColonKeyword_2()); + } + match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsAccess().getColonKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group__2__Impl" + + + // $ANTLR start "rule__RecordFields__Group__3" + // InternalFiacre.g:7912:1: rule__RecordFields__Group__3 : rule__RecordFields__Group__3__Impl ; + public final void rule__RecordFields__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7916:1: ( rule__RecordFields__Group__3__Impl ) + // InternalFiacre.g:7917:2: rule__RecordFields__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFields__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group__3" + + + // $ANTLR start "rule__RecordFields__Group__3__Impl" + // InternalFiacre.g:7923:1: rule__RecordFields__Group__3__Impl : ( ( rule__RecordFields__TypeAssignment_3 ) ) ; + public final void rule__RecordFields__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7927:1: ( ( ( rule__RecordFields__TypeAssignment_3 ) ) ) + // InternalFiacre.g:7928:1: ( ( rule__RecordFields__TypeAssignment_3 ) ) + { + // InternalFiacre.g:7928:1: ( ( rule__RecordFields__TypeAssignment_3 ) ) + // InternalFiacre.g:7929:2: ( rule__RecordFields__TypeAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsAccess().getTypeAssignment_3()); + } + // InternalFiacre.g:7930:2: ( rule__RecordFields__TypeAssignment_3 ) + // InternalFiacre.g:7930:3: rule__RecordFields__TypeAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFields__TypeAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsAccess().getTypeAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group__3__Impl" + + + // $ANTLR start "rule__RecordFields__Group_1__0" + // InternalFiacre.g:7939:1: rule__RecordFields__Group_1__0 : rule__RecordFields__Group_1__0__Impl rule__RecordFields__Group_1__1 ; + public final void rule__RecordFields__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7943:1: ( rule__RecordFields__Group_1__0__Impl rule__RecordFields__Group_1__1 ) + // InternalFiacre.g:7944:2: rule__RecordFields__Group_1__0__Impl rule__RecordFields__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__RecordFields__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFields__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group_1__0" + + + // $ANTLR start "rule__RecordFields__Group_1__0__Impl" + // InternalFiacre.g:7951:1: rule__RecordFields__Group_1__0__Impl : ( ',' ) ; + public final void rule__RecordFields__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7955:1: ( ( ',' ) ) + // InternalFiacre.g:7956:1: ( ',' ) + { + // InternalFiacre.g:7956:1: ( ',' ) + // InternalFiacre.g:7957:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsAccess().getCommaKeyword_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsAccess().getCommaKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group_1__0__Impl" + + + // $ANTLR start "rule__RecordFields__Group_1__1" + // InternalFiacre.g:7966:1: rule__RecordFields__Group_1__1 : rule__RecordFields__Group_1__1__Impl ; + public final void rule__RecordFields__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7970:1: ( rule__RecordFields__Group_1__1__Impl ) + // InternalFiacre.g:7971:2: rule__RecordFields__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFields__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__RecordFields__Group_1__1" + + + // $ANTLR start "rule__RecordFields__Group_1__1__Impl" + // InternalFiacre.g:7977:1: rule__RecordFields__Group_1__1__Impl : ( ( rule__RecordFields__FieldsAssignment_1_1 ) ) ; + public final void rule__RecordFields__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7981:1: ( ( ( rule__RecordFields__FieldsAssignment_1_1 ) ) ) + // InternalFiacre.g:7982:1: ( ( rule__RecordFields__FieldsAssignment_1_1 ) ) + { + // InternalFiacre.g:7982:1: ( ( rule__RecordFields__FieldsAssignment_1_1 ) ) + // InternalFiacre.g:7983:2: ( rule__RecordFields__FieldsAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsAccess().getFieldsAssignment_1_1()); + } + // InternalFiacre.g:7984:2: ( rule__RecordFields__FieldsAssignment_1_1 ) + // InternalFiacre.g:7984:3: rule__RecordFields__FieldsAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordFields__FieldsAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsAccess().getFieldsAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__Group_1__1__Impl" + + + // $ANTLR start "rule__QueueType__Group__0" + // InternalFiacre.g:7993:1: rule__QueueType__Group__0 : rule__QueueType__Group__0__Impl rule__QueueType__Group__1 ; + public final void rule__QueueType__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:7997:1: ( rule__QueueType__Group__0__Impl rule__QueueType__Group__1 ) + // InternalFiacre.g:7998:2: rule__QueueType__Group__0__Impl rule__QueueType__Group__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__QueueType__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueType__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueType__Group__0" + + + // $ANTLR start "rule__QueueType__Group__0__Impl" + // InternalFiacre.g:8005:1: rule__QueueType__Group__0__Impl : ( 'queue' ) ; + public final void rule__QueueType__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8009:1: ( ( 'queue' ) ) + // InternalFiacre.g:8010:1: ( 'queue' ) + { + // InternalFiacre.g:8010:1: ( 'queue' ) + // InternalFiacre.g:8011:2: 'queue' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueTypeAccess().getQueueKeyword_0()); + } + match(input,38,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueTypeAccess().getQueueKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueType__Group__0__Impl" + + + // $ANTLR start "rule__QueueType__Group__1" + // InternalFiacre.g:8020:1: rule__QueueType__Group__1 : rule__QueueType__Group__1__Impl rule__QueueType__Group__2 ; + public final void rule__QueueType__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8024:1: ( rule__QueueType__Group__1__Impl rule__QueueType__Group__2 ) + // InternalFiacre.g:8025:2: rule__QueueType__Group__1__Impl rule__QueueType__Group__2 + { + pushFollow(FollowSets000.FOLLOW_24); + rule__QueueType__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueType__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueType__Group__1" + + + // $ANTLR start "rule__QueueType__Group__1__Impl" + // InternalFiacre.g:8032:1: rule__QueueType__Group__1__Impl : ( ( rule__QueueType__SizeAssignment_1 ) ) ; + public final void rule__QueueType__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8036:1: ( ( ( rule__QueueType__SizeAssignment_1 ) ) ) + // InternalFiacre.g:8037:1: ( ( rule__QueueType__SizeAssignment_1 ) ) + { + // InternalFiacre.g:8037:1: ( ( rule__QueueType__SizeAssignment_1 ) ) + // InternalFiacre.g:8038:2: ( rule__QueueType__SizeAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueTypeAccess().getSizeAssignment_1()); + } + // InternalFiacre.g:8039:2: ( rule__QueueType__SizeAssignment_1 ) + // InternalFiacre.g:8039:3: rule__QueueType__SizeAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueType__SizeAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueTypeAccess().getSizeAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueType__Group__1__Impl" + + + // $ANTLR start "rule__QueueType__Group__2" + // InternalFiacre.g:8047:1: rule__QueueType__Group__2 : rule__QueueType__Group__2__Impl rule__QueueType__Group__3 ; + public final void rule__QueueType__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8051:1: ( rule__QueueType__Group__2__Impl rule__QueueType__Group__3 ) + // InternalFiacre.g:8052:2: rule__QueueType__Group__2__Impl rule__QueueType__Group__3 + { + pushFollow(FollowSets000.FOLLOW_15); + rule__QueueType__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueType__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueType__Group__2" + + + // $ANTLR start "rule__QueueType__Group__2__Impl" + // InternalFiacre.g:8059:1: rule__QueueType__Group__2__Impl : ( 'of' ) ; + public final void rule__QueueType__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8063:1: ( ( 'of' ) ) + // InternalFiacre.g:8064:1: ( 'of' ) + { + // InternalFiacre.g:8064:1: ( 'of' ) + // InternalFiacre.g:8065:2: 'of' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueTypeAccess().getOfKeyword_2()); + } + match(input,29,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueTypeAccess().getOfKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueType__Group__2__Impl" + + + // $ANTLR start "rule__QueueType__Group__3" + // InternalFiacre.g:8074:1: rule__QueueType__Group__3 : rule__QueueType__Group__3__Impl ; + public final void rule__QueueType__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8078:1: ( rule__QueueType__Group__3__Impl ) + // InternalFiacre.g:8079:2: rule__QueueType__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueType__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueType__Group__3" + + + // $ANTLR start "rule__QueueType__Group__3__Impl" + // InternalFiacre.g:8085:1: rule__QueueType__Group__3__Impl : ( ( rule__QueueType__TypeAssignment_3 ) ) ; + public final void rule__QueueType__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8089:1: ( ( ( rule__QueueType__TypeAssignment_3 ) ) ) + // InternalFiacre.g:8090:1: ( ( rule__QueueType__TypeAssignment_3 ) ) + { + // InternalFiacre.g:8090:1: ( ( rule__QueueType__TypeAssignment_3 ) ) + // InternalFiacre.g:8091:2: ( rule__QueueType__TypeAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueTypeAccess().getTypeAssignment_3()); + } + // InternalFiacre.g:8092:2: ( rule__QueueType__TypeAssignment_3 ) + // InternalFiacre.g:8092:3: rule__QueueType__TypeAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueType__TypeAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueTypeAccess().getTypeAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueType__Group__3__Impl" + + + // $ANTLR start "rule__ArrayType__Group__0" + // InternalFiacre.g:8101:1: rule__ArrayType__Group__0 : rule__ArrayType__Group__0__Impl rule__ArrayType__Group__1 ; + public final void rule__ArrayType__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8105:1: ( rule__ArrayType__Group__0__Impl rule__ArrayType__Group__1 ) + // InternalFiacre.g:8106:2: rule__ArrayType__Group__0__Impl rule__ArrayType__Group__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ArrayType__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayType__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayType__Group__0" + + + // $ANTLR start "rule__ArrayType__Group__0__Impl" + // InternalFiacre.g:8113:1: rule__ArrayType__Group__0__Impl : ( 'array' ) ; + public final void rule__ArrayType__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8117:1: ( ( 'array' ) ) + // InternalFiacre.g:8118:1: ( 'array' ) + { + // InternalFiacre.g:8118:1: ( 'array' ) + // InternalFiacre.g:8119:2: 'array' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayTypeAccess().getArrayKeyword_0()); + } + match(input,28,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayTypeAccess().getArrayKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayType__Group__0__Impl" + + + // $ANTLR start "rule__ArrayType__Group__1" + // InternalFiacre.g:8128:1: rule__ArrayType__Group__1 : rule__ArrayType__Group__1__Impl rule__ArrayType__Group__2 ; + public final void rule__ArrayType__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8132:1: ( rule__ArrayType__Group__1__Impl rule__ArrayType__Group__2 ) + // InternalFiacre.g:8133:2: rule__ArrayType__Group__1__Impl rule__ArrayType__Group__2 + { + pushFollow(FollowSets000.FOLLOW_24); + rule__ArrayType__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayType__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayType__Group__1" + + + // $ANTLR start "rule__ArrayType__Group__1__Impl" + // InternalFiacre.g:8140:1: rule__ArrayType__Group__1__Impl : ( ( rule__ArrayType__SizeAssignment_1 ) ) ; + public final void rule__ArrayType__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8144:1: ( ( ( rule__ArrayType__SizeAssignment_1 ) ) ) + // InternalFiacre.g:8145:1: ( ( rule__ArrayType__SizeAssignment_1 ) ) + { + // InternalFiacre.g:8145:1: ( ( rule__ArrayType__SizeAssignment_1 ) ) + // InternalFiacre.g:8146:2: ( rule__ArrayType__SizeAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayTypeAccess().getSizeAssignment_1()); + } + // InternalFiacre.g:8147:2: ( rule__ArrayType__SizeAssignment_1 ) + // InternalFiacre.g:8147:3: rule__ArrayType__SizeAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayType__SizeAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayTypeAccess().getSizeAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayType__Group__1__Impl" + + + // $ANTLR start "rule__ArrayType__Group__2" + // InternalFiacre.g:8155:1: rule__ArrayType__Group__2 : rule__ArrayType__Group__2__Impl rule__ArrayType__Group__3 ; + public final void rule__ArrayType__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8159:1: ( rule__ArrayType__Group__2__Impl rule__ArrayType__Group__3 ) + // InternalFiacre.g:8160:2: rule__ArrayType__Group__2__Impl rule__ArrayType__Group__3 + { + pushFollow(FollowSets000.FOLLOW_15); + rule__ArrayType__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayType__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayType__Group__2" + + + // $ANTLR start "rule__ArrayType__Group__2__Impl" + // InternalFiacre.g:8167:1: rule__ArrayType__Group__2__Impl : ( 'of' ) ; + public final void rule__ArrayType__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8171:1: ( ( 'of' ) ) + // InternalFiacre.g:8172:1: ( 'of' ) + { + // InternalFiacre.g:8172:1: ( 'of' ) + // InternalFiacre.g:8173:2: 'of' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayTypeAccess().getOfKeyword_2()); + } + match(input,29,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayTypeAccess().getOfKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayType__Group__2__Impl" + + + // $ANTLR start "rule__ArrayType__Group__3" + // InternalFiacre.g:8182:1: rule__ArrayType__Group__3 : rule__ArrayType__Group__3__Impl ; + public final void rule__ArrayType__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8186:1: ( rule__ArrayType__Group__3__Impl ) + // InternalFiacre.g:8187:2: rule__ArrayType__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayType__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayType__Group__3" + + + // $ANTLR start "rule__ArrayType__Group__3__Impl" + // InternalFiacre.g:8193:1: rule__ArrayType__Group__3__Impl : ( ( rule__ArrayType__TypeAssignment_3 ) ) ; + public final void rule__ArrayType__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8197:1: ( ( ( rule__ArrayType__TypeAssignment_3 ) ) ) + // InternalFiacre.g:8198:1: ( ( rule__ArrayType__TypeAssignment_3 ) ) + { + // InternalFiacre.g:8198:1: ( ( rule__ArrayType__TypeAssignment_3 ) ) + // InternalFiacre.g:8199:2: ( rule__ArrayType__TypeAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayTypeAccess().getTypeAssignment_3()); + } + // InternalFiacre.g:8200:2: ( rule__ArrayType__TypeAssignment_3 ) + // InternalFiacre.g:8200:3: rule__ArrayType__TypeAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayType__TypeAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayTypeAccess().getTypeAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayType__Group__3__Impl" + + + // $ANTLR start "rule__ConstantDeclaration__Group__0" + // InternalFiacre.g:8209:1: rule__ConstantDeclaration__Group__0 : rule__ConstantDeclaration__Group__0__Impl rule__ConstantDeclaration__Group__1 ; + public final void rule__ConstantDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8213:1: ( rule__ConstantDeclaration__Group__0__Impl rule__ConstantDeclaration__Group__1 ) + // InternalFiacre.g:8214:2: rule__ConstantDeclaration__Group__0__Impl rule__ConstantDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ConstantDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__0" + + + // $ANTLR start "rule__ConstantDeclaration__Group__0__Impl" + // InternalFiacre.g:8221:1: rule__ConstantDeclaration__Group__0__Impl : ( 'const' ) ; + public final void rule__ConstantDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8225:1: ( ( 'const' ) ) + // InternalFiacre.g:8226:1: ( 'const' ) + { + // InternalFiacre.g:8226:1: ( 'const' ) + // InternalFiacre.g:8227:2: 'const' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationAccess().getConstKeyword_0()); + } + match(input,39,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationAccess().getConstKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ConstantDeclaration__Group__1" + // InternalFiacre.g:8236:1: rule__ConstantDeclaration__Group__1 : rule__ConstantDeclaration__Group__1__Impl rule__ConstantDeclaration__Group__2 ; + public final void rule__ConstantDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8240:1: ( rule__ConstantDeclaration__Group__1__Impl rule__ConstantDeclaration__Group__2 ) + // InternalFiacre.g:8241:2: rule__ConstantDeclaration__Group__1__Impl rule__ConstantDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_14); + rule__ConstantDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__1" + + + // $ANTLR start "rule__ConstantDeclaration__Group__1__Impl" + // InternalFiacre.g:8248:1: rule__ConstantDeclaration__Group__1__Impl : ( ( rule__ConstantDeclaration__NameAssignment_1 ) ) ; + public final void rule__ConstantDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8252:1: ( ( ( rule__ConstantDeclaration__NameAssignment_1 ) ) ) + // InternalFiacre.g:8253:1: ( ( rule__ConstantDeclaration__NameAssignment_1 ) ) + { + // InternalFiacre.g:8253:1: ( ( rule__ConstantDeclaration__NameAssignment_1 ) ) + // InternalFiacre.g:8254:2: ( rule__ConstantDeclaration__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationAccess().getNameAssignment_1()); + } + // InternalFiacre.g:8255:2: ( rule__ConstantDeclaration__NameAssignment_1 ) + // InternalFiacre.g:8255:3: rule__ConstantDeclaration__NameAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantDeclaration__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__ConstantDeclaration__Group__2" + // InternalFiacre.g:8263:1: rule__ConstantDeclaration__Group__2 : rule__ConstantDeclaration__Group__2__Impl rule__ConstantDeclaration__Group__3 ; + public final void rule__ConstantDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8267:1: ( rule__ConstantDeclaration__Group__2__Impl rule__ConstantDeclaration__Group__3 ) + // InternalFiacre.g:8268:2: rule__ConstantDeclaration__Group__2__Impl rule__ConstantDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_15); + rule__ConstantDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__2" + + + // $ANTLR start "rule__ConstantDeclaration__Group__2__Impl" + // InternalFiacre.g:8275:1: rule__ConstantDeclaration__Group__2__Impl : ( ':' ) ; + public final void rule__ConstantDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8279:1: ( ( ':' ) ) + // InternalFiacre.g:8280:1: ( ':' ) + { + // InternalFiacre.g:8280:1: ( ':' ) + // InternalFiacre.g:8281:2: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationAccess().getColonKeyword_2()); + } + match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationAccess().getColonKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__ConstantDeclaration__Group__3" + // InternalFiacre.g:8290:1: rule__ConstantDeclaration__Group__3 : rule__ConstantDeclaration__Group__3__Impl rule__ConstantDeclaration__Group__4 ; + public final void rule__ConstantDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8294:1: ( rule__ConstantDeclaration__Group__3__Impl rule__ConstantDeclaration__Group__4 ) + // InternalFiacre.g:8295:2: rule__ConstantDeclaration__Group__3__Impl rule__ConstantDeclaration__Group__4 + { + pushFollow(FollowSets000.FOLLOW_16); + rule__ConstantDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantDeclaration__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__3" + + + // $ANTLR start "rule__ConstantDeclaration__Group__3__Impl" + // InternalFiacre.g:8302:1: rule__ConstantDeclaration__Group__3__Impl : ( ( rule__ConstantDeclaration__TypeAssignment_3 ) ) ; + public final void rule__ConstantDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8306:1: ( ( ( rule__ConstantDeclaration__TypeAssignment_3 ) ) ) + // InternalFiacre.g:8307:1: ( ( rule__ConstantDeclaration__TypeAssignment_3 ) ) + { + // InternalFiacre.g:8307:1: ( ( rule__ConstantDeclaration__TypeAssignment_3 ) ) + // InternalFiacre.g:8308:2: ( rule__ConstantDeclaration__TypeAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationAccess().getTypeAssignment_3()); + } + // InternalFiacre.g:8309:2: ( rule__ConstantDeclaration__TypeAssignment_3 ) + // InternalFiacre.g:8309:3: rule__ConstantDeclaration__TypeAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantDeclaration__TypeAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationAccess().getTypeAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__ConstantDeclaration__Group__4" + // InternalFiacre.g:8317:1: rule__ConstantDeclaration__Group__4 : rule__ConstantDeclaration__Group__4__Impl rule__ConstantDeclaration__Group__5 ; + public final void rule__ConstantDeclaration__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8321:1: ( rule__ConstantDeclaration__Group__4__Impl rule__ConstantDeclaration__Group__5 ) + // InternalFiacre.g:8322:2: rule__ConstantDeclaration__Group__4__Impl rule__ConstantDeclaration__Group__5 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ConstantDeclaration__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantDeclaration__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__4" + + + // $ANTLR start "rule__ConstantDeclaration__Group__4__Impl" + // InternalFiacre.g:8329:1: rule__ConstantDeclaration__Group__4__Impl : ( 'is' ) ; + public final void rule__ConstantDeclaration__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8333:1: ( ( 'is' ) ) + // InternalFiacre.g:8334:1: ( 'is' ) + { + // InternalFiacre.g:8334:1: ( 'is' ) + // InternalFiacre.g:8335:2: 'is' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationAccess().getIsKeyword_4()); + } + match(input,21,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationAccess().getIsKeyword_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__4__Impl" + + + // $ANTLR start "rule__ConstantDeclaration__Group__5" + // InternalFiacre.g:8344:1: rule__ConstantDeclaration__Group__5 : rule__ConstantDeclaration__Group__5__Impl ; + public final void rule__ConstantDeclaration__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8348:1: ( rule__ConstantDeclaration__Group__5__Impl ) + // InternalFiacre.g:8349:2: rule__ConstantDeclaration__Group__5__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantDeclaration__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__5" + + + // $ANTLR start "rule__ConstantDeclaration__Group__5__Impl" + // InternalFiacre.g:8355:1: rule__ConstantDeclaration__Group__5__Impl : ( ( rule__ConstantDeclaration__ValueAssignment_5 ) ) ; + public final void rule__ConstantDeclaration__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8359:1: ( ( ( rule__ConstantDeclaration__ValueAssignment_5 ) ) ) + // InternalFiacre.g:8360:1: ( ( rule__ConstantDeclaration__ValueAssignment_5 ) ) + { + // InternalFiacre.g:8360:1: ( ( rule__ConstantDeclaration__ValueAssignment_5 ) ) + // InternalFiacre.g:8361:2: ( rule__ConstantDeclaration__ValueAssignment_5 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationAccess().getValueAssignment_5()); + } + // InternalFiacre.g:8362:2: ( rule__ConstantDeclaration__ValueAssignment_5 ) + // InternalFiacre.g:8362:3: rule__ConstantDeclaration__ValueAssignment_5 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConstantDeclaration__ValueAssignment_5(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationAccess().getValueAssignment_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__Group__5__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__0" + // InternalFiacre.g:8371:1: rule__ProcessDeclaration__Group__0 : rule__ProcessDeclaration__Group__0__Impl rule__ProcessDeclaration__Group__1 ; + public final void rule__ProcessDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8375:1: ( rule__ProcessDeclaration__Group__0__Impl rule__ProcessDeclaration__Group__1 ) + // InternalFiacre.g:8376:2: rule__ProcessDeclaration__Group__0__Impl rule__ProcessDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group__0__Impl" + // InternalFiacre.g:8383:1: rule__ProcessDeclaration__Group__0__Impl : ( 'process' ) ; + public final void rule__ProcessDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8387:1: ( ( 'process' ) ) + // InternalFiacre.g:8388:1: ( 'process' ) + { + // InternalFiacre.g:8388:1: ( 'process' ) + // InternalFiacre.g:8389:2: 'process' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getProcessKeyword_0()); + } + match(input,40,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getProcessKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__1" + // InternalFiacre.g:8398:1: rule__ProcessDeclaration__Group__1 : rule__ProcessDeclaration__Group__1__Impl rule__ProcessDeclaration__Group__2 ; + public final void rule__ProcessDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8402:1: ( rule__ProcessDeclaration__Group__1__Impl rule__ProcessDeclaration__Group__2 ) + // InternalFiacre.g:8403:2: rule__ProcessDeclaration__Group__1__Impl rule__ProcessDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_39); + rule__ProcessDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group__1__Impl" + // InternalFiacre.g:8410:1: rule__ProcessDeclaration__Group__1__Impl : ( ( rule__ProcessDeclaration__NameAssignment_1 ) ) ; + public final void rule__ProcessDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8414:1: ( ( ( rule__ProcessDeclaration__NameAssignment_1 ) ) ) + // InternalFiacre.g:8415:1: ( ( rule__ProcessDeclaration__NameAssignment_1 ) ) + { + // InternalFiacre.g:8415:1: ( ( rule__ProcessDeclaration__NameAssignment_1 ) ) + // InternalFiacre.g:8416:2: ( rule__ProcessDeclaration__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getNameAssignment_1()); + } + // InternalFiacre.g:8417:2: ( rule__ProcessDeclaration__NameAssignment_1 ) + // InternalFiacre.g:8417:3: rule__ProcessDeclaration__NameAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__2" + // InternalFiacre.g:8425:1: rule__ProcessDeclaration__Group__2 : rule__ProcessDeclaration__Group__2__Impl rule__ProcessDeclaration__Group__3 ; + public final void rule__ProcessDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8429:1: ( rule__ProcessDeclaration__Group__2__Impl rule__ProcessDeclaration__Group__3 ) + // InternalFiacre.g:8430:2: rule__ProcessDeclaration__Group__2__Impl rule__ProcessDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_39); + rule__ProcessDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__2" + + + // $ANTLR start "rule__ProcessDeclaration__Group__2__Impl" + // InternalFiacre.g:8437:1: rule__ProcessDeclaration__Group__2__Impl : ( ( rule__ProcessDeclaration__Group_2__0 )? ) ; + public final void rule__ProcessDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8441:1: ( ( ( rule__ProcessDeclaration__Group_2__0 )? ) ) + // InternalFiacre.g:8442:1: ( ( rule__ProcessDeclaration__Group_2__0 )? ) + { + // InternalFiacre.g:8442:1: ( ( rule__ProcessDeclaration__Group_2__0 )? ) + // InternalFiacre.g:8443:2: ( rule__ProcessDeclaration__Group_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_2()); + } + // InternalFiacre.g:8444:2: ( rule__ProcessDeclaration__Group_2__0 )? + int alt83=2; + int LA83_0 = input.LA(1); + + if ( (LA83_0==42) ) { + alt83=1; + } + switch (alt83) { + case 1 : + // InternalFiacre.g:8444:3: rule__ProcessDeclaration__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__3" + // InternalFiacre.g:8452:1: rule__ProcessDeclaration__Group__3 : rule__ProcessDeclaration__Group__3__Impl rule__ProcessDeclaration__Group__4 ; + public final void rule__ProcessDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8456:1: ( rule__ProcessDeclaration__Group__3__Impl rule__ProcessDeclaration__Group__4 ) + // InternalFiacre.g:8457:2: rule__ProcessDeclaration__Group__3__Impl rule__ProcessDeclaration__Group__4 + { + pushFollow(FollowSets000.FOLLOW_39); + rule__ProcessDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__3" + + + // $ANTLR start "rule__ProcessDeclaration__Group__3__Impl" + // InternalFiacre.g:8464:1: rule__ProcessDeclaration__Group__3__Impl : ( ( rule__ProcessDeclaration__Group_3__0 )? ) ; + public final void rule__ProcessDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8468:1: ( ( ( rule__ProcessDeclaration__Group_3__0 )? ) ) + // InternalFiacre.g:8469:1: ( ( rule__ProcessDeclaration__Group_3__0 )? ) + { + // InternalFiacre.g:8469:1: ( ( rule__ProcessDeclaration__Group_3__0 )? ) + // InternalFiacre.g:8470:2: ( rule__ProcessDeclaration__Group_3__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_3()); + } + // InternalFiacre.g:8471:2: ( rule__ProcessDeclaration__Group_3__0 )? + int alt84=2; + int LA84_0 = input.LA(1); + + if ( (LA84_0==22) ) { + alt84=1; + } + switch (alt84) { + case 1 : + // InternalFiacre.g:8471:3: rule__ProcessDeclaration__Group_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__4" + // InternalFiacre.g:8479:1: rule__ProcessDeclaration__Group__4 : rule__ProcessDeclaration__Group__4__Impl rule__ProcessDeclaration__Group__5 ; + public final void rule__ProcessDeclaration__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8483:1: ( rule__ProcessDeclaration__Group__4__Impl rule__ProcessDeclaration__Group__5 ) + // InternalFiacre.g:8484:2: rule__ProcessDeclaration__Group__4__Impl rule__ProcessDeclaration__Group__5 + { + pushFollow(FollowSets000.FOLLOW_40); + rule__ProcessDeclaration__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__4" + + + // $ANTLR start "rule__ProcessDeclaration__Group__4__Impl" + // InternalFiacre.g:8491:1: rule__ProcessDeclaration__Group__4__Impl : ( 'is' ) ; + public final void rule__ProcessDeclaration__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8495:1: ( ( 'is' ) ) + // InternalFiacre.g:8496:1: ( 'is' ) + { + // InternalFiacre.g:8496:1: ( 'is' ) + // InternalFiacre.g:8497:2: 'is' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getIsKeyword_4()); + } + match(input,21,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getIsKeyword_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__4__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__5" + // InternalFiacre.g:8506:1: rule__ProcessDeclaration__Group__5 : rule__ProcessDeclaration__Group__5__Impl rule__ProcessDeclaration__Group__6 ; + public final void rule__ProcessDeclaration__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8510:1: ( rule__ProcessDeclaration__Group__5__Impl rule__ProcessDeclaration__Group__6 ) + // InternalFiacre.g:8511:2: rule__ProcessDeclaration__Group__5__Impl rule__ProcessDeclaration__Group__6 + { + pushFollow(FollowSets000.FOLLOW_40); + rule__ProcessDeclaration__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__5" + + + // $ANTLR start "rule__ProcessDeclaration__Group__5__Impl" + // InternalFiacre.g:8518:1: rule__ProcessDeclaration__Group__5__Impl : ( ( rule__ProcessDeclaration__Group_5__0 )? ) ; + public final void rule__ProcessDeclaration__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8522:1: ( ( ( rule__ProcessDeclaration__Group_5__0 )? ) ) + // InternalFiacre.g:8523:1: ( ( rule__ProcessDeclaration__Group_5__0 )? ) + { + // InternalFiacre.g:8523:1: ( ( rule__ProcessDeclaration__Group_5__0 )? ) + // InternalFiacre.g:8524:2: ( rule__ProcessDeclaration__Group_5__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_5()); + } + // InternalFiacre.g:8525:2: ( rule__ProcessDeclaration__Group_5__0 )? + int alt85=2; + int LA85_0 = input.LA(1); + + if ( (LA85_0==44) ) { + alt85=1; + } + switch (alt85) { + case 1 : + // InternalFiacre.g:8525:3: rule__ProcessDeclaration__Group_5__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_5__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__5__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__6" + // InternalFiacre.g:8533:1: rule__ProcessDeclaration__Group__6 : rule__ProcessDeclaration__Group__6__Impl rule__ProcessDeclaration__Group__7 ; + public final void rule__ProcessDeclaration__Group__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8537:1: ( rule__ProcessDeclaration__Group__6__Impl rule__ProcessDeclaration__Group__7 ) + // InternalFiacre.g:8538:2: rule__ProcessDeclaration__Group__6__Impl rule__ProcessDeclaration__Group__7 + { + pushFollow(FollowSets000.FOLLOW_40); + rule__ProcessDeclaration__Group__6__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__7(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__6" + + + // $ANTLR start "rule__ProcessDeclaration__Group__6__Impl" + // InternalFiacre.g:8545:1: rule__ProcessDeclaration__Group__6__Impl : ( ( rule__ProcessDeclaration__Group_6__0 )? ) ; + public final void rule__ProcessDeclaration__Group__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8549:1: ( ( ( rule__ProcessDeclaration__Group_6__0 )? ) ) + // InternalFiacre.g:8550:1: ( ( rule__ProcessDeclaration__Group_6__0 )? ) + { + // InternalFiacre.g:8550:1: ( ( rule__ProcessDeclaration__Group_6__0 )? ) + // InternalFiacre.g:8551:2: ( rule__ProcessDeclaration__Group_6__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_6()); + } + // InternalFiacre.g:8552:2: ( rule__ProcessDeclaration__Group_6__0 )? + int alt86=2; + int LA86_0 = input.LA(1); + + if ( (LA86_0==45) ) { + alt86=1; + } + switch (alt86) { + case 1 : + // InternalFiacre.g:8552:3: rule__ProcessDeclaration__Group_6__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__6__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__7" + // InternalFiacre.g:8560:1: rule__ProcessDeclaration__Group__7 : rule__ProcessDeclaration__Group__7__Impl rule__ProcessDeclaration__Group__8 ; + public final void rule__ProcessDeclaration__Group__7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8564:1: ( rule__ProcessDeclaration__Group__7__Impl rule__ProcessDeclaration__Group__8 ) + // InternalFiacre.g:8565:2: rule__ProcessDeclaration__Group__7__Impl rule__ProcessDeclaration__Group__8 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group__7__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__8(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__7" + + + // $ANTLR start "rule__ProcessDeclaration__Group__7__Impl" + // InternalFiacre.g:8572:1: rule__ProcessDeclaration__Group__7__Impl : ( 'states' ) ; + public final void rule__ProcessDeclaration__Group__7__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8576:1: ( ( 'states' ) ) + // InternalFiacre.g:8577:1: ( 'states' ) + { + // InternalFiacre.g:8577:1: ( 'states' ) + // InternalFiacre.g:8578:2: 'states' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getStatesKeyword_7()); + } + match(input,41,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getStatesKeyword_7()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__7__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__8" + // InternalFiacre.g:8587:1: rule__ProcessDeclaration__Group__8 : rule__ProcessDeclaration__Group__8__Impl rule__ProcessDeclaration__Group__9 ; + public final void rule__ProcessDeclaration__Group__8() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8591:1: ( rule__ProcessDeclaration__Group__8__Impl rule__ProcessDeclaration__Group__9 ) + // InternalFiacre.g:8592:2: rule__ProcessDeclaration__Group__8__Impl rule__ProcessDeclaration__Group__9 + { + pushFollow(FollowSets000.FOLLOW_41); + rule__ProcessDeclaration__Group__8__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__9(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__8" + + + // $ANTLR start "rule__ProcessDeclaration__Group__8__Impl" + // InternalFiacre.g:8599:1: rule__ProcessDeclaration__Group__8__Impl : ( ( rule__ProcessDeclaration__StatesAssignment_8 ) ) ; + public final void rule__ProcessDeclaration__Group__8__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8603:1: ( ( ( rule__ProcessDeclaration__StatesAssignment_8 ) ) ) + // InternalFiacre.g:8604:1: ( ( rule__ProcessDeclaration__StatesAssignment_8 ) ) + { + // InternalFiacre.g:8604:1: ( ( rule__ProcessDeclaration__StatesAssignment_8 ) ) + // InternalFiacre.g:8605:2: ( rule__ProcessDeclaration__StatesAssignment_8 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getStatesAssignment_8()); + } + // InternalFiacre.g:8606:2: ( rule__ProcessDeclaration__StatesAssignment_8 ) + // InternalFiacre.g:8606:3: rule__ProcessDeclaration__StatesAssignment_8 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__StatesAssignment_8(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getStatesAssignment_8()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__8__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__9" + // InternalFiacre.g:8614:1: rule__ProcessDeclaration__Group__9 : rule__ProcessDeclaration__Group__9__Impl rule__ProcessDeclaration__Group__10 ; + public final void rule__ProcessDeclaration__Group__9() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8618:1: ( rule__ProcessDeclaration__Group__9__Impl rule__ProcessDeclaration__Group__10 ) + // InternalFiacre.g:8619:2: rule__ProcessDeclaration__Group__9__Impl rule__ProcessDeclaration__Group__10 + { + pushFollow(FollowSets000.FOLLOW_41); + rule__ProcessDeclaration__Group__9__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__10(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__9" + + + // $ANTLR start "rule__ProcessDeclaration__Group__9__Impl" + // InternalFiacre.g:8626:1: rule__ProcessDeclaration__Group__9__Impl : ( ( rule__ProcessDeclaration__Group_9__0 )* ) ; + public final void rule__ProcessDeclaration__Group__9__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8630:1: ( ( ( rule__ProcessDeclaration__Group_9__0 )* ) ) + // InternalFiacre.g:8631:1: ( ( rule__ProcessDeclaration__Group_9__0 )* ) + { + // InternalFiacre.g:8631:1: ( ( rule__ProcessDeclaration__Group_9__0 )* ) + // InternalFiacre.g:8632:2: ( rule__ProcessDeclaration__Group_9__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_9()); + } + // InternalFiacre.g:8633:2: ( rule__ProcessDeclaration__Group_9__0 )* + loop87: + do { + int alt87=2; + int LA87_0 = input.LA(1); + + if ( (LA87_0==24) ) { + alt87=1; + } + + + switch (alt87) { + case 1 : + // InternalFiacre.g:8633:3: rule__ProcessDeclaration__Group_9__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ProcessDeclaration__Group_9__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop87; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_9()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__9__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__10" + // InternalFiacre.g:8641:1: rule__ProcessDeclaration__Group__10 : rule__ProcessDeclaration__Group__10__Impl rule__ProcessDeclaration__Group__11 ; + public final void rule__ProcessDeclaration__Group__10() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8645:1: ( rule__ProcessDeclaration__Group__10__Impl rule__ProcessDeclaration__Group__11 ) + // InternalFiacre.g:8646:2: rule__ProcessDeclaration__Group__10__Impl rule__ProcessDeclaration__Group__11 + { + pushFollow(FollowSets000.FOLLOW_41); + rule__ProcessDeclaration__Group__10__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__11(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__10" + + + // $ANTLR start "rule__ProcessDeclaration__Group__10__Impl" + // InternalFiacre.g:8653:1: rule__ProcessDeclaration__Group__10__Impl : ( ( rule__ProcessDeclaration__Group_10__0 )? ) ; + public final void rule__ProcessDeclaration__Group__10__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8657:1: ( ( ( rule__ProcessDeclaration__Group_10__0 )? ) ) + // InternalFiacre.g:8658:1: ( ( rule__ProcessDeclaration__Group_10__0 )? ) + { + // InternalFiacre.g:8658:1: ( ( rule__ProcessDeclaration__Group_10__0 )? ) + // InternalFiacre.g:8659:2: ( rule__ProcessDeclaration__Group_10__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_10()); + } + // InternalFiacre.g:8660:2: ( rule__ProcessDeclaration__Group_10__0 )? + int alt88=2; + int LA88_0 = input.LA(1); + + if ( (LA88_0==25) ) { + alt88=1; + } + switch (alt88) { + case 1 : + // InternalFiacre.g:8660:3: rule__ProcessDeclaration__Group_10__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_10__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_10()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__10__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__11" + // InternalFiacre.g:8668:1: rule__ProcessDeclaration__Group__11 : rule__ProcessDeclaration__Group__11__Impl rule__ProcessDeclaration__Group__12 ; + public final void rule__ProcessDeclaration__Group__11() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8672:1: ( rule__ProcessDeclaration__Group__11__Impl rule__ProcessDeclaration__Group__12 ) + // InternalFiacre.g:8673:2: rule__ProcessDeclaration__Group__11__Impl rule__ProcessDeclaration__Group__12 + { + pushFollow(FollowSets000.FOLLOW_41); + rule__ProcessDeclaration__Group__11__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__12(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__11" + + + // $ANTLR start "rule__ProcessDeclaration__Group__11__Impl" + // InternalFiacre.g:8680:1: rule__ProcessDeclaration__Group__11__Impl : ( ( rule__ProcessDeclaration__Group_11__0 )? ) ; + public final void rule__ProcessDeclaration__Group__11__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8684:1: ( ( ( rule__ProcessDeclaration__Group_11__0 )? ) ) + // InternalFiacre.g:8685:1: ( ( rule__ProcessDeclaration__Group_11__0 )? ) + { + // InternalFiacre.g:8685:1: ( ( rule__ProcessDeclaration__Group_11__0 )? ) + // InternalFiacre.g:8686:2: ( rule__ProcessDeclaration__Group_11__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_11()); + } + // InternalFiacre.g:8687:2: ( rule__ProcessDeclaration__Group_11__0 )? + int alt89=2; + int LA89_0 = input.LA(1); + + if ( (LA89_0==46) ) { + alt89=1; + } + switch (alt89) { + case 1 : + // InternalFiacre.g:8687:3: rule__ProcessDeclaration__Group_11__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_11__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_11()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__11__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group__12" + // InternalFiacre.g:8695:1: rule__ProcessDeclaration__Group__12 : rule__ProcessDeclaration__Group__12__Impl ; + public final void rule__ProcessDeclaration__Group__12() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8699:1: ( rule__ProcessDeclaration__Group__12__Impl ) + // InternalFiacre.g:8700:2: rule__ProcessDeclaration__Group__12__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group__12__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__12" + + + // $ANTLR start "rule__ProcessDeclaration__Group__12__Impl" + // InternalFiacre.g:8706:1: rule__ProcessDeclaration__Group__12__Impl : ( ( ( rule__ProcessDeclaration__TransitionsAssignment_12 ) ) ( ( rule__ProcessDeclaration__TransitionsAssignment_12 )* ) ) ; + public final void rule__ProcessDeclaration__Group__12__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8710:1: ( ( ( ( rule__ProcessDeclaration__TransitionsAssignment_12 ) ) ( ( rule__ProcessDeclaration__TransitionsAssignment_12 )* ) ) ) + // InternalFiacre.g:8711:1: ( ( ( rule__ProcessDeclaration__TransitionsAssignment_12 ) ) ( ( rule__ProcessDeclaration__TransitionsAssignment_12 )* ) ) + { + // InternalFiacre.g:8711:1: ( ( ( rule__ProcessDeclaration__TransitionsAssignment_12 ) ) ( ( rule__ProcessDeclaration__TransitionsAssignment_12 )* ) ) + // InternalFiacre.g:8712:2: ( ( rule__ProcessDeclaration__TransitionsAssignment_12 ) ) ( ( rule__ProcessDeclaration__TransitionsAssignment_12 )* ) + { + // InternalFiacre.g:8712:2: ( ( rule__ProcessDeclaration__TransitionsAssignment_12 ) ) + // InternalFiacre.g:8713:3: ( rule__ProcessDeclaration__TransitionsAssignment_12 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getTransitionsAssignment_12()); + } + // InternalFiacre.g:8714:3: ( rule__ProcessDeclaration__TransitionsAssignment_12 ) + // InternalFiacre.g:8714:4: rule__ProcessDeclaration__TransitionsAssignment_12 + { + pushFollow(FollowSets000.FOLLOW_42); + rule__ProcessDeclaration__TransitionsAssignment_12(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getTransitionsAssignment_12()); + } + + } + + // InternalFiacre.g:8717:2: ( ( rule__ProcessDeclaration__TransitionsAssignment_12 )* ) + // InternalFiacre.g:8718:3: ( rule__ProcessDeclaration__TransitionsAssignment_12 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getTransitionsAssignment_12()); + } + // InternalFiacre.g:8719:3: ( rule__ProcessDeclaration__TransitionsAssignment_12 )* + loop90: + do { + int alt90=2; + int LA90_0 = input.LA(1); + + if ( (LA90_0==47) ) { + alt90=1; + } + + + switch (alt90) { + case 1 : + // InternalFiacre.g:8719:4: rule__ProcessDeclaration__TransitionsAssignment_12 + { + pushFollow(FollowSets000.FOLLOW_42); + rule__ProcessDeclaration__TransitionsAssignment_12(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop90; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getTransitionsAssignment_12()); + } + + } + + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group__12__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2__0" + // InternalFiacre.g:8729:1: rule__ProcessDeclaration__Group_2__0 : rule__ProcessDeclaration__Group_2__0__Impl rule__ProcessDeclaration__Group_2__1 ; + public final void rule__ProcessDeclaration__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8733:1: ( rule__ProcessDeclaration__Group_2__0__Impl rule__ProcessDeclaration__Group_2__1 ) + // InternalFiacre.g:8734:2: rule__ProcessDeclaration__Group_2__0__Impl rule__ProcessDeclaration__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2__0__Impl" + // InternalFiacre.g:8741:1: rule__ProcessDeclaration__Group_2__0__Impl : ( '[' ) ; + public final void rule__ProcessDeclaration__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8745:1: ( ( '[' ) ) + // InternalFiacre.g:8746:1: ( '[' ) + { + // InternalFiacre.g:8746:1: ( '[' ) + // InternalFiacre.g:8747:2: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getLeftSquareBracketKeyword_2_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getLeftSquareBracketKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2__1" + // InternalFiacre.g:8756:1: rule__ProcessDeclaration__Group_2__1 : rule__ProcessDeclaration__Group_2__1__Impl rule__ProcessDeclaration__Group_2__2 ; + public final void rule__ProcessDeclaration__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8760:1: ( rule__ProcessDeclaration__Group_2__1__Impl rule__ProcessDeclaration__Group_2__2 ) + // InternalFiacre.g:8761:2: rule__ProcessDeclaration__Group_2__1__Impl rule__ProcessDeclaration__Group_2__2 + { + pushFollow(FollowSets000.FOLLOW_43); + rule__ProcessDeclaration__Group_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2__1__Impl" + // InternalFiacre.g:8768:1: rule__ProcessDeclaration__Group_2__1__Impl : ( ( rule__ProcessDeclaration__PortsAssignment_2_1 ) ) ; + public final void rule__ProcessDeclaration__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8772:1: ( ( ( rule__ProcessDeclaration__PortsAssignment_2_1 ) ) ) + // InternalFiacre.g:8773:1: ( ( rule__ProcessDeclaration__PortsAssignment_2_1 ) ) + { + // InternalFiacre.g:8773:1: ( ( rule__ProcessDeclaration__PortsAssignment_2_1 ) ) + // InternalFiacre.g:8774:2: ( rule__ProcessDeclaration__PortsAssignment_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPortsAssignment_2_1()); + } + // InternalFiacre.g:8775:2: ( rule__ProcessDeclaration__PortsAssignment_2_1 ) + // InternalFiacre.g:8775:3: rule__ProcessDeclaration__PortsAssignment_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__PortsAssignment_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPortsAssignment_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2__2" + // InternalFiacre.g:8783:1: rule__ProcessDeclaration__Group_2__2 : rule__ProcessDeclaration__Group_2__2__Impl rule__ProcessDeclaration__Group_2__3 ; + public final void rule__ProcessDeclaration__Group_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8787:1: ( rule__ProcessDeclaration__Group_2__2__Impl rule__ProcessDeclaration__Group_2__3 ) + // InternalFiacre.g:8788:2: rule__ProcessDeclaration__Group_2__2__Impl rule__ProcessDeclaration__Group_2__3 + { + pushFollow(FollowSets000.FOLLOW_43); + rule__ProcessDeclaration__Group_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_2__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2__2" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2__2__Impl" + // InternalFiacre.g:8795:1: rule__ProcessDeclaration__Group_2__2__Impl : ( ( rule__ProcessDeclaration__Group_2_2__0 )* ) ; + public final void rule__ProcessDeclaration__Group_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8799:1: ( ( ( rule__ProcessDeclaration__Group_2_2__0 )* ) ) + // InternalFiacre.g:8800:1: ( ( rule__ProcessDeclaration__Group_2_2__0 )* ) + { + // InternalFiacre.g:8800:1: ( ( rule__ProcessDeclaration__Group_2_2__0 )* ) + // InternalFiacre.g:8801:2: ( rule__ProcessDeclaration__Group_2_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_2_2()); + } + // InternalFiacre.g:8802:2: ( rule__ProcessDeclaration__Group_2_2__0 )* + loop91: + do { + int alt91=2; + int LA91_0 = input.LA(1); + + if ( (LA91_0==24) ) { + alt91=1; + } + + + switch (alt91) { + case 1 : + // InternalFiacre.g:8802:3: rule__ProcessDeclaration__Group_2_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ProcessDeclaration__Group_2_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop91; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2__2__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2__3" + // InternalFiacre.g:8810:1: rule__ProcessDeclaration__Group_2__3 : rule__ProcessDeclaration__Group_2__3__Impl ; + public final void rule__ProcessDeclaration__Group_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8814:1: ( rule__ProcessDeclaration__Group_2__3__Impl ) + // InternalFiacre.g:8815:2: rule__ProcessDeclaration__Group_2__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_2__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2__3" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2__3__Impl" + // InternalFiacre.g:8821:1: rule__ProcessDeclaration__Group_2__3__Impl : ( ']' ) ; + public final void rule__ProcessDeclaration__Group_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8825:1: ( ( ']' ) ) + // InternalFiacre.g:8826:1: ( ']' ) + { + // InternalFiacre.g:8826:1: ( ']' ) + // InternalFiacre.g:8827:2: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getRightSquareBracketKeyword_2_3()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getRightSquareBracketKeyword_2_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2__3__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2_2__0" + // InternalFiacre.g:8837:1: rule__ProcessDeclaration__Group_2_2__0 : rule__ProcessDeclaration__Group_2_2__0__Impl rule__ProcessDeclaration__Group_2_2__1 ; + public final void rule__ProcessDeclaration__Group_2_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8841:1: ( rule__ProcessDeclaration__Group_2_2__0__Impl rule__ProcessDeclaration__Group_2_2__1 ) + // InternalFiacre.g:8842:2: rule__ProcessDeclaration__Group_2_2__0__Impl rule__ProcessDeclaration__Group_2_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group_2_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_2_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2_2__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2_2__0__Impl" + // InternalFiacre.g:8849:1: rule__ProcessDeclaration__Group_2_2__0__Impl : ( ',' ) ; + public final void rule__ProcessDeclaration__Group_2_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8853:1: ( ( ',' ) ) + // InternalFiacre.g:8854:1: ( ',' ) + { + // InternalFiacre.g:8854:1: ( ',' ) + // InternalFiacre.g:8855:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_2_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_2_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2_2__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2_2__1" + // InternalFiacre.g:8864:1: rule__ProcessDeclaration__Group_2_2__1 : rule__ProcessDeclaration__Group_2_2__1__Impl ; + public final void rule__ProcessDeclaration__Group_2_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8868:1: ( rule__ProcessDeclaration__Group_2_2__1__Impl ) + // InternalFiacre.g:8869:2: rule__ProcessDeclaration__Group_2_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_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__ProcessDeclaration__Group_2_2__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_2_2__1__Impl" + // InternalFiacre.g:8875:1: rule__ProcessDeclaration__Group_2_2__1__Impl : ( ( rule__ProcessDeclaration__PortsAssignment_2_2_1 ) ) ; + public final void rule__ProcessDeclaration__Group_2_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8879:1: ( ( ( rule__ProcessDeclaration__PortsAssignment_2_2_1 ) ) ) + // InternalFiacre.g:8880:1: ( ( rule__ProcessDeclaration__PortsAssignment_2_2_1 ) ) + { + // InternalFiacre.g:8880:1: ( ( rule__ProcessDeclaration__PortsAssignment_2_2_1 ) ) + // InternalFiacre.g:8881:2: ( rule__ProcessDeclaration__PortsAssignment_2_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPortsAssignment_2_2_1()); + } + // InternalFiacre.g:8882:2: ( rule__ProcessDeclaration__PortsAssignment_2_2_1 ) + // InternalFiacre.g:8882:3: rule__ProcessDeclaration__PortsAssignment_2_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__PortsAssignment_2_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPortsAssignment_2_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_2_2__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3__0" + // InternalFiacre.g:8891:1: rule__ProcessDeclaration__Group_3__0 : rule__ProcessDeclaration__Group_3__0__Impl rule__ProcessDeclaration__Group_3__1 ; + public final void rule__ProcessDeclaration__Group_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8895:1: ( rule__ProcessDeclaration__Group_3__0__Impl rule__ProcessDeclaration__Group_3__1 ) + // InternalFiacre.g:8896:2: rule__ProcessDeclaration__Group_3__0__Impl rule__ProcessDeclaration__Group_3__1 + { + pushFollow(FollowSets000.FOLLOW_21); + rule__ProcessDeclaration__Group_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_3__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3__0__Impl" + // InternalFiacre.g:8903:1: rule__ProcessDeclaration__Group_3__0__Impl : ( '(' ) ; + public final void rule__ProcessDeclaration__Group_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8907:1: ( ( '(' ) ) + // InternalFiacre.g:8908:1: ( '(' ) + { + // InternalFiacre.g:8908:1: ( '(' ) + // InternalFiacre.g:8909:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getLeftParenthesisKeyword_3_0()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getLeftParenthesisKeyword_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_3__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3__1" + // InternalFiacre.g:8918:1: rule__ProcessDeclaration__Group_3__1 : rule__ProcessDeclaration__Group_3__1__Impl rule__ProcessDeclaration__Group_3__2 ; + public final void rule__ProcessDeclaration__Group_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8922:1: ( rule__ProcessDeclaration__Group_3__1__Impl rule__ProcessDeclaration__Group_3__2 ) + // InternalFiacre.g:8923:2: rule__ProcessDeclaration__Group_3__1__Impl rule__ProcessDeclaration__Group_3__2 + { + pushFollow(FollowSets000.FOLLOW_44); + rule__ProcessDeclaration__Group_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_3__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_3__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3__1__Impl" + // InternalFiacre.g:8930:1: rule__ProcessDeclaration__Group_3__1__Impl : ( ( rule__ProcessDeclaration__ParametersAssignment_3_1 ) ) ; + public final void rule__ProcessDeclaration__Group_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8934:1: ( ( ( rule__ProcessDeclaration__ParametersAssignment_3_1 ) ) ) + // InternalFiacre.g:8935:1: ( ( rule__ProcessDeclaration__ParametersAssignment_3_1 ) ) + { + // InternalFiacre.g:8935:1: ( ( rule__ProcessDeclaration__ParametersAssignment_3_1 ) ) + // InternalFiacre.g:8936:2: ( rule__ProcessDeclaration__ParametersAssignment_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getParametersAssignment_3_1()); + } + // InternalFiacre.g:8937:2: ( rule__ProcessDeclaration__ParametersAssignment_3_1 ) + // InternalFiacre.g:8937:3: rule__ProcessDeclaration__ParametersAssignment_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__ParametersAssignment_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getParametersAssignment_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_3__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3__2" + // InternalFiacre.g:8945:1: rule__ProcessDeclaration__Group_3__2 : rule__ProcessDeclaration__Group_3__2__Impl rule__ProcessDeclaration__Group_3__3 ; + public final void rule__ProcessDeclaration__Group_3__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8949:1: ( rule__ProcessDeclaration__Group_3__2__Impl rule__ProcessDeclaration__Group_3__3 ) + // InternalFiacre.g:8950:2: rule__ProcessDeclaration__Group_3__2__Impl rule__ProcessDeclaration__Group_3__3 + { + pushFollow(FollowSets000.FOLLOW_44); + rule__ProcessDeclaration__Group_3__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_3__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_3__2" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3__2__Impl" + // InternalFiacre.g:8957:1: rule__ProcessDeclaration__Group_3__2__Impl : ( ( rule__ProcessDeclaration__Group_3_2__0 )* ) ; + public final void rule__ProcessDeclaration__Group_3__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8961:1: ( ( ( rule__ProcessDeclaration__Group_3_2__0 )* ) ) + // InternalFiacre.g:8962:1: ( ( rule__ProcessDeclaration__Group_3_2__0 )* ) + { + // InternalFiacre.g:8962:1: ( ( rule__ProcessDeclaration__Group_3_2__0 )* ) + // InternalFiacre.g:8963:2: ( rule__ProcessDeclaration__Group_3_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_3_2()); + } + // InternalFiacre.g:8964:2: ( rule__ProcessDeclaration__Group_3_2__0 )* + loop92: + do { + int alt92=2; + int LA92_0 = input.LA(1); + + if ( (LA92_0==24) ) { + alt92=1; + } + + + switch (alt92) { + case 1 : + // InternalFiacre.g:8964:3: rule__ProcessDeclaration__Group_3_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ProcessDeclaration__Group_3_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop92; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_3_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_3__2__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3__3" + // InternalFiacre.g:8972:1: rule__ProcessDeclaration__Group_3__3 : rule__ProcessDeclaration__Group_3__3__Impl ; + public final void rule__ProcessDeclaration__Group_3__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8976:1: ( rule__ProcessDeclaration__Group_3__3__Impl ) + // InternalFiacre.g:8977:2: rule__ProcessDeclaration__Group_3__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_3__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_3__3" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3__3__Impl" + // InternalFiacre.g:8983:1: rule__ProcessDeclaration__Group_3__3__Impl : ( ')' ) ; + public final void rule__ProcessDeclaration__Group_3__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:8987:1: ( ( ')' ) ) + // InternalFiacre.g:8988:1: ( ')' ) + { + // InternalFiacre.g:8988:1: ( ')' ) + // InternalFiacre.g:8989:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getRightParenthesisKeyword_3_3()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getRightParenthesisKeyword_3_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_3__3__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3_2__0" + // InternalFiacre.g:8999:1: rule__ProcessDeclaration__Group_3_2__0 : rule__ProcessDeclaration__Group_3_2__0__Impl rule__ProcessDeclaration__Group_3_2__1 ; + public final void rule__ProcessDeclaration__Group_3_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9003:1: ( rule__ProcessDeclaration__Group_3_2__0__Impl rule__ProcessDeclaration__Group_3_2__1 ) + // InternalFiacre.g:9004:2: rule__ProcessDeclaration__Group_3_2__0__Impl rule__ProcessDeclaration__Group_3_2__1 + { + pushFollow(FollowSets000.FOLLOW_21); + rule__ProcessDeclaration__Group_3_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__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__ProcessDeclaration__Group_3_2__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3_2__0__Impl" + // InternalFiacre.g:9011:1: rule__ProcessDeclaration__Group_3_2__0__Impl : ( ',' ) ; + public final void rule__ProcessDeclaration__Group_3_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9015:1: ( ( ',' ) ) + // InternalFiacre.g:9016:1: ( ',' ) + { + // InternalFiacre.g:9016:1: ( ',' ) + // InternalFiacre.g:9017:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_3_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_3_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_3_2__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3_2__1" + // InternalFiacre.g:9026:1: rule__ProcessDeclaration__Group_3_2__1 : rule__ProcessDeclaration__Group_3_2__1__Impl ; + public final void rule__ProcessDeclaration__Group_3_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9030:1: ( rule__ProcessDeclaration__Group_3_2__1__Impl ) + // InternalFiacre.g:9031:2: rule__ProcessDeclaration__Group_3_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__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__ProcessDeclaration__Group_3_2__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_3_2__1__Impl" + // InternalFiacre.g:9037:1: rule__ProcessDeclaration__Group_3_2__1__Impl : ( ( rule__ProcessDeclaration__ParametersAssignment_3_2_1 ) ) ; + public final void rule__ProcessDeclaration__Group_3_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9041:1: ( ( ( rule__ProcessDeclaration__ParametersAssignment_3_2_1 ) ) ) + // InternalFiacre.g:9042:1: ( ( rule__ProcessDeclaration__ParametersAssignment_3_2_1 ) ) + { + // InternalFiacre.g:9042:1: ( ( rule__ProcessDeclaration__ParametersAssignment_3_2_1 ) ) + // InternalFiacre.g:9043:2: ( rule__ProcessDeclaration__ParametersAssignment_3_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getParametersAssignment_3_2_1()); + } + // InternalFiacre.g:9044:2: ( rule__ProcessDeclaration__ParametersAssignment_3_2_1 ) + // InternalFiacre.g:9044:3: rule__ProcessDeclaration__ParametersAssignment_3_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__ParametersAssignment_3_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getParametersAssignment_3_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_3_2__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_5__0" + // InternalFiacre.g:9053:1: rule__ProcessDeclaration__Group_5__0 : rule__ProcessDeclaration__Group_5__0__Impl rule__ProcessDeclaration__Group_5__1 ; + public final void rule__ProcessDeclaration__Group_5__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9057:1: ( rule__ProcessDeclaration__Group_5__0__Impl rule__ProcessDeclaration__Group_5__1 ) + // InternalFiacre.g:9058:2: rule__ProcessDeclaration__Group_5__0__Impl rule__ProcessDeclaration__Group_5__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group_5__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_5__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_5__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_5__0__Impl" + // InternalFiacre.g:9065:1: rule__ProcessDeclaration__Group_5__0__Impl : ( 'port' ) ; + public final void rule__ProcessDeclaration__Group_5__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9069:1: ( ( 'port' ) ) + // InternalFiacre.g:9070:1: ( 'port' ) + { + // InternalFiacre.g:9070:1: ( 'port' ) + // InternalFiacre.g:9071:2: 'port' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPortKeyword_5_0()); + } + match(input,44,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPortKeyword_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_5__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_5__1" + // InternalFiacre.g:9080:1: rule__ProcessDeclaration__Group_5__1 : rule__ProcessDeclaration__Group_5__1__Impl rule__ProcessDeclaration__Group_5__2 ; + public final void rule__ProcessDeclaration__Group_5__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9084:1: ( rule__ProcessDeclaration__Group_5__1__Impl rule__ProcessDeclaration__Group_5__2 ) + // InternalFiacre.g:9085:2: rule__ProcessDeclaration__Group_5__1__Impl rule__ProcessDeclaration__Group_5__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__ProcessDeclaration__Group_5__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_5__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_5__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_5__1__Impl" + // InternalFiacre.g:9092:1: rule__ProcessDeclaration__Group_5__1__Impl : ( ( rule__ProcessDeclaration__LocalPortsAssignment_5_1 ) ) ; + public final void rule__ProcessDeclaration__Group_5__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9096:1: ( ( ( rule__ProcessDeclaration__LocalPortsAssignment_5_1 ) ) ) + // InternalFiacre.g:9097:1: ( ( rule__ProcessDeclaration__LocalPortsAssignment_5_1 ) ) + { + // InternalFiacre.g:9097:1: ( ( rule__ProcessDeclaration__LocalPortsAssignment_5_1 ) ) + // InternalFiacre.g:9098:2: ( rule__ProcessDeclaration__LocalPortsAssignment_5_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getLocalPortsAssignment_5_1()); + } + // InternalFiacre.g:9099:2: ( rule__ProcessDeclaration__LocalPortsAssignment_5_1 ) + // InternalFiacre.g:9099:3: rule__ProcessDeclaration__LocalPortsAssignment_5_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__LocalPortsAssignment_5_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getLocalPortsAssignment_5_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_5__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_5__2" + // InternalFiacre.g:9107:1: rule__ProcessDeclaration__Group_5__2 : rule__ProcessDeclaration__Group_5__2__Impl ; + public final void rule__ProcessDeclaration__Group_5__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9111:1: ( rule__ProcessDeclaration__Group_5__2__Impl ) + // InternalFiacre.g:9112:2: rule__ProcessDeclaration__Group_5__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_5__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_5__2" + + + // $ANTLR start "rule__ProcessDeclaration__Group_5__2__Impl" + // InternalFiacre.g:9118:1: rule__ProcessDeclaration__Group_5__2__Impl : ( ( rule__ProcessDeclaration__Group_5_2__0 )* ) ; + public final void rule__ProcessDeclaration__Group_5__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9122:1: ( ( ( rule__ProcessDeclaration__Group_5_2__0 )* ) ) + // InternalFiacre.g:9123:1: ( ( rule__ProcessDeclaration__Group_5_2__0 )* ) + { + // InternalFiacre.g:9123:1: ( ( rule__ProcessDeclaration__Group_5_2__0 )* ) + // InternalFiacre.g:9124:2: ( rule__ProcessDeclaration__Group_5_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_5_2()); + } + // InternalFiacre.g:9125:2: ( rule__ProcessDeclaration__Group_5_2__0 )* + loop93: + do { + int alt93=2; + int LA93_0 = input.LA(1); + + if ( (LA93_0==24) ) { + alt93=1; + } + + + switch (alt93) { + case 1 : + // InternalFiacre.g:9125:3: rule__ProcessDeclaration__Group_5_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ProcessDeclaration__Group_5_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop93; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_5_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_5__2__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_5_2__0" + // InternalFiacre.g:9134:1: rule__ProcessDeclaration__Group_5_2__0 : rule__ProcessDeclaration__Group_5_2__0__Impl rule__ProcessDeclaration__Group_5_2__1 ; + public final void rule__ProcessDeclaration__Group_5_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9138:1: ( rule__ProcessDeclaration__Group_5_2__0__Impl rule__ProcessDeclaration__Group_5_2__1 ) + // InternalFiacre.g:9139:2: rule__ProcessDeclaration__Group_5_2__0__Impl rule__ProcessDeclaration__Group_5_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group_5_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_5_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_5_2__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_5_2__0__Impl" + // InternalFiacre.g:9146:1: rule__ProcessDeclaration__Group_5_2__0__Impl : ( ',' ) ; + public final void rule__ProcessDeclaration__Group_5_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9150:1: ( ( ',' ) ) + // InternalFiacre.g:9151:1: ( ',' ) + { + // InternalFiacre.g:9151:1: ( ',' ) + // InternalFiacre.g:9152:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_5_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_5_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_5_2__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_5_2__1" + // InternalFiacre.g:9161:1: rule__ProcessDeclaration__Group_5_2__1 : rule__ProcessDeclaration__Group_5_2__1__Impl ; + public final void rule__ProcessDeclaration__Group_5_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9165:1: ( rule__ProcessDeclaration__Group_5_2__1__Impl ) + // InternalFiacre.g:9166:2: rule__ProcessDeclaration__Group_5_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_5_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_5_2__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_5_2__1__Impl" + // InternalFiacre.g:9172:1: rule__ProcessDeclaration__Group_5_2__1__Impl : ( ( rule__ProcessDeclaration__LocalPortsAssignment_5_2_1 ) ) ; + public final void rule__ProcessDeclaration__Group_5_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9176:1: ( ( ( rule__ProcessDeclaration__LocalPortsAssignment_5_2_1 ) ) ) + // InternalFiacre.g:9177:1: ( ( rule__ProcessDeclaration__LocalPortsAssignment_5_2_1 ) ) + { + // InternalFiacre.g:9177:1: ( ( rule__ProcessDeclaration__LocalPortsAssignment_5_2_1 ) ) + // InternalFiacre.g:9178:2: ( rule__ProcessDeclaration__LocalPortsAssignment_5_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getLocalPortsAssignment_5_2_1()); + } + // InternalFiacre.g:9179:2: ( rule__ProcessDeclaration__LocalPortsAssignment_5_2_1 ) + // InternalFiacre.g:9179:3: rule__ProcessDeclaration__LocalPortsAssignment_5_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__LocalPortsAssignment_5_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getLocalPortsAssignment_5_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_5_2__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_6__0" + // InternalFiacre.g:9188:1: rule__ProcessDeclaration__Group_6__0 : rule__ProcessDeclaration__Group_6__0__Impl rule__ProcessDeclaration__Group_6__1 ; + public final void rule__ProcessDeclaration__Group_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9192:1: ( rule__ProcessDeclaration__Group_6__0__Impl rule__ProcessDeclaration__Group_6__1 ) + // InternalFiacre.g:9193:2: rule__ProcessDeclaration__Group_6__0__Impl rule__ProcessDeclaration__Group_6__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_6__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_6__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_6__0__Impl" + // InternalFiacre.g:9200:1: rule__ProcessDeclaration__Group_6__0__Impl : ( 'priority' ) ; + public final void rule__ProcessDeclaration__Group_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9204:1: ( ( 'priority' ) ) + // InternalFiacre.g:9205:1: ( 'priority' ) + { + // InternalFiacre.g:9205:1: ( 'priority' ) + // InternalFiacre.g:9206:2: 'priority' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPriorityKeyword_6_0()); + } + match(input,45,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPriorityKeyword_6_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_6__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_6__1" + // InternalFiacre.g:9215:1: rule__ProcessDeclaration__Group_6__1 : rule__ProcessDeclaration__Group_6__1__Impl rule__ProcessDeclaration__Group_6__2 ; + public final void rule__ProcessDeclaration__Group_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9219:1: ( rule__ProcessDeclaration__Group_6__1__Impl rule__ProcessDeclaration__Group_6__2 ) + // InternalFiacre.g:9220:2: rule__ProcessDeclaration__Group_6__1__Impl rule__ProcessDeclaration__Group_6__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__ProcessDeclaration__Group_6__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_6__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_6__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_6__1__Impl" + // InternalFiacre.g:9227:1: rule__ProcessDeclaration__Group_6__1__Impl : ( ( rule__ProcessDeclaration__PrioritiesAssignment_6_1 ) ) ; + public final void rule__ProcessDeclaration__Group_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9231:1: ( ( ( rule__ProcessDeclaration__PrioritiesAssignment_6_1 ) ) ) + // InternalFiacre.g:9232:1: ( ( rule__ProcessDeclaration__PrioritiesAssignment_6_1 ) ) + { + // InternalFiacre.g:9232:1: ( ( rule__ProcessDeclaration__PrioritiesAssignment_6_1 ) ) + // InternalFiacre.g:9233:2: ( rule__ProcessDeclaration__PrioritiesAssignment_6_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPrioritiesAssignment_6_1()); + } + // InternalFiacre.g:9234:2: ( rule__ProcessDeclaration__PrioritiesAssignment_6_1 ) + // InternalFiacre.g:9234:3: rule__ProcessDeclaration__PrioritiesAssignment_6_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__PrioritiesAssignment_6_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPrioritiesAssignment_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_6__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_6__2" + // InternalFiacre.g:9242:1: rule__ProcessDeclaration__Group_6__2 : rule__ProcessDeclaration__Group_6__2__Impl ; + public final void rule__ProcessDeclaration__Group_6__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9246:1: ( rule__ProcessDeclaration__Group_6__2__Impl ) + // InternalFiacre.g:9247:2: rule__ProcessDeclaration__Group_6__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_6__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_6__2" + + + // $ANTLR start "rule__ProcessDeclaration__Group_6__2__Impl" + // InternalFiacre.g:9253:1: rule__ProcessDeclaration__Group_6__2__Impl : ( ( rule__ProcessDeclaration__Group_6_2__0 )* ) ; + public final void rule__ProcessDeclaration__Group_6__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9257:1: ( ( ( rule__ProcessDeclaration__Group_6_2__0 )* ) ) + // InternalFiacre.g:9258:1: ( ( rule__ProcessDeclaration__Group_6_2__0 )* ) + { + // InternalFiacre.g:9258:1: ( ( rule__ProcessDeclaration__Group_6_2__0 )* ) + // InternalFiacre.g:9259:2: ( rule__ProcessDeclaration__Group_6_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_6_2()); + } + // InternalFiacre.g:9260:2: ( rule__ProcessDeclaration__Group_6_2__0 )* + loop94: + do { + int alt94=2; + int LA94_0 = input.LA(1); + + if ( (LA94_0==24) ) { + alt94=1; + } + + + switch (alt94) { + case 1 : + // InternalFiacre.g:9260:3: rule__ProcessDeclaration__Group_6_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ProcessDeclaration__Group_6_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop94; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_6_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_6__2__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_6_2__0" + // InternalFiacre.g:9269:1: rule__ProcessDeclaration__Group_6_2__0 : rule__ProcessDeclaration__Group_6_2__0__Impl rule__ProcessDeclaration__Group_6_2__1 ; + public final void rule__ProcessDeclaration__Group_6_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9273:1: ( rule__ProcessDeclaration__Group_6_2__0__Impl rule__ProcessDeclaration__Group_6_2__1 ) + // InternalFiacre.g:9274:2: rule__ProcessDeclaration__Group_6_2__0__Impl rule__ProcessDeclaration__Group_6_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group_6_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_6_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_6_2__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_6_2__0__Impl" + // InternalFiacre.g:9281:1: rule__ProcessDeclaration__Group_6_2__0__Impl : ( ',' ) ; + public final void rule__ProcessDeclaration__Group_6_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9285:1: ( ( ',' ) ) + // InternalFiacre.g:9286:1: ( ',' ) + { + // InternalFiacre.g:9286:1: ( ',' ) + // InternalFiacre.g:9287:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_6_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_6_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_6_2__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_6_2__1" + // InternalFiacre.g:9296:1: rule__ProcessDeclaration__Group_6_2__1 : rule__ProcessDeclaration__Group_6_2__1__Impl ; + public final void rule__ProcessDeclaration__Group_6_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9300:1: ( rule__ProcessDeclaration__Group_6_2__1__Impl ) + // InternalFiacre.g:9301:2: rule__ProcessDeclaration__Group_6_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_6_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_6_2__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_6_2__1__Impl" + // InternalFiacre.g:9307:1: rule__ProcessDeclaration__Group_6_2__1__Impl : ( ( rule__ProcessDeclaration__PrioritiesAssignment_6_2_1 ) ) ; + public final void rule__ProcessDeclaration__Group_6_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9311:1: ( ( ( rule__ProcessDeclaration__PrioritiesAssignment_6_2_1 ) ) ) + // InternalFiacre.g:9312:1: ( ( rule__ProcessDeclaration__PrioritiesAssignment_6_2_1 ) ) + { + // InternalFiacre.g:9312:1: ( ( rule__ProcessDeclaration__PrioritiesAssignment_6_2_1 ) ) + // InternalFiacre.g:9313:2: ( rule__ProcessDeclaration__PrioritiesAssignment_6_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPrioritiesAssignment_6_2_1()); + } + // InternalFiacre.g:9314:2: ( rule__ProcessDeclaration__PrioritiesAssignment_6_2_1 ) + // InternalFiacre.g:9314:3: rule__ProcessDeclaration__PrioritiesAssignment_6_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__PrioritiesAssignment_6_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPrioritiesAssignment_6_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_6_2__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_9__0" + // InternalFiacre.g:9323:1: rule__ProcessDeclaration__Group_9__0 : rule__ProcessDeclaration__Group_9__0__Impl rule__ProcessDeclaration__Group_9__1 ; + public final void rule__ProcessDeclaration__Group_9__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9327:1: ( rule__ProcessDeclaration__Group_9__0__Impl rule__ProcessDeclaration__Group_9__1 ) + // InternalFiacre.g:9328:2: rule__ProcessDeclaration__Group_9__0__Impl rule__ProcessDeclaration__Group_9__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group_9__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_9__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_9__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_9__0__Impl" + // InternalFiacre.g:9335:1: rule__ProcessDeclaration__Group_9__0__Impl : ( ',' ) ; + public final void rule__ProcessDeclaration__Group_9__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9339:1: ( ( ',' ) ) + // InternalFiacre.g:9340:1: ( ',' ) + { + // InternalFiacre.g:9340:1: ( ',' ) + // InternalFiacre.g:9341:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_9_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_9_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_9__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_9__1" + // InternalFiacre.g:9350:1: rule__ProcessDeclaration__Group_9__1 : rule__ProcessDeclaration__Group_9__1__Impl ; + public final void rule__ProcessDeclaration__Group_9__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9354:1: ( rule__ProcessDeclaration__Group_9__1__Impl ) + // InternalFiacre.g:9355:2: rule__ProcessDeclaration__Group_9__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_9__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_9__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_9__1__Impl" + // InternalFiacre.g:9361:1: rule__ProcessDeclaration__Group_9__1__Impl : ( ( rule__ProcessDeclaration__StatesAssignment_9_1 ) ) ; + public final void rule__ProcessDeclaration__Group_9__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9365:1: ( ( ( rule__ProcessDeclaration__StatesAssignment_9_1 ) ) ) + // InternalFiacre.g:9366:1: ( ( rule__ProcessDeclaration__StatesAssignment_9_1 ) ) + { + // InternalFiacre.g:9366:1: ( ( rule__ProcessDeclaration__StatesAssignment_9_1 ) ) + // InternalFiacre.g:9367:2: ( rule__ProcessDeclaration__StatesAssignment_9_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getStatesAssignment_9_1()); + } + // InternalFiacre.g:9368:2: ( rule__ProcessDeclaration__StatesAssignment_9_1 ) + // InternalFiacre.g:9368:3: rule__ProcessDeclaration__StatesAssignment_9_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__StatesAssignment_9_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getStatesAssignment_9_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_9__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_10__0" + // InternalFiacre.g:9377:1: rule__ProcessDeclaration__Group_10__0 : rule__ProcessDeclaration__Group_10__0__Impl rule__ProcessDeclaration__Group_10__1 ; + public final void rule__ProcessDeclaration__Group_10__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9381:1: ( rule__ProcessDeclaration__Group_10__0__Impl rule__ProcessDeclaration__Group_10__1 ) + // InternalFiacre.g:9382:2: rule__ProcessDeclaration__Group_10__0__Impl rule__ProcessDeclaration__Group_10__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group_10__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_10__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_10__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_10__0__Impl" + // InternalFiacre.g:9389:1: rule__ProcessDeclaration__Group_10__0__Impl : ( 'var' ) ; + public final void rule__ProcessDeclaration__Group_10__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9393:1: ( ( 'var' ) ) + // InternalFiacre.g:9394:1: ( 'var' ) + { + // InternalFiacre.g:9394:1: ( 'var' ) + // InternalFiacre.g:9395:2: 'var' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getVarKeyword_10_0()); + } + match(input,25,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getVarKeyword_10_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_10__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_10__1" + // InternalFiacre.g:9404:1: rule__ProcessDeclaration__Group_10__1 : rule__ProcessDeclaration__Group_10__1__Impl rule__ProcessDeclaration__Group_10__2 ; + public final void rule__ProcessDeclaration__Group_10__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9408:1: ( rule__ProcessDeclaration__Group_10__1__Impl rule__ProcessDeclaration__Group_10__2 ) + // InternalFiacre.g:9409:2: rule__ProcessDeclaration__Group_10__1__Impl rule__ProcessDeclaration__Group_10__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__ProcessDeclaration__Group_10__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_10__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_10__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_10__1__Impl" + // InternalFiacre.g:9416:1: rule__ProcessDeclaration__Group_10__1__Impl : ( ( rule__ProcessDeclaration__VariablesAssignment_10_1 ) ) ; + public final void rule__ProcessDeclaration__Group_10__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9420:1: ( ( ( rule__ProcessDeclaration__VariablesAssignment_10_1 ) ) ) + // InternalFiacre.g:9421:1: ( ( rule__ProcessDeclaration__VariablesAssignment_10_1 ) ) + { + // InternalFiacre.g:9421:1: ( ( rule__ProcessDeclaration__VariablesAssignment_10_1 ) ) + // InternalFiacre.g:9422:2: ( rule__ProcessDeclaration__VariablesAssignment_10_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getVariablesAssignment_10_1()); + } + // InternalFiacre.g:9423:2: ( rule__ProcessDeclaration__VariablesAssignment_10_1 ) + // InternalFiacre.g:9423:3: rule__ProcessDeclaration__VariablesAssignment_10_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__VariablesAssignment_10_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getVariablesAssignment_10_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_10__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_10__2" + // InternalFiacre.g:9431:1: rule__ProcessDeclaration__Group_10__2 : rule__ProcessDeclaration__Group_10__2__Impl ; + public final void rule__ProcessDeclaration__Group_10__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9435:1: ( rule__ProcessDeclaration__Group_10__2__Impl ) + // InternalFiacre.g:9436:2: rule__ProcessDeclaration__Group_10__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_10__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_10__2" + + + // $ANTLR start "rule__ProcessDeclaration__Group_10__2__Impl" + // InternalFiacre.g:9442:1: rule__ProcessDeclaration__Group_10__2__Impl : ( ( rule__ProcessDeclaration__Group_10_2__0 )* ) ; + public final void rule__ProcessDeclaration__Group_10__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9446:1: ( ( ( rule__ProcessDeclaration__Group_10_2__0 )* ) ) + // InternalFiacre.g:9447:1: ( ( rule__ProcessDeclaration__Group_10_2__0 )* ) + { + // InternalFiacre.g:9447:1: ( ( rule__ProcessDeclaration__Group_10_2__0 )* ) + // InternalFiacre.g:9448:2: ( rule__ProcessDeclaration__Group_10_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getGroup_10_2()); + } + // InternalFiacre.g:9449:2: ( rule__ProcessDeclaration__Group_10_2__0 )* + loop95: + do { + int alt95=2; + int LA95_0 = input.LA(1); + + if ( (LA95_0==24) ) { + alt95=1; + } + + + switch (alt95) { + case 1 : + // InternalFiacre.g:9449:3: rule__ProcessDeclaration__Group_10_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ProcessDeclaration__Group_10_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop95; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getGroup_10_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_10__2__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_10_2__0" + // InternalFiacre.g:9458:1: rule__ProcessDeclaration__Group_10_2__0 : rule__ProcessDeclaration__Group_10_2__0__Impl rule__ProcessDeclaration__Group_10_2__1 ; + public final void rule__ProcessDeclaration__Group_10_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9462:1: ( rule__ProcessDeclaration__Group_10_2__0__Impl rule__ProcessDeclaration__Group_10_2__1 ) + // InternalFiacre.g:9463:2: rule__ProcessDeclaration__Group_10_2__0__Impl rule__ProcessDeclaration__Group_10_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ProcessDeclaration__Group_10_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_10_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_10_2__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_10_2__0__Impl" + // InternalFiacre.g:9470:1: rule__ProcessDeclaration__Group_10_2__0__Impl : ( ',' ) ; + public final void rule__ProcessDeclaration__Group_10_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9474:1: ( ( ',' ) ) + // InternalFiacre.g:9475:1: ( ',' ) + { + // InternalFiacre.g:9475:1: ( ',' ) + // InternalFiacre.g:9476:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_10_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getCommaKeyword_10_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_10_2__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_10_2__1" + // InternalFiacre.g:9485:1: rule__ProcessDeclaration__Group_10_2__1 : rule__ProcessDeclaration__Group_10_2__1__Impl ; + public final void rule__ProcessDeclaration__Group_10_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9489:1: ( rule__ProcessDeclaration__Group_10_2__1__Impl ) + // InternalFiacre.g:9490:2: rule__ProcessDeclaration__Group_10_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_10_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_10_2__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_10_2__1__Impl" + // InternalFiacre.g:9496:1: rule__ProcessDeclaration__Group_10_2__1__Impl : ( ( rule__ProcessDeclaration__VariablesAssignment_10_2_1 ) ) ; + public final void rule__ProcessDeclaration__Group_10_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9500:1: ( ( ( rule__ProcessDeclaration__VariablesAssignment_10_2_1 ) ) ) + // InternalFiacre.g:9501:1: ( ( rule__ProcessDeclaration__VariablesAssignment_10_2_1 ) ) + { + // InternalFiacre.g:9501:1: ( ( rule__ProcessDeclaration__VariablesAssignment_10_2_1 ) ) + // InternalFiacre.g:9502:2: ( rule__ProcessDeclaration__VariablesAssignment_10_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getVariablesAssignment_10_2_1()); + } + // InternalFiacre.g:9503:2: ( rule__ProcessDeclaration__VariablesAssignment_10_2_1 ) + // InternalFiacre.g:9503:3: rule__ProcessDeclaration__VariablesAssignment_10_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__VariablesAssignment_10_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getVariablesAssignment_10_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_10_2__1__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_11__0" + // InternalFiacre.g:9512:1: rule__ProcessDeclaration__Group_11__0 : rule__ProcessDeclaration__Group_11__0__Impl rule__ProcessDeclaration__Group_11__1 ; + public final void rule__ProcessDeclaration__Group_11__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9516:1: ( rule__ProcessDeclaration__Group_11__0__Impl rule__ProcessDeclaration__Group_11__1 ) + // InternalFiacre.g:9517:2: rule__ProcessDeclaration__Group_11__0__Impl rule__ProcessDeclaration__Group_11__1 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__ProcessDeclaration__Group_11__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_11__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_11__0" + + + // $ANTLR start "rule__ProcessDeclaration__Group_11__0__Impl" + // InternalFiacre.g:9524:1: rule__ProcessDeclaration__Group_11__0__Impl : ( 'init' ) ; + public final void rule__ProcessDeclaration__Group_11__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9528:1: ( ( 'init' ) ) + // InternalFiacre.g:9529:1: ( 'init' ) + { + // InternalFiacre.g:9529:1: ( 'init' ) + // InternalFiacre.g:9530:2: 'init' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getInitKeyword_11_0()); + } + match(input,46,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getInitKeyword_11_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_11__0__Impl" + + + // $ANTLR start "rule__ProcessDeclaration__Group_11__1" + // InternalFiacre.g:9539:1: rule__ProcessDeclaration__Group_11__1 : rule__ProcessDeclaration__Group_11__1__Impl ; + public final void rule__ProcessDeclaration__Group_11__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9543:1: ( rule__ProcessDeclaration__Group_11__1__Impl ) + // InternalFiacre.g:9544:2: rule__ProcessDeclaration__Group_11__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__Group_11__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_11__1" + + + // $ANTLR start "rule__ProcessDeclaration__Group_11__1__Impl" + // InternalFiacre.g:9550:1: rule__ProcessDeclaration__Group_11__1__Impl : ( ( rule__ProcessDeclaration__PreludeAssignment_11_1 ) ) ; + public final void rule__ProcessDeclaration__Group_11__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9554:1: ( ( ( rule__ProcessDeclaration__PreludeAssignment_11_1 ) ) ) + // InternalFiacre.g:9555:1: ( ( rule__ProcessDeclaration__PreludeAssignment_11_1 ) ) + { + // InternalFiacre.g:9555:1: ( ( rule__ProcessDeclaration__PreludeAssignment_11_1 ) ) + // InternalFiacre.g:9556:2: ( rule__ProcessDeclaration__PreludeAssignment_11_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPreludeAssignment_11_1()); + } + // InternalFiacre.g:9557:2: ( rule__ProcessDeclaration__PreludeAssignment_11_1 ) + // InternalFiacre.g:9557:3: rule__ProcessDeclaration__PreludeAssignment_11_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ProcessDeclaration__PreludeAssignment_11_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPreludeAssignment_11_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__Group_11__1__Impl" + + + // $ANTLR start "rule__TransitionSource__Group__0" + // InternalFiacre.g:9566:1: rule__TransitionSource__Group__0 : rule__TransitionSource__Group__0__Impl rule__TransitionSource__Group__1 ; + public final void rule__TransitionSource__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9570:1: ( rule__TransitionSource__Group__0__Impl rule__TransitionSource__Group__1 ) + // InternalFiacre.g:9571:2: rule__TransitionSource__Group__0__Impl rule__TransitionSource__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__TransitionSource__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__TransitionSource__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TransitionSource__Group__0" + + + // $ANTLR start "rule__TransitionSource__Group__0__Impl" + // InternalFiacre.g:9578:1: rule__TransitionSource__Group__0__Impl : ( 'from' ) ; + public final void rule__TransitionSource__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9582:1: ( ( 'from' ) ) + // InternalFiacre.g:9583:1: ( 'from' ) + { + // InternalFiacre.g:9583:1: ( 'from' ) + // InternalFiacre.g:9584:2: 'from' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionSourceAccess().getFromKeyword_0()); + } + match(input,47,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionSourceAccess().getFromKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TransitionSource__Group__0__Impl" + + + // $ANTLR start "rule__TransitionSource__Group__1" + // InternalFiacre.g:9593:1: rule__TransitionSource__Group__1 : rule__TransitionSource__Group__1__Impl ; + public final void rule__TransitionSource__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9597:1: ( rule__TransitionSource__Group__1__Impl ) + // InternalFiacre.g:9598:2: rule__TransitionSource__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TransitionSource__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TransitionSource__Group__1" + + + // $ANTLR start "rule__TransitionSource__Group__1__Impl" + // InternalFiacre.g:9604:1: rule__TransitionSource__Group__1__Impl : ( ( rule__TransitionSource__OriginAssignment_1 ) ) ; + public final void rule__TransitionSource__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9608:1: ( ( ( rule__TransitionSource__OriginAssignment_1 ) ) ) + // InternalFiacre.g:9609:1: ( ( rule__TransitionSource__OriginAssignment_1 ) ) + { + // InternalFiacre.g:9609:1: ( ( rule__TransitionSource__OriginAssignment_1 ) ) + // InternalFiacre.g:9610:2: ( rule__TransitionSource__OriginAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionSourceAccess().getOriginAssignment_1()); + } + // InternalFiacre.g:9611:2: ( rule__TransitionSource__OriginAssignment_1 ) + // InternalFiacre.g:9611:3: rule__TransitionSource__OriginAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TransitionSource__OriginAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionSourceAccess().getOriginAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TransitionSource__Group__1__Impl" + + + // $ANTLR start "rule__Transition__Group__0" + // InternalFiacre.g:9620:1: rule__Transition__Group__0 : rule__Transition__Group__0__Impl rule__Transition__Group__1 ; + public final void rule__Transition__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9624:1: ( rule__Transition__Group__0__Impl rule__Transition__Group__1 ) + // InternalFiacre.g:9625:2: rule__Transition__Group__0__Impl rule__Transition__Group__1 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__Transition__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Transition__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Transition__Group__0" + + + // $ANTLR start "rule__Transition__Group__0__Impl" + // InternalFiacre.g:9632:1: rule__Transition__Group__0__Impl : ( ( rule__Transition__SourceAssignment_0 ) ) ; + public final void rule__Transition__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9636:1: ( ( ( rule__Transition__SourceAssignment_0 ) ) ) + // InternalFiacre.g:9637:1: ( ( rule__Transition__SourceAssignment_0 ) ) + { + // InternalFiacre.g:9637:1: ( ( rule__Transition__SourceAssignment_0 ) ) + // InternalFiacre.g:9638:2: ( rule__Transition__SourceAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionAccess().getSourceAssignment_0()); + } + // InternalFiacre.g:9639:2: ( rule__Transition__SourceAssignment_0 ) + // InternalFiacre.g:9639:3: rule__Transition__SourceAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Transition__SourceAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionAccess().getSourceAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Transition__Group__0__Impl" + + + // $ANTLR start "rule__Transition__Group__1" + // InternalFiacre.g:9647:1: rule__Transition__Group__1 : rule__Transition__Group__1__Impl ; + public final void rule__Transition__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9651:1: ( rule__Transition__Group__1__Impl ) + // InternalFiacre.g:9652:2: rule__Transition__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Transition__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Transition__Group__1" + + + // $ANTLR start "rule__Transition__Group__1__Impl" + // InternalFiacre.g:9658:1: rule__Transition__Group__1__Impl : ( ( rule__Transition__ActionAssignment_1 ) ) ; + public final void rule__Transition__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9662:1: ( ( ( rule__Transition__ActionAssignment_1 ) ) ) + // InternalFiacre.g:9663:1: ( ( rule__Transition__ActionAssignment_1 ) ) + { + // InternalFiacre.g:9663:1: ( ( rule__Transition__ActionAssignment_1 ) ) + // InternalFiacre.g:9664:2: ( rule__Transition__ActionAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionAccess().getActionAssignment_1()); + } + // InternalFiacre.g:9665:2: ( rule__Transition__ActionAssignment_1 ) + // InternalFiacre.g:9665:3: rule__Transition__ActionAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Transition__ActionAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionAccess().getActionAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Transition__Group__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group__0" + // InternalFiacre.g:9674:1: rule__ComponentDeclaration__Group__0 : rule__ComponentDeclaration__Group__0__Impl rule__ComponentDeclaration__Group__1 ; + public final void rule__ComponentDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9678:1: ( rule__ComponentDeclaration__Group__0__Impl rule__ComponentDeclaration__Group__1 ) + // InternalFiacre.g:9679:2: rule__ComponentDeclaration__Group__0__Impl rule__ComponentDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ComponentDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group__0__Impl" + // InternalFiacre.g:9686:1: rule__ComponentDeclaration__Group__0__Impl : ( 'component' ) ; + public final void rule__ComponentDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9690:1: ( ( 'component' ) ) + // InternalFiacre.g:9691:1: ( 'component' ) + { + // InternalFiacre.g:9691:1: ( 'component' ) + // InternalFiacre.g:9692:2: 'component' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getComponentKeyword_0()); + } + match(input,48,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getComponentKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group__1" + // InternalFiacre.g:9701:1: rule__ComponentDeclaration__Group__1 : rule__ComponentDeclaration__Group__1__Impl rule__ComponentDeclaration__Group__2 ; + public final void rule__ComponentDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9705:1: ( rule__ComponentDeclaration__Group__1__Impl rule__ComponentDeclaration__Group__2 ) + // InternalFiacre.g:9706:2: rule__ComponentDeclaration__Group__1__Impl rule__ComponentDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_39); + rule__ComponentDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group__1__Impl" + // InternalFiacre.g:9713:1: rule__ComponentDeclaration__Group__1__Impl : ( ( rule__ComponentDeclaration__NameAssignment_1 ) ) ; + public final void rule__ComponentDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9717:1: ( ( ( rule__ComponentDeclaration__NameAssignment_1 ) ) ) + // InternalFiacre.g:9718:1: ( ( rule__ComponentDeclaration__NameAssignment_1 ) ) + { + // InternalFiacre.g:9718:1: ( ( rule__ComponentDeclaration__NameAssignment_1 ) ) + // InternalFiacre.g:9719:2: ( rule__ComponentDeclaration__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getNameAssignment_1()); + } + // InternalFiacre.g:9720:2: ( rule__ComponentDeclaration__NameAssignment_1 ) + // InternalFiacre.g:9720:3: rule__ComponentDeclaration__NameAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group__2" + // InternalFiacre.g:9728:1: rule__ComponentDeclaration__Group__2 : rule__ComponentDeclaration__Group__2__Impl rule__ComponentDeclaration__Group__3 ; + public final void rule__ComponentDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9732:1: ( rule__ComponentDeclaration__Group__2__Impl rule__ComponentDeclaration__Group__3 ) + // InternalFiacre.g:9733:2: rule__ComponentDeclaration__Group__2__Impl rule__ComponentDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_39); + rule__ComponentDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__2" + + + // $ANTLR start "rule__ComponentDeclaration__Group__2__Impl" + // InternalFiacre.g:9740:1: rule__ComponentDeclaration__Group__2__Impl : ( ( rule__ComponentDeclaration__Group_2__0 )? ) ; + public final void rule__ComponentDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9744:1: ( ( ( rule__ComponentDeclaration__Group_2__0 )? ) ) + // InternalFiacre.g:9745:1: ( ( rule__ComponentDeclaration__Group_2__0 )? ) + { + // InternalFiacre.g:9745:1: ( ( rule__ComponentDeclaration__Group_2__0 )? ) + // InternalFiacre.g:9746:2: ( rule__ComponentDeclaration__Group_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_2()); + } + // InternalFiacre.g:9747:2: ( rule__ComponentDeclaration__Group_2__0 )? + int alt96=2; + int LA96_0 = input.LA(1); + + if ( (LA96_0==42) ) { + alt96=1; + } + switch (alt96) { + case 1 : + // InternalFiacre.g:9747:3: rule__ComponentDeclaration__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group__3" + // InternalFiacre.g:9755:1: rule__ComponentDeclaration__Group__3 : rule__ComponentDeclaration__Group__3__Impl rule__ComponentDeclaration__Group__4 ; + public final void rule__ComponentDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9759:1: ( rule__ComponentDeclaration__Group__3__Impl rule__ComponentDeclaration__Group__4 ) + // InternalFiacre.g:9760:2: rule__ComponentDeclaration__Group__3__Impl rule__ComponentDeclaration__Group__4 + { + pushFollow(FollowSets000.FOLLOW_39); + rule__ComponentDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__3" + + + // $ANTLR start "rule__ComponentDeclaration__Group__3__Impl" + // InternalFiacre.g:9767:1: rule__ComponentDeclaration__Group__3__Impl : ( ( rule__ComponentDeclaration__Group_3__0 )? ) ; + public final void rule__ComponentDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9771:1: ( ( ( rule__ComponentDeclaration__Group_3__0 )? ) ) + // InternalFiacre.g:9772:1: ( ( rule__ComponentDeclaration__Group_3__0 )? ) + { + // InternalFiacre.g:9772:1: ( ( rule__ComponentDeclaration__Group_3__0 )? ) + // InternalFiacre.g:9773:2: ( rule__ComponentDeclaration__Group_3__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_3()); + } + // InternalFiacre.g:9774:2: ( rule__ComponentDeclaration__Group_3__0 )? + int alt97=2; + int LA97_0 = input.LA(1); + + if ( (LA97_0==22) ) { + alt97=1; + } + switch (alt97) { + case 1 : + // InternalFiacre.g:9774:3: rule__ComponentDeclaration__Group_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group__4" + // InternalFiacre.g:9782:1: rule__ComponentDeclaration__Group__4 : rule__ComponentDeclaration__Group__4__Impl rule__ComponentDeclaration__Group__5 ; + public final void rule__ComponentDeclaration__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9786:1: ( rule__ComponentDeclaration__Group__4__Impl rule__ComponentDeclaration__Group__5 ) + // InternalFiacre.g:9787:2: rule__ComponentDeclaration__Group__4__Impl rule__ComponentDeclaration__Group__5 + { + pushFollow(FollowSets000.FOLLOW_45); + rule__ComponentDeclaration__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__4" + + + // $ANTLR start "rule__ComponentDeclaration__Group__4__Impl" + // InternalFiacre.g:9794:1: rule__ComponentDeclaration__Group__4__Impl : ( 'is' ) ; + public final void rule__ComponentDeclaration__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9798:1: ( ( 'is' ) ) + // InternalFiacre.g:9799:1: ( 'is' ) + { + // InternalFiacre.g:9799:1: ( 'is' ) + // InternalFiacre.g:9800:2: 'is' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getIsKeyword_4()); + } + match(input,21,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getIsKeyword_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__4__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group__5" + // InternalFiacre.g:9809:1: rule__ComponentDeclaration__Group__5 : rule__ComponentDeclaration__Group__5__Impl rule__ComponentDeclaration__Group__6 ; + public final void rule__ComponentDeclaration__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9813:1: ( rule__ComponentDeclaration__Group__5__Impl rule__ComponentDeclaration__Group__6 ) + // InternalFiacre.g:9814:2: rule__ComponentDeclaration__Group__5__Impl rule__ComponentDeclaration__Group__6 + { + pushFollow(FollowSets000.FOLLOW_45); + rule__ComponentDeclaration__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__5" + + + // $ANTLR start "rule__ComponentDeclaration__Group__5__Impl" + // InternalFiacre.g:9821:1: rule__ComponentDeclaration__Group__5__Impl : ( ( rule__ComponentDeclaration__Group_5__0 )? ) ; + public final void rule__ComponentDeclaration__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9825:1: ( ( ( rule__ComponentDeclaration__Group_5__0 )? ) ) + // InternalFiacre.g:9826:1: ( ( rule__ComponentDeclaration__Group_5__0 )? ) + { + // InternalFiacre.g:9826:1: ( ( rule__ComponentDeclaration__Group_5__0 )? ) + // InternalFiacre.g:9827:2: ( rule__ComponentDeclaration__Group_5__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_5()); + } + // InternalFiacre.g:9828:2: ( rule__ComponentDeclaration__Group_5__0 )? + int alt98=2; + int LA98_0 = input.LA(1); + + if ( (LA98_0==25) ) { + alt98=1; + } + switch (alt98) { + case 1 : + // InternalFiacre.g:9828:3: rule__ComponentDeclaration__Group_5__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_5__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__5__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group__6" + // InternalFiacre.g:9836:1: rule__ComponentDeclaration__Group__6 : rule__ComponentDeclaration__Group__6__Impl rule__ComponentDeclaration__Group__7 ; + public final void rule__ComponentDeclaration__Group__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9840:1: ( rule__ComponentDeclaration__Group__6__Impl rule__ComponentDeclaration__Group__7 ) + // InternalFiacre.g:9841:2: rule__ComponentDeclaration__Group__6__Impl rule__ComponentDeclaration__Group__7 + { + pushFollow(FollowSets000.FOLLOW_45); + rule__ComponentDeclaration__Group__6__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__7(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__6" + + + // $ANTLR start "rule__ComponentDeclaration__Group__6__Impl" + // InternalFiacre.g:9848:1: rule__ComponentDeclaration__Group__6__Impl : ( ( rule__ComponentDeclaration__Group_6__0 )? ) ; + public final void rule__ComponentDeclaration__Group__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9852:1: ( ( ( rule__ComponentDeclaration__Group_6__0 )? ) ) + // InternalFiacre.g:9853:1: ( ( rule__ComponentDeclaration__Group_6__0 )? ) + { + // InternalFiacre.g:9853:1: ( ( rule__ComponentDeclaration__Group_6__0 )? ) + // InternalFiacre.g:9854:2: ( rule__ComponentDeclaration__Group_6__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_6()); + } + // InternalFiacre.g:9855:2: ( rule__ComponentDeclaration__Group_6__0 )? + int alt99=2; + int LA99_0 = input.LA(1); + + if ( (LA99_0==44) ) { + alt99=1; + } + switch (alt99) { + case 1 : + // InternalFiacre.g:9855:3: rule__ComponentDeclaration__Group_6__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__6__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group__7" + // InternalFiacre.g:9863:1: rule__ComponentDeclaration__Group__7 : rule__ComponentDeclaration__Group__7__Impl rule__ComponentDeclaration__Group__8 ; + public final void rule__ComponentDeclaration__Group__7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9867:1: ( rule__ComponentDeclaration__Group__7__Impl rule__ComponentDeclaration__Group__8 ) + // InternalFiacre.g:9868:2: rule__ComponentDeclaration__Group__7__Impl rule__ComponentDeclaration__Group__8 + { + pushFollow(FollowSets000.FOLLOW_45); + rule__ComponentDeclaration__Group__7__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__8(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__7" + + + // $ANTLR start "rule__ComponentDeclaration__Group__7__Impl" + // InternalFiacre.g:9875:1: rule__ComponentDeclaration__Group__7__Impl : ( ( rule__ComponentDeclaration__Group_7__0 )? ) ; + public final void rule__ComponentDeclaration__Group__7__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9879:1: ( ( ( rule__ComponentDeclaration__Group_7__0 )? ) ) + // InternalFiacre.g:9880:1: ( ( rule__ComponentDeclaration__Group_7__0 )? ) + { + // InternalFiacre.g:9880:1: ( ( rule__ComponentDeclaration__Group_7__0 )? ) + // InternalFiacre.g:9881:2: ( rule__ComponentDeclaration__Group_7__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_7()); + } + // InternalFiacre.g:9882:2: ( rule__ComponentDeclaration__Group_7__0 )? + int alt100=2; + int LA100_0 = input.LA(1); + + if ( (LA100_0==45) ) { + alt100=1; + } + switch (alt100) { + case 1 : + // InternalFiacre.g:9882:3: rule__ComponentDeclaration__Group_7__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_7__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_7()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__7__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group__8" + // InternalFiacre.g:9890:1: rule__ComponentDeclaration__Group__8 : rule__ComponentDeclaration__Group__8__Impl rule__ComponentDeclaration__Group__9 ; + public final void rule__ComponentDeclaration__Group__8() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9894:1: ( rule__ComponentDeclaration__Group__8__Impl rule__ComponentDeclaration__Group__9 ) + // InternalFiacre.g:9895:2: rule__ComponentDeclaration__Group__8__Impl rule__ComponentDeclaration__Group__9 + { + pushFollow(FollowSets000.FOLLOW_45); + rule__ComponentDeclaration__Group__8__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__9(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__8" + + + // $ANTLR start "rule__ComponentDeclaration__Group__8__Impl" + // InternalFiacre.g:9902:1: rule__ComponentDeclaration__Group__8__Impl : ( ( rule__ComponentDeclaration__Group_8__0 )? ) ; + public final void rule__ComponentDeclaration__Group__8__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9906:1: ( ( ( rule__ComponentDeclaration__Group_8__0 )? ) ) + // InternalFiacre.g:9907:1: ( ( rule__ComponentDeclaration__Group_8__0 )? ) + { + // InternalFiacre.g:9907:1: ( ( rule__ComponentDeclaration__Group_8__0 )? ) + // InternalFiacre.g:9908:2: ( rule__ComponentDeclaration__Group_8__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_8()); + } + // InternalFiacre.g:9909:2: ( rule__ComponentDeclaration__Group_8__0 )? + int alt101=2; + int LA101_0 = input.LA(1); + + if ( (LA101_0==46) ) { + alt101=1; + } + switch (alt101) { + case 1 : + // InternalFiacre.g:9909:3: rule__ComponentDeclaration__Group_8__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_8__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_8()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__8__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group__9" + // InternalFiacre.g:9917:1: rule__ComponentDeclaration__Group__9 : rule__ComponentDeclaration__Group__9__Impl ; + public final void rule__ComponentDeclaration__Group__9() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9921:1: ( rule__ComponentDeclaration__Group__9__Impl ) + // InternalFiacre.g:9922:2: rule__ComponentDeclaration__Group__9__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group__9__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__9" + + + // $ANTLR start "rule__ComponentDeclaration__Group__9__Impl" + // InternalFiacre.g:9928:1: rule__ComponentDeclaration__Group__9__Impl : ( ( rule__ComponentDeclaration__BodyAssignment_9 ) ) ; + public final void rule__ComponentDeclaration__Group__9__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9932:1: ( ( ( rule__ComponentDeclaration__BodyAssignment_9 ) ) ) + // InternalFiacre.g:9933:1: ( ( rule__ComponentDeclaration__BodyAssignment_9 ) ) + { + // InternalFiacre.g:9933:1: ( ( rule__ComponentDeclaration__BodyAssignment_9 ) ) + // InternalFiacre.g:9934:2: ( rule__ComponentDeclaration__BodyAssignment_9 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getBodyAssignment_9()); + } + // InternalFiacre.g:9935:2: ( rule__ComponentDeclaration__BodyAssignment_9 ) + // InternalFiacre.g:9935:3: rule__ComponentDeclaration__BodyAssignment_9 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__BodyAssignment_9(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getBodyAssignment_9()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group__9__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2__0" + // InternalFiacre.g:9944:1: rule__ComponentDeclaration__Group_2__0 : rule__ComponentDeclaration__Group_2__0__Impl rule__ComponentDeclaration__Group_2__1 ; + public final void rule__ComponentDeclaration__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9948:1: ( rule__ComponentDeclaration__Group_2__0__Impl rule__ComponentDeclaration__Group_2__1 ) + // InternalFiacre.g:9949:2: rule__ComponentDeclaration__Group_2__0__Impl rule__ComponentDeclaration__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ComponentDeclaration__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2__0__Impl" + // InternalFiacre.g:9956:1: rule__ComponentDeclaration__Group_2__0__Impl : ( '[' ) ; + public final void rule__ComponentDeclaration__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9960:1: ( ( '[' ) ) + // InternalFiacre.g:9961:1: ( '[' ) + { + // InternalFiacre.g:9961:1: ( '[' ) + // InternalFiacre.g:9962:2: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getLeftSquareBracketKeyword_2_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getLeftSquareBracketKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2__1" + // InternalFiacre.g:9971:1: rule__ComponentDeclaration__Group_2__1 : rule__ComponentDeclaration__Group_2__1__Impl rule__ComponentDeclaration__Group_2__2 ; + public final void rule__ComponentDeclaration__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9975:1: ( rule__ComponentDeclaration__Group_2__1__Impl rule__ComponentDeclaration__Group_2__2 ) + // InternalFiacre.g:9976:2: rule__ComponentDeclaration__Group_2__1__Impl rule__ComponentDeclaration__Group_2__2 + { + pushFollow(FollowSets000.FOLLOW_43); + rule__ComponentDeclaration__Group_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2__1__Impl" + // InternalFiacre.g:9983:1: rule__ComponentDeclaration__Group_2__1__Impl : ( ( rule__ComponentDeclaration__PortsAssignment_2_1 ) ) ; + public final void rule__ComponentDeclaration__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:9987:1: ( ( ( rule__ComponentDeclaration__PortsAssignment_2_1 ) ) ) + // InternalFiacre.g:9988:1: ( ( rule__ComponentDeclaration__PortsAssignment_2_1 ) ) + { + // InternalFiacre.g:9988:1: ( ( rule__ComponentDeclaration__PortsAssignment_2_1 ) ) + // InternalFiacre.g:9989:2: ( rule__ComponentDeclaration__PortsAssignment_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPortsAssignment_2_1()); + } + // InternalFiacre.g:9990:2: ( rule__ComponentDeclaration__PortsAssignment_2_1 ) + // InternalFiacre.g:9990:3: rule__ComponentDeclaration__PortsAssignment_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__PortsAssignment_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPortsAssignment_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2__2" + // InternalFiacre.g:9998:1: rule__ComponentDeclaration__Group_2__2 : rule__ComponentDeclaration__Group_2__2__Impl rule__ComponentDeclaration__Group_2__3 ; + public final void rule__ComponentDeclaration__Group_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10002:1: ( rule__ComponentDeclaration__Group_2__2__Impl rule__ComponentDeclaration__Group_2__3 ) + // InternalFiacre.g:10003:2: rule__ComponentDeclaration__Group_2__2__Impl rule__ComponentDeclaration__Group_2__3 + { + pushFollow(FollowSets000.FOLLOW_43); + rule__ComponentDeclaration__Group_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_2__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2__2" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2__2__Impl" + // InternalFiacre.g:10010:1: rule__ComponentDeclaration__Group_2__2__Impl : ( ( rule__ComponentDeclaration__Group_2_2__0 )* ) ; + public final void rule__ComponentDeclaration__Group_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10014:1: ( ( ( rule__ComponentDeclaration__Group_2_2__0 )* ) ) + // InternalFiacre.g:10015:1: ( ( rule__ComponentDeclaration__Group_2_2__0 )* ) + { + // InternalFiacre.g:10015:1: ( ( rule__ComponentDeclaration__Group_2_2__0 )* ) + // InternalFiacre.g:10016:2: ( rule__ComponentDeclaration__Group_2_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_2_2()); + } + // InternalFiacre.g:10017:2: ( rule__ComponentDeclaration__Group_2_2__0 )* + loop102: + do { + int alt102=2; + int LA102_0 = input.LA(1); + + if ( (LA102_0==24) ) { + alt102=1; + } + + + switch (alt102) { + case 1 : + // InternalFiacre.g:10017:3: rule__ComponentDeclaration__Group_2_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ComponentDeclaration__Group_2_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop102; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2__2__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2__3" + // InternalFiacre.g:10025:1: rule__ComponentDeclaration__Group_2__3 : rule__ComponentDeclaration__Group_2__3__Impl ; + public final void rule__ComponentDeclaration__Group_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10029:1: ( rule__ComponentDeclaration__Group_2__3__Impl ) + // InternalFiacre.g:10030:2: rule__ComponentDeclaration__Group_2__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_2__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2__3" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2__3__Impl" + // InternalFiacre.g:10036:1: rule__ComponentDeclaration__Group_2__3__Impl : ( ']' ) ; + public final void rule__ComponentDeclaration__Group_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10040:1: ( ( ']' ) ) + // InternalFiacre.g:10041:1: ( ']' ) + { + // InternalFiacre.g:10041:1: ( ']' ) + // InternalFiacre.g:10042:2: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getRightSquareBracketKeyword_2_3()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getRightSquareBracketKeyword_2_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2__3__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2_2__0" + // InternalFiacre.g:10052:1: rule__ComponentDeclaration__Group_2_2__0 : rule__ComponentDeclaration__Group_2_2__0__Impl rule__ComponentDeclaration__Group_2_2__1 ; + public final void rule__ComponentDeclaration__Group_2_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10056:1: ( rule__ComponentDeclaration__Group_2_2__0__Impl rule__ComponentDeclaration__Group_2_2__1 ) + // InternalFiacre.g:10057:2: rule__ComponentDeclaration__Group_2_2__0__Impl rule__ComponentDeclaration__Group_2_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ComponentDeclaration__Group_2_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_2_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2_2__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2_2__0__Impl" + // InternalFiacre.g:10064:1: rule__ComponentDeclaration__Group_2_2__0__Impl : ( ',' ) ; + public final void rule__ComponentDeclaration__Group_2_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10068:1: ( ( ',' ) ) + // InternalFiacre.g:10069:1: ( ',' ) + { + // InternalFiacre.g:10069:1: ( ',' ) + // InternalFiacre.g:10070:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_2_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_2_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2_2__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2_2__1" + // InternalFiacre.g:10079:1: rule__ComponentDeclaration__Group_2_2__1 : rule__ComponentDeclaration__Group_2_2__1__Impl ; + public final void rule__ComponentDeclaration__Group_2_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10083:1: ( rule__ComponentDeclaration__Group_2_2__1__Impl ) + // InternalFiacre.g:10084:2: rule__ComponentDeclaration__Group_2_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_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__ComponentDeclaration__Group_2_2__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_2_2__1__Impl" + // InternalFiacre.g:10090:1: rule__ComponentDeclaration__Group_2_2__1__Impl : ( ( rule__ComponentDeclaration__PortsAssignment_2_2_1 ) ) ; + public final void rule__ComponentDeclaration__Group_2_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10094:1: ( ( ( rule__ComponentDeclaration__PortsAssignment_2_2_1 ) ) ) + // InternalFiacre.g:10095:1: ( ( rule__ComponentDeclaration__PortsAssignment_2_2_1 ) ) + { + // InternalFiacre.g:10095:1: ( ( rule__ComponentDeclaration__PortsAssignment_2_2_1 ) ) + // InternalFiacre.g:10096:2: ( rule__ComponentDeclaration__PortsAssignment_2_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPortsAssignment_2_2_1()); + } + // InternalFiacre.g:10097:2: ( rule__ComponentDeclaration__PortsAssignment_2_2_1 ) + // InternalFiacre.g:10097:3: rule__ComponentDeclaration__PortsAssignment_2_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__PortsAssignment_2_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPortsAssignment_2_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_2_2__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3__0" + // InternalFiacre.g:10106:1: rule__ComponentDeclaration__Group_3__0 : rule__ComponentDeclaration__Group_3__0__Impl rule__ComponentDeclaration__Group_3__1 ; + public final void rule__ComponentDeclaration__Group_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10110:1: ( rule__ComponentDeclaration__Group_3__0__Impl rule__ComponentDeclaration__Group_3__1 ) + // InternalFiacre.g:10111:2: rule__ComponentDeclaration__Group_3__0__Impl rule__ComponentDeclaration__Group_3__1 + { + pushFollow(FollowSets000.FOLLOW_21); + rule__ComponentDeclaration__Group_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_3__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3__0__Impl" + // InternalFiacre.g:10118:1: rule__ComponentDeclaration__Group_3__0__Impl : ( '(' ) ; + public final void rule__ComponentDeclaration__Group_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10122:1: ( ( '(' ) ) + // InternalFiacre.g:10123:1: ( '(' ) + { + // InternalFiacre.g:10123:1: ( '(' ) + // InternalFiacre.g:10124:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getLeftParenthesisKeyword_3_0()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getLeftParenthesisKeyword_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_3__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3__1" + // InternalFiacre.g:10133:1: rule__ComponentDeclaration__Group_3__1 : rule__ComponentDeclaration__Group_3__1__Impl rule__ComponentDeclaration__Group_3__2 ; + public final void rule__ComponentDeclaration__Group_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10137:1: ( rule__ComponentDeclaration__Group_3__1__Impl rule__ComponentDeclaration__Group_3__2 ) + // InternalFiacre.g:10138:2: rule__ComponentDeclaration__Group_3__1__Impl rule__ComponentDeclaration__Group_3__2 + { + pushFollow(FollowSets000.FOLLOW_44); + rule__ComponentDeclaration__Group_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_3__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_3__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3__1__Impl" + // InternalFiacre.g:10145:1: rule__ComponentDeclaration__Group_3__1__Impl : ( ( rule__ComponentDeclaration__ParametersAssignment_3_1 ) ) ; + public final void rule__ComponentDeclaration__Group_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10149:1: ( ( ( rule__ComponentDeclaration__ParametersAssignment_3_1 ) ) ) + // InternalFiacre.g:10150:1: ( ( rule__ComponentDeclaration__ParametersAssignment_3_1 ) ) + { + // InternalFiacre.g:10150:1: ( ( rule__ComponentDeclaration__ParametersAssignment_3_1 ) ) + // InternalFiacre.g:10151:2: ( rule__ComponentDeclaration__ParametersAssignment_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getParametersAssignment_3_1()); + } + // InternalFiacre.g:10152:2: ( rule__ComponentDeclaration__ParametersAssignment_3_1 ) + // InternalFiacre.g:10152:3: rule__ComponentDeclaration__ParametersAssignment_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__ParametersAssignment_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getParametersAssignment_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_3__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3__2" + // InternalFiacre.g:10160:1: rule__ComponentDeclaration__Group_3__2 : rule__ComponentDeclaration__Group_3__2__Impl rule__ComponentDeclaration__Group_3__3 ; + public final void rule__ComponentDeclaration__Group_3__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10164:1: ( rule__ComponentDeclaration__Group_3__2__Impl rule__ComponentDeclaration__Group_3__3 ) + // InternalFiacre.g:10165:2: rule__ComponentDeclaration__Group_3__2__Impl rule__ComponentDeclaration__Group_3__3 + { + pushFollow(FollowSets000.FOLLOW_44); + rule__ComponentDeclaration__Group_3__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_3__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_3__2" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3__2__Impl" + // InternalFiacre.g:10172:1: rule__ComponentDeclaration__Group_3__2__Impl : ( ( rule__ComponentDeclaration__Group_3_2__0 )* ) ; + public final void rule__ComponentDeclaration__Group_3__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10176:1: ( ( ( rule__ComponentDeclaration__Group_3_2__0 )* ) ) + // InternalFiacre.g:10177:1: ( ( rule__ComponentDeclaration__Group_3_2__0 )* ) + { + // InternalFiacre.g:10177:1: ( ( rule__ComponentDeclaration__Group_3_2__0 )* ) + // InternalFiacre.g:10178:2: ( rule__ComponentDeclaration__Group_3_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_3_2()); + } + // InternalFiacre.g:10179:2: ( rule__ComponentDeclaration__Group_3_2__0 )* + loop103: + do { + int alt103=2; + int LA103_0 = input.LA(1); + + if ( (LA103_0==24) ) { + alt103=1; + } + + + switch (alt103) { + case 1 : + // InternalFiacre.g:10179:3: rule__ComponentDeclaration__Group_3_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ComponentDeclaration__Group_3_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop103; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_3_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_3__2__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3__3" + // InternalFiacre.g:10187:1: rule__ComponentDeclaration__Group_3__3 : rule__ComponentDeclaration__Group_3__3__Impl ; + public final void rule__ComponentDeclaration__Group_3__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10191:1: ( rule__ComponentDeclaration__Group_3__3__Impl ) + // InternalFiacre.g:10192:2: rule__ComponentDeclaration__Group_3__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_3__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_3__3" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3__3__Impl" + // InternalFiacre.g:10198:1: rule__ComponentDeclaration__Group_3__3__Impl : ( ')' ) ; + public final void rule__ComponentDeclaration__Group_3__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10202:1: ( ( ')' ) ) + // InternalFiacre.g:10203:1: ( ')' ) + { + // InternalFiacre.g:10203:1: ( ')' ) + // InternalFiacre.g:10204:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getRightParenthesisKeyword_3_3()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getRightParenthesisKeyword_3_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_3__3__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3_2__0" + // InternalFiacre.g:10214:1: rule__ComponentDeclaration__Group_3_2__0 : rule__ComponentDeclaration__Group_3_2__0__Impl rule__ComponentDeclaration__Group_3_2__1 ; + public final void rule__ComponentDeclaration__Group_3_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10218:1: ( rule__ComponentDeclaration__Group_3_2__0__Impl rule__ComponentDeclaration__Group_3_2__1 ) + // InternalFiacre.g:10219:2: rule__ComponentDeclaration__Group_3_2__0__Impl rule__ComponentDeclaration__Group_3_2__1 + { + pushFollow(FollowSets000.FOLLOW_21); + rule__ComponentDeclaration__Group_3_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__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__ComponentDeclaration__Group_3_2__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3_2__0__Impl" + // InternalFiacre.g:10226:1: rule__ComponentDeclaration__Group_3_2__0__Impl : ( ',' ) ; + public final void rule__ComponentDeclaration__Group_3_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10230:1: ( ( ',' ) ) + // InternalFiacre.g:10231:1: ( ',' ) + { + // InternalFiacre.g:10231:1: ( ',' ) + // InternalFiacre.g:10232:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_3_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_3_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_3_2__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3_2__1" + // InternalFiacre.g:10241:1: rule__ComponentDeclaration__Group_3_2__1 : rule__ComponentDeclaration__Group_3_2__1__Impl ; + public final void rule__ComponentDeclaration__Group_3_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10245:1: ( rule__ComponentDeclaration__Group_3_2__1__Impl ) + // InternalFiacre.g:10246:2: rule__ComponentDeclaration__Group_3_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__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__ComponentDeclaration__Group_3_2__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_3_2__1__Impl" + // InternalFiacre.g:10252:1: rule__ComponentDeclaration__Group_3_2__1__Impl : ( ( rule__ComponentDeclaration__ParametersAssignment_3_2_1 ) ) ; + public final void rule__ComponentDeclaration__Group_3_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10256:1: ( ( ( rule__ComponentDeclaration__ParametersAssignment_3_2_1 ) ) ) + // InternalFiacre.g:10257:1: ( ( rule__ComponentDeclaration__ParametersAssignment_3_2_1 ) ) + { + // InternalFiacre.g:10257:1: ( ( rule__ComponentDeclaration__ParametersAssignment_3_2_1 ) ) + // InternalFiacre.g:10258:2: ( rule__ComponentDeclaration__ParametersAssignment_3_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getParametersAssignment_3_2_1()); + } + // InternalFiacre.g:10259:2: ( rule__ComponentDeclaration__ParametersAssignment_3_2_1 ) + // InternalFiacre.g:10259:3: rule__ComponentDeclaration__ParametersAssignment_3_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__ParametersAssignment_3_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getParametersAssignment_3_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_3_2__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_5__0" + // InternalFiacre.g:10268:1: rule__ComponentDeclaration__Group_5__0 : rule__ComponentDeclaration__Group_5__0__Impl rule__ComponentDeclaration__Group_5__1 ; + public final void rule__ComponentDeclaration__Group_5__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10272:1: ( rule__ComponentDeclaration__Group_5__0__Impl rule__ComponentDeclaration__Group_5__1 ) + // InternalFiacre.g:10273:2: rule__ComponentDeclaration__Group_5__0__Impl rule__ComponentDeclaration__Group_5__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ComponentDeclaration__Group_5__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_5__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_5__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_5__0__Impl" + // InternalFiacre.g:10280:1: rule__ComponentDeclaration__Group_5__0__Impl : ( 'var' ) ; + public final void rule__ComponentDeclaration__Group_5__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10284:1: ( ( 'var' ) ) + // InternalFiacre.g:10285:1: ( 'var' ) + { + // InternalFiacre.g:10285:1: ( 'var' ) + // InternalFiacre.g:10286:2: 'var' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getVarKeyword_5_0()); + } + match(input,25,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getVarKeyword_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_5__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_5__1" + // InternalFiacre.g:10295:1: rule__ComponentDeclaration__Group_5__1 : rule__ComponentDeclaration__Group_5__1__Impl rule__ComponentDeclaration__Group_5__2 ; + public final void rule__ComponentDeclaration__Group_5__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10299:1: ( rule__ComponentDeclaration__Group_5__1__Impl rule__ComponentDeclaration__Group_5__2 ) + // InternalFiacre.g:10300:2: rule__ComponentDeclaration__Group_5__1__Impl rule__ComponentDeclaration__Group_5__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__ComponentDeclaration__Group_5__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_5__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_5__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_5__1__Impl" + // InternalFiacre.g:10307:1: rule__ComponentDeclaration__Group_5__1__Impl : ( ( rule__ComponentDeclaration__VariablesAssignment_5_1 ) ) ; + public final void rule__ComponentDeclaration__Group_5__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10311:1: ( ( ( rule__ComponentDeclaration__VariablesAssignment_5_1 ) ) ) + // InternalFiacre.g:10312:1: ( ( rule__ComponentDeclaration__VariablesAssignment_5_1 ) ) + { + // InternalFiacre.g:10312:1: ( ( rule__ComponentDeclaration__VariablesAssignment_5_1 ) ) + // InternalFiacre.g:10313:2: ( rule__ComponentDeclaration__VariablesAssignment_5_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getVariablesAssignment_5_1()); + } + // InternalFiacre.g:10314:2: ( rule__ComponentDeclaration__VariablesAssignment_5_1 ) + // InternalFiacre.g:10314:3: rule__ComponentDeclaration__VariablesAssignment_5_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__VariablesAssignment_5_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getVariablesAssignment_5_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_5__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_5__2" + // InternalFiacre.g:10322:1: rule__ComponentDeclaration__Group_5__2 : rule__ComponentDeclaration__Group_5__2__Impl ; + public final void rule__ComponentDeclaration__Group_5__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10326:1: ( rule__ComponentDeclaration__Group_5__2__Impl ) + // InternalFiacre.g:10327:2: rule__ComponentDeclaration__Group_5__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_5__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_5__2" + + + // $ANTLR start "rule__ComponentDeclaration__Group_5__2__Impl" + // InternalFiacre.g:10333:1: rule__ComponentDeclaration__Group_5__2__Impl : ( ( rule__ComponentDeclaration__Group_5_2__0 )* ) ; + public final void rule__ComponentDeclaration__Group_5__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10337:1: ( ( ( rule__ComponentDeclaration__Group_5_2__0 )* ) ) + // InternalFiacre.g:10338:1: ( ( rule__ComponentDeclaration__Group_5_2__0 )* ) + { + // InternalFiacre.g:10338:1: ( ( rule__ComponentDeclaration__Group_5_2__0 )* ) + // InternalFiacre.g:10339:2: ( rule__ComponentDeclaration__Group_5_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_5_2()); + } + // InternalFiacre.g:10340:2: ( rule__ComponentDeclaration__Group_5_2__0 )* + loop104: + do { + int alt104=2; + int LA104_0 = input.LA(1); + + if ( (LA104_0==24) ) { + alt104=1; + } + + + switch (alt104) { + case 1 : + // InternalFiacre.g:10340:3: rule__ComponentDeclaration__Group_5_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ComponentDeclaration__Group_5_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop104; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_5_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_5__2__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_5_2__0" + // InternalFiacre.g:10349:1: rule__ComponentDeclaration__Group_5_2__0 : rule__ComponentDeclaration__Group_5_2__0__Impl rule__ComponentDeclaration__Group_5_2__1 ; + public final void rule__ComponentDeclaration__Group_5_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10353:1: ( rule__ComponentDeclaration__Group_5_2__0__Impl rule__ComponentDeclaration__Group_5_2__1 ) + // InternalFiacre.g:10354:2: rule__ComponentDeclaration__Group_5_2__0__Impl rule__ComponentDeclaration__Group_5_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ComponentDeclaration__Group_5_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_5_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_5_2__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_5_2__0__Impl" + // InternalFiacre.g:10361:1: rule__ComponentDeclaration__Group_5_2__0__Impl : ( ',' ) ; + public final void rule__ComponentDeclaration__Group_5_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10365:1: ( ( ',' ) ) + // InternalFiacre.g:10366:1: ( ',' ) + { + // InternalFiacre.g:10366:1: ( ',' ) + // InternalFiacre.g:10367:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_5_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_5_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_5_2__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_5_2__1" + // InternalFiacre.g:10376:1: rule__ComponentDeclaration__Group_5_2__1 : rule__ComponentDeclaration__Group_5_2__1__Impl ; + public final void rule__ComponentDeclaration__Group_5_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10380:1: ( rule__ComponentDeclaration__Group_5_2__1__Impl ) + // InternalFiacre.g:10381:2: rule__ComponentDeclaration__Group_5_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_5_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_5_2__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_5_2__1__Impl" + // InternalFiacre.g:10387:1: rule__ComponentDeclaration__Group_5_2__1__Impl : ( ( rule__ComponentDeclaration__VariablesAssignment_5_2_1 ) ) ; + public final void rule__ComponentDeclaration__Group_5_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10391:1: ( ( ( rule__ComponentDeclaration__VariablesAssignment_5_2_1 ) ) ) + // InternalFiacre.g:10392:1: ( ( rule__ComponentDeclaration__VariablesAssignment_5_2_1 ) ) + { + // InternalFiacre.g:10392:1: ( ( rule__ComponentDeclaration__VariablesAssignment_5_2_1 ) ) + // InternalFiacre.g:10393:2: ( rule__ComponentDeclaration__VariablesAssignment_5_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getVariablesAssignment_5_2_1()); + } + // InternalFiacre.g:10394:2: ( rule__ComponentDeclaration__VariablesAssignment_5_2_1 ) + // InternalFiacre.g:10394:3: rule__ComponentDeclaration__VariablesAssignment_5_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__VariablesAssignment_5_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getVariablesAssignment_5_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_5_2__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_6__0" + // InternalFiacre.g:10403:1: rule__ComponentDeclaration__Group_6__0 : rule__ComponentDeclaration__Group_6__0__Impl rule__ComponentDeclaration__Group_6__1 ; + public final void rule__ComponentDeclaration__Group_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10407:1: ( rule__ComponentDeclaration__Group_6__0__Impl rule__ComponentDeclaration__Group_6__1 ) + // InternalFiacre.g:10408:2: rule__ComponentDeclaration__Group_6__0__Impl rule__ComponentDeclaration__Group_6__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ComponentDeclaration__Group_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_6__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_6__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_6__0__Impl" + // InternalFiacre.g:10415:1: rule__ComponentDeclaration__Group_6__0__Impl : ( 'port' ) ; + public final void rule__ComponentDeclaration__Group_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10419:1: ( ( 'port' ) ) + // InternalFiacre.g:10420:1: ( 'port' ) + { + // InternalFiacre.g:10420:1: ( 'port' ) + // InternalFiacre.g:10421:2: 'port' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPortKeyword_6_0()); + } + match(input,44,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPortKeyword_6_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_6__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_6__1" + // InternalFiacre.g:10430:1: rule__ComponentDeclaration__Group_6__1 : rule__ComponentDeclaration__Group_6__1__Impl rule__ComponentDeclaration__Group_6__2 ; + public final void rule__ComponentDeclaration__Group_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10434:1: ( rule__ComponentDeclaration__Group_6__1__Impl rule__ComponentDeclaration__Group_6__2 ) + // InternalFiacre.g:10435:2: rule__ComponentDeclaration__Group_6__1__Impl rule__ComponentDeclaration__Group_6__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__ComponentDeclaration__Group_6__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_6__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_6__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_6__1__Impl" + // InternalFiacre.g:10442:1: rule__ComponentDeclaration__Group_6__1__Impl : ( ( rule__ComponentDeclaration__LocalPortsAssignment_6_1 ) ) ; + public final void rule__ComponentDeclaration__Group_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10446:1: ( ( ( rule__ComponentDeclaration__LocalPortsAssignment_6_1 ) ) ) + // InternalFiacre.g:10447:1: ( ( rule__ComponentDeclaration__LocalPortsAssignment_6_1 ) ) + { + // InternalFiacre.g:10447:1: ( ( rule__ComponentDeclaration__LocalPortsAssignment_6_1 ) ) + // InternalFiacre.g:10448:2: ( rule__ComponentDeclaration__LocalPortsAssignment_6_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getLocalPortsAssignment_6_1()); + } + // InternalFiacre.g:10449:2: ( rule__ComponentDeclaration__LocalPortsAssignment_6_1 ) + // InternalFiacre.g:10449:3: rule__ComponentDeclaration__LocalPortsAssignment_6_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__LocalPortsAssignment_6_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getLocalPortsAssignment_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_6__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_6__2" + // InternalFiacre.g:10457:1: rule__ComponentDeclaration__Group_6__2 : rule__ComponentDeclaration__Group_6__2__Impl ; + public final void rule__ComponentDeclaration__Group_6__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10461:1: ( rule__ComponentDeclaration__Group_6__2__Impl ) + // InternalFiacre.g:10462:2: rule__ComponentDeclaration__Group_6__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_6__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_6__2" + + + // $ANTLR start "rule__ComponentDeclaration__Group_6__2__Impl" + // InternalFiacre.g:10468:1: rule__ComponentDeclaration__Group_6__2__Impl : ( ( rule__ComponentDeclaration__Group_6_2__0 )* ) ; + public final void rule__ComponentDeclaration__Group_6__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10472:1: ( ( ( rule__ComponentDeclaration__Group_6_2__0 )* ) ) + // InternalFiacre.g:10473:1: ( ( rule__ComponentDeclaration__Group_6_2__0 )* ) + { + // InternalFiacre.g:10473:1: ( ( rule__ComponentDeclaration__Group_6_2__0 )* ) + // InternalFiacre.g:10474:2: ( rule__ComponentDeclaration__Group_6_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_6_2()); + } + // InternalFiacre.g:10475:2: ( rule__ComponentDeclaration__Group_6_2__0 )* + loop105: + do { + int alt105=2; + int LA105_0 = input.LA(1); + + if ( (LA105_0==24) ) { + alt105=1; + } + + + switch (alt105) { + case 1 : + // InternalFiacre.g:10475:3: rule__ComponentDeclaration__Group_6_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ComponentDeclaration__Group_6_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop105; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_6_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_6__2__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_6_2__0" + // InternalFiacre.g:10484:1: rule__ComponentDeclaration__Group_6_2__0 : rule__ComponentDeclaration__Group_6_2__0__Impl rule__ComponentDeclaration__Group_6_2__1 ; + public final void rule__ComponentDeclaration__Group_6_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10488:1: ( rule__ComponentDeclaration__Group_6_2__0__Impl rule__ComponentDeclaration__Group_6_2__1 ) + // InternalFiacre.g:10489:2: rule__ComponentDeclaration__Group_6_2__0__Impl rule__ComponentDeclaration__Group_6_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ComponentDeclaration__Group_6_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_6_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_6_2__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_6_2__0__Impl" + // InternalFiacre.g:10496:1: rule__ComponentDeclaration__Group_6_2__0__Impl : ( ',' ) ; + public final void rule__ComponentDeclaration__Group_6_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10500:1: ( ( ',' ) ) + // InternalFiacre.g:10501:1: ( ',' ) + { + // InternalFiacre.g:10501:1: ( ',' ) + // InternalFiacre.g:10502:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_6_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_6_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_6_2__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_6_2__1" + // InternalFiacre.g:10511:1: rule__ComponentDeclaration__Group_6_2__1 : rule__ComponentDeclaration__Group_6_2__1__Impl ; + public final void rule__ComponentDeclaration__Group_6_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10515:1: ( rule__ComponentDeclaration__Group_6_2__1__Impl ) + // InternalFiacre.g:10516:2: rule__ComponentDeclaration__Group_6_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_6_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_6_2__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_6_2__1__Impl" + // InternalFiacre.g:10522:1: rule__ComponentDeclaration__Group_6_2__1__Impl : ( ( rule__ComponentDeclaration__LocalPortsAssignment_6_2_1 ) ) ; + public final void rule__ComponentDeclaration__Group_6_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10526:1: ( ( ( rule__ComponentDeclaration__LocalPortsAssignment_6_2_1 ) ) ) + // InternalFiacre.g:10527:1: ( ( rule__ComponentDeclaration__LocalPortsAssignment_6_2_1 ) ) + { + // InternalFiacre.g:10527:1: ( ( rule__ComponentDeclaration__LocalPortsAssignment_6_2_1 ) ) + // InternalFiacre.g:10528:2: ( rule__ComponentDeclaration__LocalPortsAssignment_6_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getLocalPortsAssignment_6_2_1()); + } + // InternalFiacre.g:10529:2: ( rule__ComponentDeclaration__LocalPortsAssignment_6_2_1 ) + // InternalFiacre.g:10529:3: rule__ComponentDeclaration__LocalPortsAssignment_6_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__LocalPortsAssignment_6_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getLocalPortsAssignment_6_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_6_2__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_7__0" + // InternalFiacre.g:10538:1: rule__ComponentDeclaration__Group_7__0 : rule__ComponentDeclaration__Group_7__0__Impl rule__ComponentDeclaration__Group_7__1 ; + public final void rule__ComponentDeclaration__Group_7__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10542:1: ( rule__ComponentDeclaration__Group_7__0__Impl rule__ComponentDeclaration__Group_7__1 ) + // InternalFiacre.g:10543:2: rule__ComponentDeclaration__Group_7__0__Impl rule__ComponentDeclaration__Group_7__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ComponentDeclaration__Group_7__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_7__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_7__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_7__0__Impl" + // InternalFiacre.g:10550:1: rule__ComponentDeclaration__Group_7__0__Impl : ( 'priority' ) ; + public final void rule__ComponentDeclaration__Group_7__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10554:1: ( ( 'priority' ) ) + // InternalFiacre.g:10555:1: ( 'priority' ) + { + // InternalFiacre.g:10555:1: ( 'priority' ) + // InternalFiacre.g:10556:2: 'priority' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPriorityKeyword_7_0()); + } + match(input,45,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPriorityKeyword_7_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_7__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_7__1" + // InternalFiacre.g:10565:1: rule__ComponentDeclaration__Group_7__1 : rule__ComponentDeclaration__Group_7__1__Impl rule__ComponentDeclaration__Group_7__2 ; + public final void rule__ComponentDeclaration__Group_7__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10569:1: ( rule__ComponentDeclaration__Group_7__1__Impl rule__ComponentDeclaration__Group_7__2 ) + // InternalFiacre.g:10570:2: rule__ComponentDeclaration__Group_7__1__Impl rule__ComponentDeclaration__Group_7__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__ComponentDeclaration__Group_7__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_7__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_7__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_7__1__Impl" + // InternalFiacre.g:10577:1: rule__ComponentDeclaration__Group_7__1__Impl : ( ( rule__ComponentDeclaration__PrioritiesAssignment_7_1 ) ) ; + public final void rule__ComponentDeclaration__Group_7__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10581:1: ( ( ( rule__ComponentDeclaration__PrioritiesAssignment_7_1 ) ) ) + // InternalFiacre.g:10582:1: ( ( rule__ComponentDeclaration__PrioritiesAssignment_7_1 ) ) + { + // InternalFiacre.g:10582:1: ( ( rule__ComponentDeclaration__PrioritiesAssignment_7_1 ) ) + // InternalFiacre.g:10583:2: ( rule__ComponentDeclaration__PrioritiesAssignment_7_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPrioritiesAssignment_7_1()); + } + // InternalFiacre.g:10584:2: ( rule__ComponentDeclaration__PrioritiesAssignment_7_1 ) + // InternalFiacre.g:10584:3: rule__ComponentDeclaration__PrioritiesAssignment_7_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__PrioritiesAssignment_7_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPrioritiesAssignment_7_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_7__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_7__2" + // InternalFiacre.g:10592:1: rule__ComponentDeclaration__Group_7__2 : rule__ComponentDeclaration__Group_7__2__Impl ; + public final void rule__ComponentDeclaration__Group_7__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10596:1: ( rule__ComponentDeclaration__Group_7__2__Impl ) + // InternalFiacre.g:10597:2: rule__ComponentDeclaration__Group_7__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_7__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_7__2" + + + // $ANTLR start "rule__ComponentDeclaration__Group_7__2__Impl" + // InternalFiacre.g:10603:1: rule__ComponentDeclaration__Group_7__2__Impl : ( ( rule__ComponentDeclaration__Group_7_2__0 )* ) ; + public final void rule__ComponentDeclaration__Group_7__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10607:1: ( ( ( rule__ComponentDeclaration__Group_7_2__0 )* ) ) + // InternalFiacre.g:10608:1: ( ( rule__ComponentDeclaration__Group_7_2__0 )* ) + { + // InternalFiacre.g:10608:1: ( ( rule__ComponentDeclaration__Group_7_2__0 )* ) + // InternalFiacre.g:10609:2: ( rule__ComponentDeclaration__Group_7_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getGroup_7_2()); + } + // InternalFiacre.g:10610:2: ( rule__ComponentDeclaration__Group_7_2__0 )* + loop106: + do { + int alt106=2; + int LA106_0 = input.LA(1); + + if ( (LA106_0==24) ) { + alt106=1; + } + + + switch (alt106) { + case 1 : + // InternalFiacre.g:10610:3: rule__ComponentDeclaration__Group_7_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ComponentDeclaration__Group_7_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop106; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getGroup_7_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_7__2__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_7_2__0" + // InternalFiacre.g:10619:1: rule__ComponentDeclaration__Group_7_2__0 : rule__ComponentDeclaration__Group_7_2__0__Impl rule__ComponentDeclaration__Group_7_2__1 ; + public final void rule__ComponentDeclaration__Group_7_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10623:1: ( rule__ComponentDeclaration__Group_7_2__0__Impl rule__ComponentDeclaration__Group_7_2__1 ) + // InternalFiacre.g:10624:2: rule__ComponentDeclaration__Group_7_2__0__Impl rule__ComponentDeclaration__Group_7_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ComponentDeclaration__Group_7_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_7_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_7_2__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_7_2__0__Impl" + // InternalFiacre.g:10631:1: rule__ComponentDeclaration__Group_7_2__0__Impl : ( ',' ) ; + public final void rule__ComponentDeclaration__Group_7_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10635:1: ( ( ',' ) ) + // InternalFiacre.g:10636:1: ( ',' ) + { + // InternalFiacre.g:10636:1: ( ',' ) + // InternalFiacre.g:10637:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_7_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getCommaKeyword_7_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_7_2__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_7_2__1" + // InternalFiacre.g:10646:1: rule__ComponentDeclaration__Group_7_2__1 : rule__ComponentDeclaration__Group_7_2__1__Impl ; + public final void rule__ComponentDeclaration__Group_7_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10650:1: ( rule__ComponentDeclaration__Group_7_2__1__Impl ) + // InternalFiacre.g:10651:2: rule__ComponentDeclaration__Group_7_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_7_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_7_2__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_7_2__1__Impl" + // InternalFiacre.g:10657:1: rule__ComponentDeclaration__Group_7_2__1__Impl : ( ( rule__ComponentDeclaration__PrioritiesAssignment_7_2_1 ) ) ; + public final void rule__ComponentDeclaration__Group_7_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10661:1: ( ( ( rule__ComponentDeclaration__PrioritiesAssignment_7_2_1 ) ) ) + // InternalFiacre.g:10662:1: ( ( rule__ComponentDeclaration__PrioritiesAssignment_7_2_1 ) ) + { + // InternalFiacre.g:10662:1: ( ( rule__ComponentDeclaration__PrioritiesAssignment_7_2_1 ) ) + // InternalFiacre.g:10663:2: ( rule__ComponentDeclaration__PrioritiesAssignment_7_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPrioritiesAssignment_7_2_1()); + } + // InternalFiacre.g:10664:2: ( rule__ComponentDeclaration__PrioritiesAssignment_7_2_1 ) + // InternalFiacre.g:10664:3: rule__ComponentDeclaration__PrioritiesAssignment_7_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__PrioritiesAssignment_7_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPrioritiesAssignment_7_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_7_2__1__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_8__0" + // InternalFiacre.g:10673:1: rule__ComponentDeclaration__Group_8__0 : rule__ComponentDeclaration__Group_8__0__Impl rule__ComponentDeclaration__Group_8__1 ; + public final void rule__ComponentDeclaration__Group_8__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10677:1: ( rule__ComponentDeclaration__Group_8__0__Impl rule__ComponentDeclaration__Group_8__1 ) + // InternalFiacre.g:10678:2: rule__ComponentDeclaration__Group_8__0__Impl rule__ComponentDeclaration__Group_8__1 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__ComponentDeclaration__Group_8__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_8__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_8__0" + + + // $ANTLR start "rule__ComponentDeclaration__Group_8__0__Impl" + // InternalFiacre.g:10685:1: rule__ComponentDeclaration__Group_8__0__Impl : ( 'init' ) ; + public final void rule__ComponentDeclaration__Group_8__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10689:1: ( ( 'init' ) ) + // InternalFiacre.g:10690:1: ( 'init' ) + { + // InternalFiacre.g:10690:1: ( 'init' ) + // InternalFiacre.g:10691:2: 'init' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getInitKeyword_8_0()); + } + match(input,46,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getInitKeyword_8_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_8__0__Impl" + + + // $ANTLR start "rule__ComponentDeclaration__Group_8__1" + // InternalFiacre.g:10700:1: rule__ComponentDeclaration__Group_8__1 : rule__ComponentDeclaration__Group_8__1__Impl ; + public final void rule__ComponentDeclaration__Group_8__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10704:1: ( rule__ComponentDeclaration__Group_8__1__Impl ) + // InternalFiacre.g:10705:2: rule__ComponentDeclaration__Group_8__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__Group_8__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_8__1" + + + // $ANTLR start "rule__ComponentDeclaration__Group_8__1__Impl" + // InternalFiacre.g:10711:1: rule__ComponentDeclaration__Group_8__1__Impl : ( ( rule__ComponentDeclaration__PreludeAssignment_8_1 ) ) ; + public final void rule__ComponentDeclaration__Group_8__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10715:1: ( ( ( rule__ComponentDeclaration__PreludeAssignment_8_1 ) ) ) + // InternalFiacre.g:10716:1: ( ( rule__ComponentDeclaration__PreludeAssignment_8_1 ) ) + { + // InternalFiacre.g:10716:1: ( ( rule__ComponentDeclaration__PreludeAssignment_8_1 ) ) + // InternalFiacre.g:10717:2: ( rule__ComponentDeclaration__PreludeAssignment_8_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPreludeAssignment_8_1()); + } + // InternalFiacre.g:10718:2: ( rule__ComponentDeclaration__PreludeAssignment_8_1 ) + // InternalFiacre.g:10718:3: rule__ComponentDeclaration__PreludeAssignment_8_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentDeclaration__PreludeAssignment_8_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPreludeAssignment_8_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__Group_8__1__Impl" + + + // $ANTLR start "rule__PortsDeclaration__Group__0" + // InternalFiacre.g:10727:1: rule__PortsDeclaration__Group__0 : rule__PortsDeclaration__Group__0__Impl rule__PortsDeclaration__Group__1 ; + public final void rule__PortsDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10731:1: ( rule__PortsDeclaration__Group__0__Impl rule__PortsDeclaration__Group__1 ) + // InternalFiacre.g:10732:2: rule__PortsDeclaration__Group__0__Impl rule__PortsDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_38); + rule__PortsDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PortsDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group__0" + + + // $ANTLR start "rule__PortsDeclaration__Group__0__Impl" + // InternalFiacre.g:10739:1: rule__PortsDeclaration__Group__0__Impl : ( ( rule__PortsDeclaration__PortsAssignment_0 ) ) ; + public final void rule__PortsDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10743:1: ( ( ( rule__PortsDeclaration__PortsAssignment_0 ) ) ) + // InternalFiacre.g:10744:1: ( ( rule__PortsDeclaration__PortsAssignment_0 ) ) + { + // InternalFiacre.g:10744:1: ( ( rule__PortsDeclaration__PortsAssignment_0 ) ) + // InternalFiacre.g:10745:2: ( rule__PortsDeclaration__PortsAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationAccess().getPortsAssignment_0()); + } + // InternalFiacre.g:10746:2: ( rule__PortsDeclaration__PortsAssignment_0 ) + // InternalFiacre.g:10746:3: rule__PortsDeclaration__PortsAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortsDeclaration__PortsAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationAccess().getPortsAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__PortsDeclaration__Group__1" + // InternalFiacre.g:10754:1: rule__PortsDeclaration__Group__1 : rule__PortsDeclaration__Group__1__Impl rule__PortsDeclaration__Group__2 ; + public final void rule__PortsDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10758:1: ( rule__PortsDeclaration__Group__1__Impl rule__PortsDeclaration__Group__2 ) + // InternalFiacre.g:10759:2: rule__PortsDeclaration__Group__1__Impl rule__PortsDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_38); + rule__PortsDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PortsDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group__1" + + + // $ANTLR start "rule__PortsDeclaration__Group__1__Impl" + // InternalFiacre.g:10766:1: rule__PortsDeclaration__Group__1__Impl : ( ( rule__PortsDeclaration__Group_1__0 )* ) ; + public final void rule__PortsDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10770:1: ( ( ( rule__PortsDeclaration__Group_1__0 )* ) ) + // InternalFiacre.g:10771:1: ( ( rule__PortsDeclaration__Group_1__0 )* ) + { + // InternalFiacre.g:10771:1: ( ( rule__PortsDeclaration__Group_1__0 )* ) + // InternalFiacre.g:10772:2: ( rule__PortsDeclaration__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationAccess().getGroup_1()); + } + // InternalFiacre.g:10773:2: ( rule__PortsDeclaration__Group_1__0 )* + loop107: + do { + int alt107=2; + int LA107_0 = input.LA(1); + + if ( (LA107_0==24) ) { + alt107=1; + } + + + switch (alt107) { + case 1 : + // InternalFiacre.g:10773:3: rule__PortsDeclaration__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__PortsDeclaration__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop107; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__PortsDeclaration__Group__2" + // InternalFiacre.g:10781:1: rule__PortsDeclaration__Group__2 : rule__PortsDeclaration__Group__2__Impl rule__PortsDeclaration__Group__3 ; + public final void rule__PortsDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10785:1: ( rule__PortsDeclaration__Group__2__Impl rule__PortsDeclaration__Group__3 ) + // InternalFiacre.g:10786:2: rule__PortsDeclaration__Group__2__Impl rule__PortsDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_22); + rule__PortsDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PortsDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group__2" + + + // $ANTLR start "rule__PortsDeclaration__Group__2__Impl" + // InternalFiacre.g:10793:1: rule__PortsDeclaration__Group__2__Impl : ( ':' ) ; + public final void rule__PortsDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10797:1: ( ( ':' ) ) + // InternalFiacre.g:10798:1: ( ':' ) + { + // InternalFiacre.g:10798:1: ( ':' ) + // InternalFiacre.g:10799:2: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationAccess().getColonKeyword_2()); + } + match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationAccess().getColonKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__PortsDeclaration__Group__3" + // InternalFiacre.g:10808:1: rule__PortsDeclaration__Group__3 : rule__PortsDeclaration__Group__3__Impl ; + public final void rule__PortsDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10812:1: ( rule__PortsDeclaration__Group__3__Impl ) + // InternalFiacre.g:10813:2: rule__PortsDeclaration__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortsDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group__3" + + + // $ANTLR start "rule__PortsDeclaration__Group__3__Impl" + // InternalFiacre.g:10819:1: rule__PortsDeclaration__Group__3__Impl : ( ( rule__PortsDeclaration__TypeAssignment_3 ) ) ; + public final void rule__PortsDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10823:1: ( ( ( rule__PortsDeclaration__TypeAssignment_3 ) ) ) + // InternalFiacre.g:10824:1: ( ( rule__PortsDeclaration__TypeAssignment_3 ) ) + { + // InternalFiacre.g:10824:1: ( ( rule__PortsDeclaration__TypeAssignment_3 ) ) + // InternalFiacre.g:10825:2: ( rule__PortsDeclaration__TypeAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationAccess().getTypeAssignment_3()); + } + // InternalFiacre.g:10826:2: ( rule__PortsDeclaration__TypeAssignment_3 ) + // InternalFiacre.g:10826:3: rule__PortsDeclaration__TypeAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortsDeclaration__TypeAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationAccess().getTypeAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__PortsDeclaration__Group_1__0" + // InternalFiacre.g:10835:1: rule__PortsDeclaration__Group_1__0 : rule__PortsDeclaration__Group_1__0__Impl rule__PortsDeclaration__Group_1__1 ; + public final void rule__PortsDeclaration__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10839:1: ( rule__PortsDeclaration__Group_1__0__Impl rule__PortsDeclaration__Group_1__1 ) + // InternalFiacre.g:10840:2: rule__PortsDeclaration__Group_1__0__Impl rule__PortsDeclaration__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__PortsDeclaration__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PortsDeclaration__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group_1__0" + + + // $ANTLR start "rule__PortsDeclaration__Group_1__0__Impl" + // InternalFiacre.g:10847:1: rule__PortsDeclaration__Group_1__0__Impl : ( ',' ) ; + public final void rule__PortsDeclaration__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10851:1: ( ( ',' ) ) + // InternalFiacre.g:10852:1: ( ',' ) + { + // InternalFiacre.g:10852:1: ( ',' ) + // InternalFiacre.g:10853:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationAccess().getCommaKeyword_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationAccess().getCommaKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group_1__0__Impl" + + + // $ANTLR start "rule__PortsDeclaration__Group_1__1" + // InternalFiacre.g:10862:1: rule__PortsDeclaration__Group_1__1 : rule__PortsDeclaration__Group_1__1__Impl ; + public final void rule__PortsDeclaration__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10866:1: ( rule__PortsDeclaration__Group_1__1__Impl ) + // InternalFiacre.g:10867:2: rule__PortsDeclaration__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortsDeclaration__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__PortsDeclaration__Group_1__1" + + + // $ANTLR start "rule__PortsDeclaration__Group_1__1__Impl" + // InternalFiacre.g:10873:1: rule__PortsDeclaration__Group_1__1__Impl : ( ( rule__PortsDeclaration__PortsAssignment_1_1 ) ) ; + public final void rule__PortsDeclaration__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10877:1: ( ( ( rule__PortsDeclaration__PortsAssignment_1_1 ) ) ) + // InternalFiacre.g:10878:1: ( ( rule__PortsDeclaration__PortsAssignment_1_1 ) ) + { + // InternalFiacre.g:10878:1: ( ( rule__PortsDeclaration__PortsAssignment_1_1 ) ) + // InternalFiacre.g:10879:2: ( rule__PortsDeclaration__PortsAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationAccess().getPortsAssignment_1_1()); + } + // InternalFiacre.g:10880:2: ( rule__PortsDeclaration__PortsAssignment_1_1 ) + // InternalFiacre.g:10880:3: rule__PortsDeclaration__PortsAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortsDeclaration__PortsAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationAccess().getPortsAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__Group_1__1__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group__0" + // InternalFiacre.g:10889:1: rule__LocalPortsDeclaration__Group__0 : rule__LocalPortsDeclaration__Group__0__Impl rule__LocalPortsDeclaration__Group__1 ; + public final void rule__LocalPortsDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10893:1: ( rule__LocalPortsDeclaration__Group__0__Impl rule__LocalPortsDeclaration__Group__1 ) + // InternalFiacre.g:10894:2: rule__LocalPortsDeclaration__Group__0__Impl rule__LocalPortsDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_38); + rule__LocalPortsDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group__0" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group__0__Impl" + // InternalFiacre.g:10901:1: rule__LocalPortsDeclaration__Group__0__Impl : ( ( rule__LocalPortsDeclaration__PortsAssignment_0 ) ) ; + public final void rule__LocalPortsDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10905:1: ( ( ( rule__LocalPortsDeclaration__PortsAssignment_0 ) ) ) + // InternalFiacre.g:10906:1: ( ( rule__LocalPortsDeclaration__PortsAssignment_0 ) ) + { + // InternalFiacre.g:10906:1: ( ( rule__LocalPortsDeclaration__PortsAssignment_0 ) ) + // InternalFiacre.g:10907:2: ( rule__LocalPortsDeclaration__PortsAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getPortsAssignment_0()); + } + // InternalFiacre.g:10908:2: ( rule__LocalPortsDeclaration__PortsAssignment_0 ) + // InternalFiacre.g:10908:3: rule__LocalPortsDeclaration__PortsAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__PortsAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getPortsAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group__1" + // InternalFiacre.g:10916:1: rule__LocalPortsDeclaration__Group__1 : rule__LocalPortsDeclaration__Group__1__Impl rule__LocalPortsDeclaration__Group__2 ; + public final void rule__LocalPortsDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10920:1: ( rule__LocalPortsDeclaration__Group__1__Impl rule__LocalPortsDeclaration__Group__2 ) + // InternalFiacre.g:10921:2: rule__LocalPortsDeclaration__Group__1__Impl rule__LocalPortsDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_38); + rule__LocalPortsDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group__1" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group__1__Impl" + // InternalFiacre.g:10928:1: rule__LocalPortsDeclaration__Group__1__Impl : ( ( rule__LocalPortsDeclaration__Group_1__0 )* ) ; + public final void rule__LocalPortsDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10932:1: ( ( ( rule__LocalPortsDeclaration__Group_1__0 )* ) ) + // InternalFiacre.g:10933:1: ( ( rule__LocalPortsDeclaration__Group_1__0 )* ) + { + // InternalFiacre.g:10933:1: ( ( rule__LocalPortsDeclaration__Group_1__0 )* ) + // InternalFiacre.g:10934:2: ( rule__LocalPortsDeclaration__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getGroup_1()); + } + // InternalFiacre.g:10935:2: ( rule__LocalPortsDeclaration__Group_1__0 )* + loop108: + do { + int alt108=2; + int LA108_0 = input.LA(1); + + if ( (LA108_0==24) ) { + alt108=1; + } + + + switch (alt108) { + case 1 : + // InternalFiacre.g:10935:3: rule__LocalPortsDeclaration__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__LocalPortsDeclaration__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop108; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group__2" + // InternalFiacre.g:10943:1: rule__LocalPortsDeclaration__Group__2 : rule__LocalPortsDeclaration__Group__2__Impl rule__LocalPortsDeclaration__Group__3 ; + public final void rule__LocalPortsDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10947:1: ( rule__LocalPortsDeclaration__Group__2__Impl rule__LocalPortsDeclaration__Group__3 ) + // InternalFiacre.g:10948:2: rule__LocalPortsDeclaration__Group__2__Impl rule__LocalPortsDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_22); + rule__LocalPortsDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group__2" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group__2__Impl" + // InternalFiacre.g:10955:1: rule__LocalPortsDeclaration__Group__2__Impl : ( ':' ) ; + public final void rule__LocalPortsDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10959:1: ( ( ':' ) ) + // InternalFiacre.g:10960:1: ( ':' ) + { + // InternalFiacre.g:10960:1: ( ':' ) + // InternalFiacre.g:10961:2: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getColonKeyword_2()); + } + match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getColonKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group__3" + // InternalFiacre.g:10970:1: rule__LocalPortsDeclaration__Group__3 : rule__LocalPortsDeclaration__Group__3__Impl rule__LocalPortsDeclaration__Group__4 ; + public final void rule__LocalPortsDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10974:1: ( rule__LocalPortsDeclaration__Group__3__Impl rule__LocalPortsDeclaration__Group__4 ) + // InternalFiacre.g:10975:2: rule__LocalPortsDeclaration__Group__3__Impl rule__LocalPortsDeclaration__Group__4 + { + pushFollow(FollowSets000.FOLLOW_46); + rule__LocalPortsDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group__3" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group__3__Impl" + // InternalFiacre.g:10982:1: rule__LocalPortsDeclaration__Group__3__Impl : ( ( rule__LocalPortsDeclaration__TypeAssignment_3 ) ) ; + public final void rule__LocalPortsDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:10986:1: ( ( ( rule__LocalPortsDeclaration__TypeAssignment_3 ) ) ) + // InternalFiacre.g:10987:1: ( ( rule__LocalPortsDeclaration__TypeAssignment_3 ) ) + { + // InternalFiacre.g:10987:1: ( ( rule__LocalPortsDeclaration__TypeAssignment_3 ) ) + // InternalFiacre.g:10988:2: ( rule__LocalPortsDeclaration__TypeAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getTypeAssignment_3()); + } + // InternalFiacre.g:10989:2: ( rule__LocalPortsDeclaration__TypeAssignment_3 ) + // InternalFiacre.g:10989:3: rule__LocalPortsDeclaration__TypeAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__TypeAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getTypeAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group__4" + // InternalFiacre.g:10997:1: rule__LocalPortsDeclaration__Group__4 : rule__LocalPortsDeclaration__Group__4__Impl ; + public final void rule__LocalPortsDeclaration__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11001:1: ( rule__LocalPortsDeclaration__Group__4__Impl ) + // InternalFiacre.g:11002:2: rule__LocalPortsDeclaration__Group__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group__4" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group__4__Impl" + // InternalFiacre.g:11008:1: rule__LocalPortsDeclaration__Group__4__Impl : ( ( rule__LocalPortsDeclaration__Group_4__0 )? ) ; + public final void rule__LocalPortsDeclaration__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11012:1: ( ( ( rule__LocalPortsDeclaration__Group_4__0 )? ) ) + // InternalFiacre.g:11013:1: ( ( rule__LocalPortsDeclaration__Group_4__0 )? ) + { + // InternalFiacre.g:11013:1: ( ( rule__LocalPortsDeclaration__Group_4__0 )? ) + // InternalFiacre.g:11014:2: ( rule__LocalPortsDeclaration__Group_4__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getGroup_4()); + } + // InternalFiacre.g:11015:2: ( rule__LocalPortsDeclaration__Group_4__0 )? + int alt109=2; + int LA109_0 = input.LA(1); + + if ( (LA109_0==49) ) { + alt109=1; + } + switch (alt109) { + case 1 : + // InternalFiacre.g:11015:3: rule__LocalPortsDeclaration__Group_4__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getGroup_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group__4__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_1__0" + // InternalFiacre.g:11024:1: rule__LocalPortsDeclaration__Group_1__0 : rule__LocalPortsDeclaration__Group_1__0__Impl rule__LocalPortsDeclaration__Group_1__1 ; + public final void rule__LocalPortsDeclaration__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11028:1: ( rule__LocalPortsDeclaration__Group_1__0__Impl rule__LocalPortsDeclaration__Group_1__1 ) + // InternalFiacre.g:11029:2: rule__LocalPortsDeclaration__Group_1__0__Impl rule__LocalPortsDeclaration__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__LocalPortsDeclaration__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_1__0" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_1__0__Impl" + // InternalFiacre.g:11036:1: rule__LocalPortsDeclaration__Group_1__0__Impl : ( ',' ) ; + public final void rule__LocalPortsDeclaration__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11040:1: ( ( ',' ) ) + // InternalFiacre.g:11041:1: ( ',' ) + { + // InternalFiacre.g:11041:1: ( ',' ) + // InternalFiacre.g:11042:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_1__0__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_1__1" + // InternalFiacre.g:11051:1: rule__LocalPortsDeclaration__Group_1__1 : rule__LocalPortsDeclaration__Group_1__1__Impl ; + public final void rule__LocalPortsDeclaration__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11055:1: ( rule__LocalPortsDeclaration__Group_1__1__Impl ) + // InternalFiacre.g:11056:2: rule__LocalPortsDeclaration__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__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__LocalPortsDeclaration__Group_1__1" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_1__1__Impl" + // InternalFiacre.g:11062:1: rule__LocalPortsDeclaration__Group_1__1__Impl : ( ( rule__LocalPortsDeclaration__PortsAssignment_1_1 ) ) ; + public final void rule__LocalPortsDeclaration__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11066:1: ( ( ( rule__LocalPortsDeclaration__PortsAssignment_1_1 ) ) ) + // InternalFiacre.g:11067:1: ( ( rule__LocalPortsDeclaration__PortsAssignment_1_1 ) ) + { + // InternalFiacre.g:11067:1: ( ( rule__LocalPortsDeclaration__PortsAssignment_1_1 ) ) + // InternalFiacre.g:11068:2: ( rule__LocalPortsDeclaration__PortsAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getPortsAssignment_1_1()); + } + // InternalFiacre.g:11069:2: ( rule__LocalPortsDeclaration__PortsAssignment_1_1 ) + // InternalFiacre.g:11069:3: rule__LocalPortsDeclaration__PortsAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__PortsAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getPortsAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_1__1__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_4__0" + // InternalFiacre.g:11078:1: rule__LocalPortsDeclaration__Group_4__0 : rule__LocalPortsDeclaration__Group_4__0__Impl rule__LocalPortsDeclaration__Group_4__1 ; + public final void rule__LocalPortsDeclaration__Group_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11082:1: ( rule__LocalPortsDeclaration__Group_4__0__Impl rule__LocalPortsDeclaration__Group_4__1 ) + // InternalFiacre.g:11083:2: rule__LocalPortsDeclaration__Group_4__0__Impl rule__LocalPortsDeclaration__Group_4__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__LocalPortsDeclaration__Group_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_4__0" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_4__0__Impl" + // InternalFiacre.g:11090:1: rule__LocalPortsDeclaration__Group_4__0__Impl : ( 'in' ) ; + public final void rule__LocalPortsDeclaration__Group_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11094:1: ( ( 'in' ) ) + // InternalFiacre.g:11095:1: ( 'in' ) + { + // InternalFiacre.g:11095:1: ( 'in' ) + // InternalFiacre.g:11096:2: 'in' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getInKeyword_4_0()); + } + match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getInKeyword_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_4__0__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_4__1" + // InternalFiacre.g:11105:1: rule__LocalPortsDeclaration__Group_4__1 : rule__LocalPortsDeclaration__Group_4__1__Impl rule__LocalPortsDeclaration__Group_4__2 ; + public final void rule__LocalPortsDeclaration__Group_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11109:1: ( rule__LocalPortsDeclaration__Group_4__1__Impl rule__LocalPortsDeclaration__Group_4__2 ) + // InternalFiacre.g:11110:2: rule__LocalPortsDeclaration__Group_4__1__Impl rule__LocalPortsDeclaration__Group_4__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__LocalPortsDeclaration__Group_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group_4__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_4__1" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_4__1__Impl" + // InternalFiacre.g:11117:1: rule__LocalPortsDeclaration__Group_4__1__Impl : ( ( rule__LocalPortsDeclaration__LeftAssignment_4_1 ) ) ; + public final void rule__LocalPortsDeclaration__Group_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11121:1: ( ( ( rule__LocalPortsDeclaration__LeftAssignment_4_1 ) ) ) + // InternalFiacre.g:11122:1: ( ( rule__LocalPortsDeclaration__LeftAssignment_4_1 ) ) + { + // InternalFiacre.g:11122:1: ( ( rule__LocalPortsDeclaration__LeftAssignment_4_1 ) ) + // InternalFiacre.g:11123:2: ( rule__LocalPortsDeclaration__LeftAssignment_4_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getLeftAssignment_4_1()); + } + // InternalFiacre.g:11124:2: ( rule__LocalPortsDeclaration__LeftAssignment_4_1 ) + // InternalFiacre.g:11124:3: rule__LocalPortsDeclaration__LeftAssignment_4_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__LeftAssignment_4_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getLeftAssignment_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_4__1__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_4__2" + // InternalFiacre.g:11132:1: rule__LocalPortsDeclaration__Group_4__2 : rule__LocalPortsDeclaration__Group_4__2__Impl rule__LocalPortsDeclaration__Group_4__3 ; + public final void rule__LocalPortsDeclaration__Group_4__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11136:1: ( rule__LocalPortsDeclaration__Group_4__2__Impl rule__LocalPortsDeclaration__Group_4__3 ) + // InternalFiacre.g:11137:2: rule__LocalPortsDeclaration__Group_4__2__Impl rule__LocalPortsDeclaration__Group_4__3 + { + pushFollow(FollowSets000.FOLLOW_48); + rule__LocalPortsDeclaration__Group_4__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group_4__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_4__2" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_4__2__Impl" + // InternalFiacre.g:11144:1: rule__LocalPortsDeclaration__Group_4__2__Impl : ( ',' ) ; + public final void rule__LocalPortsDeclaration__Group_4__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11148:1: ( ( ',' ) ) + // InternalFiacre.g:11149:1: ( ',' ) + { + // InternalFiacre.g:11149:1: ( ',' ) + // InternalFiacre.g:11150:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_4_2()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_4_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_4__2__Impl" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_4__3" + // InternalFiacre.g:11159:1: rule__LocalPortsDeclaration__Group_4__3 : rule__LocalPortsDeclaration__Group_4__3__Impl ; + public final void rule__LocalPortsDeclaration__Group_4__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11163:1: ( rule__LocalPortsDeclaration__Group_4__3__Impl ) + // InternalFiacre.g:11164:2: rule__LocalPortsDeclaration__Group_4__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__Group_4__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_4__3" + + + // $ANTLR start "rule__LocalPortsDeclaration__Group_4__3__Impl" + // InternalFiacre.g:11170:1: rule__LocalPortsDeclaration__Group_4__3__Impl : ( ( rule__LocalPortsDeclaration__RightAssignment_4_3 ) ) ; + public final void rule__LocalPortsDeclaration__Group_4__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11174:1: ( ( ( rule__LocalPortsDeclaration__RightAssignment_4_3 ) ) ) + // InternalFiacre.g:11175:1: ( ( rule__LocalPortsDeclaration__RightAssignment_4_3 ) ) + { + // InternalFiacre.g:11175:1: ( ( rule__LocalPortsDeclaration__RightAssignment_4_3 ) ) + // InternalFiacre.g:11176:2: ( rule__LocalPortsDeclaration__RightAssignment_4_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getRightAssignment_4_3()); + } + // InternalFiacre.g:11177:2: ( rule__LocalPortsDeclaration__RightAssignment_4_3 ) + // InternalFiacre.g:11177:3: rule__LocalPortsDeclaration__RightAssignment_4_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LocalPortsDeclaration__RightAssignment_4_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getRightAssignment_4_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__Group_4__3__Impl" + + + // $ANTLR start "rule__ParametersDeclaration__Group__0" + // InternalFiacre.g:11186:1: rule__ParametersDeclaration__Group__0 : rule__ParametersDeclaration__Group__0__Impl rule__ParametersDeclaration__Group__1 ; + public final void rule__ParametersDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11190:1: ( rule__ParametersDeclaration__Group__0__Impl rule__ParametersDeclaration__Group__1 ) + // InternalFiacre.g:11191:2: rule__ParametersDeclaration__Group__0__Impl rule__ParametersDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_38); + rule__ParametersDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__0" + + + // $ANTLR start "rule__ParametersDeclaration__Group__0__Impl" + // InternalFiacre.g:11198:1: rule__ParametersDeclaration__Group__0__Impl : ( ( rule__ParametersDeclaration__ParametersAssignment_0 ) ) ; + public final void rule__ParametersDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11202:1: ( ( ( rule__ParametersDeclaration__ParametersAssignment_0 ) ) ) + // InternalFiacre.g:11203:1: ( ( rule__ParametersDeclaration__ParametersAssignment_0 ) ) + { + // InternalFiacre.g:11203:1: ( ( rule__ParametersDeclaration__ParametersAssignment_0 ) ) + // InternalFiacre.g:11204:2: ( rule__ParametersDeclaration__ParametersAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getParametersAssignment_0()); + } + // InternalFiacre.g:11205:2: ( rule__ParametersDeclaration__ParametersAssignment_0 ) + // InternalFiacre.g:11205:3: rule__ParametersDeclaration__ParametersAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__ParametersAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getParametersAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ParametersDeclaration__Group__1" + // InternalFiacre.g:11213:1: rule__ParametersDeclaration__Group__1 : rule__ParametersDeclaration__Group__1__Impl rule__ParametersDeclaration__Group__2 ; + public final void rule__ParametersDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11217:1: ( rule__ParametersDeclaration__Group__1__Impl rule__ParametersDeclaration__Group__2 ) + // InternalFiacre.g:11218:2: rule__ParametersDeclaration__Group__1__Impl rule__ParametersDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_38); + rule__ParametersDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__1" + + + // $ANTLR start "rule__ParametersDeclaration__Group__1__Impl" + // InternalFiacre.g:11225:1: rule__ParametersDeclaration__Group__1__Impl : ( ( rule__ParametersDeclaration__Group_1__0 )* ) ; + public final void rule__ParametersDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11229:1: ( ( ( rule__ParametersDeclaration__Group_1__0 )* ) ) + // InternalFiacre.g:11230:1: ( ( rule__ParametersDeclaration__Group_1__0 )* ) + { + // InternalFiacre.g:11230:1: ( ( rule__ParametersDeclaration__Group_1__0 )* ) + // InternalFiacre.g:11231:2: ( rule__ParametersDeclaration__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getGroup_1()); + } + // InternalFiacre.g:11232:2: ( rule__ParametersDeclaration__Group_1__0 )* + loop110: + do { + int alt110=2; + int LA110_0 = input.LA(1); + + if ( (LA110_0==24) ) { + alt110=1; + } + + + switch (alt110) { + case 1 : + // InternalFiacre.g:11232:3: rule__ParametersDeclaration__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ParametersDeclaration__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop110; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__ParametersDeclaration__Group__2" + // InternalFiacre.g:11240:1: rule__ParametersDeclaration__Group__2 : rule__ParametersDeclaration__Group__2__Impl rule__ParametersDeclaration__Group__3 ; + public final void rule__ParametersDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11244:1: ( rule__ParametersDeclaration__Group__2__Impl rule__ParametersDeclaration__Group__3 ) + // InternalFiacre.g:11245:2: rule__ParametersDeclaration__Group__2__Impl rule__ParametersDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_49); + rule__ParametersDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__2" + + + // $ANTLR start "rule__ParametersDeclaration__Group__2__Impl" + // InternalFiacre.g:11252:1: rule__ParametersDeclaration__Group__2__Impl : ( ':' ) ; + public final void rule__ParametersDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11256:1: ( ( ':' ) ) + // InternalFiacre.g:11257:1: ( ':' ) + { + // InternalFiacre.g:11257:1: ( ':' ) + // InternalFiacre.g:11258:2: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getColonKeyword_2()); + } + match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getColonKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__ParametersDeclaration__Group__3" + // InternalFiacre.g:11267:1: rule__ParametersDeclaration__Group__3 : rule__ParametersDeclaration__Group__3__Impl rule__ParametersDeclaration__Group__4 ; + public final void rule__ParametersDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11271:1: ( rule__ParametersDeclaration__Group__3__Impl rule__ParametersDeclaration__Group__4 ) + // InternalFiacre.g:11272:2: rule__ParametersDeclaration__Group__3__Impl rule__ParametersDeclaration__Group__4 + { + pushFollow(FollowSets000.FOLLOW_49); + rule__ParametersDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__3" + + + // $ANTLR start "rule__ParametersDeclaration__Group__3__Impl" + // InternalFiacre.g:11279:1: rule__ParametersDeclaration__Group__3__Impl : ( ( rule__ParametersDeclaration__ReadAssignment_3 )? ) ; + public final void rule__ParametersDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11283:1: ( ( ( rule__ParametersDeclaration__ReadAssignment_3 )? ) ) + // InternalFiacre.g:11284:1: ( ( rule__ParametersDeclaration__ReadAssignment_3 )? ) + { + // InternalFiacre.g:11284:1: ( ( rule__ParametersDeclaration__ReadAssignment_3 )? ) + // InternalFiacre.g:11285:2: ( rule__ParametersDeclaration__ReadAssignment_3 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getReadAssignment_3()); + } + // InternalFiacre.g:11286:2: ( rule__ParametersDeclaration__ReadAssignment_3 )? + int alt111=2; + int LA111_0 = input.LA(1); + + if ( (LA111_0==138) ) { + alt111=1; + } + switch (alt111) { + case 1 : + // InternalFiacre.g:11286:3: rule__ParametersDeclaration__ReadAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__ReadAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getReadAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__ParametersDeclaration__Group__4" + // InternalFiacre.g:11294:1: rule__ParametersDeclaration__Group__4 : rule__ParametersDeclaration__Group__4__Impl rule__ParametersDeclaration__Group__5 ; + public final void rule__ParametersDeclaration__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11298:1: ( rule__ParametersDeclaration__Group__4__Impl rule__ParametersDeclaration__Group__5 ) + // InternalFiacre.g:11299:2: rule__ParametersDeclaration__Group__4__Impl rule__ParametersDeclaration__Group__5 + { + pushFollow(FollowSets000.FOLLOW_49); + rule__ParametersDeclaration__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__4" + + + // $ANTLR start "rule__ParametersDeclaration__Group__4__Impl" + // InternalFiacre.g:11306:1: rule__ParametersDeclaration__Group__4__Impl : ( ( rule__ParametersDeclaration__WriteAssignment_4 )? ) ; + public final void rule__ParametersDeclaration__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11310:1: ( ( ( rule__ParametersDeclaration__WriteAssignment_4 )? ) ) + // InternalFiacre.g:11311:1: ( ( rule__ParametersDeclaration__WriteAssignment_4 )? ) + { + // InternalFiacre.g:11311:1: ( ( rule__ParametersDeclaration__WriteAssignment_4 )? ) + // InternalFiacre.g:11312:2: ( rule__ParametersDeclaration__WriteAssignment_4 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getWriteAssignment_4()); + } + // InternalFiacre.g:11313:2: ( rule__ParametersDeclaration__WriteAssignment_4 )? + int alt112=2; + int LA112_0 = input.LA(1); + + if ( (LA112_0==139) ) { + alt112=1; + } + switch (alt112) { + case 1 : + // InternalFiacre.g:11313:3: rule__ParametersDeclaration__WriteAssignment_4 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__WriteAssignment_4(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getWriteAssignment_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__4__Impl" + + + // $ANTLR start "rule__ParametersDeclaration__Group__5" + // InternalFiacre.g:11321:1: rule__ParametersDeclaration__Group__5 : rule__ParametersDeclaration__Group__5__Impl ; + public final void rule__ParametersDeclaration__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11325:1: ( rule__ParametersDeclaration__Group__5__Impl ) + // InternalFiacre.g:11326:2: rule__ParametersDeclaration__Group__5__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__5" + + + // $ANTLR start "rule__ParametersDeclaration__Group__5__Impl" + // InternalFiacre.g:11332:1: rule__ParametersDeclaration__Group__5__Impl : ( ( rule__ParametersDeclaration__TypeAssignment_5 ) ) ; + public final void rule__ParametersDeclaration__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11336:1: ( ( ( rule__ParametersDeclaration__TypeAssignment_5 ) ) ) + // InternalFiacre.g:11337:1: ( ( rule__ParametersDeclaration__TypeAssignment_5 ) ) + { + // InternalFiacre.g:11337:1: ( ( rule__ParametersDeclaration__TypeAssignment_5 ) ) + // InternalFiacre.g:11338:2: ( rule__ParametersDeclaration__TypeAssignment_5 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getTypeAssignment_5()); + } + // InternalFiacre.g:11339:2: ( rule__ParametersDeclaration__TypeAssignment_5 ) + // InternalFiacre.g:11339:3: rule__ParametersDeclaration__TypeAssignment_5 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__TypeAssignment_5(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getTypeAssignment_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group__5__Impl" + + + // $ANTLR start "rule__ParametersDeclaration__Group_1__0" + // InternalFiacre.g:11348:1: rule__ParametersDeclaration__Group_1__0 : rule__ParametersDeclaration__Group_1__0__Impl rule__ParametersDeclaration__Group_1__1 ; + public final void rule__ParametersDeclaration__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11352:1: ( rule__ParametersDeclaration__Group_1__0__Impl rule__ParametersDeclaration__Group_1__1 ) + // InternalFiacre.g:11353:2: rule__ParametersDeclaration__Group_1__0__Impl rule__ParametersDeclaration__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_21); + rule__ParametersDeclaration__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group_1__0" + + + // $ANTLR start "rule__ParametersDeclaration__Group_1__0__Impl" + // InternalFiacre.g:11360:1: rule__ParametersDeclaration__Group_1__0__Impl : ( ',' ) ; + public final void rule__ParametersDeclaration__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11364:1: ( ( ',' ) ) + // InternalFiacre.g:11365:1: ( ',' ) + { + // InternalFiacre.g:11365:1: ( ',' ) + // InternalFiacre.g:11366:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getCommaKeyword_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getCommaKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group_1__0__Impl" + + + // $ANTLR start "rule__ParametersDeclaration__Group_1__1" + // InternalFiacre.g:11375:1: rule__ParametersDeclaration__Group_1__1 : rule__ParametersDeclaration__Group_1__1__Impl ; + public final void rule__ParametersDeclaration__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11379:1: ( rule__ParametersDeclaration__Group_1__1__Impl ) + // InternalFiacre.g:11380:2: rule__ParametersDeclaration__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__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__ParametersDeclaration__Group_1__1" + + + // $ANTLR start "rule__ParametersDeclaration__Group_1__1__Impl" + // InternalFiacre.g:11386:1: rule__ParametersDeclaration__Group_1__1__Impl : ( ( rule__ParametersDeclaration__ParametersAssignment_1_1 ) ) ; + public final void rule__ParametersDeclaration__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11390:1: ( ( ( rule__ParametersDeclaration__ParametersAssignment_1_1 ) ) ) + // InternalFiacre.g:11391:1: ( ( rule__ParametersDeclaration__ParametersAssignment_1_1 ) ) + { + // InternalFiacre.g:11391:1: ( ( rule__ParametersDeclaration__ParametersAssignment_1_1 ) ) + // InternalFiacre.g:11392:2: ( rule__ParametersDeclaration__ParametersAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getParametersAssignment_1_1()); + } + // InternalFiacre.g:11393:2: ( rule__ParametersDeclaration__ParametersAssignment_1_1 ) + // InternalFiacre.g:11393:3: rule__ParametersDeclaration__ParametersAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParametersDeclaration__ParametersAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getParametersAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__Group_1__1__Impl" + + + // $ANTLR start "rule__ParameterDeclaration__Group__0" + // InternalFiacre.g:11402:1: rule__ParameterDeclaration__Group__0 : rule__ParameterDeclaration__Group__0__Impl rule__ParameterDeclaration__Group__1 ; + public final void rule__ParameterDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11406:1: ( rule__ParameterDeclaration__Group__0__Impl rule__ParameterDeclaration__Group__1 ) + // InternalFiacre.g:11407:2: rule__ParameterDeclaration__Group__0__Impl rule__ParameterDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_21); + rule__ParameterDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group__0" + + + // $ANTLR start "rule__ParameterDeclaration__Group__0__Impl" + // InternalFiacre.g:11414:1: rule__ParameterDeclaration__Group__0__Impl : ( ( rule__ParameterDeclaration__Group_0__0 )? ) ; + public final void rule__ParameterDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11418:1: ( ( ( rule__ParameterDeclaration__Group_0__0 )? ) ) + // InternalFiacre.g:11419:1: ( ( rule__ParameterDeclaration__Group_0__0 )? ) + { + // InternalFiacre.g:11419:1: ( ( rule__ParameterDeclaration__Group_0__0 )? ) + // InternalFiacre.g:11420:2: ( rule__ParameterDeclaration__Group_0__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getGroup_0()); + } + // InternalFiacre.g:11421:2: ( rule__ParameterDeclaration__Group_0__0 )? + int alt113=2; + int LA113_0 = input.LA(1); + + if ( (LA113_0==99) ) { + alt113=1; + } + switch (alt113) { + case 1 : + // InternalFiacre.g:11421:3: rule__ParameterDeclaration__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getGroup_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ParameterDeclaration__Group__1" + // InternalFiacre.g:11429:1: rule__ParameterDeclaration__Group__1 : rule__ParameterDeclaration__Group__1__Impl ; + public final void rule__ParameterDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11433:1: ( rule__ParameterDeclaration__Group__1__Impl ) + // InternalFiacre.g:11434:2: rule__ParameterDeclaration__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group__1" + + + // $ANTLR start "rule__ParameterDeclaration__Group__1__Impl" + // InternalFiacre.g:11440:1: rule__ParameterDeclaration__Group__1__Impl : ( ( rule__ParameterDeclaration__NameAssignment_1 ) ) ; + public final void rule__ParameterDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11444:1: ( ( ( rule__ParameterDeclaration__NameAssignment_1 ) ) ) + // InternalFiacre.g:11445:1: ( ( rule__ParameterDeclaration__NameAssignment_1 ) ) + { + // InternalFiacre.g:11445:1: ( ( rule__ParameterDeclaration__NameAssignment_1 ) ) + // InternalFiacre.g:11446:2: ( rule__ParameterDeclaration__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getNameAssignment_1()); + } + // InternalFiacre.g:11447:2: ( rule__ParameterDeclaration__NameAssignment_1 ) + // InternalFiacre.g:11447:3: rule__ParameterDeclaration__NameAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__ParameterDeclaration__Group_0__0" + // InternalFiacre.g:11456:1: rule__ParameterDeclaration__Group_0__0 : rule__ParameterDeclaration__Group_0__0__Impl rule__ParameterDeclaration__Group_0__1 ; + public final void rule__ParameterDeclaration__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11460:1: ( rule__ParameterDeclaration__Group_0__0__Impl rule__ParameterDeclaration__Group_0__1 ) + // InternalFiacre.g:11461:2: rule__ParameterDeclaration__Group_0__0__Impl rule__ParameterDeclaration__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_50); + rule__ParameterDeclaration__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group_0__0" + + + // $ANTLR start "rule__ParameterDeclaration__Group_0__0__Impl" + // InternalFiacre.g:11468:1: rule__ParameterDeclaration__Group_0__0__Impl : ( ( rule__ParameterDeclaration__ReferenceAssignment_0_0 ) ) ; + public final void rule__ParameterDeclaration__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11472:1: ( ( ( rule__ParameterDeclaration__ReferenceAssignment_0_0 ) ) ) + // InternalFiacre.g:11473:1: ( ( rule__ParameterDeclaration__ReferenceAssignment_0_0 ) ) + { + // InternalFiacre.g:11473:1: ( ( rule__ParameterDeclaration__ReferenceAssignment_0_0 ) ) + // InternalFiacre.g:11474:2: ( rule__ParameterDeclaration__ReferenceAssignment_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getReferenceAssignment_0_0()); + } + // InternalFiacre.g:11475:2: ( rule__ParameterDeclaration__ReferenceAssignment_0_0 ) + // InternalFiacre.g:11475:3: rule__ParameterDeclaration__ReferenceAssignment_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__ReferenceAssignment_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getReferenceAssignment_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group_0__0__Impl" + + + // $ANTLR start "rule__ParameterDeclaration__Group_0__1" + // InternalFiacre.g:11483:1: rule__ParameterDeclaration__Group_0__1 : rule__ParameterDeclaration__Group_0__1__Impl ; + public final void rule__ParameterDeclaration__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11487:1: ( rule__ParameterDeclaration__Group_0__1__Impl ) + // InternalFiacre.g:11488:2: rule__ParameterDeclaration__Group_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__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__ParameterDeclaration__Group_0__1" + + + // $ANTLR start "rule__ParameterDeclaration__Group_0__1__Impl" + // InternalFiacre.g:11494:1: rule__ParameterDeclaration__Group_0__1__Impl : ( ( rule__ParameterDeclaration__Group_0_1__0 )? ) ; + public final void rule__ParameterDeclaration__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11498:1: ( ( ( rule__ParameterDeclaration__Group_0_1__0 )? ) ) + // InternalFiacre.g:11499:1: ( ( rule__ParameterDeclaration__Group_0_1__0 )? ) + { + // InternalFiacre.g:11499:1: ( ( rule__ParameterDeclaration__Group_0_1__0 )? ) + // InternalFiacre.g:11500:2: ( rule__ParameterDeclaration__Group_0_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getGroup_0_1()); + } + // InternalFiacre.g:11501:2: ( rule__ParameterDeclaration__Group_0_1__0 )? + int alt114=2; + int LA114_0 = input.LA(1); + + if ( (LA114_0==42) ) { + alt114=1; + } + switch (alt114) { + case 1 : + // InternalFiacre.g:11501:3: rule__ParameterDeclaration__Group_0_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__Group_0_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getGroup_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group_0__1__Impl" + + + // $ANTLR start "rule__ParameterDeclaration__Group_0_1__0" + // InternalFiacre.g:11510:1: rule__ParameterDeclaration__Group_0_1__0 : rule__ParameterDeclaration__Group_0_1__0__Impl rule__ParameterDeclaration__Group_0_1__1 ; + public final void rule__ParameterDeclaration__Group_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11514:1: ( rule__ParameterDeclaration__Group_0_1__0__Impl rule__ParameterDeclaration__Group_0_1__1 ) + // InternalFiacre.g:11515:2: rule__ParameterDeclaration__Group_0_1__0__Impl rule__ParameterDeclaration__Group_0_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ParameterDeclaration__Group_0_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__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__ParameterDeclaration__Group_0_1__0" + + + // $ANTLR start "rule__ParameterDeclaration__Group_0_1__0__Impl" + // InternalFiacre.g:11522:1: rule__ParameterDeclaration__Group_0_1__0__Impl : ( ( rule__ParameterDeclaration__ArrayAssignment_0_1_0 ) ) ; + public final void rule__ParameterDeclaration__Group_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11526:1: ( ( ( rule__ParameterDeclaration__ArrayAssignment_0_1_0 ) ) ) + // InternalFiacre.g:11527:1: ( ( rule__ParameterDeclaration__ArrayAssignment_0_1_0 ) ) + { + // InternalFiacre.g:11527:1: ( ( rule__ParameterDeclaration__ArrayAssignment_0_1_0 ) ) + // InternalFiacre.g:11528:2: ( rule__ParameterDeclaration__ArrayAssignment_0_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getArrayAssignment_0_1_0()); + } + // InternalFiacre.g:11529:2: ( rule__ParameterDeclaration__ArrayAssignment_0_1_0 ) + // InternalFiacre.g:11529:3: rule__ParameterDeclaration__ArrayAssignment_0_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__ArrayAssignment_0_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getArrayAssignment_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group_0_1__0__Impl" + + + // $ANTLR start "rule__ParameterDeclaration__Group_0_1__1" + // InternalFiacre.g:11537:1: rule__ParameterDeclaration__Group_0_1__1 : rule__ParameterDeclaration__Group_0_1__1__Impl rule__ParameterDeclaration__Group_0_1__2 ; + public final void rule__ParameterDeclaration__Group_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11541:1: ( rule__ParameterDeclaration__Group_0_1__1__Impl rule__ParameterDeclaration__Group_0_1__2 ) + // InternalFiacre.g:11542:2: rule__ParameterDeclaration__Group_0_1__1__Impl rule__ParameterDeclaration__Group_0_1__2 + { + pushFollow(FollowSets000.FOLLOW_51); + rule__ParameterDeclaration__Group_0_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__Group_0_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group_0_1__1" + + + // $ANTLR start "rule__ParameterDeclaration__Group_0_1__1__Impl" + // InternalFiacre.g:11549:1: rule__ParameterDeclaration__Group_0_1__1__Impl : ( ( rule__ParameterDeclaration__SizeAssignment_0_1_1 ) ) ; + public final void rule__ParameterDeclaration__Group_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11553:1: ( ( ( rule__ParameterDeclaration__SizeAssignment_0_1_1 ) ) ) + // InternalFiacre.g:11554:1: ( ( rule__ParameterDeclaration__SizeAssignment_0_1_1 ) ) + { + // InternalFiacre.g:11554:1: ( ( rule__ParameterDeclaration__SizeAssignment_0_1_1 ) ) + // InternalFiacre.g:11555:2: ( rule__ParameterDeclaration__SizeAssignment_0_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getSizeAssignment_0_1_1()); + } + // InternalFiacre.g:11556:2: ( rule__ParameterDeclaration__SizeAssignment_0_1_1 ) + // InternalFiacre.g:11556:3: rule__ParameterDeclaration__SizeAssignment_0_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__SizeAssignment_0_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getSizeAssignment_0_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group_0_1__1__Impl" + + + // $ANTLR start "rule__ParameterDeclaration__Group_0_1__2" + // InternalFiacre.g:11564:1: rule__ParameterDeclaration__Group_0_1__2 : rule__ParameterDeclaration__Group_0_1__2__Impl ; + public final void rule__ParameterDeclaration__Group_0_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11568:1: ( rule__ParameterDeclaration__Group_0_1__2__Impl ) + // InternalFiacre.g:11569:2: rule__ParameterDeclaration__Group_0_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ParameterDeclaration__Group_0_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group_0_1__2" + + + // $ANTLR start "rule__ParameterDeclaration__Group_0_1__2__Impl" + // InternalFiacre.g:11575:1: rule__ParameterDeclaration__Group_0_1__2__Impl : ( ']' ) ; + public final void rule__ParameterDeclaration__Group_0_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11579:1: ( ( ']' ) ) + // InternalFiacre.g:11580:1: ( ']' ) + { + // InternalFiacre.g:11580:1: ( ']' ) + // InternalFiacre.g:11581:2: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getRightSquareBracketKeyword_0_1_2()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getRightSquareBracketKeyword_0_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__Group_0_1__2__Impl" + + + // $ANTLR start "rule__VariablesDeclaration__Group__0" + // InternalFiacre.g:11591:1: rule__VariablesDeclaration__Group__0 : rule__VariablesDeclaration__Group__0__Impl rule__VariablesDeclaration__Group__1 ; + public final void rule__VariablesDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11595:1: ( rule__VariablesDeclaration__Group__0__Impl rule__VariablesDeclaration__Group__1 ) + // InternalFiacre.g:11596:2: rule__VariablesDeclaration__Group__0__Impl rule__VariablesDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_38); + rule__VariablesDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group__0" + + + // $ANTLR start "rule__VariablesDeclaration__Group__0__Impl" + // InternalFiacre.g:11603:1: rule__VariablesDeclaration__Group__0__Impl : ( ( rule__VariablesDeclaration__VariablesAssignment_0 ) ) ; + public final void rule__VariablesDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11607:1: ( ( ( rule__VariablesDeclaration__VariablesAssignment_0 ) ) ) + // InternalFiacre.g:11608:1: ( ( rule__VariablesDeclaration__VariablesAssignment_0 ) ) + { + // InternalFiacre.g:11608:1: ( ( rule__VariablesDeclaration__VariablesAssignment_0 ) ) + // InternalFiacre.g:11609:2: ( rule__VariablesDeclaration__VariablesAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getVariablesAssignment_0()); + } + // InternalFiacre.g:11610:2: ( rule__VariablesDeclaration__VariablesAssignment_0 ) + // InternalFiacre.g:11610:3: rule__VariablesDeclaration__VariablesAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__VariablesAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getVariablesAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__VariablesDeclaration__Group__1" + // InternalFiacre.g:11618:1: rule__VariablesDeclaration__Group__1 : rule__VariablesDeclaration__Group__1__Impl rule__VariablesDeclaration__Group__2 ; + public final void rule__VariablesDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11622:1: ( rule__VariablesDeclaration__Group__1__Impl rule__VariablesDeclaration__Group__2 ) + // InternalFiacre.g:11623:2: rule__VariablesDeclaration__Group__1__Impl rule__VariablesDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_38); + rule__VariablesDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group__1" + + + // $ANTLR start "rule__VariablesDeclaration__Group__1__Impl" + // InternalFiacre.g:11630:1: rule__VariablesDeclaration__Group__1__Impl : ( ( rule__VariablesDeclaration__Group_1__0 )* ) ; + public final void rule__VariablesDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11634:1: ( ( ( rule__VariablesDeclaration__Group_1__0 )* ) ) + // InternalFiacre.g:11635:1: ( ( rule__VariablesDeclaration__Group_1__0 )* ) + { + // InternalFiacre.g:11635:1: ( ( rule__VariablesDeclaration__Group_1__0 )* ) + // InternalFiacre.g:11636:2: ( rule__VariablesDeclaration__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getGroup_1()); + } + // InternalFiacre.g:11637:2: ( rule__VariablesDeclaration__Group_1__0 )* + loop115: + do { + int alt115=2; + int LA115_0 = input.LA(1); + + if ( (LA115_0==24) ) { + alt115=1; + } + + + switch (alt115) { + case 1 : + // InternalFiacre.g:11637:3: rule__VariablesDeclaration__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__VariablesDeclaration__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop115; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__VariablesDeclaration__Group__2" + // InternalFiacre.g:11645:1: rule__VariablesDeclaration__Group__2 : rule__VariablesDeclaration__Group__2__Impl rule__VariablesDeclaration__Group__3 ; + public final void rule__VariablesDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11649:1: ( rule__VariablesDeclaration__Group__2__Impl rule__VariablesDeclaration__Group__3 ) + // InternalFiacre.g:11650:2: rule__VariablesDeclaration__Group__2__Impl rule__VariablesDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_15); + rule__VariablesDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group__2" + + + // $ANTLR start "rule__VariablesDeclaration__Group__2__Impl" + // InternalFiacre.g:11657:1: rule__VariablesDeclaration__Group__2__Impl : ( ':' ) ; + public final void rule__VariablesDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11661:1: ( ( ':' ) ) + // InternalFiacre.g:11662:1: ( ':' ) + { + // InternalFiacre.g:11662:1: ( ':' ) + // InternalFiacre.g:11663:2: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getColonKeyword_2()); + } + match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getColonKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__VariablesDeclaration__Group__3" + // InternalFiacre.g:11672:1: rule__VariablesDeclaration__Group__3 : rule__VariablesDeclaration__Group__3__Impl rule__VariablesDeclaration__Group__4 ; + public final void rule__VariablesDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11676:1: ( rule__VariablesDeclaration__Group__3__Impl rule__VariablesDeclaration__Group__4 ) + // InternalFiacre.g:11677:2: rule__VariablesDeclaration__Group__3__Impl rule__VariablesDeclaration__Group__4 + { + pushFollow(FollowSets000.FOLLOW_52); + rule__VariablesDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group__3" + + + // $ANTLR start "rule__VariablesDeclaration__Group__3__Impl" + // InternalFiacre.g:11684:1: rule__VariablesDeclaration__Group__3__Impl : ( ( rule__VariablesDeclaration__TypeAssignment_3 ) ) ; + public final void rule__VariablesDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11688:1: ( ( ( rule__VariablesDeclaration__TypeAssignment_3 ) ) ) + // InternalFiacre.g:11689:1: ( ( rule__VariablesDeclaration__TypeAssignment_3 ) ) + { + // InternalFiacre.g:11689:1: ( ( rule__VariablesDeclaration__TypeAssignment_3 ) ) + // InternalFiacre.g:11690:2: ( rule__VariablesDeclaration__TypeAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getTypeAssignment_3()); + } + // InternalFiacre.g:11691:2: ( rule__VariablesDeclaration__TypeAssignment_3 ) + // InternalFiacre.g:11691:3: rule__VariablesDeclaration__TypeAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__TypeAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getTypeAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__VariablesDeclaration__Group__4" + // InternalFiacre.g:11699:1: rule__VariablesDeclaration__Group__4 : rule__VariablesDeclaration__Group__4__Impl ; + public final void rule__VariablesDeclaration__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11703:1: ( rule__VariablesDeclaration__Group__4__Impl ) + // InternalFiacre.g:11704:2: rule__VariablesDeclaration__Group__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group__4" + + + // $ANTLR start "rule__VariablesDeclaration__Group__4__Impl" + // InternalFiacre.g:11710:1: rule__VariablesDeclaration__Group__4__Impl : ( ( rule__VariablesDeclaration__Group_4__0 )? ) ; + public final void rule__VariablesDeclaration__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11714:1: ( ( ( rule__VariablesDeclaration__Group_4__0 )? ) ) + // InternalFiacre.g:11715:1: ( ( rule__VariablesDeclaration__Group_4__0 )? ) + { + // InternalFiacre.g:11715:1: ( ( rule__VariablesDeclaration__Group_4__0 )? ) + // InternalFiacre.g:11716:2: ( rule__VariablesDeclaration__Group_4__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getGroup_4()); + } + // InternalFiacre.g:11717:2: ( rule__VariablesDeclaration__Group_4__0 )? + int alt116=2; + int LA116_0 = input.LA(1); + + if ( (LA116_0==50) ) { + alt116=1; + } + switch (alt116) { + case 1 : + // InternalFiacre.g:11717:3: rule__VariablesDeclaration__Group_4__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__Group_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getGroup_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group__4__Impl" + + + // $ANTLR start "rule__VariablesDeclaration__Group_1__0" + // InternalFiacre.g:11726:1: rule__VariablesDeclaration__Group_1__0 : rule__VariablesDeclaration__Group_1__0__Impl rule__VariablesDeclaration__Group_1__1 ; + public final void rule__VariablesDeclaration__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11730:1: ( rule__VariablesDeclaration__Group_1__0__Impl rule__VariablesDeclaration__Group_1__1 ) + // InternalFiacre.g:11731:2: rule__VariablesDeclaration__Group_1__0__Impl rule__VariablesDeclaration__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__VariablesDeclaration__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group_1__0" + + + // $ANTLR start "rule__VariablesDeclaration__Group_1__0__Impl" + // InternalFiacre.g:11738:1: rule__VariablesDeclaration__Group_1__0__Impl : ( ',' ) ; + public final void rule__VariablesDeclaration__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11742:1: ( ( ',' ) ) + // InternalFiacre.g:11743:1: ( ',' ) + { + // InternalFiacre.g:11743:1: ( ',' ) + // InternalFiacre.g:11744:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getCommaKeyword_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getCommaKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group_1__0__Impl" + + + // $ANTLR start "rule__VariablesDeclaration__Group_1__1" + // InternalFiacre.g:11753:1: rule__VariablesDeclaration__Group_1__1 : rule__VariablesDeclaration__Group_1__1__Impl ; + public final void rule__VariablesDeclaration__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11757:1: ( rule__VariablesDeclaration__Group_1__1__Impl ) + // InternalFiacre.g:11758:2: rule__VariablesDeclaration__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__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__VariablesDeclaration__Group_1__1" + + + // $ANTLR start "rule__VariablesDeclaration__Group_1__1__Impl" + // InternalFiacre.g:11764:1: rule__VariablesDeclaration__Group_1__1__Impl : ( ( rule__VariablesDeclaration__VariablesAssignment_1_1 ) ) ; + public final void rule__VariablesDeclaration__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11768:1: ( ( ( rule__VariablesDeclaration__VariablesAssignment_1_1 ) ) ) + // InternalFiacre.g:11769:1: ( ( rule__VariablesDeclaration__VariablesAssignment_1_1 ) ) + { + // InternalFiacre.g:11769:1: ( ( rule__VariablesDeclaration__VariablesAssignment_1_1 ) ) + // InternalFiacre.g:11770:2: ( rule__VariablesDeclaration__VariablesAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getVariablesAssignment_1_1()); + } + // InternalFiacre.g:11771:2: ( rule__VariablesDeclaration__VariablesAssignment_1_1 ) + // InternalFiacre.g:11771:3: rule__VariablesDeclaration__VariablesAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__VariablesAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getVariablesAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group_1__1__Impl" + + + // $ANTLR start "rule__VariablesDeclaration__Group_4__0" + // InternalFiacre.g:11780:1: rule__VariablesDeclaration__Group_4__0 : rule__VariablesDeclaration__Group_4__0__Impl rule__VariablesDeclaration__Group_4__1 ; + public final void rule__VariablesDeclaration__Group_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11784:1: ( rule__VariablesDeclaration__Group_4__0__Impl rule__VariablesDeclaration__Group_4__1 ) + // InternalFiacre.g:11785:2: rule__VariablesDeclaration__Group_4__0__Impl rule__VariablesDeclaration__Group_4__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__VariablesDeclaration__Group_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__Group_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group_4__0" + + + // $ANTLR start "rule__VariablesDeclaration__Group_4__0__Impl" + // InternalFiacre.g:11792:1: rule__VariablesDeclaration__Group_4__0__Impl : ( ':=' ) ; + public final void rule__VariablesDeclaration__Group_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11796:1: ( ( ':=' ) ) + // InternalFiacre.g:11797:1: ( ':=' ) + { + // InternalFiacre.g:11797:1: ( ':=' ) + // InternalFiacre.g:11798:2: ':=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getColonEqualsSignKeyword_4_0()); + } + match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getColonEqualsSignKeyword_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group_4__0__Impl" + + + // $ANTLR start "rule__VariablesDeclaration__Group_4__1" + // InternalFiacre.g:11807:1: rule__VariablesDeclaration__Group_4__1 : rule__VariablesDeclaration__Group_4__1__Impl ; + public final void rule__VariablesDeclaration__Group_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11811:1: ( rule__VariablesDeclaration__Group_4__1__Impl ) + // InternalFiacre.g:11812:2: rule__VariablesDeclaration__Group_4__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__Group_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group_4__1" + + + // $ANTLR start "rule__VariablesDeclaration__Group_4__1__Impl" + // InternalFiacre.g:11818:1: rule__VariablesDeclaration__Group_4__1__Impl : ( ( rule__VariablesDeclaration__ValueAssignment_4_1 ) ) ; + public final void rule__VariablesDeclaration__Group_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11822:1: ( ( ( rule__VariablesDeclaration__ValueAssignment_4_1 ) ) ) + // InternalFiacre.g:11823:1: ( ( rule__VariablesDeclaration__ValueAssignment_4_1 ) ) + { + // InternalFiacre.g:11823:1: ( ( rule__VariablesDeclaration__ValueAssignment_4_1 ) ) + // InternalFiacre.g:11824:2: ( rule__VariablesDeclaration__ValueAssignment_4_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getValueAssignment_4_1()); + } + // InternalFiacre.g:11825:2: ( rule__VariablesDeclaration__ValueAssignment_4_1 ) + // InternalFiacre.g:11825:3: rule__VariablesDeclaration__ValueAssignment_4_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariablesDeclaration__ValueAssignment_4_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getValueAssignment_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__Group_4__1__Impl" + + + // $ANTLR start "rule__PriorityDeclaration__Group__0" + // InternalFiacre.g:11834:1: rule__PriorityDeclaration__Group__0 : rule__PriorityDeclaration__Group__0__Impl rule__PriorityDeclaration__Group__1 ; + public final void rule__PriorityDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11838:1: ( rule__PriorityDeclaration__Group__0__Impl rule__PriorityDeclaration__Group__1 ) + // InternalFiacre.g:11839:2: rule__PriorityDeclaration__Group__0__Impl rule__PriorityDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_8); + rule__PriorityDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityDeclaration__Group__0" + + + // $ANTLR start "rule__PriorityDeclaration__Group__0__Impl" + // InternalFiacre.g:11846:1: rule__PriorityDeclaration__Group__0__Impl : ( ( rule__PriorityDeclaration__GroupsAssignment_0 ) ) ; + public final void rule__PriorityDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11850:1: ( ( ( rule__PriorityDeclaration__GroupsAssignment_0 ) ) ) + // InternalFiacre.g:11851:1: ( ( rule__PriorityDeclaration__GroupsAssignment_0 ) ) + { + // InternalFiacre.g:11851:1: ( ( rule__PriorityDeclaration__GroupsAssignment_0 ) ) + // InternalFiacre.g:11852:2: ( rule__PriorityDeclaration__GroupsAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityDeclarationAccess().getGroupsAssignment_0()); + } + // InternalFiacre.g:11853:2: ( rule__PriorityDeclaration__GroupsAssignment_0 ) + // InternalFiacre.g:11853:3: rule__PriorityDeclaration__GroupsAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityDeclaration__GroupsAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityDeclarationAccess().getGroupsAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__PriorityDeclaration__Group__1" + // InternalFiacre.g:11861:1: rule__PriorityDeclaration__Group__1 : rule__PriorityDeclaration__Group__1__Impl ; + public final void rule__PriorityDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11865:1: ( rule__PriorityDeclaration__Group__1__Impl ) + // InternalFiacre.g:11866:2: rule__PriorityDeclaration__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityDeclaration__Group__1" + + + // $ANTLR start "rule__PriorityDeclaration__Group__1__Impl" + // InternalFiacre.g:11872:1: rule__PriorityDeclaration__Group__1__Impl : ( ( ( rule__PriorityDeclaration__Group_1__0 ) ) ( ( rule__PriorityDeclaration__Group_1__0 )* ) ) ; + public final void rule__PriorityDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11876:1: ( ( ( ( rule__PriorityDeclaration__Group_1__0 ) ) ( ( rule__PriorityDeclaration__Group_1__0 )* ) ) ) + // InternalFiacre.g:11877:1: ( ( ( rule__PriorityDeclaration__Group_1__0 ) ) ( ( rule__PriorityDeclaration__Group_1__0 )* ) ) + { + // InternalFiacre.g:11877:1: ( ( ( rule__PriorityDeclaration__Group_1__0 ) ) ( ( rule__PriorityDeclaration__Group_1__0 )* ) ) + // InternalFiacre.g:11878:2: ( ( rule__PriorityDeclaration__Group_1__0 ) ) ( ( rule__PriorityDeclaration__Group_1__0 )* ) + { + // InternalFiacre.g:11878:2: ( ( rule__PriorityDeclaration__Group_1__0 ) ) + // InternalFiacre.g:11879:3: ( rule__PriorityDeclaration__Group_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityDeclarationAccess().getGroup_1()); + } + // InternalFiacre.g:11880:3: ( rule__PriorityDeclaration__Group_1__0 ) + // InternalFiacre.g:11880:4: rule__PriorityDeclaration__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_53); + rule__PriorityDeclaration__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityDeclarationAccess().getGroup_1()); + } + + } + + // InternalFiacre.g:11883:2: ( ( rule__PriorityDeclaration__Group_1__0 )* ) + // InternalFiacre.g:11884:3: ( rule__PriorityDeclaration__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityDeclarationAccess().getGroup_1()); + } + // InternalFiacre.g:11885:3: ( rule__PriorityDeclaration__Group_1__0 )* + loop117: + do { + int alt117=2; + int LA117_0 = input.LA(1); + + if ( (LA117_0==16) ) { + alt117=1; + } + + + switch (alt117) { + case 1 : + // InternalFiacre.g:11885:4: rule__PriorityDeclaration__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_53); + rule__PriorityDeclaration__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop117; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityDeclarationAccess().getGroup_1()); + } + + } + + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__PriorityDeclaration__Group_1__0" + // InternalFiacre.g:11895:1: rule__PriorityDeclaration__Group_1__0 : rule__PriorityDeclaration__Group_1__0__Impl rule__PriorityDeclaration__Group_1__1 ; + public final void rule__PriorityDeclaration__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11899:1: ( rule__PriorityDeclaration__Group_1__0__Impl rule__PriorityDeclaration__Group_1__1 ) + // InternalFiacre.g:11900:2: rule__PriorityDeclaration__Group_1__0__Impl rule__PriorityDeclaration__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__PriorityDeclaration__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityDeclaration__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityDeclaration__Group_1__0" + + + // $ANTLR start "rule__PriorityDeclaration__Group_1__0__Impl" + // InternalFiacre.g:11907:1: rule__PriorityDeclaration__Group_1__0__Impl : ( '>' ) ; + public final void rule__PriorityDeclaration__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11911:1: ( ( '>' ) ) + // InternalFiacre.g:11912:1: ( '>' ) + { + // InternalFiacre.g:11912:1: ( '>' ) + // InternalFiacre.g:11913:2: '>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityDeclarationAccess().getGreaterThanSignKeyword_1_0()); + } + match(input,16,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityDeclarationAccess().getGreaterThanSignKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityDeclaration__Group_1__0__Impl" + + + // $ANTLR start "rule__PriorityDeclaration__Group_1__1" + // InternalFiacre.g:11922:1: rule__PriorityDeclaration__Group_1__1 : rule__PriorityDeclaration__Group_1__1__Impl ; + public final void rule__PriorityDeclaration__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11926:1: ( rule__PriorityDeclaration__Group_1__1__Impl ) + // InternalFiacre.g:11927:2: rule__PriorityDeclaration__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityDeclaration__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__PriorityDeclaration__Group_1__1" + + + // $ANTLR start "rule__PriorityDeclaration__Group_1__1__Impl" + // InternalFiacre.g:11933:1: rule__PriorityDeclaration__Group_1__1__Impl : ( ( rule__PriorityDeclaration__GroupsAssignment_1_1 ) ) ; + public final void rule__PriorityDeclaration__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11937:1: ( ( ( rule__PriorityDeclaration__GroupsAssignment_1_1 ) ) ) + // InternalFiacre.g:11938:1: ( ( rule__PriorityDeclaration__GroupsAssignment_1_1 ) ) + { + // InternalFiacre.g:11938:1: ( ( rule__PriorityDeclaration__GroupsAssignment_1_1 ) ) + // InternalFiacre.g:11939:2: ( rule__PriorityDeclaration__GroupsAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityDeclarationAccess().getGroupsAssignment_1_1()); + } + // InternalFiacre.g:11940:2: ( rule__PriorityDeclaration__GroupsAssignment_1_1 ) + // InternalFiacre.g:11940:3: rule__PriorityDeclaration__GroupsAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityDeclaration__GroupsAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityDeclarationAccess().getGroupsAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityDeclaration__Group_1__1__Impl" + + + // $ANTLR start "rule__PriorityGroup__Group__0" + // InternalFiacre.g:11949:1: rule__PriorityGroup__Group__0 : rule__PriorityGroup__Group__0__Impl rule__PriorityGroup__Group__1 ; + public final void rule__PriorityGroup__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11953:1: ( rule__PriorityGroup__Group__0__Impl rule__PriorityGroup__Group__1 ) + // InternalFiacre.g:11954:2: rule__PriorityGroup__Group__0__Impl rule__PriorityGroup__Group__1 + { + pushFollow(FollowSets000.FOLLOW_10); + rule__PriorityGroup__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityGroup__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityGroup__Group__0" + + + // $ANTLR start "rule__PriorityGroup__Group__0__Impl" + // InternalFiacre.g:11961:1: rule__PriorityGroup__Group__0__Impl : ( ( rule__PriorityGroup__PortsAssignment_0 ) ) ; + public final void rule__PriorityGroup__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11965:1: ( ( ( rule__PriorityGroup__PortsAssignment_0 ) ) ) + // InternalFiacre.g:11966:1: ( ( rule__PriorityGroup__PortsAssignment_0 ) ) + { + // InternalFiacre.g:11966:1: ( ( rule__PriorityGroup__PortsAssignment_0 ) ) + // InternalFiacre.g:11967:2: ( rule__PriorityGroup__PortsAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityGroupAccess().getPortsAssignment_0()); + } + // InternalFiacre.g:11968:2: ( rule__PriorityGroup__PortsAssignment_0 ) + // InternalFiacre.g:11968:3: rule__PriorityGroup__PortsAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityGroup__PortsAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityGroupAccess().getPortsAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityGroup__Group__0__Impl" + + + // $ANTLR start "rule__PriorityGroup__Group__1" + // InternalFiacre.g:11976:1: rule__PriorityGroup__Group__1 : rule__PriorityGroup__Group__1__Impl ; + public final void rule__PriorityGroup__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11980:1: ( rule__PriorityGroup__Group__1__Impl ) + // InternalFiacre.g:11981:2: rule__PriorityGroup__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityGroup__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityGroup__Group__1" + + + // $ANTLR start "rule__PriorityGroup__Group__1__Impl" + // InternalFiacre.g:11987:1: rule__PriorityGroup__Group__1__Impl : ( ( rule__PriorityGroup__Group_1__0 )* ) ; + public final void rule__PriorityGroup__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:11991:1: ( ( ( rule__PriorityGroup__Group_1__0 )* ) ) + // InternalFiacre.g:11992:1: ( ( rule__PriorityGroup__Group_1__0 )* ) + { + // InternalFiacre.g:11992:1: ( ( rule__PriorityGroup__Group_1__0 )* ) + // InternalFiacre.g:11993:2: ( rule__PriorityGroup__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityGroupAccess().getGroup_1()); + } + // InternalFiacre.g:11994:2: ( rule__PriorityGroup__Group_1__0 )* + loop118: + do { + int alt118=2; + int LA118_0 = input.LA(1); + + if ( (LA118_0==17) ) { + alt118=1; + } + + + switch (alt118) { + case 1 : + // InternalFiacre.g:11994:3: rule__PriorityGroup__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_11); + rule__PriorityGroup__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop118; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityGroupAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityGroup__Group__1__Impl" + + + // $ANTLR start "rule__PriorityGroup__Group_1__0" + // InternalFiacre.g:12003:1: rule__PriorityGroup__Group_1__0 : rule__PriorityGroup__Group_1__0__Impl rule__PriorityGroup__Group_1__1 ; + public final void rule__PriorityGroup__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12007:1: ( rule__PriorityGroup__Group_1__0__Impl rule__PriorityGroup__Group_1__1 ) + // InternalFiacre.g:12008:2: rule__PriorityGroup__Group_1__0__Impl rule__PriorityGroup__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__PriorityGroup__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityGroup__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityGroup__Group_1__0" + + + // $ANTLR start "rule__PriorityGroup__Group_1__0__Impl" + // InternalFiacre.g:12015:1: rule__PriorityGroup__Group_1__0__Impl : ( '|' ) ; + public final void rule__PriorityGroup__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12019:1: ( ( '|' ) ) + // InternalFiacre.g:12020:1: ( '|' ) + { + // InternalFiacre.g:12020:1: ( '|' ) + // InternalFiacre.g:12021:2: '|' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityGroupAccess().getVerticalLineKeyword_1_0()); + } + match(input,17,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityGroupAccess().getVerticalLineKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityGroup__Group_1__0__Impl" + + + // $ANTLR start "rule__PriorityGroup__Group_1__1" + // InternalFiacre.g:12030:1: rule__PriorityGroup__Group_1__1 : rule__PriorityGroup__Group_1__1__Impl ; + public final void rule__PriorityGroup__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12034:1: ( rule__PriorityGroup__Group_1__1__Impl ) + // InternalFiacre.g:12035:2: rule__PriorityGroup__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityGroup__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__PriorityGroup__Group_1__1" + + + // $ANTLR start "rule__PriorityGroup__Group_1__1__Impl" + // InternalFiacre.g:12041:1: rule__PriorityGroup__Group_1__1__Impl : ( ( rule__PriorityGroup__PortsAssignment_1_1 ) ) ; + public final void rule__PriorityGroup__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12045:1: ( ( ( rule__PriorityGroup__PortsAssignment_1_1 ) ) ) + // InternalFiacre.g:12046:1: ( ( rule__PriorityGroup__PortsAssignment_1_1 ) ) + { + // InternalFiacre.g:12046:1: ( ( rule__PriorityGroup__PortsAssignment_1_1 ) ) + // InternalFiacre.g:12047:2: ( rule__PriorityGroup__PortsAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityGroupAccess().getPortsAssignment_1_1()); + } + // InternalFiacre.g:12048:2: ( rule__PriorityGroup__PortsAssignment_1_1 ) + // InternalFiacre.g:12048:3: rule__PriorityGroup__PortsAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PriorityGroup__PortsAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityGroupAccess().getPortsAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityGroup__Group_1__1__Impl" + + + // $ANTLR start "rule__UnlessStatement__Group__0" + // InternalFiacre.g:12057:1: rule__UnlessStatement__Group__0 : rule__UnlessStatement__Group__0__Impl rule__UnlessStatement__Group__1 ; + public final void rule__UnlessStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12061:1: ( rule__UnlessStatement__Group__0__Impl rule__UnlessStatement__Group__1 ) + // InternalFiacre.g:12062:2: rule__UnlessStatement__Group__0__Impl rule__UnlessStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_54); + rule__UnlessStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnlessStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnlessStatement__Group__0" + + + // $ANTLR start "rule__UnlessStatement__Group__0__Impl" + // InternalFiacre.g:12069:1: rule__UnlessStatement__Group__0__Impl : ( ruleStatementChoice ) ; + public final void rule__UnlessStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12073:1: ( ( ruleStatementChoice ) ) + // InternalFiacre.g:12074:1: ( ruleStatementChoice ) + { + // InternalFiacre.g:12074:1: ( ruleStatementChoice ) + // InternalFiacre.g:12075:2: ruleStatementChoice + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnlessStatementAccess().getStatementChoiceParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementChoice(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnlessStatementAccess().getStatementChoiceParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnlessStatement__Group__0__Impl" + + + // $ANTLR start "rule__UnlessStatement__Group__1" + // InternalFiacre.g:12084:1: rule__UnlessStatement__Group__1 : rule__UnlessStatement__Group__1__Impl ; + public final void rule__UnlessStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12088:1: ( rule__UnlessStatement__Group__1__Impl ) + // InternalFiacre.g:12089:2: rule__UnlessStatement__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnlessStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnlessStatement__Group__1" + + + // $ANTLR start "rule__UnlessStatement__Group__1__Impl" + // InternalFiacre.g:12095:1: rule__UnlessStatement__Group__1__Impl : ( ( rule__UnlessStatement__Group_1__0 )* ) ; + public final void rule__UnlessStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12099:1: ( ( ( rule__UnlessStatement__Group_1__0 )* ) ) + // InternalFiacre.g:12100:1: ( ( rule__UnlessStatement__Group_1__0 )* ) + { + // InternalFiacre.g:12100:1: ( ( rule__UnlessStatement__Group_1__0 )* ) + // InternalFiacre.g:12101:2: ( rule__UnlessStatement__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnlessStatementAccess().getGroup_1()); + } + // InternalFiacre.g:12102:2: ( rule__UnlessStatement__Group_1__0 )* + loop119: + do { + int alt119=2; + int LA119_0 = input.LA(1); + + if ( (LA119_0==51) ) { + alt119=1; + } + + + switch (alt119) { + case 1 : + // InternalFiacre.g:12102:3: rule__UnlessStatement__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_55); + rule__UnlessStatement__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop119; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnlessStatementAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnlessStatement__Group__1__Impl" + + + // $ANTLR start "rule__UnlessStatement__Group_1__0" + // InternalFiacre.g:12111:1: rule__UnlessStatement__Group_1__0 : rule__UnlessStatement__Group_1__0__Impl rule__UnlessStatement__Group_1__1 ; + public final void rule__UnlessStatement__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12115:1: ( rule__UnlessStatement__Group_1__0__Impl rule__UnlessStatement__Group_1__1 ) + // InternalFiacre.g:12116:2: rule__UnlessStatement__Group_1__0__Impl rule__UnlessStatement__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_54); + rule__UnlessStatement__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnlessStatement__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnlessStatement__Group_1__0" + + + // $ANTLR start "rule__UnlessStatement__Group_1__0__Impl" + // InternalFiacre.g:12123:1: rule__UnlessStatement__Group_1__0__Impl : ( () ) ; + public final void rule__UnlessStatement__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12127:1: ( ( () ) ) + // InternalFiacre.g:12128:1: ( () ) + { + // InternalFiacre.g:12128:1: ( () ) + // InternalFiacre.g:12129:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnlessStatementAccess().getUnlessStatementFollowersAction_1_0()); + } + // InternalFiacre.g:12130:2: () + // InternalFiacre.g:12130:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnlessStatementAccess().getUnlessStatementFollowersAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnlessStatement__Group_1__0__Impl" + + + // $ANTLR start "rule__UnlessStatement__Group_1__1" + // InternalFiacre.g:12138:1: rule__UnlessStatement__Group_1__1 : rule__UnlessStatement__Group_1__1__Impl rule__UnlessStatement__Group_1__2 ; + public final void rule__UnlessStatement__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12142:1: ( rule__UnlessStatement__Group_1__1__Impl rule__UnlessStatement__Group_1__2 ) + // InternalFiacre.g:12143:2: rule__UnlessStatement__Group_1__1__Impl rule__UnlessStatement__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__UnlessStatement__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnlessStatement__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnlessStatement__Group_1__1" + + + // $ANTLR start "rule__UnlessStatement__Group_1__1__Impl" + // InternalFiacre.g:12150:1: rule__UnlessStatement__Group_1__1__Impl : ( 'unless' ) ; + public final void rule__UnlessStatement__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12154:1: ( ( 'unless' ) ) + // InternalFiacre.g:12155:1: ( 'unless' ) + { + // InternalFiacre.g:12155:1: ( 'unless' ) + // InternalFiacre.g:12156:2: 'unless' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnlessStatementAccess().getUnlessKeyword_1_1()); + } + match(input,51,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnlessStatementAccess().getUnlessKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnlessStatement__Group_1__1__Impl" + + + // $ANTLR start "rule__UnlessStatement__Group_1__2" + // InternalFiacre.g:12165:1: rule__UnlessStatement__Group_1__2 : rule__UnlessStatement__Group_1__2__Impl ; + public final void rule__UnlessStatement__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12169:1: ( rule__UnlessStatement__Group_1__2__Impl ) + // InternalFiacre.g:12170:2: rule__UnlessStatement__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnlessStatement__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__UnlessStatement__Group_1__2" + + + // $ANTLR start "rule__UnlessStatement__Group_1__2__Impl" + // InternalFiacre.g:12176:1: rule__UnlessStatement__Group_1__2__Impl : ( ( rule__UnlessStatement__FollowersAssignment_1_2 ) ) ; + public final void rule__UnlessStatement__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12180:1: ( ( ( rule__UnlessStatement__FollowersAssignment_1_2 ) ) ) + // InternalFiacre.g:12181:1: ( ( rule__UnlessStatement__FollowersAssignment_1_2 ) ) + { + // InternalFiacre.g:12181:1: ( ( rule__UnlessStatement__FollowersAssignment_1_2 ) ) + // InternalFiacre.g:12182:2: ( rule__UnlessStatement__FollowersAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnlessStatementAccess().getFollowersAssignment_1_2()); + } + // InternalFiacre.g:12183:2: ( rule__UnlessStatement__FollowersAssignment_1_2 ) + // InternalFiacre.g:12183:3: rule__UnlessStatement__FollowersAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnlessStatement__FollowersAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnlessStatementAccess().getFollowersAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnlessStatement__Group_1__2__Impl" + + + // $ANTLR start "rule__StatementChoice__Group__0" + // InternalFiacre.g:12192:1: rule__StatementChoice__Group__0 : rule__StatementChoice__Group__0__Impl rule__StatementChoice__Group__1 ; + public final void rule__StatementChoice__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12196:1: ( rule__StatementChoice__Group__0__Impl rule__StatementChoice__Group__1 ) + // InternalFiacre.g:12197:2: rule__StatementChoice__Group__0__Impl rule__StatementChoice__Group__1 + { + pushFollow(FollowSets000.FOLLOW_56); + rule__StatementChoice__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementChoice__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementChoice__Group__0" + + + // $ANTLR start "rule__StatementChoice__Group__0__Impl" + // InternalFiacre.g:12204:1: rule__StatementChoice__Group__0__Impl : ( ruleStatementSequence ) ; + public final void rule__StatementChoice__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12208:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:12209:1: ( ruleStatementSequence ) + { + // InternalFiacre.g:12209:1: ( ruleStatementSequence ) + // InternalFiacre.g:12210:2: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementChoiceAccess().getStatementSequenceParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementChoiceAccess().getStatementSequenceParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementChoice__Group__0__Impl" + + + // $ANTLR start "rule__StatementChoice__Group__1" + // InternalFiacre.g:12219:1: rule__StatementChoice__Group__1 : rule__StatementChoice__Group__1__Impl ; + public final void rule__StatementChoice__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12223:1: ( rule__StatementChoice__Group__1__Impl ) + // InternalFiacre.g:12224:2: rule__StatementChoice__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementChoice__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementChoice__Group__1" + + + // $ANTLR start "rule__StatementChoice__Group__1__Impl" + // InternalFiacre.g:12230:1: rule__StatementChoice__Group__1__Impl : ( ( rule__StatementChoice__Group_1__0 )* ) ; + public final void rule__StatementChoice__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12234:1: ( ( ( rule__StatementChoice__Group_1__0 )* ) ) + // InternalFiacre.g:12235:1: ( ( rule__StatementChoice__Group_1__0 )* ) + { + // InternalFiacre.g:12235:1: ( ( rule__StatementChoice__Group_1__0 )* ) + // InternalFiacre.g:12236:2: ( rule__StatementChoice__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementChoiceAccess().getGroup_1()); + } + // InternalFiacre.g:12237:2: ( rule__StatementChoice__Group_1__0 )* + loop120: + do { + int alt120=2; + int LA120_0 = input.LA(1); + + if ( (LA120_0==52) ) { + alt120=1; + } + + + switch (alt120) { + case 1 : + // InternalFiacre.g:12237:3: rule__StatementChoice__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_57); + rule__StatementChoice__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop120; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementChoiceAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementChoice__Group__1__Impl" + + + // $ANTLR start "rule__StatementChoice__Group_1__0" + // InternalFiacre.g:12246:1: rule__StatementChoice__Group_1__0 : rule__StatementChoice__Group_1__0__Impl rule__StatementChoice__Group_1__1 ; + public final void rule__StatementChoice__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12250:1: ( rule__StatementChoice__Group_1__0__Impl rule__StatementChoice__Group_1__1 ) + // InternalFiacre.g:12251:2: rule__StatementChoice__Group_1__0__Impl rule__StatementChoice__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_56); + rule__StatementChoice__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementChoice__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementChoice__Group_1__0" + + + // $ANTLR start "rule__StatementChoice__Group_1__0__Impl" + // InternalFiacre.g:12258:1: rule__StatementChoice__Group_1__0__Impl : ( () ) ; + public final void rule__StatementChoice__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12262:1: ( ( () ) ) + // InternalFiacre.g:12263:1: ( () ) + { + // InternalFiacre.g:12263:1: ( () ) + // InternalFiacre.g:12264:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementChoiceAccess().getStatementChoiceChoicesAction_1_0()); + } + // InternalFiacre.g:12265:2: () + // InternalFiacre.g:12265:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementChoiceAccess().getStatementChoiceChoicesAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementChoice__Group_1__0__Impl" + + + // $ANTLR start "rule__StatementChoice__Group_1__1" + // InternalFiacre.g:12273:1: rule__StatementChoice__Group_1__1 : rule__StatementChoice__Group_1__1__Impl rule__StatementChoice__Group_1__2 ; + public final void rule__StatementChoice__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12277:1: ( rule__StatementChoice__Group_1__1__Impl rule__StatementChoice__Group_1__2 ) + // InternalFiacre.g:12278:2: rule__StatementChoice__Group_1__1__Impl rule__StatementChoice__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__StatementChoice__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementChoice__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementChoice__Group_1__1" + + + // $ANTLR start "rule__StatementChoice__Group_1__1__Impl" + // InternalFiacre.g:12285:1: rule__StatementChoice__Group_1__1__Impl : ( '[]' ) ; + public final void rule__StatementChoice__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12289:1: ( ( '[]' ) ) + // InternalFiacre.g:12290:1: ( '[]' ) + { + // InternalFiacre.g:12290:1: ( '[]' ) + // InternalFiacre.g:12291:2: '[]' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementChoiceAccess().getLeftSquareBracketRightSquareBracketKeyword_1_1()); + } + match(input,52,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementChoiceAccess().getLeftSquareBracketRightSquareBracketKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementChoice__Group_1__1__Impl" + + + // $ANTLR start "rule__StatementChoice__Group_1__2" + // InternalFiacre.g:12300:1: rule__StatementChoice__Group_1__2 : rule__StatementChoice__Group_1__2__Impl ; + public final void rule__StatementChoice__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12304:1: ( rule__StatementChoice__Group_1__2__Impl ) + // InternalFiacre.g:12305:2: rule__StatementChoice__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementChoice__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__StatementChoice__Group_1__2" + + + // $ANTLR start "rule__StatementChoice__Group_1__2__Impl" + // InternalFiacre.g:12311:1: rule__StatementChoice__Group_1__2__Impl : ( ( rule__StatementChoice__ChoicesAssignment_1_2 ) ) ; + public final void rule__StatementChoice__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12315:1: ( ( ( rule__StatementChoice__ChoicesAssignment_1_2 ) ) ) + // InternalFiacre.g:12316:1: ( ( rule__StatementChoice__ChoicesAssignment_1_2 ) ) + { + // InternalFiacre.g:12316:1: ( ( rule__StatementChoice__ChoicesAssignment_1_2 ) ) + // InternalFiacre.g:12317:2: ( rule__StatementChoice__ChoicesAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementChoiceAccess().getChoicesAssignment_1_2()); + } + // InternalFiacre.g:12318:2: ( rule__StatementChoice__ChoicesAssignment_1_2 ) + // InternalFiacre.g:12318:3: rule__StatementChoice__ChoicesAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementChoice__ChoicesAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementChoiceAccess().getChoicesAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementChoice__Group_1__2__Impl" + + + // $ANTLR start "rule__StatementSequence__Group__0" + // InternalFiacre.g:12327:1: rule__StatementSequence__Group__0 : rule__StatementSequence__Group__0__Impl rule__StatementSequence__Group__1 ; + public final void rule__StatementSequence__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12331:1: ( rule__StatementSequence__Group__0__Impl rule__StatementSequence__Group__1 ) + // InternalFiacre.g:12332:2: rule__StatementSequence__Group__0__Impl rule__StatementSequence__Group__1 + { + pushFollow(FollowSets000.FOLLOW_58); + rule__StatementSequence__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementSequence__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementSequence__Group__0" + + + // $ANTLR start "rule__StatementSequence__Group__0__Impl" + // InternalFiacre.g:12339:1: rule__StatementSequence__Group__0__Impl : ( ruleStatement ) ; + public final void rule__StatementSequence__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12343:1: ( ( ruleStatement ) ) + // InternalFiacre.g:12344:1: ( ruleStatement ) + { + // InternalFiacre.g:12344:1: ( ruleStatement ) + // InternalFiacre.g:12345:2: ruleStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementSequenceAccess().getStatementParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementSequenceAccess().getStatementParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementSequence__Group__0__Impl" + + + // $ANTLR start "rule__StatementSequence__Group__1" + // InternalFiacre.g:12354:1: rule__StatementSequence__Group__1 : rule__StatementSequence__Group__1__Impl ; + public final void rule__StatementSequence__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12358:1: ( rule__StatementSequence__Group__1__Impl ) + // InternalFiacre.g:12359:2: rule__StatementSequence__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementSequence__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementSequence__Group__1" + + + // $ANTLR start "rule__StatementSequence__Group__1__Impl" + // InternalFiacre.g:12365:1: rule__StatementSequence__Group__1__Impl : ( ( rule__StatementSequence__Group_1__0 )* ) ; + public final void rule__StatementSequence__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12369:1: ( ( ( rule__StatementSequence__Group_1__0 )* ) ) + // InternalFiacre.g:12370:1: ( ( rule__StatementSequence__Group_1__0 )* ) + { + // InternalFiacre.g:12370:1: ( ( rule__StatementSequence__Group_1__0 )* ) + // InternalFiacre.g:12371:2: ( rule__StatementSequence__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementSequenceAccess().getGroup_1()); + } + // InternalFiacre.g:12372:2: ( rule__StatementSequence__Group_1__0 )* + loop121: + do { + int alt121=2; + int LA121_0 = input.LA(1); + + if ( (LA121_0==53) ) { + alt121=1; + } + + + switch (alt121) { + case 1 : + // InternalFiacre.g:12372:3: rule__StatementSequence__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_59); + rule__StatementSequence__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop121; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementSequenceAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementSequence__Group__1__Impl" + + + // $ANTLR start "rule__StatementSequence__Group_1__0" + // InternalFiacre.g:12381:1: rule__StatementSequence__Group_1__0 : rule__StatementSequence__Group_1__0__Impl rule__StatementSequence__Group_1__1 ; + public final void rule__StatementSequence__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12385:1: ( rule__StatementSequence__Group_1__0__Impl rule__StatementSequence__Group_1__1 ) + // InternalFiacre.g:12386:2: rule__StatementSequence__Group_1__0__Impl rule__StatementSequence__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_58); + rule__StatementSequence__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementSequence__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementSequence__Group_1__0" + + + // $ANTLR start "rule__StatementSequence__Group_1__0__Impl" + // InternalFiacre.g:12393:1: rule__StatementSequence__Group_1__0__Impl : ( () ) ; + public final void rule__StatementSequence__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12397:1: ( ( () ) ) + // InternalFiacre.g:12398:1: ( () ) + { + // InternalFiacre.g:12398:1: ( () ) + // InternalFiacre.g:12399:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementSequenceAccess().getStatementSequenceStatementsAction_1_0()); + } + // InternalFiacre.g:12400:2: () + // InternalFiacre.g:12400:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementSequenceAccess().getStatementSequenceStatementsAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementSequence__Group_1__0__Impl" + + + // $ANTLR start "rule__StatementSequence__Group_1__1" + // InternalFiacre.g:12408:1: rule__StatementSequence__Group_1__1 : rule__StatementSequence__Group_1__1__Impl rule__StatementSequence__Group_1__2 ; + public final void rule__StatementSequence__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12412:1: ( rule__StatementSequence__Group_1__1__Impl rule__StatementSequence__Group_1__2 ) + // InternalFiacre.g:12413:2: rule__StatementSequence__Group_1__1__Impl rule__StatementSequence__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__StatementSequence__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementSequence__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementSequence__Group_1__1" + + + // $ANTLR start "rule__StatementSequence__Group_1__1__Impl" + // InternalFiacre.g:12420:1: rule__StatementSequence__Group_1__1__Impl : ( ';' ) ; + public final void rule__StatementSequence__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12424:1: ( ( ';' ) ) + // InternalFiacre.g:12425:1: ( ';' ) + { + // InternalFiacre.g:12425:1: ( ';' ) + // InternalFiacre.g:12426:2: ';' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementSequenceAccess().getSemicolonKeyword_1_1()); + } + match(input,53,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementSequenceAccess().getSemicolonKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementSequence__Group_1__1__Impl" + + + // $ANTLR start "rule__StatementSequence__Group_1__2" + // InternalFiacre.g:12435:1: rule__StatementSequence__Group_1__2 : rule__StatementSequence__Group_1__2__Impl ; + public final void rule__StatementSequence__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12439:1: ( rule__StatementSequence__Group_1__2__Impl ) + // InternalFiacre.g:12440:2: rule__StatementSequence__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementSequence__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__StatementSequence__Group_1__2" + + + // $ANTLR start "rule__StatementSequence__Group_1__2__Impl" + // InternalFiacre.g:12446:1: rule__StatementSequence__Group_1__2__Impl : ( ( rule__StatementSequence__StatementsAssignment_1_2 ) ) ; + public final void rule__StatementSequence__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12450:1: ( ( ( rule__StatementSequence__StatementsAssignment_1_2 ) ) ) + // InternalFiacre.g:12451:1: ( ( rule__StatementSequence__StatementsAssignment_1_2 ) ) + { + // InternalFiacre.g:12451:1: ( ( rule__StatementSequence__StatementsAssignment_1_2 ) ) + // InternalFiacre.g:12452:2: ( rule__StatementSequence__StatementsAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementSequenceAccess().getStatementsAssignment_1_2()); + } + // InternalFiacre.g:12453:2: ( rule__StatementSequence__StatementsAssignment_1_2 ) + // InternalFiacre.g:12453:3: rule__StatementSequence__StatementsAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StatementSequence__StatementsAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementSequenceAccess().getStatementsAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementSequence__Group_1__2__Impl" + + + // $ANTLR start "rule__BlockStatement__Group__0" + // InternalFiacre.g:12462:1: rule__BlockStatement__Group__0 : rule__BlockStatement__Group__0__Impl rule__BlockStatement__Group__1 ; + public final void rule__BlockStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12466:1: ( rule__BlockStatement__Group__0__Impl rule__BlockStatement__Group__1 ) + // InternalFiacre.g:12467:2: rule__BlockStatement__Group__0__Impl rule__BlockStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__BlockStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__BlockStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BlockStatement__Group__0" + + + // $ANTLR start "rule__BlockStatement__Group__0__Impl" + // InternalFiacre.g:12474:1: rule__BlockStatement__Group__0__Impl : ( 'begin' ) ; + public final void rule__BlockStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12478:1: ( ( 'begin' ) ) + // InternalFiacre.g:12479:1: ( 'begin' ) + { + // InternalFiacre.g:12479:1: ( 'begin' ) + // InternalFiacre.g:12480:2: 'begin' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockStatementAccess().getBeginKeyword_0()); + } + match(input,54,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBlockStatementAccess().getBeginKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BlockStatement__Group__0__Impl" + + + // $ANTLR start "rule__BlockStatement__Group__1" + // InternalFiacre.g:12489:1: rule__BlockStatement__Group__1 : rule__BlockStatement__Group__1__Impl rule__BlockStatement__Group__2 ; + public final void rule__BlockStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12493:1: ( rule__BlockStatement__Group__1__Impl rule__BlockStatement__Group__2 ) + // InternalFiacre.g:12494:2: rule__BlockStatement__Group__1__Impl rule__BlockStatement__Group__2 + { + pushFollow(FollowSets000.FOLLOW_60); + rule__BlockStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__BlockStatement__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BlockStatement__Group__1" + + + // $ANTLR start "rule__BlockStatement__Group__1__Impl" + // InternalFiacre.g:12501:1: rule__BlockStatement__Group__1__Impl : ( ( rule__BlockStatement__BodyAssignment_1 ) ) ; + public final void rule__BlockStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12505:1: ( ( ( rule__BlockStatement__BodyAssignment_1 ) ) ) + // InternalFiacre.g:12506:1: ( ( rule__BlockStatement__BodyAssignment_1 ) ) + { + // InternalFiacre.g:12506:1: ( ( rule__BlockStatement__BodyAssignment_1 ) ) + // InternalFiacre.g:12507:2: ( rule__BlockStatement__BodyAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockStatementAccess().getBodyAssignment_1()); + } + // InternalFiacre.g:12508:2: ( rule__BlockStatement__BodyAssignment_1 ) + // InternalFiacre.g:12508:3: rule__BlockStatement__BodyAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BlockStatement__BodyAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBlockStatementAccess().getBodyAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BlockStatement__Group__1__Impl" + + + // $ANTLR start "rule__BlockStatement__Group__2" + // InternalFiacre.g:12516:1: rule__BlockStatement__Group__2 : rule__BlockStatement__Group__2__Impl ; + public final void rule__BlockStatement__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12520:1: ( rule__BlockStatement__Group__2__Impl ) + // InternalFiacre.g:12521:2: rule__BlockStatement__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BlockStatement__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BlockStatement__Group__2" + + + // $ANTLR start "rule__BlockStatement__Group__2__Impl" + // InternalFiacre.g:12527:1: rule__BlockStatement__Group__2__Impl : ( 'end' ) ; + public final void rule__BlockStatement__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12531:1: ( ( 'end' ) ) + // InternalFiacre.g:12532:1: ( 'end' ) + { + // InternalFiacre.g:12532:1: ( 'end' ) + // InternalFiacre.g:12533:2: 'end' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockStatementAccess().getEndKeyword_2()); + } + match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBlockStatementAccess().getEndKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BlockStatement__Group__2__Impl" + + + // $ANTLR start "rule__ReturnStatement__Group__0" + // InternalFiacre.g:12543:1: rule__ReturnStatement__Group__0 : rule__ReturnStatement__Group__0__Impl rule__ReturnStatement__Group__1 ; + public final void rule__ReturnStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12547:1: ( rule__ReturnStatement__Group__0__Impl rule__ReturnStatement__Group__1 ) + // InternalFiacre.g:12548:2: rule__ReturnStatement__Group__0__Impl rule__ReturnStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ReturnStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ReturnStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReturnStatement__Group__0" + + + // $ANTLR start "rule__ReturnStatement__Group__0__Impl" + // InternalFiacre.g:12555:1: rule__ReturnStatement__Group__0__Impl : ( 'return' ) ; + public final void rule__ReturnStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12559:1: ( ( 'return' ) ) + // InternalFiacre.g:12560:1: ( 'return' ) + { + // InternalFiacre.g:12560:1: ( 'return' ) + // InternalFiacre.g:12561:2: 'return' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReturnStatementAccess().getReturnKeyword_0()); + } + match(input,55,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getReturnStatementAccess().getReturnKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReturnStatement__Group__0__Impl" + + + // $ANTLR start "rule__ReturnStatement__Group__1" + // InternalFiacre.g:12570:1: rule__ReturnStatement__Group__1 : rule__ReturnStatement__Group__1__Impl ; + public final void rule__ReturnStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12574:1: ( rule__ReturnStatement__Group__1__Impl ) + // InternalFiacre.g:12575:2: rule__ReturnStatement__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ReturnStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReturnStatement__Group__1" + + + // $ANTLR start "rule__ReturnStatement__Group__1__Impl" + // InternalFiacre.g:12581:1: rule__ReturnStatement__Group__1__Impl : ( ( rule__ReturnStatement__ExpressionAssignment_1 ) ) ; + public final void rule__ReturnStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12585:1: ( ( ( rule__ReturnStatement__ExpressionAssignment_1 ) ) ) + // InternalFiacre.g:12586:1: ( ( rule__ReturnStatement__ExpressionAssignment_1 ) ) + { + // InternalFiacre.g:12586:1: ( ( rule__ReturnStatement__ExpressionAssignment_1 ) ) + // InternalFiacre.g:12587:2: ( rule__ReturnStatement__ExpressionAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReturnStatementAccess().getExpressionAssignment_1()); + } + // InternalFiacre.g:12588:2: ( rule__ReturnStatement__ExpressionAssignment_1 ) + // InternalFiacre.g:12588:3: rule__ReturnStatement__ExpressionAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ReturnStatement__ExpressionAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getReturnStatementAccess().getExpressionAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReturnStatement__Group__1__Impl" + + + // $ANTLR start "rule__NullStatement__Group__0" + // InternalFiacre.g:12597:1: rule__NullStatement__Group__0 : rule__NullStatement__Group__0__Impl rule__NullStatement__Group__1 ; + public final void rule__NullStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12601:1: ( rule__NullStatement__Group__0__Impl rule__NullStatement__Group__1 ) + // InternalFiacre.g:12602:2: rule__NullStatement__Group__0__Impl rule__NullStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_61); + rule__NullStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__NullStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NullStatement__Group__0" + + + // $ANTLR start "rule__NullStatement__Group__0__Impl" + // InternalFiacre.g:12609:1: rule__NullStatement__Group__0__Impl : ( () ) ; + public final void rule__NullStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12613:1: ( ( () ) ) + // InternalFiacre.g:12614:1: ( () ) + { + // InternalFiacre.g:12614:1: ( () ) + // InternalFiacre.g:12615:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNullStatementAccess().getNullStatementAction_0()); + } + // InternalFiacre.g:12616:2: () + // InternalFiacre.g:12616:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNullStatementAccess().getNullStatementAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NullStatement__Group__0__Impl" + + + // $ANTLR start "rule__NullStatement__Group__1" + // InternalFiacre.g:12624:1: rule__NullStatement__Group__1 : rule__NullStatement__Group__1__Impl ; + public final void rule__NullStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12628:1: ( rule__NullStatement__Group__1__Impl ) + // InternalFiacre.g:12629:2: rule__NullStatement__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NullStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NullStatement__Group__1" + + + // $ANTLR start "rule__NullStatement__Group__1__Impl" + // InternalFiacre.g:12635:1: rule__NullStatement__Group__1__Impl : ( 'null' ) ; + public final void rule__NullStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12639:1: ( ( 'null' ) ) + // InternalFiacre.g:12640:1: ( 'null' ) + { + // InternalFiacre.g:12640:1: ( 'null' ) + // InternalFiacre.g:12641:2: 'null' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNullStatementAccess().getNullKeyword_1()); + } + match(input,56,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNullStatementAccess().getNullKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NullStatement__Group__1__Impl" + + + // $ANTLR start "rule__TaggedStatement__Group__0" + // InternalFiacre.g:12651:1: rule__TaggedStatement__Group__0 : rule__TaggedStatement__Group__0__Impl rule__TaggedStatement__Group__1 ; + public final void rule__TaggedStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12655:1: ( rule__TaggedStatement__Group__0__Impl rule__TaggedStatement__Group__1 ) + // InternalFiacre.g:12656:2: rule__TaggedStatement__Group__0__Impl rule__TaggedStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__TaggedStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__TaggedStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TaggedStatement__Group__0" + + + // $ANTLR start "rule__TaggedStatement__Group__0__Impl" + // InternalFiacre.g:12663:1: rule__TaggedStatement__Group__0__Impl : ( '#' ) ; + public final void rule__TaggedStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12667:1: ( ( '#' ) ) + // InternalFiacre.g:12668:1: ( '#' ) + { + // InternalFiacre.g:12668:1: ( '#' ) + // InternalFiacre.g:12669:2: '#' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTaggedStatementAccess().getNumberSignKeyword_0()); + } + match(input,30,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTaggedStatementAccess().getNumberSignKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TaggedStatement__Group__0__Impl" + + + // $ANTLR start "rule__TaggedStatement__Group__1" + // InternalFiacre.g:12678:1: rule__TaggedStatement__Group__1 : rule__TaggedStatement__Group__1__Impl ; + public final void rule__TaggedStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12682:1: ( rule__TaggedStatement__Group__1__Impl ) + // InternalFiacre.g:12683:2: rule__TaggedStatement__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TaggedStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TaggedStatement__Group__1" + + + // $ANTLR start "rule__TaggedStatement__Group__1__Impl" + // InternalFiacre.g:12689:1: rule__TaggedStatement__Group__1__Impl : ( ( rule__TaggedStatement__NameAssignment_1 ) ) ; + public final void rule__TaggedStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12693:1: ( ( ( rule__TaggedStatement__NameAssignment_1 ) ) ) + // InternalFiacre.g:12694:1: ( ( rule__TaggedStatement__NameAssignment_1 ) ) + { + // InternalFiacre.g:12694:1: ( ( rule__TaggedStatement__NameAssignment_1 ) ) + // InternalFiacre.g:12695:2: ( rule__TaggedStatement__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTaggedStatementAccess().getNameAssignment_1()); + } + // InternalFiacre.g:12696:2: ( rule__TaggedStatement__NameAssignment_1 ) + // InternalFiacre.g:12696:3: rule__TaggedStatement__NameAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TaggedStatement__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTaggedStatementAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TaggedStatement__Group__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group__0" + // InternalFiacre.g:12705:1: rule__PatternStatement__Group__0 : rule__PatternStatement__Group__0__Impl rule__PatternStatement__Group__1 ; + public final void rule__PatternStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12709:1: ( rule__PatternStatement__Group__0__Impl rule__PatternStatement__Group__1 ) + // InternalFiacre.g:12710:2: rule__PatternStatement__Group__0__Impl rule__PatternStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_62); + rule__PatternStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group__0" + + + // $ANTLR start "rule__PatternStatement__Group__0__Impl" + // InternalFiacre.g:12717:1: rule__PatternStatement__Group__0__Impl : ( rulePattern ) ; + public final void rule__PatternStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12721:1: ( ( rulePattern ) ) + // InternalFiacre.g:12722:1: ( rulePattern ) + { + // InternalFiacre.g:12722:1: ( rulePattern ) + // InternalFiacre.g:12723:2: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group__1" + // InternalFiacre.g:12732:1: rule__PatternStatement__Group__1 : rule__PatternStatement__Group__1__Impl ; + public final void rule__PatternStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12736:1: ( rule__PatternStatement__Group__1__Impl ) + // InternalFiacre.g:12737:2: rule__PatternStatement__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group__1" + + + // $ANTLR start "rule__PatternStatement__Group__1__Impl" + // InternalFiacre.g:12743:1: rule__PatternStatement__Group__1__Impl : ( ( rule__PatternStatement__Alternatives_1 )? ) ; + public final void rule__PatternStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12747:1: ( ( ( rule__PatternStatement__Alternatives_1 )? ) ) + // InternalFiacre.g:12748:1: ( ( rule__PatternStatement__Alternatives_1 )? ) + { + // InternalFiacre.g:12748:1: ( ( rule__PatternStatement__Alternatives_1 )? ) + // InternalFiacre.g:12749:2: ( rule__PatternStatement__Alternatives_1 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getAlternatives_1()); + } + // InternalFiacre.g:12750:2: ( rule__PatternStatement__Alternatives_1 )? + int alt122=2; + int LA122_0 = input.LA(1); + + if ( (LA122_0==24||LA122_0==50||(LA122_0>=59 && LA122_0<=60)) ) { + alt122=1; + } + switch (alt122) { + case 1 : + // InternalFiacre.g:12750:3: rule__PatternStatement__Alternatives_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Alternatives_1(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getAlternatives_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__0" + // InternalFiacre.g:12759:1: rule__PatternStatement__Group_1_0__0 : rule__PatternStatement__Group_1_0__0__Impl rule__PatternStatement__Group_1_0__1 ; + public final void rule__PatternStatement__Group_1_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12763:1: ( rule__PatternStatement__Group_1_0__0__Impl rule__PatternStatement__Group_1_0__1 ) + // InternalFiacre.g:12764:2: rule__PatternStatement__Group_1_0__0__Impl rule__PatternStatement__Group_1_0__1 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__PatternStatement__Group_1_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__0__Impl" + // InternalFiacre.g:12771:1: rule__PatternStatement__Group_1_0__0__Impl : ( ',' ) ; + public final void rule__PatternStatement__Group_1_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12775:1: ( ( ',' ) ) + // InternalFiacre.g:12776:1: ( ',' ) + { + // InternalFiacre.g:12776:1: ( ',' ) + // InternalFiacre.g:12777:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__1" + // InternalFiacre.g:12786:1: rule__PatternStatement__Group_1_0__1 : rule__PatternStatement__Group_1_0__1__Impl rule__PatternStatement__Group_1_0__2 ; + public final void rule__PatternStatement__Group_1_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12790:1: ( rule__PatternStatement__Group_1_0__1__Impl rule__PatternStatement__Group_1_0__2 ) + // InternalFiacre.g:12791:2: rule__PatternStatement__Group_1_0__1__Impl rule__PatternStatement__Group_1_0__2 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__PatternStatement__Group_1_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__1__Impl" + // InternalFiacre.g:12798:1: rule__PatternStatement__Group_1_0__1__Impl : ( () ) ; + public final void rule__PatternStatement__Group_1_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12802:1: ( ( () ) ) + // InternalFiacre.g:12803:1: ( () ) + { + // InternalFiacre.g:12803:1: ( () ) + // InternalFiacre.g:12804:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_0_1()); + } + // InternalFiacre.g:12805:2: () + // InternalFiacre.g:12805:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_0_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__2" + // InternalFiacre.g:12813:1: rule__PatternStatement__Group_1_0__2 : rule__PatternStatement__Group_1_0__2__Impl rule__PatternStatement__Group_1_0__3 ; + public final void rule__PatternStatement__Group_1_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12817:1: ( rule__PatternStatement__Group_1_0__2__Impl rule__PatternStatement__Group_1_0__3 ) + // InternalFiacre.g:12818:2: rule__PatternStatement__Group_1_0__2__Impl rule__PatternStatement__Group_1_0__3 + { + pushFollow(FollowSets000.FOLLOW_64); + rule__PatternStatement__Group_1_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__2" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__2__Impl" + // InternalFiacre.g:12825:1: rule__PatternStatement__Group_1_0__2__Impl : ( ( rule__PatternStatement__PatternsAssignment_1_0_2 ) ) ; + public final void rule__PatternStatement__Group_1_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12829:1: ( ( ( rule__PatternStatement__PatternsAssignment_1_0_2 ) ) ) + // InternalFiacre.g:12830:1: ( ( rule__PatternStatement__PatternsAssignment_1_0_2 ) ) + { + // InternalFiacre.g:12830:1: ( ( rule__PatternStatement__PatternsAssignment_1_0_2 ) ) + // InternalFiacre.g:12831:2: ( rule__PatternStatement__PatternsAssignment_1_0_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_0_2()); + } + // InternalFiacre.g:12832:2: ( rule__PatternStatement__PatternsAssignment_1_0_2 ) + // InternalFiacre.g:12832:3: rule__PatternStatement__PatternsAssignment_1_0_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__PatternsAssignment_1_0_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__2__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__3" + // InternalFiacre.g:12840:1: rule__PatternStatement__Group_1_0__3 : rule__PatternStatement__Group_1_0__3__Impl rule__PatternStatement__Group_1_0__4 ; + public final void rule__PatternStatement__Group_1_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12844:1: ( rule__PatternStatement__Group_1_0__3__Impl rule__PatternStatement__Group_1_0__4 ) + // InternalFiacre.g:12845:2: rule__PatternStatement__Group_1_0__3__Impl rule__PatternStatement__Group_1_0__4 + { + pushFollow(FollowSets000.FOLLOW_64); + rule__PatternStatement__Group_1_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__3" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__3__Impl" + // InternalFiacre.g:12852:1: rule__PatternStatement__Group_1_0__3__Impl : ( ( rule__PatternStatement__Group_1_0_3__0 )* ) ; + public final void rule__PatternStatement__Group_1_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12856:1: ( ( ( rule__PatternStatement__Group_1_0_3__0 )* ) ) + // InternalFiacre.g:12857:1: ( ( rule__PatternStatement__Group_1_0_3__0 )* ) + { + // InternalFiacre.g:12857:1: ( ( rule__PatternStatement__Group_1_0_3__0 )* ) + // InternalFiacre.g:12858:2: ( rule__PatternStatement__Group_1_0_3__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_0_3()); + } + // InternalFiacre.g:12859:2: ( rule__PatternStatement__Group_1_0_3__0 )* + loop123: + do { + int alt123=2; + int LA123_0 = input.LA(1); + + if ( (LA123_0==24) ) { + alt123=1; + } + + + switch (alt123) { + case 1 : + // InternalFiacre.g:12859:3: rule__PatternStatement__Group_1_0_3__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__PatternStatement__Group_1_0_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop123; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__3__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__4" + // InternalFiacre.g:12867:1: rule__PatternStatement__Group_1_0__4 : rule__PatternStatement__Group_1_0__4__Impl rule__PatternStatement__Group_1_0__5 ; + public final void rule__PatternStatement__Group_1_0__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12871:1: ( rule__PatternStatement__Group_1_0__4__Impl rule__PatternStatement__Group_1_0__5 ) + // InternalFiacre.g:12872:2: rule__PatternStatement__Group_1_0__4__Impl rule__PatternStatement__Group_1_0__5 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_0__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__4" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__4__Impl" + // InternalFiacre.g:12879:1: rule__PatternStatement__Group_1_0__4__Impl : ( ':=' ) ; + public final void rule__PatternStatement__Group_1_0__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12883:1: ( ( ':=' ) ) + // InternalFiacre.g:12884:1: ( ':=' ) + { + // InternalFiacre.g:12884:1: ( ':=' ) + // InternalFiacre.g:12885:2: ':=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_0_4()); + } + match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_0_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__4__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__5" + // InternalFiacre.g:12894:1: rule__PatternStatement__Group_1_0__5 : rule__PatternStatement__Group_1_0__5__Impl rule__PatternStatement__Group_1_0__6 ; + public final void rule__PatternStatement__Group_1_0__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12898:1: ( rule__PatternStatement__Group_1_0__5__Impl rule__PatternStatement__Group_1_0__6 ) + // InternalFiacre.g:12899:2: rule__PatternStatement__Group_1_0__5__Impl rule__PatternStatement__Group_1_0__6 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__PatternStatement__Group_1_0__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__5" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__5__Impl" + // InternalFiacre.g:12906:1: rule__PatternStatement__Group_1_0__5__Impl : ( ( rule__PatternStatement__ValuesAssignment_1_0_5 ) ) ; + public final void rule__PatternStatement__Group_1_0__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12910:1: ( ( ( rule__PatternStatement__ValuesAssignment_1_0_5 ) ) ) + // InternalFiacre.g:12911:1: ( ( rule__PatternStatement__ValuesAssignment_1_0_5 ) ) + { + // InternalFiacre.g:12911:1: ( ( rule__PatternStatement__ValuesAssignment_1_0_5 ) ) + // InternalFiacre.g:12912:2: ( rule__PatternStatement__ValuesAssignment_1_0_5 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_0_5()); + } + // InternalFiacre.g:12913:2: ( rule__PatternStatement__ValuesAssignment_1_0_5 ) + // InternalFiacre.g:12913:3: rule__PatternStatement__ValuesAssignment_1_0_5 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__ValuesAssignment_1_0_5(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_0_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__5__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__6" + // InternalFiacre.g:12921:1: rule__PatternStatement__Group_1_0__6 : rule__PatternStatement__Group_1_0__6__Impl ; + public final void rule__PatternStatement__Group_1_0__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12925:1: ( rule__PatternStatement__Group_1_0__6__Impl ) + // InternalFiacre.g:12926:2: rule__PatternStatement__Group_1_0__6__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0__6__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__6" + + + // $ANTLR start "rule__PatternStatement__Group_1_0__6__Impl" + // InternalFiacre.g:12932:1: rule__PatternStatement__Group_1_0__6__Impl : ( ( rule__PatternStatement__Group_1_0_6__0 )* ) ; + public final void rule__PatternStatement__Group_1_0__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12936:1: ( ( ( rule__PatternStatement__Group_1_0_6__0 )* ) ) + // InternalFiacre.g:12937:1: ( ( rule__PatternStatement__Group_1_0_6__0 )* ) + { + // InternalFiacre.g:12937:1: ( ( rule__PatternStatement__Group_1_0_6__0 )* ) + // InternalFiacre.g:12938:2: ( rule__PatternStatement__Group_1_0_6__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_0_6()); + } + // InternalFiacre.g:12939:2: ( rule__PatternStatement__Group_1_0_6__0 )* + loop124: + do { + int alt124=2; + int LA124_0 = input.LA(1); + + if ( (LA124_0==24) ) { + alt124=1; + } + + + switch (alt124) { + case 1 : + // InternalFiacre.g:12939:3: rule__PatternStatement__Group_1_0_6__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__PatternStatement__Group_1_0_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop124; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_0_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0__6__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0_3__0" + // InternalFiacre.g:12948:1: rule__PatternStatement__Group_1_0_3__0 : rule__PatternStatement__Group_1_0_3__0__Impl rule__PatternStatement__Group_1_0_3__1 ; + public final void rule__PatternStatement__Group_1_0_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12952:1: ( rule__PatternStatement__Group_1_0_3__0__Impl rule__PatternStatement__Group_1_0_3__1 ) + // InternalFiacre.g:12953:2: rule__PatternStatement__Group_1_0_3__0__Impl rule__PatternStatement__Group_1_0_3__1 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__PatternStatement__Group_1_0_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0_3__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_0_3__0__Impl" + // InternalFiacre.g:12960:1: rule__PatternStatement__Group_1_0_3__0__Impl : ( ',' ) ; + public final void rule__PatternStatement__Group_1_0_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12964:1: ( ( ',' ) ) + // InternalFiacre.g:12965:1: ( ',' ) + { + // InternalFiacre.g:12965:1: ( ',' ) + // InternalFiacre.g:12966:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_3_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0_3__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0_3__1" + // InternalFiacre.g:12975:1: rule__PatternStatement__Group_1_0_3__1 : rule__PatternStatement__Group_1_0_3__1__Impl ; + public final void rule__PatternStatement__Group_1_0_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12979:1: ( rule__PatternStatement__Group_1_0_3__1__Impl ) + // InternalFiacre.g:12980:2: rule__PatternStatement__Group_1_0_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_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__PatternStatement__Group_1_0_3__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_0_3__1__Impl" + // InternalFiacre.g:12986:1: rule__PatternStatement__Group_1_0_3__1__Impl : ( ( rule__PatternStatement__PatternsAssignment_1_0_3_1 ) ) ; + public final void rule__PatternStatement__Group_1_0_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:12990:1: ( ( ( rule__PatternStatement__PatternsAssignment_1_0_3_1 ) ) ) + // InternalFiacre.g:12991:1: ( ( rule__PatternStatement__PatternsAssignment_1_0_3_1 ) ) + { + // InternalFiacre.g:12991:1: ( ( rule__PatternStatement__PatternsAssignment_1_0_3_1 ) ) + // InternalFiacre.g:12992:2: ( rule__PatternStatement__PatternsAssignment_1_0_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_0_3_1()); + } + // InternalFiacre.g:12993:2: ( rule__PatternStatement__PatternsAssignment_1_0_3_1 ) + // InternalFiacre.g:12993:3: rule__PatternStatement__PatternsAssignment_1_0_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__PatternsAssignment_1_0_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_0_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0_3__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0_6__0" + // InternalFiacre.g:13002:1: rule__PatternStatement__Group_1_0_6__0 : rule__PatternStatement__Group_1_0_6__0__Impl rule__PatternStatement__Group_1_0_6__1 ; + public final void rule__PatternStatement__Group_1_0_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13006:1: ( rule__PatternStatement__Group_1_0_6__0__Impl rule__PatternStatement__Group_1_0_6__1 ) + // InternalFiacre.g:13007:2: rule__PatternStatement__Group_1_0_6__0__Impl rule__PatternStatement__Group_1_0_6__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_0_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0_6__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0_6__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_0_6__0__Impl" + // InternalFiacre.g:13014:1: rule__PatternStatement__Group_1_0_6__0__Impl : ( ',' ) ; + public final void rule__PatternStatement__Group_1_0_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13018:1: ( ( ',' ) ) + // InternalFiacre.g:13019:1: ( ',' ) + { + // InternalFiacre.g:13019:1: ( ',' ) + // InternalFiacre.g:13020:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_6_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_6_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0_6__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_0_6__1" + // InternalFiacre.g:13029:1: rule__PatternStatement__Group_1_0_6__1 : rule__PatternStatement__Group_1_0_6__1__Impl ; + public final void rule__PatternStatement__Group_1_0_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13033:1: ( rule__PatternStatement__Group_1_0_6__1__Impl ) + // InternalFiacre.g:13034:2: rule__PatternStatement__Group_1_0_6__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_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__PatternStatement__Group_1_0_6__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_0_6__1__Impl" + // InternalFiacre.g:13040:1: rule__PatternStatement__Group_1_0_6__1__Impl : ( ( rule__PatternStatement__ValuesAssignment_1_0_6_1 ) ) ; + public final void rule__PatternStatement__Group_1_0_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13044:1: ( ( ( rule__PatternStatement__ValuesAssignment_1_0_6_1 ) ) ) + // InternalFiacre.g:13045:1: ( ( rule__PatternStatement__ValuesAssignment_1_0_6_1 ) ) + { + // InternalFiacre.g:13045:1: ( ( rule__PatternStatement__ValuesAssignment_1_0_6_1 ) ) + // InternalFiacre.g:13046:2: ( rule__PatternStatement__ValuesAssignment_1_0_6_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_0_6_1()); + } + // InternalFiacre.g:13047:2: ( rule__PatternStatement__ValuesAssignment_1_0_6_1 ) + // InternalFiacre.g:13047:3: rule__PatternStatement__ValuesAssignment_1_0_6_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__ValuesAssignment_1_0_6_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_0_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_0_6__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_1__0" + // InternalFiacre.g:13056:1: rule__PatternStatement__Group_1_1__0 : rule__PatternStatement__Group_1_1__0__Impl rule__PatternStatement__Group_1_1__1 ; + public final void rule__PatternStatement__Group_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13060:1: ( rule__PatternStatement__Group_1_1__0__Impl rule__PatternStatement__Group_1_1__1 ) + // InternalFiacre.g:13061:2: rule__PatternStatement__Group_1_1__0__Impl rule__PatternStatement__Group_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__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__PatternStatement__Group_1_1__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_1__0__Impl" + // InternalFiacre.g:13068:1: rule__PatternStatement__Group_1_1__0__Impl : ( ':=' ) ; + public final void rule__PatternStatement__Group_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13072:1: ( ( ':=' ) ) + // InternalFiacre.g:13073:1: ( ':=' ) + { + // InternalFiacre.g:13073:1: ( ':=' ) + // InternalFiacre.g:13074:2: ':=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_1_0()); + } + match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_1__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_1__1" + // InternalFiacre.g:13083:1: rule__PatternStatement__Group_1_1__1 : rule__PatternStatement__Group_1_1__1__Impl rule__PatternStatement__Group_1_1__2 ; + public final void rule__PatternStatement__Group_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13087:1: ( rule__PatternStatement__Group_1_1__1__Impl rule__PatternStatement__Group_1_1__2 ) + // InternalFiacre.g:13088:2: rule__PatternStatement__Group_1_1__1__Impl rule__PatternStatement__Group_1_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_1__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_1__1__Impl" + // InternalFiacre.g:13095:1: rule__PatternStatement__Group_1_1__1__Impl : ( () ) ; + public final void rule__PatternStatement__Group_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13099:1: ( ( () ) ) + // InternalFiacre.g:13100:1: ( () ) + { + // InternalFiacre.g:13100:1: ( () ) + // InternalFiacre.g:13101:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_1_1()); + } + // InternalFiacre.g:13102:2: () + // InternalFiacre.g:13102:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_1_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_1__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_1__2" + // InternalFiacre.g:13110:1: rule__PatternStatement__Group_1_1__2 : rule__PatternStatement__Group_1_1__2__Impl ; + public final void rule__PatternStatement__Group_1_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13114:1: ( rule__PatternStatement__Group_1_1__2__Impl ) + // InternalFiacre.g:13115:2: rule__PatternStatement__Group_1_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_1__2" + + + // $ANTLR start "rule__PatternStatement__Group_1_1__2__Impl" + // InternalFiacre.g:13121:1: rule__PatternStatement__Group_1_1__2__Impl : ( ( rule__PatternStatement__Group_1_1_2__0 ) ) ; + public final void rule__PatternStatement__Group_1_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13125:1: ( ( ( rule__PatternStatement__Group_1_1_2__0 ) ) ) + // InternalFiacre.g:13126:1: ( ( rule__PatternStatement__Group_1_1_2__0 ) ) + { + // InternalFiacre.g:13126:1: ( ( rule__PatternStatement__Group_1_1_2__0 ) ) + // InternalFiacre.g:13127:2: ( rule__PatternStatement__Group_1_1_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_1_2()); + } + // InternalFiacre.g:13128:2: ( rule__PatternStatement__Group_1_1_2__0 ) + // InternalFiacre.g:13128:3: rule__PatternStatement__Group_1_1_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_1_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_1__2__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_1_2__0" + // InternalFiacre.g:13137:1: rule__PatternStatement__Group_1_1_2__0 : rule__PatternStatement__Group_1_1_2__0__Impl rule__PatternStatement__Group_1_1_2__1 ; + public final void rule__PatternStatement__Group_1_1_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13141:1: ( rule__PatternStatement__Group_1_1_2__0__Impl rule__PatternStatement__Group_1_1_2__1 ) + // InternalFiacre.g:13142:2: rule__PatternStatement__Group_1_1_2__0__Impl rule__PatternStatement__Group_1_1_2__1 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__PatternStatement__Group_1_1_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_1_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_1_2__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_1_2__0__Impl" + // InternalFiacre.g:13149:1: rule__PatternStatement__Group_1_1_2__0__Impl : ( ( rule__PatternStatement__ValuesAssignment_1_1_2_0 ) ) ; + public final void rule__PatternStatement__Group_1_1_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13153:1: ( ( ( rule__PatternStatement__ValuesAssignment_1_1_2_0 ) ) ) + // InternalFiacre.g:13154:1: ( ( rule__PatternStatement__ValuesAssignment_1_1_2_0 ) ) + { + // InternalFiacre.g:13154:1: ( ( rule__PatternStatement__ValuesAssignment_1_1_2_0 ) ) + // InternalFiacre.g:13155:2: ( rule__PatternStatement__ValuesAssignment_1_1_2_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_1_2_0()); + } + // InternalFiacre.g:13156:2: ( rule__PatternStatement__ValuesAssignment_1_1_2_0 ) + // InternalFiacre.g:13156:3: rule__PatternStatement__ValuesAssignment_1_1_2_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__ValuesAssignment_1_1_2_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_1_2__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_1_2__1" + // InternalFiacre.g:13164:1: rule__PatternStatement__Group_1_1_2__1 : rule__PatternStatement__Group_1_1_2__1__Impl ; + public final void rule__PatternStatement__Group_1_1_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13168:1: ( rule__PatternStatement__Group_1_1_2__1__Impl ) + // InternalFiacre.g:13169:2: rule__PatternStatement__Group_1_1_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_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__PatternStatement__Group_1_1_2__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_1_2__1__Impl" + // InternalFiacre.g:13175:1: rule__PatternStatement__Group_1_1_2__1__Impl : ( ( rule__PatternStatement__Group_1_1_2_1__0 )* ) ; + public final void rule__PatternStatement__Group_1_1_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13179:1: ( ( ( rule__PatternStatement__Group_1_1_2_1__0 )* ) ) + // InternalFiacre.g:13180:1: ( ( rule__PatternStatement__Group_1_1_2_1__0 )* ) + { + // InternalFiacre.g:13180:1: ( ( rule__PatternStatement__Group_1_1_2_1__0 )* ) + // InternalFiacre.g:13181:2: ( rule__PatternStatement__Group_1_1_2_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_1_2_1()); + } + // InternalFiacre.g:13182:2: ( rule__PatternStatement__Group_1_1_2_1__0 )* + loop125: + do { + int alt125=2; + int LA125_0 = input.LA(1); + + if ( (LA125_0==24) ) { + alt125=1; + } + + + switch (alt125) { + case 1 : + // InternalFiacre.g:13182:3: rule__PatternStatement__Group_1_1_2_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__PatternStatement__Group_1_1_2_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop125; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_1_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_1_2__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_1_2_1__0" + // InternalFiacre.g:13191:1: rule__PatternStatement__Group_1_1_2_1__0 : rule__PatternStatement__Group_1_1_2_1__0__Impl rule__PatternStatement__Group_1_1_2_1__1 ; + public final void rule__PatternStatement__Group_1_1_2_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13195:1: ( rule__PatternStatement__Group_1_1_2_1__0__Impl rule__PatternStatement__Group_1_1_2_1__1 ) + // InternalFiacre.g:13196:2: rule__PatternStatement__Group_1_1_2_1__0__Impl rule__PatternStatement__Group_1_1_2_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_1_2_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__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__PatternStatement__Group_1_1_2_1__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_1_2_1__0__Impl" + // InternalFiacre.g:13203:1: rule__PatternStatement__Group_1_1_2_1__0__Impl : ( ',' ) ; + public final void rule__PatternStatement__Group_1_1_2_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13207:1: ( ( ',' ) ) + // InternalFiacre.g:13208:1: ( ',' ) + { + // InternalFiacre.g:13208:1: ( ',' ) + // InternalFiacre.g:13209:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_1_2_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_1_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_1_2_1__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_1_2_1__1" + // InternalFiacre.g:13218:1: rule__PatternStatement__Group_1_1_2_1__1 : rule__PatternStatement__Group_1_1_2_1__1__Impl ; + public final void rule__PatternStatement__Group_1_1_2_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13222:1: ( rule__PatternStatement__Group_1_1_2_1__1__Impl ) + // InternalFiacre.g:13223:2: rule__PatternStatement__Group_1_1_2_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_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__PatternStatement__Group_1_1_2_1__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_1_2_1__1__Impl" + // InternalFiacre.g:13229:1: rule__PatternStatement__Group_1_1_2_1__1__Impl : ( ( rule__PatternStatement__ValuesAssignment_1_1_2_1_1 ) ) ; + public final void rule__PatternStatement__Group_1_1_2_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13233:1: ( ( ( rule__PatternStatement__ValuesAssignment_1_1_2_1_1 ) ) ) + // InternalFiacre.g:13234:1: ( ( rule__PatternStatement__ValuesAssignment_1_1_2_1_1 ) ) + { + // InternalFiacre.g:13234:1: ( ( rule__PatternStatement__ValuesAssignment_1_1_2_1_1 ) ) + // InternalFiacre.g:13235:2: ( rule__PatternStatement__ValuesAssignment_1_1_2_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_1_2_1_1()); + } + // InternalFiacre.g:13236:2: ( rule__PatternStatement__ValuesAssignment_1_1_2_1_1 ) + // InternalFiacre.g:13236:3: rule__PatternStatement__ValuesAssignment_1_1_2_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__ValuesAssignment_1_1_2_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_1_2_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_1_2_1__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__0" + // InternalFiacre.g:13245:1: rule__PatternStatement__Group_1_2__0 : rule__PatternStatement__Group_1_2__0__Impl rule__PatternStatement__Group_1_2__1 ; + public final void rule__PatternStatement__Group_1_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13249:1: ( rule__PatternStatement__Group_1_2__0__Impl rule__PatternStatement__Group_1_2__1 ) + // InternalFiacre.g:13250:2: rule__PatternStatement__Group_1_2__0__Impl rule__PatternStatement__Group_1_2__1 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__PatternStatement__Group_1_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__0__Impl" + // InternalFiacre.g:13257:1: rule__PatternStatement__Group_1_2__0__Impl : ( ',' ) ; + public final void rule__PatternStatement__Group_1_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13261:1: ( ( ',' ) ) + // InternalFiacre.g:13262:1: ( ',' ) + { + // InternalFiacre.g:13262:1: ( ',' ) + // InternalFiacre.g:13263:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__1" + // InternalFiacre.g:13272:1: rule__PatternStatement__Group_1_2__1 : rule__PatternStatement__Group_1_2__1__Impl rule__PatternStatement__Group_1_2__2 ; + public final void rule__PatternStatement__Group_1_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13276:1: ( rule__PatternStatement__Group_1_2__1__Impl rule__PatternStatement__Group_1_2__2 ) + // InternalFiacre.g:13277:2: rule__PatternStatement__Group_1_2__1__Impl rule__PatternStatement__Group_1_2__2 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__PatternStatement__Group_1_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__1__Impl" + // InternalFiacre.g:13284:1: rule__PatternStatement__Group_1_2__1__Impl : ( () ) ; + public final void rule__PatternStatement__Group_1_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13288:1: ( ( () ) ) + // InternalFiacre.g:13289:1: ( () ) + { + // InternalFiacre.g:13289:1: ( () ) + // InternalFiacre.g:13290:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_2_1()); + } + // InternalFiacre.g:13291:2: () + // InternalFiacre.g:13291:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_2_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__2" + // InternalFiacre.g:13299:1: rule__PatternStatement__Group_1_2__2 : rule__PatternStatement__Group_1_2__2__Impl rule__PatternStatement__Group_1_2__3 ; + public final void rule__PatternStatement__Group_1_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13303:1: ( rule__PatternStatement__Group_1_2__2__Impl rule__PatternStatement__Group_1_2__3 ) + // InternalFiacre.g:13304:2: rule__PatternStatement__Group_1_2__2__Impl rule__PatternStatement__Group_1_2__3 + { + pushFollow(FollowSets000.FOLLOW_64); + rule__PatternStatement__Group_1_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__2" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__2__Impl" + // InternalFiacre.g:13311:1: rule__PatternStatement__Group_1_2__2__Impl : ( ( rule__PatternStatement__PatternsAssignment_1_2_2 ) ) ; + public final void rule__PatternStatement__Group_1_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13315:1: ( ( ( rule__PatternStatement__PatternsAssignment_1_2_2 ) ) ) + // InternalFiacre.g:13316:1: ( ( rule__PatternStatement__PatternsAssignment_1_2_2 ) ) + { + // InternalFiacre.g:13316:1: ( ( rule__PatternStatement__PatternsAssignment_1_2_2 ) ) + // InternalFiacre.g:13317:2: ( rule__PatternStatement__PatternsAssignment_1_2_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_2_2()); + } + // InternalFiacre.g:13318:2: ( rule__PatternStatement__PatternsAssignment_1_2_2 ) + // InternalFiacre.g:13318:3: rule__PatternStatement__PatternsAssignment_1_2_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__PatternsAssignment_1_2_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__2__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__3" + // InternalFiacre.g:13326:1: rule__PatternStatement__Group_1_2__3 : rule__PatternStatement__Group_1_2__3__Impl rule__PatternStatement__Group_1_2__4 ; + public final void rule__PatternStatement__Group_1_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13330:1: ( rule__PatternStatement__Group_1_2__3__Impl rule__PatternStatement__Group_1_2__4 ) + // InternalFiacre.g:13331:2: rule__PatternStatement__Group_1_2__3__Impl rule__PatternStatement__Group_1_2__4 + { + pushFollow(FollowSets000.FOLLOW_64); + rule__PatternStatement__Group_1_2__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__3" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__3__Impl" + // InternalFiacre.g:13338:1: rule__PatternStatement__Group_1_2__3__Impl : ( ( rule__PatternStatement__Group_1_2_3__0 )* ) ; + public final void rule__PatternStatement__Group_1_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13342:1: ( ( ( rule__PatternStatement__Group_1_2_3__0 )* ) ) + // InternalFiacre.g:13343:1: ( ( rule__PatternStatement__Group_1_2_3__0 )* ) + { + // InternalFiacre.g:13343:1: ( ( rule__PatternStatement__Group_1_2_3__0 )* ) + // InternalFiacre.g:13344:2: ( rule__PatternStatement__Group_1_2_3__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_2_3()); + } + // InternalFiacre.g:13345:2: ( rule__PatternStatement__Group_1_2_3__0 )* + loop126: + do { + int alt126=2; + int LA126_0 = input.LA(1); + + if ( (LA126_0==24) ) { + alt126=1; + } + + + switch (alt126) { + case 1 : + // InternalFiacre.g:13345:3: rule__PatternStatement__Group_1_2_3__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__PatternStatement__Group_1_2_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop126; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_2_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__3__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__4" + // InternalFiacre.g:13353:1: rule__PatternStatement__Group_1_2__4 : rule__PatternStatement__Group_1_2__4__Impl rule__PatternStatement__Group_1_2__5 ; + public final void rule__PatternStatement__Group_1_2__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13357:1: ( rule__PatternStatement__Group_1_2__4__Impl rule__PatternStatement__Group_1_2__5 ) + // InternalFiacre.g:13358:2: rule__PatternStatement__Group_1_2__4__Impl rule__PatternStatement__Group_1_2__5 + { + pushFollow(FollowSets000.FOLLOW_65); + rule__PatternStatement__Group_1_2__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__4" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__4__Impl" + // InternalFiacre.g:13365:1: rule__PatternStatement__Group_1_2__4__Impl : ( ':=' ) ; + public final void rule__PatternStatement__Group_1_2__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13369:1: ( ( ':=' ) ) + // InternalFiacre.g:13370:1: ( ':=' ) + { + // InternalFiacre.g:13370:1: ( ':=' ) + // InternalFiacre.g:13371:2: ':=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_2_4()); + } + match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_2_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__4__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__5" + // InternalFiacre.g:13380:1: rule__PatternStatement__Group_1_2__5 : rule__PatternStatement__Group_1_2__5__Impl rule__PatternStatement__Group_1_2__6 ; + public final void rule__PatternStatement__Group_1_2__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13384:1: ( rule__PatternStatement__Group_1_2__5__Impl rule__PatternStatement__Group_1_2__6 ) + // InternalFiacre.g:13385:2: rule__PatternStatement__Group_1_2__5__Impl rule__PatternStatement__Group_1_2__6 + { + pushFollow(FollowSets000.FOLLOW_66); + rule__PatternStatement__Group_1_2__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__5" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__5__Impl" + // InternalFiacre.g:13392:1: rule__PatternStatement__Group_1_2__5__Impl : ( 'any' ) ; + public final void rule__PatternStatement__Group_1_2__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13396:1: ( ( 'any' ) ) + // InternalFiacre.g:13397:1: ( 'any' ) + { + // InternalFiacre.g:13397:1: ( 'any' ) + // InternalFiacre.g:13398:2: 'any' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getAnyKeyword_1_2_5()); + } + match(input,57,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getAnyKeyword_1_2_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__5__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__6" + // InternalFiacre.g:13407:1: rule__PatternStatement__Group_1_2__6 : rule__PatternStatement__Group_1_2__6__Impl ; + public final void rule__PatternStatement__Group_1_2__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13411:1: ( rule__PatternStatement__Group_1_2__6__Impl ) + // InternalFiacre.g:13412:2: rule__PatternStatement__Group_1_2__6__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2__6__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__6" + + + // $ANTLR start "rule__PatternStatement__Group_1_2__6__Impl" + // InternalFiacre.g:13418:1: rule__PatternStatement__Group_1_2__6__Impl : ( ( rule__PatternStatement__Group_1_2_6__0 )? ) ; + public final void rule__PatternStatement__Group_1_2__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13422:1: ( ( ( rule__PatternStatement__Group_1_2_6__0 )? ) ) + // InternalFiacre.g:13423:1: ( ( rule__PatternStatement__Group_1_2_6__0 )? ) + { + // InternalFiacre.g:13423:1: ( ( rule__PatternStatement__Group_1_2_6__0 )? ) + // InternalFiacre.g:13424:2: ( rule__PatternStatement__Group_1_2_6__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_2_6()); + } + // InternalFiacre.g:13425:2: ( rule__PatternStatement__Group_1_2_6__0 )? + int alt127=2; + int LA127_0 = input.LA(1); + + if ( (LA127_0==58) ) { + alt127=1; + } + switch (alt127) { + case 1 : + // InternalFiacre.g:13425:3: rule__PatternStatement__Group_1_2_6__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_2_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2__6__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2_3__0" + // InternalFiacre.g:13434:1: rule__PatternStatement__Group_1_2_3__0 : rule__PatternStatement__Group_1_2_3__0__Impl rule__PatternStatement__Group_1_2_3__1 ; + public final void rule__PatternStatement__Group_1_2_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13438:1: ( rule__PatternStatement__Group_1_2_3__0__Impl rule__PatternStatement__Group_1_2_3__1 ) + // InternalFiacre.g:13439:2: rule__PatternStatement__Group_1_2_3__0__Impl rule__PatternStatement__Group_1_2_3__1 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__PatternStatement__Group_1_2_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2_3__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_2_3__0__Impl" + // InternalFiacre.g:13446:1: rule__PatternStatement__Group_1_2_3__0__Impl : ( ',' ) ; + public final void rule__PatternStatement__Group_1_2_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13450:1: ( ( ',' ) ) + // InternalFiacre.g:13451:1: ( ',' ) + { + // InternalFiacre.g:13451:1: ( ',' ) + // InternalFiacre.g:13452:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_3_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2_3__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2_3__1" + // InternalFiacre.g:13461:1: rule__PatternStatement__Group_1_2_3__1 : rule__PatternStatement__Group_1_2_3__1__Impl ; + public final void rule__PatternStatement__Group_1_2_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13465:1: ( rule__PatternStatement__Group_1_2_3__1__Impl ) + // InternalFiacre.g:13466:2: rule__PatternStatement__Group_1_2_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2_3__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_2_3__1__Impl" + // InternalFiacre.g:13472:1: rule__PatternStatement__Group_1_2_3__1__Impl : ( ( rule__PatternStatement__PatternsAssignment_1_2_3_1 ) ) ; + public final void rule__PatternStatement__Group_1_2_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13476:1: ( ( ( rule__PatternStatement__PatternsAssignment_1_2_3_1 ) ) ) + // InternalFiacre.g:13477:1: ( ( rule__PatternStatement__PatternsAssignment_1_2_3_1 ) ) + { + // InternalFiacre.g:13477:1: ( ( rule__PatternStatement__PatternsAssignment_1_2_3_1 ) ) + // InternalFiacre.g:13478:2: ( rule__PatternStatement__PatternsAssignment_1_2_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_2_3_1()); + } + // InternalFiacre.g:13479:2: ( rule__PatternStatement__PatternsAssignment_1_2_3_1 ) + // InternalFiacre.g:13479:3: rule__PatternStatement__PatternsAssignment_1_2_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__PatternsAssignment_1_2_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_2_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2_3__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2_6__0" + // InternalFiacre.g:13488:1: rule__PatternStatement__Group_1_2_6__0 : rule__PatternStatement__Group_1_2_6__0__Impl rule__PatternStatement__Group_1_2_6__1 ; + public final void rule__PatternStatement__Group_1_2_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13492:1: ( rule__PatternStatement__Group_1_2_6__0__Impl rule__PatternStatement__Group_1_2_6__1 ) + // InternalFiacre.g:13493:2: rule__PatternStatement__Group_1_2_6__0__Impl rule__PatternStatement__Group_1_2_6__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_2_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2_6__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2_6__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_2_6__0__Impl" + // InternalFiacre.g:13500:1: rule__PatternStatement__Group_1_2_6__0__Impl : ( 'where' ) ; + public final void rule__PatternStatement__Group_1_2_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13504:1: ( ( 'where' ) ) + // InternalFiacre.g:13505:1: ( 'where' ) + { + // InternalFiacre.g:13505:1: ( 'where' ) + // InternalFiacre.g:13506:2: 'where' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_2_6_0()); + } + match(input,58,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_2_6_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2_6__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_2_6__1" + // InternalFiacre.g:13515:1: rule__PatternStatement__Group_1_2_6__1 : rule__PatternStatement__Group_1_2_6__1__Impl ; + public final void rule__PatternStatement__Group_1_2_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13519:1: ( rule__PatternStatement__Group_1_2_6__1__Impl ) + // InternalFiacre.g:13520:2: rule__PatternStatement__Group_1_2_6__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2_6__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2_6__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_2_6__1__Impl" + // InternalFiacre.g:13526:1: rule__PatternStatement__Group_1_2_6__1__Impl : ( ( rule__PatternStatement__ExpAssignment_1_2_6_1 ) ) ; + public final void rule__PatternStatement__Group_1_2_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13530:1: ( ( ( rule__PatternStatement__ExpAssignment_1_2_6_1 ) ) ) + // InternalFiacre.g:13531:1: ( ( rule__PatternStatement__ExpAssignment_1_2_6_1 ) ) + { + // InternalFiacre.g:13531:1: ( ( rule__PatternStatement__ExpAssignment_1_2_6_1 ) ) + // InternalFiacre.g:13532:2: ( rule__PatternStatement__ExpAssignment_1_2_6_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getExpAssignment_1_2_6_1()); + } + // InternalFiacre.g:13533:2: ( rule__PatternStatement__ExpAssignment_1_2_6_1 ) + // InternalFiacre.g:13533:3: rule__PatternStatement__ExpAssignment_1_2_6_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__ExpAssignment_1_2_6_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getExpAssignment_1_2_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_2_6__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_3__0" + // InternalFiacre.g:13542:1: rule__PatternStatement__Group_1_3__0 : rule__PatternStatement__Group_1_3__0__Impl rule__PatternStatement__Group_1_3__1 ; + public final void rule__PatternStatement__Group_1_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13546:1: ( rule__PatternStatement__Group_1_3__0__Impl rule__PatternStatement__Group_1_3__1 ) + // InternalFiacre.g:13547:2: rule__PatternStatement__Group_1_3__0__Impl rule__PatternStatement__Group_1_3__1 + { + pushFollow(FollowSets000.FOLLOW_65); + rule__PatternStatement__Group_1_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_3__0__Impl" + // InternalFiacre.g:13554:1: rule__PatternStatement__Group_1_3__0__Impl : ( ':=' ) ; + public final void rule__PatternStatement__Group_1_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13558:1: ( ( ':=' ) ) + // InternalFiacre.g:13559:1: ( ':=' ) + { + // InternalFiacre.g:13559:1: ( ':=' ) + // InternalFiacre.g:13560:2: ':=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_3_0()); + } + match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_3__1" + // InternalFiacre.g:13569:1: rule__PatternStatement__Group_1_3__1 : rule__PatternStatement__Group_1_3__1__Impl rule__PatternStatement__Group_1_3__2 ; + public final void rule__PatternStatement__Group_1_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13573:1: ( rule__PatternStatement__Group_1_3__1__Impl rule__PatternStatement__Group_1_3__2 ) + // InternalFiacre.g:13574:2: rule__PatternStatement__Group_1_3__1__Impl rule__PatternStatement__Group_1_3__2 + { + pushFollow(FollowSets000.FOLLOW_65); + rule__PatternStatement__Group_1_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_3__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_3__1__Impl" + // InternalFiacre.g:13581:1: rule__PatternStatement__Group_1_3__1__Impl : ( () ) ; + public final void rule__PatternStatement__Group_1_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13585:1: ( ( () ) ) + // InternalFiacre.g:13586:1: ( () ) + { + // InternalFiacre.g:13586:1: ( () ) + // InternalFiacre.g:13587:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_3_1()); + } + // InternalFiacre.g:13588:2: () + // InternalFiacre.g:13588:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_3_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_3__2" + // InternalFiacre.g:13596:1: rule__PatternStatement__Group_1_3__2 : rule__PatternStatement__Group_1_3__2__Impl rule__PatternStatement__Group_1_3__3 ; + public final void rule__PatternStatement__Group_1_3__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13600:1: ( rule__PatternStatement__Group_1_3__2__Impl rule__PatternStatement__Group_1_3__3 ) + // InternalFiacre.g:13601:2: rule__PatternStatement__Group_1_3__2__Impl rule__PatternStatement__Group_1_3__3 + { + pushFollow(FollowSets000.FOLLOW_66); + rule__PatternStatement__Group_1_3__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_3__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3__2" + + + // $ANTLR start "rule__PatternStatement__Group_1_3__2__Impl" + // InternalFiacre.g:13608:1: rule__PatternStatement__Group_1_3__2__Impl : ( 'any' ) ; + public final void rule__PatternStatement__Group_1_3__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13612:1: ( ( 'any' ) ) + // InternalFiacre.g:13613:1: ( 'any' ) + { + // InternalFiacre.g:13613:1: ( 'any' ) + // InternalFiacre.g:13614:2: 'any' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getAnyKeyword_1_3_2()); + } + match(input,57,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getAnyKeyword_1_3_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3__2__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_3__3" + // InternalFiacre.g:13623:1: rule__PatternStatement__Group_1_3__3 : rule__PatternStatement__Group_1_3__3__Impl ; + public final void rule__PatternStatement__Group_1_3__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13627:1: ( rule__PatternStatement__Group_1_3__3__Impl ) + // InternalFiacre.g:13628:2: rule__PatternStatement__Group_1_3__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_3__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3__3" + + + // $ANTLR start "rule__PatternStatement__Group_1_3__3__Impl" + // InternalFiacre.g:13634:1: rule__PatternStatement__Group_1_3__3__Impl : ( ( rule__PatternStatement__Group_1_3_3__0 )? ) ; + public final void rule__PatternStatement__Group_1_3__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13638:1: ( ( ( rule__PatternStatement__Group_1_3_3__0 )? ) ) + // InternalFiacre.g:13639:1: ( ( rule__PatternStatement__Group_1_3_3__0 )? ) + { + // InternalFiacre.g:13639:1: ( ( rule__PatternStatement__Group_1_3_3__0 )? ) + // InternalFiacre.g:13640:2: ( rule__PatternStatement__Group_1_3_3__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_3_3()); + } + // InternalFiacre.g:13641:2: ( rule__PatternStatement__Group_1_3_3__0 )? + int alt128=2; + int LA128_0 = input.LA(1); + + if ( (LA128_0==58) ) { + alt128=1; + } + switch (alt128) { + case 1 : + // InternalFiacre.g:13641:3: rule__PatternStatement__Group_1_3_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_3_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_3_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3__3__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_3_3__0" + // InternalFiacre.g:13650:1: rule__PatternStatement__Group_1_3_3__0 : rule__PatternStatement__Group_1_3_3__0__Impl rule__PatternStatement__Group_1_3_3__1 ; + public final void rule__PatternStatement__Group_1_3_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13654:1: ( rule__PatternStatement__Group_1_3_3__0__Impl rule__PatternStatement__Group_1_3_3__1 ) + // InternalFiacre.g:13655:2: rule__PatternStatement__Group_1_3_3__0__Impl rule__PatternStatement__Group_1_3_3__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_3_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_3_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3_3__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_3_3__0__Impl" + // InternalFiacre.g:13662:1: rule__PatternStatement__Group_1_3_3__0__Impl : ( 'where' ) ; + public final void rule__PatternStatement__Group_1_3_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13666:1: ( ( 'where' ) ) + // InternalFiacre.g:13667:1: ( 'where' ) + { + // InternalFiacre.g:13667:1: ( 'where' ) + // InternalFiacre.g:13668:2: 'where' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_3_3_0()); + } + match(input,58,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_3_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3_3__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_3_3__1" + // InternalFiacre.g:13677:1: rule__PatternStatement__Group_1_3_3__1 : rule__PatternStatement__Group_1_3_3__1__Impl ; + public final void rule__PatternStatement__Group_1_3_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13681:1: ( rule__PatternStatement__Group_1_3_3__1__Impl ) + // InternalFiacre.g:13682:2: rule__PatternStatement__Group_1_3_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_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__PatternStatement__Group_1_3_3__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_3_3__1__Impl" + // InternalFiacre.g:13688:1: rule__PatternStatement__Group_1_3_3__1__Impl : ( ( rule__PatternStatement__ExpAssignment_1_3_3_1 ) ) ; + public final void rule__PatternStatement__Group_1_3_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13692:1: ( ( ( rule__PatternStatement__ExpAssignment_1_3_3_1 ) ) ) + // InternalFiacre.g:13693:1: ( ( rule__PatternStatement__ExpAssignment_1_3_3_1 ) ) + { + // InternalFiacre.g:13693:1: ( ( rule__PatternStatement__ExpAssignment_1_3_3_1 ) ) + // InternalFiacre.g:13694:2: ( rule__PatternStatement__ExpAssignment_1_3_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getExpAssignment_1_3_3_1()); + } + // InternalFiacre.g:13695:2: ( rule__PatternStatement__ExpAssignment_1_3_3_1 ) + // InternalFiacre.g:13695:3: rule__PatternStatement__ExpAssignment_1_3_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__ExpAssignment_1_3_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getExpAssignment_1_3_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_3_3__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_4__0" + // InternalFiacre.g:13704:1: rule__PatternStatement__Group_1_4__0 : rule__PatternStatement__Group_1_4__0__Impl rule__PatternStatement__Group_1_4__1 ; + public final void rule__PatternStatement__Group_1_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13708:1: ( rule__PatternStatement__Group_1_4__0__Impl rule__PatternStatement__Group_1_4__1 ) + // InternalFiacre.g:13709:2: rule__PatternStatement__Group_1_4__0__Impl rule__PatternStatement__Group_1_4__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_4__0__Impl" + // InternalFiacre.g:13716:1: rule__PatternStatement__Group_1_4__0__Impl : ( '!' ) ; + public final void rule__PatternStatement__Group_1_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13720:1: ( ( '!' ) ) + // InternalFiacre.g:13721:1: ( '!' ) + { + // InternalFiacre.g:13721:1: ( '!' ) + // InternalFiacre.g:13722:2: '!' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getExclamationMarkKeyword_1_4_0()); + } + match(input,59,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getExclamationMarkKeyword_1_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_4__1" + // InternalFiacre.g:13731:1: rule__PatternStatement__Group_1_4__1 : rule__PatternStatement__Group_1_4__1__Impl rule__PatternStatement__Group_1_4__2 ; + public final void rule__PatternStatement__Group_1_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13735:1: ( rule__PatternStatement__Group_1_4__1__Impl rule__PatternStatement__Group_1_4__2 ) + // InternalFiacre.g:13736:2: rule__PatternStatement__Group_1_4__1__Impl rule__PatternStatement__Group_1_4__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_4__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_4__1__Impl" + // InternalFiacre.g:13743:1: rule__PatternStatement__Group_1_4__1__Impl : ( () ) ; + public final void rule__PatternStatement__Group_1_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13747:1: ( ( () ) ) + // InternalFiacre.g:13748:1: ( () ) + { + // InternalFiacre.g:13748:1: ( () ) + // InternalFiacre.g:13749:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getSendStatementPortAction_1_4_1()); + } + // InternalFiacre.g:13750:2: () + // InternalFiacre.g:13750:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getSendStatementPortAction_1_4_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_4__2" + // InternalFiacre.g:13758:1: rule__PatternStatement__Group_1_4__2 : rule__PatternStatement__Group_1_4__2__Impl rule__PatternStatement__Group_1_4__3 ; + public final void rule__PatternStatement__Group_1_4__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13762:1: ( rule__PatternStatement__Group_1_4__2__Impl rule__PatternStatement__Group_1_4__3 ) + // InternalFiacre.g:13763:2: rule__PatternStatement__Group_1_4__2__Impl rule__PatternStatement__Group_1_4__3 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__PatternStatement__Group_1_4__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_4__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4__2" + + + // $ANTLR start "rule__PatternStatement__Group_1_4__2__Impl" + // InternalFiacre.g:13770:1: rule__PatternStatement__Group_1_4__2__Impl : ( ( rule__PatternStatement__ValuesAssignment_1_4_2 ) ) ; + public final void rule__PatternStatement__Group_1_4__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13774:1: ( ( ( rule__PatternStatement__ValuesAssignment_1_4_2 ) ) ) + // InternalFiacre.g:13775:1: ( ( rule__PatternStatement__ValuesAssignment_1_4_2 ) ) + { + // InternalFiacre.g:13775:1: ( ( rule__PatternStatement__ValuesAssignment_1_4_2 ) ) + // InternalFiacre.g:13776:2: ( rule__PatternStatement__ValuesAssignment_1_4_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_4_2()); + } + // InternalFiacre.g:13777:2: ( rule__PatternStatement__ValuesAssignment_1_4_2 ) + // InternalFiacre.g:13777:3: rule__PatternStatement__ValuesAssignment_1_4_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__ValuesAssignment_1_4_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_4_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4__2__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_4__3" + // InternalFiacre.g:13785:1: rule__PatternStatement__Group_1_4__3 : rule__PatternStatement__Group_1_4__3__Impl ; + public final void rule__PatternStatement__Group_1_4__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13789:1: ( rule__PatternStatement__Group_1_4__3__Impl ) + // InternalFiacre.g:13790:2: rule__PatternStatement__Group_1_4__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_4__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4__3" + + + // $ANTLR start "rule__PatternStatement__Group_1_4__3__Impl" + // InternalFiacre.g:13796:1: rule__PatternStatement__Group_1_4__3__Impl : ( ( rule__PatternStatement__Group_1_4_3__0 )* ) ; + public final void rule__PatternStatement__Group_1_4__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13800:1: ( ( ( rule__PatternStatement__Group_1_4_3__0 )* ) ) + // InternalFiacre.g:13801:1: ( ( rule__PatternStatement__Group_1_4_3__0 )* ) + { + // InternalFiacre.g:13801:1: ( ( rule__PatternStatement__Group_1_4_3__0 )* ) + // InternalFiacre.g:13802:2: ( rule__PatternStatement__Group_1_4_3__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_4_3()); + } + // InternalFiacre.g:13803:2: ( rule__PatternStatement__Group_1_4_3__0 )* + loop129: + do { + int alt129=2; + int LA129_0 = input.LA(1); + + if ( (LA129_0==24) ) { + alt129=1; + } + + + switch (alt129) { + case 1 : + // InternalFiacre.g:13803:3: rule__PatternStatement__Group_1_4_3__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__PatternStatement__Group_1_4_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop129; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_4_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4__3__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_4_3__0" + // InternalFiacre.g:13812:1: rule__PatternStatement__Group_1_4_3__0 : rule__PatternStatement__Group_1_4_3__0__Impl rule__PatternStatement__Group_1_4_3__1 ; + public final void rule__PatternStatement__Group_1_4_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13816:1: ( rule__PatternStatement__Group_1_4_3__0__Impl rule__PatternStatement__Group_1_4_3__1 ) + // InternalFiacre.g:13817:2: rule__PatternStatement__Group_1_4_3__0__Impl rule__PatternStatement__Group_1_4_3__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_4_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_4_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4_3__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_4_3__0__Impl" + // InternalFiacre.g:13824:1: rule__PatternStatement__Group_1_4_3__0__Impl : ( ',' ) ; + public final void rule__PatternStatement__Group_1_4_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13828:1: ( ( ',' ) ) + // InternalFiacre.g:13829:1: ( ',' ) + { + // InternalFiacre.g:13829:1: ( ',' ) + // InternalFiacre.g:13830:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_4_3_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_4_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4_3__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_4_3__1" + // InternalFiacre.g:13839:1: rule__PatternStatement__Group_1_4_3__1 : rule__PatternStatement__Group_1_4_3__1__Impl ; + public final void rule__PatternStatement__Group_1_4_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13843:1: ( rule__PatternStatement__Group_1_4_3__1__Impl ) + // InternalFiacre.g:13844:2: rule__PatternStatement__Group_1_4_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_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__PatternStatement__Group_1_4_3__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_4_3__1__Impl" + // InternalFiacre.g:13850:1: rule__PatternStatement__Group_1_4_3__1__Impl : ( ( rule__PatternStatement__ValuesAssignment_1_4_3_1 ) ) ; + public final void rule__PatternStatement__Group_1_4_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13854:1: ( ( ( rule__PatternStatement__ValuesAssignment_1_4_3_1 ) ) ) + // InternalFiacre.g:13855:1: ( ( rule__PatternStatement__ValuesAssignment_1_4_3_1 ) ) + { + // InternalFiacre.g:13855:1: ( ( rule__PatternStatement__ValuesAssignment_1_4_3_1 ) ) + // InternalFiacre.g:13856:2: ( rule__PatternStatement__ValuesAssignment_1_4_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_4_3_1()); + } + // InternalFiacre.g:13857:2: ( rule__PatternStatement__ValuesAssignment_1_4_3_1 ) + // InternalFiacre.g:13857:3: rule__PatternStatement__ValuesAssignment_1_4_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__ValuesAssignment_1_4_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesAssignment_1_4_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_4_3__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_5__0" + // InternalFiacre.g:13866:1: rule__PatternStatement__Group_1_5__0 : rule__PatternStatement__Group_1_5__0__Impl rule__PatternStatement__Group_1_5__1 ; + public final void rule__PatternStatement__Group_1_5__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13870:1: ( rule__PatternStatement__Group_1_5__0__Impl rule__PatternStatement__Group_1_5__1 ) + // InternalFiacre.g:13871:2: rule__PatternStatement__Group_1_5__0__Impl rule__PatternStatement__Group_1_5__1 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__PatternStatement__Group_1_5__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_5__0__Impl" + // InternalFiacre.g:13878:1: rule__PatternStatement__Group_1_5__0__Impl : ( '?' ) ; + public final void rule__PatternStatement__Group_1_5__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13882:1: ( ( '?' ) ) + // InternalFiacre.g:13883:1: ( '?' ) + { + // InternalFiacre.g:13883:1: ( '?' ) + // InternalFiacre.g:13884:2: '?' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getQuestionMarkKeyword_1_5_0()); + } + match(input,60,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getQuestionMarkKeyword_1_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_5__1" + // InternalFiacre.g:13893:1: rule__PatternStatement__Group_1_5__1 : rule__PatternStatement__Group_1_5__1__Impl rule__PatternStatement__Group_1_5__2 ; + public final void rule__PatternStatement__Group_1_5__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13897:1: ( rule__PatternStatement__Group_1_5__1__Impl rule__PatternStatement__Group_1_5__2 ) + // InternalFiacre.g:13898:2: rule__PatternStatement__Group_1_5__1__Impl rule__PatternStatement__Group_1_5__2 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__PatternStatement__Group_1_5__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_5__1__Impl" + // InternalFiacre.g:13905:1: rule__PatternStatement__Group_1_5__1__Impl : ( () ) ; + public final void rule__PatternStatement__Group_1_5__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13909:1: ( ( () ) ) + // InternalFiacre.g:13910:1: ( () ) + { + // InternalFiacre.g:13910:1: ( () ) + // InternalFiacre.g:13911:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getReceiveStatementPortAction_1_5_1()); + } + // InternalFiacre.g:13912:2: () + // InternalFiacre.g:13912:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getReceiveStatementPortAction_1_5_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_5__2" + // InternalFiacre.g:13920:1: rule__PatternStatement__Group_1_5__2 : rule__PatternStatement__Group_1_5__2__Impl rule__PatternStatement__Group_1_5__3 ; + public final void rule__PatternStatement__Group_1_5__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13924:1: ( rule__PatternStatement__Group_1_5__2__Impl rule__PatternStatement__Group_1_5__3 ) + // InternalFiacre.g:13925:2: rule__PatternStatement__Group_1_5__2__Impl rule__PatternStatement__Group_1_5__3 + { + pushFollow(FollowSets000.FOLLOW_67); + rule__PatternStatement__Group_1_5__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5__2" + + + // $ANTLR start "rule__PatternStatement__Group_1_5__2__Impl" + // InternalFiacre.g:13932:1: rule__PatternStatement__Group_1_5__2__Impl : ( ( rule__PatternStatement__PatternsAssignment_1_5_2 ) ) ; + public final void rule__PatternStatement__Group_1_5__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13936:1: ( ( ( rule__PatternStatement__PatternsAssignment_1_5_2 ) ) ) + // InternalFiacre.g:13937:1: ( ( rule__PatternStatement__PatternsAssignment_1_5_2 ) ) + { + // InternalFiacre.g:13937:1: ( ( rule__PatternStatement__PatternsAssignment_1_5_2 ) ) + // InternalFiacre.g:13938:2: ( rule__PatternStatement__PatternsAssignment_1_5_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_5_2()); + } + // InternalFiacre.g:13939:2: ( rule__PatternStatement__PatternsAssignment_1_5_2 ) + // InternalFiacre.g:13939:3: rule__PatternStatement__PatternsAssignment_1_5_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__PatternsAssignment_1_5_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_5_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5__2__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_5__3" + // InternalFiacre.g:13947:1: rule__PatternStatement__Group_1_5__3 : rule__PatternStatement__Group_1_5__3__Impl rule__PatternStatement__Group_1_5__4 ; + public final void rule__PatternStatement__Group_1_5__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13951:1: ( rule__PatternStatement__Group_1_5__3__Impl rule__PatternStatement__Group_1_5__4 ) + // InternalFiacre.g:13952:2: rule__PatternStatement__Group_1_5__3__Impl rule__PatternStatement__Group_1_5__4 + { + pushFollow(FollowSets000.FOLLOW_67); + rule__PatternStatement__Group_1_5__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5__3" + + + // $ANTLR start "rule__PatternStatement__Group_1_5__3__Impl" + // InternalFiacre.g:13959:1: rule__PatternStatement__Group_1_5__3__Impl : ( ( rule__PatternStatement__Group_1_5_3__0 )* ) ; + public final void rule__PatternStatement__Group_1_5__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13963:1: ( ( ( rule__PatternStatement__Group_1_5_3__0 )* ) ) + // InternalFiacre.g:13964:1: ( ( rule__PatternStatement__Group_1_5_3__0 )* ) + { + // InternalFiacre.g:13964:1: ( ( rule__PatternStatement__Group_1_5_3__0 )* ) + // InternalFiacre.g:13965:2: ( rule__PatternStatement__Group_1_5_3__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_5_3()); + } + // InternalFiacre.g:13966:2: ( rule__PatternStatement__Group_1_5_3__0 )* + loop130: + do { + int alt130=2; + int LA130_0 = input.LA(1); + + if ( (LA130_0==24) ) { + alt130=1; + } + + + switch (alt130) { + case 1 : + // InternalFiacre.g:13966:3: rule__PatternStatement__Group_1_5_3__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__PatternStatement__Group_1_5_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop130; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_5_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5__3__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_5__4" + // InternalFiacre.g:13974:1: rule__PatternStatement__Group_1_5__4 : rule__PatternStatement__Group_1_5__4__Impl ; + public final void rule__PatternStatement__Group_1_5__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13978:1: ( rule__PatternStatement__Group_1_5__4__Impl ) + // InternalFiacre.g:13979:2: rule__PatternStatement__Group_1_5__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5__4" + + + // $ANTLR start "rule__PatternStatement__Group_1_5__4__Impl" + // InternalFiacre.g:13985:1: rule__PatternStatement__Group_1_5__4__Impl : ( ( rule__PatternStatement__Group_1_5_4__0 )? ) ; + public final void rule__PatternStatement__Group_1_5__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:13989:1: ( ( ( rule__PatternStatement__Group_1_5_4__0 )? ) ) + // InternalFiacre.g:13990:1: ( ( rule__PatternStatement__Group_1_5_4__0 )? ) + { + // InternalFiacre.g:13990:1: ( ( rule__PatternStatement__Group_1_5_4__0 )? ) + // InternalFiacre.g:13991:2: ( rule__PatternStatement__Group_1_5_4__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_5_4()); + } + // InternalFiacre.g:13992:2: ( rule__PatternStatement__Group_1_5_4__0 )? + int alt131=2; + int LA131_0 = input.LA(1); + + if ( (LA131_0==58) ) { + alt131=1; + } + switch (alt131) { + case 1 : + // InternalFiacre.g:13992:3: rule__PatternStatement__Group_1_5_4__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getGroup_1_5_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5__4__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_5_3__0" + // InternalFiacre.g:14001:1: rule__PatternStatement__Group_1_5_3__0 : rule__PatternStatement__Group_1_5_3__0__Impl rule__PatternStatement__Group_1_5_3__1 ; + public final void rule__PatternStatement__Group_1_5_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14005:1: ( rule__PatternStatement__Group_1_5_3__0__Impl rule__PatternStatement__Group_1_5_3__1 ) + // InternalFiacre.g:14006:2: rule__PatternStatement__Group_1_5_3__0__Impl rule__PatternStatement__Group_1_5_3__1 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__PatternStatement__Group_1_5_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5_3__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_5_3__0__Impl" + // InternalFiacre.g:14013:1: rule__PatternStatement__Group_1_5_3__0__Impl : ( ',' ) ; + public final void rule__PatternStatement__Group_1_5_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14017:1: ( ( ',' ) ) + // InternalFiacre.g:14018:1: ( ',' ) + { + // InternalFiacre.g:14018:1: ( ',' ) + // InternalFiacre.g:14019:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_5_3_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getCommaKeyword_1_5_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5_3__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_5_3__1" + // InternalFiacre.g:14028:1: rule__PatternStatement__Group_1_5_3__1 : rule__PatternStatement__Group_1_5_3__1__Impl ; + public final void rule__PatternStatement__Group_1_5_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14032:1: ( rule__PatternStatement__Group_1_5_3__1__Impl ) + // InternalFiacre.g:14033:2: rule__PatternStatement__Group_1_5_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5_3__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_5_3__1__Impl" + // InternalFiacre.g:14039:1: rule__PatternStatement__Group_1_5_3__1__Impl : ( ( rule__PatternStatement__PatternsAssignment_1_5_3_1 ) ) ; + public final void rule__PatternStatement__Group_1_5_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14043:1: ( ( ( rule__PatternStatement__PatternsAssignment_1_5_3_1 ) ) ) + // InternalFiacre.g:14044:1: ( ( rule__PatternStatement__PatternsAssignment_1_5_3_1 ) ) + { + // InternalFiacre.g:14044:1: ( ( rule__PatternStatement__PatternsAssignment_1_5_3_1 ) ) + // InternalFiacre.g:14045:2: ( rule__PatternStatement__PatternsAssignment_1_5_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_5_3_1()); + } + // InternalFiacre.g:14046:2: ( rule__PatternStatement__PatternsAssignment_1_5_3_1 ) + // InternalFiacre.g:14046:3: rule__PatternStatement__PatternsAssignment_1_5_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__PatternsAssignment_1_5_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsAssignment_1_5_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5_3__1__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_5_4__0" + // InternalFiacre.g:14055:1: rule__PatternStatement__Group_1_5_4__0 : rule__PatternStatement__Group_1_5_4__0__Impl rule__PatternStatement__Group_1_5_4__1 ; + public final void rule__PatternStatement__Group_1_5_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14059:1: ( rule__PatternStatement__Group_1_5_4__0__Impl rule__PatternStatement__Group_1_5_4__1 ) + // InternalFiacre.g:14060:2: rule__PatternStatement__Group_1_5_4__0__Impl rule__PatternStatement__Group_1_5_4__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PatternStatement__Group_1_5_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5_4__0" + + + // $ANTLR start "rule__PatternStatement__Group_1_5_4__0__Impl" + // InternalFiacre.g:14067:1: rule__PatternStatement__Group_1_5_4__0__Impl : ( 'where' ) ; + public final void rule__PatternStatement__Group_1_5_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14071:1: ( ( 'where' ) ) + // InternalFiacre.g:14072:1: ( 'where' ) + { + // InternalFiacre.g:14072:1: ( 'where' ) + // InternalFiacre.g:14073:2: 'where' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_5_4_0()); + } + match(input,58,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getWhereKeyword_1_5_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5_4__0__Impl" + + + // $ANTLR start "rule__PatternStatement__Group_1_5_4__1" + // InternalFiacre.g:14082:1: rule__PatternStatement__Group_1_5_4__1 : rule__PatternStatement__Group_1_5_4__1__Impl ; + public final void rule__PatternStatement__Group_1_5_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14086:1: ( rule__PatternStatement__Group_1_5_4__1__Impl ) + // InternalFiacre.g:14087:2: rule__PatternStatement__Group_1_5_4__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_5_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5_4__1" + + + // $ANTLR start "rule__PatternStatement__Group_1_5_4__1__Impl" + // InternalFiacre.g:14093:1: rule__PatternStatement__Group_1_5_4__1__Impl : ( ( rule__PatternStatement__ExpAssignment_1_5_4_1 ) ) ; + public final void rule__PatternStatement__Group_1_5_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14097:1: ( ( ( rule__PatternStatement__ExpAssignment_1_5_4_1 ) ) ) + // InternalFiacre.g:14098:1: ( ( rule__PatternStatement__ExpAssignment_1_5_4_1 ) ) + { + // InternalFiacre.g:14098:1: ( ( rule__PatternStatement__ExpAssignment_1_5_4_1 ) ) + // InternalFiacre.g:14099:2: ( rule__PatternStatement__ExpAssignment_1_5_4_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getExpAssignment_1_5_4_1()); + } + // InternalFiacre.g:14100:2: ( rule__PatternStatement__ExpAssignment_1_5_4_1 ) + // InternalFiacre.g:14100:3: rule__PatternStatement__ExpAssignment_1_5_4_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__ExpAssignment_1_5_4_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getExpAssignment_1_5_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__Group_1_5_4__1__Impl" + + + // $ANTLR start "rule__Pattern__Group_3__0" + // InternalFiacre.g:14109:1: rule__Pattern__Group_3__0 : rule__Pattern__Group_3__0__Impl rule__Pattern__Group_3__1 ; + public final void rule__Pattern__Group_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14113:1: ( rule__Pattern__Group_3__0__Impl rule__Pattern__Group_3__1 ) + // InternalFiacre.g:14114:2: rule__Pattern__Group_3__0__Impl rule__Pattern__Group_3__1 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__Pattern__Group_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Pattern__Group_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Pattern__Group_3__0" + + + // $ANTLR start "rule__Pattern__Group_3__0__Impl" + // InternalFiacre.g:14121:1: rule__Pattern__Group_3__0__Impl : ( '(' ) ; + public final void rule__Pattern__Group_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14125:1: ( ( '(' ) ) + // InternalFiacre.g:14126:1: ( '(' ) + { + // InternalFiacre.g:14126:1: ( '(' ) + // InternalFiacre.g:14127:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternAccess().getLeftParenthesisKeyword_3_0()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternAccess().getLeftParenthesisKeyword_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Pattern__Group_3__0__Impl" + + + // $ANTLR start "rule__Pattern__Group_3__1" + // InternalFiacre.g:14136:1: rule__Pattern__Group_3__1 : rule__Pattern__Group_3__1__Impl rule__Pattern__Group_3__2 ; + public final void rule__Pattern__Group_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14140:1: ( rule__Pattern__Group_3__1__Impl rule__Pattern__Group_3__2 ) + // InternalFiacre.g:14141:2: rule__Pattern__Group_3__1__Impl rule__Pattern__Group_3__2 + { + pushFollow(FollowSets000.FOLLOW_68); + rule__Pattern__Group_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Pattern__Group_3__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Pattern__Group_3__1" + + + // $ANTLR start "rule__Pattern__Group_3__1__Impl" + // InternalFiacre.g:14148:1: rule__Pattern__Group_3__1__Impl : ( rulePattern ) ; + public final void rule__Pattern__Group_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14152:1: ( ( rulePattern ) ) + // InternalFiacre.g:14153:1: ( rulePattern ) + { + // InternalFiacre.g:14153:1: ( rulePattern ) + // InternalFiacre.g:14154:2: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternAccess().getPatternParserRuleCall_3_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternAccess().getPatternParserRuleCall_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Pattern__Group_3__1__Impl" + + + // $ANTLR start "rule__Pattern__Group_3__2" + // InternalFiacre.g:14163:1: rule__Pattern__Group_3__2 : rule__Pattern__Group_3__2__Impl ; + public final void rule__Pattern__Group_3__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14167:1: ( rule__Pattern__Group_3__2__Impl ) + // InternalFiacre.g:14168:2: rule__Pattern__Group_3__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Pattern__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__Pattern__Group_3__2" + + + // $ANTLR start "rule__Pattern__Group_3__2__Impl" + // InternalFiacre.g:14174:1: rule__Pattern__Group_3__2__Impl : ( ')' ) ; + public final void rule__Pattern__Group_3__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14178:1: ( ( ')' ) ) + // InternalFiacre.g:14179:1: ( ')' ) + { + // InternalFiacre.g:14179:1: ( ')' ) + // InternalFiacre.g:14180:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternAccess().getRightParenthesisKeyword_3_2()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternAccess().getRightParenthesisKeyword_3_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Pattern__Group_3__2__Impl" + + + // $ANTLR start "rule__AnyPattern__Group__0" + // InternalFiacre.g:14190:1: rule__AnyPattern__Group__0 : rule__AnyPattern__Group__0__Impl rule__AnyPattern__Group__1 ; + public final void rule__AnyPattern__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14194:1: ( rule__AnyPattern__Group__0__Impl rule__AnyPattern__Group__1 ) + // InternalFiacre.g:14195:2: rule__AnyPattern__Group__0__Impl rule__AnyPattern__Group__1 + { + pushFollow(FollowSets000.FOLLOW_65); + rule__AnyPattern__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AnyPattern__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AnyPattern__Group__0" + + + // $ANTLR start "rule__AnyPattern__Group__0__Impl" + // InternalFiacre.g:14202:1: rule__AnyPattern__Group__0__Impl : ( () ) ; + public final void rule__AnyPattern__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14206:1: ( ( () ) ) + // InternalFiacre.g:14207:1: ( () ) + { + // InternalFiacre.g:14207:1: ( () ) + // InternalFiacre.g:14208:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAnyPatternAccess().getAnyPatternAction_0()); + } + // InternalFiacre.g:14209:2: () + // InternalFiacre.g:14209:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAnyPatternAccess().getAnyPatternAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AnyPattern__Group__0__Impl" + + + // $ANTLR start "rule__AnyPattern__Group__1" + // InternalFiacre.g:14217:1: rule__AnyPattern__Group__1 : rule__AnyPattern__Group__1__Impl ; + public final void rule__AnyPattern__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14221:1: ( rule__AnyPattern__Group__1__Impl ) + // InternalFiacre.g:14222:2: rule__AnyPattern__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AnyPattern__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AnyPattern__Group__1" + + + // $ANTLR start "rule__AnyPattern__Group__1__Impl" + // InternalFiacre.g:14228:1: rule__AnyPattern__Group__1__Impl : ( 'any' ) ; + public final void rule__AnyPattern__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14232:1: ( ( 'any' ) ) + // InternalFiacre.g:14233:1: ( 'any' ) + { + // InternalFiacre.g:14233:1: ( 'any' ) + // InternalFiacre.g:14234:2: 'any' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAnyPatternAccess().getAnyKeyword_1()); + } + match(input,57,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAnyPatternAccess().getAnyKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AnyPattern__Group__1__Impl" + + + // $ANTLR start "rule__IntegerPattern__Group__0" + // InternalFiacre.g:14244:1: rule__IntegerPattern__Group__0 : rule__IntegerPattern__Group__0__Impl rule__IntegerPattern__Group__1 ; + public final void rule__IntegerPattern__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14248:1: ( rule__IntegerPattern__Group__0__Impl rule__IntegerPattern__Group__1 ) + // InternalFiacre.g:14249:2: rule__IntegerPattern__Group__0__Impl rule__IntegerPattern__Group__1 + { + pushFollow(FollowSets000.FOLLOW_69); + rule__IntegerPattern__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IntegerPattern__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IntegerPattern__Group__0" + + + // $ANTLR start "rule__IntegerPattern__Group__0__Impl" + // InternalFiacre.g:14256:1: rule__IntegerPattern__Group__0__Impl : ( ( rule__IntegerPattern__Alternatives_0 ) ) ; + public final void rule__IntegerPattern__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14260:1: ( ( ( rule__IntegerPattern__Alternatives_0 ) ) ) + // InternalFiacre.g:14261:1: ( ( rule__IntegerPattern__Alternatives_0 ) ) + { + // InternalFiacre.g:14261:1: ( ( rule__IntegerPattern__Alternatives_0 ) ) + // InternalFiacre.g:14262:2: ( rule__IntegerPattern__Alternatives_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIntegerPatternAccess().getAlternatives_0()); + } + // InternalFiacre.g:14263:2: ( rule__IntegerPattern__Alternatives_0 ) + // InternalFiacre.g:14263:3: rule__IntegerPattern__Alternatives_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IntegerPattern__Alternatives_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIntegerPatternAccess().getAlternatives_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IntegerPattern__Group__0__Impl" + + + // $ANTLR start "rule__IntegerPattern__Group__1" + // InternalFiacre.g:14271:1: rule__IntegerPattern__Group__1 : rule__IntegerPattern__Group__1__Impl ; + public final void rule__IntegerPattern__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14275:1: ( rule__IntegerPattern__Group__1__Impl ) + // InternalFiacre.g:14276:2: rule__IntegerPattern__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IntegerPattern__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IntegerPattern__Group__1" + + + // $ANTLR start "rule__IntegerPattern__Group__1__Impl" + // InternalFiacre.g:14282:1: rule__IntegerPattern__Group__1__Impl : ( ( rule__IntegerPattern__ValueAssignment_1 ) ) ; + public final void rule__IntegerPattern__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14286:1: ( ( ( rule__IntegerPattern__ValueAssignment_1 ) ) ) + // InternalFiacre.g:14287:1: ( ( rule__IntegerPattern__ValueAssignment_1 ) ) + { + // InternalFiacre.g:14287:1: ( ( rule__IntegerPattern__ValueAssignment_1 ) ) + // InternalFiacre.g:14288:2: ( rule__IntegerPattern__ValueAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIntegerPatternAccess().getValueAssignment_1()); + } + // InternalFiacre.g:14289:2: ( rule__IntegerPattern__ValueAssignment_1 ) + // InternalFiacre.g:14289:3: rule__IntegerPattern__ValueAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IntegerPattern__ValueAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIntegerPatternAccess().getValueAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IntegerPattern__Group__1__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_0__0" + // InternalFiacre.g:14298:1: rule__IdentifierPattern__Group_0__0 : rule__IdentifierPattern__Group_0__0__Impl rule__IdentifierPattern__Group_0__1 ; + public final void rule__IdentifierPattern__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14302:1: ( rule__IdentifierPattern__Group_0__0__Impl rule__IdentifierPattern__Group_0__1 ) + // InternalFiacre.g:14303:2: rule__IdentifierPattern__Group_0__0__Impl rule__IdentifierPattern__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__IdentifierPattern__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0__0" + + + // $ANTLR start "rule__IdentifierPattern__Group_0__0__Impl" + // InternalFiacre.g:14310:1: rule__IdentifierPattern__Group_0__0__Impl : ( () ) ; + public final void rule__IdentifierPattern__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14314:1: ( ( () ) ) + // InternalFiacre.g:14315:1: ( () ) + { + // InternalFiacre.g:14315:1: ( () ) + // InternalFiacre.g:14316:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getConstructorPatternAction_0_0()); + } + // InternalFiacre.g:14317:2: () + // InternalFiacre.g:14317:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getConstructorPatternAction_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0__0__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_0__1" + // InternalFiacre.g:14325:1: rule__IdentifierPattern__Group_0__1 : rule__IdentifierPattern__Group_0__1__Impl rule__IdentifierPattern__Group_0__2 ; + public final void rule__IdentifierPattern__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14329:1: ( rule__IdentifierPattern__Group_0__1__Impl rule__IdentifierPattern__Group_0__2 ) + // InternalFiacre.g:14330:2: rule__IdentifierPattern__Group_0__1__Impl rule__IdentifierPattern__Group_0__2 + { + pushFollow(FollowSets000.FOLLOW_13); + rule__IdentifierPattern__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0__1" + + + // $ANTLR start "rule__IdentifierPattern__Group_0__1__Impl" + // InternalFiacre.g:14337:1: rule__IdentifierPattern__Group_0__1__Impl : ( ( rule__IdentifierPattern__DeclarationAssignment_0_1 ) ) ; + public final void rule__IdentifierPattern__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14341:1: ( ( ( rule__IdentifierPattern__DeclarationAssignment_0_1 ) ) ) + // InternalFiacre.g:14342:1: ( ( rule__IdentifierPattern__DeclarationAssignment_0_1 ) ) + { + // InternalFiacre.g:14342:1: ( ( rule__IdentifierPattern__DeclarationAssignment_0_1 ) ) + // InternalFiacre.g:14343:2: ( rule__IdentifierPattern__DeclarationAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getDeclarationAssignment_0_1()); + } + // InternalFiacre.g:14344:2: ( rule__IdentifierPattern__DeclarationAssignment_0_1 ) + // InternalFiacre.g:14344:3: rule__IdentifierPattern__DeclarationAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__DeclarationAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getDeclarationAssignment_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0__1__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_0__2" + // InternalFiacre.g:14352:1: rule__IdentifierPattern__Group_0__2 : rule__IdentifierPattern__Group_0__2__Impl rule__IdentifierPattern__Group_0__3 ; + public final void rule__IdentifierPattern__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14356:1: ( rule__IdentifierPattern__Group_0__2__Impl rule__IdentifierPattern__Group_0__3 ) + // InternalFiacre.g:14357:2: rule__IdentifierPattern__Group_0__2__Impl rule__IdentifierPattern__Group_0__3 + { + pushFollow(FollowSets000.FOLLOW_70); + rule__IdentifierPattern__Group_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0__2" + + + // $ANTLR start "rule__IdentifierPattern__Group_0__2__Impl" + // InternalFiacre.g:14364:1: rule__IdentifierPattern__Group_0__2__Impl : ( '(' ) ; + public final void rule__IdentifierPattern__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14368:1: ( ( '(' ) ) + // InternalFiacre.g:14369:1: ( '(' ) + { + // InternalFiacre.g:14369:1: ( '(' ) + // InternalFiacre.g:14370:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getLeftParenthesisKeyword_0_2()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getLeftParenthesisKeyword_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0__2__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_0__3" + // InternalFiacre.g:14379:1: rule__IdentifierPattern__Group_0__3 : rule__IdentifierPattern__Group_0__3__Impl rule__IdentifierPattern__Group_0__4 ; + public final void rule__IdentifierPattern__Group_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14383:1: ( rule__IdentifierPattern__Group_0__3__Impl rule__IdentifierPattern__Group_0__4 ) + // InternalFiacre.g:14384:2: rule__IdentifierPattern__Group_0__3__Impl rule__IdentifierPattern__Group_0__4 + { + pushFollow(FollowSets000.FOLLOW_70); + rule__IdentifierPattern__Group_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_0__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0__3" + + + // $ANTLR start "rule__IdentifierPattern__Group_0__3__Impl" + // InternalFiacre.g:14391:1: rule__IdentifierPattern__Group_0__3__Impl : ( ( rule__IdentifierPattern__Group_0_3__0 )? ) ; + public final void rule__IdentifierPattern__Group_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14395:1: ( ( ( rule__IdentifierPattern__Group_0_3__0 )? ) ) + // InternalFiacre.g:14396:1: ( ( rule__IdentifierPattern__Group_0_3__0 )? ) + { + // InternalFiacre.g:14396:1: ( ( rule__IdentifierPattern__Group_0_3__0 )? ) + // InternalFiacre.g:14397:2: ( rule__IdentifierPattern__Group_0_3__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getGroup_0_3()); + } + // InternalFiacre.g:14398:2: ( rule__IdentifierPattern__Group_0_3__0 )? + int alt132=2; + int LA132_0 = input.LA(1); + + if ( (LA132_0==RULE_ID||LA132_0==RULE_INT||LA132_0==14||LA132_0==22||LA132_0==57||LA132_0==87||(LA132_0>=106 && LA132_0<=107)) ) { + alt132=1; + } + switch (alt132) { + case 1 : + // InternalFiacre.g:14398:3: rule__IdentifierPattern__Group_0_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_0_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getGroup_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0__3__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_0__4" + // InternalFiacre.g:14406:1: rule__IdentifierPattern__Group_0__4 : rule__IdentifierPattern__Group_0__4__Impl ; + public final void rule__IdentifierPattern__Group_0__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14410:1: ( rule__IdentifierPattern__Group_0__4__Impl ) + // InternalFiacre.g:14411:2: rule__IdentifierPattern__Group_0__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_0__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0__4" + + + // $ANTLR start "rule__IdentifierPattern__Group_0__4__Impl" + // InternalFiacre.g:14417:1: rule__IdentifierPattern__Group_0__4__Impl : ( ')' ) ; + public final void rule__IdentifierPattern__Group_0__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14421:1: ( ( ')' ) ) + // InternalFiacre.g:14422:1: ( ')' ) + { + // InternalFiacre.g:14422:1: ( ')' ) + // InternalFiacre.g:14423:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getRightParenthesisKeyword_0_4()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getRightParenthesisKeyword_0_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0__4__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_0_3__0" + // InternalFiacre.g:14433:1: rule__IdentifierPattern__Group_0_3__0 : rule__IdentifierPattern__Group_0_3__0__Impl rule__IdentifierPattern__Group_0_3__1 ; + public final void rule__IdentifierPattern__Group_0_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14437:1: ( rule__IdentifierPattern__Group_0_3__0__Impl rule__IdentifierPattern__Group_0_3__1 ) + // InternalFiacre.g:14438:2: rule__IdentifierPattern__Group_0_3__0__Impl rule__IdentifierPattern__Group_0_3__1 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__IdentifierPattern__Group_0_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__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__IdentifierPattern__Group_0_3__0" + + + // $ANTLR start "rule__IdentifierPattern__Group_0_3__0__Impl" + // InternalFiacre.g:14445:1: rule__IdentifierPattern__Group_0_3__0__Impl : ( ( rule__IdentifierPattern__ParametersAssignment_0_3_0 ) ) ; + public final void rule__IdentifierPattern__Group_0_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14449:1: ( ( ( rule__IdentifierPattern__ParametersAssignment_0_3_0 ) ) ) + // InternalFiacre.g:14450:1: ( ( rule__IdentifierPattern__ParametersAssignment_0_3_0 ) ) + { + // InternalFiacre.g:14450:1: ( ( rule__IdentifierPattern__ParametersAssignment_0_3_0 ) ) + // InternalFiacre.g:14451:2: ( rule__IdentifierPattern__ParametersAssignment_0_3_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getParametersAssignment_0_3_0()); + } + // InternalFiacre.g:14452:2: ( rule__IdentifierPattern__ParametersAssignment_0_3_0 ) + // InternalFiacre.g:14452:3: rule__IdentifierPattern__ParametersAssignment_0_3_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__ParametersAssignment_0_3_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getParametersAssignment_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0_3__0__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_0_3__1" + // InternalFiacre.g:14460:1: rule__IdentifierPattern__Group_0_3__1 : rule__IdentifierPattern__Group_0_3__1__Impl ; + public final void rule__IdentifierPattern__Group_0_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14464:1: ( rule__IdentifierPattern__Group_0_3__1__Impl ) + // InternalFiacre.g:14465:2: rule__IdentifierPattern__Group_0_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__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__IdentifierPattern__Group_0_3__1" + + + // $ANTLR start "rule__IdentifierPattern__Group_0_3__1__Impl" + // InternalFiacre.g:14471:1: rule__IdentifierPattern__Group_0_3__1__Impl : ( ( rule__IdentifierPattern__Group_0_3_1__0 )* ) ; + public final void rule__IdentifierPattern__Group_0_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14475:1: ( ( ( rule__IdentifierPattern__Group_0_3_1__0 )* ) ) + // InternalFiacre.g:14476:1: ( ( rule__IdentifierPattern__Group_0_3_1__0 )* ) + { + // InternalFiacre.g:14476:1: ( ( rule__IdentifierPattern__Group_0_3_1__0 )* ) + // InternalFiacre.g:14477:2: ( rule__IdentifierPattern__Group_0_3_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getGroup_0_3_1()); + } + // InternalFiacre.g:14478:2: ( rule__IdentifierPattern__Group_0_3_1__0 )* + loop133: + do { + int alt133=2; + int LA133_0 = input.LA(1); + + if ( (LA133_0==24) ) { + alt133=1; + } + + + switch (alt133) { + case 1 : + // InternalFiacre.g:14478:3: rule__IdentifierPattern__Group_0_3_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__IdentifierPattern__Group_0_3_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop133; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getGroup_0_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0_3__1__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_0_3_1__0" + // InternalFiacre.g:14487:1: rule__IdentifierPattern__Group_0_3_1__0 : rule__IdentifierPattern__Group_0_3_1__0__Impl rule__IdentifierPattern__Group_0_3_1__1 ; + public final void rule__IdentifierPattern__Group_0_3_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14491:1: ( rule__IdentifierPattern__Group_0_3_1__0__Impl rule__IdentifierPattern__Group_0_3_1__1 ) + // InternalFiacre.g:14492:2: rule__IdentifierPattern__Group_0_3_1__0__Impl rule__IdentifierPattern__Group_0_3_1__1 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__IdentifierPattern__Group_0_3_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_0_3_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0_3_1__0" + + + // $ANTLR start "rule__IdentifierPattern__Group_0_3_1__0__Impl" + // InternalFiacre.g:14499:1: rule__IdentifierPattern__Group_0_3_1__0__Impl : ( ',' ) ; + public final void rule__IdentifierPattern__Group_0_3_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14503:1: ( ( ',' ) ) + // InternalFiacre.g:14504:1: ( ',' ) + { + // InternalFiacre.g:14504:1: ( ',' ) + // InternalFiacre.g:14505:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getCommaKeyword_0_3_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getCommaKeyword_0_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0_3_1__0__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_0_3_1__1" + // InternalFiacre.g:14514:1: rule__IdentifierPattern__Group_0_3_1__1 : rule__IdentifierPattern__Group_0_3_1__1__Impl ; + public final void rule__IdentifierPattern__Group_0_3_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14518:1: ( rule__IdentifierPattern__Group_0_3_1__1__Impl ) + // InternalFiacre.g:14519:2: rule__IdentifierPattern__Group_0_3_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_0_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__IdentifierPattern__Group_0_3_1__1" + + + // $ANTLR start "rule__IdentifierPattern__Group_0_3_1__1__Impl" + // InternalFiacre.g:14525:1: rule__IdentifierPattern__Group_0_3_1__1__Impl : ( ( rule__IdentifierPattern__ParametersAssignment_0_3_1_1 ) ) ; + public final void rule__IdentifierPattern__Group_0_3_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14529:1: ( ( ( rule__IdentifierPattern__ParametersAssignment_0_3_1_1 ) ) ) + // InternalFiacre.g:14530:1: ( ( rule__IdentifierPattern__ParametersAssignment_0_3_1_1 ) ) + { + // InternalFiacre.g:14530:1: ( ( rule__IdentifierPattern__ParametersAssignment_0_3_1_1 ) ) + // InternalFiacre.g:14531:2: ( rule__IdentifierPattern__ParametersAssignment_0_3_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getParametersAssignment_0_3_1_1()); + } + // InternalFiacre.g:14532:2: ( rule__IdentifierPattern__ParametersAssignment_0_3_1_1 ) + // InternalFiacre.g:14532:3: rule__IdentifierPattern__ParametersAssignment_0_3_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__ParametersAssignment_0_3_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getParametersAssignment_0_3_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_0_3_1__1__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_1__0" + // InternalFiacre.g:14541:1: rule__IdentifierPattern__Group_1__0 : rule__IdentifierPattern__Group_1__0__Impl rule__IdentifierPattern__Group_1__1 ; + public final void rule__IdentifierPattern__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14545:1: ( rule__IdentifierPattern__Group_1__0__Impl rule__IdentifierPattern__Group_1__1 ) + // InternalFiacre.g:14546:2: rule__IdentifierPattern__Group_1__0__Impl rule__IdentifierPattern__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_71); + rule__IdentifierPattern__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1__0" + + + // $ANTLR start "rule__IdentifierPattern__Group_1__0__Impl" + // InternalFiacre.g:14553:1: rule__IdentifierPattern__Group_1__0__Impl : ( ( rule__IdentifierPattern__DeclarationAssignment_1_0 ) ) ; + public final void rule__IdentifierPattern__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14557:1: ( ( ( rule__IdentifierPattern__DeclarationAssignment_1_0 ) ) ) + // InternalFiacre.g:14558:1: ( ( rule__IdentifierPattern__DeclarationAssignment_1_0 ) ) + { + // InternalFiacre.g:14558:1: ( ( rule__IdentifierPattern__DeclarationAssignment_1_0 ) ) + // InternalFiacre.g:14559:2: ( rule__IdentifierPattern__DeclarationAssignment_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getDeclarationAssignment_1_0()); + } + // InternalFiacre.g:14560:2: ( rule__IdentifierPattern__DeclarationAssignment_1_0 ) + // InternalFiacre.g:14560:3: rule__IdentifierPattern__DeclarationAssignment_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__DeclarationAssignment_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getDeclarationAssignment_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1__0__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_1__1" + // InternalFiacre.g:14568:1: rule__IdentifierPattern__Group_1__1 : rule__IdentifierPattern__Group_1__1__Impl ; + public final void rule__IdentifierPattern__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14572:1: ( rule__IdentifierPattern__Group_1__1__Impl ) + // InternalFiacre.g:14573:2: rule__IdentifierPattern__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__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__IdentifierPattern__Group_1__1" + + + // $ANTLR start "rule__IdentifierPattern__Group_1__1__Impl" + // InternalFiacre.g:14579:1: rule__IdentifierPattern__Group_1__1__Impl : ( ( rule__IdentifierPattern__Alternatives_1_1 )* ) ; + public final void rule__IdentifierPattern__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14583:1: ( ( ( rule__IdentifierPattern__Alternatives_1_1 )* ) ) + // InternalFiacre.g:14584:1: ( ( rule__IdentifierPattern__Alternatives_1_1 )* ) + { + // InternalFiacre.g:14584:1: ( ( rule__IdentifierPattern__Alternatives_1_1 )* ) + // InternalFiacre.g:14585:2: ( rule__IdentifierPattern__Alternatives_1_1 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getAlternatives_1_1()); + } + // InternalFiacre.g:14586:2: ( rule__IdentifierPattern__Alternatives_1_1 )* + loop134: + do { + int alt134=2; + int LA134_0 = input.LA(1); + + if ( (LA134_0==42||LA134_0==61) ) { + alt134=1; + } + + + switch (alt134) { + case 1 : + // InternalFiacre.g:14586:3: rule__IdentifierPattern__Alternatives_1_1 + { + pushFollow(FollowSets000.FOLLOW_72); + rule__IdentifierPattern__Alternatives_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop134; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getAlternatives_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1__1__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_0__0" + // InternalFiacre.g:14595:1: rule__IdentifierPattern__Group_1_1_0__0 : rule__IdentifierPattern__Group_1_1_0__0__Impl rule__IdentifierPattern__Group_1_1_0__1 ; + public final void rule__IdentifierPattern__Group_1_1_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14599:1: ( rule__IdentifierPattern__Group_1_1_0__0__Impl rule__IdentifierPattern__Group_1_1_0__1 ) + // InternalFiacre.g:14600:2: rule__IdentifierPattern__Group_1_1_0__0__Impl rule__IdentifierPattern__Group_1_1_0__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__IdentifierPattern__Group_1_1_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__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__IdentifierPattern__Group_1_1_0__0" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_0__0__Impl" + // InternalFiacre.g:14607:1: rule__IdentifierPattern__Group_1_1_0__0__Impl : ( '[' ) ; + public final void rule__IdentifierPattern__Group_1_1_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14611:1: ( ( '[' ) ) + // InternalFiacre.g:14612:1: ( '[' ) + { + // InternalFiacre.g:14612:1: ( '[' ) + // InternalFiacre.g:14613:2: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getLeftSquareBracketKeyword_1_1_0_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getLeftSquareBracketKeyword_1_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_0__0__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_0__1" + // InternalFiacre.g:14622:1: rule__IdentifierPattern__Group_1_1_0__1 : rule__IdentifierPattern__Group_1_1_0__1__Impl rule__IdentifierPattern__Group_1_1_0__2 ; + public final void rule__IdentifierPattern__Group_1_1_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14626:1: ( rule__IdentifierPattern__Group_1_1_0__1__Impl rule__IdentifierPattern__Group_1_1_0__2 ) + // InternalFiacre.g:14627:2: rule__IdentifierPattern__Group_1_1_0__1__Impl rule__IdentifierPattern__Group_1_1_0__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__IdentifierPattern__Group_1_1_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_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__IdentifierPattern__Group_1_1_0__1" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_0__1__Impl" + // InternalFiacre.g:14634:1: rule__IdentifierPattern__Group_1_1_0__1__Impl : ( () ) ; + public final void rule__IdentifierPattern__Group_1_1_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14638:1: ( ( () ) ) + // InternalFiacre.g:14639:1: ( () ) + { + // InternalFiacre.g:14639:1: ( () ) + // InternalFiacre.g:14640:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getArrayAccessPatternSourceAction_1_1_0_1()); + } + // InternalFiacre.g:14641:2: () + // InternalFiacre.g:14641:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getArrayAccessPatternSourceAction_1_1_0_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_0__1__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_0__2" + // InternalFiacre.g:14649:1: rule__IdentifierPattern__Group_1_1_0__2 : rule__IdentifierPattern__Group_1_1_0__2__Impl rule__IdentifierPattern__Group_1_1_0__3 ; + public final void rule__IdentifierPattern__Group_1_1_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14653:1: ( rule__IdentifierPattern__Group_1_1_0__2__Impl rule__IdentifierPattern__Group_1_1_0__3 ) + // InternalFiacre.g:14654:2: rule__IdentifierPattern__Group_1_1_0__2__Impl rule__IdentifierPattern__Group_1_1_0__3 + { + pushFollow(FollowSets000.FOLLOW_51); + rule__IdentifierPattern__Group_1_1_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_1_1_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_0__2" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_0__2__Impl" + // InternalFiacre.g:14661:1: rule__IdentifierPattern__Group_1_1_0__2__Impl : ( ( rule__IdentifierPattern__IndexAssignment_1_1_0_2 ) ) ; + public final void rule__IdentifierPattern__Group_1_1_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14665:1: ( ( ( rule__IdentifierPattern__IndexAssignment_1_1_0_2 ) ) ) + // InternalFiacre.g:14666:1: ( ( rule__IdentifierPattern__IndexAssignment_1_1_0_2 ) ) + { + // InternalFiacre.g:14666:1: ( ( rule__IdentifierPattern__IndexAssignment_1_1_0_2 ) ) + // InternalFiacre.g:14667:2: ( rule__IdentifierPattern__IndexAssignment_1_1_0_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getIndexAssignment_1_1_0_2()); + } + // InternalFiacre.g:14668:2: ( rule__IdentifierPattern__IndexAssignment_1_1_0_2 ) + // InternalFiacre.g:14668:3: rule__IdentifierPattern__IndexAssignment_1_1_0_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__IndexAssignment_1_1_0_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getIndexAssignment_1_1_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_0__2__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_0__3" + // InternalFiacre.g:14676:1: rule__IdentifierPattern__Group_1_1_0__3 : rule__IdentifierPattern__Group_1_1_0__3__Impl ; + public final void rule__IdentifierPattern__Group_1_1_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14680:1: ( rule__IdentifierPattern__Group_1_1_0__3__Impl ) + // InternalFiacre.g:14681:2: rule__IdentifierPattern__Group_1_1_0__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_1_1_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_0__3" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_0__3__Impl" + // InternalFiacre.g:14687:1: rule__IdentifierPattern__Group_1_1_0__3__Impl : ( ']' ) ; + public final void rule__IdentifierPattern__Group_1_1_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14691:1: ( ( ']' ) ) + // InternalFiacre.g:14692:1: ( ']' ) + { + // InternalFiacre.g:14692:1: ( ']' ) + // InternalFiacre.g:14693:2: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getRightSquareBracketKeyword_1_1_0_3()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getRightSquareBracketKeyword_1_1_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_0__3__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_1__0" + // InternalFiacre.g:14703:1: rule__IdentifierPattern__Group_1_1_1__0 : rule__IdentifierPattern__Group_1_1_1__0__Impl rule__IdentifierPattern__Group_1_1_1__1 ; + public final void rule__IdentifierPattern__Group_1_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14707:1: ( rule__IdentifierPattern__Group_1_1_1__0__Impl rule__IdentifierPattern__Group_1_1_1__1 ) + // InternalFiacre.g:14708:2: rule__IdentifierPattern__Group_1_1_1__0__Impl rule__IdentifierPattern__Group_1_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__IdentifierPattern__Group_1_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__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__IdentifierPattern__Group_1_1_1__0" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_1__0__Impl" + // InternalFiacre.g:14715:1: rule__IdentifierPattern__Group_1_1_1__0__Impl : ( '.' ) ; + public final void rule__IdentifierPattern__Group_1_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14719:1: ( ( '.' ) ) + // InternalFiacre.g:14720:1: ( '.' ) + { + // InternalFiacre.g:14720:1: ( '.' ) + // InternalFiacre.g:14721:2: '.' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getFullStopKeyword_1_1_1_0()); + } + match(input,61,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getFullStopKeyword_1_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_1__0__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_1__1" + // InternalFiacre.g:14730:1: rule__IdentifierPattern__Group_1_1_1__1 : rule__IdentifierPattern__Group_1_1_1__1__Impl rule__IdentifierPattern__Group_1_1_1__2 ; + public final void rule__IdentifierPattern__Group_1_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14734:1: ( rule__IdentifierPattern__Group_1_1_1__1__Impl rule__IdentifierPattern__Group_1_1_1__2 ) + // InternalFiacre.g:14735:2: rule__IdentifierPattern__Group_1_1_1__1__Impl rule__IdentifierPattern__Group_1_1_1__2 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__IdentifierPattern__Group_1_1_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_1_1_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_1__1" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_1__1__Impl" + // InternalFiacre.g:14742:1: rule__IdentifierPattern__Group_1_1_1__1__Impl : ( () ) ; + public final void rule__IdentifierPattern__Group_1_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14746:1: ( ( () ) ) + // InternalFiacre.g:14747:1: ( () ) + { + // InternalFiacre.g:14747:1: ( () ) + // InternalFiacre.g:14748:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getRecordAccessPatternSourceAction_1_1_1_1()); + } + // InternalFiacre.g:14749:2: () + // InternalFiacre.g:14749:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getRecordAccessPatternSourceAction_1_1_1_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_1__1__Impl" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_1__2" + // InternalFiacre.g:14757:1: rule__IdentifierPattern__Group_1_1_1__2 : rule__IdentifierPattern__Group_1_1_1__2__Impl ; + public final void rule__IdentifierPattern__Group_1_1_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14761:1: ( rule__IdentifierPattern__Group_1_1_1__2__Impl ) + // InternalFiacre.g:14762:2: rule__IdentifierPattern__Group_1_1_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__Group_1_1_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_1__2" + + + // $ANTLR start "rule__IdentifierPattern__Group_1_1_1__2__Impl" + // InternalFiacre.g:14768:1: rule__IdentifierPattern__Group_1_1_1__2__Impl : ( ( rule__IdentifierPattern__FieldAssignment_1_1_1_2 ) ) ; + public final void rule__IdentifierPattern__Group_1_1_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14772:1: ( ( ( rule__IdentifierPattern__FieldAssignment_1_1_1_2 ) ) ) + // InternalFiacre.g:14773:1: ( ( rule__IdentifierPattern__FieldAssignment_1_1_1_2 ) ) + { + // InternalFiacre.g:14773:1: ( ( rule__IdentifierPattern__FieldAssignment_1_1_1_2 ) ) + // InternalFiacre.g:14774:2: ( rule__IdentifierPattern__FieldAssignment_1_1_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getFieldAssignment_1_1_1_2()); + } + // InternalFiacre.g:14775:2: ( rule__IdentifierPattern__FieldAssignment_1_1_1_2 ) + // InternalFiacre.g:14775:3: rule__IdentifierPattern__FieldAssignment_1_1_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierPattern__FieldAssignment_1_1_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getFieldAssignment_1_1_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__Group_1_1_1__2__Impl" + + + // $ANTLR start "rule__ConditionalStatement__Group__0" + // InternalFiacre.g:14784:1: rule__ConditionalStatement__Group__0 : rule__ConditionalStatement__Group__0__Impl rule__ConditionalStatement__Group__1 ; + public final void rule__ConditionalStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14788:1: ( rule__ConditionalStatement__Group__0__Impl rule__ConditionalStatement__Group__1 ) + // InternalFiacre.g:14789:2: rule__ConditionalStatement__Group__0__Impl rule__ConditionalStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ConditionalStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__0" + + + // $ANTLR start "rule__ConditionalStatement__Group__0__Impl" + // InternalFiacre.g:14796:1: rule__ConditionalStatement__Group__0__Impl : ( 'if' ) ; + public final void rule__ConditionalStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14800:1: ( ( 'if' ) ) + // InternalFiacre.g:14801:1: ( 'if' ) + { + // InternalFiacre.g:14801:1: ( 'if' ) + // InternalFiacre.g:14802:2: 'if' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getIfKeyword_0()); + } + match(input,62,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getIfKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__0__Impl" + + + // $ANTLR start "rule__ConditionalStatement__Group__1" + // InternalFiacre.g:14811:1: rule__ConditionalStatement__Group__1 : rule__ConditionalStatement__Group__1__Impl rule__ConditionalStatement__Group__2 ; + public final void rule__ConditionalStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14815:1: ( rule__ConditionalStatement__Group__1__Impl rule__ConditionalStatement__Group__2 ) + // InternalFiacre.g:14816:2: rule__ConditionalStatement__Group__1__Impl rule__ConditionalStatement__Group__2 + { + pushFollow(FollowSets000.FOLLOW_73); + rule__ConditionalStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__1" + + + // $ANTLR start "rule__ConditionalStatement__Group__1__Impl" + // InternalFiacre.g:14823:1: rule__ConditionalStatement__Group__1__Impl : ( ( rule__ConditionalStatement__ConditionAssignment_1 ) ) ; + public final void rule__ConditionalStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14827:1: ( ( ( rule__ConditionalStatement__ConditionAssignment_1 ) ) ) + // InternalFiacre.g:14828:1: ( ( rule__ConditionalStatement__ConditionAssignment_1 ) ) + { + // InternalFiacre.g:14828:1: ( ( rule__ConditionalStatement__ConditionAssignment_1 ) ) + // InternalFiacre.g:14829:2: ( rule__ConditionalStatement__ConditionAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getConditionAssignment_1()); + } + // InternalFiacre.g:14830:2: ( rule__ConditionalStatement__ConditionAssignment_1 ) + // InternalFiacre.g:14830:3: rule__ConditionalStatement__ConditionAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__ConditionAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getConditionAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__1__Impl" + + + // $ANTLR start "rule__ConditionalStatement__Group__2" + // InternalFiacre.g:14838:1: rule__ConditionalStatement__Group__2 : rule__ConditionalStatement__Group__2__Impl rule__ConditionalStatement__Group__3 ; + public final void rule__ConditionalStatement__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14842:1: ( rule__ConditionalStatement__Group__2__Impl rule__ConditionalStatement__Group__3 ) + // InternalFiacre.g:14843:2: rule__ConditionalStatement__Group__2__Impl rule__ConditionalStatement__Group__3 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__ConditionalStatement__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__2" + + + // $ANTLR start "rule__ConditionalStatement__Group__2__Impl" + // InternalFiacre.g:14850:1: rule__ConditionalStatement__Group__2__Impl : ( 'then' ) ; + public final void rule__ConditionalStatement__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14854:1: ( ( 'then' ) ) + // InternalFiacre.g:14855:1: ( 'then' ) + { + // InternalFiacre.g:14855:1: ( 'then' ) + // InternalFiacre.g:14856:2: 'then' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getThenKeyword_2()); + } + match(input,63,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getThenKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__2__Impl" + + + // $ANTLR start "rule__ConditionalStatement__Group__3" + // InternalFiacre.g:14865:1: rule__ConditionalStatement__Group__3 : rule__ConditionalStatement__Group__3__Impl rule__ConditionalStatement__Group__4 ; + public final void rule__ConditionalStatement__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14869:1: ( rule__ConditionalStatement__Group__3__Impl rule__ConditionalStatement__Group__4 ) + // InternalFiacre.g:14870:2: rule__ConditionalStatement__Group__3__Impl rule__ConditionalStatement__Group__4 + { + pushFollow(FollowSets000.FOLLOW_74); + rule__ConditionalStatement__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__3" + + + // $ANTLR start "rule__ConditionalStatement__Group__3__Impl" + // InternalFiacre.g:14877:1: rule__ConditionalStatement__Group__3__Impl : ( ( rule__ConditionalStatement__ThenAssignment_3 ) ) ; + public final void rule__ConditionalStatement__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14881:1: ( ( ( rule__ConditionalStatement__ThenAssignment_3 ) ) ) + // InternalFiacre.g:14882:1: ( ( rule__ConditionalStatement__ThenAssignment_3 ) ) + { + // InternalFiacre.g:14882:1: ( ( rule__ConditionalStatement__ThenAssignment_3 ) ) + // InternalFiacre.g:14883:2: ( rule__ConditionalStatement__ThenAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getThenAssignment_3()); + } + // InternalFiacre.g:14884:2: ( rule__ConditionalStatement__ThenAssignment_3 ) + // InternalFiacre.g:14884:3: rule__ConditionalStatement__ThenAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__ThenAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getThenAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__3__Impl" + + + // $ANTLR start "rule__ConditionalStatement__Group__4" + // InternalFiacre.g:14892:1: rule__ConditionalStatement__Group__4 : rule__ConditionalStatement__Group__4__Impl rule__ConditionalStatement__Group__5 ; + public final void rule__ConditionalStatement__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14896:1: ( rule__ConditionalStatement__Group__4__Impl rule__ConditionalStatement__Group__5 ) + // InternalFiacre.g:14897:2: rule__ConditionalStatement__Group__4__Impl rule__ConditionalStatement__Group__5 + { + pushFollow(FollowSets000.FOLLOW_74); + rule__ConditionalStatement__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__4" + + + // $ANTLR start "rule__ConditionalStatement__Group__4__Impl" + // InternalFiacre.g:14904:1: rule__ConditionalStatement__Group__4__Impl : ( ( rule__ConditionalStatement__ElseifAssignment_4 )* ) ; + public final void rule__ConditionalStatement__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14908:1: ( ( ( rule__ConditionalStatement__ElseifAssignment_4 )* ) ) + // InternalFiacre.g:14909:1: ( ( rule__ConditionalStatement__ElseifAssignment_4 )* ) + { + // InternalFiacre.g:14909:1: ( ( rule__ConditionalStatement__ElseifAssignment_4 )* ) + // InternalFiacre.g:14910:2: ( rule__ConditionalStatement__ElseifAssignment_4 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getElseifAssignment_4()); + } + // InternalFiacre.g:14911:2: ( rule__ConditionalStatement__ElseifAssignment_4 )* + loop135: + do { + int alt135=2; + int LA135_0 = input.LA(1); + + if ( (LA135_0==65) ) { + alt135=1; + } + + + switch (alt135) { + case 1 : + // InternalFiacre.g:14911:3: rule__ConditionalStatement__ElseifAssignment_4 + { + pushFollow(FollowSets000.FOLLOW_75); + rule__ConditionalStatement__ElseifAssignment_4(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop135; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getElseifAssignment_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__4__Impl" + + + // $ANTLR start "rule__ConditionalStatement__Group__5" + // InternalFiacre.g:14919:1: rule__ConditionalStatement__Group__5 : rule__ConditionalStatement__Group__5__Impl rule__ConditionalStatement__Group__6 ; + public final void rule__ConditionalStatement__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14923:1: ( rule__ConditionalStatement__Group__5__Impl rule__ConditionalStatement__Group__6 ) + // InternalFiacre.g:14924:2: rule__ConditionalStatement__Group__5__Impl rule__ConditionalStatement__Group__6 + { + pushFollow(FollowSets000.FOLLOW_74); + rule__ConditionalStatement__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__5" + + + // $ANTLR start "rule__ConditionalStatement__Group__5__Impl" + // InternalFiacre.g:14931:1: rule__ConditionalStatement__Group__5__Impl : ( ( rule__ConditionalStatement__Group_5__0 )? ) ; + public final void rule__ConditionalStatement__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14935:1: ( ( ( rule__ConditionalStatement__Group_5__0 )? ) ) + // InternalFiacre.g:14936:1: ( ( rule__ConditionalStatement__Group_5__0 )? ) + { + // InternalFiacre.g:14936:1: ( ( rule__ConditionalStatement__Group_5__0 )? ) + // InternalFiacre.g:14937:2: ( rule__ConditionalStatement__Group_5__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getGroup_5()); + } + // InternalFiacre.g:14938:2: ( rule__ConditionalStatement__Group_5__0 )? + int alt136=2; + int LA136_0 = input.LA(1); + + if ( (LA136_0==64) ) { + alt136=1; + } + switch (alt136) { + case 1 : + // InternalFiacre.g:14938:3: rule__ConditionalStatement__Group_5__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group_5__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getGroup_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__5__Impl" + + + // $ANTLR start "rule__ConditionalStatement__Group__6" + // InternalFiacre.g:14946:1: rule__ConditionalStatement__Group__6 : rule__ConditionalStatement__Group__6__Impl rule__ConditionalStatement__Group__7 ; + public final void rule__ConditionalStatement__Group__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14950:1: ( rule__ConditionalStatement__Group__6__Impl rule__ConditionalStatement__Group__7 ) + // InternalFiacre.g:14951:2: rule__ConditionalStatement__Group__6__Impl rule__ConditionalStatement__Group__7 + { + pushFollow(FollowSets000.FOLLOW_76); + rule__ConditionalStatement__Group__6__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group__7(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__6" + + + // $ANTLR start "rule__ConditionalStatement__Group__6__Impl" + // InternalFiacre.g:14958:1: rule__ConditionalStatement__Group__6__Impl : ( 'end' ) ; + public final void rule__ConditionalStatement__Group__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14962:1: ( ( 'end' ) ) + // InternalFiacre.g:14963:1: ( 'end' ) + { + // InternalFiacre.g:14963:1: ( 'end' ) + // InternalFiacre.g:14964:2: 'end' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getEndKeyword_6()); + } + match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getEndKeyword_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__6__Impl" + + + // $ANTLR start "rule__ConditionalStatement__Group__7" + // InternalFiacre.g:14973:1: rule__ConditionalStatement__Group__7 : rule__ConditionalStatement__Group__7__Impl ; + public final void rule__ConditionalStatement__Group__7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14977:1: ( rule__ConditionalStatement__Group__7__Impl ) + // InternalFiacre.g:14978:2: rule__ConditionalStatement__Group__7__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group__7__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__7" + + + // $ANTLR start "rule__ConditionalStatement__Group__7__Impl" + // InternalFiacre.g:14984:1: rule__ConditionalStatement__Group__7__Impl : ( ( 'if' )? ) ; + public final void rule__ConditionalStatement__Group__7__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:14988:1: ( ( ( 'if' )? ) ) + // InternalFiacre.g:14989:1: ( ( 'if' )? ) + { + // InternalFiacre.g:14989:1: ( ( 'if' )? ) + // InternalFiacre.g:14990:2: ( 'if' )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getIfKeyword_7()); + } + // InternalFiacre.g:14991:2: ( 'if' )? + int alt137=2; + int LA137_0 = input.LA(1); + + if ( (LA137_0==62) ) { + alt137=1; + } + switch (alt137) { + case 1 : + // InternalFiacre.g:14991:3: 'if' + { + match(input,62,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getIfKeyword_7()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group__7__Impl" + + + // $ANTLR start "rule__ConditionalStatement__Group_5__0" + // InternalFiacre.g:15000:1: rule__ConditionalStatement__Group_5__0 : rule__ConditionalStatement__Group_5__0__Impl rule__ConditionalStatement__Group_5__1 ; + public final void rule__ConditionalStatement__Group_5__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15004:1: ( rule__ConditionalStatement__Group_5__0__Impl rule__ConditionalStatement__Group_5__1 ) + // InternalFiacre.g:15005:2: rule__ConditionalStatement__Group_5__0__Impl rule__ConditionalStatement__Group_5__1 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__ConditionalStatement__Group_5__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__Group_5__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group_5__0" + + + // $ANTLR start "rule__ConditionalStatement__Group_5__0__Impl" + // InternalFiacre.g:15012:1: rule__ConditionalStatement__Group_5__0__Impl : ( 'else' ) ; + public final void rule__ConditionalStatement__Group_5__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15016:1: ( ( 'else' ) ) + // InternalFiacre.g:15017:1: ( 'else' ) + { + // InternalFiacre.g:15017:1: ( 'else' ) + // InternalFiacre.g:15018:2: 'else' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getElseKeyword_5_0()); + } + match(input,64,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getElseKeyword_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group_5__0__Impl" + + + // $ANTLR start "rule__ConditionalStatement__Group_5__1" + // InternalFiacre.g:15027:1: rule__ConditionalStatement__Group_5__1 : rule__ConditionalStatement__Group_5__1__Impl ; + public final void rule__ConditionalStatement__Group_5__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15031:1: ( rule__ConditionalStatement__Group_5__1__Impl ) + // InternalFiacre.g:15032:2: rule__ConditionalStatement__Group_5__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__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__ConditionalStatement__Group_5__1" + + + // $ANTLR start "rule__ConditionalStatement__Group_5__1__Impl" + // InternalFiacre.g:15038:1: rule__ConditionalStatement__Group_5__1__Impl : ( ( rule__ConditionalStatement__ElseAssignment_5_1 ) ) ; + public final void rule__ConditionalStatement__Group_5__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15042:1: ( ( ( rule__ConditionalStatement__ElseAssignment_5_1 ) ) ) + // InternalFiacre.g:15043:1: ( ( rule__ConditionalStatement__ElseAssignment_5_1 ) ) + { + // InternalFiacre.g:15043:1: ( ( rule__ConditionalStatement__ElseAssignment_5_1 ) ) + // InternalFiacre.g:15044:2: ( rule__ConditionalStatement__ElseAssignment_5_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getElseAssignment_5_1()); + } + // InternalFiacre.g:15045:2: ( rule__ConditionalStatement__ElseAssignment_5_1 ) + // InternalFiacre.g:15045:3: rule__ConditionalStatement__ElseAssignment_5_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ConditionalStatement__ElseAssignment_5_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getElseAssignment_5_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__Group_5__1__Impl" + + + // $ANTLR start "rule__ExtendedConditionalStatement__Group__0" + // InternalFiacre.g:15054:1: rule__ExtendedConditionalStatement__Group__0 : rule__ExtendedConditionalStatement__Group__0__Impl rule__ExtendedConditionalStatement__Group__1 ; + public final void rule__ExtendedConditionalStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15058:1: ( rule__ExtendedConditionalStatement__Group__0__Impl rule__ExtendedConditionalStatement__Group__1 ) + // InternalFiacre.g:15059:2: rule__ExtendedConditionalStatement__Group__0__Impl rule__ExtendedConditionalStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ExtendedConditionalStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ExtendedConditionalStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ExtendedConditionalStatement__Group__0" + + + // $ANTLR start "rule__ExtendedConditionalStatement__Group__0__Impl" + // InternalFiacre.g:15066:1: rule__ExtendedConditionalStatement__Group__0__Impl : ( 'elsif' ) ; + public final void rule__ExtendedConditionalStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15070:1: ( ( 'elsif' ) ) + // InternalFiacre.g:15071:1: ( 'elsif' ) + { + // InternalFiacre.g:15071:1: ( 'elsif' ) + // InternalFiacre.g:15072:2: 'elsif' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getExtendedConditionalStatementAccess().getElsifKeyword_0()); + } + match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getExtendedConditionalStatementAccess().getElsifKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ExtendedConditionalStatement__Group__0__Impl" + + + // $ANTLR start "rule__ExtendedConditionalStatement__Group__1" + // InternalFiacre.g:15081:1: rule__ExtendedConditionalStatement__Group__1 : rule__ExtendedConditionalStatement__Group__1__Impl rule__ExtendedConditionalStatement__Group__2 ; + public final void rule__ExtendedConditionalStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15085:1: ( rule__ExtendedConditionalStatement__Group__1__Impl rule__ExtendedConditionalStatement__Group__2 ) + // InternalFiacre.g:15086:2: rule__ExtendedConditionalStatement__Group__1__Impl rule__ExtendedConditionalStatement__Group__2 + { + pushFollow(FollowSets000.FOLLOW_73); + rule__ExtendedConditionalStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ExtendedConditionalStatement__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ExtendedConditionalStatement__Group__1" + + + // $ANTLR start "rule__ExtendedConditionalStatement__Group__1__Impl" + // InternalFiacre.g:15093:1: rule__ExtendedConditionalStatement__Group__1__Impl : ( ( rule__ExtendedConditionalStatement__ConditionAssignment_1 ) ) ; + public final void rule__ExtendedConditionalStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15097:1: ( ( ( rule__ExtendedConditionalStatement__ConditionAssignment_1 ) ) ) + // InternalFiacre.g:15098:1: ( ( rule__ExtendedConditionalStatement__ConditionAssignment_1 ) ) + { + // InternalFiacre.g:15098:1: ( ( rule__ExtendedConditionalStatement__ConditionAssignment_1 ) ) + // InternalFiacre.g:15099:2: ( rule__ExtendedConditionalStatement__ConditionAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getExtendedConditionalStatementAccess().getConditionAssignment_1()); + } + // InternalFiacre.g:15100:2: ( rule__ExtendedConditionalStatement__ConditionAssignment_1 ) + // InternalFiacre.g:15100:3: rule__ExtendedConditionalStatement__ConditionAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ExtendedConditionalStatement__ConditionAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getExtendedConditionalStatementAccess().getConditionAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ExtendedConditionalStatement__Group__1__Impl" + + + // $ANTLR start "rule__ExtendedConditionalStatement__Group__2" + // InternalFiacre.g:15108:1: rule__ExtendedConditionalStatement__Group__2 : rule__ExtendedConditionalStatement__Group__2__Impl rule__ExtendedConditionalStatement__Group__3 ; + public final void rule__ExtendedConditionalStatement__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15112:1: ( rule__ExtendedConditionalStatement__Group__2__Impl rule__ExtendedConditionalStatement__Group__3 ) + // InternalFiacre.g:15113:2: rule__ExtendedConditionalStatement__Group__2__Impl rule__ExtendedConditionalStatement__Group__3 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__ExtendedConditionalStatement__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ExtendedConditionalStatement__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ExtendedConditionalStatement__Group__2" + + + // $ANTLR start "rule__ExtendedConditionalStatement__Group__2__Impl" + // InternalFiacre.g:15120:1: rule__ExtendedConditionalStatement__Group__2__Impl : ( 'then' ) ; + public final void rule__ExtendedConditionalStatement__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15124:1: ( ( 'then' ) ) + // InternalFiacre.g:15125:1: ( 'then' ) + { + // InternalFiacre.g:15125:1: ( 'then' ) + // InternalFiacre.g:15126:2: 'then' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getExtendedConditionalStatementAccess().getThenKeyword_2()); + } + match(input,63,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getExtendedConditionalStatementAccess().getThenKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ExtendedConditionalStatement__Group__2__Impl" + + + // $ANTLR start "rule__ExtendedConditionalStatement__Group__3" + // InternalFiacre.g:15135:1: rule__ExtendedConditionalStatement__Group__3 : rule__ExtendedConditionalStatement__Group__3__Impl ; + public final void rule__ExtendedConditionalStatement__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15139:1: ( rule__ExtendedConditionalStatement__Group__3__Impl ) + // InternalFiacre.g:15140:2: rule__ExtendedConditionalStatement__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ExtendedConditionalStatement__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ExtendedConditionalStatement__Group__3" + + + // $ANTLR start "rule__ExtendedConditionalStatement__Group__3__Impl" + // InternalFiacre.g:15146:1: rule__ExtendedConditionalStatement__Group__3__Impl : ( ( rule__ExtendedConditionalStatement__ThenAssignment_3 ) ) ; + public final void rule__ExtendedConditionalStatement__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15150:1: ( ( ( rule__ExtendedConditionalStatement__ThenAssignment_3 ) ) ) + // InternalFiacre.g:15151:1: ( ( rule__ExtendedConditionalStatement__ThenAssignment_3 ) ) + { + // InternalFiacre.g:15151:1: ( ( rule__ExtendedConditionalStatement__ThenAssignment_3 ) ) + // InternalFiacre.g:15152:2: ( rule__ExtendedConditionalStatement__ThenAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getExtendedConditionalStatementAccess().getThenAssignment_3()); + } + // InternalFiacre.g:15153:2: ( rule__ExtendedConditionalStatement__ThenAssignment_3 ) + // InternalFiacre.g:15153:3: rule__ExtendedConditionalStatement__ThenAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ExtendedConditionalStatement__ThenAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getExtendedConditionalStatementAccess().getThenAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ExtendedConditionalStatement__Group__3__Impl" + + + // $ANTLR start "rule__SelectStatement__Group__0" + // InternalFiacre.g:15162:1: rule__SelectStatement__Group__0 : rule__SelectStatement__Group__0__Impl rule__SelectStatement__Group__1 ; + public final void rule__SelectStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15166:1: ( rule__SelectStatement__Group__0__Impl rule__SelectStatement__Group__1 ) + // InternalFiacre.g:15167:2: rule__SelectStatement__Group__0__Impl rule__SelectStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__SelectStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group__0" + + + // $ANTLR start "rule__SelectStatement__Group__0__Impl" + // InternalFiacre.g:15174:1: rule__SelectStatement__Group__0__Impl : ( 'select' ) ; + public final void rule__SelectStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15178:1: ( ( 'select' ) ) + // InternalFiacre.g:15179:1: ( 'select' ) + { + // InternalFiacre.g:15179:1: ( 'select' ) + // InternalFiacre.g:15180:2: 'select' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getSelectKeyword_0()); + } + match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getSelectKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group__0__Impl" + + + // $ANTLR start "rule__SelectStatement__Group__1" + // InternalFiacre.g:15189:1: rule__SelectStatement__Group__1 : rule__SelectStatement__Group__1__Impl rule__SelectStatement__Group__2 ; + public final void rule__SelectStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15193:1: ( rule__SelectStatement__Group__1__Impl rule__SelectStatement__Group__2 ) + // InternalFiacre.g:15194:2: rule__SelectStatement__Group__1__Impl rule__SelectStatement__Group__2 + { + pushFollow(FollowSets000.FOLLOW_33); + rule__SelectStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group__1" + + + // $ANTLR start "rule__SelectStatement__Group__1__Impl" + // InternalFiacre.g:15201:1: rule__SelectStatement__Group__1__Impl : ( ( rule__SelectStatement__BodyAssignment_1 ) ) ; + public final void rule__SelectStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15205:1: ( ( ( rule__SelectStatement__BodyAssignment_1 ) ) ) + // InternalFiacre.g:15206:1: ( ( rule__SelectStatement__BodyAssignment_1 ) ) + { + // InternalFiacre.g:15206:1: ( ( rule__SelectStatement__BodyAssignment_1 ) ) + // InternalFiacre.g:15207:2: ( rule__SelectStatement__BodyAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getBodyAssignment_1()); + } + // InternalFiacre.g:15208:2: ( rule__SelectStatement__BodyAssignment_1 ) + // InternalFiacre.g:15208:3: rule__SelectStatement__BodyAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__BodyAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getBodyAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group__1__Impl" + + + // $ANTLR start "rule__SelectStatement__Group__2" + // InternalFiacre.g:15216:1: rule__SelectStatement__Group__2 : rule__SelectStatement__Group__2__Impl rule__SelectStatement__Group__3 ; + public final void rule__SelectStatement__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15220:1: ( rule__SelectStatement__Group__2__Impl rule__SelectStatement__Group__3 ) + // InternalFiacre.g:15221:2: rule__SelectStatement__Group__2__Impl rule__SelectStatement__Group__3 + { + pushFollow(FollowSets000.FOLLOW_33); + rule__SelectStatement__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group__2" + + + // $ANTLR start "rule__SelectStatement__Group__2__Impl" + // InternalFiacre.g:15228:1: rule__SelectStatement__Group__2__Impl : ( ( rule__SelectStatement__Group_2__0 )? ) ; + public final void rule__SelectStatement__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15232:1: ( ( ( rule__SelectStatement__Group_2__0 )? ) ) + // InternalFiacre.g:15233:1: ( ( rule__SelectStatement__Group_2__0 )? ) + { + // InternalFiacre.g:15233:1: ( ( rule__SelectStatement__Group_2__0 )? ) + // InternalFiacre.g:15234:2: ( rule__SelectStatement__Group_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getGroup_2()); + } + // InternalFiacre.g:15235:2: ( rule__SelectStatement__Group_2__0 )? + int alt138=2; + int LA138_0 = input.LA(1); + + if ( (LA138_0==17) ) { + alt138=1; + } + switch (alt138) { + case 1 : + // InternalFiacre.g:15235:3: rule__SelectStatement__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group__2__Impl" + + + // $ANTLR start "rule__SelectStatement__Group__3" + // InternalFiacre.g:15243:1: rule__SelectStatement__Group__3 : rule__SelectStatement__Group__3__Impl rule__SelectStatement__Group__4 ; + public final void rule__SelectStatement__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15247:1: ( rule__SelectStatement__Group__3__Impl rule__SelectStatement__Group__4 ) + // InternalFiacre.g:15248:2: rule__SelectStatement__Group__3__Impl rule__SelectStatement__Group__4 + { + pushFollow(FollowSets000.FOLLOW_77); + rule__SelectStatement__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group__3" + + + // $ANTLR start "rule__SelectStatement__Group__3__Impl" + // InternalFiacre.g:15255:1: rule__SelectStatement__Group__3__Impl : ( 'end' ) ; + public final void rule__SelectStatement__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15259:1: ( ( 'end' ) ) + // InternalFiacre.g:15260:1: ( 'end' ) + { + // InternalFiacre.g:15260:1: ( 'end' ) + // InternalFiacre.g:15261:2: 'end' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getEndKeyword_3()); + } + match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getEndKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group__3__Impl" + + + // $ANTLR start "rule__SelectStatement__Group__4" + // InternalFiacre.g:15270:1: rule__SelectStatement__Group__4 : rule__SelectStatement__Group__4__Impl ; + public final void rule__SelectStatement__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15274:1: ( rule__SelectStatement__Group__4__Impl ) + // InternalFiacre.g:15275:2: rule__SelectStatement__Group__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group__4" + + + // $ANTLR start "rule__SelectStatement__Group__4__Impl" + // InternalFiacre.g:15281:1: rule__SelectStatement__Group__4__Impl : ( ( 'select' )? ) ; + public final void rule__SelectStatement__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15285:1: ( ( ( 'select' )? ) ) + // InternalFiacre.g:15286:1: ( ( 'select' )? ) + { + // InternalFiacre.g:15286:1: ( ( 'select' )? ) + // InternalFiacre.g:15287:2: ( 'select' )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getSelectKeyword_4()); + } + // InternalFiacre.g:15288:2: ( 'select' )? + int alt139=2; + int LA139_0 = input.LA(1); + + if ( (LA139_0==66) ) { + alt139=1; + } + switch (alt139) { + case 1 : + // InternalFiacre.g:15288:3: 'select' + { + match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getSelectKeyword_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group__4__Impl" + + + // $ANTLR start "rule__SelectStatement__Group_2__0" + // InternalFiacre.g:15297:1: rule__SelectStatement__Group_2__0 : rule__SelectStatement__Group_2__0__Impl rule__SelectStatement__Group_2__1 ; + public final void rule__SelectStatement__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15301:1: ( rule__SelectStatement__Group_2__0__Impl rule__SelectStatement__Group_2__1 ) + // InternalFiacre.g:15302:2: rule__SelectStatement__Group_2__0__Impl rule__SelectStatement__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__SelectStatement__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group_2__0" + + + // $ANTLR start "rule__SelectStatement__Group_2__0__Impl" + // InternalFiacre.g:15309:1: rule__SelectStatement__Group_2__0__Impl : ( '|' ) ; + public final void rule__SelectStatement__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15313:1: ( ( '|' ) ) + // InternalFiacre.g:15314:1: ( '|' ) + { + // InternalFiacre.g:15314:1: ( '|' ) + // InternalFiacre.g:15315:2: '|' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getVerticalLineKeyword_2_0()); + } + match(input,17,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getVerticalLineKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group_2__0__Impl" + + + // $ANTLR start "rule__SelectStatement__Group_2__1" + // InternalFiacre.g:15324:1: rule__SelectStatement__Group_2__1 : rule__SelectStatement__Group_2__1__Impl rule__SelectStatement__Group_2__2 ; + public final void rule__SelectStatement__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15328:1: ( rule__SelectStatement__Group_2__1__Impl rule__SelectStatement__Group_2__2 ) + // InternalFiacre.g:15329:2: rule__SelectStatement__Group_2__1__Impl rule__SelectStatement__Group_2__2 + { + pushFollow(FollowSets000.FOLLOW_46); + rule__SelectStatement__Group_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group_2__1" + + + // $ANTLR start "rule__SelectStatement__Group_2__1__Impl" + // InternalFiacre.g:15336:1: rule__SelectStatement__Group_2__1__Impl : ( ( rule__SelectStatement__IndexAssignment_2_1 ) ) ; + public final void rule__SelectStatement__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15340:1: ( ( ( rule__SelectStatement__IndexAssignment_2_1 ) ) ) + // InternalFiacre.g:15341:1: ( ( rule__SelectStatement__IndexAssignment_2_1 ) ) + { + // InternalFiacre.g:15341:1: ( ( rule__SelectStatement__IndexAssignment_2_1 ) ) + // InternalFiacre.g:15342:2: ( rule__SelectStatement__IndexAssignment_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getIndexAssignment_2_1()); + } + // InternalFiacre.g:15343:2: ( rule__SelectStatement__IndexAssignment_2_1 ) + // InternalFiacre.g:15343:3: rule__SelectStatement__IndexAssignment_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__IndexAssignment_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getIndexAssignment_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group_2__1__Impl" + + + // $ANTLR start "rule__SelectStatement__Group_2__2" + // InternalFiacre.g:15351:1: rule__SelectStatement__Group_2__2 : rule__SelectStatement__Group_2__2__Impl rule__SelectStatement__Group_2__3 ; + public final void rule__SelectStatement__Group_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15355:1: ( rule__SelectStatement__Group_2__2__Impl rule__SelectStatement__Group_2__3 ) + // InternalFiacre.g:15356:2: rule__SelectStatement__Group_2__2__Impl rule__SelectStatement__Group_2__3 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__SelectStatement__Group_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group_2__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group_2__2" + + + // $ANTLR start "rule__SelectStatement__Group_2__2__Impl" + // InternalFiacre.g:15363:1: rule__SelectStatement__Group_2__2__Impl : ( 'in' ) ; + public final void rule__SelectStatement__Group_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15367:1: ( ( 'in' ) ) + // InternalFiacre.g:15368:1: ( 'in' ) + { + // InternalFiacre.g:15368:1: ( 'in' ) + // InternalFiacre.g:15369:2: 'in' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getInKeyword_2_2()); + } + match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getInKeyword_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group_2__2__Impl" + + + // $ANTLR start "rule__SelectStatement__Group_2__3" + // InternalFiacre.g:15378:1: rule__SelectStatement__Group_2__3 : rule__SelectStatement__Group_2__3__Impl ; + public final void rule__SelectStatement__Group_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15382:1: ( rule__SelectStatement__Group_2__3__Impl ) + // InternalFiacre.g:15383:2: rule__SelectStatement__Group_2__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__Group_2__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group_2__3" + + + // $ANTLR start "rule__SelectStatement__Group_2__3__Impl" + // InternalFiacre.g:15389:1: rule__SelectStatement__Group_2__3__Impl : ( ( rule__SelectStatement__TypeAssignment_2_3 ) ) ; + public final void rule__SelectStatement__Group_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15393:1: ( ( ( rule__SelectStatement__TypeAssignment_2_3 ) ) ) + // InternalFiacre.g:15394:1: ( ( rule__SelectStatement__TypeAssignment_2_3 ) ) + { + // InternalFiacre.g:15394:1: ( ( rule__SelectStatement__TypeAssignment_2_3 ) ) + // InternalFiacre.g:15395:2: ( rule__SelectStatement__TypeAssignment_2_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getTypeAssignment_2_3()); + } + // InternalFiacre.g:15396:2: ( rule__SelectStatement__TypeAssignment_2_3 ) + // InternalFiacre.g:15396:3: rule__SelectStatement__TypeAssignment_2_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SelectStatement__TypeAssignment_2_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getTypeAssignment_2_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__Group_2__3__Impl" + + + // $ANTLR start "rule__WhileStatement__Group__0" + // InternalFiacre.g:15405:1: rule__WhileStatement__Group__0 : rule__WhileStatement__Group__0__Impl rule__WhileStatement__Group__1 ; + public final void rule__WhileStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15409:1: ( rule__WhileStatement__Group__0__Impl rule__WhileStatement__Group__1 ) + // InternalFiacre.g:15410:2: rule__WhileStatement__Group__0__Impl rule__WhileStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__WhileStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__WhileStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__0" + + + // $ANTLR start "rule__WhileStatement__Group__0__Impl" + // InternalFiacre.g:15417:1: rule__WhileStatement__Group__0__Impl : ( 'while' ) ; + public final void rule__WhileStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15421:1: ( ( 'while' ) ) + // InternalFiacre.g:15422:1: ( 'while' ) + { + // InternalFiacre.g:15422:1: ( 'while' ) + // InternalFiacre.g:15423:2: 'while' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWhileStatementAccess().getWhileKeyword_0()); + } + match(input,67,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWhileStatementAccess().getWhileKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__0__Impl" + + + // $ANTLR start "rule__WhileStatement__Group__1" + // InternalFiacre.g:15432:1: rule__WhileStatement__Group__1 : rule__WhileStatement__Group__1__Impl rule__WhileStatement__Group__2 ; + public final void rule__WhileStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15436:1: ( rule__WhileStatement__Group__1__Impl rule__WhileStatement__Group__2 ) + // InternalFiacre.g:15437:2: rule__WhileStatement__Group__1__Impl rule__WhileStatement__Group__2 + { + pushFollow(FollowSets000.FOLLOW_78); + rule__WhileStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__WhileStatement__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__1" + + + // $ANTLR start "rule__WhileStatement__Group__1__Impl" + // InternalFiacre.g:15444:1: rule__WhileStatement__Group__1__Impl : ( ( rule__WhileStatement__ConditionAssignment_1 ) ) ; + public final void rule__WhileStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15448:1: ( ( ( rule__WhileStatement__ConditionAssignment_1 ) ) ) + // InternalFiacre.g:15449:1: ( ( rule__WhileStatement__ConditionAssignment_1 ) ) + { + // InternalFiacre.g:15449:1: ( ( rule__WhileStatement__ConditionAssignment_1 ) ) + // InternalFiacre.g:15450:2: ( rule__WhileStatement__ConditionAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWhileStatementAccess().getConditionAssignment_1()); + } + // InternalFiacre.g:15451:2: ( rule__WhileStatement__ConditionAssignment_1 ) + // InternalFiacre.g:15451:3: rule__WhileStatement__ConditionAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__WhileStatement__ConditionAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getWhileStatementAccess().getConditionAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__1__Impl" + + + // $ANTLR start "rule__WhileStatement__Group__2" + // InternalFiacre.g:15459:1: rule__WhileStatement__Group__2 : rule__WhileStatement__Group__2__Impl rule__WhileStatement__Group__3 ; + public final void rule__WhileStatement__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15463:1: ( rule__WhileStatement__Group__2__Impl rule__WhileStatement__Group__3 ) + // InternalFiacre.g:15464:2: rule__WhileStatement__Group__2__Impl rule__WhileStatement__Group__3 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__WhileStatement__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__WhileStatement__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__2" + + + // $ANTLR start "rule__WhileStatement__Group__2__Impl" + // InternalFiacre.g:15471:1: rule__WhileStatement__Group__2__Impl : ( 'do' ) ; + public final void rule__WhileStatement__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15475:1: ( ( 'do' ) ) + // InternalFiacre.g:15476:1: ( 'do' ) + { + // InternalFiacre.g:15476:1: ( 'do' ) + // InternalFiacre.g:15477:2: 'do' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWhileStatementAccess().getDoKeyword_2()); + } + match(input,68,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWhileStatementAccess().getDoKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__2__Impl" + + + // $ANTLR start "rule__WhileStatement__Group__3" + // InternalFiacre.g:15486:1: rule__WhileStatement__Group__3 : rule__WhileStatement__Group__3__Impl rule__WhileStatement__Group__4 ; + public final void rule__WhileStatement__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15490:1: ( rule__WhileStatement__Group__3__Impl rule__WhileStatement__Group__4 ) + // InternalFiacre.g:15491:2: rule__WhileStatement__Group__3__Impl rule__WhileStatement__Group__4 + { + pushFollow(FollowSets000.FOLLOW_60); + rule__WhileStatement__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__WhileStatement__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__3" + + + // $ANTLR start "rule__WhileStatement__Group__3__Impl" + // InternalFiacre.g:15498:1: rule__WhileStatement__Group__3__Impl : ( ( rule__WhileStatement__BodyAssignment_3 ) ) ; + public final void rule__WhileStatement__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15502:1: ( ( ( rule__WhileStatement__BodyAssignment_3 ) ) ) + // InternalFiacre.g:15503:1: ( ( rule__WhileStatement__BodyAssignment_3 ) ) + { + // InternalFiacre.g:15503:1: ( ( rule__WhileStatement__BodyAssignment_3 ) ) + // InternalFiacre.g:15504:2: ( rule__WhileStatement__BodyAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWhileStatementAccess().getBodyAssignment_3()); + } + // InternalFiacre.g:15505:2: ( rule__WhileStatement__BodyAssignment_3 ) + // InternalFiacre.g:15505:3: rule__WhileStatement__BodyAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__WhileStatement__BodyAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getWhileStatementAccess().getBodyAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__3__Impl" + + + // $ANTLR start "rule__WhileStatement__Group__4" + // InternalFiacre.g:15513:1: rule__WhileStatement__Group__4 : rule__WhileStatement__Group__4__Impl rule__WhileStatement__Group__5 ; + public final void rule__WhileStatement__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15517:1: ( rule__WhileStatement__Group__4__Impl rule__WhileStatement__Group__5 ) + // InternalFiacre.g:15518:2: rule__WhileStatement__Group__4__Impl rule__WhileStatement__Group__5 + { + pushFollow(FollowSets000.FOLLOW_79); + rule__WhileStatement__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__WhileStatement__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__4" + + + // $ANTLR start "rule__WhileStatement__Group__4__Impl" + // InternalFiacre.g:15525:1: rule__WhileStatement__Group__4__Impl : ( 'end' ) ; + public final void rule__WhileStatement__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15529:1: ( ( 'end' ) ) + // InternalFiacre.g:15530:1: ( 'end' ) + { + // InternalFiacre.g:15530:1: ( 'end' ) + // InternalFiacre.g:15531:2: 'end' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWhileStatementAccess().getEndKeyword_4()); + } + match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWhileStatementAccess().getEndKeyword_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__4__Impl" + + + // $ANTLR start "rule__WhileStatement__Group__5" + // InternalFiacre.g:15540:1: rule__WhileStatement__Group__5 : rule__WhileStatement__Group__5__Impl ; + public final void rule__WhileStatement__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15544:1: ( rule__WhileStatement__Group__5__Impl ) + // InternalFiacre.g:15545:2: rule__WhileStatement__Group__5__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__WhileStatement__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__5" + + + // $ANTLR start "rule__WhileStatement__Group__5__Impl" + // InternalFiacre.g:15551:1: rule__WhileStatement__Group__5__Impl : ( ( 'while' )? ) ; + public final void rule__WhileStatement__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15555:1: ( ( ( 'while' )? ) ) + // InternalFiacre.g:15556:1: ( ( 'while' )? ) + { + // InternalFiacre.g:15556:1: ( ( 'while' )? ) + // InternalFiacre.g:15557:2: ( 'while' )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWhileStatementAccess().getWhileKeyword_5()); + } + // InternalFiacre.g:15558:2: ( 'while' )? + int alt140=2; + int LA140_0 = input.LA(1); + + if ( (LA140_0==67) ) { + alt140=1; + } + switch (alt140) { + case 1 : + // InternalFiacre.g:15558:3: 'while' + { + match(input,67,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getWhileStatementAccess().getWhileKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__Group__5__Impl" + + + // $ANTLR start "rule__ForeachStatement__Group__0" + // InternalFiacre.g:15567:1: rule__ForeachStatement__Group__0 : rule__ForeachStatement__Group__0__Impl rule__ForeachStatement__Group__1 ; + public final void rule__ForeachStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15571:1: ( rule__ForeachStatement__Group__0__Impl rule__ForeachStatement__Group__1 ) + // InternalFiacre.g:15572:2: rule__ForeachStatement__Group__0__Impl rule__ForeachStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ForeachStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ForeachStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__0" + + + // $ANTLR start "rule__ForeachStatement__Group__0__Impl" + // InternalFiacre.g:15579:1: rule__ForeachStatement__Group__0__Impl : ( 'foreach' ) ; + public final void rule__ForeachStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15583:1: ( ( 'foreach' ) ) + // InternalFiacre.g:15584:1: ( 'foreach' ) + { + // InternalFiacre.g:15584:1: ( 'foreach' ) + // InternalFiacre.g:15585:2: 'foreach' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getForeachStatementAccess().getForeachKeyword_0()); + } + match(input,69,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getForeachStatementAccess().getForeachKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__0__Impl" + + + // $ANTLR start "rule__ForeachStatement__Group__1" + // InternalFiacre.g:15594:1: rule__ForeachStatement__Group__1 : rule__ForeachStatement__Group__1__Impl rule__ForeachStatement__Group__2 ; + public final void rule__ForeachStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15598:1: ( rule__ForeachStatement__Group__1__Impl rule__ForeachStatement__Group__2 ) + // InternalFiacre.g:15599:2: rule__ForeachStatement__Group__1__Impl rule__ForeachStatement__Group__2 + { + pushFollow(FollowSets000.FOLLOW_78); + rule__ForeachStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ForeachStatement__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__1" + + + // $ANTLR start "rule__ForeachStatement__Group__1__Impl" + // InternalFiacre.g:15606:1: rule__ForeachStatement__Group__1__Impl : ( ( rule__ForeachStatement__VariableAssignment_1 ) ) ; + public final void rule__ForeachStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15610:1: ( ( ( rule__ForeachStatement__VariableAssignment_1 ) ) ) + // InternalFiacre.g:15611:1: ( ( rule__ForeachStatement__VariableAssignment_1 ) ) + { + // InternalFiacre.g:15611:1: ( ( rule__ForeachStatement__VariableAssignment_1 ) ) + // InternalFiacre.g:15612:2: ( rule__ForeachStatement__VariableAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getForeachStatementAccess().getVariableAssignment_1()); + } + // InternalFiacre.g:15613:2: ( rule__ForeachStatement__VariableAssignment_1 ) + // InternalFiacre.g:15613:3: rule__ForeachStatement__VariableAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ForeachStatement__VariableAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getForeachStatementAccess().getVariableAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__1__Impl" + + + // $ANTLR start "rule__ForeachStatement__Group__2" + // InternalFiacre.g:15621:1: rule__ForeachStatement__Group__2 : rule__ForeachStatement__Group__2__Impl rule__ForeachStatement__Group__3 ; + public final void rule__ForeachStatement__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15625:1: ( rule__ForeachStatement__Group__2__Impl rule__ForeachStatement__Group__3 ) + // InternalFiacre.g:15626:2: rule__ForeachStatement__Group__2__Impl rule__ForeachStatement__Group__3 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__ForeachStatement__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ForeachStatement__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__2" + + + // $ANTLR start "rule__ForeachStatement__Group__2__Impl" + // InternalFiacre.g:15633:1: rule__ForeachStatement__Group__2__Impl : ( 'do' ) ; + public final void rule__ForeachStatement__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15637:1: ( ( 'do' ) ) + // InternalFiacre.g:15638:1: ( 'do' ) + { + // InternalFiacre.g:15638:1: ( 'do' ) + // InternalFiacre.g:15639:2: 'do' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getForeachStatementAccess().getDoKeyword_2()); + } + match(input,68,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getForeachStatementAccess().getDoKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__2__Impl" + + + // $ANTLR start "rule__ForeachStatement__Group__3" + // InternalFiacre.g:15648:1: rule__ForeachStatement__Group__3 : rule__ForeachStatement__Group__3__Impl rule__ForeachStatement__Group__4 ; + public final void rule__ForeachStatement__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15652:1: ( rule__ForeachStatement__Group__3__Impl rule__ForeachStatement__Group__4 ) + // InternalFiacre.g:15653:2: rule__ForeachStatement__Group__3__Impl rule__ForeachStatement__Group__4 + { + pushFollow(FollowSets000.FOLLOW_60); + rule__ForeachStatement__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ForeachStatement__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__3" + + + // $ANTLR start "rule__ForeachStatement__Group__3__Impl" + // InternalFiacre.g:15660:1: rule__ForeachStatement__Group__3__Impl : ( ( rule__ForeachStatement__BodyAssignment_3 ) ) ; + public final void rule__ForeachStatement__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15664:1: ( ( ( rule__ForeachStatement__BodyAssignment_3 ) ) ) + // InternalFiacre.g:15665:1: ( ( rule__ForeachStatement__BodyAssignment_3 ) ) + { + // InternalFiacre.g:15665:1: ( ( rule__ForeachStatement__BodyAssignment_3 ) ) + // InternalFiacre.g:15666:2: ( rule__ForeachStatement__BodyAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getForeachStatementAccess().getBodyAssignment_3()); + } + // InternalFiacre.g:15667:2: ( rule__ForeachStatement__BodyAssignment_3 ) + // InternalFiacre.g:15667:3: rule__ForeachStatement__BodyAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ForeachStatement__BodyAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getForeachStatementAccess().getBodyAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__3__Impl" + + + // $ANTLR start "rule__ForeachStatement__Group__4" + // InternalFiacre.g:15675:1: rule__ForeachStatement__Group__4 : rule__ForeachStatement__Group__4__Impl rule__ForeachStatement__Group__5 ; + public final void rule__ForeachStatement__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15679:1: ( rule__ForeachStatement__Group__4__Impl rule__ForeachStatement__Group__5 ) + // InternalFiacre.g:15680:2: rule__ForeachStatement__Group__4__Impl rule__ForeachStatement__Group__5 + { + pushFollow(FollowSets000.FOLLOW_80); + rule__ForeachStatement__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ForeachStatement__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__4" + + + // $ANTLR start "rule__ForeachStatement__Group__4__Impl" + // InternalFiacre.g:15687:1: rule__ForeachStatement__Group__4__Impl : ( 'end' ) ; + public final void rule__ForeachStatement__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15691:1: ( ( 'end' ) ) + // InternalFiacre.g:15692:1: ( 'end' ) + { + // InternalFiacre.g:15692:1: ( 'end' ) + // InternalFiacre.g:15693:2: 'end' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getForeachStatementAccess().getEndKeyword_4()); + } + match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getForeachStatementAccess().getEndKeyword_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__4__Impl" + + + // $ANTLR start "rule__ForeachStatement__Group__5" + // InternalFiacre.g:15702:1: rule__ForeachStatement__Group__5 : rule__ForeachStatement__Group__5__Impl ; + public final void rule__ForeachStatement__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15706:1: ( rule__ForeachStatement__Group__5__Impl ) + // InternalFiacre.g:15707:2: rule__ForeachStatement__Group__5__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ForeachStatement__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__5" + + + // $ANTLR start "rule__ForeachStatement__Group__5__Impl" + // InternalFiacre.g:15713:1: rule__ForeachStatement__Group__5__Impl : ( ( 'foreach' )? ) ; + public final void rule__ForeachStatement__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15717:1: ( ( ( 'foreach' )? ) ) + // InternalFiacre.g:15718:1: ( ( 'foreach' )? ) + { + // InternalFiacre.g:15718:1: ( ( 'foreach' )? ) + // InternalFiacre.g:15719:2: ( 'foreach' )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getForeachStatementAccess().getForeachKeyword_5()); + } + // InternalFiacre.g:15720:2: ( 'foreach' )? + int alt141=2; + int LA141_0 = input.LA(1); + + if ( (LA141_0==69) ) { + alt141=1; + } + switch (alt141) { + case 1 : + // InternalFiacre.g:15720:3: 'foreach' + { + match(input,69,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getForeachStatementAccess().getForeachKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__Group__5__Impl" + + + // $ANTLR start "rule__ToStatement__Group__0" + // InternalFiacre.g:15729:1: rule__ToStatement__Group__0 : rule__ToStatement__Group__0__Impl rule__ToStatement__Group__1 ; + public final void rule__ToStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15733:1: ( rule__ToStatement__Group__0__Impl rule__ToStatement__Group__1 ) + // InternalFiacre.g:15734:2: rule__ToStatement__Group__0__Impl rule__ToStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ToStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ToStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ToStatement__Group__0" + + + // $ANTLR start "rule__ToStatement__Group__0__Impl" + // InternalFiacre.g:15741:1: rule__ToStatement__Group__0__Impl : ( 'to' ) ; + public final void rule__ToStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15745:1: ( ( 'to' ) ) + // InternalFiacre.g:15746:1: ( 'to' ) + { + // InternalFiacre.g:15746:1: ( 'to' ) + // InternalFiacre.g:15747:2: 'to' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getToStatementAccess().getToKeyword_0()); + } + match(input,70,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getToStatementAccess().getToKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ToStatement__Group__0__Impl" + + + // $ANTLR start "rule__ToStatement__Group__1" + // InternalFiacre.g:15756:1: rule__ToStatement__Group__1 : rule__ToStatement__Group__1__Impl ; + public final void rule__ToStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15760:1: ( rule__ToStatement__Group__1__Impl ) + // InternalFiacre.g:15761:2: rule__ToStatement__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ToStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ToStatement__Group__1" + + + // $ANTLR start "rule__ToStatement__Group__1__Impl" + // InternalFiacre.g:15767:1: rule__ToStatement__Group__1__Impl : ( ( rule__ToStatement__StateAssignment_1 ) ) ; + public final void rule__ToStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15771:1: ( ( ( rule__ToStatement__StateAssignment_1 ) ) ) + // InternalFiacre.g:15772:1: ( ( rule__ToStatement__StateAssignment_1 ) ) + { + // InternalFiacre.g:15772:1: ( ( rule__ToStatement__StateAssignment_1 ) ) + // InternalFiacre.g:15773:2: ( rule__ToStatement__StateAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getToStatementAccess().getStateAssignment_1()); + } + // InternalFiacre.g:15774:2: ( rule__ToStatement__StateAssignment_1 ) + // InternalFiacre.g:15774:3: rule__ToStatement__StateAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ToStatement__StateAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getToStatementAccess().getStateAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ToStatement__Group__1__Impl" + + + // $ANTLR start "rule__CaseStatement__Group__0" + // InternalFiacre.g:15783:1: rule__CaseStatement__Group__0 : rule__CaseStatement__Group__0__Impl rule__CaseStatement__Group__1 ; + public final void rule__CaseStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15787:1: ( rule__CaseStatement__Group__0__Impl rule__CaseStatement__Group__1 ) + // InternalFiacre.g:15788:2: rule__CaseStatement__Group__0__Impl rule__CaseStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__CaseStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__0" + + + // $ANTLR start "rule__CaseStatement__Group__0__Impl" + // InternalFiacre.g:15795:1: rule__CaseStatement__Group__0__Impl : ( 'case' ) ; + public final void rule__CaseStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15799:1: ( ( 'case' ) ) + // InternalFiacre.g:15800:1: ( 'case' ) + { + // InternalFiacre.g:15800:1: ( 'case' ) + // InternalFiacre.g:15801:2: 'case' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getCaseKeyword_0()); + } + match(input,71,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getCaseKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__0__Impl" + + + // $ANTLR start "rule__CaseStatement__Group__1" + // InternalFiacre.g:15810:1: rule__CaseStatement__Group__1 : rule__CaseStatement__Group__1__Impl rule__CaseStatement__Group__2 ; + public final void rule__CaseStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15814:1: ( rule__CaseStatement__Group__1__Impl rule__CaseStatement__Group__2 ) + // InternalFiacre.g:15815:2: rule__CaseStatement__Group__1__Impl rule__CaseStatement__Group__2 + { + pushFollow(FollowSets000.FOLLOW_24); + rule__CaseStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__1" + + + // $ANTLR start "rule__CaseStatement__Group__1__Impl" + // InternalFiacre.g:15822:1: rule__CaseStatement__Group__1__Impl : ( ( rule__CaseStatement__ValueAssignment_1 ) ) ; + public final void rule__CaseStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15826:1: ( ( ( rule__CaseStatement__ValueAssignment_1 ) ) ) + // InternalFiacre.g:15827:1: ( ( rule__CaseStatement__ValueAssignment_1 ) ) + { + // InternalFiacre.g:15827:1: ( ( rule__CaseStatement__ValueAssignment_1 ) ) + // InternalFiacre.g:15828:2: ( rule__CaseStatement__ValueAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getValueAssignment_1()); + } + // InternalFiacre.g:15829:2: ( rule__CaseStatement__ValueAssignment_1 ) + // InternalFiacre.g:15829:3: rule__CaseStatement__ValueAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__ValueAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getValueAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__1__Impl" + + + // $ANTLR start "rule__CaseStatement__Group__2" + // InternalFiacre.g:15837:1: rule__CaseStatement__Group__2 : rule__CaseStatement__Group__2__Impl rule__CaseStatement__Group__3 ; + public final void rule__CaseStatement__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15841:1: ( rule__CaseStatement__Group__2__Impl rule__CaseStatement__Group__3 ) + // InternalFiacre.g:15842:2: rule__CaseStatement__Group__2__Impl rule__CaseStatement__Group__3 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__CaseStatement__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__2" + + + // $ANTLR start "rule__CaseStatement__Group__2__Impl" + // InternalFiacre.g:15849:1: rule__CaseStatement__Group__2__Impl : ( 'of' ) ; + public final void rule__CaseStatement__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15853:1: ( ( 'of' ) ) + // InternalFiacre.g:15854:1: ( 'of' ) + { + // InternalFiacre.g:15854:1: ( 'of' ) + // InternalFiacre.g:15855:2: 'of' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getOfKeyword_2()); + } + match(input,29,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getOfKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__2__Impl" + + + // $ANTLR start "rule__CaseStatement__Group__3" + // InternalFiacre.g:15864:1: rule__CaseStatement__Group__3 : rule__CaseStatement__Group__3__Impl rule__CaseStatement__Group__4 ; + public final void rule__CaseStatement__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15868:1: ( rule__CaseStatement__Group__3__Impl rule__CaseStatement__Group__4 ) + // InternalFiacre.g:15869:2: rule__CaseStatement__Group__3__Impl rule__CaseStatement__Group__4 + { + pushFollow(FollowSets000.FOLLOW_81); + rule__CaseStatement__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__3" + + + // $ANTLR start "rule__CaseStatement__Group__3__Impl" + // InternalFiacre.g:15876:1: rule__CaseStatement__Group__3__Impl : ( ( rule__CaseStatement__PatternAssignment_3 ) ) ; + public final void rule__CaseStatement__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15880:1: ( ( ( rule__CaseStatement__PatternAssignment_3 ) ) ) + // InternalFiacre.g:15881:1: ( ( rule__CaseStatement__PatternAssignment_3 ) ) + { + // InternalFiacre.g:15881:1: ( ( rule__CaseStatement__PatternAssignment_3 ) ) + // InternalFiacre.g:15882:2: ( rule__CaseStatement__PatternAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getPatternAssignment_3()); + } + // InternalFiacre.g:15883:2: ( rule__CaseStatement__PatternAssignment_3 ) + // InternalFiacre.g:15883:3: rule__CaseStatement__PatternAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__PatternAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getPatternAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__3__Impl" + + + // $ANTLR start "rule__CaseStatement__Group__4" + // InternalFiacre.g:15891:1: rule__CaseStatement__Group__4 : rule__CaseStatement__Group__4__Impl rule__CaseStatement__Group__5 ; + public final void rule__CaseStatement__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15895:1: ( rule__CaseStatement__Group__4__Impl rule__CaseStatement__Group__5 ) + // InternalFiacre.g:15896:2: rule__CaseStatement__Group__4__Impl rule__CaseStatement__Group__5 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__CaseStatement__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__4" + + + // $ANTLR start "rule__CaseStatement__Group__4__Impl" + // InternalFiacre.g:15903:1: rule__CaseStatement__Group__4__Impl : ( '->' ) ; + public final void rule__CaseStatement__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15907:1: ( ( '->' ) ) + // InternalFiacre.g:15908:1: ( '->' ) + { + // InternalFiacre.g:15908:1: ( '->' ) + // InternalFiacre.g:15909:2: '->' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_4()); + } + match(input,15,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__4__Impl" + + + // $ANTLR start "rule__CaseStatement__Group__5" + // InternalFiacre.g:15918:1: rule__CaseStatement__Group__5 : rule__CaseStatement__Group__5__Impl rule__CaseStatement__Group__6 ; + public final void rule__CaseStatement__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15922:1: ( rule__CaseStatement__Group__5__Impl rule__CaseStatement__Group__6 ) + // InternalFiacre.g:15923:2: rule__CaseStatement__Group__5__Impl rule__CaseStatement__Group__6 + { + pushFollow(FollowSets000.FOLLOW_33); + rule__CaseStatement__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__5" + + + // $ANTLR start "rule__CaseStatement__Group__5__Impl" + // InternalFiacre.g:15930:1: rule__CaseStatement__Group__5__Impl : ( ( rule__CaseStatement__BodyAssignment_5 ) ) ; + public final void rule__CaseStatement__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15934:1: ( ( ( rule__CaseStatement__BodyAssignment_5 ) ) ) + // InternalFiacre.g:15935:1: ( ( rule__CaseStatement__BodyAssignment_5 ) ) + { + // InternalFiacre.g:15935:1: ( ( rule__CaseStatement__BodyAssignment_5 ) ) + // InternalFiacre.g:15936:2: ( rule__CaseStatement__BodyAssignment_5 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getBodyAssignment_5()); + } + // InternalFiacre.g:15937:2: ( rule__CaseStatement__BodyAssignment_5 ) + // InternalFiacre.g:15937:3: rule__CaseStatement__BodyAssignment_5 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__BodyAssignment_5(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getBodyAssignment_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__5__Impl" + + + // $ANTLR start "rule__CaseStatement__Group__6" + // InternalFiacre.g:15945:1: rule__CaseStatement__Group__6 : rule__CaseStatement__Group__6__Impl rule__CaseStatement__Group__7 ; + public final void rule__CaseStatement__Group__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15949:1: ( rule__CaseStatement__Group__6__Impl rule__CaseStatement__Group__7 ) + // InternalFiacre.g:15950:2: rule__CaseStatement__Group__6__Impl rule__CaseStatement__Group__7 + { + pushFollow(FollowSets000.FOLLOW_33); + rule__CaseStatement__Group__6__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group__7(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__6" + + + // $ANTLR start "rule__CaseStatement__Group__6__Impl" + // InternalFiacre.g:15957:1: rule__CaseStatement__Group__6__Impl : ( ( rule__CaseStatement__Group_6__0 )* ) ; + public final void rule__CaseStatement__Group__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15961:1: ( ( ( rule__CaseStatement__Group_6__0 )* ) ) + // InternalFiacre.g:15962:1: ( ( rule__CaseStatement__Group_6__0 )* ) + { + // InternalFiacre.g:15962:1: ( ( rule__CaseStatement__Group_6__0 )* ) + // InternalFiacre.g:15963:2: ( rule__CaseStatement__Group_6__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getGroup_6()); + } + // InternalFiacre.g:15964:2: ( rule__CaseStatement__Group_6__0 )* + loop142: + do { + int alt142=2; + int LA142_0 = input.LA(1); + + if ( (LA142_0==17) ) { + alt142=1; + } + + + switch (alt142) { + case 1 : + // InternalFiacre.g:15964:3: rule__CaseStatement__Group_6__0 + { + pushFollow(FollowSets000.FOLLOW_11); + rule__CaseStatement__Group_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop142; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getGroup_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__6__Impl" + + + // $ANTLR start "rule__CaseStatement__Group__7" + // InternalFiacre.g:15972:1: rule__CaseStatement__Group__7 : rule__CaseStatement__Group__7__Impl rule__CaseStatement__Group__8 ; + public final void rule__CaseStatement__Group__7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15976:1: ( rule__CaseStatement__Group__7__Impl rule__CaseStatement__Group__8 ) + // InternalFiacre.g:15977:2: rule__CaseStatement__Group__7__Impl rule__CaseStatement__Group__8 + { + pushFollow(FollowSets000.FOLLOW_82); + rule__CaseStatement__Group__7__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group__8(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__7" + + + // $ANTLR start "rule__CaseStatement__Group__7__Impl" + // InternalFiacre.g:15984:1: rule__CaseStatement__Group__7__Impl : ( 'end' ) ; + public final void rule__CaseStatement__Group__7__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:15988:1: ( ( 'end' ) ) + // InternalFiacre.g:15989:1: ( 'end' ) + { + // InternalFiacre.g:15989:1: ( 'end' ) + // InternalFiacre.g:15990:2: 'end' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getEndKeyword_7()); + } + match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getEndKeyword_7()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__7__Impl" + + + // $ANTLR start "rule__CaseStatement__Group__8" + // InternalFiacre.g:15999:1: rule__CaseStatement__Group__8 : rule__CaseStatement__Group__8__Impl ; + public final void rule__CaseStatement__Group__8() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16003:1: ( rule__CaseStatement__Group__8__Impl ) + // InternalFiacre.g:16004:2: rule__CaseStatement__Group__8__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group__8__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__8" + + + // $ANTLR start "rule__CaseStatement__Group__8__Impl" + // InternalFiacre.g:16010:1: rule__CaseStatement__Group__8__Impl : ( ( 'case' )? ) ; + public final void rule__CaseStatement__Group__8__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16014:1: ( ( ( 'case' )? ) ) + // InternalFiacre.g:16015:1: ( ( 'case' )? ) + { + // InternalFiacre.g:16015:1: ( ( 'case' )? ) + // InternalFiacre.g:16016:2: ( 'case' )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getCaseKeyword_8()); + } + // InternalFiacre.g:16017:2: ( 'case' )? + int alt143=2; + int LA143_0 = input.LA(1); + + if ( (LA143_0==71) ) { + alt143=1; + } + switch (alt143) { + case 1 : + // InternalFiacre.g:16017:3: 'case' + { + match(input,71,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getCaseKeyword_8()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group__8__Impl" + + + // $ANTLR start "rule__CaseStatement__Group_6__0" + // InternalFiacre.g:16026:1: rule__CaseStatement__Group_6__0 : rule__CaseStatement__Group_6__0__Impl rule__CaseStatement__Group_6__1 ; + public final void rule__CaseStatement__Group_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16030:1: ( rule__CaseStatement__Group_6__0__Impl rule__CaseStatement__Group_6__1 ) + // InternalFiacre.g:16031:2: rule__CaseStatement__Group_6__0__Impl rule__CaseStatement__Group_6__1 + { + pushFollow(FollowSets000.FOLLOW_63); + rule__CaseStatement__Group_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group_6__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group_6__0" + + + // $ANTLR start "rule__CaseStatement__Group_6__0__Impl" + // InternalFiacre.g:16038:1: rule__CaseStatement__Group_6__0__Impl : ( '|' ) ; + public final void rule__CaseStatement__Group_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16042:1: ( ( '|' ) ) + // InternalFiacre.g:16043:1: ( '|' ) + { + // InternalFiacre.g:16043:1: ( '|' ) + // InternalFiacre.g:16044:2: '|' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getVerticalLineKeyword_6_0()); + } + match(input,17,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getVerticalLineKeyword_6_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group_6__0__Impl" + + + // $ANTLR start "rule__CaseStatement__Group_6__1" + // InternalFiacre.g:16053:1: rule__CaseStatement__Group_6__1 : rule__CaseStatement__Group_6__1__Impl rule__CaseStatement__Group_6__2 ; + public final void rule__CaseStatement__Group_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16057:1: ( rule__CaseStatement__Group_6__1__Impl rule__CaseStatement__Group_6__2 ) + // InternalFiacre.g:16058:2: rule__CaseStatement__Group_6__1__Impl rule__CaseStatement__Group_6__2 + { + pushFollow(FollowSets000.FOLLOW_81); + rule__CaseStatement__Group_6__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group_6__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group_6__1" + + + // $ANTLR start "rule__CaseStatement__Group_6__1__Impl" + // InternalFiacre.g:16065:1: rule__CaseStatement__Group_6__1__Impl : ( ( rule__CaseStatement__PatternAssignment_6_1 ) ) ; + public final void rule__CaseStatement__Group_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16069:1: ( ( ( rule__CaseStatement__PatternAssignment_6_1 ) ) ) + // InternalFiacre.g:16070:1: ( ( rule__CaseStatement__PatternAssignment_6_1 ) ) + { + // InternalFiacre.g:16070:1: ( ( rule__CaseStatement__PatternAssignment_6_1 ) ) + // InternalFiacre.g:16071:2: ( rule__CaseStatement__PatternAssignment_6_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getPatternAssignment_6_1()); + } + // InternalFiacre.g:16072:2: ( rule__CaseStatement__PatternAssignment_6_1 ) + // InternalFiacre.g:16072:3: rule__CaseStatement__PatternAssignment_6_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__PatternAssignment_6_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getPatternAssignment_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group_6__1__Impl" + + + // $ANTLR start "rule__CaseStatement__Group_6__2" + // InternalFiacre.g:16080:1: rule__CaseStatement__Group_6__2 : rule__CaseStatement__Group_6__2__Impl rule__CaseStatement__Group_6__3 ; + public final void rule__CaseStatement__Group_6__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16084:1: ( rule__CaseStatement__Group_6__2__Impl rule__CaseStatement__Group_6__3 ) + // InternalFiacre.g:16085:2: rule__CaseStatement__Group_6__2__Impl rule__CaseStatement__Group_6__3 + { + pushFollow(FollowSets000.FOLLOW_17); + rule__CaseStatement__Group_6__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group_6__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group_6__2" + + + // $ANTLR start "rule__CaseStatement__Group_6__2__Impl" + // InternalFiacre.g:16092:1: rule__CaseStatement__Group_6__2__Impl : ( '->' ) ; + public final void rule__CaseStatement__Group_6__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16096:1: ( ( '->' ) ) + // InternalFiacre.g:16097:1: ( '->' ) + { + // InternalFiacre.g:16097:1: ( '->' ) + // InternalFiacre.g:16098:2: '->' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_6_2()); + } + match(input,15,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_6_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group_6__2__Impl" + + + // $ANTLR start "rule__CaseStatement__Group_6__3" + // InternalFiacre.g:16107:1: rule__CaseStatement__Group_6__3 : rule__CaseStatement__Group_6__3__Impl ; + public final void rule__CaseStatement__Group_6__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16111:1: ( rule__CaseStatement__Group_6__3__Impl ) + // InternalFiacre.g:16112:2: rule__CaseStatement__Group_6__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__Group_6__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group_6__3" + + + // $ANTLR start "rule__CaseStatement__Group_6__3__Impl" + // InternalFiacre.g:16118:1: rule__CaseStatement__Group_6__3__Impl : ( ( rule__CaseStatement__BodyAssignment_6_3 ) ) ; + public final void rule__CaseStatement__Group_6__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16122:1: ( ( ( rule__CaseStatement__BodyAssignment_6_3 ) ) ) + // InternalFiacre.g:16123:1: ( ( rule__CaseStatement__BodyAssignment_6_3 ) ) + { + // InternalFiacre.g:16123:1: ( ( rule__CaseStatement__BodyAssignment_6_3 ) ) + // InternalFiacre.g:16124:2: ( rule__CaseStatement__BodyAssignment_6_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getBodyAssignment_6_3()); + } + // InternalFiacre.g:16125:2: ( rule__CaseStatement__BodyAssignment_6_3 ) + // InternalFiacre.g:16125:3: rule__CaseStatement__BodyAssignment_6_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CaseStatement__BodyAssignment_6_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getBodyAssignment_6_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__Group_6__3__Impl" + + + // $ANTLR start "rule__LoopStatement__Group__0" + // InternalFiacre.g:16134:1: rule__LoopStatement__Group__0 : rule__LoopStatement__Group__0__Impl rule__LoopStatement__Group__1 ; + public final void rule__LoopStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16138:1: ( rule__LoopStatement__Group__0__Impl rule__LoopStatement__Group__1 ) + // InternalFiacre.g:16139:2: rule__LoopStatement__Group__0__Impl rule__LoopStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_83); + rule__LoopStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LoopStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LoopStatement__Group__0" + + + // $ANTLR start "rule__LoopStatement__Group__0__Impl" + // InternalFiacre.g:16146:1: rule__LoopStatement__Group__0__Impl : ( () ) ; + public final void rule__LoopStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16150:1: ( ( () ) ) + // InternalFiacre.g:16151:1: ( () ) + { + // InternalFiacre.g:16151:1: ( () ) + // InternalFiacre.g:16152:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLoopStatementAccess().getLoopStatementAction_0()); + } + // InternalFiacre.g:16153:2: () + // InternalFiacre.g:16153:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLoopStatementAccess().getLoopStatementAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LoopStatement__Group__0__Impl" + + + // $ANTLR start "rule__LoopStatement__Group__1" + // InternalFiacre.g:16161:1: rule__LoopStatement__Group__1 : rule__LoopStatement__Group__1__Impl ; + public final void rule__LoopStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16165:1: ( rule__LoopStatement__Group__1__Impl ) + // InternalFiacre.g:16166:2: rule__LoopStatement__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LoopStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LoopStatement__Group__1" + + + // $ANTLR start "rule__LoopStatement__Group__1__Impl" + // InternalFiacre.g:16172:1: rule__LoopStatement__Group__1__Impl : ( 'loop' ) ; + public final void rule__LoopStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16176:1: ( ( 'loop' ) ) + // InternalFiacre.g:16177:1: ( 'loop' ) + { + // InternalFiacre.g:16177:1: ( 'loop' ) + // InternalFiacre.g:16178:2: 'loop' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLoopStatementAccess().getLoopKeyword_1()); + } + match(input,72,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLoopStatementAccess().getLoopKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LoopStatement__Group__1__Impl" + + + // $ANTLR start "rule__OnStatement__Group__0" + // InternalFiacre.g:16188:1: rule__OnStatement__Group__0 : rule__OnStatement__Group__0__Impl rule__OnStatement__Group__1 ; + public final void rule__OnStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16192:1: ( rule__OnStatement__Group__0__Impl rule__OnStatement__Group__1 ) + // InternalFiacre.g:16193:2: rule__OnStatement__Group__0__Impl rule__OnStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__OnStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__OnStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__OnStatement__Group__0" + + + // $ANTLR start "rule__OnStatement__Group__0__Impl" + // InternalFiacre.g:16200:1: rule__OnStatement__Group__0__Impl : ( 'on' ) ; + public final void rule__OnStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16204:1: ( ( 'on' ) ) + // InternalFiacre.g:16205:1: ( 'on' ) + { + // InternalFiacre.g:16205:1: ( 'on' ) + // InternalFiacre.g:16206:2: 'on' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getOnStatementAccess().getOnKeyword_0()); + } + match(input,73,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getOnStatementAccess().getOnKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__OnStatement__Group__0__Impl" + + + // $ANTLR start "rule__OnStatement__Group__1" + // InternalFiacre.g:16215:1: rule__OnStatement__Group__1 : rule__OnStatement__Group__1__Impl ; + public final void rule__OnStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16219:1: ( rule__OnStatement__Group__1__Impl ) + // InternalFiacre.g:16220:2: rule__OnStatement__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__OnStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__OnStatement__Group__1" + + + // $ANTLR start "rule__OnStatement__Group__1__Impl" + // InternalFiacre.g:16226:1: rule__OnStatement__Group__1__Impl : ( ( rule__OnStatement__ConditionAssignment_1 ) ) ; + public final void rule__OnStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16230:1: ( ( ( rule__OnStatement__ConditionAssignment_1 ) ) ) + // InternalFiacre.g:16231:1: ( ( rule__OnStatement__ConditionAssignment_1 ) ) + { + // InternalFiacre.g:16231:1: ( ( rule__OnStatement__ConditionAssignment_1 ) ) + // InternalFiacre.g:16232:2: ( rule__OnStatement__ConditionAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getOnStatementAccess().getConditionAssignment_1()); + } + // InternalFiacre.g:16233:2: ( rule__OnStatement__ConditionAssignment_1 ) + // InternalFiacre.g:16233:3: rule__OnStatement__ConditionAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__OnStatement__ConditionAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getOnStatementAccess().getConditionAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__OnStatement__Group__1__Impl" + + + // $ANTLR start "rule__WaitStatement__Group__0" + // InternalFiacre.g:16242:1: rule__WaitStatement__Group__0 : rule__WaitStatement__Group__0__Impl rule__WaitStatement__Group__1 ; + public final void rule__WaitStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16246:1: ( rule__WaitStatement__Group__0__Impl rule__WaitStatement__Group__1 ) + // InternalFiacre.g:16247:2: rule__WaitStatement__Group__0__Impl rule__WaitStatement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__WaitStatement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__WaitStatement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WaitStatement__Group__0" + + + // $ANTLR start "rule__WaitStatement__Group__0__Impl" + // InternalFiacre.g:16254:1: rule__WaitStatement__Group__0__Impl : ( 'wait' ) ; + public final void rule__WaitStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16258:1: ( ( 'wait' ) ) + // InternalFiacre.g:16259:1: ( 'wait' ) + { + // InternalFiacre.g:16259:1: ( 'wait' ) + // InternalFiacre.g:16260:2: 'wait' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWaitStatementAccess().getWaitKeyword_0()); + } + match(input,74,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWaitStatementAccess().getWaitKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WaitStatement__Group__0__Impl" + + + // $ANTLR start "rule__WaitStatement__Group__1" + // InternalFiacre.g:16269:1: rule__WaitStatement__Group__1 : rule__WaitStatement__Group__1__Impl rule__WaitStatement__Group__2 ; + public final void rule__WaitStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16273:1: ( rule__WaitStatement__Group__1__Impl rule__WaitStatement__Group__2 ) + // InternalFiacre.g:16274:2: rule__WaitStatement__Group__1__Impl rule__WaitStatement__Group__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__WaitStatement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__WaitStatement__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WaitStatement__Group__1" + + + // $ANTLR start "rule__WaitStatement__Group__1__Impl" + // InternalFiacre.g:16281:1: rule__WaitStatement__Group__1__Impl : ( ( rule__WaitStatement__LeftAssignment_1 ) ) ; + public final void rule__WaitStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16285:1: ( ( ( rule__WaitStatement__LeftAssignment_1 ) ) ) + // InternalFiacre.g:16286:1: ( ( rule__WaitStatement__LeftAssignment_1 ) ) + { + // InternalFiacre.g:16286:1: ( ( rule__WaitStatement__LeftAssignment_1 ) ) + // InternalFiacre.g:16287:2: ( rule__WaitStatement__LeftAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWaitStatementAccess().getLeftAssignment_1()); + } + // InternalFiacre.g:16288:2: ( rule__WaitStatement__LeftAssignment_1 ) + // InternalFiacre.g:16288:3: rule__WaitStatement__LeftAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__WaitStatement__LeftAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getWaitStatementAccess().getLeftAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WaitStatement__Group__1__Impl" + + + // $ANTLR start "rule__WaitStatement__Group__2" + // InternalFiacre.g:16296:1: rule__WaitStatement__Group__2 : rule__WaitStatement__Group__2__Impl rule__WaitStatement__Group__3 ; + public final void rule__WaitStatement__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16300:1: ( rule__WaitStatement__Group__2__Impl rule__WaitStatement__Group__3 ) + // InternalFiacre.g:16301:2: rule__WaitStatement__Group__2__Impl rule__WaitStatement__Group__3 + { + pushFollow(FollowSets000.FOLLOW_48); + rule__WaitStatement__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__WaitStatement__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WaitStatement__Group__2" + + + // $ANTLR start "rule__WaitStatement__Group__2__Impl" + // InternalFiacre.g:16308:1: rule__WaitStatement__Group__2__Impl : ( ',' ) ; + public final void rule__WaitStatement__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16312:1: ( ( ',' ) ) + // InternalFiacre.g:16313:1: ( ',' ) + { + // InternalFiacre.g:16313:1: ( ',' ) + // InternalFiacre.g:16314:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWaitStatementAccess().getCommaKeyword_2()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWaitStatementAccess().getCommaKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WaitStatement__Group__2__Impl" + + + // $ANTLR start "rule__WaitStatement__Group__3" + // InternalFiacre.g:16323:1: rule__WaitStatement__Group__3 : rule__WaitStatement__Group__3__Impl ; + public final void rule__WaitStatement__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16327:1: ( rule__WaitStatement__Group__3__Impl ) + // InternalFiacre.g:16328:2: rule__WaitStatement__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__WaitStatement__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WaitStatement__Group__3" + + + // $ANTLR start "rule__WaitStatement__Group__3__Impl" + // InternalFiacre.g:16334:1: rule__WaitStatement__Group__3__Impl : ( ( rule__WaitStatement__RightAssignment_3 ) ) ; + public final void rule__WaitStatement__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16338:1: ( ( ( rule__WaitStatement__RightAssignment_3 ) ) ) + // InternalFiacre.g:16339:1: ( ( rule__WaitStatement__RightAssignment_3 ) ) + { + // InternalFiacre.g:16339:1: ( ( rule__WaitStatement__RightAssignment_3 ) ) + // InternalFiacre.g:16340:2: ( rule__WaitStatement__RightAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWaitStatementAccess().getRightAssignment_3()); + } + // InternalFiacre.g:16341:2: ( rule__WaitStatement__RightAssignment_3 ) + // InternalFiacre.g:16341:3: rule__WaitStatement__RightAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__WaitStatement__RightAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getWaitStatementAccess().getRightAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WaitStatement__Group__3__Impl" + + + // $ANTLR start "rule__Composition__Group__0" + // InternalFiacre.g:16350:1: rule__Composition__Group__0 : rule__Composition__Group__0__Impl rule__Composition__Group__1 ; + public final void rule__Composition__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16354:1: ( rule__Composition__Group__0__Impl rule__Composition__Group__1 ) + // InternalFiacre.g:16355:2: rule__Composition__Group__0__Impl rule__Composition__Group__1 + { + pushFollow(FollowSets000.FOLLOW_84); + rule__Composition__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__0" + + + // $ANTLR start "rule__Composition__Group__0__Impl" + // InternalFiacre.g:16362:1: rule__Composition__Group__0__Impl : ( 'par' ) ; + public final void rule__Composition__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16366:1: ( ( 'par' ) ) + // InternalFiacre.g:16367:1: ( 'par' ) + { + // InternalFiacre.g:16367:1: ( 'par' ) + // InternalFiacre.g:16368:2: 'par' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getParKeyword_0()); + } + match(input,75,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getParKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__0__Impl" + + + // $ANTLR start "rule__Composition__Group__1" + // InternalFiacre.g:16377:1: rule__Composition__Group__1 : rule__Composition__Group__1__Impl rule__Composition__Group__2 ; + public final void rule__Composition__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16381:1: ( rule__Composition__Group__1__Impl rule__Composition__Group__2 ) + // InternalFiacre.g:16382:2: rule__Composition__Group__1__Impl rule__Composition__Group__2 + { + pushFollow(FollowSets000.FOLLOW_84); + rule__Composition__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__1" + + + // $ANTLR start "rule__Composition__Group__1__Impl" + // InternalFiacre.g:16389:1: rule__Composition__Group__1__Impl : ( ( rule__Composition__Group_1__0 )? ) ; + public final void rule__Composition__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16393:1: ( ( ( rule__Composition__Group_1__0 )? ) ) + // InternalFiacre.g:16394:1: ( ( rule__Composition__Group_1__0 )? ) + { + // InternalFiacre.g:16394:1: ( ( rule__Composition__Group_1__0 )? ) + // InternalFiacre.g:16395:2: ( rule__Composition__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getGroup_1()); + } + // InternalFiacre.g:16396:2: ( rule__Composition__Group_1__0 )? + int alt144=2; + alt144 = dfa144.predict(input); + switch (alt144) { + case 1 : + // InternalFiacre.g:16396:3: rule__Composition__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__1__Impl" + + + // $ANTLR start "rule__Composition__Group__2" + // InternalFiacre.g:16404:1: rule__Composition__Group__2 : rule__Composition__Group__2__Impl rule__Composition__Group__3 ; + public final void rule__Composition__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16408:1: ( rule__Composition__Group__2__Impl rule__Composition__Group__3 ) + // InternalFiacre.g:16409:2: rule__Composition__Group__2__Impl rule__Composition__Group__3 + { + pushFollow(FollowSets000.FOLLOW_85); + rule__Composition__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__2" + + + // $ANTLR start "rule__Composition__Group__2__Impl" + // InternalFiacre.g:16416:1: rule__Composition__Group__2__Impl : ( ( rule__Composition__BlocksAssignment_2 ) ) ; + public final void rule__Composition__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16420:1: ( ( ( rule__Composition__BlocksAssignment_2 ) ) ) + // InternalFiacre.g:16421:1: ( ( rule__Composition__BlocksAssignment_2 ) ) + { + // InternalFiacre.g:16421:1: ( ( rule__Composition__BlocksAssignment_2 ) ) + // InternalFiacre.g:16422:2: ( rule__Composition__BlocksAssignment_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getBlocksAssignment_2()); + } + // InternalFiacre.g:16423:2: ( rule__Composition__BlocksAssignment_2 ) + // InternalFiacre.g:16423:3: rule__Composition__BlocksAssignment_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__BlocksAssignment_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getBlocksAssignment_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__2__Impl" + + + // $ANTLR start "rule__Composition__Group__3" + // InternalFiacre.g:16431:1: rule__Composition__Group__3 : rule__Composition__Group__3__Impl rule__Composition__Group__4 ; + public final void rule__Composition__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16435:1: ( rule__Composition__Group__3__Impl rule__Composition__Group__4 ) + // InternalFiacre.g:16436:2: rule__Composition__Group__3__Impl rule__Composition__Group__4 + { + pushFollow(FollowSets000.FOLLOW_85); + rule__Composition__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__3" + + + // $ANTLR start "rule__Composition__Group__3__Impl" + // InternalFiacre.g:16443:1: rule__Composition__Group__3__Impl : ( ( rule__Composition__Group_3__0 )* ) ; + public final void rule__Composition__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16447:1: ( ( ( rule__Composition__Group_3__0 )* ) ) + // InternalFiacre.g:16448:1: ( ( rule__Composition__Group_3__0 )* ) + { + // InternalFiacre.g:16448:1: ( ( rule__Composition__Group_3__0 )* ) + // InternalFiacre.g:16449:2: ( rule__Composition__Group_3__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getGroup_3()); + } + // InternalFiacre.g:16450:2: ( rule__Composition__Group_3__0 )* + loop145: + do { + int alt145=2; + int LA145_0 = input.LA(1); + + if ( (LA145_0==76) ) { + alt145=1; + } + + + switch (alt145) { + case 1 : + // InternalFiacre.g:16450:3: rule__Composition__Group_3__0 + { + pushFollow(FollowSets000.FOLLOW_86); + rule__Composition__Group_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop145; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getGroup_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__3__Impl" + + + // $ANTLR start "rule__Composition__Group__4" + // InternalFiacre.g:16458:1: rule__Composition__Group__4 : rule__Composition__Group__4__Impl rule__Composition__Group__5 ; + public final void rule__Composition__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16462:1: ( rule__Composition__Group__4__Impl rule__Composition__Group__5 ) + // InternalFiacre.g:16463:2: rule__Composition__Group__4__Impl rule__Composition__Group__5 + { + pushFollow(FollowSets000.FOLLOW_87); + rule__Composition__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__4" + + + // $ANTLR start "rule__Composition__Group__4__Impl" + // InternalFiacre.g:16470:1: rule__Composition__Group__4__Impl : ( 'end' ) ; + public final void rule__Composition__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16474:1: ( ( 'end' ) ) + // InternalFiacre.g:16475:1: ( 'end' ) + { + // InternalFiacre.g:16475:1: ( 'end' ) + // InternalFiacre.g:16476:2: 'end' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getEndKeyword_4()); + } + match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getEndKeyword_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__4__Impl" + + + // $ANTLR start "rule__Composition__Group__5" + // InternalFiacre.g:16485:1: rule__Composition__Group__5 : rule__Composition__Group__5__Impl ; + public final void rule__Composition__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16489:1: ( rule__Composition__Group__5__Impl ) + // InternalFiacre.g:16490:2: rule__Composition__Group__5__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__5" + + + // $ANTLR start "rule__Composition__Group__5__Impl" + // InternalFiacre.g:16496:1: rule__Composition__Group__5__Impl : ( ( 'par' )? ) ; + public final void rule__Composition__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16500:1: ( ( ( 'par' )? ) ) + // InternalFiacre.g:16501:1: ( ( 'par' )? ) + { + // InternalFiacre.g:16501:1: ( ( 'par' )? ) + // InternalFiacre.g:16502:2: ( 'par' )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getParKeyword_5()); + } + // InternalFiacre.g:16503:2: ( 'par' )? + int alt146=2; + int LA146_0 = input.LA(1); + + if ( (LA146_0==75) ) { + alt146=1; + } + switch (alt146) { + case 1 : + // InternalFiacre.g:16503:3: 'par' + { + match(input,75,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getParKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group__5__Impl" + + + // $ANTLR start "rule__Composition__Group_1__0" + // InternalFiacre.g:16512:1: rule__Composition__Group_1__0 : rule__Composition__Group_1__0__Impl rule__Composition__Group_1__1 ; + public final void rule__Composition__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16516:1: ( rule__Composition__Group_1__0__Impl rule__Composition__Group_1__1 ) + // InternalFiacre.g:16517:2: rule__Composition__Group_1__0__Impl rule__Composition__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_46); + rule__Composition__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group_1__0" + + + // $ANTLR start "rule__Composition__Group_1__0__Impl" + // InternalFiacre.g:16524:1: rule__Composition__Group_1__0__Impl : ( ( rule__Composition__GlobalAssignment_1_0 ) ) ; + public final void rule__Composition__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16528:1: ( ( ( rule__Composition__GlobalAssignment_1_0 ) ) ) + // InternalFiacre.g:16529:1: ( ( rule__Composition__GlobalAssignment_1_0 ) ) + { + // InternalFiacre.g:16529:1: ( ( rule__Composition__GlobalAssignment_1_0 ) ) + // InternalFiacre.g:16530:2: ( rule__Composition__GlobalAssignment_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getGlobalAssignment_1_0()); + } + // InternalFiacre.g:16531:2: ( rule__Composition__GlobalAssignment_1_0 ) + // InternalFiacre.g:16531:3: rule__Composition__GlobalAssignment_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__GlobalAssignment_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getGlobalAssignment_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group_1__0__Impl" + + + // $ANTLR start "rule__Composition__Group_1__1" + // InternalFiacre.g:16539:1: rule__Composition__Group_1__1 : rule__Composition__Group_1__1__Impl ; + public final void rule__Composition__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16543:1: ( rule__Composition__Group_1__1__Impl ) + // InternalFiacre.g:16544:2: rule__Composition__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__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__Composition__Group_1__1" + + + // $ANTLR start "rule__Composition__Group_1__1__Impl" + // InternalFiacre.g:16550:1: rule__Composition__Group_1__1__Impl : ( 'in' ) ; + public final void rule__Composition__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16554:1: ( ( 'in' ) ) + // InternalFiacre.g:16555:1: ( 'in' ) + { + // InternalFiacre.g:16555:1: ( 'in' ) + // InternalFiacre.g:16556:2: 'in' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getInKeyword_1_1()); + } + match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getInKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group_1__1__Impl" + + + // $ANTLR start "rule__Composition__Group_3__0" + // InternalFiacre.g:16566:1: rule__Composition__Group_3__0 : rule__Composition__Group_3__0__Impl rule__Composition__Group_3__1 ; + public final void rule__Composition__Group_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16570:1: ( rule__Composition__Group_3__0__Impl rule__Composition__Group_3__1 ) + // InternalFiacre.g:16571:2: rule__Composition__Group_3__0__Impl rule__Composition__Group_3__1 + { + pushFollow(FollowSets000.FOLLOW_84); + rule__Composition__Group_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group_3__0" + + + // $ANTLR start "rule__Composition__Group_3__0__Impl" + // InternalFiacre.g:16578:1: rule__Composition__Group_3__0__Impl : ( '||' ) ; + public final void rule__Composition__Group_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16582:1: ( ( '||' ) ) + // InternalFiacre.g:16583:1: ( '||' ) + { + // InternalFiacre.g:16583:1: ( '||' ) + // InternalFiacre.g:16584:2: '||' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getVerticalLineVerticalLineKeyword_3_0()); + } + match(input,76,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getVerticalLineVerticalLineKeyword_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group_3__0__Impl" + + + // $ANTLR start "rule__Composition__Group_3__1" + // InternalFiacre.g:16593:1: rule__Composition__Group_3__1 : rule__Composition__Group_3__1__Impl ; + public final void rule__Composition__Group_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16597:1: ( rule__Composition__Group_3__1__Impl ) + // InternalFiacre.g:16598:2: rule__Composition__Group_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__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__Composition__Group_3__1" + + + // $ANTLR start "rule__Composition__Group_3__1__Impl" + // InternalFiacre.g:16604:1: rule__Composition__Group_3__1__Impl : ( ( rule__Composition__BlocksAssignment_3_1 ) ) ; + public final void rule__Composition__Group_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16608:1: ( ( ( rule__Composition__BlocksAssignment_3_1 ) ) ) + // InternalFiacre.g:16609:1: ( ( rule__Composition__BlocksAssignment_3_1 ) ) + { + // InternalFiacre.g:16609:1: ( ( rule__Composition__BlocksAssignment_3_1 ) ) + // InternalFiacre.g:16610:2: ( rule__Composition__BlocksAssignment_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getBlocksAssignment_3_1()); + } + // InternalFiacre.g:16611:2: ( rule__Composition__BlocksAssignment_3_1 ) + // InternalFiacre.g:16611:3: rule__Composition__BlocksAssignment_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__BlocksAssignment_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getBlocksAssignment_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__Group_3__1__Impl" + + + // $ANTLR start "rule__CompositeBlock__Group__0" + // InternalFiacre.g:16620:1: rule__CompositeBlock__Group__0 : rule__CompositeBlock__Group__0__Impl rule__CompositeBlock__Group__1 ; + public final void rule__CompositeBlock__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16624:1: ( rule__CompositeBlock__Group__0__Impl rule__CompositeBlock__Group__1 ) + // InternalFiacre.g:16625:2: rule__CompositeBlock__Group__0__Impl rule__CompositeBlock__Group__1 + { + pushFollow(FollowSets000.FOLLOW_84); + rule__CompositeBlock__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CompositeBlock__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompositeBlock__Group__0" + + + // $ANTLR start "rule__CompositeBlock__Group__0__Impl" + // InternalFiacre.g:16632:1: rule__CompositeBlock__Group__0__Impl : ( ( rule__CompositeBlock__Alternatives_0 )? ) ; + public final void rule__CompositeBlock__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16636:1: ( ( ( rule__CompositeBlock__Alternatives_0 )? ) ) + // InternalFiacre.g:16637:1: ( ( rule__CompositeBlock__Alternatives_0 )? ) + { + // InternalFiacre.g:16637:1: ( ( rule__CompositeBlock__Alternatives_0 )? ) + // InternalFiacre.g:16638:2: ( rule__CompositeBlock__Alternatives_0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositeBlockAccess().getAlternatives_0()); + } + // InternalFiacre.g:16639:2: ( rule__CompositeBlock__Alternatives_0 )? + int alt147=2; + int LA147_0 = input.LA(1); + + if ( (LA147_0==RULE_ID||LA147_0==RULE_INT||(LA147_0>=14 && LA147_0<=15)||LA147_0==22||LA147_0==42||(LA147_0>=77 && LA147_0<=78)||(LA147_0>=87 && LA147_0<=88)||(LA147_0>=91 && LA147_0<=97)||(LA147_0>=99 && LA147_0<=100)||LA147_0==102||(LA147_0>=104 && LA147_0<=107)) ) { + alt147=1; + } + switch (alt147) { + case 1 : + // InternalFiacre.g:16639:3: rule__CompositeBlock__Alternatives_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CompositeBlock__Alternatives_0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositeBlockAccess().getAlternatives_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompositeBlock__Group__0__Impl" + + + // $ANTLR start "rule__CompositeBlock__Group__1" + // InternalFiacre.g:16647:1: rule__CompositeBlock__Group__1 : rule__CompositeBlock__Group__1__Impl ; + public final void rule__CompositeBlock__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16651:1: ( rule__CompositeBlock__Group__1__Impl ) + // InternalFiacre.g:16652:2: rule__CompositeBlock__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CompositeBlock__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompositeBlock__Group__1" + + + // $ANTLR start "rule__CompositeBlock__Group__1__Impl" + // InternalFiacre.g:16658:1: rule__CompositeBlock__Group__1__Impl : ( ( rule__CompositeBlock__CompositionAssignment_1 ) ) ; + public final void rule__CompositeBlock__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16662:1: ( ( ( rule__CompositeBlock__CompositionAssignment_1 ) ) ) + // InternalFiacre.g:16663:1: ( ( rule__CompositeBlock__CompositionAssignment_1 ) ) + { + // InternalFiacre.g:16663:1: ( ( rule__CompositeBlock__CompositionAssignment_1 ) ) + // InternalFiacre.g:16664:2: ( rule__CompositeBlock__CompositionAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositeBlockAccess().getCompositionAssignment_1()); + } + // InternalFiacre.g:16665:2: ( rule__CompositeBlock__CompositionAssignment_1 ) + // InternalFiacre.g:16665:3: rule__CompositeBlock__CompositionAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CompositeBlock__CompositionAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositeBlockAccess().getCompositionAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompositeBlock__Group__1__Impl" + + + // $ANTLR start "rule__CompositeBlock__Group_0_0__0" + // InternalFiacre.g:16674:1: rule__CompositeBlock__Group_0_0__0 : rule__CompositeBlock__Group_0_0__0__Impl rule__CompositeBlock__Group_0_0__1 ; + public final void rule__CompositeBlock__Group_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16678:1: ( rule__CompositeBlock__Group_0_0__0__Impl rule__CompositeBlock__Group_0_0__1 ) + // InternalFiacre.g:16679:2: rule__CompositeBlock__Group_0_0__0__Impl rule__CompositeBlock__Group_0_0__1 + { + pushFollow(FollowSets000.FOLLOW_81); + rule__CompositeBlock__Group_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__CompositeBlock__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__CompositeBlock__Group_0_0__0" + + + // $ANTLR start "rule__CompositeBlock__Group_0_0__0__Impl" + // InternalFiacre.g:16686:1: rule__CompositeBlock__Group_0_0__0__Impl : ( ( rule__CompositeBlock__LocalAssignment_0_0_0 ) ) ; + public final void rule__CompositeBlock__Group_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16690:1: ( ( ( rule__CompositeBlock__LocalAssignment_0_0_0 ) ) ) + // InternalFiacre.g:16691:1: ( ( rule__CompositeBlock__LocalAssignment_0_0_0 ) ) + { + // InternalFiacre.g:16691:1: ( ( rule__CompositeBlock__LocalAssignment_0_0_0 ) ) + // InternalFiacre.g:16692:2: ( rule__CompositeBlock__LocalAssignment_0_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositeBlockAccess().getLocalAssignment_0_0_0()); + } + // InternalFiacre.g:16693:2: ( rule__CompositeBlock__LocalAssignment_0_0_0 ) + // InternalFiacre.g:16693:3: rule__CompositeBlock__LocalAssignment_0_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CompositeBlock__LocalAssignment_0_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositeBlockAccess().getLocalAssignment_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompositeBlock__Group_0_0__0__Impl" + + + // $ANTLR start "rule__CompositeBlock__Group_0_0__1" + // InternalFiacre.g:16701:1: rule__CompositeBlock__Group_0_0__1 : rule__CompositeBlock__Group_0_0__1__Impl ; + public final void rule__CompositeBlock__Group_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16705:1: ( rule__CompositeBlock__Group_0_0__1__Impl ) + // InternalFiacre.g:16706:2: rule__CompositeBlock__Group_0_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__CompositeBlock__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__CompositeBlock__Group_0_0__1" + + + // $ANTLR start "rule__CompositeBlock__Group_0_0__1__Impl" + // InternalFiacre.g:16712:1: rule__CompositeBlock__Group_0_0__1__Impl : ( '->' ) ; + public final void rule__CompositeBlock__Group_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16716:1: ( ( '->' ) ) + // InternalFiacre.g:16717:1: ( '->' ) + { + // InternalFiacre.g:16717:1: ( '->' ) + // InternalFiacre.g:16718:2: '->' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); + } + match(input,15,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompositeBlock__Group_0_0__1__Impl" + + + // $ANTLR start "rule__InstanceDeclaration__Group__0" + // InternalFiacre.g:16728:1: rule__InstanceDeclaration__Group__0 : rule__InstanceDeclaration__Group__0__Impl rule__InstanceDeclaration__Group__1 ; + public final void rule__InstanceDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16732:1: ( rule__InstanceDeclaration__Group__0__Impl rule__InstanceDeclaration__Group__1 ) + // InternalFiacre.g:16733:2: rule__InstanceDeclaration__Group__0__Impl rule__InstanceDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_84); + rule__InstanceDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__InstanceDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InstanceDeclaration__Group__0" + + + // $ANTLR start "rule__InstanceDeclaration__Group__0__Impl" + // InternalFiacre.g:16740:1: rule__InstanceDeclaration__Group__0__Impl : ( ( rule__InstanceDeclaration__Alternatives_0 )? ) ; + public final void rule__InstanceDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16744:1: ( ( ( rule__InstanceDeclaration__Alternatives_0 )? ) ) + // InternalFiacre.g:16745:1: ( ( rule__InstanceDeclaration__Alternatives_0 )? ) + { + // InternalFiacre.g:16745:1: ( ( rule__InstanceDeclaration__Alternatives_0 )? ) + // InternalFiacre.g:16746:2: ( rule__InstanceDeclaration__Alternatives_0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInstanceDeclarationAccess().getAlternatives_0()); + } + // InternalFiacre.g:16747:2: ( rule__InstanceDeclaration__Alternatives_0 )? + int alt148=2; + alt148 = dfa148.predict(input); + switch (alt148) { + case 1 : + // InternalFiacre.g:16747:3: rule__InstanceDeclaration__Alternatives_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InstanceDeclaration__Alternatives_0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getInstanceDeclarationAccess().getAlternatives_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InstanceDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__InstanceDeclaration__Group__1" + // InternalFiacre.g:16755:1: rule__InstanceDeclaration__Group__1 : rule__InstanceDeclaration__Group__1__Impl ; + public final void rule__InstanceDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16759:1: ( rule__InstanceDeclaration__Group__1__Impl ) + // InternalFiacre.g:16760:2: rule__InstanceDeclaration__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InstanceDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InstanceDeclaration__Group__1" + + + // $ANTLR start "rule__InstanceDeclaration__Group__1__Impl" + // InternalFiacre.g:16766:1: rule__InstanceDeclaration__Group__1__Impl : ( ( rule__InstanceDeclaration__InstanceAssignment_1 ) ) ; + public final void rule__InstanceDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16770:1: ( ( ( rule__InstanceDeclaration__InstanceAssignment_1 ) ) ) + // InternalFiacre.g:16771:1: ( ( rule__InstanceDeclaration__InstanceAssignment_1 ) ) + { + // InternalFiacre.g:16771:1: ( ( rule__InstanceDeclaration__InstanceAssignment_1 ) ) + // InternalFiacre.g:16772:2: ( rule__InstanceDeclaration__InstanceAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInstanceDeclarationAccess().getInstanceAssignment_1()); + } + // InternalFiacre.g:16773:2: ( rule__InstanceDeclaration__InstanceAssignment_1 ) + // InternalFiacre.g:16773:3: rule__InstanceDeclaration__InstanceAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InstanceDeclaration__InstanceAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getInstanceDeclarationAccess().getInstanceAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InstanceDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__InstanceDeclaration__Group_0_0__0" + // InternalFiacre.g:16782:1: rule__InstanceDeclaration__Group_0_0__0 : rule__InstanceDeclaration__Group_0_0__0__Impl rule__InstanceDeclaration__Group_0_0__1 ; + public final void rule__InstanceDeclaration__Group_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16786:1: ( rule__InstanceDeclaration__Group_0_0__0__Impl rule__InstanceDeclaration__Group_0_0__1 ) + // InternalFiacre.g:16787:2: rule__InstanceDeclaration__Group_0_0__0__Impl rule__InstanceDeclaration__Group_0_0__1 + { + pushFollow(FollowSets000.FOLLOW_81); + rule__InstanceDeclaration__Group_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__InstanceDeclaration__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__InstanceDeclaration__Group_0_0__0" + + + // $ANTLR start "rule__InstanceDeclaration__Group_0_0__0__Impl" + // InternalFiacre.g:16794:1: rule__InstanceDeclaration__Group_0_0__0__Impl : ( ( rule__InstanceDeclaration__LocalAssignment_0_0_0 ) ) ; + public final void rule__InstanceDeclaration__Group_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16798:1: ( ( ( rule__InstanceDeclaration__LocalAssignment_0_0_0 ) ) ) + // InternalFiacre.g:16799:1: ( ( rule__InstanceDeclaration__LocalAssignment_0_0_0 ) ) + { + // InternalFiacre.g:16799:1: ( ( rule__InstanceDeclaration__LocalAssignment_0_0_0 ) ) + // InternalFiacre.g:16800:2: ( rule__InstanceDeclaration__LocalAssignment_0_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInstanceDeclarationAccess().getLocalAssignment_0_0_0()); + } + // InternalFiacre.g:16801:2: ( rule__InstanceDeclaration__LocalAssignment_0_0_0 ) + // InternalFiacre.g:16801:3: rule__InstanceDeclaration__LocalAssignment_0_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InstanceDeclaration__LocalAssignment_0_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getInstanceDeclarationAccess().getLocalAssignment_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InstanceDeclaration__Group_0_0__0__Impl" + + + // $ANTLR start "rule__InstanceDeclaration__Group_0_0__1" + // InternalFiacre.g:16809:1: rule__InstanceDeclaration__Group_0_0__1 : rule__InstanceDeclaration__Group_0_0__1__Impl ; + public final void rule__InstanceDeclaration__Group_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16813:1: ( rule__InstanceDeclaration__Group_0_0__1__Impl ) + // InternalFiacre.g:16814:2: rule__InstanceDeclaration__Group_0_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InstanceDeclaration__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__InstanceDeclaration__Group_0_0__1" + + + // $ANTLR start "rule__InstanceDeclaration__Group_0_0__1__Impl" + // InternalFiacre.g:16820:1: rule__InstanceDeclaration__Group_0_0__1__Impl : ( '->' ) ; + public final void rule__InstanceDeclaration__Group_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16824:1: ( ( '->' ) ) + // InternalFiacre.g:16825:1: ( '->' ) + { + // InternalFiacre.g:16825:1: ( '->' ) + // InternalFiacre.g:16826:2: '->' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); + } + match(input,15,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InstanceDeclaration__Group_0_0__1__Impl" + + + // $ANTLR start "rule__PortSet__Group_1__0" + // InternalFiacre.g:16836:1: rule__PortSet__Group_1__0 : rule__PortSet__Group_1__0__Impl rule__PortSet__Group_1__1 ; + public final void rule__PortSet__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16840:1: ( rule__PortSet__Group_1__0__Impl rule__PortSet__Group_1__1 ) + // InternalFiacre.g:16841:2: rule__PortSet__Group_1__0__Impl rule__PortSet__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__PortSet__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PortSet__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortSet__Group_1__0" + + + // $ANTLR start "rule__PortSet__Group_1__0__Impl" + // InternalFiacre.g:16848:1: rule__PortSet__Group_1__0__Impl : ( ( rule__PortSet__PortsAssignment_1_0 ) ) ; + public final void rule__PortSet__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16852:1: ( ( ( rule__PortSet__PortsAssignment_1_0 ) ) ) + // InternalFiacre.g:16853:1: ( ( rule__PortSet__PortsAssignment_1_0 ) ) + { + // InternalFiacre.g:16853:1: ( ( rule__PortSet__PortsAssignment_1_0 ) ) + // InternalFiacre.g:16854:2: ( rule__PortSet__PortsAssignment_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getPortsAssignment_1_0()); + } + // InternalFiacre.g:16855:2: ( rule__PortSet__PortsAssignment_1_0 ) + // InternalFiacre.g:16855:3: rule__PortSet__PortsAssignment_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortSet__PortsAssignment_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getPortsAssignment_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortSet__Group_1__0__Impl" + + + // $ANTLR start "rule__PortSet__Group_1__1" + // InternalFiacre.g:16863:1: rule__PortSet__Group_1__1 : rule__PortSet__Group_1__1__Impl ; + public final void rule__PortSet__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16867:1: ( rule__PortSet__Group_1__1__Impl ) + // InternalFiacre.g:16868:2: rule__PortSet__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortSet__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__PortSet__Group_1__1" + + + // $ANTLR start "rule__PortSet__Group_1__1__Impl" + // InternalFiacre.g:16874:1: rule__PortSet__Group_1__1__Impl : ( ( rule__PortSet__Group_1_1__0 )* ) ; + public final void rule__PortSet__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16878:1: ( ( ( rule__PortSet__Group_1_1__0 )* ) ) + // InternalFiacre.g:16879:1: ( ( rule__PortSet__Group_1_1__0 )* ) + { + // InternalFiacre.g:16879:1: ( ( rule__PortSet__Group_1_1__0 )* ) + // InternalFiacre.g:16880:2: ( rule__PortSet__Group_1_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getGroup_1_1()); + } + // InternalFiacre.g:16881:2: ( rule__PortSet__Group_1_1__0 )* + loop149: + do { + int alt149=2; + int LA149_0 = input.LA(1); + + if ( (LA149_0==24) ) { + alt149=1; + } + + + switch (alt149) { + case 1 : + // InternalFiacre.g:16881:3: rule__PortSet__Group_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__PortSet__Group_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop149; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getGroup_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortSet__Group_1__1__Impl" + + + // $ANTLR start "rule__PortSet__Group_1_1__0" + // InternalFiacre.g:16890:1: rule__PortSet__Group_1_1__0 : rule__PortSet__Group_1_1__0__Impl rule__PortSet__Group_1_1__1 ; + public final void rule__PortSet__Group_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16894:1: ( rule__PortSet__Group_1_1__0__Impl rule__PortSet__Group_1_1__1 ) + // InternalFiacre.g:16895:2: rule__PortSet__Group_1_1__0__Impl rule__PortSet__Group_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__PortSet__Group_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PortSet__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__PortSet__Group_1_1__0" + + + // $ANTLR start "rule__PortSet__Group_1_1__0__Impl" + // InternalFiacre.g:16902:1: rule__PortSet__Group_1_1__0__Impl : ( ',' ) ; + public final void rule__PortSet__Group_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16906:1: ( ( ',' ) ) + // InternalFiacre.g:16907:1: ( ',' ) + { + // InternalFiacre.g:16907:1: ( ',' ) + // InternalFiacre.g:16908:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getCommaKeyword_1_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getCommaKeyword_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortSet__Group_1_1__0__Impl" + + + // $ANTLR start "rule__PortSet__Group_1_1__1" + // InternalFiacre.g:16917:1: rule__PortSet__Group_1_1__1 : rule__PortSet__Group_1_1__1__Impl ; + public final void rule__PortSet__Group_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16921:1: ( rule__PortSet__Group_1_1__1__Impl ) + // InternalFiacre.g:16922:2: rule__PortSet__Group_1_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortSet__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__PortSet__Group_1_1__1" + + + // $ANTLR start "rule__PortSet__Group_1_1__1__Impl" + // InternalFiacre.g:16928:1: rule__PortSet__Group_1_1__1__Impl : ( ( rule__PortSet__PortsAssignment_1_1_1 ) ) ; + public final void rule__PortSet__Group_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16932:1: ( ( ( rule__PortSet__PortsAssignment_1_1_1 ) ) ) + // InternalFiacre.g:16933:1: ( ( rule__PortSet__PortsAssignment_1_1_1 ) ) + { + // InternalFiacre.g:16933:1: ( ( rule__PortSet__PortsAssignment_1_1_1 ) ) + // InternalFiacre.g:16934:2: ( rule__PortSet__PortsAssignment_1_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getPortsAssignment_1_1_1()); + } + // InternalFiacre.g:16935:2: ( rule__PortSet__PortsAssignment_1_1_1 ) + // InternalFiacre.g:16935:3: rule__PortSet__PortsAssignment_1_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PortSet__PortsAssignment_1_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getPortsAssignment_1_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortSet__Group_1_1__1__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group__0" + // InternalFiacre.g:16944:1: rule__ComponentInstance__Group__0 : rule__ComponentInstance__Group__0__Impl rule__ComponentInstance__Group__1 ; + public final void rule__ComponentInstance__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16948:1: ( rule__ComponentInstance__Group__0__Impl rule__ComponentInstance__Group__1 ) + // InternalFiacre.g:16949:2: rule__ComponentInstance__Group__0__Impl rule__ComponentInstance__Group__1 + { + pushFollow(FollowSets000.FOLLOW_88); + rule__ComponentInstance__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group__0" + + + // $ANTLR start "rule__ComponentInstance__Group__0__Impl" + // InternalFiacre.g:16956:1: rule__ComponentInstance__Group__0__Impl : ( ( rule__ComponentInstance__ComponentAssignment_0 ) ) ; + public final void rule__ComponentInstance__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16960:1: ( ( ( rule__ComponentInstance__ComponentAssignment_0 ) ) ) + // InternalFiacre.g:16961:1: ( ( rule__ComponentInstance__ComponentAssignment_0 ) ) + { + // InternalFiacre.g:16961:1: ( ( rule__ComponentInstance__ComponentAssignment_0 ) ) + // InternalFiacre.g:16962:2: ( rule__ComponentInstance__ComponentAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getComponentAssignment_0()); + } + // InternalFiacre.g:16963:2: ( rule__ComponentInstance__ComponentAssignment_0 ) + // InternalFiacre.g:16963:3: rule__ComponentInstance__ComponentAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__ComponentAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getComponentAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group__0__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group__1" + // InternalFiacre.g:16971:1: rule__ComponentInstance__Group__1 : rule__ComponentInstance__Group__1__Impl rule__ComponentInstance__Group__2 ; + public final void rule__ComponentInstance__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16975:1: ( rule__ComponentInstance__Group__1__Impl rule__ComponentInstance__Group__2 ) + // InternalFiacre.g:16976:2: rule__ComponentInstance__Group__1__Impl rule__ComponentInstance__Group__2 + { + pushFollow(FollowSets000.FOLLOW_88); + rule__ComponentInstance__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group__1" + + + // $ANTLR start "rule__ComponentInstance__Group__1__Impl" + // InternalFiacre.g:16983:1: rule__ComponentInstance__Group__1__Impl : ( ( rule__ComponentInstance__Group_1__0 )? ) ; + public final void rule__ComponentInstance__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:16987:1: ( ( ( rule__ComponentInstance__Group_1__0 )? ) ) + // InternalFiacre.g:16988:1: ( ( rule__ComponentInstance__Group_1__0 )? ) + { + // InternalFiacre.g:16988:1: ( ( rule__ComponentInstance__Group_1__0 )? ) + // InternalFiacre.g:16989:2: ( rule__ComponentInstance__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getGroup_1()); + } + // InternalFiacre.g:16990:2: ( rule__ComponentInstance__Group_1__0 )? + int alt150=2; + int LA150_0 = input.LA(1); + + if ( (LA150_0==42) ) { + alt150=1; + } + switch (alt150) { + case 1 : + // InternalFiacre.g:16990:3: rule__ComponentInstance__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group__1__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group__2" + // InternalFiacre.g:16998:1: rule__ComponentInstance__Group__2 : rule__ComponentInstance__Group__2__Impl ; + public final void rule__ComponentInstance__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17002:1: ( rule__ComponentInstance__Group__2__Impl ) + // InternalFiacre.g:17003:2: rule__ComponentInstance__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group__2" + + + // $ANTLR start "rule__ComponentInstance__Group__2__Impl" + // InternalFiacre.g:17009:1: rule__ComponentInstance__Group__2__Impl : ( ( rule__ComponentInstance__Group_2__0 )? ) ; + public final void rule__ComponentInstance__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17013:1: ( ( ( rule__ComponentInstance__Group_2__0 )? ) ) + // InternalFiacre.g:17014:1: ( ( rule__ComponentInstance__Group_2__0 )? ) + { + // InternalFiacre.g:17014:1: ( ( rule__ComponentInstance__Group_2__0 )? ) + // InternalFiacre.g:17015:2: ( rule__ComponentInstance__Group_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getGroup_2()); + } + // InternalFiacre.g:17016:2: ( rule__ComponentInstance__Group_2__0 )? + int alt151=2; + int LA151_0 = input.LA(1); + + if ( (LA151_0==22) ) { + alt151=1; + } + switch (alt151) { + case 1 : + // InternalFiacre.g:17016:3: rule__ComponentInstance__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group__2__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_1__0" + // InternalFiacre.g:17025:1: rule__ComponentInstance__Group_1__0 : rule__ComponentInstance__Group_1__0__Impl rule__ComponentInstance__Group_1__1 ; + public final void rule__ComponentInstance__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17029:1: ( rule__ComponentInstance__Group_1__0__Impl rule__ComponentInstance__Group_1__1 ) + // InternalFiacre.g:17030:2: rule__ComponentInstance__Group_1__0__Impl rule__ComponentInstance__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ComponentInstance__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1__0" + + + // $ANTLR start "rule__ComponentInstance__Group_1__0__Impl" + // InternalFiacre.g:17037:1: rule__ComponentInstance__Group_1__0__Impl : ( '[' ) ; + public final void rule__ComponentInstance__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17041:1: ( ( '[' ) ) + // InternalFiacre.g:17042:1: ( '[' ) + { + // InternalFiacre.g:17042:1: ( '[' ) + // InternalFiacre.g:17043:2: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getLeftSquareBracketKeyword_1_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getLeftSquareBracketKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1__0__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_1__1" + // InternalFiacre.g:17052:1: rule__ComponentInstance__Group_1__1 : rule__ComponentInstance__Group_1__1__Impl rule__ComponentInstance__Group_1__2 ; + public final void rule__ComponentInstance__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17056:1: ( rule__ComponentInstance__Group_1__1__Impl rule__ComponentInstance__Group_1__2 ) + // InternalFiacre.g:17057:2: rule__ComponentInstance__Group_1__1__Impl rule__ComponentInstance__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_43); + rule__ComponentInstance__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1__1" + + + // $ANTLR start "rule__ComponentInstance__Group_1__1__Impl" + // InternalFiacre.g:17064:1: rule__ComponentInstance__Group_1__1__Impl : ( ( rule__ComponentInstance__PortsAssignment_1_1 ) ) ; + public final void rule__ComponentInstance__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17068:1: ( ( ( rule__ComponentInstance__PortsAssignment_1_1 ) ) ) + // InternalFiacre.g:17069:1: ( ( rule__ComponentInstance__PortsAssignment_1_1 ) ) + { + // InternalFiacre.g:17069:1: ( ( rule__ComponentInstance__PortsAssignment_1_1 ) ) + // InternalFiacre.g:17070:2: ( rule__ComponentInstance__PortsAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getPortsAssignment_1_1()); + } + // InternalFiacre.g:17071:2: ( rule__ComponentInstance__PortsAssignment_1_1 ) + // InternalFiacre.g:17071:3: rule__ComponentInstance__PortsAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__PortsAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getPortsAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1__1__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_1__2" + // InternalFiacre.g:17079:1: rule__ComponentInstance__Group_1__2 : rule__ComponentInstance__Group_1__2__Impl rule__ComponentInstance__Group_1__3 ; + public final void rule__ComponentInstance__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17083:1: ( rule__ComponentInstance__Group_1__2__Impl rule__ComponentInstance__Group_1__3 ) + // InternalFiacre.g:17084:2: rule__ComponentInstance__Group_1__2__Impl rule__ComponentInstance__Group_1__3 + { + pushFollow(FollowSets000.FOLLOW_43); + rule__ComponentInstance__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_1__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1__2" + + + // $ANTLR start "rule__ComponentInstance__Group_1__2__Impl" + // InternalFiacre.g:17091:1: rule__ComponentInstance__Group_1__2__Impl : ( ( rule__ComponentInstance__Group_1_2__0 )* ) ; + public final void rule__ComponentInstance__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17095:1: ( ( ( rule__ComponentInstance__Group_1_2__0 )* ) ) + // InternalFiacre.g:17096:1: ( ( rule__ComponentInstance__Group_1_2__0 )* ) + { + // InternalFiacre.g:17096:1: ( ( rule__ComponentInstance__Group_1_2__0 )* ) + // InternalFiacre.g:17097:2: ( rule__ComponentInstance__Group_1_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getGroup_1_2()); + } + // InternalFiacre.g:17098:2: ( rule__ComponentInstance__Group_1_2__0 )* + loop152: + do { + int alt152=2; + int LA152_0 = input.LA(1); + + if ( (LA152_0==24) ) { + alt152=1; + } + + + switch (alt152) { + case 1 : + // InternalFiacre.g:17098:3: rule__ComponentInstance__Group_1_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ComponentInstance__Group_1_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop152; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getGroup_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1__2__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_1__3" + // InternalFiacre.g:17106:1: rule__ComponentInstance__Group_1__3 : rule__ComponentInstance__Group_1__3__Impl ; + public final void rule__ComponentInstance__Group_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17110:1: ( rule__ComponentInstance__Group_1__3__Impl ) + // InternalFiacre.g:17111:2: rule__ComponentInstance__Group_1__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_1__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1__3" + + + // $ANTLR start "rule__ComponentInstance__Group_1__3__Impl" + // InternalFiacre.g:17117:1: rule__ComponentInstance__Group_1__3__Impl : ( ']' ) ; + public final void rule__ComponentInstance__Group_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17121:1: ( ( ']' ) ) + // InternalFiacre.g:17122:1: ( ']' ) + { + // InternalFiacre.g:17122:1: ( ']' ) + // InternalFiacre.g:17123:2: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getRightSquareBracketKeyword_1_3()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getRightSquareBracketKeyword_1_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1__3__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_1_2__0" + // InternalFiacre.g:17133:1: rule__ComponentInstance__Group_1_2__0 : rule__ComponentInstance__Group_1_2__0__Impl rule__ComponentInstance__Group_1_2__1 ; + public final void rule__ComponentInstance__Group_1_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17137:1: ( rule__ComponentInstance__Group_1_2__0__Impl rule__ComponentInstance__Group_1_2__1 ) + // InternalFiacre.g:17138:2: rule__ComponentInstance__Group_1_2__0__Impl rule__ComponentInstance__Group_1_2__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ComponentInstance__Group_1_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_1_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1_2__0" + + + // $ANTLR start "rule__ComponentInstance__Group_1_2__0__Impl" + // InternalFiacre.g:17145:1: rule__ComponentInstance__Group_1_2__0__Impl : ( ',' ) ; + public final void rule__ComponentInstance__Group_1_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17149:1: ( ( ',' ) ) + // InternalFiacre.g:17150:1: ( ',' ) + { + // InternalFiacre.g:17150:1: ( ',' ) + // InternalFiacre.g:17151:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getCommaKeyword_1_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getCommaKeyword_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1_2__0__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_1_2__1" + // InternalFiacre.g:17160:1: rule__ComponentInstance__Group_1_2__1 : rule__ComponentInstance__Group_1_2__1__Impl ; + public final void rule__ComponentInstance__Group_1_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17164:1: ( rule__ComponentInstance__Group_1_2__1__Impl ) + // InternalFiacre.g:17165:2: rule__ComponentInstance__Group_1_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_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__ComponentInstance__Group_1_2__1" + + + // $ANTLR start "rule__ComponentInstance__Group_1_2__1__Impl" + // InternalFiacre.g:17171:1: rule__ComponentInstance__Group_1_2__1__Impl : ( ( rule__ComponentInstance__PortsAssignment_1_2_1 ) ) ; + public final void rule__ComponentInstance__Group_1_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17175:1: ( ( ( rule__ComponentInstance__PortsAssignment_1_2_1 ) ) ) + // InternalFiacre.g:17176:1: ( ( rule__ComponentInstance__PortsAssignment_1_2_1 ) ) + { + // InternalFiacre.g:17176:1: ( ( rule__ComponentInstance__PortsAssignment_1_2_1 ) ) + // InternalFiacre.g:17177:2: ( rule__ComponentInstance__PortsAssignment_1_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getPortsAssignment_1_2_1()); + } + // InternalFiacre.g:17178:2: ( rule__ComponentInstance__PortsAssignment_1_2_1 ) + // InternalFiacre.g:17178:3: rule__ComponentInstance__PortsAssignment_1_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__PortsAssignment_1_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getPortsAssignment_1_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_1_2__1__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_2__0" + // InternalFiacre.g:17187:1: rule__ComponentInstance__Group_2__0 : rule__ComponentInstance__Group_2__0__Impl rule__ComponentInstance__Group_2__1 ; + public final void rule__ComponentInstance__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17191:1: ( rule__ComponentInstance__Group_2__0__Impl rule__ComponentInstance__Group_2__1 ) + // InternalFiacre.g:17192:2: rule__ComponentInstance__Group_2__0__Impl rule__ComponentInstance__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ComponentInstance__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2__0" + + + // $ANTLR start "rule__ComponentInstance__Group_2__0__Impl" + // InternalFiacre.g:17199:1: rule__ComponentInstance__Group_2__0__Impl : ( '(' ) ; + public final void rule__ComponentInstance__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17203:1: ( ( '(' ) ) + // InternalFiacre.g:17204:1: ( '(' ) + { + // InternalFiacre.g:17204:1: ( '(' ) + // InternalFiacre.g:17205:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getLeftParenthesisKeyword_2_0()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getLeftParenthesisKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2__0__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_2__1" + // InternalFiacre.g:17214:1: rule__ComponentInstance__Group_2__1 : rule__ComponentInstance__Group_2__1__Impl rule__ComponentInstance__Group_2__2 ; + public final void rule__ComponentInstance__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17218:1: ( rule__ComponentInstance__Group_2__1__Impl rule__ComponentInstance__Group_2__2 ) + // InternalFiacre.g:17219:2: rule__ComponentInstance__Group_2__1__Impl rule__ComponentInstance__Group_2__2 + { + pushFollow(FollowSets000.FOLLOW_44); + rule__ComponentInstance__Group_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2__1" + + + // $ANTLR start "rule__ComponentInstance__Group_2__1__Impl" + // InternalFiacre.g:17226:1: rule__ComponentInstance__Group_2__1__Impl : ( ( rule__ComponentInstance__ParametersAssignment_2_1 ) ) ; + public final void rule__ComponentInstance__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17230:1: ( ( ( rule__ComponentInstance__ParametersAssignment_2_1 ) ) ) + // InternalFiacre.g:17231:1: ( ( rule__ComponentInstance__ParametersAssignment_2_1 ) ) + { + // InternalFiacre.g:17231:1: ( ( rule__ComponentInstance__ParametersAssignment_2_1 ) ) + // InternalFiacre.g:17232:2: ( rule__ComponentInstance__ParametersAssignment_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getParametersAssignment_2_1()); + } + // InternalFiacre.g:17233:2: ( rule__ComponentInstance__ParametersAssignment_2_1 ) + // InternalFiacre.g:17233:3: rule__ComponentInstance__ParametersAssignment_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__ParametersAssignment_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getParametersAssignment_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2__1__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_2__2" + // InternalFiacre.g:17241:1: rule__ComponentInstance__Group_2__2 : rule__ComponentInstance__Group_2__2__Impl rule__ComponentInstance__Group_2__3 ; + public final void rule__ComponentInstance__Group_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17245:1: ( rule__ComponentInstance__Group_2__2__Impl rule__ComponentInstance__Group_2__3 ) + // InternalFiacre.g:17246:2: rule__ComponentInstance__Group_2__2__Impl rule__ComponentInstance__Group_2__3 + { + pushFollow(FollowSets000.FOLLOW_44); + rule__ComponentInstance__Group_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_2__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2__2" + + + // $ANTLR start "rule__ComponentInstance__Group_2__2__Impl" + // InternalFiacre.g:17253:1: rule__ComponentInstance__Group_2__2__Impl : ( ( rule__ComponentInstance__Group_2_2__0 )* ) ; + public final void rule__ComponentInstance__Group_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17257:1: ( ( ( rule__ComponentInstance__Group_2_2__0 )* ) ) + // InternalFiacre.g:17258:1: ( ( rule__ComponentInstance__Group_2_2__0 )* ) + { + // InternalFiacre.g:17258:1: ( ( rule__ComponentInstance__Group_2_2__0 )* ) + // InternalFiacre.g:17259:2: ( rule__ComponentInstance__Group_2_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getGroup_2_2()); + } + // InternalFiacre.g:17260:2: ( rule__ComponentInstance__Group_2_2__0 )* + loop153: + do { + int alt153=2; + int LA153_0 = input.LA(1); + + if ( (LA153_0==24) ) { + alt153=1; + } + + + switch (alt153) { + case 1 : + // InternalFiacre.g:17260:3: rule__ComponentInstance__Group_2_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ComponentInstance__Group_2_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop153; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getGroup_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2__2__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_2__3" + // InternalFiacre.g:17268:1: rule__ComponentInstance__Group_2__3 : rule__ComponentInstance__Group_2__3__Impl ; + public final void rule__ComponentInstance__Group_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17272:1: ( rule__ComponentInstance__Group_2__3__Impl ) + // InternalFiacre.g:17273:2: rule__ComponentInstance__Group_2__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_2__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2__3" + + + // $ANTLR start "rule__ComponentInstance__Group_2__3__Impl" + // InternalFiacre.g:17279:1: rule__ComponentInstance__Group_2__3__Impl : ( ')' ) ; + public final void rule__ComponentInstance__Group_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17283:1: ( ( ')' ) ) + // InternalFiacre.g:17284:1: ( ')' ) + { + // InternalFiacre.g:17284:1: ( ')' ) + // InternalFiacre.g:17285:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getRightParenthesisKeyword_2_3()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getRightParenthesisKeyword_2_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2__3__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_2_2__0" + // InternalFiacre.g:17295:1: rule__ComponentInstance__Group_2_2__0 : rule__ComponentInstance__Group_2_2__0__Impl rule__ComponentInstance__Group_2_2__1 ; + public final void rule__ComponentInstance__Group_2_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17299:1: ( rule__ComponentInstance__Group_2_2__0__Impl rule__ComponentInstance__Group_2_2__1 ) + // InternalFiacre.g:17300:2: rule__ComponentInstance__Group_2_2__0__Impl rule__ComponentInstance__Group_2_2__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ComponentInstance__Group_2_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_2_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2_2__0" + + + // $ANTLR start "rule__ComponentInstance__Group_2_2__0__Impl" + // InternalFiacre.g:17307:1: rule__ComponentInstance__Group_2_2__0__Impl : ( ',' ) ; + public final void rule__ComponentInstance__Group_2_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17311:1: ( ( ',' ) ) + // InternalFiacre.g:17312:1: ( ',' ) + { + // InternalFiacre.g:17312:1: ( ',' ) + // InternalFiacre.g:17313:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getCommaKeyword_2_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getCommaKeyword_2_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2_2__0__Impl" + + + // $ANTLR start "rule__ComponentInstance__Group_2_2__1" + // InternalFiacre.g:17322:1: rule__ComponentInstance__Group_2_2__1 : rule__ComponentInstance__Group_2_2__1__Impl ; + public final void rule__ComponentInstance__Group_2_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17326:1: ( rule__ComponentInstance__Group_2_2__1__Impl ) + // InternalFiacre.g:17327:2: rule__ComponentInstance__Group_2_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__Group_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__ComponentInstance__Group_2_2__1" + + + // $ANTLR start "rule__ComponentInstance__Group_2_2__1__Impl" + // InternalFiacre.g:17333:1: rule__ComponentInstance__Group_2_2__1__Impl : ( ( rule__ComponentInstance__ParametersAssignment_2_2_1 ) ) ; + public final void rule__ComponentInstance__Group_2_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17337:1: ( ( ( rule__ComponentInstance__ParametersAssignment_2_2_1 ) ) ) + // InternalFiacre.g:17338:1: ( ( rule__ComponentInstance__ParametersAssignment_2_2_1 ) ) + { + // InternalFiacre.g:17338:1: ( ( rule__ComponentInstance__ParametersAssignment_2_2_1 ) ) + // InternalFiacre.g:17339:2: ( rule__ComponentInstance__ParametersAssignment_2_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getParametersAssignment_2_2_1()); + } + // InternalFiacre.g:17340:2: ( rule__ComponentInstance__ParametersAssignment_2_2_1 ) + // InternalFiacre.g:17340:3: rule__ComponentInstance__ParametersAssignment_2_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ComponentInstance__ParametersAssignment_2_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getParametersAssignment_2_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__Group_2_2__1__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0__0" + // InternalFiacre.g:17349:1: rule__QuantifiedExpression__Group_0__0 : rule__QuantifiedExpression__Group_0__0__Impl rule__QuantifiedExpression__Group_0__1 ; + public final void rule__QuantifiedExpression__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17353:1: ( rule__QuantifiedExpression__Group_0__0__Impl rule__QuantifiedExpression__Group_0__1 ) + // InternalFiacre.g:17354:2: rule__QuantifiedExpression__Group_0__0__Impl rule__QuantifiedExpression__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__QuantifiedExpression__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0__0" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0__0__Impl" + // InternalFiacre.g:17361:1: rule__QuantifiedExpression__Group_0__0__Impl : ( ( rule__QuantifiedExpression__Alternatives_0_0 ) ) ; + public final void rule__QuantifiedExpression__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17365:1: ( ( ( rule__QuantifiedExpression__Alternatives_0_0 ) ) ) + // InternalFiacre.g:17366:1: ( ( rule__QuantifiedExpression__Alternatives_0_0 ) ) + { + // InternalFiacre.g:17366:1: ( ( rule__QuantifiedExpression__Alternatives_0_0 ) ) + // InternalFiacre.g:17367:2: ( rule__QuantifiedExpression__Alternatives_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getAlternatives_0_0()); + } + // InternalFiacre.g:17368:2: ( rule__QuantifiedExpression__Alternatives_0_0 ) + // InternalFiacre.g:17368:3: rule__QuantifiedExpression__Alternatives_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Alternatives_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getAlternatives_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0__0__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0__1" + // InternalFiacre.g:17376:1: rule__QuantifiedExpression__Group_0__1 : rule__QuantifiedExpression__Group_0__1__Impl rule__QuantifiedExpression__Group_0__2 ; + public final void rule__QuantifiedExpression__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17380:1: ( rule__QuantifiedExpression__Group_0__1__Impl rule__QuantifiedExpression__Group_0__2 ) + // InternalFiacre.g:17381:2: rule__QuantifiedExpression__Group_0__1__Impl rule__QuantifiedExpression__Group_0__2 + { + pushFollow(FollowSets000.FOLLOW_89); + rule__QuantifiedExpression__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0__1" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0__1__Impl" + // InternalFiacre.g:17388:1: rule__QuantifiedExpression__Group_0__1__Impl : ( ( rule__QuantifiedExpression__IndexAssignment_0_1 ) ) ; + public final void rule__QuantifiedExpression__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17392:1: ( ( ( rule__QuantifiedExpression__IndexAssignment_0_1 ) ) ) + // InternalFiacre.g:17393:1: ( ( rule__QuantifiedExpression__IndexAssignment_0_1 ) ) + { + // InternalFiacre.g:17393:1: ( ( rule__QuantifiedExpression__IndexAssignment_0_1 ) ) + // InternalFiacre.g:17394:2: ( rule__QuantifiedExpression__IndexAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getIndexAssignment_0_1()); + } + // InternalFiacre.g:17395:2: ( rule__QuantifiedExpression__IndexAssignment_0_1 ) + // InternalFiacre.g:17395:3: rule__QuantifiedExpression__IndexAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__IndexAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getIndexAssignment_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0__1__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0__2" + // InternalFiacre.g:17403:1: rule__QuantifiedExpression__Group_0__2 : rule__QuantifiedExpression__Group_0__2__Impl rule__QuantifiedExpression__Group_0__3 ; + public final void rule__QuantifiedExpression__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17407:1: ( rule__QuantifiedExpression__Group_0__2__Impl rule__QuantifiedExpression__Group_0__3 ) + // InternalFiacre.g:17408:2: rule__QuantifiedExpression__Group_0__2__Impl rule__QuantifiedExpression__Group_0__3 + { + pushFollow(FollowSets000.FOLLOW_89); + rule__QuantifiedExpression__Group_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0__2" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0__2__Impl" + // InternalFiacre.g:17415:1: rule__QuantifiedExpression__Group_0__2__Impl : ( ( rule__QuantifiedExpression__Group_0_2__0 )? ) ; + public final void rule__QuantifiedExpression__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17419:1: ( ( ( rule__QuantifiedExpression__Group_0_2__0 )? ) ) + // InternalFiacre.g:17420:1: ( ( rule__QuantifiedExpression__Group_0_2__0 )? ) + { + // InternalFiacre.g:17420:1: ( ( rule__QuantifiedExpression__Group_0_2__0 )? ) + // InternalFiacre.g:17421:2: ( rule__QuantifiedExpression__Group_0_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_2()); + } + // InternalFiacre.g:17422:2: ( rule__QuantifiedExpression__Group_0_2__0 )? + int alt154=2; + int LA154_0 = input.LA(1); + + if ( (LA154_0==49) ) { + alt154=1; + } + switch (alt154) { + case 1 : + // InternalFiacre.g:17422:3: rule__QuantifiedExpression__Group_0_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_0_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getGroup_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0__2__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0__3" + // InternalFiacre.g:17430:1: rule__QuantifiedExpression__Group_0__3 : rule__QuantifiedExpression__Group_0__3__Impl rule__QuantifiedExpression__Group_0__4 ; + public final void rule__QuantifiedExpression__Group_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17434:1: ( rule__QuantifiedExpression__Group_0__3__Impl rule__QuantifiedExpression__Group_0__4 ) + // InternalFiacre.g:17435:2: rule__QuantifiedExpression__Group_0__3__Impl rule__QuantifiedExpression__Group_0__4 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__QuantifiedExpression__Group_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_0__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0__3" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0__3__Impl" + // InternalFiacre.g:17442:1: rule__QuantifiedExpression__Group_0__3__Impl : ( '.' ) ; + public final void rule__QuantifiedExpression__Group_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17446:1: ( ( '.' ) ) + // InternalFiacre.g:17447:1: ( '.' ) + { + // InternalFiacre.g:17447:1: ( '.' ) + // InternalFiacre.g:17448:2: '.' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getFullStopKeyword_0_3()); + } + match(input,61,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getFullStopKeyword_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0__3__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0__4" + // InternalFiacre.g:17457:1: rule__QuantifiedExpression__Group_0__4 : rule__QuantifiedExpression__Group_0__4__Impl ; + public final void rule__QuantifiedExpression__Group_0__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17461:1: ( rule__QuantifiedExpression__Group_0__4__Impl ) + // InternalFiacre.g:17462:2: rule__QuantifiedExpression__Group_0__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_0__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0__4" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0__4__Impl" + // InternalFiacre.g:17468:1: rule__QuantifiedExpression__Group_0__4__Impl : ( ( rule__QuantifiedExpression__ChildAssignment_0_4 ) ) ; + public final void rule__QuantifiedExpression__Group_0__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17472:1: ( ( ( rule__QuantifiedExpression__ChildAssignment_0_4 ) ) ) + // InternalFiacre.g:17473:1: ( ( rule__QuantifiedExpression__ChildAssignment_0_4 ) ) + { + // InternalFiacre.g:17473:1: ( ( rule__QuantifiedExpression__ChildAssignment_0_4 ) ) + // InternalFiacre.g:17474:2: ( rule__QuantifiedExpression__ChildAssignment_0_4 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getChildAssignment_0_4()); + } + // InternalFiacre.g:17475:2: ( rule__QuantifiedExpression__ChildAssignment_0_4 ) + // InternalFiacre.g:17475:3: rule__QuantifiedExpression__ChildAssignment_0_4 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__ChildAssignment_0_4(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getChildAssignment_0_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0__4__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_0_0__0" + // InternalFiacre.g:17484:1: rule__QuantifiedExpression__Group_0_0_0__0 : rule__QuantifiedExpression__Group_0_0_0__0__Impl rule__QuantifiedExpression__Group_0_0_0__1 ; + public final void rule__QuantifiedExpression__Group_0_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17488:1: ( rule__QuantifiedExpression__Group_0_0_0__0__Impl rule__QuantifiedExpression__Group_0_0_0__1 ) + // InternalFiacre.g:17489:2: rule__QuantifiedExpression__Group_0_0_0__0__Impl rule__QuantifiedExpression__Group_0_0_0__1 + { + pushFollow(FollowSets000.FOLLOW_90); + rule__QuantifiedExpression__Group_0_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__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__QuantifiedExpression__Group_0_0_0__0" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_0_0__0__Impl" + // InternalFiacre.g:17496:1: rule__QuantifiedExpression__Group_0_0_0__0__Impl : ( () ) ; + public final void rule__QuantifiedExpression__Group_0_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17500:1: ( ( () ) ) + // InternalFiacre.g:17501:1: ( () ) + { + // InternalFiacre.g:17501:1: ( () ) + // InternalFiacre.g:17502:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getAllExpressionAction_0_0_0_0()); + } + // InternalFiacre.g:17503:2: () + // InternalFiacre.g:17503:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getAllExpressionAction_0_0_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0_0_0__0__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_0_0__1" + // InternalFiacre.g:17511:1: rule__QuantifiedExpression__Group_0_0_0__1 : rule__QuantifiedExpression__Group_0_0_0__1__Impl ; + public final void rule__QuantifiedExpression__Group_0_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17515:1: ( rule__QuantifiedExpression__Group_0_0_0__1__Impl ) + // InternalFiacre.g:17516:2: rule__QuantifiedExpression__Group_0_0_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_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__QuantifiedExpression__Group_0_0_0__1" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_0_0__1__Impl" + // InternalFiacre.g:17522:1: rule__QuantifiedExpression__Group_0_0_0__1__Impl : ( 'all' ) ; + public final void rule__QuantifiedExpression__Group_0_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17526:1: ( ( 'all' ) ) + // InternalFiacre.g:17527:1: ( 'all' ) + { + // InternalFiacre.g:17527:1: ( 'all' ) + // InternalFiacre.g:17528:2: 'all' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getAllKeyword_0_0_0_1()); + } + match(input,77,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getAllKeyword_0_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0_0_0__1__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_0_1__0" + // InternalFiacre.g:17538:1: rule__QuantifiedExpression__Group_0_0_1__0 : rule__QuantifiedExpression__Group_0_0_1__0__Impl rule__QuantifiedExpression__Group_0_0_1__1 ; + public final void rule__QuantifiedExpression__Group_0_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17542:1: ( rule__QuantifiedExpression__Group_0_0_1__0__Impl rule__QuantifiedExpression__Group_0_0_1__1 ) + // InternalFiacre.g:17543:2: rule__QuantifiedExpression__Group_0_0_1__0__Impl rule__QuantifiedExpression__Group_0_0_1__1 + { + pushFollow(FollowSets000.FOLLOW_91); + rule__QuantifiedExpression__Group_0_0_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__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__QuantifiedExpression__Group_0_0_1__0" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_0_1__0__Impl" + // InternalFiacre.g:17550:1: rule__QuantifiedExpression__Group_0_0_1__0__Impl : ( () ) ; + public final void rule__QuantifiedExpression__Group_0_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17554:1: ( ( () ) ) + // InternalFiacre.g:17555:1: ( () ) + { + // InternalFiacre.g:17555:1: ( () ) + // InternalFiacre.g:17556:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getExistsExpressionAction_0_0_1_0()); + } + // InternalFiacre.g:17557:2: () + // InternalFiacre.g:17557:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getExistsExpressionAction_0_0_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0_0_1__0__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_0_1__1" + // InternalFiacre.g:17565:1: rule__QuantifiedExpression__Group_0_0_1__1 : rule__QuantifiedExpression__Group_0_0_1__1__Impl ; + public final void rule__QuantifiedExpression__Group_0_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17569:1: ( rule__QuantifiedExpression__Group_0_0_1__1__Impl ) + // InternalFiacre.g:17570:2: rule__QuantifiedExpression__Group_0_0_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__Group_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__QuantifiedExpression__Group_0_0_1__1" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_0_1__1__Impl" + // InternalFiacre.g:17576:1: rule__QuantifiedExpression__Group_0_0_1__1__Impl : ( 'exists' ) ; + public final void rule__QuantifiedExpression__Group_0_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17580:1: ( ( 'exists' ) ) + // InternalFiacre.g:17581:1: ( 'exists' ) + { + // InternalFiacre.g:17581:1: ( 'exists' ) + // InternalFiacre.g:17582:2: 'exists' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getExistsKeyword_0_0_1_1()); + } + match(input,78,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getExistsKeyword_0_0_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0_0_1__1__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_2__0" + // InternalFiacre.g:17592:1: rule__QuantifiedExpression__Group_0_2__0 : rule__QuantifiedExpression__Group_0_2__0__Impl rule__QuantifiedExpression__Group_0_2__1 ; + public final void rule__QuantifiedExpression__Group_0_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17596:1: ( rule__QuantifiedExpression__Group_0_2__0__Impl rule__QuantifiedExpression__Group_0_2__1 ) + // InternalFiacre.g:17597:2: rule__QuantifiedExpression__Group_0_2__0__Impl rule__QuantifiedExpression__Group_0_2__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__QuantifiedExpression__Group_0_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__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__QuantifiedExpression__Group_0_2__0" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_2__0__Impl" + // InternalFiacre.g:17604:1: rule__QuantifiedExpression__Group_0_2__0__Impl : ( 'in' ) ; + public final void rule__QuantifiedExpression__Group_0_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17608:1: ( ( 'in' ) ) + // InternalFiacre.g:17609:1: ( 'in' ) + { + // InternalFiacre.g:17609:1: ( 'in' ) + // InternalFiacre.g:17610:2: 'in' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getInKeyword_0_2_0()); + } + match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getInKeyword_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0_2__0__Impl" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_2__1" + // InternalFiacre.g:17619:1: rule__QuantifiedExpression__Group_0_2__1 : rule__QuantifiedExpression__Group_0_2__1__Impl ; + public final void rule__QuantifiedExpression__Group_0_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17623:1: ( rule__QuantifiedExpression__Group_0_2__1__Impl ) + // InternalFiacre.g:17624:2: rule__QuantifiedExpression__Group_0_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__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__QuantifiedExpression__Group_0_2__1" + + + // $ANTLR start "rule__QuantifiedExpression__Group_0_2__1__Impl" + // InternalFiacre.g:17630:1: rule__QuantifiedExpression__Group_0_2__1__Impl : ( ( rule__QuantifiedExpression__TypeAssignment_0_2_1 ) ) ; + public final void rule__QuantifiedExpression__Group_0_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17634:1: ( ( ( rule__QuantifiedExpression__TypeAssignment_0_2_1 ) ) ) + // InternalFiacre.g:17635:1: ( ( rule__QuantifiedExpression__TypeAssignment_0_2_1 ) ) + { + // InternalFiacre.g:17635:1: ( ( rule__QuantifiedExpression__TypeAssignment_0_2_1 ) ) + // InternalFiacre.g:17636:2: ( rule__QuantifiedExpression__TypeAssignment_0_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getTypeAssignment_0_2_1()); + } + // InternalFiacre.g:17637:2: ( rule__QuantifiedExpression__TypeAssignment_0_2_1 ) + // InternalFiacre.g:17637:3: rule__QuantifiedExpression__TypeAssignment_0_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedExpression__TypeAssignment_0_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getTypeAssignment_0_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__Group_0_2__1__Impl" + + + // $ANTLR start "rule__Conditional__Group__0" + // InternalFiacre.g:17646:1: rule__Conditional__Group__0 : rule__Conditional__Group__0__Impl rule__Conditional__Group__1 ; + public final void rule__Conditional__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17650:1: ( rule__Conditional__Group__0__Impl rule__Conditional__Group__1 ) + // InternalFiacre.g:17651:2: rule__Conditional__Group__0__Impl rule__Conditional__Group__1 + { + pushFollow(FollowSets000.FOLLOW_92); + rule__Conditional__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group__0" + + + // $ANTLR start "rule__Conditional__Group__0__Impl" + // InternalFiacre.g:17658:1: rule__Conditional__Group__0__Impl : ( ruleDisjunction ) ; + public final void rule__Conditional__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17662:1: ( ( ruleDisjunction ) ) + // InternalFiacre.g:17663:1: ( ruleDisjunction ) + { + // InternalFiacre.g:17663:1: ( ruleDisjunction ) + // InternalFiacre.g:17664:2: ruleDisjunction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalAccess().getDisjunctionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleDisjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalAccess().getDisjunctionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group__0__Impl" + + + // $ANTLR start "rule__Conditional__Group__1" + // InternalFiacre.g:17673:1: rule__Conditional__Group__1 : rule__Conditional__Group__1__Impl ; + public final void rule__Conditional__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17677:1: ( rule__Conditional__Group__1__Impl ) + // InternalFiacre.g:17678:2: rule__Conditional__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group__1" + + + // $ANTLR start "rule__Conditional__Group__1__Impl" + // InternalFiacre.g:17684:1: rule__Conditional__Group__1__Impl : ( ( rule__Conditional__Group_1__0 )? ) ; + public final void rule__Conditional__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17688:1: ( ( ( rule__Conditional__Group_1__0 )? ) ) + // InternalFiacre.g:17689:1: ( ( rule__Conditional__Group_1__0 )? ) + { + // InternalFiacre.g:17689:1: ( ( rule__Conditional__Group_1__0 )? ) + // InternalFiacre.g:17690:2: ( rule__Conditional__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalAccess().getGroup_1()); + } + // InternalFiacre.g:17691:2: ( rule__Conditional__Group_1__0 )? + int alt155=2; + int LA155_0 = input.LA(1); + + if ( (LA155_0==60) ) { + alt155=1; + } + switch (alt155) { + case 1 : + // InternalFiacre.g:17691:3: rule__Conditional__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group__1__Impl" + + + // $ANTLR start "rule__Conditional__Group_1__0" + // InternalFiacre.g:17700:1: rule__Conditional__Group_1__0 : rule__Conditional__Group_1__0__Impl rule__Conditional__Group_1__1 ; + public final void rule__Conditional__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17704:1: ( rule__Conditional__Group_1__0__Impl rule__Conditional__Group_1__1 ) + // InternalFiacre.g:17705:2: rule__Conditional__Group_1__0__Impl rule__Conditional__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Conditional__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group_1__0" + + + // $ANTLR start "rule__Conditional__Group_1__0__Impl" + // InternalFiacre.g:17712:1: rule__Conditional__Group_1__0__Impl : ( '?' ) ; + public final void rule__Conditional__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17716:1: ( ( '?' ) ) + // InternalFiacre.g:17717:1: ( '?' ) + { + // InternalFiacre.g:17717:1: ( '?' ) + // InternalFiacre.g:17718:2: '?' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalAccess().getQuestionMarkKeyword_1_0()); + } + match(input,60,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalAccess().getQuestionMarkKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group_1__0__Impl" + + + // $ANTLR start "rule__Conditional__Group_1__1" + // InternalFiacre.g:17727:1: rule__Conditional__Group_1__1 : rule__Conditional__Group_1__1__Impl rule__Conditional__Group_1__2 ; + public final void rule__Conditional__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17731:1: ( rule__Conditional__Group_1__1__Impl rule__Conditional__Group_1__2 ) + // InternalFiacre.g:17732:2: rule__Conditional__Group_1__1__Impl rule__Conditional__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Conditional__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group_1__1" + + + // $ANTLR start "rule__Conditional__Group_1__1__Impl" + // InternalFiacre.g:17739:1: rule__Conditional__Group_1__1__Impl : ( () ) ; + public final void rule__Conditional__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17743:1: ( ( () ) ) + // InternalFiacre.g:17744:1: ( () ) + { + // InternalFiacre.g:17744:1: ( () ) + // InternalFiacre.g:17745:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalAccess().getConditionalConditionAction_1_1()); + } + // InternalFiacre.g:17746:2: () + // InternalFiacre.g:17746:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalAccess().getConditionalConditionAction_1_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group_1__1__Impl" + + + // $ANTLR start "rule__Conditional__Group_1__2" + // InternalFiacre.g:17754:1: rule__Conditional__Group_1__2 : rule__Conditional__Group_1__2__Impl rule__Conditional__Group_1__3 ; + public final void rule__Conditional__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17758:1: ( rule__Conditional__Group_1__2__Impl rule__Conditional__Group_1__3 ) + // InternalFiacre.g:17759:2: rule__Conditional__Group_1__2__Impl rule__Conditional__Group_1__3 + { + pushFollow(FollowSets000.FOLLOW_14); + rule__Conditional__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__Group_1__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group_1__2" + + + // $ANTLR start "rule__Conditional__Group_1__2__Impl" + // InternalFiacre.g:17766:1: rule__Conditional__Group_1__2__Impl : ( ( rule__Conditional__ThenAssignment_1_2 ) ) ; + public final void rule__Conditional__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17770:1: ( ( ( rule__Conditional__ThenAssignment_1_2 ) ) ) + // InternalFiacre.g:17771:1: ( ( rule__Conditional__ThenAssignment_1_2 ) ) + { + // InternalFiacre.g:17771:1: ( ( rule__Conditional__ThenAssignment_1_2 ) ) + // InternalFiacre.g:17772:2: ( rule__Conditional__ThenAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalAccess().getThenAssignment_1_2()); + } + // InternalFiacre.g:17773:2: ( rule__Conditional__ThenAssignment_1_2 ) + // InternalFiacre.g:17773:3: rule__Conditional__ThenAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__ThenAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalAccess().getThenAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group_1__2__Impl" + + + // $ANTLR start "rule__Conditional__Group_1__3" + // InternalFiacre.g:17781:1: rule__Conditional__Group_1__3 : rule__Conditional__Group_1__3__Impl rule__Conditional__Group_1__4 ; + public final void rule__Conditional__Group_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17785:1: ( rule__Conditional__Group_1__3__Impl rule__Conditional__Group_1__4 ) + // InternalFiacre.g:17786:2: rule__Conditional__Group_1__3__Impl rule__Conditional__Group_1__4 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Conditional__Group_1__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__Group_1__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group_1__3" + + + // $ANTLR start "rule__Conditional__Group_1__3__Impl" + // InternalFiacre.g:17793:1: rule__Conditional__Group_1__3__Impl : ( ':' ) ; + public final void rule__Conditional__Group_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17797:1: ( ( ':' ) ) + // InternalFiacre.g:17798:1: ( ':' ) + { + // InternalFiacre.g:17798:1: ( ':' ) + // InternalFiacre.g:17799:2: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalAccess().getColonKeyword_1_3()); + } + match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalAccess().getColonKeyword_1_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group_1__3__Impl" + + + // $ANTLR start "rule__Conditional__Group_1__4" + // InternalFiacre.g:17808:1: rule__Conditional__Group_1__4 : rule__Conditional__Group_1__4__Impl ; + public final void rule__Conditional__Group_1__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17812:1: ( rule__Conditional__Group_1__4__Impl ) + // InternalFiacre.g:17813:2: rule__Conditional__Group_1__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__Group_1__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group_1__4" + + + // $ANTLR start "rule__Conditional__Group_1__4__Impl" + // InternalFiacre.g:17819:1: rule__Conditional__Group_1__4__Impl : ( ( rule__Conditional__ElseAssignment_1_4 ) ) ; + public final void rule__Conditional__Group_1__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17823:1: ( ( ( rule__Conditional__ElseAssignment_1_4 ) ) ) + // InternalFiacre.g:17824:1: ( ( rule__Conditional__ElseAssignment_1_4 ) ) + { + // InternalFiacre.g:17824:1: ( ( rule__Conditional__ElseAssignment_1_4 ) ) + // InternalFiacre.g:17825:2: ( rule__Conditional__ElseAssignment_1_4 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalAccess().getElseAssignment_1_4()); + } + // InternalFiacre.g:17826:2: ( rule__Conditional__ElseAssignment_1_4 ) + // InternalFiacre.g:17826:3: rule__Conditional__ElseAssignment_1_4 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Conditional__ElseAssignment_1_4(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalAccess().getElseAssignment_1_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__Group_1__4__Impl" + + + // $ANTLR start "rule__Disjunction__Group__0" + // InternalFiacre.g:17835:1: rule__Disjunction__Group__0 : rule__Disjunction__Group__0__Impl rule__Disjunction__Group__1 ; + public final void rule__Disjunction__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17839:1: ( rule__Disjunction__Group__0__Impl rule__Disjunction__Group__1 ) + // InternalFiacre.g:17840:2: rule__Disjunction__Group__0__Impl rule__Disjunction__Group__1 + { + pushFollow(FollowSets000.FOLLOW_93); + rule__Disjunction__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Disjunction__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Disjunction__Group__0" + + + // $ANTLR start "rule__Disjunction__Group__0__Impl" + // InternalFiacre.g:17847:1: rule__Disjunction__Group__0__Impl : ( ruleImplication ) ; + public final void rule__Disjunction__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17851:1: ( ( ruleImplication ) ) + // InternalFiacre.g:17852:1: ( ruleImplication ) + { + // InternalFiacre.g:17852:1: ( ruleImplication ) + // InternalFiacre.g:17853:2: ruleImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDisjunctionAccess().getImplicationParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDisjunctionAccess().getImplicationParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Disjunction__Group__0__Impl" + + + // $ANTLR start "rule__Disjunction__Group__1" + // InternalFiacre.g:17862:1: rule__Disjunction__Group__1 : rule__Disjunction__Group__1__Impl ; + public final void rule__Disjunction__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17866:1: ( rule__Disjunction__Group__1__Impl ) + // InternalFiacre.g:17867:2: rule__Disjunction__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Disjunction__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Disjunction__Group__1" + + + // $ANTLR start "rule__Disjunction__Group__1__Impl" + // InternalFiacre.g:17873:1: rule__Disjunction__Group__1__Impl : ( ( rule__Disjunction__Group_1__0 )* ) ; + public final void rule__Disjunction__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17877:1: ( ( ( rule__Disjunction__Group_1__0 )* ) ) + // InternalFiacre.g:17878:1: ( ( rule__Disjunction__Group_1__0 )* ) + { + // InternalFiacre.g:17878:1: ( ( rule__Disjunction__Group_1__0 )* ) + // InternalFiacre.g:17879:2: ( rule__Disjunction__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDisjunctionAccess().getGroup_1()); + } + // InternalFiacre.g:17880:2: ( rule__Disjunction__Group_1__0 )* + loop156: + do { + int alt156=2; + int LA156_0 = input.LA(1); + + if ( (LA156_0==79) ) { + alt156=1; + } + + + switch (alt156) { + case 1 : + // InternalFiacre.g:17880:3: rule__Disjunction__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_94); + rule__Disjunction__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop156; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getDisjunctionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Disjunction__Group__1__Impl" + + + // $ANTLR start "rule__Disjunction__Group_1__0" + // InternalFiacre.g:17889:1: rule__Disjunction__Group_1__0 : rule__Disjunction__Group_1__0__Impl rule__Disjunction__Group_1__1 ; + public final void rule__Disjunction__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17893:1: ( rule__Disjunction__Group_1__0__Impl rule__Disjunction__Group_1__1 ) + // InternalFiacre.g:17894:2: rule__Disjunction__Group_1__0__Impl rule__Disjunction__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_93); + rule__Disjunction__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Disjunction__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Disjunction__Group_1__0" + + + // $ANTLR start "rule__Disjunction__Group_1__0__Impl" + // InternalFiacre.g:17901:1: rule__Disjunction__Group_1__0__Impl : ( () ) ; + public final void rule__Disjunction__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17905:1: ( ( () ) ) + // InternalFiacre.g:17906:1: ( () ) + { + // InternalFiacre.g:17906:1: ( () ) + // InternalFiacre.g:17907:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDisjunctionAccess().getDisjunctionLeftAction_1_0()); + } + // InternalFiacre.g:17908:2: () + // InternalFiacre.g:17908:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDisjunctionAccess().getDisjunctionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Disjunction__Group_1__0__Impl" + + + // $ANTLR start "rule__Disjunction__Group_1__1" + // InternalFiacre.g:17916:1: rule__Disjunction__Group_1__1 : rule__Disjunction__Group_1__1__Impl rule__Disjunction__Group_1__2 ; + public final void rule__Disjunction__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17920:1: ( rule__Disjunction__Group_1__1__Impl rule__Disjunction__Group_1__2 ) + // InternalFiacre.g:17921:2: rule__Disjunction__Group_1__1__Impl rule__Disjunction__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Disjunction__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Disjunction__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Disjunction__Group_1__1" + + + // $ANTLR start "rule__Disjunction__Group_1__1__Impl" + // InternalFiacre.g:17928:1: rule__Disjunction__Group_1__1__Impl : ( 'or' ) ; + public final void rule__Disjunction__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17932:1: ( ( 'or' ) ) + // InternalFiacre.g:17933:1: ( 'or' ) + { + // InternalFiacre.g:17933:1: ( 'or' ) + // InternalFiacre.g:17934:2: 'or' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDisjunctionAccess().getOrKeyword_1_1()); + } + match(input,79,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDisjunctionAccess().getOrKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Disjunction__Group_1__1__Impl" + + + // $ANTLR start "rule__Disjunction__Group_1__2" + // InternalFiacre.g:17943:1: rule__Disjunction__Group_1__2 : rule__Disjunction__Group_1__2__Impl ; + public final void rule__Disjunction__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17947:1: ( rule__Disjunction__Group_1__2__Impl ) + // InternalFiacre.g:17948:2: rule__Disjunction__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Disjunction__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__Disjunction__Group_1__2" + + + // $ANTLR start "rule__Disjunction__Group_1__2__Impl" + // InternalFiacre.g:17954:1: rule__Disjunction__Group_1__2__Impl : ( ( rule__Disjunction__RightAssignment_1_2 ) ) ; + public final void rule__Disjunction__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17958:1: ( ( ( rule__Disjunction__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:17959:1: ( ( rule__Disjunction__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:17959:1: ( ( rule__Disjunction__RightAssignment_1_2 ) ) + // InternalFiacre.g:17960:2: ( rule__Disjunction__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDisjunctionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:17961:2: ( rule__Disjunction__RightAssignment_1_2 ) + // InternalFiacre.g:17961:3: rule__Disjunction__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Disjunction__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDisjunctionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Disjunction__Group_1__2__Impl" + + + // $ANTLR start "rule__Implication__Group__0" + // InternalFiacre.g:17970:1: rule__Implication__Group__0 : rule__Implication__Group__0__Impl rule__Implication__Group__1 ; + public final void rule__Implication__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17974:1: ( rule__Implication__Group__0__Impl rule__Implication__Group__1 ) + // InternalFiacre.g:17975:2: rule__Implication__Group__0__Impl rule__Implication__Group__1 + { + pushFollow(FollowSets000.FOLLOW_95); + rule__Implication__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Implication__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Implication__Group__0" + + + // $ANTLR start "rule__Implication__Group__0__Impl" + // InternalFiacre.g:17982:1: rule__Implication__Group__0__Impl : ( ruleConjunction ) ; + public final void rule__Implication__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:17986:1: ( ( ruleConjunction ) ) + // InternalFiacre.g:17987:1: ( ruleConjunction ) + { + // InternalFiacre.g:17987:1: ( ruleConjunction ) + // InternalFiacre.g:17988:2: ruleConjunction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImplicationAccess().getConjunctionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleConjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getImplicationAccess().getConjunctionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Implication__Group__0__Impl" + + + // $ANTLR start "rule__Implication__Group__1" + // InternalFiacre.g:17997:1: rule__Implication__Group__1 : rule__Implication__Group__1__Impl ; + public final void rule__Implication__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18001:1: ( rule__Implication__Group__1__Impl ) + // InternalFiacre.g:18002:2: rule__Implication__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Implication__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Implication__Group__1" + + + // $ANTLR start "rule__Implication__Group__1__Impl" + // InternalFiacre.g:18008:1: rule__Implication__Group__1__Impl : ( ( rule__Implication__Group_1__0 )? ) ; + public final void rule__Implication__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18012:1: ( ( ( rule__Implication__Group_1__0 )? ) ) + // InternalFiacre.g:18013:1: ( ( rule__Implication__Group_1__0 )? ) + { + // InternalFiacre.g:18013:1: ( ( rule__Implication__Group_1__0 )? ) + // InternalFiacre.g:18014:2: ( rule__Implication__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImplicationAccess().getGroup_1()); + } + // InternalFiacre.g:18015:2: ( rule__Implication__Group_1__0 )? + int alt157=2; + int LA157_0 = input.LA(1); + + if ( (LA157_0==80) ) { + alt157=1; + } + switch (alt157) { + case 1 : + // InternalFiacre.g:18015:3: rule__Implication__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Implication__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getImplicationAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Implication__Group__1__Impl" + + + // $ANTLR start "rule__Implication__Group_1__0" + // InternalFiacre.g:18024:1: rule__Implication__Group_1__0 : rule__Implication__Group_1__0__Impl rule__Implication__Group_1__1 ; + public final void rule__Implication__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18028:1: ( rule__Implication__Group_1__0__Impl rule__Implication__Group_1__1 ) + // InternalFiacre.g:18029:2: rule__Implication__Group_1__0__Impl rule__Implication__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_95); + rule__Implication__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Implication__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Implication__Group_1__0" + + + // $ANTLR start "rule__Implication__Group_1__0__Impl" + // InternalFiacre.g:18036:1: rule__Implication__Group_1__0__Impl : ( () ) ; + public final void rule__Implication__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18040:1: ( ( () ) ) + // InternalFiacre.g:18041:1: ( () ) + { + // InternalFiacre.g:18041:1: ( () ) + // InternalFiacre.g:18042:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImplicationAccess().getImplicationLeftAction_1_0()); + } + // InternalFiacre.g:18043:2: () + // InternalFiacre.g:18043:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getImplicationAccess().getImplicationLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Implication__Group_1__0__Impl" + + + // $ANTLR start "rule__Implication__Group_1__1" + // InternalFiacre.g:18051:1: rule__Implication__Group_1__1 : rule__Implication__Group_1__1__Impl rule__Implication__Group_1__2 ; + public final void rule__Implication__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18055:1: ( rule__Implication__Group_1__1__Impl rule__Implication__Group_1__2 ) + // InternalFiacre.g:18056:2: rule__Implication__Group_1__1__Impl rule__Implication__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Implication__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Implication__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Implication__Group_1__1" + + + // $ANTLR start "rule__Implication__Group_1__1__Impl" + // InternalFiacre.g:18063:1: rule__Implication__Group_1__1__Impl : ( '=>' ) ; + public final void rule__Implication__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18067:1: ( ( '=>' ) ) + // InternalFiacre.g:18068:1: ( '=>' ) + { + // InternalFiacre.g:18068:1: ( '=>' ) + // InternalFiacre.g:18069:2: '=>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Implication__Group_1__1__Impl" + + + // $ANTLR start "rule__Implication__Group_1__2" + // InternalFiacre.g:18078:1: rule__Implication__Group_1__2 : rule__Implication__Group_1__2__Impl ; + public final void rule__Implication__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18082:1: ( rule__Implication__Group_1__2__Impl ) + // InternalFiacre.g:18083:2: rule__Implication__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Implication__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__Implication__Group_1__2" + + + // $ANTLR start "rule__Implication__Group_1__2__Impl" + // InternalFiacre.g:18089:1: rule__Implication__Group_1__2__Impl : ( ( rule__Implication__RightAssignment_1_2 ) ) ; + public final void rule__Implication__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18093:1: ( ( ( rule__Implication__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:18094:1: ( ( rule__Implication__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:18094:1: ( ( rule__Implication__RightAssignment_1_2 ) ) + // InternalFiacre.g:18095:2: ( rule__Implication__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImplicationAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:18096:2: ( rule__Implication__RightAssignment_1_2 ) + // InternalFiacre.g:18096:3: rule__Implication__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Implication__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getImplicationAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Implication__Group_1__2__Impl" + + + // $ANTLR start "rule__Conjunction__Group__0" + // InternalFiacre.g:18105:1: rule__Conjunction__Group__0 : rule__Conjunction__Group__0__Impl rule__Conjunction__Group__1 ; + public final void rule__Conjunction__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18109:1: ( rule__Conjunction__Group__0__Impl rule__Conjunction__Group__1 ) + // InternalFiacre.g:18110:2: rule__Conjunction__Group__0__Impl rule__Conjunction__Group__1 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__Conjunction__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Conjunction__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conjunction__Group__0" + + + // $ANTLR start "rule__Conjunction__Group__0__Impl" + // InternalFiacre.g:18117:1: rule__Conjunction__Group__0__Impl : ( ruleComparison ) ; + public final void rule__Conjunction__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18121:1: ( ( ruleComparison ) ) + // InternalFiacre.g:18122:1: ( ruleComparison ) + { + // InternalFiacre.g:18122:1: ( ruleComparison ) + // InternalFiacre.g:18123:2: ruleComparison + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConjunctionAccess().getComparisonParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleComparison(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConjunctionAccess().getComparisonParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conjunction__Group__0__Impl" + + + // $ANTLR start "rule__Conjunction__Group__1" + // InternalFiacre.g:18132:1: rule__Conjunction__Group__1 : rule__Conjunction__Group__1__Impl ; + public final void rule__Conjunction__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18136:1: ( rule__Conjunction__Group__1__Impl ) + // InternalFiacre.g:18137:2: rule__Conjunction__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Conjunction__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conjunction__Group__1" + + + // $ANTLR start "rule__Conjunction__Group__1__Impl" + // InternalFiacre.g:18143:1: rule__Conjunction__Group__1__Impl : ( ( rule__Conjunction__Group_1__0 )* ) ; + public final void rule__Conjunction__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18147:1: ( ( ( rule__Conjunction__Group_1__0 )* ) ) + // InternalFiacre.g:18148:1: ( ( rule__Conjunction__Group_1__0 )* ) + { + // InternalFiacre.g:18148:1: ( ( rule__Conjunction__Group_1__0 )* ) + // InternalFiacre.g:18149:2: ( rule__Conjunction__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConjunctionAccess().getGroup_1()); + } + // InternalFiacre.g:18150:2: ( rule__Conjunction__Group_1__0 )* + loop158: + do { + int alt158=2; + int LA158_0 = input.LA(1); + + if ( (LA158_0==81) ) { + alt158=1; + } + + + switch (alt158) { + case 1 : + // InternalFiacre.g:18150:3: rule__Conjunction__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_97); + rule__Conjunction__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop158; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getConjunctionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conjunction__Group__1__Impl" + + + // $ANTLR start "rule__Conjunction__Group_1__0" + // InternalFiacre.g:18159:1: rule__Conjunction__Group_1__0 : rule__Conjunction__Group_1__0__Impl rule__Conjunction__Group_1__1 ; + public final void rule__Conjunction__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18163:1: ( rule__Conjunction__Group_1__0__Impl rule__Conjunction__Group_1__1 ) + // InternalFiacre.g:18164:2: rule__Conjunction__Group_1__0__Impl rule__Conjunction__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__Conjunction__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Conjunction__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conjunction__Group_1__0" + + + // $ANTLR start "rule__Conjunction__Group_1__0__Impl" + // InternalFiacre.g:18171:1: rule__Conjunction__Group_1__0__Impl : ( () ) ; + public final void rule__Conjunction__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18175:1: ( ( () ) ) + // InternalFiacre.g:18176:1: ( () ) + { + // InternalFiacre.g:18176:1: ( () ) + // InternalFiacre.g:18177:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConjunctionAccess().getConjunctionLeftAction_1_0()); + } + // InternalFiacre.g:18178:2: () + // InternalFiacre.g:18178:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConjunctionAccess().getConjunctionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conjunction__Group_1__0__Impl" + + + // $ANTLR start "rule__Conjunction__Group_1__1" + // InternalFiacre.g:18186:1: rule__Conjunction__Group_1__1 : rule__Conjunction__Group_1__1__Impl rule__Conjunction__Group_1__2 ; + public final void rule__Conjunction__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18190:1: ( rule__Conjunction__Group_1__1__Impl rule__Conjunction__Group_1__2 ) + // InternalFiacre.g:18191:2: rule__Conjunction__Group_1__1__Impl rule__Conjunction__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Conjunction__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Conjunction__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conjunction__Group_1__1" + + + // $ANTLR start "rule__Conjunction__Group_1__1__Impl" + // InternalFiacre.g:18198:1: rule__Conjunction__Group_1__1__Impl : ( 'and' ) ; + public final void rule__Conjunction__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18202:1: ( ( 'and' ) ) + // InternalFiacre.g:18203:1: ( 'and' ) + { + // InternalFiacre.g:18203:1: ( 'and' ) + // InternalFiacre.g:18204:2: 'and' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConjunctionAccess().getAndKeyword_1_1()); + } + match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConjunctionAccess().getAndKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conjunction__Group_1__1__Impl" + + + // $ANTLR start "rule__Conjunction__Group_1__2" + // InternalFiacre.g:18213:1: rule__Conjunction__Group_1__2 : rule__Conjunction__Group_1__2__Impl ; + public final void rule__Conjunction__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18217:1: ( rule__Conjunction__Group_1__2__Impl ) + // InternalFiacre.g:18218:2: rule__Conjunction__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Conjunction__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__Conjunction__Group_1__2" + + + // $ANTLR start "rule__Conjunction__Group_1__2__Impl" + // InternalFiacre.g:18224:1: rule__Conjunction__Group_1__2__Impl : ( ( rule__Conjunction__RightAssignment_1_2 ) ) ; + public final void rule__Conjunction__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18228:1: ( ( ( rule__Conjunction__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:18229:1: ( ( rule__Conjunction__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:18229:1: ( ( rule__Conjunction__RightAssignment_1_2 ) ) + // InternalFiacre.g:18230:2: ( rule__Conjunction__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConjunctionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:18231:2: ( rule__Conjunction__RightAssignment_1_2 ) + // InternalFiacre.g:18231:3: rule__Conjunction__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Conjunction__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getConjunctionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conjunction__Group_1__2__Impl" + + + // $ANTLR start "rule__Comparison__Group__0" + // InternalFiacre.g:18240:1: rule__Comparison__Group__0 : rule__Comparison__Group__0__Impl rule__Comparison__Group__1 ; + public final void rule__Comparison__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18244:1: ( rule__Comparison__Group__0__Impl rule__Comparison__Group__1 ) + // InternalFiacre.g:18245:2: rule__Comparison__Group__0__Impl rule__Comparison__Group__1 + { + pushFollow(FollowSets000.FOLLOW_98); + rule__Comparison__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group__0" + + + // $ANTLR start "rule__Comparison__Group__0__Impl" + // InternalFiacre.g:18252:1: rule__Comparison__Group__0__Impl : ( ruleAddition ) ; + public final void rule__Comparison__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18256:1: ( ( ruleAddition ) ) + // InternalFiacre.g:18257:1: ( ruleAddition ) + { + // InternalFiacre.g:18257:1: ( ruleAddition ) + // InternalFiacre.g:18258:2: ruleAddition + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getAdditionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAddition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getAdditionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group__0__Impl" + + + // $ANTLR start "rule__Comparison__Group__1" + // InternalFiacre.g:18267:1: rule__Comparison__Group__1 : rule__Comparison__Group__1__Impl ; + public final void rule__Comparison__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18271:1: ( rule__Comparison__Group__1__Impl ) + // InternalFiacre.g:18272:2: rule__Comparison__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group__1" + + + // $ANTLR start "rule__Comparison__Group__1__Impl" + // InternalFiacre.g:18278:1: rule__Comparison__Group__1__Impl : ( ( rule__Comparison__Group_1__0 )? ) ; + public final void rule__Comparison__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18282:1: ( ( ( rule__Comparison__Group_1__0 )? ) ) + // InternalFiacre.g:18283:1: ( ( rule__Comparison__Group_1__0 )? ) + { + // InternalFiacre.g:18283:1: ( ( rule__Comparison__Group_1__0 )? ) + // InternalFiacre.g:18284:2: ( rule__Comparison__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getGroup_1()); + } + // InternalFiacre.g:18285:2: ( rule__Comparison__Group_1__0 )? + int alt159=2; + int LA159_0 = input.LA(1); + + if ( (LA159_0==16||(LA159_0>=82 && LA159_0<=86)) ) { + alt159=1; + } + switch (alt159) { + case 1 : + // InternalFiacre.g:18285:3: rule__Comparison__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group__1__Impl" + + + // $ANTLR start "rule__Comparison__Group_1__0" + // InternalFiacre.g:18294:1: rule__Comparison__Group_1__0 : rule__Comparison__Group_1__0__Impl rule__Comparison__Group_1__1 ; + public final void rule__Comparison__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18298:1: ( rule__Comparison__Group_1__0__Impl rule__Comparison__Group_1__1 ) + // InternalFiacre.g:18299:2: rule__Comparison__Group_1__0__Impl rule__Comparison__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Comparison__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1__0" + + + // $ANTLR start "rule__Comparison__Group_1__0__Impl" + // InternalFiacre.g:18306:1: rule__Comparison__Group_1__0__Impl : ( ( rule__Comparison__Alternatives_1_0 ) ) ; + public final void rule__Comparison__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18310:1: ( ( ( rule__Comparison__Alternatives_1_0 ) ) ) + // InternalFiacre.g:18311:1: ( ( rule__Comparison__Alternatives_1_0 ) ) + { + // InternalFiacre.g:18311:1: ( ( rule__Comparison__Alternatives_1_0 ) ) + // InternalFiacre.g:18312:2: ( rule__Comparison__Alternatives_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getAlternatives_1_0()); + } + // InternalFiacre.g:18313:2: ( rule__Comparison__Alternatives_1_0 ) + // InternalFiacre.g:18313:3: rule__Comparison__Alternatives_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Alternatives_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getAlternatives_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1__0__Impl" + + + // $ANTLR start "rule__Comparison__Group_1__1" + // InternalFiacre.g:18321:1: rule__Comparison__Group_1__1 : rule__Comparison__Group_1__1__Impl ; + public final void rule__Comparison__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18325:1: ( rule__Comparison__Group_1__1__Impl ) + // InternalFiacre.g:18326:2: rule__Comparison__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__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__Comparison__Group_1__1" + + + // $ANTLR start "rule__Comparison__Group_1__1__Impl" + // InternalFiacre.g:18332:1: rule__Comparison__Group_1__1__Impl : ( ( rule__Comparison__RightAssignment_1_1 ) ) ; + public final void rule__Comparison__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18336:1: ( ( ( rule__Comparison__RightAssignment_1_1 ) ) ) + // InternalFiacre.g:18337:1: ( ( rule__Comparison__RightAssignment_1_1 ) ) + { + // InternalFiacre.g:18337:1: ( ( rule__Comparison__RightAssignment_1_1 ) ) + // InternalFiacre.g:18338:2: ( rule__Comparison__RightAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getRightAssignment_1_1()); + } + // InternalFiacre.g:18339:2: ( rule__Comparison__RightAssignment_1_1 ) + // InternalFiacre.g:18339:3: rule__Comparison__RightAssignment_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__RightAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getRightAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1__1__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_0__0" + // InternalFiacre.g:18348:1: rule__Comparison__Group_1_0_0__0 : rule__Comparison__Group_1_0_0__0__Impl rule__Comparison__Group_1_0_0__1 ; + public final void rule__Comparison__Group_1_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18352:1: ( rule__Comparison__Group_1_0_0__0__Impl rule__Comparison__Group_1_0_0__1 ) + // InternalFiacre.g:18353:2: rule__Comparison__Group_1_0_0__0__Impl rule__Comparison__Group_1_0_0__1 + { + pushFollow(FollowSets000.FOLLOW_99); + rule__Comparison__Group_1_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__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__Comparison__Group_1_0_0__0" + + + // $ANTLR start "rule__Comparison__Group_1_0_0__0__Impl" + // InternalFiacre.g:18360:1: rule__Comparison__Group_1_0_0__0__Impl : ( () ) ; + public final void rule__Comparison__Group_1_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18364:1: ( ( () ) ) + // InternalFiacre.g:18365:1: ( () ) + { + // InternalFiacre.g:18365:1: ( () ) + // InternalFiacre.g:18366:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getComparisonEqualLeftAction_1_0_0_0()); + } + // InternalFiacre.g:18367:2: () + // InternalFiacre.g:18367:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getComparisonEqualLeftAction_1_0_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_0__0__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_0__1" + // InternalFiacre.g:18375:1: rule__Comparison__Group_1_0_0__1 : rule__Comparison__Group_1_0_0__1__Impl ; + public final void rule__Comparison__Group_1_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18379:1: ( rule__Comparison__Group_1_0_0__1__Impl ) + // InternalFiacre.g:18380:2: rule__Comparison__Group_1_0_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__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__Comparison__Group_1_0_0__1" + + + // $ANTLR start "rule__Comparison__Group_1_0_0__1__Impl" + // InternalFiacre.g:18386:1: rule__Comparison__Group_1_0_0__1__Impl : ( '=' ) ; + public final void rule__Comparison__Group_1_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18390:1: ( ( '=' ) ) + // InternalFiacre.g:18391:1: ( '=' ) + { + // InternalFiacre.g:18391:1: ( '=' ) + // InternalFiacre.g:18392:2: '=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getEqualsSignKeyword_1_0_0_1()); + } + match(input,82,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getEqualsSignKeyword_1_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_0__1__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_1__0" + // InternalFiacre.g:18402:1: rule__Comparison__Group_1_0_1__0 : rule__Comparison__Group_1_0_1__0__Impl rule__Comparison__Group_1_0_1__1 ; + public final void rule__Comparison__Group_1_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18406:1: ( rule__Comparison__Group_1_0_1__0__Impl rule__Comparison__Group_1_0_1__1 ) + // InternalFiacre.g:18407:2: rule__Comparison__Group_1_0_1__0__Impl rule__Comparison__Group_1_0_1__1 + { + pushFollow(FollowSets000.FOLLOW_100); + rule__Comparison__Group_1_0_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_1__0" + + + // $ANTLR start "rule__Comparison__Group_1_0_1__0__Impl" + // InternalFiacre.g:18414:1: rule__Comparison__Group_1_0_1__0__Impl : ( () ) ; + public final void rule__Comparison__Group_1_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18418:1: ( ( () ) ) + // InternalFiacre.g:18419:1: ( () ) + { + // InternalFiacre.g:18419:1: ( () ) + // InternalFiacre.g:18420:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getComparisonNotEqualLeftAction_1_0_1_0()); + } + // InternalFiacre.g:18421:2: () + // InternalFiacre.g:18421:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getComparisonNotEqualLeftAction_1_0_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_1__0__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_1__1" + // InternalFiacre.g:18429:1: rule__Comparison__Group_1_0_1__1 : rule__Comparison__Group_1_0_1__1__Impl ; + public final void rule__Comparison__Group_1_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18433:1: ( rule__Comparison__Group_1_0_1__1__Impl ) + // InternalFiacre.g:18434:2: rule__Comparison__Group_1_0_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_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__Comparison__Group_1_0_1__1" + + + // $ANTLR start "rule__Comparison__Group_1_0_1__1__Impl" + // InternalFiacre.g:18440:1: rule__Comparison__Group_1_0_1__1__Impl : ( '<>' ) ; + public final void rule__Comparison__Group_1_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18444:1: ( ( '<>' ) ) + // InternalFiacre.g:18445:1: ( '<>' ) + { + // InternalFiacre.g:18445:1: ( '<>' ) + // InternalFiacre.g:18446:2: '<>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getLessThanSignGreaterThanSignKeyword_1_0_1_1()); + } + match(input,83,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getLessThanSignGreaterThanSignKeyword_1_0_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_1__1__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_2__0" + // InternalFiacre.g:18456:1: rule__Comparison__Group_1_0_2__0 : rule__Comparison__Group_1_0_2__0__Impl rule__Comparison__Group_1_0_2__1 ; + public final void rule__Comparison__Group_1_0_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18460:1: ( rule__Comparison__Group_1_0_2__0__Impl rule__Comparison__Group_1_0_2__1 ) + // InternalFiacre.g:18461:2: rule__Comparison__Group_1_0_2__0__Impl rule__Comparison__Group_1_0_2__1 + { + pushFollow(FollowSets000.FOLLOW_101); + rule__Comparison__Group_1_0_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_2__0" + + + // $ANTLR start "rule__Comparison__Group_1_0_2__0__Impl" + // InternalFiacre.g:18468:1: rule__Comparison__Group_1_0_2__0__Impl : ( () ) ; + public final void rule__Comparison__Group_1_0_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18472:1: ( ( () ) ) + // InternalFiacre.g:18473:1: ( () ) + { + // InternalFiacre.g:18473:1: ( () ) + // InternalFiacre.g:18474:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getComparisonLesserLeftAction_1_0_2_0()); + } + // InternalFiacre.g:18475:2: () + // InternalFiacre.g:18475:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getComparisonLesserLeftAction_1_0_2_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_2__0__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_2__1" + // InternalFiacre.g:18483:1: rule__Comparison__Group_1_0_2__1 : rule__Comparison__Group_1_0_2__1__Impl ; + public final void rule__Comparison__Group_1_0_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18487:1: ( rule__Comparison__Group_1_0_2__1__Impl ) + // InternalFiacre.g:18488:2: rule__Comparison__Group_1_0_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_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__Comparison__Group_1_0_2__1" + + + // $ANTLR start "rule__Comparison__Group_1_0_2__1__Impl" + // InternalFiacre.g:18494:1: rule__Comparison__Group_1_0_2__1__Impl : ( '<' ) ; + public final void rule__Comparison__Group_1_0_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18498:1: ( ( '<' ) ) + // InternalFiacre.g:18499:1: ( '<' ) + { + // InternalFiacre.g:18499:1: ( '<' ) + // InternalFiacre.g:18500:2: '<' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getLessThanSignKeyword_1_0_2_1()); + } + match(input,84,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getLessThanSignKeyword_1_0_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_2__1__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_3__0" + // InternalFiacre.g:18510:1: rule__Comparison__Group_1_0_3__0 : rule__Comparison__Group_1_0_3__0__Impl rule__Comparison__Group_1_0_3__1 ; + public final void rule__Comparison__Group_1_0_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18514:1: ( rule__Comparison__Group_1_0_3__0__Impl rule__Comparison__Group_1_0_3__1 ) + // InternalFiacre.g:18515:2: rule__Comparison__Group_1_0_3__0__Impl rule__Comparison__Group_1_0_3__1 + { + pushFollow(FollowSets000.FOLLOW_102); + rule__Comparison__Group_1_0_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_3__0" + + + // $ANTLR start "rule__Comparison__Group_1_0_3__0__Impl" + // InternalFiacre.g:18522:1: rule__Comparison__Group_1_0_3__0__Impl : ( () ) ; + public final void rule__Comparison__Group_1_0_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18526:1: ( ( () ) ) + // InternalFiacre.g:18527:1: ( () ) + { + // InternalFiacre.g:18527:1: ( () ) + // InternalFiacre.g:18528:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getComparisonLesserEqualLeftAction_1_0_3_0()); + } + // InternalFiacre.g:18529:2: () + // InternalFiacre.g:18529:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getComparisonLesserEqualLeftAction_1_0_3_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_3__0__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_3__1" + // InternalFiacre.g:18537:1: rule__Comparison__Group_1_0_3__1 : rule__Comparison__Group_1_0_3__1__Impl ; + public final void rule__Comparison__Group_1_0_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18541:1: ( rule__Comparison__Group_1_0_3__1__Impl ) + // InternalFiacre.g:18542:2: rule__Comparison__Group_1_0_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_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__Comparison__Group_1_0_3__1" + + + // $ANTLR start "rule__Comparison__Group_1_0_3__1__Impl" + // InternalFiacre.g:18548:1: rule__Comparison__Group_1_0_3__1__Impl : ( '<=' ) ; + public final void rule__Comparison__Group_1_0_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18552:1: ( ( '<=' ) ) + // InternalFiacre.g:18553:1: ( '<=' ) + { + // InternalFiacre.g:18553:1: ( '<=' ) + // InternalFiacre.g:18554:2: '<=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_3_1()); + } + match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_3__1__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_4__0" + // InternalFiacre.g:18564:1: rule__Comparison__Group_1_0_4__0 : rule__Comparison__Group_1_0_4__0__Impl rule__Comparison__Group_1_0_4__1 ; + public final void rule__Comparison__Group_1_0_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18568:1: ( rule__Comparison__Group_1_0_4__0__Impl rule__Comparison__Group_1_0_4__1 ) + // InternalFiacre.g:18569:2: rule__Comparison__Group_1_0_4__0__Impl rule__Comparison__Group_1_0_4__1 + { + pushFollow(FollowSets000.FOLLOW_8); + rule__Comparison__Group_1_0_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_4__0" + + + // $ANTLR start "rule__Comparison__Group_1_0_4__0__Impl" + // InternalFiacre.g:18576:1: rule__Comparison__Group_1_0_4__0__Impl : ( () ) ; + public final void rule__Comparison__Group_1_0_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18580:1: ( ( () ) ) + // InternalFiacre.g:18581:1: ( () ) + { + // InternalFiacre.g:18581:1: ( () ) + // InternalFiacre.g:18582:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getComparisonGreaterLeftAction_1_0_4_0()); + } + // InternalFiacre.g:18583:2: () + // InternalFiacre.g:18583:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getComparisonGreaterLeftAction_1_0_4_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_4__0__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_4__1" + // InternalFiacre.g:18591:1: rule__Comparison__Group_1_0_4__1 : rule__Comparison__Group_1_0_4__1__Impl ; + public final void rule__Comparison__Group_1_0_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18595:1: ( rule__Comparison__Group_1_0_4__1__Impl ) + // InternalFiacre.g:18596:2: rule__Comparison__Group_1_0_4__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_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__Comparison__Group_1_0_4__1" + + + // $ANTLR start "rule__Comparison__Group_1_0_4__1__Impl" + // InternalFiacre.g:18602:1: rule__Comparison__Group_1_0_4__1__Impl : ( '>' ) ; + public final void rule__Comparison__Group_1_0_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18606:1: ( ( '>' ) ) + // InternalFiacre.g:18607:1: ( '>' ) + { + // InternalFiacre.g:18607:1: ( '>' ) + // InternalFiacre.g:18608:2: '>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getGreaterThanSignKeyword_1_0_4_1()); + } + match(input,16,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getGreaterThanSignKeyword_1_0_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_4__1__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_5__0" + // InternalFiacre.g:18618:1: rule__Comparison__Group_1_0_5__0 : rule__Comparison__Group_1_0_5__0__Impl rule__Comparison__Group_1_0_5__1 ; + public final void rule__Comparison__Group_1_0_5__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18622:1: ( rule__Comparison__Group_1_0_5__0__Impl rule__Comparison__Group_1_0_5__1 ) + // InternalFiacre.g:18623:2: rule__Comparison__Group_1_0_5__0__Impl rule__Comparison__Group_1_0_5__1 + { + pushFollow(FollowSets000.FOLLOW_98); + rule__Comparison__Group_1_0_5__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_0_5__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_5__0" + + + // $ANTLR start "rule__Comparison__Group_1_0_5__0__Impl" + // InternalFiacre.g:18630:1: rule__Comparison__Group_1_0_5__0__Impl : ( () ) ; + public final void rule__Comparison__Group_1_0_5__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18634:1: ( ( () ) ) + // InternalFiacre.g:18635:1: ( () ) + { + // InternalFiacre.g:18635:1: ( () ) + // InternalFiacre.g:18636:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getComparisonGreaterEqualLeftAction_1_0_5_0()); + } + // InternalFiacre.g:18637:2: () + // InternalFiacre.g:18637:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getComparisonGreaterEqualLeftAction_1_0_5_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_5__0__Impl" + + + // $ANTLR start "rule__Comparison__Group_1_0_5__1" + // InternalFiacre.g:18645:1: rule__Comparison__Group_1_0_5__1 : rule__Comparison__Group_1_0_5__1__Impl ; + public final void rule__Comparison__Group_1_0_5__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18649:1: ( rule__Comparison__Group_1_0_5__1__Impl ) + // InternalFiacre.g:18650:2: rule__Comparison__Group_1_0_5__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Comparison__Group_1_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__Comparison__Group_1_0_5__1" + + + // $ANTLR start "rule__Comparison__Group_1_0_5__1__Impl" + // InternalFiacre.g:18656:1: rule__Comparison__Group_1_0_5__1__Impl : ( '>=' ) ; + public final void rule__Comparison__Group_1_0_5__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18660:1: ( ( '>=' ) ) + // InternalFiacre.g:18661:1: ( '>=' ) + { + // InternalFiacre.g:18661:1: ( '>=' ) + // InternalFiacre.g:18662:2: '>=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_5_1()); + } + match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_5_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__Group_1_0_5__1__Impl" + + + // $ANTLR start "rule__Addition__Group__0" + // InternalFiacre.g:18672:1: rule__Addition__Group__0 : rule__Addition__Group__0__Impl rule__Addition__Group__1 ; + public final void rule__Addition__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18676:1: ( rule__Addition__Group__0__Impl rule__Addition__Group__1 ) + // InternalFiacre.g:18677:2: rule__Addition__Group__0__Impl rule__Addition__Group__1 + { + pushFollow(FollowSets000.FOLLOW_103); + rule__Addition__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Addition__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group__0" + + + // $ANTLR start "rule__Addition__Group__0__Impl" + // InternalFiacre.g:18684:1: rule__Addition__Group__0__Impl : ( ruleSubstraction ) ; + public final void rule__Addition__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18688:1: ( ( ruleSubstraction ) ) + // InternalFiacre.g:18689:1: ( ruleSubstraction ) + { + // InternalFiacre.g:18689:1: ( ruleSubstraction ) + // InternalFiacre.g:18690:2: ruleSubstraction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAdditionAccess().getSubstractionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleSubstraction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAdditionAccess().getSubstractionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group__0__Impl" + + + // $ANTLR start "rule__Addition__Group__1" + // InternalFiacre.g:18699:1: rule__Addition__Group__1 : rule__Addition__Group__1__Impl ; + public final void rule__Addition__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18703:1: ( rule__Addition__Group__1__Impl ) + // InternalFiacre.g:18704:2: rule__Addition__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Addition__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group__1" + + + // $ANTLR start "rule__Addition__Group__1__Impl" + // InternalFiacre.g:18710:1: rule__Addition__Group__1__Impl : ( ( rule__Addition__Group_1__0 )* ) ; + public final void rule__Addition__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18714:1: ( ( ( rule__Addition__Group_1__0 )* ) ) + // InternalFiacre.g:18715:1: ( ( rule__Addition__Group_1__0 )* ) + { + // InternalFiacre.g:18715:1: ( ( rule__Addition__Group_1__0 )* ) + // InternalFiacre.g:18716:2: ( rule__Addition__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAdditionAccess().getGroup_1()); + } + // InternalFiacre.g:18717:2: ( rule__Addition__Group_1__0 )* + loop160: + do { + int alt160=2; + int LA160_0 = input.LA(1); + + if ( (LA160_0==14) ) { + int LA160_2 = input.LA(2); + + if ( (LA160_2==RULE_ID||LA160_2==14||LA160_2==22||LA160_2==42||LA160_2==87||(LA160_2>=91 && LA160_2<=97)||(LA160_2>=99 && LA160_2<=100)||LA160_2==102||(LA160_2>=104 && LA160_2<=107)) ) { + alt160=1; + } + else if ( (LA160_2==RULE_INT) ) { + int LA160_4 = input.LA(3); + + if ( (synpred230_InternalFiacre()) ) { + alt160=1; + } + + + } + + + } + + + switch (alt160) { + case 1 : + // InternalFiacre.g:18717:3: rule__Addition__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_104); + rule__Addition__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop160; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getAdditionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group__1__Impl" + + + // $ANTLR start "rule__Addition__Group_1__0" + // InternalFiacre.g:18726:1: rule__Addition__Group_1__0 : rule__Addition__Group_1__0__Impl rule__Addition__Group_1__1 ; + public final void rule__Addition__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18730:1: ( rule__Addition__Group_1__0__Impl rule__Addition__Group_1__1 ) + // InternalFiacre.g:18731:2: rule__Addition__Group_1__0__Impl rule__Addition__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_103); + rule__Addition__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Addition__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1__0" + + + // $ANTLR start "rule__Addition__Group_1__0__Impl" + // InternalFiacre.g:18738:1: rule__Addition__Group_1__0__Impl : ( () ) ; + public final void rule__Addition__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18742:1: ( ( () ) ) + // InternalFiacre.g:18743:1: ( () ) + { + // InternalFiacre.g:18743:1: ( () ) + // InternalFiacre.g:18744:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAdditionAccess().getAdditionLeftAction_1_0()); + } + // InternalFiacre.g:18745:2: () + // InternalFiacre.g:18745:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAdditionAccess().getAdditionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1__0__Impl" + + + // $ANTLR start "rule__Addition__Group_1__1" + // InternalFiacre.g:18753:1: rule__Addition__Group_1__1 : rule__Addition__Group_1__1__Impl rule__Addition__Group_1__2 ; + public final void rule__Addition__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18757:1: ( rule__Addition__Group_1__1__Impl rule__Addition__Group_1__2 ) + // InternalFiacre.g:18758:2: rule__Addition__Group_1__1__Impl rule__Addition__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Addition__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Addition__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1__1" + + + // $ANTLR start "rule__Addition__Group_1__1__Impl" + // InternalFiacre.g:18765:1: rule__Addition__Group_1__1__Impl : ( '+' ) ; + public final void rule__Addition__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18769:1: ( ( '+' ) ) + // InternalFiacre.g:18770:1: ( '+' ) + { + // InternalFiacre.g:18770:1: ( '+' ) + // InternalFiacre.g:18771:2: '+' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAdditionAccess().getPlusSignKeyword_1_1()); + } + match(input,14,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAdditionAccess().getPlusSignKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1__1__Impl" + + + // $ANTLR start "rule__Addition__Group_1__2" + // InternalFiacre.g:18780:1: rule__Addition__Group_1__2 : rule__Addition__Group_1__2__Impl ; + public final void rule__Addition__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18784:1: ( rule__Addition__Group_1__2__Impl ) + // InternalFiacre.g:18785:2: rule__Addition__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Addition__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__Addition__Group_1__2" + + + // $ANTLR start "rule__Addition__Group_1__2__Impl" + // InternalFiacre.g:18791:1: rule__Addition__Group_1__2__Impl : ( ( rule__Addition__RightAssignment_1_2 ) ) ; + public final void rule__Addition__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18795:1: ( ( ( rule__Addition__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:18796:1: ( ( rule__Addition__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:18796:1: ( ( rule__Addition__RightAssignment_1_2 ) ) + // InternalFiacre.g:18797:2: ( rule__Addition__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAdditionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:18798:2: ( rule__Addition__RightAssignment_1_2 ) + // InternalFiacre.g:18798:3: rule__Addition__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Addition__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAdditionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1__2__Impl" + + + // $ANTLR start "rule__Substraction__Group__0" + // InternalFiacre.g:18807:1: rule__Substraction__Group__0 : rule__Substraction__Group__0__Impl rule__Substraction__Group__1 ; + public final void rule__Substraction__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18811:1: ( rule__Substraction__Group__0__Impl rule__Substraction__Group__1 ) + // InternalFiacre.g:18812:2: rule__Substraction__Group__0__Impl rule__Substraction__Group__1 + { + pushFollow(FollowSets000.FOLLOW_105); + rule__Substraction__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Substraction__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Substraction__Group__0" + + + // $ANTLR start "rule__Substraction__Group__0__Impl" + // InternalFiacre.g:18819:1: rule__Substraction__Group__0__Impl : ( ruleMultiplication ) ; + public final void rule__Substraction__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18823:1: ( ( ruleMultiplication ) ) + // InternalFiacre.g:18824:1: ( ruleMultiplication ) + { + // InternalFiacre.g:18824:1: ( ruleMultiplication ) + // InternalFiacre.g:18825:2: ruleMultiplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubstractionAccess().getMultiplicationParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleMultiplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSubstractionAccess().getMultiplicationParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Substraction__Group__0__Impl" + + + // $ANTLR start "rule__Substraction__Group__1" + // InternalFiacre.g:18834:1: rule__Substraction__Group__1 : rule__Substraction__Group__1__Impl ; + public final void rule__Substraction__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18838:1: ( rule__Substraction__Group__1__Impl ) + // InternalFiacre.g:18839:2: rule__Substraction__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Substraction__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Substraction__Group__1" + + + // $ANTLR start "rule__Substraction__Group__1__Impl" + // InternalFiacre.g:18845:1: rule__Substraction__Group__1__Impl : ( ( rule__Substraction__Group_1__0 )* ) ; + public final void rule__Substraction__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18849:1: ( ( ( rule__Substraction__Group_1__0 )* ) ) + // InternalFiacre.g:18850:1: ( ( rule__Substraction__Group_1__0 )* ) + { + // InternalFiacre.g:18850:1: ( ( rule__Substraction__Group_1__0 )* ) + // InternalFiacre.g:18851:2: ( rule__Substraction__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubstractionAccess().getGroup_1()); + } + // InternalFiacre.g:18852:2: ( rule__Substraction__Group_1__0 )* + loop161: + do { + int alt161=2; + int LA161_0 = input.LA(1); + + if ( (LA161_0==87) ) { + int LA161_2 = input.LA(2); + + if ( (LA161_2==RULE_ID||LA161_2==14||LA161_2==22||LA161_2==42||LA161_2==87||(LA161_2>=91 && LA161_2<=97)||(LA161_2>=99 && LA161_2<=100)||LA161_2==102||(LA161_2>=104 && LA161_2<=107)) ) { + alt161=1; + } + else if ( (LA161_2==RULE_INT) ) { + int LA161_4 = input.LA(3); + + if ( (synpred231_InternalFiacre()) ) { + alt161=1; + } + + + } + + + } + + + switch (alt161) { + case 1 : + // InternalFiacre.g:18852:3: rule__Substraction__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_106); + rule__Substraction__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop161; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getSubstractionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Substraction__Group__1__Impl" + + + // $ANTLR start "rule__Substraction__Group_1__0" + // InternalFiacre.g:18861:1: rule__Substraction__Group_1__0 : rule__Substraction__Group_1__0__Impl rule__Substraction__Group_1__1 ; + public final void rule__Substraction__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18865:1: ( rule__Substraction__Group_1__0__Impl rule__Substraction__Group_1__1 ) + // InternalFiacre.g:18866:2: rule__Substraction__Group_1__0__Impl rule__Substraction__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_105); + rule__Substraction__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Substraction__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Substraction__Group_1__0" + + + // $ANTLR start "rule__Substraction__Group_1__0__Impl" + // InternalFiacre.g:18873:1: rule__Substraction__Group_1__0__Impl : ( () ) ; + public final void rule__Substraction__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18877:1: ( ( () ) ) + // InternalFiacre.g:18878:1: ( () ) + { + // InternalFiacre.g:18878:1: ( () ) + // InternalFiacre.g:18879:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubstractionAccess().getSubstractionLeftAction_1_0()); + } + // InternalFiacre.g:18880:2: () + // InternalFiacre.g:18880:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSubstractionAccess().getSubstractionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Substraction__Group_1__0__Impl" + + + // $ANTLR start "rule__Substraction__Group_1__1" + // InternalFiacre.g:18888:1: rule__Substraction__Group_1__1 : rule__Substraction__Group_1__1__Impl rule__Substraction__Group_1__2 ; + public final void rule__Substraction__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18892:1: ( rule__Substraction__Group_1__1__Impl rule__Substraction__Group_1__2 ) + // InternalFiacre.g:18893:2: rule__Substraction__Group_1__1__Impl rule__Substraction__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Substraction__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Substraction__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Substraction__Group_1__1" + + + // $ANTLR start "rule__Substraction__Group_1__1__Impl" + // InternalFiacre.g:18900:1: rule__Substraction__Group_1__1__Impl : ( '-' ) ; + public final void rule__Substraction__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18904:1: ( ( '-' ) ) + // InternalFiacre.g:18905:1: ( '-' ) + { + // InternalFiacre.g:18905:1: ( '-' ) + // InternalFiacre.g:18906:2: '-' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubstractionAccess().getHyphenMinusKeyword_1_1()); + } + match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSubstractionAccess().getHyphenMinusKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Substraction__Group_1__1__Impl" + + + // $ANTLR start "rule__Substraction__Group_1__2" + // InternalFiacre.g:18915:1: rule__Substraction__Group_1__2 : rule__Substraction__Group_1__2__Impl ; + public final void rule__Substraction__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18919:1: ( rule__Substraction__Group_1__2__Impl ) + // InternalFiacre.g:18920:2: rule__Substraction__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Substraction__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__Substraction__Group_1__2" + + + // $ANTLR start "rule__Substraction__Group_1__2__Impl" + // InternalFiacre.g:18926:1: rule__Substraction__Group_1__2__Impl : ( ( rule__Substraction__RightAssignment_1_2 ) ) ; + public final void rule__Substraction__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18930:1: ( ( ( rule__Substraction__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:18931:1: ( ( rule__Substraction__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:18931:1: ( ( rule__Substraction__RightAssignment_1_2 ) ) + // InternalFiacre.g:18932:2: ( rule__Substraction__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubstractionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:18933:2: ( rule__Substraction__RightAssignment_1_2 ) + // InternalFiacre.g:18933:3: rule__Substraction__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Substraction__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSubstractionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Substraction__Group_1__2__Impl" + + + // $ANTLR start "rule__Multiplication__Group__0" + // InternalFiacre.g:18942:1: rule__Multiplication__Group__0 : rule__Multiplication__Group__0__Impl rule__Multiplication__Group__1 ; + public final void rule__Multiplication__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18946:1: ( rule__Multiplication__Group__0__Impl rule__Multiplication__Group__1 ) + // InternalFiacre.g:18947:2: rule__Multiplication__Group__0__Impl rule__Multiplication__Group__1 + { + pushFollow(FollowSets000.FOLLOW_107); + rule__Multiplication__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Multiplication__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group__0" + + + // $ANTLR start "rule__Multiplication__Group__0__Impl" + // InternalFiacre.g:18954:1: rule__Multiplication__Group__0__Impl : ( ruleDivision ) ; + public final void rule__Multiplication__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18958:1: ( ( ruleDivision ) ) + // InternalFiacre.g:18959:1: ( ruleDivision ) + { + // InternalFiacre.g:18959:1: ( ruleDivision ) + // InternalFiacre.g:18960:2: ruleDivision + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMultiplicationAccess().getDivisionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleDivision(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getMultiplicationAccess().getDivisionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group__0__Impl" + + + // $ANTLR start "rule__Multiplication__Group__1" + // InternalFiacre.g:18969:1: rule__Multiplication__Group__1 : rule__Multiplication__Group__1__Impl ; + public final void rule__Multiplication__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18973:1: ( rule__Multiplication__Group__1__Impl ) + // InternalFiacre.g:18974:2: rule__Multiplication__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Multiplication__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group__1" + + + // $ANTLR start "rule__Multiplication__Group__1__Impl" + // InternalFiacre.g:18980:1: rule__Multiplication__Group__1__Impl : ( ( rule__Multiplication__Group_1__0 )* ) ; + public final void rule__Multiplication__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:18984:1: ( ( ( rule__Multiplication__Group_1__0 )* ) ) + // InternalFiacre.g:18985:1: ( ( rule__Multiplication__Group_1__0 )* ) + { + // InternalFiacre.g:18985:1: ( ( rule__Multiplication__Group_1__0 )* ) + // InternalFiacre.g:18986:2: ( rule__Multiplication__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMultiplicationAccess().getGroup_1()); + } + // InternalFiacre.g:18987:2: ( rule__Multiplication__Group_1__0 )* + loop162: + do { + int alt162=2; + int LA162_0 = input.LA(1); + + if ( (LA162_0==88) ) { + alt162=1; + } + + + switch (alt162) { + case 1 : + // InternalFiacre.g:18987:3: rule__Multiplication__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_108); + rule__Multiplication__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop162; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getMultiplicationAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group__1__Impl" + + + // $ANTLR start "rule__Multiplication__Group_1__0" + // InternalFiacre.g:18996:1: rule__Multiplication__Group_1__0 : rule__Multiplication__Group_1__0__Impl rule__Multiplication__Group_1__1 ; + public final void rule__Multiplication__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19000:1: ( rule__Multiplication__Group_1__0__Impl rule__Multiplication__Group_1__1 ) + // InternalFiacre.g:19001:2: rule__Multiplication__Group_1__0__Impl rule__Multiplication__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_107); + rule__Multiplication__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Multiplication__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1__0" + + + // $ANTLR start "rule__Multiplication__Group_1__0__Impl" + // InternalFiacre.g:19008:1: rule__Multiplication__Group_1__0__Impl : ( () ) ; + public final void rule__Multiplication__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19012:1: ( ( () ) ) + // InternalFiacre.g:19013:1: ( () ) + { + // InternalFiacre.g:19013:1: ( () ) + // InternalFiacre.g:19014:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMultiplicationAccess().getMultiplicationLeftAction_1_0()); + } + // InternalFiacre.g:19015:2: () + // InternalFiacre.g:19015:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getMultiplicationAccess().getMultiplicationLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1__0__Impl" + + + // $ANTLR start "rule__Multiplication__Group_1__1" + // InternalFiacre.g:19023:1: rule__Multiplication__Group_1__1 : rule__Multiplication__Group_1__1__Impl rule__Multiplication__Group_1__2 ; + public final void rule__Multiplication__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19027:1: ( rule__Multiplication__Group_1__1__Impl rule__Multiplication__Group_1__2 ) + // InternalFiacre.g:19028:2: rule__Multiplication__Group_1__1__Impl rule__Multiplication__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Multiplication__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Multiplication__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1__1" + + + // $ANTLR start "rule__Multiplication__Group_1__1__Impl" + // InternalFiacre.g:19035:1: rule__Multiplication__Group_1__1__Impl : ( '*' ) ; + public final void rule__Multiplication__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19039:1: ( ( '*' ) ) + // InternalFiacre.g:19040:1: ( '*' ) + { + // InternalFiacre.g:19040:1: ( '*' ) + // InternalFiacre.g:19041:2: '*' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_1()); + } + match(input,88,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1__1__Impl" + + + // $ANTLR start "rule__Multiplication__Group_1__2" + // InternalFiacre.g:19050:1: rule__Multiplication__Group_1__2 : rule__Multiplication__Group_1__2__Impl ; + public final void rule__Multiplication__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19054:1: ( rule__Multiplication__Group_1__2__Impl ) + // InternalFiacre.g:19055:2: rule__Multiplication__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Multiplication__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__Multiplication__Group_1__2" + + + // $ANTLR start "rule__Multiplication__Group_1__2__Impl" + // InternalFiacre.g:19061:1: rule__Multiplication__Group_1__2__Impl : ( ( rule__Multiplication__RightAssignment_1_2 ) ) ; + public final void rule__Multiplication__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19065:1: ( ( ( rule__Multiplication__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:19066:1: ( ( rule__Multiplication__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:19066:1: ( ( rule__Multiplication__RightAssignment_1_2 ) ) + // InternalFiacre.g:19067:2: ( rule__Multiplication__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMultiplicationAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:19068:2: ( rule__Multiplication__RightAssignment_1_2 ) + // InternalFiacre.g:19068:3: rule__Multiplication__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Multiplication__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getMultiplicationAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1__2__Impl" + + + // $ANTLR start "rule__Division__Group__0" + // InternalFiacre.g:19077:1: rule__Division__Group__0 : rule__Division__Group__0__Impl rule__Division__Group__1 ; + public final void rule__Division__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19081:1: ( rule__Division__Group__0__Impl rule__Division__Group__1 ) + // InternalFiacre.g:19082:2: rule__Division__Group__0__Impl rule__Division__Group__1 + { + pushFollow(FollowSets000.FOLLOW_109); + rule__Division__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Division__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Division__Group__0" + + + // $ANTLR start "rule__Division__Group__0__Impl" + // InternalFiacre.g:19089:1: rule__Division__Group__0__Impl : ( ruleModulo ) ; + public final void rule__Division__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19093:1: ( ( ruleModulo ) ) + // InternalFiacre.g:19094:1: ( ruleModulo ) + { + // InternalFiacre.g:19094:1: ( ruleModulo ) + // InternalFiacre.g:19095:2: ruleModulo + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDivisionAccess().getModuloParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleModulo(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDivisionAccess().getModuloParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Division__Group__0__Impl" + + + // $ANTLR start "rule__Division__Group__1" + // InternalFiacre.g:19104:1: rule__Division__Group__1 : rule__Division__Group__1__Impl ; + public final void rule__Division__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19108:1: ( rule__Division__Group__1__Impl ) + // InternalFiacre.g:19109:2: rule__Division__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Division__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Division__Group__1" + + + // $ANTLR start "rule__Division__Group__1__Impl" + // InternalFiacre.g:19115:1: rule__Division__Group__1__Impl : ( ( rule__Division__Group_1__0 )* ) ; + public final void rule__Division__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19119:1: ( ( ( rule__Division__Group_1__0 )* ) ) + // InternalFiacre.g:19120:1: ( ( rule__Division__Group_1__0 )* ) + { + // InternalFiacre.g:19120:1: ( ( rule__Division__Group_1__0 )* ) + // InternalFiacre.g:19121:2: ( rule__Division__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDivisionAccess().getGroup_1()); + } + // InternalFiacre.g:19122:2: ( rule__Division__Group_1__0 )* + loop163: + do { + int alt163=2; + int LA163_0 = input.LA(1); + + if ( (LA163_0==89) ) { + alt163=1; + } + + + switch (alt163) { + case 1 : + // InternalFiacre.g:19122:3: rule__Division__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_110); + rule__Division__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop163; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getDivisionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Division__Group__1__Impl" + + + // $ANTLR start "rule__Division__Group_1__0" + // InternalFiacre.g:19131:1: rule__Division__Group_1__0 : rule__Division__Group_1__0__Impl rule__Division__Group_1__1 ; + public final void rule__Division__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19135:1: ( rule__Division__Group_1__0__Impl rule__Division__Group_1__1 ) + // InternalFiacre.g:19136:2: rule__Division__Group_1__0__Impl rule__Division__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_109); + rule__Division__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Division__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Division__Group_1__0" + + + // $ANTLR start "rule__Division__Group_1__0__Impl" + // InternalFiacre.g:19143:1: rule__Division__Group_1__0__Impl : ( () ) ; + public final void rule__Division__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19147:1: ( ( () ) ) + // InternalFiacre.g:19148:1: ( () ) + { + // InternalFiacre.g:19148:1: ( () ) + // InternalFiacre.g:19149:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDivisionAccess().getDivisionLeftAction_1_0()); + } + // InternalFiacre.g:19150:2: () + // InternalFiacre.g:19150:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDivisionAccess().getDivisionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Division__Group_1__0__Impl" + + + // $ANTLR start "rule__Division__Group_1__1" + // InternalFiacre.g:19158:1: rule__Division__Group_1__1 : rule__Division__Group_1__1__Impl rule__Division__Group_1__2 ; + public final void rule__Division__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19162:1: ( rule__Division__Group_1__1__Impl rule__Division__Group_1__2 ) + // InternalFiacre.g:19163:2: rule__Division__Group_1__1__Impl rule__Division__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Division__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Division__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Division__Group_1__1" + + + // $ANTLR start "rule__Division__Group_1__1__Impl" + // InternalFiacre.g:19170:1: rule__Division__Group_1__1__Impl : ( '/' ) ; + public final void rule__Division__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19174:1: ( ( '/' ) ) + // InternalFiacre.g:19175:1: ( '/' ) + { + // InternalFiacre.g:19175:1: ( '/' ) + // InternalFiacre.g:19176:2: '/' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDivisionAccess().getSolidusKeyword_1_1()); + } + match(input,89,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDivisionAccess().getSolidusKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Division__Group_1__1__Impl" + + + // $ANTLR start "rule__Division__Group_1__2" + // InternalFiacre.g:19185:1: rule__Division__Group_1__2 : rule__Division__Group_1__2__Impl ; + public final void rule__Division__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19189:1: ( rule__Division__Group_1__2__Impl ) + // InternalFiacre.g:19190:2: rule__Division__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Division__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__Division__Group_1__2" + + + // $ANTLR start "rule__Division__Group_1__2__Impl" + // InternalFiacre.g:19196:1: rule__Division__Group_1__2__Impl : ( ( rule__Division__RightAssignment_1_2 ) ) ; + public final void rule__Division__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19200:1: ( ( ( rule__Division__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:19201:1: ( ( rule__Division__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:19201:1: ( ( rule__Division__RightAssignment_1_2 ) ) + // InternalFiacre.g:19202:2: ( rule__Division__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDivisionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:19203:2: ( rule__Division__RightAssignment_1_2 ) + // InternalFiacre.g:19203:3: rule__Division__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Division__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDivisionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Division__Group_1__2__Impl" + + + // $ANTLR start "rule__Modulo__Group__0" + // InternalFiacre.g:19212:1: rule__Modulo__Group__0 : rule__Modulo__Group__0__Impl rule__Modulo__Group__1 ; + public final void rule__Modulo__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19216:1: ( rule__Modulo__Group__0__Impl rule__Modulo__Group__1 ) + // InternalFiacre.g:19217:2: rule__Modulo__Group__0__Impl rule__Modulo__Group__1 + { + pushFollow(FollowSets000.FOLLOW_111); + rule__Modulo__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Modulo__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Modulo__Group__0" + + + // $ANTLR start "rule__Modulo__Group__0__Impl" + // InternalFiacre.g:19224:1: rule__Modulo__Group__0__Impl : ( ruleUnaryExpression ) ; + public final void rule__Modulo__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19228:1: ( ( ruleUnaryExpression ) ) + // InternalFiacre.g:19229:1: ( ruleUnaryExpression ) + { + // InternalFiacre.g:19229:1: ( ruleUnaryExpression ) + // InternalFiacre.g:19230:2: ruleUnaryExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModuloAccess().getUnaryExpressionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUnaryExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getModuloAccess().getUnaryExpressionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Modulo__Group__0__Impl" + + + // $ANTLR start "rule__Modulo__Group__1" + // InternalFiacre.g:19239:1: rule__Modulo__Group__1 : rule__Modulo__Group__1__Impl ; + public final void rule__Modulo__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19243:1: ( rule__Modulo__Group__1__Impl ) + // InternalFiacre.g:19244:2: rule__Modulo__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Modulo__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Modulo__Group__1" + + + // $ANTLR start "rule__Modulo__Group__1__Impl" + // InternalFiacre.g:19250:1: rule__Modulo__Group__1__Impl : ( ( rule__Modulo__Group_1__0 )* ) ; + public final void rule__Modulo__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19254:1: ( ( ( rule__Modulo__Group_1__0 )* ) ) + // InternalFiacre.g:19255:1: ( ( rule__Modulo__Group_1__0 )* ) + { + // InternalFiacre.g:19255:1: ( ( rule__Modulo__Group_1__0 )* ) + // InternalFiacre.g:19256:2: ( rule__Modulo__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModuloAccess().getGroup_1()); + } + // InternalFiacre.g:19257:2: ( rule__Modulo__Group_1__0 )* + loop164: + do { + int alt164=2; + int LA164_0 = input.LA(1); + + if ( (LA164_0==90) ) { + alt164=1; + } + + + switch (alt164) { + case 1 : + // InternalFiacre.g:19257:3: rule__Modulo__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_112); + rule__Modulo__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop164; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getModuloAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Modulo__Group__1__Impl" + + + // $ANTLR start "rule__Modulo__Group_1__0" + // InternalFiacre.g:19266:1: rule__Modulo__Group_1__0 : rule__Modulo__Group_1__0__Impl rule__Modulo__Group_1__1 ; + public final void rule__Modulo__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19270:1: ( rule__Modulo__Group_1__0__Impl rule__Modulo__Group_1__1 ) + // InternalFiacre.g:19271:2: rule__Modulo__Group_1__0__Impl rule__Modulo__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_111); + rule__Modulo__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Modulo__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Modulo__Group_1__0" + + + // $ANTLR start "rule__Modulo__Group_1__0__Impl" + // InternalFiacre.g:19278:1: rule__Modulo__Group_1__0__Impl : ( () ) ; + public final void rule__Modulo__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19282:1: ( ( () ) ) + // InternalFiacre.g:19283:1: ( () ) + { + // InternalFiacre.g:19283:1: ( () ) + // InternalFiacre.g:19284:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModuloAccess().getModuloLeftAction_1_0()); + } + // InternalFiacre.g:19285:2: () + // InternalFiacre.g:19285:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getModuloAccess().getModuloLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Modulo__Group_1__0__Impl" + + + // $ANTLR start "rule__Modulo__Group_1__1" + // InternalFiacre.g:19293:1: rule__Modulo__Group_1__1 : rule__Modulo__Group_1__1__Impl rule__Modulo__Group_1__2 ; + public final void rule__Modulo__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19297:1: ( rule__Modulo__Group_1__1__Impl rule__Modulo__Group_1__2 ) + // InternalFiacre.g:19298:2: rule__Modulo__Group_1__1__Impl rule__Modulo__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Modulo__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Modulo__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Modulo__Group_1__1" + + + // $ANTLR start "rule__Modulo__Group_1__1__Impl" + // InternalFiacre.g:19305:1: rule__Modulo__Group_1__1__Impl : ( '%' ) ; + public final void rule__Modulo__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19309:1: ( ( '%' ) ) + // InternalFiacre.g:19310:1: ( '%' ) + { + // InternalFiacre.g:19310:1: ( '%' ) + // InternalFiacre.g:19311:2: '%' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModuloAccess().getPercentSignKeyword_1_1()); + } + match(input,90,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getModuloAccess().getPercentSignKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Modulo__Group_1__1__Impl" + + + // $ANTLR start "rule__Modulo__Group_1__2" + // InternalFiacre.g:19320:1: rule__Modulo__Group_1__2 : rule__Modulo__Group_1__2__Impl ; + public final void rule__Modulo__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19324:1: ( rule__Modulo__Group_1__2__Impl ) + // InternalFiacre.g:19325:2: rule__Modulo__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Modulo__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__Modulo__Group_1__2" + + + // $ANTLR start "rule__Modulo__Group_1__2__Impl" + // InternalFiacre.g:19331:1: rule__Modulo__Group_1__2__Impl : ( ( rule__Modulo__RightAssignment_1_2 ) ) ; + public final void rule__Modulo__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19335:1: ( ( ( rule__Modulo__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:19336:1: ( ( rule__Modulo__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:19336:1: ( ( rule__Modulo__RightAssignment_1_2 ) ) + // InternalFiacre.g:19337:2: ( rule__Modulo__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModuloAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:19338:2: ( rule__Modulo__RightAssignment_1_2 ) + // InternalFiacre.g:19338:3: rule__Modulo__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Modulo__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getModuloAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Modulo__Group_1__2__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0__0" + // InternalFiacre.g:19347:1: rule__UnaryExpression__Group_0__0 : rule__UnaryExpression__Group_0__0__Impl rule__UnaryExpression__Group_0__1 ; + public final void rule__UnaryExpression__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19351:1: ( rule__UnaryExpression__Group_0__0__Impl rule__UnaryExpression__Group_0__1 ) + // InternalFiacre.g:19352:2: rule__UnaryExpression__Group_0__0__Impl rule__UnaryExpression__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__UnaryExpression__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0__0" + + + // $ANTLR start "rule__UnaryExpression__Group_0__0__Impl" + // InternalFiacre.g:19359:1: rule__UnaryExpression__Group_0__0__Impl : ( ( rule__UnaryExpression__Alternatives_0_0 ) ) ; + public final void rule__UnaryExpression__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19363:1: ( ( ( rule__UnaryExpression__Alternatives_0_0 ) ) ) + // InternalFiacre.g:19364:1: ( ( rule__UnaryExpression__Alternatives_0_0 ) ) + { + // InternalFiacre.g:19364:1: ( ( rule__UnaryExpression__Alternatives_0_0 ) ) + // InternalFiacre.g:19365:2: ( rule__UnaryExpression__Alternatives_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getAlternatives_0_0()); + } + // InternalFiacre.g:19366:2: ( rule__UnaryExpression__Alternatives_0_0 ) + // InternalFiacre.g:19366:3: rule__UnaryExpression__Alternatives_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Alternatives_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getAlternatives_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0__0__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0__1" + // InternalFiacre.g:19374:1: rule__UnaryExpression__Group_0__1 : rule__UnaryExpression__Group_0__1__Impl ; + public final void rule__UnaryExpression__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19378:1: ( rule__UnaryExpression__Group_0__1__Impl ) + // InternalFiacre.g:19379:2: rule__UnaryExpression__Group_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__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__UnaryExpression__Group_0__1" + + + // $ANTLR start "rule__UnaryExpression__Group_0__1__Impl" + // InternalFiacre.g:19385:1: rule__UnaryExpression__Group_0__1__Impl : ( ( rule__UnaryExpression__ChildAssignment_0_1 ) ) ; + public final void rule__UnaryExpression__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19389:1: ( ( ( rule__UnaryExpression__ChildAssignment_0_1 ) ) ) + // InternalFiacre.g:19390:1: ( ( rule__UnaryExpression__ChildAssignment_0_1 ) ) + { + // InternalFiacre.g:19390:1: ( ( rule__UnaryExpression__ChildAssignment_0_1 ) ) + // InternalFiacre.g:19391:2: ( rule__UnaryExpression__ChildAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getChildAssignment_0_1()); + } + // InternalFiacre.g:19392:2: ( rule__UnaryExpression__ChildAssignment_0_1 ) + // InternalFiacre.g:19392:3: rule__UnaryExpression__ChildAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__ChildAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getChildAssignment_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0__1__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_0__0" + // InternalFiacre.g:19401:1: rule__UnaryExpression__Group_0_0_0__0 : rule__UnaryExpression__Group_0_0_0__0__Impl rule__UnaryExpression__Group_0_0_0__1 ; + public final void rule__UnaryExpression__Group_0_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19405:1: ( rule__UnaryExpression__Group_0_0_0__0__Impl rule__UnaryExpression__Group_0_0_0__1 ) + // InternalFiacre.g:19406:2: rule__UnaryExpression__Group_0_0_0__0__Impl rule__UnaryExpression__Group_0_0_0__1 + { + pushFollow(FollowSets000.FOLLOW_103); + rule__UnaryExpression__Group_0_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__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__UnaryExpression__Group_0_0_0__0" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_0__0__Impl" + // InternalFiacre.g:19413:1: rule__UnaryExpression__Group_0_0_0__0__Impl : ( () ) ; + public final void rule__UnaryExpression__Group_0_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19417:1: ( ( () ) ) + // InternalFiacre.g:19418:1: ( () ) + { + // InternalFiacre.g:19418:1: ( () ) + // InternalFiacre.g:19419:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getUnaryPlusExpressionAction_0_0_0_0()); + } + // InternalFiacre.g:19420:2: () + // InternalFiacre.g:19420:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getUnaryPlusExpressionAction_0_0_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_0__0__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_0__1" + // InternalFiacre.g:19428:1: rule__UnaryExpression__Group_0_0_0__1 : rule__UnaryExpression__Group_0_0_0__1__Impl ; + public final void rule__UnaryExpression__Group_0_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19432:1: ( rule__UnaryExpression__Group_0_0_0__1__Impl ) + // InternalFiacre.g:19433:2: rule__UnaryExpression__Group_0_0_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_0__1" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_0__1__Impl" + // InternalFiacre.g:19439:1: rule__UnaryExpression__Group_0_0_0__1__Impl : ( '+' ) ; + public final void rule__UnaryExpression__Group_0_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19443:1: ( ( '+' ) ) + // InternalFiacre.g:19444:1: ( '+' ) + { + // InternalFiacre.g:19444:1: ( '+' ) + // InternalFiacre.g:19445:2: '+' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getPlusSignKeyword_0_0_0_1()); + } + match(input,14,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getPlusSignKeyword_0_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_0__1__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_1__0" + // InternalFiacre.g:19455:1: rule__UnaryExpression__Group_0_0_1__0 : rule__UnaryExpression__Group_0_0_1__0__Impl rule__UnaryExpression__Group_0_0_1__1 ; + public final void rule__UnaryExpression__Group_0_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19459:1: ( rule__UnaryExpression__Group_0_0_1__0__Impl rule__UnaryExpression__Group_0_0_1__1 ) + // InternalFiacre.g:19460:2: rule__UnaryExpression__Group_0_0_1__0__Impl rule__UnaryExpression__Group_0_0_1__1 + { + pushFollow(FollowSets000.FOLLOW_105); + rule__UnaryExpression__Group_0_0_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__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__UnaryExpression__Group_0_0_1__0" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_1__0__Impl" + // InternalFiacre.g:19467:1: rule__UnaryExpression__Group_0_0_1__0__Impl : ( () ) ; + public final void rule__UnaryExpression__Group_0_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19471:1: ( ( () ) ) + // InternalFiacre.g:19472:1: ( () ) + { + // InternalFiacre.g:19472:1: ( () ) + // InternalFiacre.g:19473:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getUnaryMinusExpressionAction_0_0_1_0()); + } + // InternalFiacre.g:19474:2: () + // InternalFiacre.g:19474:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getUnaryMinusExpressionAction_0_0_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_1__0__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_1__1" + // InternalFiacre.g:19482:1: rule__UnaryExpression__Group_0_0_1__1 : rule__UnaryExpression__Group_0_0_1__1__Impl ; + public final void rule__UnaryExpression__Group_0_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19486:1: ( rule__UnaryExpression__Group_0_0_1__1__Impl ) + // InternalFiacre.g:19487:2: rule__UnaryExpression__Group_0_0_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_1__1" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_1__1__Impl" + // InternalFiacre.g:19493:1: rule__UnaryExpression__Group_0_0_1__1__Impl : ( '-' ) ; + public final void rule__UnaryExpression__Group_0_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19497:1: ( ( '-' ) ) + // InternalFiacre.g:19498:1: ( '-' ) + { + // InternalFiacre.g:19498:1: ( '-' ) + // InternalFiacre.g:19499:2: '-' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getHyphenMinusKeyword_0_0_1_1()); + } + match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getHyphenMinusKeyword_0_0_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_1__1__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_2__0" + // InternalFiacre.g:19509:1: rule__UnaryExpression__Group_0_0_2__0 : rule__UnaryExpression__Group_0_0_2__0__Impl rule__UnaryExpression__Group_0_0_2__1 ; + public final void rule__UnaryExpression__Group_0_0_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19513:1: ( rule__UnaryExpression__Group_0_0_2__0__Impl rule__UnaryExpression__Group_0_0_2__1 ) + // InternalFiacre.g:19514:2: rule__UnaryExpression__Group_0_0_2__0__Impl rule__UnaryExpression__Group_0_0_2__1 + { + pushFollow(FollowSets000.FOLLOW_113); + rule__UnaryExpression__Group_0_0_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_2__0" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_2__0__Impl" + // InternalFiacre.g:19521:1: rule__UnaryExpression__Group_0_0_2__0__Impl : ( () ) ; + public final void rule__UnaryExpression__Group_0_0_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19525:1: ( ( () ) ) + // InternalFiacre.g:19526:1: ( () ) + { + // InternalFiacre.g:19526:1: ( () ) + // InternalFiacre.g:19527:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getUnaryNegationExpressionAction_0_0_2_0()); + } + // InternalFiacre.g:19528:2: () + // InternalFiacre.g:19528:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getUnaryNegationExpressionAction_0_0_2_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_2__0__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_2__1" + // InternalFiacre.g:19536:1: rule__UnaryExpression__Group_0_0_2__1 : rule__UnaryExpression__Group_0_0_2__1__Impl ; + public final void rule__UnaryExpression__Group_0_0_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19540:1: ( rule__UnaryExpression__Group_0_0_2__1__Impl ) + // InternalFiacre.g:19541:2: rule__UnaryExpression__Group_0_0_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_2__1" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_2__1__Impl" + // InternalFiacre.g:19547:1: rule__UnaryExpression__Group_0_0_2__1__Impl : ( 'not' ) ; + public final void rule__UnaryExpression__Group_0_0_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19551:1: ( ( 'not' ) ) + // InternalFiacre.g:19552:1: ( 'not' ) + { + // InternalFiacre.g:19552:1: ( 'not' ) + // InternalFiacre.g:19553:2: 'not' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getNotKeyword_0_0_2_1()); + } + match(input,91,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getNotKeyword_0_0_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_2__1__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_3__0" + // InternalFiacre.g:19563:1: rule__UnaryExpression__Group_0_0_3__0 : rule__UnaryExpression__Group_0_0_3__0__Impl rule__UnaryExpression__Group_0_0_3__1 ; + public final void rule__UnaryExpression__Group_0_0_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19567:1: ( rule__UnaryExpression__Group_0_0_3__0__Impl rule__UnaryExpression__Group_0_0_3__1 ) + // InternalFiacre.g:19568:2: rule__UnaryExpression__Group_0_0_3__0__Impl rule__UnaryExpression__Group_0_0_3__1 + { + pushFollow(FollowSets000.FOLLOW_114); + rule__UnaryExpression__Group_0_0_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_3__0" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_3__0__Impl" + // InternalFiacre.g:19575:1: rule__UnaryExpression__Group_0_0_3__0__Impl : ( () ) ; + public final void rule__UnaryExpression__Group_0_0_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19579:1: ( ( () ) ) + // InternalFiacre.g:19580:1: ( () ) + { + // InternalFiacre.g:19580:1: ( () ) + // InternalFiacre.g:19581:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getUnaryFirstExpressionAction_0_0_3_0()); + } + // InternalFiacre.g:19582:2: () + // InternalFiacre.g:19582:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getUnaryFirstExpressionAction_0_0_3_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_3__0__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_3__1" + // InternalFiacre.g:19590:1: rule__UnaryExpression__Group_0_0_3__1 : rule__UnaryExpression__Group_0_0_3__1__Impl ; + public final void rule__UnaryExpression__Group_0_0_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19594:1: ( rule__UnaryExpression__Group_0_0_3__1__Impl ) + // InternalFiacre.g:19595:2: rule__UnaryExpression__Group_0_0_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_3__1" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_3__1__Impl" + // InternalFiacre.g:19601:1: rule__UnaryExpression__Group_0_0_3__1__Impl : ( 'first' ) ; + public final void rule__UnaryExpression__Group_0_0_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19605:1: ( ( 'first' ) ) + // InternalFiacre.g:19606:1: ( 'first' ) + { + // InternalFiacre.g:19606:1: ( 'first' ) + // InternalFiacre.g:19607:2: 'first' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getFirstKeyword_0_0_3_1()); + } + match(input,92,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getFirstKeyword_0_0_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_3__1__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_4__0" + // InternalFiacre.g:19617:1: rule__UnaryExpression__Group_0_0_4__0 : rule__UnaryExpression__Group_0_0_4__0__Impl rule__UnaryExpression__Group_0_0_4__1 ; + public final void rule__UnaryExpression__Group_0_0_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19621:1: ( rule__UnaryExpression__Group_0_0_4__0__Impl rule__UnaryExpression__Group_0_0_4__1 ) + // InternalFiacre.g:19622:2: rule__UnaryExpression__Group_0_0_4__0__Impl rule__UnaryExpression__Group_0_0_4__1 + { + pushFollow(FollowSets000.FOLLOW_115); + rule__UnaryExpression__Group_0_0_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_4__0" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_4__0__Impl" + // InternalFiacre.g:19629:1: rule__UnaryExpression__Group_0_0_4__0__Impl : ( () ) ; + public final void rule__UnaryExpression__Group_0_0_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19633:1: ( ( () ) ) + // InternalFiacre.g:19634:1: ( () ) + { + // InternalFiacre.g:19634:1: ( () ) + // InternalFiacre.g:19635:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getUnaryLengthExpressionAction_0_0_4_0()); + } + // InternalFiacre.g:19636:2: () + // InternalFiacre.g:19636:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getUnaryLengthExpressionAction_0_0_4_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_4__0__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_4__1" + // InternalFiacre.g:19644:1: rule__UnaryExpression__Group_0_0_4__1 : rule__UnaryExpression__Group_0_0_4__1__Impl ; + public final void rule__UnaryExpression__Group_0_0_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19648:1: ( rule__UnaryExpression__Group_0_0_4__1__Impl ) + // InternalFiacre.g:19649:2: rule__UnaryExpression__Group_0_0_4__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_4__1" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_4__1__Impl" + // InternalFiacre.g:19655:1: rule__UnaryExpression__Group_0_0_4__1__Impl : ( 'length' ) ; + public final void rule__UnaryExpression__Group_0_0_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19659:1: ( ( 'length' ) ) + // InternalFiacre.g:19660:1: ( 'length' ) + { + // InternalFiacre.g:19660:1: ( 'length' ) + // InternalFiacre.g:19661:2: 'length' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getLengthKeyword_0_0_4_1()); + } + match(input,93,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getLengthKeyword_0_0_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_4__1__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_5__0" + // InternalFiacre.g:19671:1: rule__UnaryExpression__Group_0_0_5__0 : rule__UnaryExpression__Group_0_0_5__0__Impl rule__UnaryExpression__Group_0_0_5__1 ; + public final void rule__UnaryExpression__Group_0_0_5__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19675:1: ( rule__UnaryExpression__Group_0_0_5__0__Impl rule__UnaryExpression__Group_0_0_5__1 ) + // InternalFiacre.g:19676:2: rule__UnaryExpression__Group_0_0_5__0__Impl rule__UnaryExpression__Group_0_0_5__1 + { + pushFollow(FollowSets000.FOLLOW_116); + rule__UnaryExpression__Group_0_0_5__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_5__0" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_5__0__Impl" + // InternalFiacre.g:19683:1: rule__UnaryExpression__Group_0_0_5__0__Impl : ( () ) ; + public final void rule__UnaryExpression__Group_0_0_5__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19687:1: ( ( () ) ) + // InternalFiacre.g:19688:1: ( () ) + { + // InternalFiacre.g:19688:1: ( () ) + // InternalFiacre.g:19689:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getUnaryCoerceExpressionAction_0_0_5_0()); + } + // InternalFiacre.g:19690:2: () + // InternalFiacre.g:19690:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getUnaryCoerceExpressionAction_0_0_5_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_5__0__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_5__1" + // InternalFiacre.g:19698:1: rule__UnaryExpression__Group_0_0_5__1 : rule__UnaryExpression__Group_0_0_5__1__Impl ; + public final void rule__UnaryExpression__Group_0_0_5__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19702:1: ( rule__UnaryExpression__Group_0_0_5__1__Impl ) + // InternalFiacre.g:19703:2: rule__UnaryExpression__Group_0_0_5__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_5__1" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_5__1__Impl" + // InternalFiacre.g:19709:1: rule__UnaryExpression__Group_0_0_5__1__Impl : ( '$' ) ; + public final void rule__UnaryExpression__Group_0_0_5__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19713:1: ( ( '$' ) ) + // InternalFiacre.g:19714:1: ( '$' ) + { + // InternalFiacre.g:19714:1: ( '$' ) + // InternalFiacre.g:19715:2: '$' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getDollarSignKeyword_0_0_5_1()); + } + match(input,94,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getDollarSignKeyword_0_0_5_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_5__1__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_6__0" + // InternalFiacre.g:19725:1: rule__UnaryExpression__Group_0_0_6__0 : rule__UnaryExpression__Group_0_0_6__0__Impl rule__UnaryExpression__Group_0_0_6__1 ; + public final void rule__UnaryExpression__Group_0_0_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19729:1: ( rule__UnaryExpression__Group_0_0_6__0__Impl rule__UnaryExpression__Group_0_0_6__1 ) + // InternalFiacre.g:19730:2: rule__UnaryExpression__Group_0_0_6__0__Impl rule__UnaryExpression__Group_0_0_6__1 + { + pushFollow(FollowSets000.FOLLOW_117); + rule__UnaryExpression__Group_0_0_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_6__0" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_6__0__Impl" + // InternalFiacre.g:19737:1: rule__UnaryExpression__Group_0_0_6__0__Impl : ( () ) ; + public final void rule__UnaryExpression__Group_0_0_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19741:1: ( ( () ) ) + // InternalFiacre.g:19742:1: ( () ) + { + // InternalFiacre.g:19742:1: ( () ) + // InternalFiacre.g:19743:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getUnaryFullExpressionAction_0_0_6_0()); + } + // InternalFiacre.g:19744:2: () + // InternalFiacre.g:19744:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getUnaryFullExpressionAction_0_0_6_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_6__0__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_6__1" + // InternalFiacre.g:19752:1: rule__UnaryExpression__Group_0_0_6__1 : rule__UnaryExpression__Group_0_0_6__1__Impl ; + public final void rule__UnaryExpression__Group_0_0_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19756:1: ( rule__UnaryExpression__Group_0_0_6__1__Impl ) + // InternalFiacre.g:19757:2: rule__UnaryExpression__Group_0_0_6__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_6__1" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_6__1__Impl" + // InternalFiacre.g:19763:1: rule__UnaryExpression__Group_0_0_6__1__Impl : ( 'full' ) ; + public final void rule__UnaryExpression__Group_0_0_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19767:1: ( ( 'full' ) ) + // InternalFiacre.g:19768:1: ( 'full' ) + { + // InternalFiacre.g:19768:1: ( 'full' ) + // InternalFiacre.g:19769:2: 'full' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getFullKeyword_0_0_6_1()); + } + match(input,95,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getFullKeyword_0_0_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_6__1__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_7__0" + // InternalFiacre.g:19779:1: rule__UnaryExpression__Group_0_0_7__0 : rule__UnaryExpression__Group_0_0_7__0__Impl rule__UnaryExpression__Group_0_0_7__1 ; + public final void rule__UnaryExpression__Group_0_0_7__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19783:1: ( rule__UnaryExpression__Group_0_0_7__0__Impl rule__UnaryExpression__Group_0_0_7__1 ) + // InternalFiacre.g:19784:2: rule__UnaryExpression__Group_0_0_7__0__Impl rule__UnaryExpression__Group_0_0_7__1 + { + pushFollow(FollowSets000.FOLLOW_118); + rule__UnaryExpression__Group_0_0_7__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_7__0" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_7__0__Impl" + // InternalFiacre.g:19791:1: rule__UnaryExpression__Group_0_0_7__0__Impl : ( () ) ; + public final void rule__UnaryExpression__Group_0_0_7__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19795:1: ( ( () ) ) + // InternalFiacre.g:19796:1: ( () ) + { + // InternalFiacre.g:19796:1: ( () ) + // InternalFiacre.g:19797:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getUnaryDeQueueExpressionAction_0_0_7_0()); + } + // InternalFiacre.g:19798:2: () + // InternalFiacre.g:19798:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getUnaryDeQueueExpressionAction_0_0_7_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_7__0__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_7__1" + // InternalFiacre.g:19806:1: rule__UnaryExpression__Group_0_0_7__1 : rule__UnaryExpression__Group_0_0_7__1__Impl ; + public final void rule__UnaryExpression__Group_0_0_7__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19810:1: ( rule__UnaryExpression__Group_0_0_7__1__Impl ) + // InternalFiacre.g:19811:2: rule__UnaryExpression__Group_0_0_7__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_7__1" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_7__1__Impl" + // InternalFiacre.g:19817:1: rule__UnaryExpression__Group_0_0_7__1__Impl : ( 'dequeue' ) ; + public final void rule__UnaryExpression__Group_0_0_7__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19821:1: ( ( 'dequeue' ) ) + // InternalFiacre.g:19822:1: ( 'dequeue' ) + { + // InternalFiacre.g:19822:1: ( 'dequeue' ) + // InternalFiacre.g:19823:2: 'dequeue' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getDequeueKeyword_0_0_7_1()); + } + match(input,96,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getDequeueKeyword_0_0_7_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_7__1__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_8__0" + // InternalFiacre.g:19833:1: rule__UnaryExpression__Group_0_0_8__0 : rule__UnaryExpression__Group_0_0_8__0__Impl rule__UnaryExpression__Group_0_0_8__1 ; + public final void rule__UnaryExpression__Group_0_0_8__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19837:1: ( rule__UnaryExpression__Group_0_0_8__0__Impl rule__UnaryExpression__Group_0_0_8__1 ) + // InternalFiacre.g:19838:2: rule__UnaryExpression__Group_0_0_8__0__Impl rule__UnaryExpression__Group_0_0_8__1 + { + pushFollow(FollowSets000.FOLLOW_119); + rule__UnaryExpression__Group_0_0_8__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_8__0" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_8__0__Impl" + // InternalFiacre.g:19845:1: rule__UnaryExpression__Group_0_0_8__0__Impl : ( () ) ; + public final void rule__UnaryExpression__Group_0_0_8__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19849:1: ( ( () ) ) + // InternalFiacre.g:19850:1: ( () ) + { + // InternalFiacre.g:19850:1: ( () ) + // InternalFiacre.g:19851:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getUnaryEmptyExpressionAction_0_0_8_0()); + } + // InternalFiacre.g:19852:2: () + // InternalFiacre.g:19852:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getUnaryEmptyExpressionAction_0_0_8_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_8__0__Impl" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_8__1" + // InternalFiacre.g:19860:1: rule__UnaryExpression__Group_0_0_8__1 : rule__UnaryExpression__Group_0_0_8__1__Impl ; + public final void rule__UnaryExpression__Group_0_0_8__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19864:1: ( rule__UnaryExpression__Group_0_0_8__1__Impl ) + // InternalFiacre.g:19865:2: rule__UnaryExpression__Group_0_0_8__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__UnaryExpression__Group_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__UnaryExpression__Group_0_0_8__1" + + + // $ANTLR start "rule__UnaryExpression__Group_0_0_8__1__Impl" + // InternalFiacre.g:19871:1: rule__UnaryExpression__Group_0_0_8__1__Impl : ( 'empty' ) ; + public final void rule__UnaryExpression__Group_0_0_8__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19875:1: ( ( 'empty' ) ) + // InternalFiacre.g:19876:1: ( 'empty' ) + { + // InternalFiacre.g:19876:1: ( 'empty' ) + // InternalFiacre.g:19877:2: 'empty' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getEmptyKeyword_0_0_8_1()); + } + match(input,97,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getEmptyKeyword_0_0_8_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__Group_0_0_8__1__Impl" + + + // $ANTLR start "rule__Projection__Group__0" + // InternalFiacre.g:19887:1: rule__Projection__Group__0 : rule__Projection__Group__0__Impl rule__Projection__Group__1 ; + public final void rule__Projection__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19891:1: ( rule__Projection__Group__0__Impl rule__Projection__Group__1 ) + // InternalFiacre.g:19892:2: rule__Projection__Group__0__Impl rule__Projection__Group__1 + { + pushFollow(FollowSets000.FOLLOW_120); + rule__Projection__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Projection__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Projection__Group__0" + + + // $ANTLR start "rule__Projection__Group__0__Impl" + // InternalFiacre.g:19899:1: rule__Projection__Group__0__Impl : ( ruleAtomicExpression ) ; + public final void rule__Projection__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19903:1: ( ( ruleAtomicExpression ) ) + // InternalFiacre.g:19904:1: ( ruleAtomicExpression ) + { + // InternalFiacre.g:19904:1: ( ruleAtomicExpression ) + // InternalFiacre.g:19905:2: ruleAtomicExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProjectionAccess().getAtomicExpressionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProjectionAccess().getAtomicExpressionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Projection__Group__0__Impl" + + + // $ANTLR start "rule__Projection__Group__1" + // InternalFiacre.g:19914:1: rule__Projection__Group__1 : rule__Projection__Group__1__Impl ; + public final void rule__Projection__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19918:1: ( rule__Projection__Group__1__Impl ) + // InternalFiacre.g:19919:2: rule__Projection__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Projection__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Projection__Group__1" + + + // $ANTLR start "rule__Projection__Group__1__Impl" + // InternalFiacre.g:19925:1: rule__Projection__Group__1__Impl : ( ( rule__Projection__Group_1__0 )? ) ; + public final void rule__Projection__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19929:1: ( ( ( rule__Projection__Group_1__0 )? ) ) + // InternalFiacre.g:19930:1: ( ( rule__Projection__Group_1__0 )? ) + { + // InternalFiacre.g:19930:1: ( ( rule__Projection__Group_1__0 )? ) + // InternalFiacre.g:19931:2: ( rule__Projection__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProjectionAccess().getGroup_1()); + } + // InternalFiacre.g:19932:2: ( rule__Projection__Group_1__0 )? + int alt165=2; + int LA165_0 = input.LA(1); + + if ( (LA165_0==98) ) { + alt165=1; + } + switch (alt165) { + case 1 : + // InternalFiacre.g:19932:3: rule__Projection__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Projection__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProjectionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Projection__Group__1__Impl" + + + // $ANTLR start "rule__Projection__Group_1__0" + // InternalFiacre.g:19941:1: rule__Projection__Group_1__0 : rule__Projection__Group_1__0__Impl rule__Projection__Group_1__1 ; + public final void rule__Projection__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19945:1: ( rule__Projection__Group_1__0__Impl rule__Projection__Group_1__1 ) + // InternalFiacre.g:19946:2: rule__Projection__Group_1__0__Impl rule__Projection__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_120); + rule__Projection__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Projection__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Projection__Group_1__0" + + + // $ANTLR start "rule__Projection__Group_1__0__Impl" + // InternalFiacre.g:19953:1: rule__Projection__Group_1__0__Impl : ( () ) ; + public final void rule__Projection__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19957:1: ( ( () ) ) + // InternalFiacre.g:19958:1: ( () ) + { + // InternalFiacre.g:19958:1: ( () ) + // InternalFiacre.g:19959:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProjectionAccess().getProjectionChannelAction_1_0()); + } + // InternalFiacre.g:19960:2: () + // InternalFiacre.g:19960:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProjectionAccess().getProjectionChannelAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Projection__Group_1__0__Impl" + + + // $ANTLR start "rule__Projection__Group_1__1" + // InternalFiacre.g:19968:1: rule__Projection__Group_1__1 : rule__Projection__Group_1__1__Impl rule__Projection__Group_1__2 ; + public final void rule__Projection__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19972:1: ( rule__Projection__Group_1__1__Impl rule__Projection__Group_1__2 ) + // InternalFiacre.g:19973:2: rule__Projection__Group_1__1__Impl rule__Projection__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__Projection__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Projection__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Projection__Group_1__1" + + + // $ANTLR start "rule__Projection__Group_1__1__Impl" + // InternalFiacre.g:19980:1: rule__Projection__Group_1__1__Impl : ( '^' ) ; + public final void rule__Projection__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19984:1: ( ( '^' ) ) + // InternalFiacre.g:19985:1: ( '^' ) + { + // InternalFiacre.g:19985:1: ( '^' ) + // InternalFiacre.g:19986:2: '^' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProjectionAccess().getCircumflexAccentKeyword_1_1()); + } + match(input,98,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProjectionAccess().getCircumflexAccentKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Projection__Group_1__1__Impl" + + + // $ANTLR start "rule__Projection__Group_1__2" + // InternalFiacre.g:19995:1: rule__Projection__Group_1__2 : rule__Projection__Group_1__2__Impl ; + public final void rule__Projection__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:19999:1: ( rule__Projection__Group_1__2__Impl ) + // InternalFiacre.g:20000:2: rule__Projection__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Projection__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__Projection__Group_1__2" + + + // $ANTLR start "rule__Projection__Group_1__2__Impl" + // InternalFiacre.g:20006:1: rule__Projection__Group_1__2__Impl : ( ( rule__Projection__FieldAssignment_1_2 ) ) ; + public final void rule__Projection__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20010:1: ( ( ( rule__Projection__FieldAssignment_1_2 ) ) ) + // InternalFiacre.g:20011:1: ( ( rule__Projection__FieldAssignment_1_2 ) ) + { + // InternalFiacre.g:20011:1: ( ( rule__Projection__FieldAssignment_1_2 ) ) + // InternalFiacre.g:20012:2: ( rule__Projection__FieldAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProjectionAccess().getFieldAssignment_1_2()); + } + // InternalFiacre.g:20013:2: ( rule__Projection__FieldAssignment_1_2 ) + // InternalFiacre.g:20013:3: rule__Projection__FieldAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Projection__FieldAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getProjectionAccess().getFieldAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Projection__Group_1__2__Impl" + + + // $ANTLR start "rule__AtomicExpression__Group_8__0" + // InternalFiacre.g:20022:1: rule__AtomicExpression__Group_8__0 : rule__AtomicExpression__Group_8__0__Impl rule__AtomicExpression__Group_8__1 ; + public final void rule__AtomicExpression__Group_8__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20026:1: ( rule__AtomicExpression__Group_8__0__Impl rule__AtomicExpression__Group_8__1 ) + // InternalFiacre.g:20027:2: rule__AtomicExpression__Group_8__0__Impl rule__AtomicExpression__Group_8__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__AtomicExpression__Group_8__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicExpression__Group_8__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicExpression__Group_8__0" + + + // $ANTLR start "rule__AtomicExpression__Group_8__0__Impl" + // InternalFiacre.g:20034:1: rule__AtomicExpression__Group_8__0__Impl : ( '(' ) ; + public final void rule__AtomicExpression__Group_8__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20038:1: ( ( '(' ) ) + // InternalFiacre.g:20039:1: ( '(' ) + { + // InternalFiacre.g:20039:1: ( '(' ) + // InternalFiacre.g:20040:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_8_0()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_8_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicExpression__Group_8__0__Impl" + + + // $ANTLR start "rule__AtomicExpression__Group_8__1" + // InternalFiacre.g:20049:1: rule__AtomicExpression__Group_8__1 : rule__AtomicExpression__Group_8__1__Impl rule__AtomicExpression__Group_8__2 ; + public final void rule__AtomicExpression__Group_8__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20053:1: ( rule__AtomicExpression__Group_8__1__Impl rule__AtomicExpression__Group_8__2 ) + // InternalFiacre.g:20054:2: rule__AtomicExpression__Group_8__1__Impl rule__AtomicExpression__Group_8__2 + { + pushFollow(FollowSets000.FOLLOW_68); + rule__AtomicExpression__Group_8__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicExpression__Group_8__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicExpression__Group_8__1" + + + // $ANTLR start "rule__AtomicExpression__Group_8__1__Impl" + // InternalFiacre.g:20061:1: rule__AtomicExpression__Group_8__1__Impl : ( ruleExpression ) ; + public final void rule__AtomicExpression__Group_8__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20065:1: ( ( ruleExpression ) ) + // InternalFiacre.g:20066:1: ( ruleExpression ) + { + // InternalFiacre.g:20066:1: ( ruleExpression ) + // InternalFiacre.g:20067:2: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_8_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_8_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicExpression__Group_8__1__Impl" + + + // $ANTLR start "rule__AtomicExpression__Group_8__2" + // InternalFiacre.g:20076:1: rule__AtomicExpression__Group_8__2 : rule__AtomicExpression__Group_8__2__Impl ; + public final void rule__AtomicExpression__Group_8__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20080:1: ( rule__AtomicExpression__Group_8__2__Impl ) + // InternalFiacre.g:20081:2: rule__AtomicExpression__Group_8__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicExpression__Group_8__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicExpression__Group_8__2" + + + // $ANTLR start "rule__AtomicExpression__Group_8__2__Impl" + // InternalFiacre.g:20087:1: rule__AtomicExpression__Group_8__2__Impl : ( ')' ) ; + public final void rule__AtomicExpression__Group_8__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20091:1: ( ( ')' ) ) + // InternalFiacre.g:20092:1: ( ')' ) + { + // InternalFiacre.g:20092:1: ( ')' ) + // InternalFiacre.g:20093:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_8_2()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_8_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicExpression__Group_8__2__Impl" + + + // $ANTLR start "rule__ReferenceExpression__Group__0" + // InternalFiacre.g:20103:1: rule__ReferenceExpression__Group__0 : rule__ReferenceExpression__Group__0__Impl rule__ReferenceExpression__Group__1 ; + public final void rule__ReferenceExpression__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20107:1: ( rule__ReferenceExpression__Group__0__Impl rule__ReferenceExpression__Group__1 ) + // InternalFiacre.g:20108:2: rule__ReferenceExpression__Group__0__Impl rule__ReferenceExpression__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__ReferenceExpression__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ReferenceExpression__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReferenceExpression__Group__0" + + + // $ANTLR start "rule__ReferenceExpression__Group__0__Impl" + // InternalFiacre.g:20115:1: rule__ReferenceExpression__Group__0__Impl : ( '&' ) ; + public final void rule__ReferenceExpression__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20119:1: ( ( '&' ) ) + // InternalFiacre.g:20120:1: ( '&' ) + { + // InternalFiacre.g:20120:1: ( '&' ) + // InternalFiacre.g:20121:2: '&' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReferenceExpressionAccess().getAmpersandKeyword_0()); + } + match(input,99,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getReferenceExpressionAccess().getAmpersandKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReferenceExpression__Group__0__Impl" + + + // $ANTLR start "rule__ReferenceExpression__Group__1" + // InternalFiacre.g:20130:1: rule__ReferenceExpression__Group__1 : rule__ReferenceExpression__Group__1__Impl ; + public final void rule__ReferenceExpression__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20134:1: ( rule__ReferenceExpression__Group__1__Impl ) + // InternalFiacre.g:20135:2: rule__ReferenceExpression__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ReferenceExpression__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReferenceExpression__Group__1" + + + // $ANTLR start "rule__ReferenceExpression__Group__1__Impl" + // InternalFiacre.g:20141:1: rule__ReferenceExpression__Group__1__Impl : ( ( rule__ReferenceExpression__DeclarationAssignment_1 ) ) ; + public final void rule__ReferenceExpression__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20145:1: ( ( ( rule__ReferenceExpression__DeclarationAssignment_1 ) ) ) + // InternalFiacre.g:20146:1: ( ( rule__ReferenceExpression__DeclarationAssignment_1 ) ) + { + // InternalFiacre.g:20146:1: ( ( rule__ReferenceExpression__DeclarationAssignment_1 ) ) + // InternalFiacre.g:20147:2: ( rule__ReferenceExpression__DeclarationAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReferenceExpressionAccess().getDeclarationAssignment_1()); + } + // InternalFiacre.g:20148:2: ( rule__ReferenceExpression__DeclarationAssignment_1 ) + // InternalFiacre.g:20148:3: rule__ReferenceExpression__DeclarationAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ReferenceExpression__DeclarationAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getReferenceExpressionAccess().getDeclarationAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReferenceExpression__Group__1__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_0__0" + // InternalFiacre.g:20157:1: rule__IdentifierExpression__Group_0__0 : rule__IdentifierExpression__Group_0__0__Impl rule__IdentifierExpression__Group_0__1 ; + public final void rule__IdentifierExpression__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20161:1: ( rule__IdentifierExpression__Group_0__0__Impl rule__IdentifierExpression__Group_0__1 ) + // InternalFiacre.g:20162:2: rule__IdentifierExpression__Group_0__0__Impl rule__IdentifierExpression__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__IdentifierExpression__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0__0" + + + // $ANTLR start "rule__IdentifierExpression__Group_0__0__Impl" + // InternalFiacre.g:20169:1: rule__IdentifierExpression__Group_0__0__Impl : ( () ) ; + public final void rule__IdentifierExpression__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20173:1: ( ( () ) ) + // InternalFiacre.g:20174:1: ( () ) + { + // InternalFiacre.g:20174:1: ( () ) + // InternalFiacre.g:20175:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getConstructionExpressionAction_0_0()); + } + // InternalFiacre.g:20176:2: () + // InternalFiacre.g:20176:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getConstructionExpressionAction_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0__0__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_0__1" + // InternalFiacre.g:20184:1: rule__IdentifierExpression__Group_0__1 : rule__IdentifierExpression__Group_0__1__Impl rule__IdentifierExpression__Group_0__2 ; + public final void rule__IdentifierExpression__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20188:1: ( rule__IdentifierExpression__Group_0__1__Impl rule__IdentifierExpression__Group_0__2 ) + // InternalFiacre.g:20189:2: rule__IdentifierExpression__Group_0__1__Impl rule__IdentifierExpression__Group_0__2 + { + pushFollow(FollowSets000.FOLLOW_13); + rule__IdentifierExpression__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0__1" + + + // $ANTLR start "rule__IdentifierExpression__Group_0__1__Impl" + // InternalFiacre.g:20196:1: rule__IdentifierExpression__Group_0__1__Impl : ( ( rule__IdentifierExpression__DeclarationAssignment_0_1 ) ) ; + public final void rule__IdentifierExpression__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20200:1: ( ( ( rule__IdentifierExpression__DeclarationAssignment_0_1 ) ) ) + // InternalFiacre.g:20201:1: ( ( rule__IdentifierExpression__DeclarationAssignment_0_1 ) ) + { + // InternalFiacre.g:20201:1: ( ( rule__IdentifierExpression__DeclarationAssignment_0_1 ) ) + // InternalFiacre.g:20202:2: ( rule__IdentifierExpression__DeclarationAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getDeclarationAssignment_0_1()); + } + // InternalFiacre.g:20203:2: ( rule__IdentifierExpression__DeclarationAssignment_0_1 ) + // InternalFiacre.g:20203:3: rule__IdentifierExpression__DeclarationAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__DeclarationAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getDeclarationAssignment_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0__1__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_0__2" + // InternalFiacre.g:20211:1: rule__IdentifierExpression__Group_0__2 : rule__IdentifierExpression__Group_0__2__Impl rule__IdentifierExpression__Group_0__3 ; + public final void rule__IdentifierExpression__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20215:1: ( rule__IdentifierExpression__Group_0__2__Impl rule__IdentifierExpression__Group_0__3 ) + // InternalFiacre.g:20216:2: rule__IdentifierExpression__Group_0__2__Impl rule__IdentifierExpression__Group_0__3 + { + pushFollow(FollowSets000.FOLLOW_121); + rule__IdentifierExpression__Group_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0__2" + + + // $ANTLR start "rule__IdentifierExpression__Group_0__2__Impl" + // InternalFiacre.g:20223:1: rule__IdentifierExpression__Group_0__2__Impl : ( '(' ) ; + public final void rule__IdentifierExpression__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20227:1: ( ( '(' ) ) + // InternalFiacre.g:20228:1: ( '(' ) + { + // InternalFiacre.g:20228:1: ( '(' ) + // InternalFiacre.g:20229:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getLeftParenthesisKeyword_0_2()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getLeftParenthesisKeyword_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0__2__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_0__3" + // InternalFiacre.g:20238:1: rule__IdentifierExpression__Group_0__3 : rule__IdentifierExpression__Group_0__3__Impl rule__IdentifierExpression__Group_0__4 ; + public final void rule__IdentifierExpression__Group_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20242:1: ( rule__IdentifierExpression__Group_0__3__Impl rule__IdentifierExpression__Group_0__4 ) + // InternalFiacre.g:20243:2: rule__IdentifierExpression__Group_0__3__Impl rule__IdentifierExpression__Group_0__4 + { + pushFollow(FollowSets000.FOLLOW_121); + rule__IdentifierExpression__Group_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_0__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0__3" + + + // $ANTLR start "rule__IdentifierExpression__Group_0__3__Impl" + // InternalFiacre.g:20250:1: rule__IdentifierExpression__Group_0__3__Impl : ( ( rule__IdentifierExpression__Group_0_3__0 )? ) ; + public final void rule__IdentifierExpression__Group_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20254:1: ( ( ( rule__IdentifierExpression__Group_0_3__0 )? ) ) + // InternalFiacre.g:20255:1: ( ( rule__IdentifierExpression__Group_0_3__0 )? ) + { + // InternalFiacre.g:20255:1: ( ( rule__IdentifierExpression__Group_0_3__0 )? ) + // InternalFiacre.g:20256:2: ( rule__IdentifierExpression__Group_0_3__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getGroup_0_3()); + } + // InternalFiacre.g:20257:2: ( rule__IdentifierExpression__Group_0_3__0 )? + int alt166=2; + int LA166_0 = input.LA(1); + + if ( (LA166_0==RULE_ID||LA166_0==RULE_INT||LA166_0==14||LA166_0==22||LA166_0==42||(LA166_0>=77 && LA166_0<=78)||LA166_0==87||(LA166_0>=91 && LA166_0<=97)||(LA166_0>=99 && LA166_0<=100)||LA166_0==102||(LA166_0>=104 && LA166_0<=107)) ) { + alt166=1; + } + switch (alt166) { + case 1 : + // InternalFiacre.g:20257:3: rule__IdentifierExpression__Group_0_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_0_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getGroup_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0__3__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_0__4" + // InternalFiacre.g:20265:1: rule__IdentifierExpression__Group_0__4 : rule__IdentifierExpression__Group_0__4__Impl ; + public final void rule__IdentifierExpression__Group_0__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20269:1: ( rule__IdentifierExpression__Group_0__4__Impl ) + // InternalFiacre.g:20270:2: rule__IdentifierExpression__Group_0__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_0__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0__4" + + + // $ANTLR start "rule__IdentifierExpression__Group_0__4__Impl" + // InternalFiacre.g:20276:1: rule__IdentifierExpression__Group_0__4__Impl : ( ')' ) ; + public final void rule__IdentifierExpression__Group_0__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20280:1: ( ( ')' ) ) + // InternalFiacre.g:20281:1: ( ')' ) + { + // InternalFiacre.g:20281:1: ( ')' ) + // InternalFiacre.g:20282:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getRightParenthesisKeyword_0_4()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getRightParenthesisKeyword_0_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0__4__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_0_3__0" + // InternalFiacre.g:20292:1: rule__IdentifierExpression__Group_0_3__0 : rule__IdentifierExpression__Group_0_3__0__Impl rule__IdentifierExpression__Group_0_3__1 ; + public final void rule__IdentifierExpression__Group_0_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20296:1: ( rule__IdentifierExpression__Group_0_3__0__Impl rule__IdentifierExpression__Group_0_3__1 ) + // InternalFiacre.g:20297:2: rule__IdentifierExpression__Group_0_3__0__Impl rule__IdentifierExpression__Group_0_3__1 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__IdentifierExpression__Group_0_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__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__IdentifierExpression__Group_0_3__0" + + + // $ANTLR start "rule__IdentifierExpression__Group_0_3__0__Impl" + // InternalFiacre.g:20304:1: rule__IdentifierExpression__Group_0_3__0__Impl : ( ( rule__IdentifierExpression__ParametersAssignment_0_3_0 ) ) ; + public final void rule__IdentifierExpression__Group_0_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20308:1: ( ( ( rule__IdentifierExpression__ParametersAssignment_0_3_0 ) ) ) + // InternalFiacre.g:20309:1: ( ( rule__IdentifierExpression__ParametersAssignment_0_3_0 ) ) + { + // InternalFiacre.g:20309:1: ( ( rule__IdentifierExpression__ParametersAssignment_0_3_0 ) ) + // InternalFiacre.g:20310:2: ( rule__IdentifierExpression__ParametersAssignment_0_3_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getParametersAssignment_0_3_0()); + } + // InternalFiacre.g:20311:2: ( rule__IdentifierExpression__ParametersAssignment_0_3_0 ) + // InternalFiacre.g:20311:3: rule__IdentifierExpression__ParametersAssignment_0_3_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__ParametersAssignment_0_3_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getParametersAssignment_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0_3__0__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_0_3__1" + // InternalFiacre.g:20319:1: rule__IdentifierExpression__Group_0_3__1 : rule__IdentifierExpression__Group_0_3__1__Impl ; + public final void rule__IdentifierExpression__Group_0_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20323:1: ( rule__IdentifierExpression__Group_0_3__1__Impl ) + // InternalFiacre.g:20324:2: rule__IdentifierExpression__Group_0_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__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__IdentifierExpression__Group_0_3__1" + + + // $ANTLR start "rule__IdentifierExpression__Group_0_3__1__Impl" + // InternalFiacre.g:20330:1: rule__IdentifierExpression__Group_0_3__1__Impl : ( ( rule__IdentifierExpression__Group_0_3_1__0 )* ) ; + public final void rule__IdentifierExpression__Group_0_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20334:1: ( ( ( rule__IdentifierExpression__Group_0_3_1__0 )* ) ) + // InternalFiacre.g:20335:1: ( ( rule__IdentifierExpression__Group_0_3_1__0 )* ) + { + // InternalFiacre.g:20335:1: ( ( rule__IdentifierExpression__Group_0_3_1__0 )* ) + // InternalFiacre.g:20336:2: ( rule__IdentifierExpression__Group_0_3_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getGroup_0_3_1()); + } + // InternalFiacre.g:20337:2: ( rule__IdentifierExpression__Group_0_3_1__0 )* + loop167: + do { + int alt167=2; + int LA167_0 = input.LA(1); + + if ( (LA167_0==24) ) { + alt167=1; + } + + + switch (alt167) { + case 1 : + // InternalFiacre.g:20337:3: rule__IdentifierExpression__Group_0_3_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__IdentifierExpression__Group_0_3_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop167; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getGroup_0_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0_3__1__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_0_3_1__0" + // InternalFiacre.g:20346:1: rule__IdentifierExpression__Group_0_3_1__0 : rule__IdentifierExpression__Group_0_3_1__0__Impl rule__IdentifierExpression__Group_0_3_1__1 ; + public final void rule__IdentifierExpression__Group_0_3_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20350:1: ( rule__IdentifierExpression__Group_0_3_1__0__Impl rule__IdentifierExpression__Group_0_3_1__1 ) + // InternalFiacre.g:20351:2: rule__IdentifierExpression__Group_0_3_1__0__Impl rule__IdentifierExpression__Group_0_3_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__IdentifierExpression__Group_0_3_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_0_3_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0_3_1__0" + + + // $ANTLR start "rule__IdentifierExpression__Group_0_3_1__0__Impl" + // InternalFiacre.g:20358:1: rule__IdentifierExpression__Group_0_3_1__0__Impl : ( ',' ) ; + public final void rule__IdentifierExpression__Group_0_3_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20362:1: ( ( ',' ) ) + // InternalFiacre.g:20363:1: ( ',' ) + { + // InternalFiacre.g:20363:1: ( ',' ) + // InternalFiacre.g:20364:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_0_3_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_0_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0_3_1__0__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_0_3_1__1" + // InternalFiacre.g:20373:1: rule__IdentifierExpression__Group_0_3_1__1 : rule__IdentifierExpression__Group_0_3_1__1__Impl ; + public final void rule__IdentifierExpression__Group_0_3_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20377:1: ( rule__IdentifierExpression__Group_0_3_1__1__Impl ) + // InternalFiacre.g:20378:2: rule__IdentifierExpression__Group_0_3_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_0_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__IdentifierExpression__Group_0_3_1__1" + + + // $ANTLR start "rule__IdentifierExpression__Group_0_3_1__1__Impl" + // InternalFiacre.g:20384:1: rule__IdentifierExpression__Group_0_3_1__1__Impl : ( ( rule__IdentifierExpression__ParametersAssignment_0_3_1_1 ) ) ; + public final void rule__IdentifierExpression__Group_0_3_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20388:1: ( ( ( rule__IdentifierExpression__ParametersAssignment_0_3_1_1 ) ) ) + // InternalFiacre.g:20389:1: ( ( rule__IdentifierExpression__ParametersAssignment_0_3_1_1 ) ) + { + // InternalFiacre.g:20389:1: ( ( rule__IdentifierExpression__ParametersAssignment_0_3_1_1 ) ) + // InternalFiacre.g:20390:2: ( rule__IdentifierExpression__ParametersAssignment_0_3_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getParametersAssignment_0_3_1_1()); + } + // InternalFiacre.g:20391:2: ( rule__IdentifierExpression__ParametersAssignment_0_3_1_1 ) + // InternalFiacre.g:20391:3: rule__IdentifierExpression__ParametersAssignment_0_3_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__ParametersAssignment_0_3_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getParametersAssignment_0_3_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_0_3_1__1__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1__0" + // InternalFiacre.g:20400:1: rule__IdentifierExpression__Group_1__0 : rule__IdentifierExpression__Group_1__0__Impl rule__IdentifierExpression__Group_1__1 ; + public final void rule__IdentifierExpression__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20404:1: ( rule__IdentifierExpression__Group_1__0__Impl rule__IdentifierExpression__Group_1__1 ) + // InternalFiacre.g:20405:2: rule__IdentifierExpression__Group_1__0__Impl rule__IdentifierExpression__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_71); + rule__IdentifierExpression__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1__0" + + + // $ANTLR start "rule__IdentifierExpression__Group_1__0__Impl" + // InternalFiacre.g:20412:1: rule__IdentifierExpression__Group_1__0__Impl : ( ( rule__IdentifierExpression__DeclarationAssignment_1_0 ) ) ; + public final void rule__IdentifierExpression__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20416:1: ( ( ( rule__IdentifierExpression__DeclarationAssignment_1_0 ) ) ) + // InternalFiacre.g:20417:1: ( ( rule__IdentifierExpression__DeclarationAssignment_1_0 ) ) + { + // InternalFiacre.g:20417:1: ( ( rule__IdentifierExpression__DeclarationAssignment_1_0 ) ) + // InternalFiacre.g:20418:2: ( rule__IdentifierExpression__DeclarationAssignment_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getDeclarationAssignment_1_0()); + } + // InternalFiacre.g:20419:2: ( rule__IdentifierExpression__DeclarationAssignment_1_0 ) + // InternalFiacre.g:20419:3: rule__IdentifierExpression__DeclarationAssignment_1_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__DeclarationAssignment_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getDeclarationAssignment_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1__0__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1__1" + // InternalFiacre.g:20427:1: rule__IdentifierExpression__Group_1__1 : rule__IdentifierExpression__Group_1__1__Impl ; + public final void rule__IdentifierExpression__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20431:1: ( rule__IdentifierExpression__Group_1__1__Impl ) + // InternalFiacre.g:20432:2: rule__IdentifierExpression__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__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__IdentifierExpression__Group_1__1" + + + // $ANTLR start "rule__IdentifierExpression__Group_1__1__Impl" + // InternalFiacre.g:20438:1: rule__IdentifierExpression__Group_1__1__Impl : ( ( rule__IdentifierExpression__Alternatives_1_1 )* ) ; + public final void rule__IdentifierExpression__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20442:1: ( ( ( rule__IdentifierExpression__Alternatives_1_1 )* ) ) + // InternalFiacre.g:20443:1: ( ( rule__IdentifierExpression__Alternatives_1_1 )* ) + { + // InternalFiacre.g:20443:1: ( ( rule__IdentifierExpression__Alternatives_1_1 )* ) + // InternalFiacre.g:20444:2: ( rule__IdentifierExpression__Alternatives_1_1 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getAlternatives_1_1()); + } + // InternalFiacre.g:20445:2: ( rule__IdentifierExpression__Alternatives_1_1 )* + loop168: + do { + int alt168=2; + int LA168_0 = input.LA(1); + + if ( (LA168_0==61) ) { + int LA168_2 = input.LA(2); + + if ( (LA168_2==RULE_ID) ) { + int LA168_4 = input.LA(3); + + if ( (synpred238_InternalFiacre()) ) { + alt168=1; + } + + + } + + + } + else if ( (LA168_0==42) ) { + alt168=1; + } + + + switch (alt168) { + case 1 : + // InternalFiacre.g:20445:3: rule__IdentifierExpression__Alternatives_1_1 + { + pushFollow(FollowSets000.FOLLOW_72); + rule__IdentifierExpression__Alternatives_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop168; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getAlternatives_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1__1__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0__0" + // InternalFiacre.g:20454:1: rule__IdentifierExpression__Group_1_1_0__0 : rule__IdentifierExpression__Group_1_1_0__0__Impl rule__IdentifierExpression__Group_1_1_0__1 ; + public final void rule__IdentifierExpression__Group_1_1_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20458:1: ( rule__IdentifierExpression__Group_1_1_0__0__Impl rule__IdentifierExpression__Group_1_1_0__1 ) + // InternalFiacre.g:20459:2: rule__IdentifierExpression__Group_1_1_0__0__Impl rule__IdentifierExpression__Group_1_1_0__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__IdentifierExpression__Group_1_1_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__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__IdentifierExpression__Group_1_1_0__0" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0__0__Impl" + // InternalFiacre.g:20466:1: rule__IdentifierExpression__Group_1_1_0__0__Impl : ( '[' ) ; + public final void rule__IdentifierExpression__Group_1_1_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20470:1: ( ( '[' ) ) + // InternalFiacre.g:20471:1: ( '[' ) + { + // InternalFiacre.g:20471:1: ( '[' ) + // InternalFiacre.g:20472:2: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getLeftSquareBracketKeyword_1_1_0_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getLeftSquareBracketKeyword_1_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0__0__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0__1" + // InternalFiacre.g:20481:1: rule__IdentifierExpression__Group_1_1_0__1 : rule__IdentifierExpression__Group_1_1_0__1__Impl rule__IdentifierExpression__Group_1_1_0__2 ; + public final void rule__IdentifierExpression__Group_1_1_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20485:1: ( rule__IdentifierExpression__Group_1_1_0__1__Impl rule__IdentifierExpression__Group_1_1_0__2 ) + // InternalFiacre.g:20486:2: rule__IdentifierExpression__Group_1_1_0__1__Impl rule__IdentifierExpression__Group_1_1_0__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__IdentifierExpression__Group_1_1_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_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__IdentifierExpression__Group_1_1_0__1" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0__1__Impl" + // InternalFiacre.g:20493:1: rule__IdentifierExpression__Group_1_1_0__1__Impl : ( () ) ; + public final void rule__IdentifierExpression__Group_1_1_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20497:1: ( ( () ) ) + // InternalFiacre.g:20498:1: ( () ) + { + // InternalFiacre.g:20498:1: ( () ) + // InternalFiacre.g:20499:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getArrayAccessExpressionChildAction_1_1_0_1()); + } + // InternalFiacre.g:20500:2: () + // InternalFiacre.g:20500:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getArrayAccessExpressionChildAction_1_1_0_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0__1__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0__2" + // InternalFiacre.g:20508:1: rule__IdentifierExpression__Group_1_1_0__2 : rule__IdentifierExpression__Group_1_1_0__2__Impl rule__IdentifierExpression__Group_1_1_0__3 ; + public final void rule__IdentifierExpression__Group_1_1_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20512:1: ( rule__IdentifierExpression__Group_1_1_0__2__Impl rule__IdentifierExpression__Group_1_1_0__3 ) + // InternalFiacre.g:20513:2: rule__IdentifierExpression__Group_1_1_0__2__Impl rule__IdentifierExpression__Group_1_1_0__3 + { + pushFollow(FollowSets000.FOLLOW_43); + rule__IdentifierExpression__Group_1_1_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1_1_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0__2" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0__2__Impl" + // InternalFiacre.g:20520:1: rule__IdentifierExpression__Group_1_1_0__2__Impl : ( ( rule__IdentifierExpression__IndexesAssignment_1_1_0_2 ) ) ; + public final void rule__IdentifierExpression__Group_1_1_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20524:1: ( ( ( rule__IdentifierExpression__IndexesAssignment_1_1_0_2 ) ) ) + // InternalFiacre.g:20525:1: ( ( rule__IdentifierExpression__IndexesAssignment_1_1_0_2 ) ) + { + // InternalFiacre.g:20525:1: ( ( rule__IdentifierExpression__IndexesAssignment_1_1_0_2 ) ) + // InternalFiacre.g:20526:2: ( rule__IdentifierExpression__IndexesAssignment_1_1_0_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getIndexesAssignment_1_1_0_2()); + } + // InternalFiacre.g:20527:2: ( rule__IdentifierExpression__IndexesAssignment_1_1_0_2 ) + // InternalFiacre.g:20527:3: rule__IdentifierExpression__IndexesAssignment_1_1_0_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__IndexesAssignment_1_1_0_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getIndexesAssignment_1_1_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0__2__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0__3" + // InternalFiacre.g:20535:1: rule__IdentifierExpression__Group_1_1_0__3 : rule__IdentifierExpression__Group_1_1_0__3__Impl rule__IdentifierExpression__Group_1_1_0__4 ; + public final void rule__IdentifierExpression__Group_1_1_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20539:1: ( rule__IdentifierExpression__Group_1_1_0__3__Impl rule__IdentifierExpression__Group_1_1_0__4 ) + // InternalFiacre.g:20540:2: rule__IdentifierExpression__Group_1_1_0__3__Impl rule__IdentifierExpression__Group_1_1_0__4 + { + pushFollow(FollowSets000.FOLLOW_43); + rule__IdentifierExpression__Group_1_1_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1_1_0__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0__3" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0__3__Impl" + // InternalFiacre.g:20547:1: rule__IdentifierExpression__Group_1_1_0__3__Impl : ( ( rule__IdentifierExpression__Group_1_1_0_3__0 )* ) ; + public final void rule__IdentifierExpression__Group_1_1_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20551:1: ( ( ( rule__IdentifierExpression__Group_1_1_0_3__0 )* ) ) + // InternalFiacre.g:20552:1: ( ( rule__IdentifierExpression__Group_1_1_0_3__0 )* ) + { + // InternalFiacre.g:20552:1: ( ( rule__IdentifierExpression__Group_1_1_0_3__0 )* ) + // InternalFiacre.g:20553:2: ( rule__IdentifierExpression__Group_1_1_0_3__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_0_3()); + } + // InternalFiacre.g:20554:2: ( rule__IdentifierExpression__Group_1_1_0_3__0 )* + loop169: + do { + int alt169=2; + int LA169_0 = input.LA(1); + + if ( (LA169_0==24) ) { + alt169=1; + } + + + switch (alt169) { + case 1 : + // InternalFiacre.g:20554:3: rule__IdentifierExpression__Group_1_1_0_3__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__IdentifierExpression__Group_1_1_0_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop169; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getGroup_1_1_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0__3__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0__4" + // InternalFiacre.g:20562:1: rule__IdentifierExpression__Group_1_1_0__4 : rule__IdentifierExpression__Group_1_1_0__4__Impl ; + public final void rule__IdentifierExpression__Group_1_1_0__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20566:1: ( rule__IdentifierExpression__Group_1_1_0__4__Impl ) + // InternalFiacre.g:20567:2: rule__IdentifierExpression__Group_1_1_0__4__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1_1_0__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0__4" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0__4__Impl" + // InternalFiacre.g:20573:1: rule__IdentifierExpression__Group_1_1_0__4__Impl : ( ']' ) ; + public final void rule__IdentifierExpression__Group_1_1_0__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20577:1: ( ( ']' ) ) + // InternalFiacre.g:20578:1: ( ']' ) + { + // InternalFiacre.g:20578:1: ( ']' ) + // InternalFiacre.g:20579:2: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getRightSquareBracketKeyword_1_1_0_4()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getRightSquareBracketKeyword_1_1_0_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0__4__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0_3__0" + // InternalFiacre.g:20589:1: rule__IdentifierExpression__Group_1_1_0_3__0 : rule__IdentifierExpression__Group_1_1_0_3__0__Impl rule__IdentifierExpression__Group_1_1_0_3__1 ; + public final void rule__IdentifierExpression__Group_1_1_0_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20593:1: ( rule__IdentifierExpression__Group_1_1_0_3__0__Impl rule__IdentifierExpression__Group_1_1_0_3__1 ) + // InternalFiacre.g:20594:2: rule__IdentifierExpression__Group_1_1_0_3__0__Impl rule__IdentifierExpression__Group_1_1_0_3__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__IdentifierExpression__Group_1_1_0_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1_1_0_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0_3__0" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0_3__0__Impl" + // InternalFiacre.g:20601:1: rule__IdentifierExpression__Group_1_1_0_3__0__Impl : ( ',' ) ; + public final void rule__IdentifierExpression__Group_1_1_0_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20605:1: ( ( ',' ) ) + // InternalFiacre.g:20606:1: ( ',' ) + { + // InternalFiacre.g:20606:1: ( ',' ) + // InternalFiacre.g:20607:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_1_1_0_3_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_1_1_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0_3__0__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0_3__1" + // InternalFiacre.g:20616:1: rule__IdentifierExpression__Group_1_1_0_3__1 : rule__IdentifierExpression__Group_1_1_0_3__1__Impl ; + public final void rule__IdentifierExpression__Group_1_1_0_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20620:1: ( rule__IdentifierExpression__Group_1_1_0_3__1__Impl ) + // InternalFiacre.g:20621:2: rule__IdentifierExpression__Group_1_1_0_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1_1_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__IdentifierExpression__Group_1_1_0_3__1" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_0_3__1__Impl" + // InternalFiacre.g:20627:1: rule__IdentifierExpression__Group_1_1_0_3__1__Impl : ( ( rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1 ) ) ; + public final void rule__IdentifierExpression__Group_1_1_0_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20631:1: ( ( ( rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1 ) ) ) + // InternalFiacre.g:20632:1: ( ( rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1 ) ) + { + // InternalFiacre.g:20632:1: ( ( rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1 ) ) + // InternalFiacre.g:20633:2: ( rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getIndexesAssignment_1_1_0_3_1()); + } + // InternalFiacre.g:20634:2: ( rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1 ) + // InternalFiacre.g:20634:3: rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getIndexesAssignment_1_1_0_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_0_3__1__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_1__0" + // InternalFiacre.g:20643:1: rule__IdentifierExpression__Group_1_1_1__0 : rule__IdentifierExpression__Group_1_1_1__0__Impl rule__IdentifierExpression__Group_1_1_1__1 ; + public final void rule__IdentifierExpression__Group_1_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20647:1: ( rule__IdentifierExpression__Group_1_1_1__0__Impl rule__IdentifierExpression__Group_1_1_1__1 ) + // InternalFiacre.g:20648:2: rule__IdentifierExpression__Group_1_1_1__0__Impl rule__IdentifierExpression__Group_1_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__IdentifierExpression__Group_1_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__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__IdentifierExpression__Group_1_1_1__0" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_1__0__Impl" + // InternalFiacre.g:20655:1: rule__IdentifierExpression__Group_1_1_1__0__Impl : ( '.' ) ; + public final void rule__IdentifierExpression__Group_1_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20659:1: ( ( '.' ) ) + // InternalFiacre.g:20660:1: ( '.' ) + { + // InternalFiacre.g:20660:1: ( '.' ) + // InternalFiacre.g:20661:2: '.' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getFullStopKeyword_1_1_1_0()); + } + match(input,61,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getFullStopKeyword_1_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_1__0__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_1__1" + // InternalFiacre.g:20670:1: rule__IdentifierExpression__Group_1_1_1__1 : rule__IdentifierExpression__Group_1_1_1__1__Impl rule__IdentifierExpression__Group_1_1_1__2 ; + public final void rule__IdentifierExpression__Group_1_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20674:1: ( rule__IdentifierExpression__Group_1_1_1__1__Impl rule__IdentifierExpression__Group_1_1_1__2 ) + // InternalFiacre.g:20675:2: rule__IdentifierExpression__Group_1_1_1__1__Impl rule__IdentifierExpression__Group_1_1_1__2 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__IdentifierExpression__Group_1_1_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1_1_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_1__1" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_1__1__Impl" + // InternalFiacre.g:20682:1: rule__IdentifierExpression__Group_1_1_1__1__Impl : ( () ) ; + public final void rule__IdentifierExpression__Group_1_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20686:1: ( ( () ) ) + // InternalFiacre.g:20687:1: ( () ) + { + // InternalFiacre.g:20687:1: ( () ) + // InternalFiacre.g:20688:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getRecordAccessExpressionChildAction_1_1_1_1()); + } + // InternalFiacre.g:20689:2: () + // InternalFiacre.g:20689:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getRecordAccessExpressionChildAction_1_1_1_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_1__1__Impl" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_1__2" + // InternalFiacre.g:20697:1: rule__IdentifierExpression__Group_1_1_1__2 : rule__IdentifierExpression__Group_1_1_1__2__Impl ; + public final void rule__IdentifierExpression__Group_1_1_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20701:1: ( rule__IdentifierExpression__Group_1_1_1__2__Impl ) + // InternalFiacre.g:20702:2: rule__IdentifierExpression__Group_1_1_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_1_1_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_1__2" + + + // $ANTLR start "rule__IdentifierExpression__Group_1_1_1__2__Impl" + // InternalFiacre.g:20708:1: rule__IdentifierExpression__Group_1_1_1__2__Impl : ( ( rule__IdentifierExpression__FieldAssignment_1_1_1_2 ) ) ; + public final void rule__IdentifierExpression__Group_1_1_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20712:1: ( ( ( rule__IdentifierExpression__FieldAssignment_1_1_1_2 ) ) ) + // InternalFiacre.g:20713:1: ( ( rule__IdentifierExpression__FieldAssignment_1_1_1_2 ) ) + { + // InternalFiacre.g:20713:1: ( ( rule__IdentifierExpression__FieldAssignment_1_1_1_2 ) ) + // InternalFiacre.g:20714:2: ( rule__IdentifierExpression__FieldAssignment_1_1_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getFieldAssignment_1_1_1_2()); + } + // InternalFiacre.g:20715:2: ( rule__IdentifierExpression__FieldAssignment_1_1_1_2 ) + // InternalFiacre.g:20715:3: rule__IdentifierExpression__FieldAssignment_1_1_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__FieldAssignment_1_1_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getFieldAssignment_1_1_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__Group_1_1_1__2__Impl" + + + // $ANTLR start "rule__RecordExpression__Group__0" + // InternalFiacre.g:20724:1: rule__RecordExpression__Group__0 : rule__RecordExpression__Group__0__Impl rule__RecordExpression__Group__1 ; + public final void rule__RecordExpression__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20728:1: ( rule__RecordExpression__Group__0__Impl rule__RecordExpression__Group__1 ) + // InternalFiacre.g:20729:2: rule__RecordExpression__Group__0__Impl rule__RecordExpression__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__RecordExpression__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordExpression__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group__0" + + + // $ANTLR start "rule__RecordExpression__Group__0__Impl" + // InternalFiacre.g:20736:1: rule__RecordExpression__Group__0__Impl : ( '{' ) ; + public final void rule__RecordExpression__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20740:1: ( ( '{' ) ) + // InternalFiacre.g:20741:1: ( '{' ) + { + // InternalFiacre.g:20741:1: ( '{' ) + // InternalFiacre.g:20742:2: '{' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordExpressionAccess().getLeftCurlyBracketKeyword_0()); + } + match(input,100,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordExpressionAccess().getLeftCurlyBracketKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group__0__Impl" + + + // $ANTLR start "rule__RecordExpression__Group__1" + // InternalFiacre.g:20751:1: rule__RecordExpression__Group__1 : rule__RecordExpression__Group__1__Impl rule__RecordExpression__Group__2 ; + public final void rule__RecordExpression__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20755:1: ( rule__RecordExpression__Group__1__Impl rule__RecordExpression__Group__2 ) + // InternalFiacre.g:20756:2: rule__RecordExpression__Group__1__Impl rule__RecordExpression__Group__2 + { + pushFollow(FollowSets000.FOLLOW_122); + rule__RecordExpression__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordExpression__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group__1" + + + // $ANTLR start "rule__RecordExpression__Group__1__Impl" + // InternalFiacre.g:20763:1: rule__RecordExpression__Group__1__Impl : ( ( rule__RecordExpression__FieldsAssignment_1 ) ) ; + public final void rule__RecordExpression__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20767:1: ( ( ( rule__RecordExpression__FieldsAssignment_1 ) ) ) + // InternalFiacre.g:20768:1: ( ( rule__RecordExpression__FieldsAssignment_1 ) ) + { + // InternalFiacre.g:20768:1: ( ( rule__RecordExpression__FieldsAssignment_1 ) ) + // InternalFiacre.g:20769:2: ( rule__RecordExpression__FieldsAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordExpressionAccess().getFieldsAssignment_1()); + } + // InternalFiacre.g:20770:2: ( rule__RecordExpression__FieldsAssignment_1 ) + // InternalFiacre.g:20770:3: rule__RecordExpression__FieldsAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordExpression__FieldsAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordExpressionAccess().getFieldsAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group__1__Impl" + + + // $ANTLR start "rule__RecordExpression__Group__2" + // InternalFiacre.g:20778:1: rule__RecordExpression__Group__2 : rule__RecordExpression__Group__2__Impl rule__RecordExpression__Group__3 ; + public final void rule__RecordExpression__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20782:1: ( rule__RecordExpression__Group__2__Impl rule__RecordExpression__Group__3 ) + // InternalFiacre.g:20783:2: rule__RecordExpression__Group__2__Impl rule__RecordExpression__Group__3 + { + pushFollow(FollowSets000.FOLLOW_122); + rule__RecordExpression__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordExpression__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group__2" + + + // $ANTLR start "rule__RecordExpression__Group__2__Impl" + // InternalFiacre.g:20790:1: rule__RecordExpression__Group__2__Impl : ( ( rule__RecordExpression__Group_2__0 )* ) ; + public final void rule__RecordExpression__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20794:1: ( ( ( rule__RecordExpression__Group_2__0 )* ) ) + // InternalFiacre.g:20795:1: ( ( rule__RecordExpression__Group_2__0 )* ) + { + // InternalFiacre.g:20795:1: ( ( rule__RecordExpression__Group_2__0 )* ) + // InternalFiacre.g:20796:2: ( rule__RecordExpression__Group_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordExpressionAccess().getGroup_2()); + } + // InternalFiacre.g:20797:2: ( rule__RecordExpression__Group_2__0 )* + loop170: + do { + int alt170=2; + int LA170_0 = input.LA(1); + + if ( (LA170_0==24) ) { + alt170=1; + } + + + switch (alt170) { + case 1 : + // InternalFiacre.g:20797:3: rule__RecordExpression__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__RecordExpression__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop170; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordExpressionAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group__2__Impl" + + + // $ANTLR start "rule__RecordExpression__Group__3" + // InternalFiacre.g:20805:1: rule__RecordExpression__Group__3 : rule__RecordExpression__Group__3__Impl ; + public final void rule__RecordExpression__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20809:1: ( rule__RecordExpression__Group__3__Impl ) + // InternalFiacre.g:20810:2: rule__RecordExpression__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordExpression__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group__3" + + + // $ANTLR start "rule__RecordExpression__Group__3__Impl" + // InternalFiacre.g:20816:1: rule__RecordExpression__Group__3__Impl : ( '}' ) ; + public final void rule__RecordExpression__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20820:1: ( ( '}' ) ) + // InternalFiacre.g:20821:1: ( '}' ) + { + // InternalFiacre.g:20821:1: ( '}' ) + // InternalFiacre.g:20822:2: '}' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordExpressionAccess().getRightCurlyBracketKeyword_3()); + } + match(input,101,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordExpressionAccess().getRightCurlyBracketKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group__3__Impl" + + + // $ANTLR start "rule__RecordExpression__Group_2__0" + // InternalFiacre.g:20832:1: rule__RecordExpression__Group_2__0 : rule__RecordExpression__Group_2__0__Impl rule__RecordExpression__Group_2__1 ; + public final void rule__RecordExpression__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20836:1: ( rule__RecordExpression__Group_2__0__Impl rule__RecordExpression__Group_2__1 ) + // InternalFiacre.g:20837:2: rule__RecordExpression__Group_2__0__Impl rule__RecordExpression__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__RecordExpression__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordExpression__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group_2__0" + + + // $ANTLR start "rule__RecordExpression__Group_2__0__Impl" + // InternalFiacre.g:20844:1: rule__RecordExpression__Group_2__0__Impl : ( ',' ) ; + public final void rule__RecordExpression__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20848:1: ( ( ',' ) ) + // InternalFiacre.g:20849:1: ( ',' ) + { + // InternalFiacre.g:20849:1: ( ',' ) + // InternalFiacre.g:20850:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordExpressionAccess().getCommaKeyword_2_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordExpressionAccess().getCommaKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group_2__0__Impl" + + + // $ANTLR start "rule__RecordExpression__Group_2__1" + // InternalFiacre.g:20859:1: rule__RecordExpression__Group_2__1 : rule__RecordExpression__Group_2__1__Impl ; + public final void rule__RecordExpression__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20863:1: ( rule__RecordExpression__Group_2__1__Impl ) + // InternalFiacre.g:20864:2: rule__RecordExpression__Group_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordExpression__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__RecordExpression__Group_2__1" + + + // $ANTLR start "rule__RecordExpression__Group_2__1__Impl" + // InternalFiacre.g:20870:1: rule__RecordExpression__Group_2__1__Impl : ( ( rule__RecordExpression__FieldsAssignment_2_1 ) ) ; + public final void rule__RecordExpression__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20874:1: ( ( ( rule__RecordExpression__FieldsAssignment_2_1 ) ) ) + // InternalFiacre.g:20875:1: ( ( rule__RecordExpression__FieldsAssignment_2_1 ) ) + { + // InternalFiacre.g:20875:1: ( ( rule__RecordExpression__FieldsAssignment_2_1 ) ) + // InternalFiacre.g:20876:2: ( rule__RecordExpression__FieldsAssignment_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordExpressionAccess().getFieldsAssignment_2_1()); + } + // InternalFiacre.g:20877:2: ( rule__RecordExpression__FieldsAssignment_2_1 ) + // InternalFiacre.g:20877:3: rule__RecordExpression__FieldsAssignment_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__RecordExpression__FieldsAssignment_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordExpressionAccess().getFieldsAssignment_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__Group_2__1__Impl" + + + // $ANTLR start "rule__FieldExpression__Group__0" + // InternalFiacre.g:20886:1: rule__FieldExpression__Group__0 : rule__FieldExpression__Group__0__Impl rule__FieldExpression__Group__1 ; + public final void rule__FieldExpression__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20890:1: ( rule__FieldExpression__Group__0__Impl rule__FieldExpression__Group__1 ) + // InternalFiacre.g:20891:2: rule__FieldExpression__Group__0__Impl rule__FieldExpression__Group__1 + { + pushFollow(FollowSets000.FOLLOW_99); + rule__FieldExpression__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FieldExpression__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FieldExpression__Group__0" + + + // $ANTLR start "rule__FieldExpression__Group__0__Impl" + // InternalFiacre.g:20898:1: rule__FieldExpression__Group__0__Impl : ( ( rule__FieldExpression__FieldAssignment_0 ) ) ; + public final void rule__FieldExpression__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20902:1: ( ( ( rule__FieldExpression__FieldAssignment_0 ) ) ) + // InternalFiacre.g:20903:1: ( ( rule__FieldExpression__FieldAssignment_0 ) ) + { + // InternalFiacre.g:20903:1: ( ( rule__FieldExpression__FieldAssignment_0 ) ) + // InternalFiacre.g:20904:2: ( rule__FieldExpression__FieldAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFieldExpressionAccess().getFieldAssignment_0()); + } + // InternalFiacre.g:20905:2: ( rule__FieldExpression__FieldAssignment_0 ) + // InternalFiacre.g:20905:3: rule__FieldExpression__FieldAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FieldExpression__FieldAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFieldExpressionAccess().getFieldAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FieldExpression__Group__0__Impl" + + + // $ANTLR start "rule__FieldExpression__Group__1" + // InternalFiacre.g:20913:1: rule__FieldExpression__Group__1 : rule__FieldExpression__Group__1__Impl rule__FieldExpression__Group__2 ; + public final void rule__FieldExpression__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20917:1: ( rule__FieldExpression__Group__1__Impl rule__FieldExpression__Group__2 ) + // InternalFiacre.g:20918:2: rule__FieldExpression__Group__1__Impl rule__FieldExpression__Group__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__FieldExpression__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__FieldExpression__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FieldExpression__Group__1" + + + // $ANTLR start "rule__FieldExpression__Group__1__Impl" + // InternalFiacre.g:20925:1: rule__FieldExpression__Group__1__Impl : ( '=' ) ; + public final void rule__FieldExpression__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20929:1: ( ( '=' ) ) + // InternalFiacre.g:20930:1: ( '=' ) + { + // InternalFiacre.g:20930:1: ( '=' ) + // InternalFiacre.g:20931:2: '=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFieldExpressionAccess().getEqualsSignKeyword_1()); + } + match(input,82,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFieldExpressionAccess().getEqualsSignKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FieldExpression__Group__1__Impl" + + + // $ANTLR start "rule__FieldExpression__Group__2" + // InternalFiacre.g:20940:1: rule__FieldExpression__Group__2 : rule__FieldExpression__Group__2__Impl ; + public final void rule__FieldExpression__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20944:1: ( rule__FieldExpression__Group__2__Impl ) + // InternalFiacre.g:20945:2: rule__FieldExpression__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FieldExpression__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FieldExpression__Group__2" + + + // $ANTLR start "rule__FieldExpression__Group__2__Impl" + // InternalFiacre.g:20951:1: rule__FieldExpression__Group__2__Impl : ( ( rule__FieldExpression__ValueAssignment_2 ) ) ; + public final void rule__FieldExpression__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20955:1: ( ( ( rule__FieldExpression__ValueAssignment_2 ) ) ) + // InternalFiacre.g:20956:1: ( ( rule__FieldExpression__ValueAssignment_2 ) ) + { + // InternalFiacre.g:20956:1: ( ( rule__FieldExpression__ValueAssignment_2 ) ) + // InternalFiacre.g:20957:2: ( rule__FieldExpression__ValueAssignment_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFieldExpressionAccess().getValueAssignment_2()); + } + // InternalFiacre.g:20958:2: ( rule__FieldExpression__ValueAssignment_2 ) + // InternalFiacre.g:20958:3: rule__FieldExpression__ValueAssignment_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__FieldExpression__ValueAssignment_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFieldExpressionAccess().getValueAssignment_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FieldExpression__Group__2__Impl" + + + // $ANTLR start "rule__ArrayExpression__Group__0" + // InternalFiacre.g:20967:1: rule__ArrayExpression__Group__0 : rule__ArrayExpression__Group__0__Impl rule__ArrayExpression__Group__1 ; + public final void rule__ArrayExpression__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20971:1: ( rule__ArrayExpression__Group__0__Impl rule__ArrayExpression__Group__1 ) + // InternalFiacre.g:20972:2: rule__ArrayExpression__Group__0__Impl rule__ArrayExpression__Group__1 + { + pushFollow(FollowSets000.FOLLOW_50); + rule__ArrayExpression__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group__0" + + + // $ANTLR start "rule__ArrayExpression__Group__0__Impl" + // InternalFiacre.g:20979:1: rule__ArrayExpression__Group__0__Impl : ( () ) ; + public final void rule__ArrayExpression__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20983:1: ( ( () ) ) + // InternalFiacre.g:20984:1: ( () ) + { + // InternalFiacre.g:20984:1: ( () ) + // InternalFiacre.g:20985:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getArrayExpressionAction_0()); + } + // InternalFiacre.g:20986:2: () + // InternalFiacre.g:20986:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getArrayExpressionAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group__0__Impl" + + + // $ANTLR start "rule__ArrayExpression__Group__1" + // InternalFiacre.g:20994:1: rule__ArrayExpression__Group__1 : rule__ArrayExpression__Group__1__Impl rule__ArrayExpression__Group__2 ; + public final void rule__ArrayExpression__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:20998:1: ( rule__ArrayExpression__Group__1__Impl rule__ArrayExpression__Group__2 ) + // InternalFiacre.g:20999:2: rule__ArrayExpression__Group__1__Impl rule__ArrayExpression__Group__2 + { + pushFollow(FollowSets000.FOLLOW_123); + rule__ArrayExpression__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group__1" + + + // $ANTLR start "rule__ArrayExpression__Group__1__Impl" + // InternalFiacre.g:21006:1: rule__ArrayExpression__Group__1__Impl : ( '[' ) ; + public final void rule__ArrayExpression__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21010:1: ( ( '[' ) ) + // InternalFiacre.g:21011:1: ( '[' ) + { + // InternalFiacre.g:21011:1: ( '[' ) + // InternalFiacre.g:21012:2: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getLeftSquareBracketKeyword_1()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getLeftSquareBracketKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group__1__Impl" + + + // $ANTLR start "rule__ArrayExpression__Group__2" + // InternalFiacre.g:21021:1: rule__ArrayExpression__Group__2 : rule__ArrayExpression__Group__2__Impl rule__ArrayExpression__Group__3 ; + public final void rule__ArrayExpression__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21025:1: ( rule__ArrayExpression__Group__2__Impl rule__ArrayExpression__Group__3 ) + // InternalFiacre.g:21026:2: rule__ArrayExpression__Group__2__Impl rule__ArrayExpression__Group__3 + { + pushFollow(FollowSets000.FOLLOW_123); + rule__ArrayExpression__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group__2" + + + // $ANTLR start "rule__ArrayExpression__Group__2__Impl" + // InternalFiacre.g:21033:1: rule__ArrayExpression__Group__2__Impl : ( ( rule__ArrayExpression__Group_2__0 )? ) ; + public final void rule__ArrayExpression__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21037:1: ( ( ( rule__ArrayExpression__Group_2__0 )? ) ) + // InternalFiacre.g:21038:1: ( ( rule__ArrayExpression__Group_2__0 )? ) + { + // InternalFiacre.g:21038:1: ( ( rule__ArrayExpression__Group_2__0 )? ) + // InternalFiacre.g:21039:2: ( rule__ArrayExpression__Group_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getGroup_2()); + } + // InternalFiacre.g:21040:2: ( rule__ArrayExpression__Group_2__0 )? + int alt171=2; + int LA171_0 = input.LA(1); + + if ( (LA171_0==RULE_ID||LA171_0==RULE_INT||LA171_0==14||LA171_0==22||LA171_0==42||(LA171_0>=77 && LA171_0<=78)||LA171_0==87||(LA171_0>=91 && LA171_0<=97)||(LA171_0>=99 && LA171_0<=100)||LA171_0==102||(LA171_0>=104 && LA171_0<=107)) ) { + alt171=1; + } + switch (alt171) { + case 1 : + // InternalFiacre.g:21040:3: rule__ArrayExpression__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group__2__Impl" + + + // $ANTLR start "rule__ArrayExpression__Group__3" + // InternalFiacre.g:21048:1: rule__ArrayExpression__Group__3 : rule__ArrayExpression__Group__3__Impl ; + public final void rule__ArrayExpression__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21052:1: ( rule__ArrayExpression__Group__3__Impl ) + // InternalFiacre.g:21053:2: rule__ArrayExpression__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group__3" + + + // $ANTLR start "rule__ArrayExpression__Group__3__Impl" + // InternalFiacre.g:21059:1: rule__ArrayExpression__Group__3__Impl : ( ']' ) ; + public final void rule__ArrayExpression__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21063:1: ( ( ']' ) ) + // InternalFiacre.g:21064:1: ( ']' ) + { + // InternalFiacre.g:21064:1: ( ']' ) + // InternalFiacre.g:21065:2: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getRightSquareBracketKeyword_3()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getRightSquareBracketKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group__3__Impl" + + + // $ANTLR start "rule__ArrayExpression__Group_2__0" + // InternalFiacre.g:21075:1: rule__ArrayExpression__Group_2__0 : rule__ArrayExpression__Group_2__0__Impl rule__ArrayExpression__Group_2__1 ; + public final void rule__ArrayExpression__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21079:1: ( rule__ArrayExpression__Group_2__0__Impl rule__ArrayExpression__Group_2__1 ) + // InternalFiacre.g:21080:2: rule__ArrayExpression__Group_2__0__Impl rule__ArrayExpression__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__ArrayExpression__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group_2__0" + + + // $ANTLR start "rule__ArrayExpression__Group_2__0__Impl" + // InternalFiacre.g:21087:1: rule__ArrayExpression__Group_2__0__Impl : ( ( rule__ArrayExpression__ValuesAssignment_2_0 ) ) ; + public final void rule__ArrayExpression__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21091:1: ( ( ( rule__ArrayExpression__ValuesAssignment_2_0 ) ) ) + // InternalFiacre.g:21092:1: ( ( rule__ArrayExpression__ValuesAssignment_2_0 ) ) + { + // InternalFiacre.g:21092:1: ( ( rule__ArrayExpression__ValuesAssignment_2_0 ) ) + // InternalFiacre.g:21093:2: ( rule__ArrayExpression__ValuesAssignment_2_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getValuesAssignment_2_0()); + } + // InternalFiacre.g:21094:2: ( rule__ArrayExpression__ValuesAssignment_2_0 ) + // InternalFiacre.g:21094:3: rule__ArrayExpression__ValuesAssignment_2_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__ValuesAssignment_2_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getValuesAssignment_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group_2__0__Impl" + + + // $ANTLR start "rule__ArrayExpression__Group_2__1" + // InternalFiacre.g:21102:1: rule__ArrayExpression__Group_2__1 : rule__ArrayExpression__Group_2__1__Impl ; + public final void rule__ArrayExpression__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21106:1: ( rule__ArrayExpression__Group_2__1__Impl ) + // InternalFiacre.g:21107:2: rule__ArrayExpression__Group_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__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__ArrayExpression__Group_2__1" + + + // $ANTLR start "rule__ArrayExpression__Group_2__1__Impl" + // InternalFiacre.g:21113:1: rule__ArrayExpression__Group_2__1__Impl : ( ( rule__ArrayExpression__Group_2_1__0 )* ) ; + public final void rule__ArrayExpression__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21117:1: ( ( ( rule__ArrayExpression__Group_2_1__0 )* ) ) + // InternalFiacre.g:21118:1: ( ( rule__ArrayExpression__Group_2_1__0 )* ) + { + // InternalFiacre.g:21118:1: ( ( rule__ArrayExpression__Group_2_1__0 )* ) + // InternalFiacre.g:21119:2: ( rule__ArrayExpression__Group_2_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getGroup_2_1()); + } + // InternalFiacre.g:21120:2: ( rule__ArrayExpression__Group_2_1__0 )* + loop172: + do { + int alt172=2; + int LA172_0 = input.LA(1); + + if ( (LA172_0==24) ) { + alt172=1; + } + + + switch (alt172) { + case 1 : + // InternalFiacre.g:21120:3: rule__ArrayExpression__Group_2_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__ArrayExpression__Group_2_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop172; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getGroup_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group_2__1__Impl" + + + // $ANTLR start "rule__ArrayExpression__Group_2_1__0" + // InternalFiacre.g:21129:1: rule__ArrayExpression__Group_2_1__0 : rule__ArrayExpression__Group_2_1__0__Impl rule__ArrayExpression__Group_2_1__1 ; + public final void rule__ArrayExpression__Group_2_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21133:1: ( rule__ArrayExpression__Group_2_1__0__Impl rule__ArrayExpression__Group_2_1__1 ) + // InternalFiacre.g:21134:2: rule__ArrayExpression__Group_2_1__0__Impl rule__ArrayExpression__Group_2_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ArrayExpression__Group_2_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__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__ArrayExpression__Group_2_1__0" + + + // $ANTLR start "rule__ArrayExpression__Group_2_1__0__Impl" + // InternalFiacre.g:21141:1: rule__ArrayExpression__Group_2_1__0__Impl : ( ',' ) ; + public final void rule__ArrayExpression__Group_2_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21145:1: ( ( ',' ) ) + // InternalFiacre.g:21146:1: ( ',' ) + { + // InternalFiacre.g:21146:1: ( ',' ) + // InternalFiacre.g:21147:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getCommaKeyword_2_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getCommaKeyword_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group_2_1__0__Impl" + + + // $ANTLR start "rule__ArrayExpression__Group_2_1__1" + // InternalFiacre.g:21156:1: rule__ArrayExpression__Group_2_1__1 : rule__ArrayExpression__Group_2_1__1__Impl ; + public final void rule__ArrayExpression__Group_2_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21160:1: ( rule__ArrayExpression__Group_2_1__1__Impl ) + // InternalFiacre.g:21161:2: rule__ArrayExpression__Group_2_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__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__ArrayExpression__Group_2_1__1" + + + // $ANTLR start "rule__ArrayExpression__Group_2_1__1__Impl" + // InternalFiacre.g:21167:1: rule__ArrayExpression__Group_2_1__1__Impl : ( ( rule__ArrayExpression__ValuesAssignment_2_1_1 ) ) ; + public final void rule__ArrayExpression__Group_2_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21171:1: ( ( ( rule__ArrayExpression__ValuesAssignment_2_1_1 ) ) ) + // InternalFiacre.g:21172:1: ( ( rule__ArrayExpression__ValuesAssignment_2_1_1 ) ) + { + // InternalFiacre.g:21172:1: ( ( rule__ArrayExpression__ValuesAssignment_2_1_1 ) ) + // InternalFiacre.g:21173:2: ( rule__ArrayExpression__ValuesAssignment_2_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getValuesAssignment_2_1_1()); + } + // InternalFiacre.g:21174:2: ( rule__ArrayExpression__ValuesAssignment_2_1_1 ) + // InternalFiacre.g:21174:3: rule__ArrayExpression__ValuesAssignment_2_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ArrayExpression__ValuesAssignment_2_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getValuesAssignment_2_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__Group_2_1__1__Impl" + + + // $ANTLR start "rule__QueueExpression__Group__0" + // InternalFiacre.g:21183:1: rule__QueueExpression__Group__0 : rule__QueueExpression__Group__0__Impl rule__QueueExpression__Group__1 ; + public final void rule__QueueExpression__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21187:1: ( rule__QueueExpression__Group__0__Impl rule__QueueExpression__Group__1 ) + // InternalFiacre.g:21188:2: rule__QueueExpression__Group__0__Impl rule__QueueExpression__Group__1 + { + pushFollow(FollowSets000.FOLLOW_124); + rule__QueueExpression__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group__0" + + + // $ANTLR start "rule__QueueExpression__Group__0__Impl" + // InternalFiacre.g:21195:1: rule__QueueExpression__Group__0__Impl : ( () ) ; + public final void rule__QueueExpression__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21199:1: ( ( () ) ) + // InternalFiacre.g:21200:1: ( () ) + { + // InternalFiacre.g:21200:1: ( () ) + // InternalFiacre.g:21201:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getQueueExpressionAction_0()); + } + // InternalFiacre.g:21202:2: () + // InternalFiacre.g:21202:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getQueueExpressionAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group__0__Impl" + + + // $ANTLR start "rule__QueueExpression__Group__1" + // InternalFiacre.g:21210:1: rule__QueueExpression__Group__1 : rule__QueueExpression__Group__1__Impl rule__QueueExpression__Group__2 ; + public final void rule__QueueExpression__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21214:1: ( rule__QueueExpression__Group__1__Impl rule__QueueExpression__Group__2 ) + // InternalFiacre.g:21215:2: rule__QueueExpression__Group__1__Impl rule__QueueExpression__Group__2 + { + pushFollow(FollowSets000.FOLLOW_125); + rule__QueueExpression__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group__1" + + + // $ANTLR start "rule__QueueExpression__Group__1__Impl" + // InternalFiacre.g:21222:1: rule__QueueExpression__Group__1__Impl : ( '{|' ) ; + public final void rule__QueueExpression__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21226:1: ( ( '{|' ) ) + // InternalFiacre.g:21227:1: ( '{|' ) + { + // InternalFiacre.g:21227:1: ( '{|' ) + // InternalFiacre.g:21228:2: '{|' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getLeftCurlyBracketVerticalLineKeyword_1()); + } + match(input,102,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getLeftCurlyBracketVerticalLineKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group__1__Impl" + + + // $ANTLR start "rule__QueueExpression__Group__2" + // InternalFiacre.g:21237:1: rule__QueueExpression__Group__2 : rule__QueueExpression__Group__2__Impl rule__QueueExpression__Group__3 ; + public final void rule__QueueExpression__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21241:1: ( rule__QueueExpression__Group__2__Impl rule__QueueExpression__Group__3 ) + // InternalFiacre.g:21242:2: rule__QueueExpression__Group__2__Impl rule__QueueExpression__Group__3 + { + pushFollow(FollowSets000.FOLLOW_125); + rule__QueueExpression__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group__2" + + + // $ANTLR start "rule__QueueExpression__Group__2__Impl" + // InternalFiacre.g:21249:1: rule__QueueExpression__Group__2__Impl : ( ( rule__QueueExpression__Group_2__0 )? ) ; + public final void rule__QueueExpression__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21253:1: ( ( ( rule__QueueExpression__Group_2__0 )? ) ) + // InternalFiacre.g:21254:1: ( ( rule__QueueExpression__Group_2__0 )? ) + { + // InternalFiacre.g:21254:1: ( ( rule__QueueExpression__Group_2__0 )? ) + // InternalFiacre.g:21255:2: ( rule__QueueExpression__Group_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getGroup_2()); + } + // InternalFiacre.g:21256:2: ( rule__QueueExpression__Group_2__0 )? + int alt173=2; + int LA173_0 = input.LA(1); + + if ( (LA173_0==RULE_ID||LA173_0==RULE_INT||LA173_0==14||LA173_0==22||LA173_0==42||(LA173_0>=77 && LA173_0<=78)||LA173_0==87||(LA173_0>=91 && LA173_0<=97)||(LA173_0>=99 && LA173_0<=100)||LA173_0==102||(LA173_0>=104 && LA173_0<=107)) ) { + alt173=1; + } + switch (alt173) { + case 1 : + // InternalFiacre.g:21256:3: rule__QueueExpression__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group__2__Impl" + + + // $ANTLR start "rule__QueueExpression__Group__3" + // InternalFiacre.g:21264:1: rule__QueueExpression__Group__3 : rule__QueueExpression__Group__3__Impl ; + public final void rule__QueueExpression__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21268:1: ( rule__QueueExpression__Group__3__Impl ) + // InternalFiacre.g:21269:2: rule__QueueExpression__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group__3" + + + // $ANTLR start "rule__QueueExpression__Group__3__Impl" + // InternalFiacre.g:21275:1: rule__QueueExpression__Group__3__Impl : ( '|}' ) ; + public final void rule__QueueExpression__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21279:1: ( ( '|}' ) ) + // InternalFiacre.g:21280:1: ( '|}' ) + { + // InternalFiacre.g:21280:1: ( '|}' ) + // InternalFiacre.g:21281:2: '|}' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getVerticalLineRightCurlyBracketKeyword_3()); + } + match(input,103,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getVerticalLineRightCurlyBracketKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group__3__Impl" + + + // $ANTLR start "rule__QueueExpression__Group_2__0" + // InternalFiacre.g:21291:1: rule__QueueExpression__Group_2__0 : rule__QueueExpression__Group_2__0__Impl rule__QueueExpression__Group_2__1 ; + public final void rule__QueueExpression__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21295:1: ( rule__QueueExpression__Group_2__0__Impl rule__QueueExpression__Group_2__1 ) + // InternalFiacre.g:21296:2: rule__QueueExpression__Group_2__0__Impl rule__QueueExpression__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__QueueExpression__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group_2__0" + + + // $ANTLR start "rule__QueueExpression__Group_2__0__Impl" + // InternalFiacre.g:21303:1: rule__QueueExpression__Group_2__0__Impl : ( ( rule__QueueExpression__ValuesAssignment_2_0 ) ) ; + public final void rule__QueueExpression__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21307:1: ( ( ( rule__QueueExpression__ValuesAssignment_2_0 ) ) ) + // InternalFiacre.g:21308:1: ( ( rule__QueueExpression__ValuesAssignment_2_0 ) ) + { + // InternalFiacre.g:21308:1: ( ( rule__QueueExpression__ValuesAssignment_2_0 ) ) + // InternalFiacre.g:21309:2: ( rule__QueueExpression__ValuesAssignment_2_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getValuesAssignment_2_0()); + } + // InternalFiacre.g:21310:2: ( rule__QueueExpression__ValuesAssignment_2_0 ) + // InternalFiacre.g:21310:3: rule__QueueExpression__ValuesAssignment_2_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__ValuesAssignment_2_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getValuesAssignment_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group_2__0__Impl" + + + // $ANTLR start "rule__QueueExpression__Group_2__1" + // InternalFiacre.g:21318:1: rule__QueueExpression__Group_2__1 : rule__QueueExpression__Group_2__1__Impl ; + public final void rule__QueueExpression__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21322:1: ( rule__QueueExpression__Group_2__1__Impl ) + // InternalFiacre.g:21323:2: rule__QueueExpression__Group_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__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__QueueExpression__Group_2__1" + + + // $ANTLR start "rule__QueueExpression__Group_2__1__Impl" + // InternalFiacre.g:21329:1: rule__QueueExpression__Group_2__1__Impl : ( ( rule__QueueExpression__Group_2_1__0 )* ) ; + public final void rule__QueueExpression__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21333:1: ( ( ( rule__QueueExpression__Group_2_1__0 )* ) ) + // InternalFiacre.g:21334:1: ( ( rule__QueueExpression__Group_2_1__0 )* ) + { + // InternalFiacre.g:21334:1: ( ( rule__QueueExpression__Group_2_1__0 )* ) + // InternalFiacre.g:21335:2: ( rule__QueueExpression__Group_2_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getGroup_2_1()); + } + // InternalFiacre.g:21336:2: ( rule__QueueExpression__Group_2_1__0 )* + loop174: + do { + int alt174=2; + int LA174_0 = input.LA(1); + + if ( (LA174_0==24) ) { + alt174=1; + } + + + switch (alt174) { + case 1 : + // InternalFiacre.g:21336:3: rule__QueueExpression__Group_2_1__0 + { + pushFollow(FollowSets000.FOLLOW_20); + rule__QueueExpression__Group_2_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop174; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getGroup_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group_2__1__Impl" + + + // $ANTLR start "rule__QueueExpression__Group_2_1__0" + // InternalFiacre.g:21345:1: rule__QueueExpression__Group_2_1__0 : rule__QueueExpression__Group_2_1__0__Impl rule__QueueExpression__Group_2_1__1 ; + public final void rule__QueueExpression__Group_2_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21349:1: ( rule__QueueExpression__Group_2_1__0__Impl rule__QueueExpression__Group_2_1__1 ) + // InternalFiacre.g:21350:2: rule__QueueExpression__Group_2_1__0__Impl rule__QueueExpression__Group_2_1__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__QueueExpression__Group_2_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__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__QueueExpression__Group_2_1__0" + + + // $ANTLR start "rule__QueueExpression__Group_2_1__0__Impl" + // InternalFiacre.g:21357:1: rule__QueueExpression__Group_2_1__0__Impl : ( ',' ) ; + public final void rule__QueueExpression__Group_2_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21361:1: ( ( ',' ) ) + // InternalFiacre.g:21362:1: ( ',' ) + { + // InternalFiacre.g:21362:1: ( ',' ) + // InternalFiacre.g:21363:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getCommaKeyword_2_1_0()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getCommaKeyword_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group_2_1__0__Impl" + + + // $ANTLR start "rule__QueueExpression__Group_2_1__1" + // InternalFiacre.g:21372:1: rule__QueueExpression__Group_2_1__1 : rule__QueueExpression__Group_2_1__1__Impl ; + public final void rule__QueueExpression__Group_2_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21376:1: ( rule__QueueExpression__Group_2_1__1__Impl ) + // InternalFiacre.g:21377:2: rule__QueueExpression__Group_2_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__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__QueueExpression__Group_2_1__1" + + + // $ANTLR start "rule__QueueExpression__Group_2_1__1__Impl" + // InternalFiacre.g:21383:1: rule__QueueExpression__Group_2_1__1__Impl : ( ( rule__QueueExpression__ValuesAssignment_2_1_1 ) ) ; + public final void rule__QueueExpression__Group_2_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21387:1: ( ( ( rule__QueueExpression__ValuesAssignment_2_1_1 ) ) ) + // InternalFiacre.g:21388:1: ( ( rule__QueueExpression__ValuesAssignment_2_1_1 ) ) + { + // InternalFiacre.g:21388:1: ( ( rule__QueueExpression__ValuesAssignment_2_1_1 ) ) + // InternalFiacre.g:21389:2: ( rule__QueueExpression__ValuesAssignment_2_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getValuesAssignment_2_1_1()); + } + // InternalFiacre.g:21390:2: ( rule__QueueExpression__ValuesAssignment_2_1_1 ) + // InternalFiacre.g:21390:3: rule__QueueExpression__ValuesAssignment_2_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QueueExpression__ValuesAssignment_2_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getValuesAssignment_2_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__Group_2_1__1__Impl" + + + // $ANTLR start "rule__EnqueueExpression__Group__0" + // InternalFiacre.g:21399:1: rule__EnqueueExpression__Group__0 : rule__EnqueueExpression__Group__0__Impl rule__EnqueueExpression__Group__1 ; + public final void rule__EnqueueExpression__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21403:1: ( rule__EnqueueExpression__Group__0__Impl rule__EnqueueExpression__Group__1 ) + // InternalFiacre.g:21404:2: rule__EnqueueExpression__Group__0__Impl rule__EnqueueExpression__Group__1 + { + pushFollow(FollowSets000.FOLLOW_13); + rule__EnqueueExpression__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__EnqueueExpression__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__0" + + + // $ANTLR start "rule__EnqueueExpression__Group__0__Impl" + // InternalFiacre.g:21411:1: rule__EnqueueExpression__Group__0__Impl : ( 'enqueue' ) ; + public final void rule__EnqueueExpression__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21415:1: ( ( 'enqueue' ) ) + // InternalFiacre.g:21416:1: ( 'enqueue' ) + { + // InternalFiacre.g:21416:1: ( 'enqueue' ) + // InternalFiacre.g:21417:2: 'enqueue' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnqueueExpressionAccess().getEnqueueKeyword_0()); + } + match(input,104,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEnqueueExpressionAccess().getEnqueueKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__0__Impl" + + + // $ANTLR start "rule__EnqueueExpression__Group__1" + // InternalFiacre.g:21426:1: rule__EnqueueExpression__Group__1 : rule__EnqueueExpression__Group__1__Impl rule__EnqueueExpression__Group__2 ; + public final void rule__EnqueueExpression__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21430:1: ( rule__EnqueueExpression__Group__1__Impl rule__EnqueueExpression__Group__2 ) + // InternalFiacre.g:21431:2: rule__EnqueueExpression__Group__1__Impl rule__EnqueueExpression__Group__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__EnqueueExpression__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__EnqueueExpression__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__1" + + + // $ANTLR start "rule__EnqueueExpression__Group__1__Impl" + // InternalFiacre.g:21438:1: rule__EnqueueExpression__Group__1__Impl : ( '(' ) ; + public final void rule__EnqueueExpression__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21442:1: ( ( '(' ) ) + // InternalFiacre.g:21443:1: ( '(' ) + { + // InternalFiacre.g:21443:1: ( '(' ) + // InternalFiacre.g:21444:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnqueueExpressionAccess().getLeftParenthesisKeyword_1()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEnqueueExpressionAccess().getLeftParenthesisKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__1__Impl" + + + // $ANTLR start "rule__EnqueueExpression__Group__2" + // InternalFiacre.g:21453:1: rule__EnqueueExpression__Group__2 : rule__EnqueueExpression__Group__2__Impl rule__EnqueueExpression__Group__3 ; + public final void rule__EnqueueExpression__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21457:1: ( rule__EnqueueExpression__Group__2__Impl rule__EnqueueExpression__Group__3 ) + // InternalFiacre.g:21458:2: rule__EnqueueExpression__Group__2__Impl rule__EnqueueExpression__Group__3 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__EnqueueExpression__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__EnqueueExpression__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__2" + + + // $ANTLR start "rule__EnqueueExpression__Group__2__Impl" + // InternalFiacre.g:21465:1: rule__EnqueueExpression__Group__2__Impl : ( ( rule__EnqueueExpression__ElementAssignment_2 ) ) ; + public final void rule__EnqueueExpression__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21469:1: ( ( ( rule__EnqueueExpression__ElementAssignment_2 ) ) ) + // InternalFiacre.g:21470:1: ( ( rule__EnqueueExpression__ElementAssignment_2 ) ) + { + // InternalFiacre.g:21470:1: ( ( rule__EnqueueExpression__ElementAssignment_2 ) ) + // InternalFiacre.g:21471:2: ( rule__EnqueueExpression__ElementAssignment_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnqueueExpressionAccess().getElementAssignment_2()); + } + // InternalFiacre.g:21472:2: ( rule__EnqueueExpression__ElementAssignment_2 ) + // InternalFiacre.g:21472:3: rule__EnqueueExpression__ElementAssignment_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__EnqueueExpression__ElementAssignment_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getEnqueueExpressionAccess().getElementAssignment_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__2__Impl" + + + // $ANTLR start "rule__EnqueueExpression__Group__3" + // InternalFiacre.g:21480:1: rule__EnqueueExpression__Group__3 : rule__EnqueueExpression__Group__3__Impl rule__EnqueueExpression__Group__4 ; + public final void rule__EnqueueExpression__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21484:1: ( rule__EnqueueExpression__Group__3__Impl rule__EnqueueExpression__Group__4 ) + // InternalFiacre.g:21485:2: rule__EnqueueExpression__Group__3__Impl rule__EnqueueExpression__Group__4 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__EnqueueExpression__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__EnqueueExpression__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__3" + + + // $ANTLR start "rule__EnqueueExpression__Group__3__Impl" + // InternalFiacre.g:21492:1: rule__EnqueueExpression__Group__3__Impl : ( ',' ) ; + public final void rule__EnqueueExpression__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21496:1: ( ( ',' ) ) + // InternalFiacre.g:21497:1: ( ',' ) + { + // InternalFiacre.g:21497:1: ( ',' ) + // InternalFiacre.g:21498:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnqueueExpressionAccess().getCommaKeyword_3()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEnqueueExpressionAccess().getCommaKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__3__Impl" + + + // $ANTLR start "rule__EnqueueExpression__Group__4" + // InternalFiacre.g:21507:1: rule__EnqueueExpression__Group__4 : rule__EnqueueExpression__Group__4__Impl rule__EnqueueExpression__Group__5 ; + public final void rule__EnqueueExpression__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21511:1: ( rule__EnqueueExpression__Group__4__Impl rule__EnqueueExpression__Group__5 ) + // InternalFiacre.g:21512:2: rule__EnqueueExpression__Group__4__Impl rule__EnqueueExpression__Group__5 + { + pushFollow(FollowSets000.FOLLOW_68); + rule__EnqueueExpression__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__EnqueueExpression__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__4" + + + // $ANTLR start "rule__EnqueueExpression__Group__4__Impl" + // InternalFiacre.g:21519:1: rule__EnqueueExpression__Group__4__Impl : ( ( rule__EnqueueExpression__QueueAssignment_4 ) ) ; + public final void rule__EnqueueExpression__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21523:1: ( ( ( rule__EnqueueExpression__QueueAssignment_4 ) ) ) + // InternalFiacre.g:21524:1: ( ( rule__EnqueueExpression__QueueAssignment_4 ) ) + { + // InternalFiacre.g:21524:1: ( ( rule__EnqueueExpression__QueueAssignment_4 ) ) + // InternalFiacre.g:21525:2: ( rule__EnqueueExpression__QueueAssignment_4 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnqueueExpressionAccess().getQueueAssignment_4()); + } + // InternalFiacre.g:21526:2: ( rule__EnqueueExpression__QueueAssignment_4 ) + // InternalFiacre.g:21526:3: rule__EnqueueExpression__QueueAssignment_4 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__EnqueueExpression__QueueAssignment_4(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getEnqueueExpressionAccess().getQueueAssignment_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__4__Impl" + + + // $ANTLR start "rule__EnqueueExpression__Group__5" + // InternalFiacre.g:21534:1: rule__EnqueueExpression__Group__5 : rule__EnqueueExpression__Group__5__Impl ; + public final void rule__EnqueueExpression__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21538:1: ( rule__EnqueueExpression__Group__5__Impl ) + // InternalFiacre.g:21539:2: rule__EnqueueExpression__Group__5__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__EnqueueExpression__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__5" + + + // $ANTLR start "rule__EnqueueExpression__Group__5__Impl" + // InternalFiacre.g:21545:1: rule__EnqueueExpression__Group__5__Impl : ( ')' ) ; + public final void rule__EnqueueExpression__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21549:1: ( ( ')' ) ) + // InternalFiacre.g:21550:1: ( ')' ) + { + // InternalFiacre.g:21550:1: ( ')' ) + // InternalFiacre.g:21551:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnqueueExpressionAccess().getRightParenthesisKeyword_5()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEnqueueExpressionAccess().getRightParenthesisKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__Group__5__Impl" + + + // $ANTLR start "rule__AppendExpression__Group__0" + // InternalFiacre.g:21561:1: rule__AppendExpression__Group__0 : rule__AppendExpression__Group__0__Impl rule__AppendExpression__Group__1 ; + public final void rule__AppendExpression__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21565:1: ( rule__AppendExpression__Group__0__Impl rule__AppendExpression__Group__1 ) + // InternalFiacre.g:21566:2: rule__AppendExpression__Group__0__Impl rule__AppendExpression__Group__1 + { + pushFollow(FollowSets000.FOLLOW_13); + rule__AppendExpression__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AppendExpression__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__0" + + + // $ANTLR start "rule__AppendExpression__Group__0__Impl" + // InternalFiacre.g:21573:1: rule__AppendExpression__Group__0__Impl : ( 'append' ) ; + public final void rule__AppendExpression__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21577:1: ( ( 'append' ) ) + // InternalFiacre.g:21578:1: ( 'append' ) + { + // InternalFiacre.g:21578:1: ( 'append' ) + // InternalFiacre.g:21579:2: 'append' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAppendExpressionAccess().getAppendKeyword_0()); + } + match(input,105,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAppendExpressionAccess().getAppendKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__0__Impl" + + + // $ANTLR start "rule__AppendExpression__Group__1" + // InternalFiacre.g:21588:1: rule__AppendExpression__Group__1 : rule__AppendExpression__Group__1__Impl rule__AppendExpression__Group__2 ; + public final void rule__AppendExpression__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21592:1: ( rule__AppendExpression__Group__1__Impl rule__AppendExpression__Group__2 ) + // InternalFiacre.g:21593:2: rule__AppendExpression__Group__1__Impl rule__AppendExpression__Group__2 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__AppendExpression__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AppendExpression__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__1" + + + // $ANTLR start "rule__AppendExpression__Group__1__Impl" + // InternalFiacre.g:21600:1: rule__AppendExpression__Group__1__Impl : ( '(' ) ; + public final void rule__AppendExpression__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21604:1: ( ( '(' ) ) + // InternalFiacre.g:21605:1: ( '(' ) + { + // InternalFiacre.g:21605:1: ( '(' ) + // InternalFiacre.g:21606:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAppendExpressionAccess().getLeftParenthesisKeyword_1()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAppendExpressionAccess().getLeftParenthesisKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__1__Impl" + + + // $ANTLR start "rule__AppendExpression__Group__2" + // InternalFiacre.g:21615:1: rule__AppendExpression__Group__2 : rule__AppendExpression__Group__2__Impl rule__AppendExpression__Group__3 ; + public final void rule__AppendExpression__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21619:1: ( rule__AppendExpression__Group__2__Impl rule__AppendExpression__Group__3 ) + // InternalFiacre.g:21620:2: rule__AppendExpression__Group__2__Impl rule__AppendExpression__Group__3 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__AppendExpression__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AppendExpression__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__2" + + + // $ANTLR start "rule__AppendExpression__Group__2__Impl" + // InternalFiacre.g:21627:1: rule__AppendExpression__Group__2__Impl : ( ( rule__AppendExpression__LeftAssignment_2 ) ) ; + public final void rule__AppendExpression__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21631:1: ( ( ( rule__AppendExpression__LeftAssignment_2 ) ) ) + // InternalFiacre.g:21632:1: ( ( rule__AppendExpression__LeftAssignment_2 ) ) + { + // InternalFiacre.g:21632:1: ( ( rule__AppendExpression__LeftAssignment_2 ) ) + // InternalFiacre.g:21633:2: ( rule__AppendExpression__LeftAssignment_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAppendExpressionAccess().getLeftAssignment_2()); + } + // InternalFiacre.g:21634:2: ( rule__AppendExpression__LeftAssignment_2 ) + // InternalFiacre.g:21634:3: rule__AppendExpression__LeftAssignment_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AppendExpression__LeftAssignment_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAppendExpressionAccess().getLeftAssignment_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__2__Impl" + + + // $ANTLR start "rule__AppendExpression__Group__3" + // InternalFiacre.g:21642:1: rule__AppendExpression__Group__3 : rule__AppendExpression__Group__3__Impl rule__AppendExpression__Group__4 ; + public final void rule__AppendExpression__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21646:1: ( rule__AppendExpression__Group__3__Impl rule__AppendExpression__Group__4 ) + // InternalFiacre.g:21647:2: rule__AppendExpression__Group__3__Impl rule__AppendExpression__Group__4 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__AppendExpression__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AppendExpression__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__3" + + + // $ANTLR start "rule__AppendExpression__Group__3__Impl" + // InternalFiacre.g:21654:1: rule__AppendExpression__Group__3__Impl : ( ',' ) ; + public final void rule__AppendExpression__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21658:1: ( ( ',' ) ) + // InternalFiacre.g:21659:1: ( ',' ) + { + // InternalFiacre.g:21659:1: ( ',' ) + // InternalFiacre.g:21660:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAppendExpressionAccess().getCommaKeyword_3()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAppendExpressionAccess().getCommaKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__3__Impl" + + + // $ANTLR start "rule__AppendExpression__Group__4" + // InternalFiacre.g:21669:1: rule__AppendExpression__Group__4 : rule__AppendExpression__Group__4__Impl rule__AppendExpression__Group__5 ; + public final void rule__AppendExpression__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21673:1: ( rule__AppendExpression__Group__4__Impl rule__AppendExpression__Group__5 ) + // InternalFiacre.g:21674:2: rule__AppendExpression__Group__4__Impl rule__AppendExpression__Group__5 + { + pushFollow(FollowSets000.FOLLOW_68); + rule__AppendExpression__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AppendExpression__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__4" + + + // $ANTLR start "rule__AppendExpression__Group__4__Impl" + // InternalFiacre.g:21681:1: rule__AppendExpression__Group__4__Impl : ( ( rule__AppendExpression__RightAssignment_4 ) ) ; + public final void rule__AppendExpression__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21685:1: ( ( ( rule__AppendExpression__RightAssignment_4 ) ) ) + // InternalFiacre.g:21686:1: ( ( rule__AppendExpression__RightAssignment_4 ) ) + { + // InternalFiacre.g:21686:1: ( ( rule__AppendExpression__RightAssignment_4 ) ) + // InternalFiacre.g:21687:2: ( rule__AppendExpression__RightAssignment_4 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAppendExpressionAccess().getRightAssignment_4()); + } + // InternalFiacre.g:21688:2: ( rule__AppendExpression__RightAssignment_4 ) + // InternalFiacre.g:21688:3: rule__AppendExpression__RightAssignment_4 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AppendExpression__RightAssignment_4(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAppendExpressionAccess().getRightAssignment_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__4__Impl" + + + // $ANTLR start "rule__AppendExpression__Group__5" + // InternalFiacre.g:21696:1: rule__AppendExpression__Group__5 : rule__AppendExpression__Group__5__Impl ; + public final void rule__AppendExpression__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21700:1: ( rule__AppendExpression__Group__5__Impl ) + // InternalFiacre.g:21701:2: rule__AppendExpression__Group__5__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AppendExpression__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__5" + + + // $ANTLR start "rule__AppendExpression__Group__5__Impl" + // InternalFiacre.g:21707:1: rule__AppendExpression__Group__5__Impl : ( ')' ) ; + public final void rule__AppendExpression__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21711:1: ( ( ')' ) ) + // InternalFiacre.g:21712:1: ( ')' ) + { + // InternalFiacre.g:21712:1: ( ')' ) + // InternalFiacre.g:21713:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAppendExpressionAccess().getRightParenthesisKeyword_5()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAppendExpressionAccess().getRightParenthesisKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__Group__5__Impl" + + + // $ANTLR start "rule__BooleanLiteral__Group_0__0" + // InternalFiacre.g:21723:1: rule__BooleanLiteral__Group_0__0 : rule__BooleanLiteral__Group_0__0__Impl rule__BooleanLiteral__Group_0__1 ; + public final void rule__BooleanLiteral__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21727:1: ( rule__BooleanLiteral__Group_0__0__Impl rule__BooleanLiteral__Group_0__1 ) + // InternalFiacre.g:21728:2: rule__BooleanLiteral__Group_0__0__Impl rule__BooleanLiteral__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_126); + rule__BooleanLiteral__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__BooleanLiteral__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BooleanLiteral__Group_0__0" + + + // $ANTLR start "rule__BooleanLiteral__Group_0__0__Impl" + // InternalFiacre.g:21735:1: rule__BooleanLiteral__Group_0__0__Impl : ( () ) ; + public final void rule__BooleanLiteral__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21739:1: ( ( () ) ) + // InternalFiacre.g:21740:1: ( () ) + { + // InternalFiacre.g:21740:1: ( () ) + // InternalFiacre.g:21741:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBooleanLiteralAccess().getTrueLiteralAction_0_0()); + } + // InternalFiacre.g:21742:2: () + // InternalFiacre.g:21742:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBooleanLiteralAccess().getTrueLiteralAction_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BooleanLiteral__Group_0__0__Impl" + + + // $ANTLR start "rule__BooleanLiteral__Group_0__1" + // InternalFiacre.g:21750:1: rule__BooleanLiteral__Group_0__1 : rule__BooleanLiteral__Group_0__1__Impl ; + public final void rule__BooleanLiteral__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21754:1: ( rule__BooleanLiteral__Group_0__1__Impl ) + // InternalFiacre.g:21755:2: rule__BooleanLiteral__Group_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BooleanLiteral__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__BooleanLiteral__Group_0__1" + + + // $ANTLR start "rule__BooleanLiteral__Group_0__1__Impl" + // InternalFiacre.g:21761:1: rule__BooleanLiteral__Group_0__1__Impl : ( 'true' ) ; + public final void rule__BooleanLiteral__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21765:1: ( ( 'true' ) ) + // InternalFiacre.g:21766:1: ( 'true' ) + { + // InternalFiacre.g:21766:1: ( 'true' ) + // InternalFiacre.g:21767:2: 'true' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBooleanLiteralAccess().getTrueKeyword_0_1()); + } + match(input,106,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBooleanLiteralAccess().getTrueKeyword_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BooleanLiteral__Group_0__1__Impl" + + + // $ANTLR start "rule__BooleanLiteral__Group_1__0" + // InternalFiacre.g:21777:1: rule__BooleanLiteral__Group_1__0 : rule__BooleanLiteral__Group_1__0__Impl rule__BooleanLiteral__Group_1__1 ; + public final void rule__BooleanLiteral__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21781:1: ( rule__BooleanLiteral__Group_1__0__Impl rule__BooleanLiteral__Group_1__1 ) + // InternalFiacre.g:21782:2: rule__BooleanLiteral__Group_1__0__Impl rule__BooleanLiteral__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_127); + rule__BooleanLiteral__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__BooleanLiteral__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BooleanLiteral__Group_1__0" + + + // $ANTLR start "rule__BooleanLiteral__Group_1__0__Impl" + // InternalFiacre.g:21789:1: rule__BooleanLiteral__Group_1__0__Impl : ( () ) ; + public final void rule__BooleanLiteral__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21793:1: ( ( () ) ) + // InternalFiacre.g:21794:1: ( () ) + { + // InternalFiacre.g:21794:1: ( () ) + // InternalFiacre.g:21795:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBooleanLiteralAccess().getFalseLiteralAction_1_0()); + } + // InternalFiacre.g:21796:2: () + // InternalFiacre.g:21796:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getBooleanLiteralAccess().getFalseLiteralAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BooleanLiteral__Group_1__0__Impl" + + + // $ANTLR start "rule__BooleanLiteral__Group_1__1" + // InternalFiacre.g:21804:1: rule__BooleanLiteral__Group_1__1 : rule__BooleanLiteral__Group_1__1__Impl ; + public final void rule__BooleanLiteral__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21808:1: ( rule__BooleanLiteral__Group_1__1__Impl ) + // InternalFiacre.g:21809:2: rule__BooleanLiteral__Group_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__BooleanLiteral__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__BooleanLiteral__Group_1__1" + + + // $ANTLR start "rule__BooleanLiteral__Group_1__1__Impl" + // InternalFiacre.g:21815:1: rule__BooleanLiteral__Group_1__1__Impl : ( 'false' ) ; + public final void rule__BooleanLiteral__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21819:1: ( ( 'false' ) ) + // InternalFiacre.g:21820:1: ( 'false' ) + { + // InternalFiacre.g:21820:1: ( 'false' ) + // InternalFiacre.g:21821:2: 'false' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBooleanLiteralAccess().getFalseKeyword_1_1()); + } + match(input,107,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBooleanLiteralAccess().getFalseKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BooleanLiteral__Group_1__1__Impl" + + + // $ANTLR start "rule__NaturalLowerBound__Group__0" + // InternalFiacre.g:21831:1: rule__NaturalLowerBound__Group__0 : rule__NaturalLowerBound__Group__0__Impl rule__NaturalLowerBound__Group__1 ; + public final void rule__NaturalLowerBound__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21835:1: ( rule__NaturalLowerBound__Group__0__Impl rule__NaturalLowerBound__Group__1 ) + // InternalFiacre.g:21836:2: rule__NaturalLowerBound__Group__0__Impl rule__NaturalLowerBound__Group__1 + { + pushFollow(FollowSets000.FOLLOW_69); + rule__NaturalLowerBound__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalLowerBound__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalLowerBound__Group__0" + + + // $ANTLR start "rule__NaturalLowerBound__Group__0__Impl" + // InternalFiacre.g:21843:1: rule__NaturalLowerBound__Group__0__Impl : ( ( rule__NaturalLowerBound__Alternatives_0 ) ) ; + public final void rule__NaturalLowerBound__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21847:1: ( ( ( rule__NaturalLowerBound__Alternatives_0 ) ) ) + // InternalFiacre.g:21848:1: ( ( rule__NaturalLowerBound__Alternatives_0 ) ) + { + // InternalFiacre.g:21848:1: ( ( rule__NaturalLowerBound__Alternatives_0 ) ) + // InternalFiacre.g:21849:2: ( rule__NaturalLowerBound__Alternatives_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundAccess().getAlternatives_0()); + } + // InternalFiacre.g:21850:2: ( rule__NaturalLowerBound__Alternatives_0 ) + // InternalFiacre.g:21850:3: rule__NaturalLowerBound__Alternatives_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalLowerBound__Alternatives_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundAccess().getAlternatives_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalLowerBound__Group__0__Impl" + + + // $ANTLR start "rule__NaturalLowerBound__Group__1" + // InternalFiacre.g:21858:1: rule__NaturalLowerBound__Group__1 : rule__NaturalLowerBound__Group__1__Impl ; + public final void rule__NaturalLowerBound__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21862:1: ( rule__NaturalLowerBound__Group__1__Impl ) + // InternalFiacre.g:21863:2: rule__NaturalLowerBound__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalLowerBound__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalLowerBound__Group__1" + + + // $ANTLR start "rule__NaturalLowerBound__Group__1__Impl" + // InternalFiacre.g:21869:1: rule__NaturalLowerBound__Group__1__Impl : ( ( rule__NaturalLowerBound__ValueAssignment_1 ) ) ; + public final void rule__NaturalLowerBound__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21873:1: ( ( ( rule__NaturalLowerBound__ValueAssignment_1 ) ) ) + // InternalFiacre.g:21874:1: ( ( rule__NaturalLowerBound__ValueAssignment_1 ) ) + { + // InternalFiacre.g:21874:1: ( ( rule__NaturalLowerBound__ValueAssignment_1 ) ) + // InternalFiacre.g:21875:2: ( rule__NaturalLowerBound__ValueAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundAccess().getValueAssignment_1()); + } + // InternalFiacre.g:21876:2: ( rule__NaturalLowerBound__ValueAssignment_1 ) + // InternalFiacre.g:21876:3: rule__NaturalLowerBound__ValueAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalLowerBound__ValueAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundAccess().getValueAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalLowerBound__Group__1__Impl" + + + // $ANTLR start "rule__NaturalUpperBound__Group__0" + // InternalFiacre.g:21885:1: rule__NaturalUpperBound__Group__0 : rule__NaturalUpperBound__Group__0__Impl rule__NaturalUpperBound__Group__1 ; + public final void rule__NaturalUpperBound__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21889:1: ( rule__NaturalUpperBound__Group__0__Impl rule__NaturalUpperBound__Group__1 ) + // InternalFiacre.g:21890:2: rule__NaturalUpperBound__Group__0__Impl rule__NaturalUpperBound__Group__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__NaturalUpperBound__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalUpperBound__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalUpperBound__Group__0" + + + // $ANTLR start "rule__NaturalUpperBound__Group__0__Impl" + // InternalFiacre.g:21897:1: rule__NaturalUpperBound__Group__0__Impl : ( ( rule__NaturalUpperBound__ValueAssignment_0 ) ) ; + public final void rule__NaturalUpperBound__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21901:1: ( ( ( rule__NaturalUpperBound__ValueAssignment_0 ) ) ) + // InternalFiacre.g:21902:1: ( ( rule__NaturalUpperBound__ValueAssignment_0 ) ) + { + // InternalFiacre.g:21902:1: ( ( rule__NaturalUpperBound__ValueAssignment_0 ) ) + // InternalFiacre.g:21903:2: ( rule__NaturalUpperBound__ValueAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundAccess().getValueAssignment_0()); + } + // InternalFiacre.g:21904:2: ( rule__NaturalUpperBound__ValueAssignment_0 ) + // InternalFiacre.g:21904:3: rule__NaturalUpperBound__ValueAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalUpperBound__ValueAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundAccess().getValueAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalUpperBound__Group__0__Impl" + + + // $ANTLR start "rule__NaturalUpperBound__Group__1" + // InternalFiacre.g:21912:1: rule__NaturalUpperBound__Group__1 : rule__NaturalUpperBound__Group__1__Impl ; + public final void rule__NaturalUpperBound__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21916:1: ( rule__NaturalUpperBound__Group__1__Impl ) + // InternalFiacre.g:21917:2: rule__NaturalUpperBound__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalUpperBound__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalUpperBound__Group__1" + + + // $ANTLR start "rule__NaturalUpperBound__Group__1__Impl" + // InternalFiacre.g:21923:1: rule__NaturalUpperBound__Group__1__Impl : ( ( rule__NaturalUpperBound__Alternatives_1 ) ) ; + public final void rule__NaturalUpperBound__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21927:1: ( ( ( rule__NaturalUpperBound__Alternatives_1 ) ) ) + // InternalFiacre.g:21928:1: ( ( rule__NaturalUpperBound__Alternatives_1 ) ) + { + // InternalFiacre.g:21928:1: ( ( rule__NaturalUpperBound__Alternatives_1 ) ) + // InternalFiacre.g:21929:2: ( rule__NaturalUpperBound__Alternatives_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundAccess().getAlternatives_1()); + } + // InternalFiacre.g:21930:2: ( rule__NaturalUpperBound__Alternatives_1 ) + // InternalFiacre.g:21930:3: rule__NaturalUpperBound__Alternatives_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__NaturalUpperBound__Alternatives_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundAccess().getAlternatives_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalUpperBound__Group__1__Impl" + + + // $ANTLR start "rule__DecimalLowerBound__Group__0" + // InternalFiacre.g:21939:1: rule__DecimalLowerBound__Group__0 : rule__DecimalLowerBound__Group__0__Impl rule__DecimalLowerBound__Group__1 ; + public final void rule__DecimalLowerBound__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21943:1: ( rule__DecimalLowerBound__Group__0__Impl rule__DecimalLowerBound__Group__1 ) + // InternalFiacre.g:21944:2: rule__DecimalLowerBound__Group__0__Impl rule__DecimalLowerBound__Group__1 + { + pushFollow(FollowSets000.FOLLOW_128); + rule__DecimalLowerBound__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalLowerBound__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalLowerBound__Group__0" + + + // $ANTLR start "rule__DecimalLowerBound__Group__0__Impl" + // InternalFiacre.g:21951:1: rule__DecimalLowerBound__Group__0__Impl : ( ( rule__DecimalLowerBound__Alternatives_0 ) ) ; + public final void rule__DecimalLowerBound__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21955:1: ( ( ( rule__DecimalLowerBound__Alternatives_0 ) ) ) + // InternalFiacre.g:21956:1: ( ( rule__DecimalLowerBound__Alternatives_0 ) ) + { + // InternalFiacre.g:21956:1: ( ( rule__DecimalLowerBound__Alternatives_0 ) ) + // InternalFiacre.g:21957:2: ( rule__DecimalLowerBound__Alternatives_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundAccess().getAlternatives_0()); + } + // InternalFiacre.g:21958:2: ( rule__DecimalLowerBound__Alternatives_0 ) + // InternalFiacre.g:21958:3: rule__DecimalLowerBound__Alternatives_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalLowerBound__Alternatives_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundAccess().getAlternatives_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalLowerBound__Group__0__Impl" + + + // $ANTLR start "rule__DecimalLowerBound__Group__1" + // InternalFiacre.g:21966:1: rule__DecimalLowerBound__Group__1 : rule__DecimalLowerBound__Group__1__Impl ; + public final void rule__DecimalLowerBound__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21970:1: ( rule__DecimalLowerBound__Group__1__Impl ) + // InternalFiacre.g:21971:2: rule__DecimalLowerBound__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalLowerBound__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalLowerBound__Group__1" + + + // $ANTLR start "rule__DecimalLowerBound__Group__1__Impl" + // InternalFiacre.g:21977:1: rule__DecimalLowerBound__Group__1__Impl : ( ( rule__DecimalLowerBound__ValueAssignment_1 ) ) ; + public final void rule__DecimalLowerBound__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21981:1: ( ( ( rule__DecimalLowerBound__ValueAssignment_1 ) ) ) + // InternalFiacre.g:21982:1: ( ( rule__DecimalLowerBound__ValueAssignment_1 ) ) + { + // InternalFiacre.g:21982:1: ( ( rule__DecimalLowerBound__ValueAssignment_1 ) ) + // InternalFiacre.g:21983:2: ( rule__DecimalLowerBound__ValueAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundAccess().getValueAssignment_1()); + } + // InternalFiacre.g:21984:2: ( rule__DecimalLowerBound__ValueAssignment_1 ) + // InternalFiacre.g:21984:3: rule__DecimalLowerBound__ValueAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalLowerBound__ValueAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundAccess().getValueAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalLowerBound__Group__1__Impl" + + + // $ANTLR start "rule__DecimalUpperBound__Group__0" + // InternalFiacre.g:21993:1: rule__DecimalUpperBound__Group__0 : rule__DecimalUpperBound__Group__0__Impl rule__DecimalUpperBound__Group__1 ; + public final void rule__DecimalUpperBound__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:21997:1: ( rule__DecimalUpperBound__Group__0__Impl rule__DecimalUpperBound__Group__1 ) + // InternalFiacre.g:21998:2: rule__DecimalUpperBound__Group__0__Impl rule__DecimalUpperBound__Group__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__DecimalUpperBound__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalUpperBound__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalUpperBound__Group__0" + + + // $ANTLR start "rule__DecimalUpperBound__Group__0__Impl" + // InternalFiacre.g:22005:1: rule__DecimalUpperBound__Group__0__Impl : ( ( rule__DecimalUpperBound__ValueAssignment_0 ) ) ; + public final void rule__DecimalUpperBound__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22009:1: ( ( ( rule__DecimalUpperBound__ValueAssignment_0 ) ) ) + // InternalFiacre.g:22010:1: ( ( rule__DecimalUpperBound__ValueAssignment_0 ) ) + { + // InternalFiacre.g:22010:1: ( ( rule__DecimalUpperBound__ValueAssignment_0 ) ) + // InternalFiacre.g:22011:2: ( rule__DecimalUpperBound__ValueAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundAccess().getValueAssignment_0()); + } + // InternalFiacre.g:22012:2: ( rule__DecimalUpperBound__ValueAssignment_0 ) + // InternalFiacre.g:22012:3: rule__DecimalUpperBound__ValueAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalUpperBound__ValueAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundAccess().getValueAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalUpperBound__Group__0__Impl" + + + // $ANTLR start "rule__DecimalUpperBound__Group__1" + // InternalFiacre.g:22020:1: rule__DecimalUpperBound__Group__1 : rule__DecimalUpperBound__Group__1__Impl ; + public final void rule__DecimalUpperBound__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22024:1: ( rule__DecimalUpperBound__Group__1__Impl ) + // InternalFiacre.g:22025:2: rule__DecimalUpperBound__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalUpperBound__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalUpperBound__Group__1" + + + // $ANTLR start "rule__DecimalUpperBound__Group__1__Impl" + // InternalFiacre.g:22031:1: rule__DecimalUpperBound__Group__1__Impl : ( ( rule__DecimalUpperBound__Alternatives_1 ) ) ; + public final void rule__DecimalUpperBound__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22035:1: ( ( ( rule__DecimalUpperBound__Alternatives_1 ) ) ) + // InternalFiacre.g:22036:1: ( ( rule__DecimalUpperBound__Alternatives_1 ) ) + { + // InternalFiacre.g:22036:1: ( ( rule__DecimalUpperBound__Alternatives_1 ) ) + // InternalFiacre.g:22037:2: ( rule__DecimalUpperBound__Alternatives_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundAccess().getAlternatives_1()); + } + // InternalFiacre.g:22038:2: ( rule__DecimalUpperBound__Alternatives_1 ) + // InternalFiacre.g:22038:3: rule__DecimalUpperBound__Alternatives_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DecimalUpperBound__Alternatives_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundAccess().getAlternatives_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalUpperBound__Group__1__Impl" + + + // $ANTLR start "rule__VariableLowerBound__Group__0" + // InternalFiacre.g:22047:1: rule__VariableLowerBound__Group__0 : rule__VariableLowerBound__Group__0__Impl rule__VariableLowerBound__Group__1 ; + public final void rule__VariableLowerBound__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22051:1: ( rule__VariableLowerBound__Group__0__Impl rule__VariableLowerBound__Group__1 ) + // InternalFiacre.g:22052:2: rule__VariableLowerBound__Group__0__Impl rule__VariableLowerBound__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__VariableLowerBound__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableLowerBound__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableLowerBound__Group__0" + + + // $ANTLR start "rule__VariableLowerBound__Group__0__Impl" + // InternalFiacre.g:22059:1: rule__VariableLowerBound__Group__0__Impl : ( ( rule__VariableLowerBound__Alternatives_0 ) ) ; + public final void rule__VariableLowerBound__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22063:1: ( ( ( rule__VariableLowerBound__Alternatives_0 ) ) ) + // InternalFiacre.g:22064:1: ( ( rule__VariableLowerBound__Alternatives_0 ) ) + { + // InternalFiacre.g:22064:1: ( ( rule__VariableLowerBound__Alternatives_0 ) ) + // InternalFiacre.g:22065:2: ( rule__VariableLowerBound__Alternatives_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getAlternatives_0()); + } + // InternalFiacre.g:22066:2: ( rule__VariableLowerBound__Alternatives_0 ) + // InternalFiacre.g:22066:3: rule__VariableLowerBound__Alternatives_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableLowerBound__Alternatives_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getAlternatives_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableLowerBound__Group__0__Impl" + + + // $ANTLR start "rule__VariableLowerBound__Group__1" + // InternalFiacre.g:22074:1: rule__VariableLowerBound__Group__1 : rule__VariableLowerBound__Group__1__Impl ; + public final void rule__VariableLowerBound__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22078:1: ( rule__VariableLowerBound__Group__1__Impl ) + // InternalFiacre.g:22079:2: rule__VariableLowerBound__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableLowerBound__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableLowerBound__Group__1" + + + // $ANTLR start "rule__VariableLowerBound__Group__1__Impl" + // InternalFiacre.g:22085:1: rule__VariableLowerBound__Group__1__Impl : ( ( rule__VariableLowerBound__VariableAssignment_1 ) ) ; + public final void rule__VariableLowerBound__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22089:1: ( ( ( rule__VariableLowerBound__VariableAssignment_1 ) ) ) + // InternalFiacre.g:22090:1: ( ( rule__VariableLowerBound__VariableAssignment_1 ) ) + { + // InternalFiacre.g:22090:1: ( ( rule__VariableLowerBound__VariableAssignment_1 ) ) + // InternalFiacre.g:22091:2: ( rule__VariableLowerBound__VariableAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getVariableAssignment_1()); + } + // InternalFiacre.g:22092:2: ( rule__VariableLowerBound__VariableAssignment_1 ) + // InternalFiacre.g:22092:3: rule__VariableLowerBound__VariableAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableLowerBound__VariableAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getVariableAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableLowerBound__Group__1__Impl" + + + // $ANTLR start "rule__VariableUpperBound__Group__0" + // InternalFiacre.g:22101:1: rule__VariableUpperBound__Group__0 : rule__VariableUpperBound__Group__0__Impl rule__VariableUpperBound__Group__1 ; + public final void rule__VariableUpperBound__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22105:1: ( rule__VariableUpperBound__Group__0__Impl rule__VariableUpperBound__Group__1 ) + // InternalFiacre.g:22106:2: rule__VariableUpperBound__Group__0__Impl rule__VariableUpperBound__Group__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__VariableUpperBound__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableUpperBound__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableUpperBound__Group__0" + + + // $ANTLR start "rule__VariableUpperBound__Group__0__Impl" + // InternalFiacre.g:22113:1: rule__VariableUpperBound__Group__0__Impl : ( ( rule__VariableUpperBound__VariableAssignment_0 ) ) ; + public final void rule__VariableUpperBound__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22117:1: ( ( ( rule__VariableUpperBound__VariableAssignment_0 ) ) ) + // InternalFiacre.g:22118:1: ( ( rule__VariableUpperBound__VariableAssignment_0 ) ) + { + // InternalFiacre.g:22118:1: ( ( rule__VariableUpperBound__VariableAssignment_0 ) ) + // InternalFiacre.g:22119:2: ( rule__VariableUpperBound__VariableAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getVariableAssignment_0()); + } + // InternalFiacre.g:22120:2: ( rule__VariableUpperBound__VariableAssignment_0 ) + // InternalFiacre.g:22120:3: rule__VariableUpperBound__VariableAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableUpperBound__VariableAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getVariableAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableUpperBound__Group__0__Impl" + + + // $ANTLR start "rule__VariableUpperBound__Group__1" + // InternalFiacre.g:22128:1: rule__VariableUpperBound__Group__1 : rule__VariableUpperBound__Group__1__Impl ; + public final void rule__VariableUpperBound__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22132:1: ( rule__VariableUpperBound__Group__1__Impl ) + // InternalFiacre.g:22133:2: rule__VariableUpperBound__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableUpperBound__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableUpperBound__Group__1" + + + // $ANTLR start "rule__VariableUpperBound__Group__1__Impl" + // InternalFiacre.g:22139:1: rule__VariableUpperBound__Group__1__Impl : ( ( rule__VariableUpperBound__Alternatives_1 ) ) ; + public final void rule__VariableUpperBound__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22143:1: ( ( ( rule__VariableUpperBound__Alternatives_1 ) ) ) + // InternalFiacre.g:22144:1: ( ( rule__VariableUpperBound__Alternatives_1 ) ) + { + // InternalFiacre.g:22144:1: ( ( rule__VariableUpperBound__Alternatives_1 ) ) + // InternalFiacre.g:22145:2: ( rule__VariableUpperBound__Alternatives_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getAlternatives_1()); + } + // InternalFiacre.g:22146:2: ( rule__VariableUpperBound__Alternatives_1 ) + // InternalFiacre.g:22146:3: rule__VariableUpperBound__Alternatives_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__VariableUpperBound__Alternatives_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getAlternatives_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableUpperBound__Group__1__Impl" + + + // $ANTLR start "rule__InfiniteUpperBound__Group__0" + // InternalFiacre.g:22155:1: rule__InfiniteUpperBound__Group__0 : rule__InfiniteUpperBound__Group__0__Impl rule__InfiniteUpperBound__Group__1 ; + public final void rule__InfiniteUpperBound__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22159:1: ( rule__InfiniteUpperBound__Group__0__Impl rule__InfiniteUpperBound__Group__1 ) + // InternalFiacre.g:22160:2: rule__InfiniteUpperBound__Group__0__Impl rule__InfiniteUpperBound__Group__1 + { + pushFollow(FollowSets000.FOLLOW_48); + rule__InfiniteUpperBound__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__InfiniteUpperBound__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfiniteUpperBound__Group__0" + + + // $ANTLR start "rule__InfiniteUpperBound__Group__0__Impl" + // InternalFiacre.g:22167:1: rule__InfiniteUpperBound__Group__0__Impl : ( () ) ; + public final void rule__InfiniteUpperBound__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22171:1: ( ( () ) ) + // InternalFiacre.g:22172:1: ( () ) + { + // InternalFiacre.g:22172:1: ( () ) + // InternalFiacre.g:22173:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInfiniteUpperBoundAccess().getInfiniteUpperBoundAction_0()); + } + // InternalFiacre.g:22174:2: () + // InternalFiacre.g:22174:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getInfiniteUpperBoundAccess().getInfiniteUpperBoundAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfiniteUpperBound__Group__0__Impl" + + + // $ANTLR start "rule__InfiniteUpperBound__Group__1" + // InternalFiacre.g:22182:1: rule__InfiniteUpperBound__Group__1 : rule__InfiniteUpperBound__Group__1__Impl rule__InfiniteUpperBound__Group__2 ; + public final void rule__InfiniteUpperBound__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22186:1: ( rule__InfiniteUpperBound__Group__1__Impl rule__InfiniteUpperBound__Group__2 ) + // InternalFiacre.g:22187:2: rule__InfiniteUpperBound__Group__1__Impl rule__InfiniteUpperBound__Group__2 + { + pushFollow(FollowSets000.FOLLOW_50); + rule__InfiniteUpperBound__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__InfiniteUpperBound__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfiniteUpperBound__Group__1" + + + // $ANTLR start "rule__InfiniteUpperBound__Group__1__Impl" + // InternalFiacre.g:22194:1: rule__InfiniteUpperBound__Group__1__Impl : ( '...' ) ; + public final void rule__InfiniteUpperBound__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22198:1: ( ( '...' ) ) + // InternalFiacre.g:22199:1: ( '...' ) + { + // InternalFiacre.g:22199:1: ( '...' ) + // InternalFiacre.g:22200:2: '...' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInfiniteUpperBoundAccess().getFullStopFullStopFullStopKeyword_1()); + } + match(input,108,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInfiniteUpperBoundAccess().getFullStopFullStopFullStopKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfiniteUpperBound__Group__1__Impl" + + + // $ANTLR start "rule__InfiniteUpperBound__Group__2" + // InternalFiacre.g:22209:1: rule__InfiniteUpperBound__Group__2 : rule__InfiniteUpperBound__Group__2__Impl ; + public final void rule__InfiniteUpperBound__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22213:1: ( rule__InfiniteUpperBound__Group__2__Impl ) + // InternalFiacre.g:22214:2: rule__InfiniteUpperBound__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InfiniteUpperBound__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfiniteUpperBound__Group__2" + + + // $ANTLR start "rule__InfiniteUpperBound__Group__2__Impl" + // InternalFiacre.g:22220:1: rule__InfiniteUpperBound__Group__2__Impl : ( '[' ) ; + public final void rule__InfiniteUpperBound__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22224:1: ( ( '[' ) ) + // InternalFiacre.g:22225:1: ( '[' ) + { + // InternalFiacre.g:22225:1: ( '[' ) + // InternalFiacre.g:22226:2: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInfiniteUpperBoundAccess().getLeftSquareBracketKeyword_2()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInfiniteUpperBoundAccess().getLeftSquareBracketKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfiniteUpperBound__Group__2__Impl" + + + // $ANTLR start "rule__Requirement__Group__0" + // InternalFiacre.g:22236:1: rule__Requirement__Group__0 : rule__Requirement__Group__0__Impl rule__Requirement__Group__1 ; + public final void rule__Requirement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22240:1: ( rule__Requirement__Group__0__Impl rule__Requirement__Group__1 ) + // InternalFiacre.g:22241:2: rule__Requirement__Group__0__Impl rule__Requirement__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__Requirement__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group__0" + + + // $ANTLR start "rule__Requirement__Group__0__Impl" + // InternalFiacre.g:22248:1: rule__Requirement__Group__0__Impl : ( 'assert' ) ; + public final void rule__Requirement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22252:1: ( ( 'assert' ) ) + // InternalFiacre.g:22253:1: ( 'assert' ) + { + // InternalFiacre.g:22253:1: ( 'assert' ) + // InternalFiacre.g:22254:2: 'assert' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getAssertKeyword_0()); + } + match(input,109,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getAssertKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group__0__Impl" + + + // $ANTLR start "rule__Requirement__Group__1" + // InternalFiacre.g:22263:1: rule__Requirement__Group__1 : rule__Requirement__Group__1__Impl rule__Requirement__Group__2 ; + public final void rule__Requirement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22267:1: ( rule__Requirement__Group__1__Impl rule__Requirement__Group__2 ) + // InternalFiacre.g:22268:2: rule__Requirement__Group__1__Impl rule__Requirement__Group__2 + { + pushFollow(FollowSets000.FOLLOW_129); + rule__Requirement__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group__1" + + + // $ANTLR start "rule__Requirement__Group__1__Impl" + // InternalFiacre.g:22275:1: rule__Requirement__Group__1__Impl : ( ( rule__Requirement__PropertyAssignment_1 ) ) ; + public final void rule__Requirement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22279:1: ( ( ( rule__Requirement__PropertyAssignment_1 ) ) ) + // InternalFiacre.g:22280:1: ( ( rule__Requirement__PropertyAssignment_1 ) ) + { + // InternalFiacre.g:22280:1: ( ( rule__Requirement__PropertyAssignment_1 ) ) + // InternalFiacre.g:22281:2: ( rule__Requirement__PropertyAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getPropertyAssignment_1()); + } + // InternalFiacre.g:22282:2: ( rule__Requirement__PropertyAssignment_1 ) + // InternalFiacre.g:22282:3: rule__Requirement__PropertyAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__PropertyAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getPropertyAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group__1__Impl" + + + // $ANTLR start "rule__Requirement__Group__2" + // InternalFiacre.g:22290:1: rule__Requirement__Group__2 : rule__Requirement__Group__2__Impl rule__Requirement__Group__3 ; + public final void rule__Requirement__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22294:1: ( rule__Requirement__Group__2__Impl rule__Requirement__Group__3 ) + // InternalFiacre.g:22295:2: rule__Requirement__Group__2__Impl rule__Requirement__Group__3 + { + pushFollow(FollowSets000.FOLLOW_129); + rule__Requirement__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group__2" + + + // $ANTLR start "rule__Requirement__Group__2__Impl" + // InternalFiacre.g:22302:1: rule__Requirement__Group__2__Impl : ( ( rule__Requirement__Group_2__0 )? ) ; + public final void rule__Requirement__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22306:1: ( ( ( rule__Requirement__Group_2__0 )? ) ) + // InternalFiacre.g:22307:1: ( ( rule__Requirement__Group_2__0 )? ) + { + // InternalFiacre.g:22307:1: ( ( rule__Requirement__Group_2__0 )? ) + // InternalFiacre.g:22308:2: ( rule__Requirement__Group_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getGroup_2()); + } + // InternalFiacre.g:22309:2: ( rule__Requirement__Group_2__0 )? + int alt175=2; + int LA175_0 = input.LA(1); + + if ( (LA175_0==110) ) { + alt175=1; + } + switch (alt175) { + case 1 : + // InternalFiacre.g:22309:3: rule__Requirement__Group_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getGroup_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group__2__Impl" + + + // $ANTLR start "rule__Requirement__Group__3" + // InternalFiacre.g:22317:1: rule__Requirement__Group__3 : rule__Requirement__Group__3__Impl ; + public final void rule__Requirement__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22321:1: ( rule__Requirement__Group__3__Impl ) + // InternalFiacre.g:22322:2: rule__Requirement__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group__3" + + + // $ANTLR start "rule__Requirement__Group__3__Impl" + // InternalFiacre.g:22328:1: rule__Requirement__Group__3__Impl : ( ( rule__Requirement__Group_3__0 )? ) ; + public final void rule__Requirement__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22332:1: ( ( ( rule__Requirement__Group_3__0 )? ) ) + // InternalFiacre.g:22333:1: ( ( rule__Requirement__Group_3__0 )? ) + { + // InternalFiacre.g:22333:1: ( ( rule__Requirement__Group_3__0 )? ) + // InternalFiacre.g:22334:2: ( rule__Requirement__Group_3__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getGroup_3()); + } + // InternalFiacre.g:22335:2: ( rule__Requirement__Group_3__0 )? + int alt176=2; + int LA176_0 = input.LA(1); + + if ( (LA176_0==111) ) { + alt176=1; + } + switch (alt176) { + case 1 : + // InternalFiacre.g:22335:3: rule__Requirement__Group_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__Group_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getGroup_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group__3__Impl" + + + // $ANTLR start "rule__Requirement__Group_2__0" + // InternalFiacre.g:22344:1: rule__Requirement__Group_2__0 : rule__Requirement__Group_2__0__Impl rule__Requirement__Group_2__1 ; + public final void rule__Requirement__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22348:1: ( rule__Requirement__Group_2__0__Impl rule__Requirement__Group_2__1 ) + // InternalFiacre.g:22349:2: rule__Requirement__Group_2__0__Impl rule__Requirement__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_12); + rule__Requirement__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group_2__0" + + + // $ANTLR start "rule__Requirement__Group_2__0__Impl" + // InternalFiacre.g:22356:1: rule__Requirement__Group_2__0__Impl : ( '-true' ) ; + public final void rule__Requirement__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22360:1: ( ( '-true' ) ) + // InternalFiacre.g:22361:1: ( '-true' ) + { + // InternalFiacre.g:22361:1: ( '-true' ) + // InternalFiacre.g:22362:2: '-true' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getTrueKeyword_2_0()); + } + match(input,110,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getTrueKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group_2__0__Impl" + + + // $ANTLR start "rule__Requirement__Group_2__1" + // InternalFiacre.g:22371:1: rule__Requirement__Group_2__1 : rule__Requirement__Group_2__1__Impl ; + public final void rule__Requirement__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22375:1: ( rule__Requirement__Group_2__1__Impl ) + // InternalFiacre.g:22376:2: rule__Requirement__Group_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__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__Requirement__Group_2__1" + + + // $ANTLR start "rule__Requirement__Group_2__1__Impl" + // InternalFiacre.g:22382:1: rule__Requirement__Group_2__1__Impl : ( ( rule__Requirement__PositiveAssignment_2_1 ) ) ; + public final void rule__Requirement__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22386:1: ( ( ( rule__Requirement__PositiveAssignment_2_1 ) ) ) + // InternalFiacre.g:22387:1: ( ( rule__Requirement__PositiveAssignment_2_1 ) ) + { + // InternalFiacre.g:22387:1: ( ( rule__Requirement__PositiveAssignment_2_1 ) ) + // InternalFiacre.g:22388:2: ( rule__Requirement__PositiveAssignment_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getPositiveAssignment_2_1()); + } + // InternalFiacre.g:22389:2: ( rule__Requirement__PositiveAssignment_2_1 ) + // InternalFiacre.g:22389:3: rule__Requirement__PositiveAssignment_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__PositiveAssignment_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getPositiveAssignment_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group_2__1__Impl" + + + // $ANTLR start "rule__Requirement__Group_3__0" + // InternalFiacre.g:22398:1: rule__Requirement__Group_3__0 : rule__Requirement__Group_3__0__Impl rule__Requirement__Group_3__1 ; + public final void rule__Requirement__Group_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22402:1: ( rule__Requirement__Group_3__0__Impl rule__Requirement__Group_3__1 ) + // InternalFiacre.g:22403:2: rule__Requirement__Group_3__0__Impl rule__Requirement__Group_3__1 + { + pushFollow(FollowSets000.FOLLOW_12); + rule__Requirement__Group_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__Group_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group_3__0" + + + // $ANTLR start "rule__Requirement__Group_3__0__Impl" + // InternalFiacre.g:22410:1: rule__Requirement__Group_3__0__Impl : ( '-false' ) ; + public final void rule__Requirement__Group_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22414:1: ( ( '-false' ) ) + // InternalFiacre.g:22415:1: ( '-false' ) + { + // InternalFiacre.g:22415:1: ( '-false' ) + // InternalFiacre.g:22416:2: '-false' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getFalseKeyword_3_0()); + } + match(input,111,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getFalseKeyword_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group_3__0__Impl" + + + // $ANTLR start "rule__Requirement__Group_3__1" + // InternalFiacre.g:22425:1: rule__Requirement__Group_3__1 : rule__Requirement__Group_3__1__Impl ; + public final void rule__Requirement__Group_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22429:1: ( rule__Requirement__Group_3__1__Impl ) + // InternalFiacre.g:22430:2: rule__Requirement__Group_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__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__Requirement__Group_3__1" + + + // $ANTLR start "rule__Requirement__Group_3__1__Impl" + // InternalFiacre.g:22436:1: rule__Requirement__Group_3__1__Impl : ( ( rule__Requirement__NegativeAssignment_3_1 ) ) ; + public final void rule__Requirement__Group_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22440:1: ( ( ( rule__Requirement__NegativeAssignment_3_1 ) ) ) + // InternalFiacre.g:22441:1: ( ( rule__Requirement__NegativeAssignment_3_1 ) ) + { + // InternalFiacre.g:22441:1: ( ( rule__Requirement__NegativeAssignment_3_1 ) ) + // InternalFiacre.g:22442:2: ( rule__Requirement__NegativeAssignment_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getNegativeAssignment_3_1()); + } + // InternalFiacre.g:22443:2: ( rule__Requirement__NegativeAssignment_3_1 ) + // InternalFiacre.g:22443:3: rule__Requirement__NegativeAssignment_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Requirement__NegativeAssignment_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getNegativeAssignment_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__Group_3__1__Impl" + + + // $ANTLR start "rule__PropertyDeclaration__Group__0" + // InternalFiacre.g:22452:1: rule__PropertyDeclaration__Group__0 : rule__PropertyDeclaration__Group__0__Impl rule__PropertyDeclaration__Group__1 ; + public final void rule__PropertyDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22456:1: ( rule__PropertyDeclaration__Group__0__Impl rule__PropertyDeclaration__Group__1 ) + // InternalFiacre.g:22457:2: rule__PropertyDeclaration__Group__0__Impl rule__PropertyDeclaration__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__PropertyDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDeclaration__Group__0" + + + // $ANTLR start "rule__PropertyDeclaration__Group__0__Impl" + // InternalFiacre.g:22464:1: rule__PropertyDeclaration__Group__0__Impl : ( 'property' ) ; + public final void rule__PropertyDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22468:1: ( ( 'property' ) ) + // InternalFiacre.g:22469:1: ( 'property' ) + { + // InternalFiacre.g:22469:1: ( 'property' ) + // InternalFiacre.g:22470:2: 'property' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDeclarationAccess().getPropertyKeyword_0()); + } + match(input,112,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDeclarationAccess().getPropertyKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__PropertyDeclaration__Group__1" + // InternalFiacre.g:22479:1: rule__PropertyDeclaration__Group__1 : rule__PropertyDeclaration__Group__1__Impl rule__PropertyDeclaration__Group__2 ; + public final void rule__PropertyDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22483:1: ( rule__PropertyDeclaration__Group__1__Impl rule__PropertyDeclaration__Group__2 ) + // InternalFiacre.g:22484:2: rule__PropertyDeclaration__Group__1__Impl rule__PropertyDeclaration__Group__2 + { + pushFollow(FollowSets000.FOLLOW_16); + rule__PropertyDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDeclaration__Group__1" + + + // $ANTLR start "rule__PropertyDeclaration__Group__1__Impl" + // InternalFiacre.g:22491:1: rule__PropertyDeclaration__Group__1__Impl : ( ( rule__PropertyDeclaration__NameAssignment_1 ) ) ; + public final void rule__PropertyDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22495:1: ( ( ( rule__PropertyDeclaration__NameAssignment_1 ) ) ) + // InternalFiacre.g:22496:1: ( ( rule__PropertyDeclaration__NameAssignment_1 ) ) + { + // InternalFiacre.g:22496:1: ( ( rule__PropertyDeclaration__NameAssignment_1 ) ) + // InternalFiacre.g:22497:2: ( rule__PropertyDeclaration__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDeclarationAccess().getNameAssignment_1()); + } + // InternalFiacre.g:22498:2: ( rule__PropertyDeclaration__NameAssignment_1 ) + // InternalFiacre.g:22498:3: rule__PropertyDeclaration__NameAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDeclaration__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDeclarationAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__PropertyDeclaration__Group__2" + // InternalFiacre.g:22506:1: rule__PropertyDeclaration__Group__2 : rule__PropertyDeclaration__Group__2__Impl rule__PropertyDeclaration__Group__3 ; + public final void rule__PropertyDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22510:1: ( rule__PropertyDeclaration__Group__2__Impl rule__PropertyDeclaration__Group__3 ) + // InternalFiacre.g:22511:2: rule__PropertyDeclaration__Group__2__Impl rule__PropertyDeclaration__Group__3 + { + pushFollow(FollowSets000.FOLLOW_130); + rule__PropertyDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDeclaration__Group__2" + + + // $ANTLR start "rule__PropertyDeclaration__Group__2__Impl" + // InternalFiacre.g:22518:1: rule__PropertyDeclaration__Group__2__Impl : ( 'is' ) ; + public final void rule__PropertyDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22522:1: ( ( 'is' ) ) + // InternalFiacre.g:22523:1: ( 'is' ) + { + // InternalFiacre.g:22523:1: ( 'is' ) + // InternalFiacre.g:22524:2: 'is' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDeclarationAccess().getIsKeyword_2()); + } + match(input,21,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDeclarationAccess().getIsKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__PropertyDeclaration__Group__3" + // InternalFiacre.g:22533:1: rule__PropertyDeclaration__Group__3 : rule__PropertyDeclaration__Group__3__Impl ; + public final void rule__PropertyDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22537:1: ( rule__PropertyDeclaration__Group__3__Impl ) + // InternalFiacre.g:22538:2: rule__PropertyDeclaration__Group__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDeclaration__Group__3" + + + // $ANTLR start "rule__PropertyDeclaration__Group__3__Impl" + // InternalFiacre.g:22544:1: rule__PropertyDeclaration__Group__3__Impl : ( ( rule__PropertyDeclaration__PropertyAssignment_3 ) ) ; + public final void rule__PropertyDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22548:1: ( ( ( rule__PropertyDeclaration__PropertyAssignment_3 ) ) ) + // InternalFiacre.g:22549:1: ( ( rule__PropertyDeclaration__PropertyAssignment_3 ) ) + { + // InternalFiacre.g:22549:1: ( ( rule__PropertyDeclaration__PropertyAssignment_3 ) ) + // InternalFiacre.g:22550:2: ( rule__PropertyDeclaration__PropertyAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDeclarationAccess().getPropertyAssignment_3()); + } + // InternalFiacre.g:22551:2: ( rule__PropertyDeclaration__PropertyAssignment_3 ) + // InternalFiacre.g:22551:3: rule__PropertyDeclaration__PropertyAssignment_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDeclaration__PropertyAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDeclarationAccess().getPropertyAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__0" + // InternalFiacre.g:22560:1: rule__QuantifiedProperty__Group_0__0 : rule__QuantifiedProperty__Group_0__0__Impl rule__QuantifiedProperty__Group_0__1 ; + public final void rule__QuantifiedProperty__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22564:1: ( rule__QuantifiedProperty__Group_0__0__Impl rule__QuantifiedProperty__Group_0__1 ) + // InternalFiacre.g:22565:2: rule__QuantifiedProperty__Group_0__0__Impl rule__QuantifiedProperty__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__QuantifiedProperty__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__0" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__0__Impl" + // InternalFiacre.g:22572:1: rule__QuantifiedProperty__Group_0__0__Impl : ( ( rule__QuantifiedProperty__Alternatives_0_0 ) ) ; + public final void rule__QuantifiedProperty__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22576:1: ( ( ( rule__QuantifiedProperty__Alternatives_0_0 ) ) ) + // InternalFiacre.g:22577:1: ( ( rule__QuantifiedProperty__Alternatives_0_0 ) ) + { + // InternalFiacre.g:22577:1: ( ( rule__QuantifiedProperty__Alternatives_0_0 ) ) + // InternalFiacre.g:22578:2: ( rule__QuantifiedProperty__Alternatives_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getAlternatives_0_0()); + } + // InternalFiacre.g:22579:2: ( rule__QuantifiedProperty__Alternatives_0_0 ) + // InternalFiacre.g:22579:3: rule__QuantifiedProperty__Alternatives_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Alternatives_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getAlternatives_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__0__Impl" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__1" + // InternalFiacre.g:22587:1: rule__QuantifiedProperty__Group_0__1 : rule__QuantifiedProperty__Group_0__1__Impl rule__QuantifiedProperty__Group_0__2 ; + public final void rule__QuantifiedProperty__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22591:1: ( rule__QuantifiedProperty__Group_0__1__Impl rule__QuantifiedProperty__Group_0__2 ) + // InternalFiacre.g:22592:2: rule__QuantifiedProperty__Group_0__1__Impl rule__QuantifiedProperty__Group_0__2 + { + pushFollow(FollowSets000.FOLLOW_46); + rule__QuantifiedProperty__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__1" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__1__Impl" + // InternalFiacre.g:22599:1: rule__QuantifiedProperty__Group_0__1__Impl : ( ( rule__QuantifiedProperty__VariableAssignment_0_1 ) ) ; + public final void rule__QuantifiedProperty__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22603:1: ( ( ( rule__QuantifiedProperty__VariableAssignment_0_1 ) ) ) + // InternalFiacre.g:22604:1: ( ( rule__QuantifiedProperty__VariableAssignment_0_1 ) ) + { + // InternalFiacre.g:22604:1: ( ( rule__QuantifiedProperty__VariableAssignment_0_1 ) ) + // InternalFiacre.g:22605:2: ( rule__QuantifiedProperty__VariableAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getVariableAssignment_0_1()); + } + // InternalFiacre.g:22606:2: ( rule__QuantifiedProperty__VariableAssignment_0_1 ) + // InternalFiacre.g:22606:3: rule__QuantifiedProperty__VariableAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__VariableAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getVariableAssignment_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__1__Impl" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__2" + // InternalFiacre.g:22614:1: rule__QuantifiedProperty__Group_0__2 : rule__QuantifiedProperty__Group_0__2__Impl rule__QuantifiedProperty__Group_0__3 ; + public final void rule__QuantifiedProperty__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22618:1: ( rule__QuantifiedProperty__Group_0__2__Impl rule__QuantifiedProperty__Group_0__3 ) + // InternalFiacre.g:22619:2: rule__QuantifiedProperty__Group_0__2__Impl rule__QuantifiedProperty__Group_0__3 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__QuantifiedProperty__Group_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__2" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__2__Impl" + // InternalFiacre.g:22626:1: rule__QuantifiedProperty__Group_0__2__Impl : ( 'in' ) ; + public final void rule__QuantifiedProperty__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22630:1: ( ( 'in' ) ) + // InternalFiacre.g:22631:1: ( 'in' ) + { + // InternalFiacre.g:22631:1: ( 'in' ) + // InternalFiacre.g:22632:2: 'in' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getInKeyword_0_2()); + } + match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getInKeyword_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__2__Impl" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__3" + // InternalFiacre.g:22641:1: rule__QuantifiedProperty__Group_0__3 : rule__QuantifiedProperty__Group_0__3__Impl rule__QuantifiedProperty__Group_0__4 ; + public final void rule__QuantifiedProperty__Group_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22645:1: ( rule__QuantifiedProperty__Group_0__3__Impl rule__QuantifiedProperty__Group_0__4 ) + // InternalFiacre.g:22646:2: rule__QuantifiedProperty__Group_0__3__Impl rule__QuantifiedProperty__Group_0__4 + { + pushFollow(FollowSets000.FOLLOW_131); + rule__QuantifiedProperty__Group_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_0__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__3" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__3__Impl" + // InternalFiacre.g:22653:1: rule__QuantifiedProperty__Group_0__3__Impl : ( ( rule__QuantifiedProperty__TypeAssignment_0_3 ) ) ; + public final void rule__QuantifiedProperty__Group_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22657:1: ( ( ( rule__QuantifiedProperty__TypeAssignment_0_3 ) ) ) + // InternalFiacre.g:22658:1: ( ( rule__QuantifiedProperty__TypeAssignment_0_3 ) ) + { + // InternalFiacre.g:22658:1: ( ( rule__QuantifiedProperty__TypeAssignment_0_3 ) ) + // InternalFiacre.g:22659:2: ( rule__QuantifiedProperty__TypeAssignment_0_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getTypeAssignment_0_3()); + } + // InternalFiacre.g:22660:2: ( rule__QuantifiedProperty__TypeAssignment_0_3 ) + // InternalFiacre.g:22660:3: rule__QuantifiedProperty__TypeAssignment_0_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__TypeAssignment_0_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getTypeAssignment_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__3__Impl" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__4" + // InternalFiacre.g:22668:1: rule__QuantifiedProperty__Group_0__4 : rule__QuantifiedProperty__Group_0__4__Impl rule__QuantifiedProperty__Group_0__5 ; + public final void rule__QuantifiedProperty__Group_0__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22672:1: ( rule__QuantifiedProperty__Group_0__4__Impl rule__QuantifiedProperty__Group_0__5 ) + // InternalFiacre.g:22673:2: rule__QuantifiedProperty__Group_0__4__Impl rule__QuantifiedProperty__Group_0__5 + { + pushFollow(FollowSets000.FOLLOW_130); + rule__QuantifiedProperty__Group_0__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_0__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__4" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__4__Impl" + // InternalFiacre.g:22680:1: rule__QuantifiedProperty__Group_0__4__Impl : ( '.' ) ; + public final void rule__QuantifiedProperty__Group_0__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22684:1: ( ( '.' ) ) + // InternalFiacre.g:22685:1: ( '.' ) + { + // InternalFiacre.g:22685:1: ( '.' ) + // InternalFiacre.g:22686:2: '.' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getFullStopKeyword_0_4()); + } + match(input,61,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getFullStopKeyword_0_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__4__Impl" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__5" + // InternalFiacre.g:22695:1: rule__QuantifiedProperty__Group_0__5 : rule__QuantifiedProperty__Group_0__5__Impl ; + public final void rule__QuantifiedProperty__Group_0__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22699:1: ( rule__QuantifiedProperty__Group_0__5__Impl ) + // InternalFiacre.g:22700:2: rule__QuantifiedProperty__Group_0__5__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_0__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__5" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0__5__Impl" + // InternalFiacre.g:22706:1: rule__QuantifiedProperty__Group_0__5__Impl : ( ( rule__QuantifiedProperty__ChildAssignment_0_5 ) ) ; + public final void rule__QuantifiedProperty__Group_0__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22710:1: ( ( ( rule__QuantifiedProperty__ChildAssignment_0_5 ) ) ) + // InternalFiacre.g:22711:1: ( ( rule__QuantifiedProperty__ChildAssignment_0_5 ) ) + { + // InternalFiacre.g:22711:1: ( ( rule__QuantifiedProperty__ChildAssignment_0_5 ) ) + // InternalFiacre.g:22712:2: ( rule__QuantifiedProperty__ChildAssignment_0_5 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getChildAssignment_0_5()); + } + // InternalFiacre.g:22713:2: ( rule__QuantifiedProperty__ChildAssignment_0_5 ) + // InternalFiacre.g:22713:3: rule__QuantifiedProperty__ChildAssignment_0_5 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__ChildAssignment_0_5(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getChildAssignment_0_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0__5__Impl" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0_0_0__0" + // InternalFiacre.g:22722:1: rule__QuantifiedProperty__Group_0_0_0__0 : rule__QuantifiedProperty__Group_0_0_0__0__Impl rule__QuantifiedProperty__Group_0_0_0__1 ; + public final void rule__QuantifiedProperty__Group_0_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22726:1: ( rule__QuantifiedProperty__Group_0_0_0__0__Impl rule__QuantifiedProperty__Group_0_0_0__1 ) + // InternalFiacre.g:22727:2: rule__QuantifiedProperty__Group_0_0_0__0__Impl rule__QuantifiedProperty__Group_0_0_0__1 + { + pushFollow(FollowSets000.FOLLOW_90); + rule__QuantifiedProperty__Group_0_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__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__QuantifiedProperty__Group_0_0_0__0" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0_0_0__0__Impl" + // InternalFiacre.g:22734:1: rule__QuantifiedProperty__Group_0_0_0__0__Impl : ( () ) ; + public final void rule__QuantifiedProperty__Group_0_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22738:1: ( ( () ) ) + // InternalFiacre.g:22739:1: ( () ) + { + // InternalFiacre.g:22739:1: ( () ) + // InternalFiacre.g:22740:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getAllPropertyAction_0_0_0_0()); + } + // InternalFiacre.g:22741:2: () + // InternalFiacre.g:22741:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getAllPropertyAction_0_0_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0_0_0__0__Impl" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0_0_0__1" + // InternalFiacre.g:22749:1: rule__QuantifiedProperty__Group_0_0_0__1 : rule__QuantifiedProperty__Group_0_0_0__1__Impl ; + public final void rule__QuantifiedProperty__Group_0_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22753:1: ( rule__QuantifiedProperty__Group_0_0_0__1__Impl ) + // InternalFiacre.g:22754:2: rule__QuantifiedProperty__Group_0_0_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_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__QuantifiedProperty__Group_0_0_0__1" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0_0_0__1__Impl" + // InternalFiacre.g:22760:1: rule__QuantifiedProperty__Group_0_0_0__1__Impl : ( 'all' ) ; + public final void rule__QuantifiedProperty__Group_0_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22764:1: ( ( 'all' ) ) + // InternalFiacre.g:22765:1: ( 'all' ) + { + // InternalFiacre.g:22765:1: ( 'all' ) + // InternalFiacre.g:22766:2: 'all' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getAllKeyword_0_0_0_1()); + } + match(input,77,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getAllKeyword_0_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0_0_0__1__Impl" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0_0_1__0" + // InternalFiacre.g:22776:1: rule__QuantifiedProperty__Group_0_0_1__0 : rule__QuantifiedProperty__Group_0_0_1__0__Impl rule__QuantifiedProperty__Group_0_0_1__1 ; + public final void rule__QuantifiedProperty__Group_0_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22780:1: ( rule__QuantifiedProperty__Group_0_0_1__0__Impl rule__QuantifiedProperty__Group_0_0_1__1 ) + // InternalFiacre.g:22781:2: rule__QuantifiedProperty__Group_0_0_1__0__Impl rule__QuantifiedProperty__Group_0_0_1__1 + { + pushFollow(FollowSets000.FOLLOW_91); + rule__QuantifiedProperty__Group_0_0_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__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__QuantifiedProperty__Group_0_0_1__0" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0_0_1__0__Impl" + // InternalFiacre.g:22788:1: rule__QuantifiedProperty__Group_0_0_1__0__Impl : ( () ) ; + public final void rule__QuantifiedProperty__Group_0_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22792:1: ( ( () ) ) + // InternalFiacre.g:22793:1: ( () ) + { + // InternalFiacre.g:22793:1: ( () ) + // InternalFiacre.g:22794:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getExistsPropertyAction_0_0_1_0()); + } + // InternalFiacre.g:22795:2: () + // InternalFiacre.g:22795:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getExistsPropertyAction_0_0_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0_0_1__0__Impl" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0_0_1__1" + // InternalFiacre.g:22803:1: rule__QuantifiedProperty__Group_0_0_1__1 : rule__QuantifiedProperty__Group_0_0_1__1__Impl ; + public final void rule__QuantifiedProperty__Group_0_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22807:1: ( rule__QuantifiedProperty__Group_0_0_1__1__Impl ) + // InternalFiacre.g:22808:2: rule__QuantifiedProperty__Group_0_0_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__QuantifiedProperty__Group_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__QuantifiedProperty__Group_0_0_1__1" + + + // $ANTLR start "rule__QuantifiedProperty__Group_0_0_1__1__Impl" + // InternalFiacre.g:22814:1: rule__QuantifiedProperty__Group_0_0_1__1__Impl : ( 'exists' ) ; + public final void rule__QuantifiedProperty__Group_0_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22818:1: ( ( 'exists' ) ) + // InternalFiacre.g:22819:1: ( 'exists' ) + { + // InternalFiacre.g:22819:1: ( 'exists' ) + // InternalFiacre.g:22820:2: 'exists' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getExistsKeyword_0_0_1_1()); + } + match(input,78,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getExistsKeyword_0_0_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__Group_0_0_1__1__Impl" + + + // $ANTLR start "rule__PropertyDisjunction__Group__0" + // InternalFiacre.g:22830:1: rule__PropertyDisjunction__Group__0 : rule__PropertyDisjunction__Group__0__Impl rule__PropertyDisjunction__Group__1 ; + public final void rule__PropertyDisjunction__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22834:1: ( rule__PropertyDisjunction__Group__0__Impl rule__PropertyDisjunction__Group__1 ) + // InternalFiacre.g:22835:2: rule__PropertyDisjunction__Group__0__Impl rule__PropertyDisjunction__Group__1 + { + pushFollow(FollowSets000.FOLLOW_93); + rule__PropertyDisjunction__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDisjunction__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDisjunction__Group__0" + + + // $ANTLR start "rule__PropertyDisjunction__Group__0__Impl" + // InternalFiacre.g:22842:1: rule__PropertyDisjunction__Group__0__Impl : ( rulePropertyImplication ) ; + public final void rule__PropertyDisjunction__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22846:1: ( ( rulePropertyImplication ) ) + // InternalFiacre.g:22847:1: ( rulePropertyImplication ) + { + // InternalFiacre.g:22847:1: ( rulePropertyImplication ) + // InternalFiacre.g:22848:2: rulePropertyImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDisjunctionAccess().getPropertyImplicationParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePropertyImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDisjunctionAccess().getPropertyImplicationParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDisjunction__Group__0__Impl" + + + // $ANTLR start "rule__PropertyDisjunction__Group__1" + // InternalFiacre.g:22857:1: rule__PropertyDisjunction__Group__1 : rule__PropertyDisjunction__Group__1__Impl ; + public final void rule__PropertyDisjunction__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22861:1: ( rule__PropertyDisjunction__Group__1__Impl ) + // InternalFiacre.g:22862:2: rule__PropertyDisjunction__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDisjunction__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDisjunction__Group__1" + + + // $ANTLR start "rule__PropertyDisjunction__Group__1__Impl" + // InternalFiacre.g:22868:1: rule__PropertyDisjunction__Group__1__Impl : ( ( rule__PropertyDisjunction__Group_1__0 )* ) ; + public final void rule__PropertyDisjunction__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22872:1: ( ( ( rule__PropertyDisjunction__Group_1__0 )* ) ) + // InternalFiacre.g:22873:1: ( ( rule__PropertyDisjunction__Group_1__0 )* ) + { + // InternalFiacre.g:22873:1: ( ( rule__PropertyDisjunction__Group_1__0 )* ) + // InternalFiacre.g:22874:2: ( rule__PropertyDisjunction__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDisjunctionAccess().getGroup_1()); + } + // InternalFiacre.g:22875:2: ( rule__PropertyDisjunction__Group_1__0 )* + loop177: + do { + int alt177=2; + int LA177_0 = input.LA(1); + + if ( (LA177_0==79) ) { + alt177=1; + } + + + switch (alt177) { + case 1 : + // InternalFiacre.g:22875:3: rule__PropertyDisjunction__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_94); + rule__PropertyDisjunction__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop177; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDisjunctionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDisjunction__Group__1__Impl" + + + // $ANTLR start "rule__PropertyDisjunction__Group_1__0" + // InternalFiacre.g:22884:1: rule__PropertyDisjunction__Group_1__0 : rule__PropertyDisjunction__Group_1__0__Impl rule__PropertyDisjunction__Group_1__1 ; + public final void rule__PropertyDisjunction__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22888:1: ( rule__PropertyDisjunction__Group_1__0__Impl rule__PropertyDisjunction__Group_1__1 ) + // InternalFiacre.g:22889:2: rule__PropertyDisjunction__Group_1__0__Impl rule__PropertyDisjunction__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_93); + rule__PropertyDisjunction__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDisjunction__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDisjunction__Group_1__0" + + + // $ANTLR start "rule__PropertyDisjunction__Group_1__0__Impl" + // InternalFiacre.g:22896:1: rule__PropertyDisjunction__Group_1__0__Impl : ( () ) ; + public final void rule__PropertyDisjunction__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22900:1: ( ( () ) ) + // InternalFiacre.g:22901:1: ( () ) + { + // InternalFiacre.g:22901:1: ( () ) + // InternalFiacre.g:22902:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDisjunctionAccess().getPropertyDisjunctionLeftAction_1_0()); + } + // InternalFiacre.g:22903:2: () + // InternalFiacre.g:22903:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDisjunctionAccess().getPropertyDisjunctionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDisjunction__Group_1__0__Impl" + + + // $ANTLR start "rule__PropertyDisjunction__Group_1__1" + // InternalFiacre.g:22911:1: rule__PropertyDisjunction__Group_1__1 : rule__PropertyDisjunction__Group_1__1__Impl rule__PropertyDisjunction__Group_1__2 ; + public final void rule__PropertyDisjunction__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22915:1: ( rule__PropertyDisjunction__Group_1__1__Impl rule__PropertyDisjunction__Group_1__2 ) + // InternalFiacre.g:22916:2: rule__PropertyDisjunction__Group_1__1__Impl rule__PropertyDisjunction__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_130); + rule__PropertyDisjunction__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDisjunction__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDisjunction__Group_1__1" + + + // $ANTLR start "rule__PropertyDisjunction__Group_1__1__Impl" + // InternalFiacre.g:22923:1: rule__PropertyDisjunction__Group_1__1__Impl : ( 'or' ) ; + public final void rule__PropertyDisjunction__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22927:1: ( ( 'or' ) ) + // InternalFiacre.g:22928:1: ( 'or' ) + { + // InternalFiacre.g:22928:1: ( 'or' ) + // InternalFiacre.g:22929:2: 'or' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDisjunctionAccess().getOrKeyword_1_1()); + } + match(input,79,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDisjunctionAccess().getOrKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDisjunction__Group_1__1__Impl" + + + // $ANTLR start "rule__PropertyDisjunction__Group_1__2" + // InternalFiacre.g:22938:1: rule__PropertyDisjunction__Group_1__2 : rule__PropertyDisjunction__Group_1__2__Impl ; + public final void rule__PropertyDisjunction__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22942:1: ( rule__PropertyDisjunction__Group_1__2__Impl ) + // InternalFiacre.g:22943:2: rule__PropertyDisjunction__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDisjunction__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__PropertyDisjunction__Group_1__2" + + + // $ANTLR start "rule__PropertyDisjunction__Group_1__2__Impl" + // InternalFiacre.g:22949:1: rule__PropertyDisjunction__Group_1__2__Impl : ( ( rule__PropertyDisjunction__RightAssignment_1_2 ) ) ; + public final void rule__PropertyDisjunction__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22953:1: ( ( ( rule__PropertyDisjunction__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:22954:1: ( ( rule__PropertyDisjunction__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:22954:1: ( ( rule__PropertyDisjunction__RightAssignment_1_2 ) ) + // InternalFiacre.g:22955:2: ( rule__PropertyDisjunction__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDisjunctionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:22956:2: ( rule__PropertyDisjunction__RightAssignment_1_2 ) + // InternalFiacre.g:22956:3: rule__PropertyDisjunction__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyDisjunction__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDisjunctionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDisjunction__Group_1__2__Impl" + + + // $ANTLR start "rule__PropertyImplication__Group__0" + // InternalFiacre.g:22965:1: rule__PropertyImplication__Group__0 : rule__PropertyImplication__Group__0__Impl rule__PropertyImplication__Group__1 ; + public final void rule__PropertyImplication__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22969:1: ( rule__PropertyImplication__Group__0__Impl rule__PropertyImplication__Group__1 ) + // InternalFiacre.g:22970:2: rule__PropertyImplication__Group__0__Impl rule__PropertyImplication__Group__1 + { + pushFollow(FollowSets000.FOLLOW_95); + rule__PropertyImplication__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyImplication__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyImplication__Group__0" + + + // $ANTLR start "rule__PropertyImplication__Group__0__Impl" + // InternalFiacre.g:22977:1: rule__PropertyImplication__Group__0__Impl : ( rulePropertyConjunction ) ; + public final void rule__PropertyImplication__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22981:1: ( ( rulePropertyConjunction ) ) + // InternalFiacre.g:22982:1: ( rulePropertyConjunction ) + { + // InternalFiacre.g:22982:1: ( rulePropertyConjunction ) + // InternalFiacre.g:22983:2: rulePropertyConjunction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyImplicationAccess().getPropertyConjunctionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePropertyConjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyImplicationAccess().getPropertyConjunctionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyImplication__Group__0__Impl" + + + // $ANTLR start "rule__PropertyImplication__Group__1" + // InternalFiacre.g:22992:1: rule__PropertyImplication__Group__1 : rule__PropertyImplication__Group__1__Impl ; + public final void rule__PropertyImplication__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:22996:1: ( rule__PropertyImplication__Group__1__Impl ) + // InternalFiacre.g:22997:2: rule__PropertyImplication__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyImplication__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyImplication__Group__1" + + + // $ANTLR start "rule__PropertyImplication__Group__1__Impl" + // InternalFiacre.g:23003:1: rule__PropertyImplication__Group__1__Impl : ( ( rule__PropertyImplication__Group_1__0 )? ) ; + public final void rule__PropertyImplication__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23007:1: ( ( ( rule__PropertyImplication__Group_1__0 )? ) ) + // InternalFiacre.g:23008:1: ( ( rule__PropertyImplication__Group_1__0 )? ) + { + // InternalFiacre.g:23008:1: ( ( rule__PropertyImplication__Group_1__0 )? ) + // InternalFiacre.g:23009:2: ( rule__PropertyImplication__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyImplicationAccess().getGroup_1()); + } + // InternalFiacre.g:23010:2: ( rule__PropertyImplication__Group_1__0 )? + int alt178=2; + int LA178_0 = input.LA(1); + + if ( (LA178_0==80) ) { + alt178=1; + } + switch (alt178) { + case 1 : + // InternalFiacre.g:23010:3: rule__PropertyImplication__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyImplication__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyImplicationAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyImplication__Group__1__Impl" + + + // $ANTLR start "rule__PropertyImplication__Group_1__0" + // InternalFiacre.g:23019:1: rule__PropertyImplication__Group_1__0 : rule__PropertyImplication__Group_1__0__Impl rule__PropertyImplication__Group_1__1 ; + public final void rule__PropertyImplication__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23023:1: ( rule__PropertyImplication__Group_1__0__Impl rule__PropertyImplication__Group_1__1 ) + // InternalFiacre.g:23024:2: rule__PropertyImplication__Group_1__0__Impl rule__PropertyImplication__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_95); + rule__PropertyImplication__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyImplication__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyImplication__Group_1__0" + + + // $ANTLR start "rule__PropertyImplication__Group_1__0__Impl" + // InternalFiacre.g:23031:1: rule__PropertyImplication__Group_1__0__Impl : ( () ) ; + public final void rule__PropertyImplication__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23035:1: ( ( () ) ) + // InternalFiacre.g:23036:1: ( () ) + { + // InternalFiacre.g:23036:1: ( () ) + // InternalFiacre.g:23037:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyImplicationAccess().getPropertyImplicationLeftAction_1_0()); + } + // InternalFiacre.g:23038:2: () + // InternalFiacre.g:23038:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyImplicationAccess().getPropertyImplicationLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyImplication__Group_1__0__Impl" + + + // $ANTLR start "rule__PropertyImplication__Group_1__1" + // InternalFiacre.g:23046:1: rule__PropertyImplication__Group_1__1 : rule__PropertyImplication__Group_1__1__Impl rule__PropertyImplication__Group_1__2 ; + public final void rule__PropertyImplication__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23050:1: ( rule__PropertyImplication__Group_1__1__Impl rule__PropertyImplication__Group_1__2 ) + // InternalFiacre.g:23051:2: rule__PropertyImplication__Group_1__1__Impl rule__PropertyImplication__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_130); + rule__PropertyImplication__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyImplication__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyImplication__Group_1__1" + + + // $ANTLR start "rule__PropertyImplication__Group_1__1__Impl" + // InternalFiacre.g:23058:1: rule__PropertyImplication__Group_1__1__Impl : ( '=>' ) ; + public final void rule__PropertyImplication__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23062:1: ( ( '=>' ) ) + // InternalFiacre.g:23063:1: ( '=>' ) + { + // InternalFiacre.g:23063:1: ( '=>' ) + // InternalFiacre.g:23064:2: '=>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyImplication__Group_1__1__Impl" + + + // $ANTLR start "rule__PropertyImplication__Group_1__2" + // InternalFiacre.g:23073:1: rule__PropertyImplication__Group_1__2 : rule__PropertyImplication__Group_1__2__Impl ; + public final void rule__PropertyImplication__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23077:1: ( rule__PropertyImplication__Group_1__2__Impl ) + // InternalFiacre.g:23078:2: rule__PropertyImplication__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyImplication__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__PropertyImplication__Group_1__2" + + + // $ANTLR start "rule__PropertyImplication__Group_1__2__Impl" + // InternalFiacre.g:23084:1: rule__PropertyImplication__Group_1__2__Impl : ( ( rule__PropertyImplication__RightAssignment_1_2 ) ) ; + public final void rule__PropertyImplication__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23088:1: ( ( ( rule__PropertyImplication__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:23089:1: ( ( rule__PropertyImplication__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:23089:1: ( ( rule__PropertyImplication__RightAssignment_1_2 ) ) + // InternalFiacre.g:23090:2: ( rule__PropertyImplication__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyImplicationAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:23091:2: ( rule__PropertyImplication__RightAssignment_1_2 ) + // InternalFiacre.g:23091:3: rule__PropertyImplication__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyImplication__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyImplicationAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyImplication__Group_1__2__Impl" + + + // $ANTLR start "rule__PropertyConjunction__Group__0" + // InternalFiacre.g:23100:1: rule__PropertyConjunction__Group__0 : rule__PropertyConjunction__Group__0__Impl rule__PropertyConjunction__Group__1 ; + public final void rule__PropertyConjunction__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23104:1: ( rule__PropertyConjunction__Group__0__Impl rule__PropertyConjunction__Group__1 ) + // InternalFiacre.g:23105:2: rule__PropertyConjunction__Group__0__Impl rule__PropertyConjunction__Group__1 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__PropertyConjunction__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyConjunction__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyConjunction__Group__0" + + + // $ANTLR start "rule__PropertyConjunction__Group__0__Impl" + // InternalFiacre.g:23112:1: rule__PropertyConjunction__Group__0__Impl : ( rulePropertyNegation ) ; + public final void rule__PropertyConjunction__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23116:1: ( ( rulePropertyNegation ) ) + // InternalFiacre.g:23117:1: ( rulePropertyNegation ) + { + // InternalFiacre.g:23117:1: ( rulePropertyNegation ) + // InternalFiacre.g:23118:2: rulePropertyNegation + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyConjunctionAccess().getPropertyNegationParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePropertyNegation(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyConjunctionAccess().getPropertyNegationParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyConjunction__Group__0__Impl" + + + // $ANTLR start "rule__PropertyConjunction__Group__1" + // InternalFiacre.g:23127:1: rule__PropertyConjunction__Group__1 : rule__PropertyConjunction__Group__1__Impl ; + public final void rule__PropertyConjunction__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23131:1: ( rule__PropertyConjunction__Group__1__Impl ) + // InternalFiacre.g:23132:2: rule__PropertyConjunction__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyConjunction__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyConjunction__Group__1" + + + // $ANTLR start "rule__PropertyConjunction__Group__1__Impl" + // InternalFiacre.g:23138:1: rule__PropertyConjunction__Group__1__Impl : ( ( rule__PropertyConjunction__Group_1__0 )* ) ; + public final void rule__PropertyConjunction__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23142:1: ( ( ( rule__PropertyConjunction__Group_1__0 )* ) ) + // InternalFiacre.g:23143:1: ( ( rule__PropertyConjunction__Group_1__0 )* ) + { + // InternalFiacre.g:23143:1: ( ( rule__PropertyConjunction__Group_1__0 )* ) + // InternalFiacre.g:23144:2: ( rule__PropertyConjunction__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyConjunctionAccess().getGroup_1()); + } + // InternalFiacre.g:23145:2: ( rule__PropertyConjunction__Group_1__0 )* + loop179: + do { + int alt179=2; + int LA179_0 = input.LA(1); + + if ( (LA179_0==81) ) { + alt179=1; + } + + + switch (alt179) { + case 1 : + // InternalFiacre.g:23145:3: rule__PropertyConjunction__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_97); + rule__PropertyConjunction__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop179; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyConjunctionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyConjunction__Group__1__Impl" + + + // $ANTLR start "rule__PropertyConjunction__Group_1__0" + // InternalFiacre.g:23154:1: rule__PropertyConjunction__Group_1__0 : rule__PropertyConjunction__Group_1__0__Impl rule__PropertyConjunction__Group_1__1 ; + public final void rule__PropertyConjunction__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23158:1: ( rule__PropertyConjunction__Group_1__0__Impl rule__PropertyConjunction__Group_1__1 ) + // InternalFiacre.g:23159:2: rule__PropertyConjunction__Group_1__0__Impl rule__PropertyConjunction__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__PropertyConjunction__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyConjunction__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyConjunction__Group_1__0" + + + // $ANTLR start "rule__PropertyConjunction__Group_1__0__Impl" + // InternalFiacre.g:23166:1: rule__PropertyConjunction__Group_1__0__Impl : ( () ) ; + public final void rule__PropertyConjunction__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23170:1: ( ( () ) ) + // InternalFiacre.g:23171:1: ( () ) + { + // InternalFiacre.g:23171:1: ( () ) + // InternalFiacre.g:23172:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyConjunctionAccess().getPropertyConjunctionLeftAction_1_0()); + } + // InternalFiacre.g:23173:2: () + // InternalFiacre.g:23173:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyConjunctionAccess().getPropertyConjunctionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyConjunction__Group_1__0__Impl" + + + // $ANTLR start "rule__PropertyConjunction__Group_1__1" + // InternalFiacre.g:23181:1: rule__PropertyConjunction__Group_1__1 : rule__PropertyConjunction__Group_1__1__Impl rule__PropertyConjunction__Group_1__2 ; + public final void rule__PropertyConjunction__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23185:1: ( rule__PropertyConjunction__Group_1__1__Impl rule__PropertyConjunction__Group_1__2 ) + // InternalFiacre.g:23186:2: rule__PropertyConjunction__Group_1__1__Impl rule__PropertyConjunction__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_130); + rule__PropertyConjunction__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyConjunction__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyConjunction__Group_1__1" + + + // $ANTLR start "rule__PropertyConjunction__Group_1__1__Impl" + // InternalFiacre.g:23193:1: rule__PropertyConjunction__Group_1__1__Impl : ( 'and' ) ; + public final void rule__PropertyConjunction__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23197:1: ( ( 'and' ) ) + // InternalFiacre.g:23198:1: ( 'and' ) + { + // InternalFiacre.g:23198:1: ( 'and' ) + // InternalFiacre.g:23199:2: 'and' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyConjunctionAccess().getAndKeyword_1_1()); + } + match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyConjunctionAccess().getAndKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyConjunction__Group_1__1__Impl" + + + // $ANTLR start "rule__PropertyConjunction__Group_1__2" + // InternalFiacre.g:23208:1: rule__PropertyConjunction__Group_1__2 : rule__PropertyConjunction__Group_1__2__Impl ; + public final void rule__PropertyConjunction__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23212:1: ( rule__PropertyConjunction__Group_1__2__Impl ) + // InternalFiacre.g:23213:2: rule__PropertyConjunction__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyConjunction__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__PropertyConjunction__Group_1__2" + + + // $ANTLR start "rule__PropertyConjunction__Group_1__2__Impl" + // InternalFiacre.g:23219:1: rule__PropertyConjunction__Group_1__2__Impl : ( ( rule__PropertyConjunction__RightAssignment_1_2 ) ) ; + public final void rule__PropertyConjunction__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23223:1: ( ( ( rule__PropertyConjunction__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:23224:1: ( ( rule__PropertyConjunction__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:23224:1: ( ( rule__PropertyConjunction__RightAssignment_1_2 ) ) + // InternalFiacre.g:23225:2: ( rule__PropertyConjunction__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyConjunctionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:23226:2: ( rule__PropertyConjunction__RightAssignment_1_2 ) + // InternalFiacre.g:23226:3: rule__PropertyConjunction__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyConjunction__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyConjunctionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyConjunction__Group_1__2__Impl" + + + // $ANTLR start "rule__PropertyNegation__Group_0__0" + // InternalFiacre.g:23235:1: rule__PropertyNegation__Group_0__0 : rule__PropertyNegation__Group_0__0__Impl rule__PropertyNegation__Group_0__1 ; + public final void rule__PropertyNegation__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23239:1: ( rule__PropertyNegation__Group_0__0__Impl rule__PropertyNegation__Group_0__1 ) + // InternalFiacre.g:23240:2: rule__PropertyNegation__Group_0__0__Impl rule__PropertyNegation__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_113); + rule__PropertyNegation__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyNegation__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyNegation__Group_0__0" + + + // $ANTLR start "rule__PropertyNegation__Group_0__0__Impl" + // InternalFiacre.g:23247:1: rule__PropertyNegation__Group_0__0__Impl : ( () ) ; + public final void rule__PropertyNegation__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23251:1: ( ( () ) ) + // InternalFiacre.g:23252:1: ( () ) + { + // InternalFiacre.g:23252:1: ( () ) + // InternalFiacre.g:23253:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyNegationAccess().getPropertyNegationAction_0_0()); + } + // InternalFiacre.g:23254:2: () + // InternalFiacre.g:23254:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyNegationAccess().getPropertyNegationAction_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyNegation__Group_0__0__Impl" + + + // $ANTLR start "rule__PropertyNegation__Group_0__1" + // InternalFiacre.g:23262:1: rule__PropertyNegation__Group_0__1 : rule__PropertyNegation__Group_0__1__Impl rule__PropertyNegation__Group_0__2 ; + public final void rule__PropertyNegation__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23266:1: ( rule__PropertyNegation__Group_0__1__Impl rule__PropertyNegation__Group_0__2 ) + // InternalFiacre.g:23267:2: rule__PropertyNegation__Group_0__1__Impl rule__PropertyNegation__Group_0__2 + { + pushFollow(FollowSets000.FOLLOW_130); + rule__PropertyNegation__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyNegation__Group_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyNegation__Group_0__1" + + + // $ANTLR start "rule__PropertyNegation__Group_0__1__Impl" + // InternalFiacre.g:23274:1: rule__PropertyNegation__Group_0__1__Impl : ( 'not' ) ; + public final void rule__PropertyNegation__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23278:1: ( ( 'not' ) ) + // InternalFiacre.g:23279:1: ( 'not' ) + { + // InternalFiacre.g:23279:1: ( 'not' ) + // InternalFiacre.g:23280:2: 'not' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyNegationAccess().getNotKeyword_0_1()); + } + match(input,91,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyNegationAccess().getNotKeyword_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyNegation__Group_0__1__Impl" + + + // $ANTLR start "rule__PropertyNegation__Group_0__2" + // InternalFiacre.g:23289:1: rule__PropertyNegation__Group_0__2 : rule__PropertyNegation__Group_0__2__Impl ; + public final void rule__PropertyNegation__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23293:1: ( rule__PropertyNegation__Group_0__2__Impl ) + // InternalFiacre.g:23294:2: rule__PropertyNegation__Group_0__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyNegation__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__PropertyNegation__Group_0__2" + + + // $ANTLR start "rule__PropertyNegation__Group_0__2__Impl" + // InternalFiacre.g:23300:1: rule__PropertyNegation__Group_0__2__Impl : ( ( rule__PropertyNegation__ChildAssignment_0_2 ) ) ; + public final void rule__PropertyNegation__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23304:1: ( ( ( rule__PropertyNegation__ChildAssignment_0_2 ) ) ) + // InternalFiacre.g:23305:1: ( ( rule__PropertyNegation__ChildAssignment_0_2 ) ) + { + // InternalFiacre.g:23305:1: ( ( rule__PropertyNegation__ChildAssignment_0_2 ) ) + // InternalFiacre.g:23306:2: ( rule__PropertyNegation__ChildAssignment_0_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyNegationAccess().getChildAssignment_0_2()); + } + // InternalFiacre.g:23307:2: ( rule__PropertyNegation__ChildAssignment_0_2 ) + // InternalFiacre.g:23307:3: rule__PropertyNegation__ChildAssignment_0_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PropertyNegation__ChildAssignment_0_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyNegationAccess().getChildAssignment_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyNegation__Group_0__2__Impl" + + + // $ANTLR start "rule__AtomicProperty__Group_1__0" + // InternalFiacre.g:23316:1: rule__AtomicProperty__Group_1__0 : rule__AtomicProperty__Group_1__0__Impl rule__AtomicProperty__Group_1__1 ; + public final void rule__AtomicProperty__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23320:1: ( rule__AtomicProperty__Group_1__0__Impl rule__AtomicProperty__Group_1__1 ) + // InternalFiacre.g:23321:2: rule__AtomicProperty__Group_1__0__Impl rule__AtomicProperty__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_130); + rule__AtomicProperty__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicProperty__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicProperty__Group_1__0" + + + // $ANTLR start "rule__AtomicProperty__Group_1__0__Impl" + // InternalFiacre.g:23328:1: rule__AtomicProperty__Group_1__0__Impl : ( '(' ) ; + public final void rule__AtomicProperty__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23332:1: ( ( '(' ) ) + // InternalFiacre.g:23333:1: ( '(' ) + { + // InternalFiacre.g:23333:1: ( '(' ) + // InternalFiacre.g:23334:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicPropertyAccess().getLeftParenthesisKeyword_1_0()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicPropertyAccess().getLeftParenthesisKeyword_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicProperty__Group_1__0__Impl" + + + // $ANTLR start "rule__AtomicProperty__Group_1__1" + // InternalFiacre.g:23343:1: rule__AtomicProperty__Group_1__1 : rule__AtomicProperty__Group_1__1__Impl rule__AtomicProperty__Group_1__2 ; + public final void rule__AtomicProperty__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23347:1: ( rule__AtomicProperty__Group_1__1__Impl rule__AtomicProperty__Group_1__2 ) + // InternalFiacre.g:23348:2: rule__AtomicProperty__Group_1__1__Impl rule__AtomicProperty__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_68); + rule__AtomicProperty__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicProperty__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicProperty__Group_1__1" + + + // $ANTLR start "rule__AtomicProperty__Group_1__1__Impl" + // InternalFiacre.g:23355:1: rule__AtomicProperty__Group_1__1__Impl : ( ruleProperty ) ; + public final void rule__AtomicProperty__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23359:1: ( ( ruleProperty ) ) + // InternalFiacre.g:23360:1: ( ruleProperty ) + { + // InternalFiacre.g:23360:1: ( ruleProperty ) + // InternalFiacre.g:23361:2: ruleProperty + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicPropertyAccess().getPropertyParserRuleCall_1_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicPropertyAccess().getPropertyParserRuleCall_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicProperty__Group_1__1__Impl" + + + // $ANTLR start "rule__AtomicProperty__Group_1__2" + // InternalFiacre.g:23370:1: rule__AtomicProperty__Group_1__2 : rule__AtomicProperty__Group_1__2__Impl ; + public final void rule__AtomicProperty__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23374:1: ( rule__AtomicProperty__Group_1__2__Impl ) + // InternalFiacre.g:23375:2: rule__AtomicProperty__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicProperty__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__AtomicProperty__Group_1__2" + + + // $ANTLR start "rule__AtomicProperty__Group_1__2__Impl" + // InternalFiacre.g:23381:1: rule__AtomicProperty__Group_1__2__Impl : ( ')' ) ; + public final void rule__AtomicProperty__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23385:1: ( ( ')' ) ) + // InternalFiacre.g:23386:1: ( ')' ) + { + // InternalFiacre.g:23386:1: ( ')' ) + // InternalFiacre.g:23387:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicPropertyAccess().getRightParenthesisKeyword_1_2()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicPropertyAccess().getRightParenthesisKeyword_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicProperty__Group_1__2__Impl" + + + // $ANTLR start "rule__LTLPattern__Group__0" + // InternalFiacre.g:23397:1: rule__LTLPattern__Group__0 : rule__LTLPattern__Group__0__Impl rule__LTLPattern__Group__1 ; + public final void rule__LTLPattern__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23401:1: ( rule__LTLPattern__Group__0__Impl rule__LTLPattern__Group__1 ) + // InternalFiacre.g:23402:2: rule__LTLPattern__Group__0__Impl rule__LTLPattern__Group__1 + { + pushFollow(FollowSets000.FOLLOW_132); + rule__LTLPattern__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLPattern__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLPattern__Group__0" + + + // $ANTLR start "rule__LTLPattern__Group__0__Impl" + // InternalFiacre.g:23409:1: rule__LTLPattern__Group__0__Impl : ( 'ltl' ) ; + public final void rule__LTLPattern__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23413:1: ( ( 'ltl' ) ) + // InternalFiacre.g:23414:1: ( 'ltl' ) + { + // InternalFiacre.g:23414:1: ( 'ltl' ) + // InternalFiacre.g:23415:2: 'ltl' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLPatternAccess().getLtlKeyword_0()); + } + match(input,113,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLPatternAccess().getLtlKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLPattern__Group__0__Impl" + + + // $ANTLR start "rule__LTLPattern__Group__1" + // InternalFiacre.g:23424:1: rule__LTLPattern__Group__1 : rule__LTLPattern__Group__1__Impl ; + public final void rule__LTLPattern__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23428:1: ( rule__LTLPattern__Group__1__Impl ) + // InternalFiacre.g:23429:2: rule__LTLPattern__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLPattern__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLPattern__Group__1" + + + // $ANTLR start "rule__LTLPattern__Group__1__Impl" + // InternalFiacre.g:23435:1: rule__LTLPattern__Group__1__Impl : ( ( rule__LTLPattern__PropertyAssignment_1 ) ) ; + public final void rule__LTLPattern__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23439:1: ( ( ( rule__LTLPattern__PropertyAssignment_1 ) ) ) + // InternalFiacre.g:23440:1: ( ( rule__LTLPattern__PropertyAssignment_1 ) ) + { + // InternalFiacre.g:23440:1: ( ( rule__LTLPattern__PropertyAssignment_1 ) ) + // InternalFiacre.g:23441:2: ( rule__LTLPattern__PropertyAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLPatternAccess().getPropertyAssignment_1()); + } + // InternalFiacre.g:23442:2: ( rule__LTLPattern__PropertyAssignment_1 ) + // InternalFiacre.g:23442:3: rule__LTLPattern__PropertyAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLPattern__PropertyAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLPatternAccess().getPropertyAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLPattern__Group__1__Impl" + + + // $ANTLR start "rule__DeadlockFreePattern__Group__0" + // InternalFiacre.g:23451:1: rule__DeadlockFreePattern__Group__0 : rule__DeadlockFreePattern__Group__0__Impl rule__DeadlockFreePattern__Group__1 ; + public final void rule__DeadlockFreePattern__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23455:1: ( rule__DeadlockFreePattern__Group__0__Impl rule__DeadlockFreePattern__Group__1 ) + // InternalFiacre.g:23456:2: rule__DeadlockFreePattern__Group__0__Impl rule__DeadlockFreePattern__Group__1 + { + pushFollow(FollowSets000.FOLLOW_133); + rule__DeadlockFreePattern__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__DeadlockFreePattern__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DeadlockFreePattern__Group__0" + + + // $ANTLR start "rule__DeadlockFreePattern__Group__0__Impl" + // InternalFiacre.g:23463:1: rule__DeadlockFreePattern__Group__0__Impl : ( () ) ; + public final void rule__DeadlockFreePattern__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23467:1: ( ( () ) ) + // InternalFiacre.g:23468:1: ( () ) + { + // InternalFiacre.g:23468:1: ( () ) + // InternalFiacre.g:23469:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeadlockFreePatternAccess().getDeadlockFreePatternAction_0()); + } + // InternalFiacre.g:23470:2: () + // InternalFiacre.g:23470:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDeadlockFreePatternAccess().getDeadlockFreePatternAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DeadlockFreePattern__Group__0__Impl" + + + // $ANTLR start "rule__DeadlockFreePattern__Group__1" + // InternalFiacre.g:23478:1: rule__DeadlockFreePattern__Group__1 : rule__DeadlockFreePattern__Group__1__Impl ; + public final void rule__DeadlockFreePattern__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23482:1: ( rule__DeadlockFreePattern__Group__1__Impl ) + // InternalFiacre.g:23483:2: rule__DeadlockFreePattern__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__DeadlockFreePattern__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DeadlockFreePattern__Group__1" + + + // $ANTLR start "rule__DeadlockFreePattern__Group__1__Impl" + // InternalFiacre.g:23489:1: rule__DeadlockFreePattern__Group__1__Impl : ( 'deadlockfree' ) ; + public final void rule__DeadlockFreePattern__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23493:1: ( ( 'deadlockfree' ) ) + // InternalFiacre.g:23494:1: ( 'deadlockfree' ) + { + // InternalFiacre.g:23494:1: ( 'deadlockfree' ) + // InternalFiacre.g:23495:2: 'deadlockfree' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDeadlockFreePatternAccess().getDeadlockfreeKeyword_1()); + } + match(input,114,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDeadlockFreePatternAccess().getDeadlockfreeKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DeadlockFreePattern__Group__1__Impl" + + + // $ANTLR start "rule__InfinitelyOftenPattern__Group__0" + // InternalFiacre.g:23505:1: rule__InfinitelyOftenPattern__Group__0 : rule__InfinitelyOftenPattern__Group__0__Impl rule__InfinitelyOftenPattern__Group__1 ; + public final void rule__InfinitelyOftenPattern__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23509:1: ( rule__InfinitelyOftenPattern__Group__0__Impl rule__InfinitelyOftenPattern__Group__1 ) + // InternalFiacre.g:23510:2: rule__InfinitelyOftenPattern__Group__0__Impl rule__InfinitelyOftenPattern__Group__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__InfinitelyOftenPattern__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__InfinitelyOftenPattern__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfinitelyOftenPattern__Group__0" + + + // $ANTLR start "rule__InfinitelyOftenPattern__Group__0__Impl" + // InternalFiacre.g:23517:1: rule__InfinitelyOftenPattern__Group__0__Impl : ( 'infinitelyoften' ) ; + public final void rule__InfinitelyOftenPattern__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23521:1: ( ( 'infinitelyoften' ) ) + // InternalFiacre.g:23522:1: ( 'infinitelyoften' ) + { + // InternalFiacre.g:23522:1: ( 'infinitelyoften' ) + // InternalFiacre.g:23523:2: 'infinitelyoften' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInfinitelyOftenPatternAccess().getInfinitelyoftenKeyword_0()); + } + match(input,115,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInfinitelyOftenPatternAccess().getInfinitelyoftenKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfinitelyOftenPattern__Group__0__Impl" + + + // $ANTLR start "rule__InfinitelyOftenPattern__Group__1" + // InternalFiacre.g:23532:1: rule__InfinitelyOftenPattern__Group__1 : rule__InfinitelyOftenPattern__Group__1__Impl ; + public final void rule__InfinitelyOftenPattern__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23536:1: ( rule__InfinitelyOftenPattern__Group__1__Impl ) + // InternalFiacre.g:23537:2: rule__InfinitelyOftenPattern__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InfinitelyOftenPattern__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfinitelyOftenPattern__Group__1" + + + // $ANTLR start "rule__InfinitelyOftenPattern__Group__1__Impl" + // InternalFiacre.g:23543:1: rule__InfinitelyOftenPattern__Group__1__Impl : ( ( rule__InfinitelyOftenPattern__SubjectAssignment_1 ) ) ; + public final void rule__InfinitelyOftenPattern__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23547:1: ( ( ( rule__InfinitelyOftenPattern__SubjectAssignment_1 ) ) ) + // InternalFiacre.g:23548:1: ( ( rule__InfinitelyOftenPattern__SubjectAssignment_1 ) ) + { + // InternalFiacre.g:23548:1: ( ( rule__InfinitelyOftenPattern__SubjectAssignment_1 ) ) + // InternalFiacre.g:23549:2: ( rule__InfinitelyOftenPattern__SubjectAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAssignment_1()); + } + // InternalFiacre.g:23550:2: ( rule__InfinitelyOftenPattern__SubjectAssignment_1 ) + // InternalFiacre.g:23550:3: rule__InfinitelyOftenPattern__SubjectAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InfinitelyOftenPattern__SubjectAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfinitelyOftenPattern__Group__1__Impl" + + + // $ANTLR start "rule__MortalPattern__Group__0" + // InternalFiacre.g:23559:1: rule__MortalPattern__Group__0 : rule__MortalPattern__Group__0__Impl rule__MortalPattern__Group__1 ; + public final void rule__MortalPattern__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23563:1: ( rule__MortalPattern__Group__0__Impl rule__MortalPattern__Group__1 ) + // InternalFiacre.g:23564:2: rule__MortalPattern__Group__0__Impl rule__MortalPattern__Group__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__MortalPattern__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__MortalPattern__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__MortalPattern__Group__0" + + + // $ANTLR start "rule__MortalPattern__Group__0__Impl" + // InternalFiacre.g:23571:1: rule__MortalPattern__Group__0__Impl : ( 'mortal' ) ; + public final void rule__MortalPattern__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23575:1: ( ( 'mortal' ) ) + // InternalFiacre.g:23576:1: ( 'mortal' ) + { + // InternalFiacre.g:23576:1: ( 'mortal' ) + // InternalFiacre.g:23577:2: 'mortal' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMortalPatternAccess().getMortalKeyword_0()); + } + match(input,116,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getMortalPatternAccess().getMortalKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__MortalPattern__Group__0__Impl" + + + // $ANTLR start "rule__MortalPattern__Group__1" + // InternalFiacre.g:23586:1: rule__MortalPattern__Group__1 : rule__MortalPattern__Group__1__Impl ; + public final void rule__MortalPattern__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23590:1: ( rule__MortalPattern__Group__1__Impl ) + // InternalFiacre.g:23591:2: rule__MortalPattern__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__MortalPattern__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__MortalPattern__Group__1" + + + // $ANTLR start "rule__MortalPattern__Group__1__Impl" + // InternalFiacre.g:23597:1: rule__MortalPattern__Group__1__Impl : ( ( rule__MortalPattern__SubjectAssignment_1 ) ) ; + public final void rule__MortalPattern__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23601:1: ( ( ( rule__MortalPattern__SubjectAssignment_1 ) ) ) + // InternalFiacre.g:23602:1: ( ( rule__MortalPattern__SubjectAssignment_1 ) ) + { + // InternalFiacre.g:23602:1: ( ( rule__MortalPattern__SubjectAssignment_1 ) ) + // InternalFiacre.g:23603:2: ( rule__MortalPattern__SubjectAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMortalPatternAccess().getSubjectAssignment_1()); + } + // InternalFiacre.g:23604:2: ( rule__MortalPattern__SubjectAssignment_1 ) + // InternalFiacre.g:23604:3: rule__MortalPattern__SubjectAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__MortalPattern__SubjectAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getMortalPatternAccess().getSubjectAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__MortalPattern__Group__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group__0" + // InternalFiacre.g:23613:1: rule__PresencePattern__Group__0 : rule__PresencePattern__Group__0__Impl rule__PresencePattern__Group__1 ; + public final void rule__PresencePattern__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23617:1: ( rule__PresencePattern__Group__0__Impl rule__PresencePattern__Group__1 ) + // InternalFiacre.g:23618:2: rule__PresencePattern__Group__0__Impl rule__PresencePattern__Group__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__PresencePattern__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group__0" + + + // $ANTLR start "rule__PresencePattern__Group__0__Impl" + // InternalFiacre.g:23625:1: rule__PresencePattern__Group__0__Impl : ( 'present' ) ; + public final void rule__PresencePattern__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23629:1: ( ( 'present' ) ) + // InternalFiacre.g:23630:1: ( 'present' ) + { + // InternalFiacre.g:23630:1: ( 'present' ) + // InternalFiacre.g:23631:2: 'present' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getPresentKeyword_0()); + } + match(input,117,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getPresentKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group__0__Impl" + + + // $ANTLR start "rule__PresencePattern__Group__1" + // InternalFiacre.g:23640:1: rule__PresencePattern__Group__1 : rule__PresencePattern__Group__1__Impl rule__PresencePattern__Group__2 ; + public final void rule__PresencePattern__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23644:1: ( rule__PresencePattern__Group__1__Impl rule__PresencePattern__Group__2 ) + // InternalFiacre.g:23645:2: rule__PresencePattern__Group__1__Impl rule__PresencePattern__Group__2 + { + pushFollow(FollowSets000.FOLLOW_135); + rule__PresencePattern__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group__1" + + + // $ANTLR start "rule__PresencePattern__Group__1__Impl" + // InternalFiacre.g:23652:1: rule__PresencePattern__Group__1__Impl : ( ( rule__PresencePattern__SubjectAssignment_1 ) ) ; + public final void rule__PresencePattern__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23656:1: ( ( ( rule__PresencePattern__SubjectAssignment_1 ) ) ) + // InternalFiacre.g:23657:1: ( ( rule__PresencePattern__SubjectAssignment_1 ) ) + { + // InternalFiacre.g:23657:1: ( ( rule__PresencePattern__SubjectAssignment_1 ) ) + // InternalFiacre.g:23658:2: ( rule__PresencePattern__SubjectAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getSubjectAssignment_1()); + } + // InternalFiacre.g:23659:2: ( rule__PresencePattern__SubjectAssignment_1 ) + // InternalFiacre.g:23659:3: rule__PresencePattern__SubjectAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__SubjectAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getSubjectAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group__2" + // InternalFiacre.g:23667:1: rule__PresencePattern__Group__2 : rule__PresencePattern__Group__2__Impl ; + public final void rule__PresencePattern__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23671:1: ( rule__PresencePattern__Group__2__Impl ) + // InternalFiacre.g:23672:2: rule__PresencePattern__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group__2" + + + // $ANTLR start "rule__PresencePattern__Group__2__Impl" + // InternalFiacre.g:23678:1: rule__PresencePattern__Group__2__Impl : ( ( rule__PresencePattern__Alternatives_2 )? ) ; + public final void rule__PresencePattern__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23682:1: ( ( ( rule__PresencePattern__Alternatives_2 )? ) ) + // InternalFiacre.g:23683:1: ( ( rule__PresencePattern__Alternatives_2 )? ) + { + // InternalFiacre.g:23683:1: ( ( rule__PresencePattern__Alternatives_2 )? ) + // InternalFiacre.g:23684:2: ( rule__PresencePattern__Alternatives_2 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getAlternatives_2()); + } + // InternalFiacre.g:23685:2: ( rule__PresencePattern__Alternatives_2 )? + int alt180=2; + int LA180_0 = input.LA(1); + + if ( ((LA180_0>=118 && LA180_0<=119)||(LA180_0>=122 && LA180_0<=123)) ) { + alt180=1; + } + switch (alt180) { + case 1 : + // InternalFiacre.g:23685:3: rule__PresencePattern__Alternatives_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Alternatives_2(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getAlternatives_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group__2__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_0__0" + // InternalFiacre.g:23694:1: rule__PresencePattern__Group_2_0__0 : rule__PresencePattern__Group_2_0__0__Impl rule__PresencePattern__Group_2_0__1 ; + public final void rule__PresencePattern__Group_2_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23698:1: ( rule__PresencePattern__Group_2_0__0__Impl rule__PresencePattern__Group_2_0__1 ) + // InternalFiacre.g:23699:2: rule__PresencePattern__Group_2_0__0__Impl rule__PresencePattern__Group_2_0__1 + { + pushFollow(FollowSets000.FOLLOW_69); + rule__PresencePattern__Group_2_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_0__0" + + + // $ANTLR start "rule__PresencePattern__Group_2_0__0__Impl" + // InternalFiacre.g:23706:1: rule__PresencePattern__Group_2_0__0__Impl : ( 'lasting' ) ; + public final void rule__PresencePattern__Group_2_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23710:1: ( ( 'lasting' ) ) + // InternalFiacre.g:23711:1: ( 'lasting' ) + { + // InternalFiacre.g:23711:1: ( 'lasting' ) + // InternalFiacre.g:23712:2: 'lasting' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getLastingKeyword_2_0_0()); + } + match(input,118,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getLastingKeyword_2_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_0__0__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_0__1" + // InternalFiacre.g:23721:1: rule__PresencePattern__Group_2_0__1 : rule__PresencePattern__Group_2_0__1__Impl ; + public final void rule__PresencePattern__Group_2_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23725:1: ( rule__PresencePattern__Group_2_0__1__Impl ) + // InternalFiacre.g:23726:2: rule__PresencePattern__Group_2_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_0__1" + + + // $ANTLR start "rule__PresencePattern__Group_2_0__1__Impl" + // InternalFiacre.g:23732:1: rule__PresencePattern__Group_2_0__1__Impl : ( ( rule__PresencePattern__LastingAssignment_2_0_1 ) ) ; + public final void rule__PresencePattern__Group_2_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23736:1: ( ( ( rule__PresencePattern__LastingAssignment_2_0_1 ) ) ) + // InternalFiacre.g:23737:1: ( ( rule__PresencePattern__LastingAssignment_2_0_1 ) ) + { + // InternalFiacre.g:23737:1: ( ( rule__PresencePattern__LastingAssignment_2_0_1 ) ) + // InternalFiacre.g:23738:2: ( rule__PresencePattern__LastingAssignment_2_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getLastingAssignment_2_0_1()); + } + // InternalFiacre.g:23739:2: ( rule__PresencePattern__LastingAssignment_2_0_1 ) + // InternalFiacre.g:23739:3: rule__PresencePattern__LastingAssignment_2_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__LastingAssignment_2_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getLastingAssignment_2_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_0__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_1__0" + // InternalFiacre.g:23748:1: rule__PresencePattern__Group_2_1__0 : rule__PresencePattern__Group_2_1__0__Impl rule__PresencePattern__Group_2_1__1 ; + public final void rule__PresencePattern__Group_2_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23752:1: ( rule__PresencePattern__Group_2_1__0__Impl rule__PresencePattern__Group_2_1__1 ) + // InternalFiacre.g:23753:2: rule__PresencePattern__Group_2_1__0__Impl rule__PresencePattern__Group_2_1__1 + { + pushFollow(FollowSets000.FOLLOW_136); + rule__PresencePattern__Group_2_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__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__PresencePattern__Group_2_1__0" + + + // $ANTLR start "rule__PresencePattern__Group_2_1__0__Impl" + // InternalFiacre.g:23760:1: rule__PresencePattern__Group_2_1__0__Impl : ( ( rule__PresencePattern__Group_2_1_0__0 ) ) ; + public final void rule__PresencePattern__Group_2_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23764:1: ( ( ( rule__PresencePattern__Group_2_1_0__0 ) ) ) + // InternalFiacre.g:23765:1: ( ( rule__PresencePattern__Group_2_1_0__0 ) ) + { + // InternalFiacre.g:23765:1: ( ( rule__PresencePattern__Group_2_1_0__0 ) ) + // InternalFiacre.g:23766:2: ( rule__PresencePattern__Group_2_1_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getGroup_2_1_0()); + } + // InternalFiacre.g:23767:2: ( rule__PresencePattern__Group_2_1_0__0 ) + // InternalFiacre.g:23767:3: rule__PresencePattern__Group_2_1_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_1_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getGroup_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1__0__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_1__1" + // InternalFiacre.g:23775:1: rule__PresencePattern__Group_2_1__1 : rule__PresencePattern__Group_2_1__1__Impl ; + public final void rule__PresencePattern__Group_2_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23779:1: ( rule__PresencePattern__Group_2_1__1__Impl ) + // InternalFiacre.g:23780:2: rule__PresencePattern__Group_2_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__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__PresencePattern__Group_2_1__1" + + + // $ANTLR start "rule__PresencePattern__Group_2_1__1__Impl" + // InternalFiacre.g:23786:1: rule__PresencePattern__Group_2_1__1__Impl : ( ( rule__PresencePattern__Alternatives_2_1_1 )? ) ; + public final void rule__PresencePattern__Group_2_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23790:1: ( ( ( rule__PresencePattern__Alternatives_2_1_1 )? ) ) + // InternalFiacre.g:23791:1: ( ( rule__PresencePattern__Alternatives_2_1_1 )? ) + { + // InternalFiacre.g:23791:1: ( ( rule__PresencePattern__Alternatives_2_1_1 )? ) + // InternalFiacre.g:23792:2: ( rule__PresencePattern__Alternatives_2_1_1 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getAlternatives_2_1_1()); + } + // InternalFiacre.g:23793:2: ( rule__PresencePattern__Alternatives_2_1_1 )? + int alt181=2; + int LA181_0 = input.LA(1); + + if ( ((LA181_0>=120 && LA181_0<=121)) ) { + alt181=1; + } + switch (alt181) { + case 1 : + // InternalFiacre.g:23793:3: rule__PresencePattern__Alternatives_2_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Alternatives_2_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getAlternatives_2_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_0__0" + // InternalFiacre.g:23802:1: rule__PresencePattern__Group_2_1_0__0 : rule__PresencePattern__Group_2_1_0__0__Impl rule__PresencePattern__Group_2_1_0__1 ; + public final void rule__PresencePattern__Group_2_1_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23806:1: ( rule__PresencePattern__Group_2_1_0__0__Impl rule__PresencePattern__Group_2_1_0__1 ) + // InternalFiacre.g:23807:2: rule__PresencePattern__Group_2_1_0__0__Impl rule__PresencePattern__Group_2_1_0__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__PresencePattern__Group_2_1_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_1_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_0__0" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_0__0__Impl" + // InternalFiacre.g:23814:1: rule__PresencePattern__Group_2_1_0__0__Impl : ( 'after' ) ; + public final void rule__PresencePattern__Group_2_1_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23818:1: ( ( 'after' ) ) + // InternalFiacre.g:23819:1: ( 'after' ) + { + // InternalFiacre.g:23819:1: ( 'after' ) + // InternalFiacre.g:23820:2: 'after' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getAfterKeyword_2_1_0_0()); + } + match(input,119,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getAfterKeyword_2_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_0__0__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_0__1" + // InternalFiacre.g:23829:1: rule__PresencePattern__Group_2_1_0__1 : rule__PresencePattern__Group_2_1_0__1__Impl ; + public final void rule__PresencePattern__Group_2_1_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23833:1: ( rule__PresencePattern__Group_2_1_0__1__Impl ) + // InternalFiacre.g:23834:2: rule__PresencePattern__Group_2_1_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_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__PresencePattern__Group_2_1_0__1" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_0__1__Impl" + // InternalFiacre.g:23840:1: rule__PresencePattern__Group_2_1_0__1__Impl : ( ( rule__PresencePattern__AfterAssignment_2_1_0_1 ) ) ; + public final void rule__PresencePattern__Group_2_1_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23844:1: ( ( ( rule__PresencePattern__AfterAssignment_2_1_0_1 ) ) ) + // InternalFiacre.g:23845:1: ( ( rule__PresencePattern__AfterAssignment_2_1_0_1 ) ) + { + // InternalFiacre.g:23845:1: ( ( rule__PresencePattern__AfterAssignment_2_1_0_1 ) ) + // InternalFiacre.g:23846:2: ( rule__PresencePattern__AfterAssignment_2_1_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getAfterAssignment_2_1_0_1()); + } + // InternalFiacre.g:23847:2: ( rule__PresencePattern__AfterAssignment_2_1_0_1 ) + // InternalFiacre.g:23847:3: rule__PresencePattern__AfterAssignment_2_1_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__AfterAssignment_2_1_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getAfterAssignment_2_1_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_0__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_0__0" + // InternalFiacre.g:23856:1: rule__PresencePattern__Group_2_1_1_0__0 : rule__PresencePattern__Group_2_1_1_0__0__Impl rule__PresencePattern__Group_2_1_1_0__1 ; + public final void rule__PresencePattern__Group_2_1_1_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23860:1: ( rule__PresencePattern__Group_2_1_1_0__0__Impl rule__PresencePattern__Group_2_1_1_0__1 ) + // InternalFiacre.g:23861:2: rule__PresencePattern__Group_2_1_1_0__0__Impl rule__PresencePattern__Group_2_1_1_0__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__PresencePattern__Group_2_1_1_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_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__PresencePattern__Group_2_1_1_0__0" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_0__0__Impl" + // InternalFiacre.g:23868:1: rule__PresencePattern__Group_2_1_1_0__0__Impl : ( 'within' ) ; + public final void rule__PresencePattern__Group_2_1_1_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23872:1: ( ( 'within' ) ) + // InternalFiacre.g:23873:1: ( 'within' ) + { + // InternalFiacre.g:23873:1: ( 'within' ) + // InternalFiacre.g:23874:2: 'within' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getWithinKeyword_2_1_1_0_0()); + } + match(input,120,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getWithinKeyword_2_1_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_1_0__0__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_0__1" + // InternalFiacre.g:23883:1: rule__PresencePattern__Group_2_1_1_0__1 : rule__PresencePattern__Group_2_1_1_0__1__Impl rule__PresencePattern__Group_2_1_1_0__2 ; + public final void rule__PresencePattern__Group_2_1_1_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23887:1: ( rule__PresencePattern__Group_2_1_1_0__1__Impl rule__PresencePattern__Group_2_1_1_0__2 ) + // InternalFiacre.g:23888:2: rule__PresencePattern__Group_2_1_1_0__1__Impl rule__PresencePattern__Group_2_1_1_0__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__PresencePattern__Group_2_1_1_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_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__PresencePattern__Group_2_1_1_0__1" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_0__1__Impl" + // InternalFiacre.g:23895:1: rule__PresencePattern__Group_2_1_1_0__1__Impl : ( ( rule__PresencePattern__LowerAssignment_2_1_1_0_1 ) ) ; + public final void rule__PresencePattern__Group_2_1_1_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23899:1: ( ( ( rule__PresencePattern__LowerAssignment_2_1_1_0_1 ) ) ) + // InternalFiacre.g:23900:1: ( ( rule__PresencePattern__LowerAssignment_2_1_1_0_1 ) ) + { + // InternalFiacre.g:23900:1: ( ( rule__PresencePattern__LowerAssignment_2_1_1_0_1 ) ) + // InternalFiacre.g:23901:2: ( rule__PresencePattern__LowerAssignment_2_1_1_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getLowerAssignment_2_1_1_0_1()); + } + // InternalFiacre.g:23902:2: ( rule__PresencePattern__LowerAssignment_2_1_1_0_1 ) + // InternalFiacre.g:23902:3: rule__PresencePattern__LowerAssignment_2_1_1_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__LowerAssignment_2_1_1_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getLowerAssignment_2_1_1_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_1_0__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_0__2" + // InternalFiacre.g:23910:1: rule__PresencePattern__Group_2_1_1_0__2 : rule__PresencePattern__Group_2_1_1_0__2__Impl rule__PresencePattern__Group_2_1_1_0__3 ; + public final void rule__PresencePattern__Group_2_1_1_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23914:1: ( rule__PresencePattern__Group_2_1_1_0__2__Impl rule__PresencePattern__Group_2_1_1_0__3 ) + // InternalFiacre.g:23915:2: rule__PresencePattern__Group_2_1_1_0__2__Impl rule__PresencePattern__Group_2_1_1_0__3 + { + pushFollow(FollowSets000.FOLLOW_48); + rule__PresencePattern__Group_2_1_1_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_1_1_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_1_0__2" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_0__2__Impl" + // InternalFiacre.g:23922:1: rule__PresencePattern__Group_2_1_1_0__2__Impl : ( ',' ) ; + public final void rule__PresencePattern__Group_2_1_1_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23926:1: ( ( ',' ) ) + // InternalFiacre.g:23927:1: ( ',' ) + { + // InternalFiacre.g:23927:1: ( ',' ) + // InternalFiacre.g:23928:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getCommaKeyword_2_1_1_0_2()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getCommaKeyword_2_1_1_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_1_0__2__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_0__3" + // InternalFiacre.g:23937:1: rule__PresencePattern__Group_2_1_1_0__3 : rule__PresencePattern__Group_2_1_1_0__3__Impl ; + public final void rule__PresencePattern__Group_2_1_1_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23941:1: ( rule__PresencePattern__Group_2_1_1_0__3__Impl ) + // InternalFiacre.g:23942:2: rule__PresencePattern__Group_2_1_1_0__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_1_1_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_1_0__3" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_0__3__Impl" + // InternalFiacre.g:23948:1: rule__PresencePattern__Group_2_1_1_0__3__Impl : ( ( rule__PresencePattern__UpperAssignment_2_1_1_0_3 ) ) ; + public final void rule__PresencePattern__Group_2_1_1_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23952:1: ( ( ( rule__PresencePattern__UpperAssignment_2_1_1_0_3 ) ) ) + // InternalFiacre.g:23953:1: ( ( rule__PresencePattern__UpperAssignment_2_1_1_0_3 ) ) + { + // InternalFiacre.g:23953:1: ( ( rule__PresencePattern__UpperAssignment_2_1_1_0_3 ) ) + // InternalFiacre.g:23954:2: ( rule__PresencePattern__UpperAssignment_2_1_1_0_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getUpperAssignment_2_1_1_0_3()); + } + // InternalFiacre.g:23955:2: ( rule__PresencePattern__UpperAssignment_2_1_1_0_3 ) + // InternalFiacre.g:23955:3: rule__PresencePattern__UpperAssignment_2_1_1_0_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__UpperAssignment_2_1_1_0_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getUpperAssignment_2_1_1_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_1_0__3__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_1__0" + // InternalFiacre.g:23964:1: rule__PresencePattern__Group_2_1_1_1__0 : rule__PresencePattern__Group_2_1_1_1__0__Impl rule__PresencePattern__Group_2_1_1_1__1 ; + public final void rule__PresencePattern__Group_2_1_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23968:1: ( rule__PresencePattern__Group_2_1_1_1__0__Impl rule__PresencePattern__Group_2_1_1_1__1 ) + // InternalFiacre.g:23969:2: rule__PresencePattern__Group_2_1_1_1__0__Impl rule__PresencePattern__Group_2_1_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__PresencePattern__Group_2_1_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_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__PresencePattern__Group_2_1_1_1__0" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_1__0__Impl" + // InternalFiacre.g:23976:1: rule__PresencePattern__Group_2_1_1_1__0__Impl : ( 'until' ) ; + public final void rule__PresencePattern__Group_2_1_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23980:1: ( ( 'until' ) ) + // InternalFiacre.g:23981:1: ( 'until' ) + { + // InternalFiacre.g:23981:1: ( 'until' ) + // InternalFiacre.g:23982:2: 'until' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getUntilKeyword_2_1_1_1_0()); + } + match(input,121,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getUntilKeyword_2_1_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_1_1__0__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_1__1" + // InternalFiacre.g:23991:1: rule__PresencePattern__Group_2_1_1_1__1 : rule__PresencePattern__Group_2_1_1_1__1__Impl ; + public final void rule__PresencePattern__Group_2_1_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:23995:1: ( rule__PresencePattern__Group_2_1_1_1__1__Impl ) + // InternalFiacre.g:23996:2: rule__PresencePattern__Group_2_1_1_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_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__PresencePattern__Group_2_1_1_1__1" + + + // $ANTLR start "rule__PresencePattern__Group_2_1_1_1__1__Impl" + // InternalFiacre.g:24002:1: rule__PresencePattern__Group_2_1_1_1__1__Impl : ( ( rule__PresencePattern__UntilAssignment_2_1_1_1_1 ) ) ; + public final void rule__PresencePattern__Group_2_1_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24006:1: ( ( ( rule__PresencePattern__UntilAssignment_2_1_1_1_1 ) ) ) + // InternalFiacre.g:24007:1: ( ( rule__PresencePattern__UntilAssignment_2_1_1_1_1 ) ) + { + // InternalFiacre.g:24007:1: ( ( rule__PresencePattern__UntilAssignment_2_1_1_1_1 ) ) + // InternalFiacre.g:24008:2: ( rule__PresencePattern__UntilAssignment_2_1_1_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getUntilAssignment_2_1_1_1_1()); + } + // InternalFiacre.g:24009:2: ( rule__PresencePattern__UntilAssignment_2_1_1_1_1 ) + // InternalFiacre.g:24009:3: rule__PresencePattern__UntilAssignment_2_1_1_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__UntilAssignment_2_1_1_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getUntilAssignment_2_1_1_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_1_1_1__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_2__0" + // InternalFiacre.g:24018:1: rule__PresencePattern__Group_2_2__0 : rule__PresencePattern__Group_2_2__0__Impl rule__PresencePattern__Group_2_2__1 ; + public final void rule__PresencePattern__Group_2_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24022:1: ( rule__PresencePattern__Group_2_2__0__Impl rule__PresencePattern__Group_2_2__1 ) + // InternalFiacre.g:24023:2: rule__PresencePattern__Group_2_2__0__Impl rule__PresencePattern__Group_2_2__1 + { + pushFollow(FollowSets000.FOLLOW_137); + rule__PresencePattern__Group_2_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2__0" + + + // $ANTLR start "rule__PresencePattern__Group_2_2__0__Impl" + // InternalFiacre.g:24030:1: rule__PresencePattern__Group_2_2__0__Impl : ( ( rule__PresencePattern__Group_2_2_0__0 ) ) ; + public final void rule__PresencePattern__Group_2_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24034:1: ( ( ( rule__PresencePattern__Group_2_2_0__0 ) ) ) + // InternalFiacre.g:24035:1: ( ( rule__PresencePattern__Group_2_2_0__0 ) ) + { + // InternalFiacre.g:24035:1: ( ( rule__PresencePattern__Group_2_2_0__0 ) ) + // InternalFiacre.g:24036:2: ( rule__PresencePattern__Group_2_2_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getGroup_2_2_0()); + } + // InternalFiacre.g:24037:2: ( rule__PresencePattern__Group_2_2_0__0 ) + // InternalFiacre.g:24037:3: rule__PresencePattern__Group_2_2_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_2_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getGroup_2_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2__0__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_2__1" + // InternalFiacre.g:24045:1: rule__PresencePattern__Group_2_2__1 : rule__PresencePattern__Group_2_2__1__Impl ; + public final void rule__PresencePattern__Group_2_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24049:1: ( rule__PresencePattern__Group_2_2__1__Impl ) + // InternalFiacre.g:24050:2: rule__PresencePattern__Group_2_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_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__PresencePattern__Group_2_2__1" + + + // $ANTLR start "rule__PresencePattern__Group_2_2__1__Impl" + // InternalFiacre.g:24056:1: rule__PresencePattern__Group_2_2__1__Impl : ( ( rule__PresencePattern__Group_2_2_1__0 )? ) ; + public final void rule__PresencePattern__Group_2_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24060:1: ( ( ( rule__PresencePattern__Group_2_2_1__0 )? ) ) + // InternalFiacre.g:24061:1: ( ( rule__PresencePattern__Group_2_2_1__0 )? ) + { + // InternalFiacre.g:24061:1: ( ( rule__PresencePattern__Group_2_2_1__0 )? ) + // InternalFiacre.g:24062:2: ( rule__PresencePattern__Group_2_2_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getGroup_2_2_1()); + } + // InternalFiacre.g:24063:2: ( rule__PresencePattern__Group_2_2_1__0 )? + int alt182=2; + int LA182_0 = input.LA(1); + + if ( (LA182_0==120) ) { + alt182=1; + } + switch (alt182) { + case 1 : + // InternalFiacre.g:24063:3: rule__PresencePattern__Group_2_2_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_2_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getGroup_2_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_0__0" + // InternalFiacre.g:24072:1: rule__PresencePattern__Group_2_2_0__0 : rule__PresencePattern__Group_2_2_0__0__Impl rule__PresencePattern__Group_2_2_0__1 ; + public final void rule__PresencePattern__Group_2_2_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24076:1: ( rule__PresencePattern__Group_2_2_0__0__Impl rule__PresencePattern__Group_2_2_0__1 ) + // InternalFiacre.g:24077:2: rule__PresencePattern__Group_2_2_0__0__Impl rule__PresencePattern__Group_2_2_0__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__PresencePattern__Group_2_2_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_2_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_0__0" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_0__0__Impl" + // InternalFiacre.g:24084:1: rule__PresencePattern__Group_2_2_0__0__Impl : ( 'before' ) ; + public final void rule__PresencePattern__Group_2_2_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24088:1: ( ( 'before' ) ) + // InternalFiacre.g:24089:1: ( 'before' ) + { + // InternalFiacre.g:24089:1: ( 'before' ) + // InternalFiacre.g:24090:2: 'before' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getBeforeKeyword_2_2_0_0()); + } + match(input,122,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getBeforeKeyword_2_2_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_0__0__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_0__1" + // InternalFiacre.g:24099:1: rule__PresencePattern__Group_2_2_0__1 : rule__PresencePattern__Group_2_2_0__1__Impl ; + public final void rule__PresencePattern__Group_2_2_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24103:1: ( rule__PresencePattern__Group_2_2_0__1__Impl ) + // InternalFiacre.g:24104:2: rule__PresencePattern__Group_2_2_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_2_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_0__1" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_0__1__Impl" + // InternalFiacre.g:24110:1: rule__PresencePattern__Group_2_2_0__1__Impl : ( ( rule__PresencePattern__BeforeAssignment_2_2_0_1 ) ) ; + public final void rule__PresencePattern__Group_2_2_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24114:1: ( ( ( rule__PresencePattern__BeforeAssignment_2_2_0_1 ) ) ) + // InternalFiacre.g:24115:1: ( ( rule__PresencePattern__BeforeAssignment_2_2_0_1 ) ) + { + // InternalFiacre.g:24115:1: ( ( rule__PresencePattern__BeforeAssignment_2_2_0_1 ) ) + // InternalFiacre.g:24116:2: ( rule__PresencePattern__BeforeAssignment_2_2_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getBeforeAssignment_2_2_0_1()); + } + // InternalFiacre.g:24117:2: ( rule__PresencePattern__BeforeAssignment_2_2_0_1 ) + // InternalFiacre.g:24117:3: rule__PresencePattern__BeforeAssignment_2_2_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__BeforeAssignment_2_2_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getBeforeAssignment_2_2_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_0__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_1__0" + // InternalFiacre.g:24126:1: rule__PresencePattern__Group_2_2_1__0 : rule__PresencePattern__Group_2_2_1__0__Impl rule__PresencePattern__Group_2_2_1__1 ; + public final void rule__PresencePattern__Group_2_2_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24130:1: ( rule__PresencePattern__Group_2_2_1__0__Impl rule__PresencePattern__Group_2_2_1__1 ) + // InternalFiacre.g:24131:2: rule__PresencePattern__Group_2_2_1__0__Impl rule__PresencePattern__Group_2_2_1__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__PresencePattern__Group_2_2_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_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__PresencePattern__Group_2_2_1__0" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_1__0__Impl" + // InternalFiacre.g:24138:1: rule__PresencePattern__Group_2_2_1__0__Impl : ( 'within' ) ; + public final void rule__PresencePattern__Group_2_2_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24142:1: ( ( 'within' ) ) + // InternalFiacre.g:24143:1: ( 'within' ) + { + // InternalFiacre.g:24143:1: ( 'within' ) + // InternalFiacre.g:24144:2: 'within' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getWithinKeyword_2_2_1_0()); + } + match(input,120,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getWithinKeyword_2_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_1__0__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_1__1" + // InternalFiacre.g:24153:1: rule__PresencePattern__Group_2_2_1__1 : rule__PresencePattern__Group_2_2_1__1__Impl rule__PresencePattern__Group_2_2_1__2 ; + public final void rule__PresencePattern__Group_2_2_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24157:1: ( rule__PresencePattern__Group_2_2_1__1__Impl rule__PresencePattern__Group_2_2_1__2 ) + // InternalFiacre.g:24158:2: rule__PresencePattern__Group_2_2_1__1__Impl rule__PresencePattern__Group_2_2_1__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__PresencePattern__Group_2_2_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_2_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_1__1" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_1__1__Impl" + // InternalFiacre.g:24165:1: rule__PresencePattern__Group_2_2_1__1__Impl : ( ( rule__PresencePattern__LowerAssignment_2_2_1_1 ) ) ; + public final void rule__PresencePattern__Group_2_2_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24169:1: ( ( ( rule__PresencePattern__LowerAssignment_2_2_1_1 ) ) ) + // InternalFiacre.g:24170:1: ( ( rule__PresencePattern__LowerAssignment_2_2_1_1 ) ) + { + // InternalFiacre.g:24170:1: ( ( rule__PresencePattern__LowerAssignment_2_2_1_1 ) ) + // InternalFiacre.g:24171:2: ( rule__PresencePattern__LowerAssignment_2_2_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getLowerAssignment_2_2_1_1()); + } + // InternalFiacre.g:24172:2: ( rule__PresencePattern__LowerAssignment_2_2_1_1 ) + // InternalFiacre.g:24172:3: rule__PresencePattern__LowerAssignment_2_2_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__LowerAssignment_2_2_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getLowerAssignment_2_2_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_1__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_1__2" + // InternalFiacre.g:24180:1: rule__PresencePattern__Group_2_2_1__2 : rule__PresencePattern__Group_2_2_1__2__Impl rule__PresencePattern__Group_2_2_1__3 ; + public final void rule__PresencePattern__Group_2_2_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24184:1: ( rule__PresencePattern__Group_2_2_1__2__Impl rule__PresencePattern__Group_2_2_1__3 ) + // InternalFiacre.g:24185:2: rule__PresencePattern__Group_2_2_1__2__Impl rule__PresencePattern__Group_2_2_1__3 + { + pushFollow(FollowSets000.FOLLOW_48); + rule__PresencePattern__Group_2_2_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_2_1__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_1__2" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_1__2__Impl" + // InternalFiacre.g:24192:1: rule__PresencePattern__Group_2_2_1__2__Impl : ( ',' ) ; + public final void rule__PresencePattern__Group_2_2_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24196:1: ( ( ',' ) ) + // InternalFiacre.g:24197:1: ( ',' ) + { + // InternalFiacre.g:24197:1: ( ',' ) + // InternalFiacre.g:24198:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getCommaKeyword_2_2_1_2()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getCommaKeyword_2_2_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_1__2__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_1__3" + // InternalFiacre.g:24207:1: rule__PresencePattern__Group_2_2_1__3 : rule__PresencePattern__Group_2_2_1__3__Impl ; + public final void rule__PresencePattern__Group_2_2_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24211:1: ( rule__PresencePattern__Group_2_2_1__3__Impl ) + // InternalFiacre.g:24212:2: rule__PresencePattern__Group_2_2_1__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_2_1__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_1__3" + + + // $ANTLR start "rule__PresencePattern__Group_2_2_1__3__Impl" + // InternalFiacre.g:24218:1: rule__PresencePattern__Group_2_2_1__3__Impl : ( ( rule__PresencePattern__UpperAssignment_2_2_1_3 ) ) ; + public final void rule__PresencePattern__Group_2_2_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24222:1: ( ( ( rule__PresencePattern__UpperAssignment_2_2_1_3 ) ) ) + // InternalFiacre.g:24223:1: ( ( rule__PresencePattern__UpperAssignment_2_2_1_3 ) ) + { + // InternalFiacre.g:24223:1: ( ( rule__PresencePattern__UpperAssignment_2_2_1_3 ) ) + // InternalFiacre.g:24224:2: ( rule__PresencePattern__UpperAssignment_2_2_1_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getUpperAssignment_2_2_1_3()); + } + // InternalFiacre.g:24225:2: ( rule__PresencePattern__UpperAssignment_2_2_1_3 ) + // InternalFiacre.g:24225:3: rule__PresencePattern__UpperAssignment_2_2_1_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__UpperAssignment_2_2_1_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getUpperAssignment_2_2_1_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_2_1__3__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_3__0" + // InternalFiacre.g:24234:1: rule__PresencePattern__Group_2_3__0 : rule__PresencePattern__Group_2_3__0__Impl rule__PresencePattern__Group_2_3__1 ; + public final void rule__PresencePattern__Group_2_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24238:1: ( rule__PresencePattern__Group_2_3__0__Impl rule__PresencePattern__Group_2_3__1 ) + // InternalFiacre.g:24239:2: rule__PresencePattern__Group_2_3__0__Impl rule__PresencePattern__Group_2_3__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__PresencePattern__Group_2_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_3__0" + + + // $ANTLR start "rule__PresencePattern__Group_2_3__0__Impl" + // InternalFiacre.g:24246:1: rule__PresencePattern__Group_2_3__0__Impl : ( 'between' ) ; + public final void rule__PresencePattern__Group_2_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24250:1: ( ( 'between' ) ) + // InternalFiacre.g:24251:1: ( 'between' ) + { + // InternalFiacre.g:24251:1: ( 'between' ) + // InternalFiacre.g:24252:2: 'between' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getBetweenKeyword_2_3_0()); + } + match(input,123,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getBetweenKeyword_2_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_3__0__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_3__1" + // InternalFiacre.g:24261:1: rule__PresencePattern__Group_2_3__1 : rule__PresencePattern__Group_2_3__1__Impl rule__PresencePattern__Group_2_3__2 ; + public final void rule__PresencePattern__Group_2_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24265:1: ( rule__PresencePattern__Group_2_3__1__Impl rule__PresencePattern__Group_2_3__2 ) + // InternalFiacre.g:24266:2: rule__PresencePattern__Group_2_3__1__Impl rule__PresencePattern__Group_2_3__2 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__PresencePattern__Group_2_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_3__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_3__1" + + + // $ANTLR start "rule__PresencePattern__Group_2_3__1__Impl" + // InternalFiacre.g:24273:1: rule__PresencePattern__Group_2_3__1__Impl : ( ( rule__PresencePattern__MinAssignment_2_3_1 ) ) ; + public final void rule__PresencePattern__Group_2_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24277:1: ( ( ( rule__PresencePattern__MinAssignment_2_3_1 ) ) ) + // InternalFiacre.g:24278:1: ( ( rule__PresencePattern__MinAssignment_2_3_1 ) ) + { + // InternalFiacre.g:24278:1: ( ( rule__PresencePattern__MinAssignment_2_3_1 ) ) + // InternalFiacre.g:24279:2: ( rule__PresencePattern__MinAssignment_2_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getMinAssignment_2_3_1()); + } + // InternalFiacre.g:24280:2: ( rule__PresencePattern__MinAssignment_2_3_1 ) + // InternalFiacre.g:24280:3: rule__PresencePattern__MinAssignment_2_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__MinAssignment_2_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getMinAssignment_2_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_3__1__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_3__2" + // InternalFiacre.g:24288:1: rule__PresencePattern__Group_2_3__2 : rule__PresencePattern__Group_2_3__2__Impl rule__PresencePattern__Group_2_3__3 ; + public final void rule__PresencePattern__Group_2_3__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24292:1: ( rule__PresencePattern__Group_2_3__2__Impl rule__PresencePattern__Group_2_3__3 ) + // InternalFiacre.g:24293:2: rule__PresencePattern__Group_2_3__2__Impl rule__PresencePattern__Group_2_3__3 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__PresencePattern__Group_2_3__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_3__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_3__2" + + + // $ANTLR start "rule__PresencePattern__Group_2_3__2__Impl" + // InternalFiacre.g:24300:1: rule__PresencePattern__Group_2_3__2__Impl : ( 'and' ) ; + public final void rule__PresencePattern__Group_2_3__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24304:1: ( ( 'and' ) ) + // InternalFiacre.g:24305:1: ( 'and' ) + { + // InternalFiacre.g:24305:1: ( 'and' ) + // InternalFiacre.g:24306:2: 'and' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getAndKeyword_2_3_2()); + } + match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getAndKeyword_2_3_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_3__2__Impl" + + + // $ANTLR start "rule__PresencePattern__Group_2_3__3" + // InternalFiacre.g:24315:1: rule__PresencePattern__Group_2_3__3 : rule__PresencePattern__Group_2_3__3__Impl ; + public final void rule__PresencePattern__Group_2_3__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24319:1: ( rule__PresencePattern__Group_2_3__3__Impl ) + // InternalFiacre.g:24320:2: rule__PresencePattern__Group_2_3__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__Group_2_3__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_3__3" + + + // $ANTLR start "rule__PresencePattern__Group_2_3__3__Impl" + // InternalFiacre.g:24326:1: rule__PresencePattern__Group_2_3__3__Impl : ( ( rule__PresencePattern__MaxAssignment_2_3_3 ) ) ; + public final void rule__PresencePattern__Group_2_3__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24330:1: ( ( ( rule__PresencePattern__MaxAssignment_2_3_3 ) ) ) + // InternalFiacre.g:24331:1: ( ( rule__PresencePattern__MaxAssignment_2_3_3 ) ) + { + // InternalFiacre.g:24331:1: ( ( rule__PresencePattern__MaxAssignment_2_3_3 ) ) + // InternalFiacre.g:24332:2: ( rule__PresencePattern__MaxAssignment_2_3_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getMaxAssignment_2_3_3()); + } + // InternalFiacre.g:24333:2: ( rule__PresencePattern__MaxAssignment_2_3_3 ) + // InternalFiacre.g:24333:3: rule__PresencePattern__MaxAssignment_2_3_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PresencePattern__MaxAssignment_2_3_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getMaxAssignment_2_3_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__Group_2_3__3__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group__0" + // InternalFiacre.g:24342:1: rule__AbsencePattern__Group__0 : rule__AbsencePattern__Group__0__Impl rule__AbsencePattern__Group__1 ; + public final void rule__AbsencePattern__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24346:1: ( rule__AbsencePattern__Group__0__Impl rule__AbsencePattern__Group__1 ) + // InternalFiacre.g:24347:2: rule__AbsencePattern__Group__0__Impl rule__AbsencePattern__Group__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AbsencePattern__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group__0" + + + // $ANTLR start "rule__AbsencePattern__Group__0__Impl" + // InternalFiacre.g:24354:1: rule__AbsencePattern__Group__0__Impl : ( 'absent' ) ; + public final void rule__AbsencePattern__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24358:1: ( ( 'absent' ) ) + // InternalFiacre.g:24359:1: ( 'absent' ) + { + // InternalFiacre.g:24359:1: ( 'absent' ) + // InternalFiacre.g:24360:2: 'absent' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getAbsentKeyword_0()); + } + match(input,124,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getAbsentKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group__0__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group__1" + // InternalFiacre.g:24369:1: rule__AbsencePattern__Group__1 : rule__AbsencePattern__Group__1__Impl rule__AbsencePattern__Group__2 ; + public final void rule__AbsencePattern__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24373:1: ( rule__AbsencePattern__Group__1__Impl rule__AbsencePattern__Group__2 ) + // InternalFiacre.g:24374:2: rule__AbsencePattern__Group__1__Impl rule__AbsencePattern__Group__2 + { + pushFollow(FollowSets000.FOLLOW_138); + rule__AbsencePattern__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group__1" + + + // $ANTLR start "rule__AbsencePattern__Group__1__Impl" + // InternalFiacre.g:24381:1: rule__AbsencePattern__Group__1__Impl : ( ( rule__AbsencePattern__SubjectAssignment_1 ) ) ; + public final void rule__AbsencePattern__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24385:1: ( ( ( rule__AbsencePattern__SubjectAssignment_1 ) ) ) + // InternalFiacre.g:24386:1: ( ( rule__AbsencePattern__SubjectAssignment_1 ) ) + { + // InternalFiacre.g:24386:1: ( ( rule__AbsencePattern__SubjectAssignment_1 ) ) + // InternalFiacre.g:24387:2: ( rule__AbsencePattern__SubjectAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getSubjectAssignment_1()); + } + // InternalFiacre.g:24388:2: ( rule__AbsencePattern__SubjectAssignment_1 ) + // InternalFiacre.g:24388:3: rule__AbsencePattern__SubjectAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__SubjectAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getSubjectAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group__1__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group__2" + // InternalFiacre.g:24396:1: rule__AbsencePattern__Group__2 : rule__AbsencePattern__Group__2__Impl ; + public final void rule__AbsencePattern__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24400:1: ( rule__AbsencePattern__Group__2__Impl ) + // InternalFiacre.g:24401:2: rule__AbsencePattern__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group__2" + + + // $ANTLR start "rule__AbsencePattern__Group__2__Impl" + // InternalFiacre.g:24407:1: rule__AbsencePattern__Group__2__Impl : ( ( rule__AbsencePattern__Alternatives_2 )? ) ; + public final void rule__AbsencePattern__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24411:1: ( ( ( rule__AbsencePattern__Alternatives_2 )? ) ) + // InternalFiacre.g:24412:1: ( ( rule__AbsencePattern__Alternatives_2 )? ) + { + // InternalFiacre.g:24412:1: ( ( rule__AbsencePattern__Alternatives_2 )? ) + // InternalFiacre.g:24413:2: ( rule__AbsencePattern__Alternatives_2 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getAlternatives_2()); + } + // InternalFiacre.g:24414:2: ( rule__AbsencePattern__Alternatives_2 )? + int alt183=2; + int LA183_0 = input.LA(1); + + if ( (LA183_0==119||(LA183_0>=122 && LA183_0<=123)) ) { + alt183=1; + } + switch (alt183) { + case 1 : + // InternalFiacre.g:24414:3: rule__AbsencePattern__Alternatives_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Alternatives_2(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getAlternatives_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group__2__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0__0" + // InternalFiacre.g:24423:1: rule__AbsencePattern__Group_2_0__0 : rule__AbsencePattern__Group_2_0__0__Impl rule__AbsencePattern__Group_2_0__1 ; + public final void rule__AbsencePattern__Group_2_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24427:1: ( rule__AbsencePattern__Group_2_0__0__Impl rule__AbsencePattern__Group_2_0__1 ) + // InternalFiacre.g:24428:2: rule__AbsencePattern__Group_2_0__0__Impl rule__AbsencePattern__Group_2_0__1 + { + pushFollow(FollowSets000.FOLLOW_136); + rule__AbsencePattern__Group_2_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0__0" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0__0__Impl" + // InternalFiacre.g:24435:1: rule__AbsencePattern__Group_2_0__0__Impl : ( ( rule__AbsencePattern__Group_2_0_0__0 ) ) ; + public final void rule__AbsencePattern__Group_2_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24439:1: ( ( ( rule__AbsencePattern__Group_2_0_0__0 ) ) ) + // InternalFiacre.g:24440:1: ( ( rule__AbsencePattern__Group_2_0_0__0 ) ) + { + // InternalFiacre.g:24440:1: ( ( rule__AbsencePattern__Group_2_0_0__0 ) ) + // InternalFiacre.g:24441:2: ( rule__AbsencePattern__Group_2_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getGroup_2_0_0()); + } + // InternalFiacre.g:24442:2: ( rule__AbsencePattern__Group_2_0_0__0 ) + // InternalFiacre.g:24442:3: rule__AbsencePattern__Group_2_0_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getGroup_2_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0__0__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0__1" + // InternalFiacre.g:24450:1: rule__AbsencePattern__Group_2_0__1 : rule__AbsencePattern__Group_2_0__1__Impl ; + public final void rule__AbsencePattern__Group_2_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24454:1: ( rule__AbsencePattern__Group_2_0__1__Impl ) + // InternalFiacre.g:24455:2: rule__AbsencePattern__Group_2_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0__1" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0__1__Impl" + // InternalFiacre.g:24461:1: rule__AbsencePattern__Group_2_0__1__Impl : ( ( rule__AbsencePattern__Alternatives_2_0_1 )? ) ; + public final void rule__AbsencePattern__Group_2_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24465:1: ( ( ( rule__AbsencePattern__Alternatives_2_0_1 )? ) ) + // InternalFiacre.g:24466:1: ( ( rule__AbsencePattern__Alternatives_2_0_1 )? ) + { + // InternalFiacre.g:24466:1: ( ( rule__AbsencePattern__Alternatives_2_0_1 )? ) + // InternalFiacre.g:24467:2: ( rule__AbsencePattern__Alternatives_2_0_1 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getAlternatives_2_0_1()); + } + // InternalFiacre.g:24468:2: ( rule__AbsencePattern__Alternatives_2_0_1 )? + int alt184=2; + int LA184_0 = input.LA(1); + + if ( ((LA184_0>=120 && LA184_0<=121)) ) { + alt184=1; + } + switch (alt184) { + case 1 : + // InternalFiacre.g:24468:3: rule__AbsencePattern__Alternatives_2_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Alternatives_2_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getAlternatives_2_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0__1__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_0__0" + // InternalFiacre.g:24477:1: rule__AbsencePattern__Group_2_0_0__0 : rule__AbsencePattern__Group_2_0_0__0__Impl rule__AbsencePattern__Group_2_0_0__1 ; + public final void rule__AbsencePattern__Group_2_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24481:1: ( rule__AbsencePattern__Group_2_0_0__0__Impl rule__AbsencePattern__Group_2_0_0__1 ) + // InternalFiacre.g:24482:2: rule__AbsencePattern__Group_2_0_0__0__Impl rule__AbsencePattern__Group_2_0_0__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AbsencePattern__Group_2_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_0__0" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_0__0__Impl" + // InternalFiacre.g:24489:1: rule__AbsencePattern__Group_2_0_0__0__Impl : ( 'after' ) ; + public final void rule__AbsencePattern__Group_2_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24493:1: ( ( 'after' ) ) + // InternalFiacre.g:24494:1: ( 'after' ) + { + // InternalFiacre.g:24494:1: ( 'after' ) + // InternalFiacre.g:24495:2: 'after' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getAfterKeyword_2_0_0_0()); + } + match(input,119,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getAfterKeyword_2_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_0__0__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_0__1" + // InternalFiacre.g:24504:1: rule__AbsencePattern__Group_2_0_0__1 : rule__AbsencePattern__Group_2_0_0__1__Impl ; + public final void rule__AbsencePattern__Group_2_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24508:1: ( rule__AbsencePattern__Group_2_0_0__1__Impl ) + // InternalFiacre.g:24509:2: rule__AbsencePattern__Group_2_0_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_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__AbsencePattern__Group_2_0_0__1" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_0__1__Impl" + // InternalFiacre.g:24515:1: rule__AbsencePattern__Group_2_0_0__1__Impl : ( ( rule__AbsencePattern__AfterAssignment_2_0_0_1 ) ) ; + public final void rule__AbsencePattern__Group_2_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24519:1: ( ( ( rule__AbsencePattern__AfterAssignment_2_0_0_1 ) ) ) + // InternalFiacre.g:24520:1: ( ( rule__AbsencePattern__AfterAssignment_2_0_0_1 ) ) + { + // InternalFiacre.g:24520:1: ( ( rule__AbsencePattern__AfterAssignment_2_0_0_1 ) ) + // InternalFiacre.g:24521:2: ( rule__AbsencePattern__AfterAssignment_2_0_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getAfterAssignment_2_0_0_1()); + } + // InternalFiacre.g:24522:2: ( rule__AbsencePattern__AfterAssignment_2_0_0_1 ) + // InternalFiacre.g:24522:3: rule__AbsencePattern__AfterAssignment_2_0_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__AfterAssignment_2_0_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getAfterAssignment_2_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_0__1__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_0__0" + // InternalFiacre.g:24531:1: rule__AbsencePattern__Group_2_0_1_0__0 : rule__AbsencePattern__Group_2_0_1_0__0__Impl rule__AbsencePattern__Group_2_0_1_0__1 ; + public final void rule__AbsencePattern__Group_2_0_1_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24535:1: ( rule__AbsencePattern__Group_2_0_1_0__0__Impl rule__AbsencePattern__Group_2_0_1_0__1 ) + // InternalFiacre.g:24536:2: rule__AbsencePattern__Group_2_0_1_0__0__Impl rule__AbsencePattern__Group_2_0_1_0__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__AbsencePattern__Group_2_0_1_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_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__AbsencePattern__Group_2_0_1_0__0" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_0__0__Impl" + // InternalFiacre.g:24543:1: rule__AbsencePattern__Group_2_0_1_0__0__Impl : ( 'within' ) ; + public final void rule__AbsencePattern__Group_2_0_1_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24547:1: ( ( 'within' ) ) + // InternalFiacre.g:24548:1: ( 'within' ) + { + // InternalFiacre.g:24548:1: ( 'within' ) + // InternalFiacre.g:24549:2: 'within' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getWithinKeyword_2_0_1_0_0()); + } + match(input,120,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getWithinKeyword_2_0_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_1_0__0__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_0__1" + // InternalFiacre.g:24558:1: rule__AbsencePattern__Group_2_0_1_0__1 : rule__AbsencePattern__Group_2_0_1_0__1__Impl rule__AbsencePattern__Group_2_0_1_0__2 ; + public final void rule__AbsencePattern__Group_2_0_1_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24562:1: ( rule__AbsencePattern__Group_2_0_1_0__1__Impl rule__AbsencePattern__Group_2_0_1_0__2 ) + // InternalFiacre.g:24563:2: rule__AbsencePattern__Group_2_0_1_0__1__Impl rule__AbsencePattern__Group_2_0_1_0__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__AbsencePattern__Group_2_0_1_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_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__AbsencePattern__Group_2_0_1_0__1" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_0__1__Impl" + // InternalFiacre.g:24570:1: rule__AbsencePattern__Group_2_0_1_0__1__Impl : ( ( rule__AbsencePattern__LowerAssignment_2_0_1_0_1 ) ) ; + public final void rule__AbsencePattern__Group_2_0_1_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24574:1: ( ( ( rule__AbsencePattern__LowerAssignment_2_0_1_0_1 ) ) ) + // InternalFiacre.g:24575:1: ( ( rule__AbsencePattern__LowerAssignment_2_0_1_0_1 ) ) + { + // InternalFiacre.g:24575:1: ( ( rule__AbsencePattern__LowerAssignment_2_0_1_0_1 ) ) + // InternalFiacre.g:24576:2: ( rule__AbsencePattern__LowerAssignment_2_0_1_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getLowerAssignment_2_0_1_0_1()); + } + // InternalFiacre.g:24577:2: ( rule__AbsencePattern__LowerAssignment_2_0_1_0_1 ) + // InternalFiacre.g:24577:3: rule__AbsencePattern__LowerAssignment_2_0_1_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__LowerAssignment_2_0_1_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getLowerAssignment_2_0_1_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_1_0__1__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_0__2" + // InternalFiacre.g:24585:1: rule__AbsencePattern__Group_2_0_1_0__2 : rule__AbsencePattern__Group_2_0_1_0__2__Impl rule__AbsencePattern__Group_2_0_1_0__3 ; + public final void rule__AbsencePattern__Group_2_0_1_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24589:1: ( rule__AbsencePattern__Group_2_0_1_0__2__Impl rule__AbsencePattern__Group_2_0_1_0__3 ) + // InternalFiacre.g:24590:2: rule__AbsencePattern__Group_2_0_1_0__2__Impl rule__AbsencePattern__Group_2_0_1_0__3 + { + pushFollow(FollowSets000.FOLLOW_48); + rule__AbsencePattern__Group_2_0_1_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0_1_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_1_0__2" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_0__2__Impl" + // InternalFiacre.g:24597:1: rule__AbsencePattern__Group_2_0_1_0__2__Impl : ( ',' ) ; + public final void rule__AbsencePattern__Group_2_0_1_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24601:1: ( ( ',' ) ) + // InternalFiacre.g:24602:1: ( ',' ) + { + // InternalFiacre.g:24602:1: ( ',' ) + // InternalFiacre.g:24603:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_0_1_0_2()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_0_1_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_1_0__2__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_0__3" + // InternalFiacre.g:24612:1: rule__AbsencePattern__Group_2_0_1_0__3 : rule__AbsencePattern__Group_2_0_1_0__3__Impl ; + public final void rule__AbsencePattern__Group_2_0_1_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24616:1: ( rule__AbsencePattern__Group_2_0_1_0__3__Impl ) + // InternalFiacre.g:24617:2: rule__AbsencePattern__Group_2_0_1_0__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0_1_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_1_0__3" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_0__3__Impl" + // InternalFiacre.g:24623:1: rule__AbsencePattern__Group_2_0_1_0__3__Impl : ( ( rule__AbsencePattern__UpperAssignment_2_0_1_0_3 ) ) ; + public final void rule__AbsencePattern__Group_2_0_1_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24627:1: ( ( ( rule__AbsencePattern__UpperAssignment_2_0_1_0_3 ) ) ) + // InternalFiacre.g:24628:1: ( ( rule__AbsencePattern__UpperAssignment_2_0_1_0_3 ) ) + { + // InternalFiacre.g:24628:1: ( ( rule__AbsencePattern__UpperAssignment_2_0_1_0_3 ) ) + // InternalFiacre.g:24629:2: ( rule__AbsencePattern__UpperAssignment_2_0_1_0_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getUpperAssignment_2_0_1_0_3()); + } + // InternalFiacre.g:24630:2: ( rule__AbsencePattern__UpperAssignment_2_0_1_0_3 ) + // InternalFiacre.g:24630:3: rule__AbsencePattern__UpperAssignment_2_0_1_0_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__UpperAssignment_2_0_1_0_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getUpperAssignment_2_0_1_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_1_0__3__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_1__0" + // InternalFiacre.g:24639:1: rule__AbsencePattern__Group_2_0_1_1__0 : rule__AbsencePattern__Group_2_0_1_1__0__Impl rule__AbsencePattern__Group_2_0_1_1__1 ; + public final void rule__AbsencePattern__Group_2_0_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24643:1: ( rule__AbsencePattern__Group_2_0_1_1__0__Impl rule__AbsencePattern__Group_2_0_1_1__1 ) + // InternalFiacre.g:24644:2: rule__AbsencePattern__Group_2_0_1_1__0__Impl rule__AbsencePattern__Group_2_0_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AbsencePattern__Group_2_0_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0_1_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_1_1__0" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_1__0__Impl" + // InternalFiacre.g:24651:1: rule__AbsencePattern__Group_2_0_1_1__0__Impl : ( 'until' ) ; + public final void rule__AbsencePattern__Group_2_0_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24655:1: ( ( 'until' ) ) + // InternalFiacre.g:24656:1: ( 'until' ) + { + // InternalFiacre.g:24656:1: ( 'until' ) + // InternalFiacre.g:24657:2: 'until' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getUntilKeyword_2_0_1_1_0()); + } + match(input,121,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getUntilKeyword_2_0_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_1_1__0__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_1__1" + // InternalFiacre.g:24666:1: rule__AbsencePattern__Group_2_0_1_1__1 : rule__AbsencePattern__Group_2_0_1_1__1__Impl ; + public final void rule__AbsencePattern__Group_2_0_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24670:1: ( rule__AbsencePattern__Group_2_0_1_1__1__Impl ) + // InternalFiacre.g:24671:2: rule__AbsencePattern__Group_2_0_1_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_0_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__AbsencePattern__Group_2_0_1_1__1" + + + // $ANTLR start "rule__AbsencePattern__Group_2_0_1_1__1__Impl" + // InternalFiacre.g:24677:1: rule__AbsencePattern__Group_2_0_1_1__1__Impl : ( ( rule__AbsencePattern__UntilAssignment_2_0_1_1_1 ) ) ; + public final void rule__AbsencePattern__Group_2_0_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24681:1: ( ( ( rule__AbsencePattern__UntilAssignment_2_0_1_1_1 ) ) ) + // InternalFiacre.g:24682:1: ( ( rule__AbsencePattern__UntilAssignment_2_0_1_1_1 ) ) + { + // InternalFiacre.g:24682:1: ( ( rule__AbsencePattern__UntilAssignment_2_0_1_1_1 ) ) + // InternalFiacre.g:24683:2: ( rule__AbsencePattern__UntilAssignment_2_0_1_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getUntilAssignment_2_0_1_1_1()); + } + // InternalFiacre.g:24684:2: ( rule__AbsencePattern__UntilAssignment_2_0_1_1_1 ) + // InternalFiacre.g:24684:3: rule__AbsencePattern__UntilAssignment_2_0_1_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__UntilAssignment_2_0_1_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getUntilAssignment_2_0_1_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_0_1_1__1__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1__0" + // InternalFiacre.g:24693:1: rule__AbsencePattern__Group_2_1__0 : rule__AbsencePattern__Group_2_1__0__Impl rule__AbsencePattern__Group_2_1__1 ; + public final void rule__AbsencePattern__Group_2_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24697:1: ( rule__AbsencePattern__Group_2_1__0__Impl rule__AbsencePattern__Group_2_1__1 ) + // InternalFiacre.g:24698:2: rule__AbsencePattern__Group_2_1__0__Impl rule__AbsencePattern__Group_2_1__1 + { + pushFollow(FollowSets000.FOLLOW_139); + rule__AbsencePattern__Group_2_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__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__AbsencePattern__Group_2_1__0" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1__0__Impl" + // InternalFiacre.g:24705:1: rule__AbsencePattern__Group_2_1__0__Impl : ( ( rule__AbsencePattern__Group_2_1_0__0 ) ) ; + public final void rule__AbsencePattern__Group_2_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24709:1: ( ( ( rule__AbsencePattern__Group_2_1_0__0 ) ) ) + // InternalFiacre.g:24710:1: ( ( rule__AbsencePattern__Group_2_1_0__0 ) ) + { + // InternalFiacre.g:24710:1: ( ( rule__AbsencePattern__Group_2_1_0__0 ) ) + // InternalFiacre.g:24711:2: ( rule__AbsencePattern__Group_2_1_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getGroup_2_1_0()); + } + // InternalFiacre.g:24712:2: ( rule__AbsencePattern__Group_2_1_0__0 ) + // InternalFiacre.g:24712:3: rule__AbsencePattern__Group_2_1_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_1_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getGroup_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1__0__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1__1" + // InternalFiacre.g:24720:1: rule__AbsencePattern__Group_2_1__1 : rule__AbsencePattern__Group_2_1__1__Impl ; + public final void rule__AbsencePattern__Group_2_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24724:1: ( rule__AbsencePattern__Group_2_1__1__Impl ) + // InternalFiacre.g:24725:2: rule__AbsencePattern__Group_2_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__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__AbsencePattern__Group_2_1__1" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1__1__Impl" + // InternalFiacre.g:24731:1: rule__AbsencePattern__Group_2_1__1__Impl : ( ( rule__AbsencePattern__Group_2_1_1__0 )? ) ; + public final void rule__AbsencePattern__Group_2_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24735:1: ( ( ( rule__AbsencePattern__Group_2_1_1__0 )? ) ) + // InternalFiacre.g:24736:1: ( ( rule__AbsencePattern__Group_2_1_1__0 )? ) + { + // InternalFiacre.g:24736:1: ( ( rule__AbsencePattern__Group_2_1_1__0 )? ) + // InternalFiacre.g:24737:2: ( rule__AbsencePattern__Group_2_1_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getGroup_2_1_1()); + } + // InternalFiacre.g:24738:2: ( rule__AbsencePattern__Group_2_1_1__0 )? + int alt185=2; + int LA185_0 = input.LA(1); + + if ( (LA185_0==125) ) { + alt185=1; + } + switch (alt185) { + case 1 : + // InternalFiacre.g:24738:3: rule__AbsencePattern__Group_2_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getGroup_2_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1__1__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_0__0" + // InternalFiacre.g:24747:1: rule__AbsencePattern__Group_2_1_0__0 : rule__AbsencePattern__Group_2_1_0__0__Impl rule__AbsencePattern__Group_2_1_0__1 ; + public final void rule__AbsencePattern__Group_2_1_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24751:1: ( rule__AbsencePattern__Group_2_1_0__0__Impl rule__AbsencePattern__Group_2_1_0__1 ) + // InternalFiacre.g:24752:2: rule__AbsencePattern__Group_2_1_0__0__Impl rule__AbsencePattern__Group_2_1_0__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AbsencePattern__Group_2_1_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_1_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_0__0" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_0__0__Impl" + // InternalFiacre.g:24759:1: rule__AbsencePattern__Group_2_1_0__0__Impl : ( 'before' ) ; + public final void rule__AbsencePattern__Group_2_1_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24763:1: ( ( 'before' ) ) + // InternalFiacre.g:24764:1: ( 'before' ) + { + // InternalFiacre.g:24764:1: ( 'before' ) + // InternalFiacre.g:24765:2: 'before' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getBeforeKeyword_2_1_0_0()); + } + match(input,122,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getBeforeKeyword_2_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_0__0__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_0__1" + // InternalFiacre.g:24774:1: rule__AbsencePattern__Group_2_1_0__1 : rule__AbsencePattern__Group_2_1_0__1__Impl ; + public final void rule__AbsencePattern__Group_2_1_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24778:1: ( rule__AbsencePattern__Group_2_1_0__1__Impl ) + // InternalFiacre.g:24779:2: rule__AbsencePattern__Group_2_1_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_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__AbsencePattern__Group_2_1_0__1" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_0__1__Impl" + // InternalFiacre.g:24785:1: rule__AbsencePattern__Group_2_1_0__1__Impl : ( ( rule__AbsencePattern__BeforeAssignment_2_1_0_1 ) ) ; + public final void rule__AbsencePattern__Group_2_1_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24789:1: ( ( ( rule__AbsencePattern__BeforeAssignment_2_1_0_1 ) ) ) + // InternalFiacre.g:24790:1: ( ( rule__AbsencePattern__BeforeAssignment_2_1_0_1 ) ) + { + // InternalFiacre.g:24790:1: ( ( rule__AbsencePattern__BeforeAssignment_2_1_0_1 ) ) + // InternalFiacre.g:24791:2: ( rule__AbsencePattern__BeforeAssignment_2_1_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getBeforeAssignment_2_1_0_1()); + } + // InternalFiacre.g:24792:2: ( rule__AbsencePattern__BeforeAssignment_2_1_0_1 ) + // InternalFiacre.g:24792:3: rule__AbsencePattern__BeforeAssignment_2_1_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__BeforeAssignment_2_1_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getBeforeAssignment_2_1_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_0__1__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_1__0" + // InternalFiacre.g:24801:1: rule__AbsencePattern__Group_2_1_1__0 : rule__AbsencePattern__Group_2_1_1__0__Impl rule__AbsencePattern__Group_2_1_1__1 ; + public final void rule__AbsencePattern__Group_2_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24805:1: ( rule__AbsencePattern__Group_2_1_1__0__Impl rule__AbsencePattern__Group_2_1_1__1 ) + // InternalFiacre.g:24806:2: rule__AbsencePattern__Group_2_1_1__0__Impl rule__AbsencePattern__Group_2_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__AbsencePattern__Group_2_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_1_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_1__0" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_1__0__Impl" + // InternalFiacre.g:24813:1: rule__AbsencePattern__Group_2_1_1__0__Impl : ( 'for' ) ; + public final void rule__AbsencePattern__Group_2_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24817:1: ( ( 'for' ) ) + // InternalFiacre.g:24818:1: ( 'for' ) + { + // InternalFiacre.g:24818:1: ( 'for' ) + // InternalFiacre.g:24819:2: 'for' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getForKeyword_2_1_1_0()); + } + match(input,125,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getForKeyword_2_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_1__0__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_1__1" + // InternalFiacre.g:24828:1: rule__AbsencePattern__Group_2_1_1__1 : rule__AbsencePattern__Group_2_1_1__1__Impl rule__AbsencePattern__Group_2_1_1__2 ; + public final void rule__AbsencePattern__Group_2_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24832:1: ( rule__AbsencePattern__Group_2_1_1__1__Impl rule__AbsencePattern__Group_2_1_1__2 ) + // InternalFiacre.g:24833:2: rule__AbsencePattern__Group_2_1_1__1__Impl rule__AbsencePattern__Group_2_1_1__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__AbsencePattern__Group_2_1_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_1_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_1__1" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_1__1__Impl" + // InternalFiacre.g:24840:1: rule__AbsencePattern__Group_2_1_1__1__Impl : ( ( rule__AbsencePattern__LowerAssignment_2_1_1_1 ) ) ; + public final void rule__AbsencePattern__Group_2_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24844:1: ( ( ( rule__AbsencePattern__LowerAssignment_2_1_1_1 ) ) ) + // InternalFiacre.g:24845:1: ( ( rule__AbsencePattern__LowerAssignment_2_1_1_1 ) ) + { + // InternalFiacre.g:24845:1: ( ( rule__AbsencePattern__LowerAssignment_2_1_1_1 ) ) + // InternalFiacre.g:24846:2: ( rule__AbsencePattern__LowerAssignment_2_1_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getLowerAssignment_2_1_1_1()); + } + // InternalFiacre.g:24847:2: ( rule__AbsencePattern__LowerAssignment_2_1_1_1 ) + // InternalFiacre.g:24847:3: rule__AbsencePattern__LowerAssignment_2_1_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__LowerAssignment_2_1_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getLowerAssignment_2_1_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_1__1__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_1__2" + // InternalFiacre.g:24855:1: rule__AbsencePattern__Group_2_1_1__2 : rule__AbsencePattern__Group_2_1_1__2__Impl rule__AbsencePattern__Group_2_1_1__3 ; + public final void rule__AbsencePattern__Group_2_1_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24859:1: ( rule__AbsencePattern__Group_2_1_1__2__Impl rule__AbsencePattern__Group_2_1_1__3 ) + // InternalFiacre.g:24860:2: rule__AbsencePattern__Group_2_1_1__2__Impl rule__AbsencePattern__Group_2_1_1__3 + { + pushFollow(FollowSets000.FOLLOW_48); + rule__AbsencePattern__Group_2_1_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_1_1__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_1__2" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_1__2__Impl" + // InternalFiacre.g:24867:1: rule__AbsencePattern__Group_2_1_1__2__Impl : ( ',' ) ; + public final void rule__AbsencePattern__Group_2_1_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24871:1: ( ( ',' ) ) + // InternalFiacre.g:24872:1: ( ',' ) + { + // InternalFiacre.g:24872:1: ( ',' ) + // InternalFiacre.g:24873:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_1_1_2()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_1_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_1__2__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_1__3" + // InternalFiacre.g:24882:1: rule__AbsencePattern__Group_2_1_1__3 : rule__AbsencePattern__Group_2_1_1__3__Impl ; + public final void rule__AbsencePattern__Group_2_1_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24886:1: ( rule__AbsencePattern__Group_2_1_1__3__Impl ) + // InternalFiacre.g:24887:2: rule__AbsencePattern__Group_2_1_1__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_1_1__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_1__3" + + + // $ANTLR start "rule__AbsencePattern__Group_2_1_1__3__Impl" + // InternalFiacre.g:24893:1: rule__AbsencePattern__Group_2_1_1__3__Impl : ( ( rule__AbsencePattern__UpperAssignment_2_1_1_3 ) ) ; + public final void rule__AbsencePattern__Group_2_1_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24897:1: ( ( ( rule__AbsencePattern__UpperAssignment_2_1_1_3 ) ) ) + // InternalFiacre.g:24898:1: ( ( rule__AbsencePattern__UpperAssignment_2_1_1_3 ) ) + { + // InternalFiacre.g:24898:1: ( ( rule__AbsencePattern__UpperAssignment_2_1_1_3 ) ) + // InternalFiacre.g:24899:2: ( rule__AbsencePattern__UpperAssignment_2_1_1_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getUpperAssignment_2_1_1_3()); + } + // InternalFiacre.g:24900:2: ( rule__AbsencePattern__UpperAssignment_2_1_1_3 ) + // InternalFiacre.g:24900:3: rule__AbsencePattern__UpperAssignment_2_1_1_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__UpperAssignment_2_1_1_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getUpperAssignment_2_1_1_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_1_1__3__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_2__0" + // InternalFiacre.g:24909:1: rule__AbsencePattern__Group_2_2__0 : rule__AbsencePattern__Group_2_2__0__Impl rule__AbsencePattern__Group_2_2__1 ; + public final void rule__AbsencePattern__Group_2_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24913:1: ( rule__AbsencePattern__Group_2_2__0__Impl rule__AbsencePattern__Group_2_2__1 ) + // InternalFiacre.g:24914:2: rule__AbsencePattern__Group_2_2__0__Impl rule__AbsencePattern__Group_2_2__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AbsencePattern__Group_2_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_2__0" + + + // $ANTLR start "rule__AbsencePattern__Group_2_2__0__Impl" + // InternalFiacre.g:24921:1: rule__AbsencePattern__Group_2_2__0__Impl : ( 'between' ) ; + public final void rule__AbsencePattern__Group_2_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24925:1: ( ( 'between' ) ) + // InternalFiacre.g:24926:1: ( 'between' ) + { + // InternalFiacre.g:24926:1: ( 'between' ) + // InternalFiacre.g:24927:2: 'between' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getBetweenKeyword_2_2_0()); + } + match(input,123,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getBetweenKeyword_2_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_2__0__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_2__1" + // InternalFiacre.g:24936:1: rule__AbsencePattern__Group_2_2__1 : rule__AbsencePattern__Group_2_2__1__Impl rule__AbsencePattern__Group_2_2__2 ; + public final void rule__AbsencePattern__Group_2_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24940:1: ( rule__AbsencePattern__Group_2_2__1__Impl rule__AbsencePattern__Group_2_2__2 ) + // InternalFiacre.g:24941:2: rule__AbsencePattern__Group_2_2__1__Impl rule__AbsencePattern__Group_2_2__2 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__AbsencePattern__Group_2_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_2__1" + + + // $ANTLR start "rule__AbsencePattern__Group_2_2__1__Impl" + // InternalFiacre.g:24948:1: rule__AbsencePattern__Group_2_2__1__Impl : ( ( rule__AbsencePattern__MinAssignment_2_2_1 ) ) ; + public final void rule__AbsencePattern__Group_2_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24952:1: ( ( ( rule__AbsencePattern__MinAssignment_2_2_1 ) ) ) + // InternalFiacre.g:24953:1: ( ( rule__AbsencePattern__MinAssignment_2_2_1 ) ) + { + // InternalFiacre.g:24953:1: ( ( rule__AbsencePattern__MinAssignment_2_2_1 ) ) + // InternalFiacre.g:24954:2: ( rule__AbsencePattern__MinAssignment_2_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getMinAssignment_2_2_1()); + } + // InternalFiacre.g:24955:2: ( rule__AbsencePattern__MinAssignment_2_2_1 ) + // InternalFiacre.g:24955:3: rule__AbsencePattern__MinAssignment_2_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__MinAssignment_2_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getMinAssignment_2_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_2__1__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_2__2" + // InternalFiacre.g:24963:1: rule__AbsencePattern__Group_2_2__2 : rule__AbsencePattern__Group_2_2__2__Impl rule__AbsencePattern__Group_2_2__3 ; + public final void rule__AbsencePattern__Group_2_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24967:1: ( rule__AbsencePattern__Group_2_2__2__Impl rule__AbsencePattern__Group_2_2__3 ) + // InternalFiacre.g:24968:2: rule__AbsencePattern__Group_2_2__2__Impl rule__AbsencePattern__Group_2_2__3 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AbsencePattern__Group_2_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_2__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_2__2" + + + // $ANTLR start "rule__AbsencePattern__Group_2_2__2__Impl" + // InternalFiacre.g:24975:1: rule__AbsencePattern__Group_2_2__2__Impl : ( 'and' ) ; + public final void rule__AbsencePattern__Group_2_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24979:1: ( ( 'and' ) ) + // InternalFiacre.g:24980:1: ( 'and' ) + { + // InternalFiacre.g:24980:1: ( 'and' ) + // InternalFiacre.g:24981:2: 'and' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getAndKeyword_2_2_2()); + } + match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getAndKeyword_2_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_2__2__Impl" + + + // $ANTLR start "rule__AbsencePattern__Group_2_2__3" + // InternalFiacre.g:24990:1: rule__AbsencePattern__Group_2_2__3 : rule__AbsencePattern__Group_2_2__3__Impl ; + public final void rule__AbsencePattern__Group_2_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:24994:1: ( rule__AbsencePattern__Group_2_2__3__Impl ) + // InternalFiacre.g:24995:2: rule__AbsencePattern__Group_2_2__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__Group_2_2__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_2__3" + + + // $ANTLR start "rule__AbsencePattern__Group_2_2__3__Impl" + // InternalFiacre.g:25001:1: rule__AbsencePattern__Group_2_2__3__Impl : ( ( rule__AbsencePattern__MaxAssignment_2_2_3 ) ) ; + public final void rule__AbsencePattern__Group_2_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25005:1: ( ( ( rule__AbsencePattern__MaxAssignment_2_2_3 ) ) ) + // InternalFiacre.g:25006:1: ( ( rule__AbsencePattern__MaxAssignment_2_2_3 ) ) + { + // InternalFiacre.g:25006:1: ( ( rule__AbsencePattern__MaxAssignment_2_2_3 ) ) + // InternalFiacre.g:25007:2: ( rule__AbsencePattern__MaxAssignment_2_2_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getMaxAssignment_2_2_3()); + } + // InternalFiacre.g:25008:2: ( rule__AbsencePattern__MaxAssignment_2_2_3 ) + // InternalFiacre.g:25008:3: rule__AbsencePattern__MaxAssignment_2_2_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AbsencePattern__MaxAssignment_2_2_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getMaxAssignment_2_2_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__Group_2_2__3__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group__0" + // InternalFiacre.g:25017:1: rule__AlwaysPattern__Group__0 : rule__AlwaysPattern__Group__0__Impl rule__AlwaysPattern__Group__1 ; + public final void rule__AlwaysPattern__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25021:1: ( rule__AlwaysPattern__Group__0__Impl rule__AlwaysPattern__Group__1 ) + // InternalFiacre.g:25022:2: rule__AlwaysPattern__Group__0__Impl rule__AlwaysPattern__Group__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AlwaysPattern__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group__0" + + + // $ANTLR start "rule__AlwaysPattern__Group__0__Impl" + // InternalFiacre.g:25029:1: rule__AlwaysPattern__Group__0__Impl : ( 'always' ) ; + public final void rule__AlwaysPattern__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25033:1: ( ( 'always' ) ) + // InternalFiacre.g:25034:1: ( 'always' ) + { + // InternalFiacre.g:25034:1: ( 'always' ) + // InternalFiacre.g:25035:2: 'always' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getAlwaysKeyword_0()); + } + match(input,126,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getAlwaysKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group__0__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group__1" + // InternalFiacre.g:25044:1: rule__AlwaysPattern__Group__1 : rule__AlwaysPattern__Group__1__Impl rule__AlwaysPattern__Group__2 ; + public final void rule__AlwaysPattern__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25048:1: ( rule__AlwaysPattern__Group__1__Impl rule__AlwaysPattern__Group__2 ) + // InternalFiacre.g:25049:2: rule__AlwaysPattern__Group__1__Impl rule__AlwaysPattern__Group__2 + { + pushFollow(FollowSets000.FOLLOW_138); + rule__AlwaysPattern__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group__1" + + + // $ANTLR start "rule__AlwaysPattern__Group__1__Impl" + // InternalFiacre.g:25056:1: rule__AlwaysPattern__Group__1__Impl : ( ( rule__AlwaysPattern__SubjectAssignment_1 ) ) ; + public final void rule__AlwaysPattern__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25060:1: ( ( ( rule__AlwaysPattern__SubjectAssignment_1 ) ) ) + // InternalFiacre.g:25061:1: ( ( rule__AlwaysPattern__SubjectAssignment_1 ) ) + { + // InternalFiacre.g:25061:1: ( ( rule__AlwaysPattern__SubjectAssignment_1 ) ) + // InternalFiacre.g:25062:2: ( rule__AlwaysPattern__SubjectAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getSubjectAssignment_1()); + } + // InternalFiacre.g:25063:2: ( rule__AlwaysPattern__SubjectAssignment_1 ) + // InternalFiacre.g:25063:3: rule__AlwaysPattern__SubjectAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__SubjectAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getSubjectAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group__1__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group__2" + // InternalFiacre.g:25071:1: rule__AlwaysPattern__Group__2 : rule__AlwaysPattern__Group__2__Impl ; + public final void rule__AlwaysPattern__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25075:1: ( rule__AlwaysPattern__Group__2__Impl ) + // InternalFiacre.g:25076:2: rule__AlwaysPattern__Group__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group__2" + + + // $ANTLR start "rule__AlwaysPattern__Group__2__Impl" + // InternalFiacre.g:25082:1: rule__AlwaysPattern__Group__2__Impl : ( ( rule__AlwaysPattern__Alternatives_2 )? ) ; + public final void rule__AlwaysPattern__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25086:1: ( ( ( rule__AlwaysPattern__Alternatives_2 )? ) ) + // InternalFiacre.g:25087:1: ( ( rule__AlwaysPattern__Alternatives_2 )? ) + { + // InternalFiacre.g:25087:1: ( ( rule__AlwaysPattern__Alternatives_2 )? ) + // InternalFiacre.g:25088:2: ( rule__AlwaysPattern__Alternatives_2 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getAlternatives_2()); + } + // InternalFiacre.g:25089:2: ( rule__AlwaysPattern__Alternatives_2 )? + int alt186=2; + int LA186_0 = input.LA(1); + + if ( (LA186_0==119||(LA186_0>=122 && LA186_0<=123)) ) { + alt186=1; + } + switch (alt186) { + case 1 : + // InternalFiacre.g:25089:3: rule__AlwaysPattern__Alternatives_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Alternatives_2(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getAlternatives_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group__2__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_0__0" + // InternalFiacre.g:25098:1: rule__AlwaysPattern__Group_2_0__0 : rule__AlwaysPattern__Group_2_0__0__Impl rule__AlwaysPattern__Group_2_0__1 ; + public final void rule__AlwaysPattern__Group_2_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25102:1: ( rule__AlwaysPattern__Group_2_0__0__Impl rule__AlwaysPattern__Group_2_0__1 ) + // InternalFiacre.g:25103:2: rule__AlwaysPattern__Group_2_0__0__Impl rule__AlwaysPattern__Group_2_0__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AlwaysPattern__Group_2_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_0__0" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_0__0__Impl" + // InternalFiacre.g:25110:1: rule__AlwaysPattern__Group_2_0__0__Impl : ( 'before' ) ; + public final void rule__AlwaysPattern__Group_2_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25114:1: ( ( 'before' ) ) + // InternalFiacre.g:25115:1: ( 'before' ) + { + // InternalFiacre.g:25115:1: ( 'before' ) + // InternalFiacre.g:25116:2: 'before' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getBeforeKeyword_2_0_0()); + } + match(input,122,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getBeforeKeyword_2_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_0__0__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_0__1" + // InternalFiacre.g:25125:1: rule__AlwaysPattern__Group_2_0__1 : rule__AlwaysPattern__Group_2_0__1__Impl ; + public final void rule__AlwaysPattern__Group_2_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25129:1: ( rule__AlwaysPattern__Group_2_0__1__Impl ) + // InternalFiacre.g:25130:2: rule__AlwaysPattern__Group_2_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_0__1" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_0__1__Impl" + // InternalFiacre.g:25136:1: rule__AlwaysPattern__Group_2_0__1__Impl : ( ( rule__AlwaysPattern__BeforeAssignment_2_0_1 ) ) ; + public final void rule__AlwaysPattern__Group_2_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25140:1: ( ( ( rule__AlwaysPattern__BeforeAssignment_2_0_1 ) ) ) + // InternalFiacre.g:25141:1: ( ( rule__AlwaysPattern__BeforeAssignment_2_0_1 ) ) + { + // InternalFiacre.g:25141:1: ( ( rule__AlwaysPattern__BeforeAssignment_2_0_1 ) ) + // InternalFiacre.g:25142:2: ( rule__AlwaysPattern__BeforeAssignment_2_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getBeforeAssignment_2_0_1()); + } + // InternalFiacre.g:25143:2: ( rule__AlwaysPattern__BeforeAssignment_2_0_1 ) + // InternalFiacre.g:25143:3: rule__AlwaysPattern__BeforeAssignment_2_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__BeforeAssignment_2_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getBeforeAssignment_2_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_0__1__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_1__0" + // InternalFiacre.g:25152:1: rule__AlwaysPattern__Group_2_1__0 : rule__AlwaysPattern__Group_2_1__0__Impl rule__AlwaysPattern__Group_2_1__1 ; + public final void rule__AlwaysPattern__Group_2_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25156:1: ( rule__AlwaysPattern__Group_2_1__0__Impl rule__AlwaysPattern__Group_2_1__1 ) + // InternalFiacre.g:25157:2: rule__AlwaysPattern__Group_2_1__0__Impl rule__AlwaysPattern__Group_2_1__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AlwaysPattern__Group_2_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__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__AlwaysPattern__Group_2_1__0" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_1__0__Impl" + // InternalFiacre.g:25164:1: rule__AlwaysPattern__Group_2_1__0__Impl : ( 'after' ) ; + public final void rule__AlwaysPattern__Group_2_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25168:1: ( ( 'after' ) ) + // InternalFiacre.g:25169:1: ( 'after' ) + { + // InternalFiacre.g:25169:1: ( 'after' ) + // InternalFiacre.g:25170:2: 'after' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getAfterKeyword_2_1_0()); + } + match(input,119,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getAfterKeyword_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_1__0__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_1__1" + // InternalFiacre.g:25179:1: rule__AlwaysPattern__Group_2_1__1 : rule__AlwaysPattern__Group_2_1__1__Impl rule__AlwaysPattern__Group_2_1__2 ; + public final void rule__AlwaysPattern__Group_2_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25183:1: ( rule__AlwaysPattern__Group_2_1__1__Impl rule__AlwaysPattern__Group_2_1__2 ) + // InternalFiacre.g:25184:2: rule__AlwaysPattern__Group_2_1__1__Impl rule__AlwaysPattern__Group_2_1__2 + { + pushFollow(FollowSets000.FOLLOW_140); + rule__AlwaysPattern__Group_2_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_1__1" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_1__1__Impl" + // InternalFiacre.g:25191:1: rule__AlwaysPattern__Group_2_1__1__Impl : ( ( rule__AlwaysPattern__AfterAssignment_2_1_1 ) ) ; + public final void rule__AlwaysPattern__Group_2_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25195:1: ( ( ( rule__AlwaysPattern__AfterAssignment_2_1_1 ) ) ) + // InternalFiacre.g:25196:1: ( ( rule__AlwaysPattern__AfterAssignment_2_1_1 ) ) + { + // InternalFiacre.g:25196:1: ( ( rule__AlwaysPattern__AfterAssignment_2_1_1 ) ) + // InternalFiacre.g:25197:2: ( rule__AlwaysPattern__AfterAssignment_2_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getAfterAssignment_2_1_1()); + } + // InternalFiacre.g:25198:2: ( rule__AlwaysPattern__AfterAssignment_2_1_1 ) + // InternalFiacre.g:25198:3: rule__AlwaysPattern__AfterAssignment_2_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__AfterAssignment_2_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getAfterAssignment_2_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_1__1__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_1__2" + // InternalFiacre.g:25206:1: rule__AlwaysPattern__Group_2_1__2 : rule__AlwaysPattern__Group_2_1__2__Impl ; + public final void rule__AlwaysPattern__Group_2_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25210:1: ( rule__AlwaysPattern__Group_2_1__2__Impl ) + // InternalFiacre.g:25211:2: rule__AlwaysPattern__Group_2_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_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__AlwaysPattern__Group_2_1__2" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_1__2__Impl" + // InternalFiacre.g:25217:1: rule__AlwaysPattern__Group_2_1__2__Impl : ( ( rule__AlwaysPattern__Group_2_1_2__0 )? ) ; + public final void rule__AlwaysPattern__Group_2_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25221:1: ( ( ( rule__AlwaysPattern__Group_2_1_2__0 )? ) ) + // InternalFiacre.g:25222:1: ( ( rule__AlwaysPattern__Group_2_1_2__0 )? ) + { + // InternalFiacre.g:25222:1: ( ( rule__AlwaysPattern__Group_2_1_2__0 )? ) + // InternalFiacre.g:25223:2: ( rule__AlwaysPattern__Group_2_1_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getGroup_2_1_2()); + } + // InternalFiacre.g:25224:2: ( rule__AlwaysPattern__Group_2_1_2__0 )? + int alt187=2; + int LA187_0 = input.LA(1); + + if ( (LA187_0==121) ) { + alt187=1; + } + switch (alt187) { + case 1 : + // InternalFiacre.g:25224:3: rule__AlwaysPattern__Group_2_1_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_1_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getGroup_2_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_1__2__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_1_2__0" + // InternalFiacre.g:25233:1: rule__AlwaysPattern__Group_2_1_2__0 : rule__AlwaysPattern__Group_2_1_2__0__Impl rule__AlwaysPattern__Group_2_1_2__1 ; + public final void rule__AlwaysPattern__Group_2_1_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25237:1: ( rule__AlwaysPattern__Group_2_1_2__0__Impl rule__AlwaysPattern__Group_2_1_2__1 ) + // InternalFiacre.g:25238:2: rule__AlwaysPattern__Group_2_1_2__0__Impl rule__AlwaysPattern__Group_2_1_2__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AlwaysPattern__Group_2_1_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_1_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_1_2__0" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_1_2__0__Impl" + // InternalFiacre.g:25245:1: rule__AlwaysPattern__Group_2_1_2__0__Impl : ( 'until' ) ; + public final void rule__AlwaysPattern__Group_2_1_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25249:1: ( ( 'until' ) ) + // InternalFiacre.g:25250:1: ( 'until' ) + { + // InternalFiacre.g:25250:1: ( 'until' ) + // InternalFiacre.g:25251:2: 'until' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getUntilKeyword_2_1_2_0()); + } + match(input,121,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getUntilKeyword_2_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_1_2__0__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_1_2__1" + // InternalFiacre.g:25260:1: rule__AlwaysPattern__Group_2_1_2__1 : rule__AlwaysPattern__Group_2_1_2__1__Impl ; + public final void rule__AlwaysPattern__Group_2_1_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25264:1: ( rule__AlwaysPattern__Group_2_1_2__1__Impl ) + // InternalFiacre.g:25265:2: rule__AlwaysPattern__Group_2_1_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_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__AlwaysPattern__Group_2_1_2__1" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_1_2__1__Impl" + // InternalFiacre.g:25271:1: rule__AlwaysPattern__Group_2_1_2__1__Impl : ( ( rule__AlwaysPattern__UntilAssignment_2_1_2_1 ) ) ; + public final void rule__AlwaysPattern__Group_2_1_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25275:1: ( ( ( rule__AlwaysPattern__UntilAssignment_2_1_2_1 ) ) ) + // InternalFiacre.g:25276:1: ( ( rule__AlwaysPattern__UntilAssignment_2_1_2_1 ) ) + { + // InternalFiacre.g:25276:1: ( ( rule__AlwaysPattern__UntilAssignment_2_1_2_1 ) ) + // InternalFiacre.g:25277:2: ( rule__AlwaysPattern__UntilAssignment_2_1_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getUntilAssignment_2_1_2_1()); + } + // InternalFiacre.g:25278:2: ( rule__AlwaysPattern__UntilAssignment_2_1_2_1 ) + // InternalFiacre.g:25278:3: rule__AlwaysPattern__UntilAssignment_2_1_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__UntilAssignment_2_1_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getUntilAssignment_2_1_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_1_2__1__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_2__0" + // InternalFiacre.g:25287:1: rule__AlwaysPattern__Group_2_2__0 : rule__AlwaysPattern__Group_2_2__0__Impl rule__AlwaysPattern__Group_2_2__1 ; + public final void rule__AlwaysPattern__Group_2_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25291:1: ( rule__AlwaysPattern__Group_2_2__0__Impl rule__AlwaysPattern__Group_2_2__1 ) + // InternalFiacre.g:25292:2: rule__AlwaysPattern__Group_2_2__0__Impl rule__AlwaysPattern__Group_2_2__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AlwaysPattern__Group_2_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_2__0" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_2__0__Impl" + // InternalFiacre.g:25299:1: rule__AlwaysPattern__Group_2_2__0__Impl : ( 'between' ) ; + public final void rule__AlwaysPattern__Group_2_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25303:1: ( ( 'between' ) ) + // InternalFiacre.g:25304:1: ( 'between' ) + { + // InternalFiacre.g:25304:1: ( 'between' ) + // InternalFiacre.g:25305:2: 'between' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getBetweenKeyword_2_2_0()); + } + match(input,123,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getBetweenKeyword_2_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_2__0__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_2__1" + // InternalFiacre.g:25314:1: rule__AlwaysPattern__Group_2_2__1 : rule__AlwaysPattern__Group_2_2__1__Impl rule__AlwaysPattern__Group_2_2__2 ; + public final void rule__AlwaysPattern__Group_2_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25318:1: ( rule__AlwaysPattern__Group_2_2__1__Impl rule__AlwaysPattern__Group_2_2__2 ) + // InternalFiacre.g:25319:2: rule__AlwaysPattern__Group_2_2__1__Impl rule__AlwaysPattern__Group_2_2__2 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__AlwaysPattern__Group_2_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_2__1" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_2__1__Impl" + // InternalFiacre.g:25326:1: rule__AlwaysPattern__Group_2_2__1__Impl : ( ( rule__AlwaysPattern__MinAssignment_2_2_1 ) ) ; + public final void rule__AlwaysPattern__Group_2_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25330:1: ( ( ( rule__AlwaysPattern__MinAssignment_2_2_1 ) ) ) + // InternalFiacre.g:25331:1: ( ( rule__AlwaysPattern__MinAssignment_2_2_1 ) ) + { + // InternalFiacre.g:25331:1: ( ( rule__AlwaysPattern__MinAssignment_2_2_1 ) ) + // InternalFiacre.g:25332:2: ( rule__AlwaysPattern__MinAssignment_2_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getMinAssignment_2_2_1()); + } + // InternalFiacre.g:25333:2: ( rule__AlwaysPattern__MinAssignment_2_2_1 ) + // InternalFiacre.g:25333:3: rule__AlwaysPattern__MinAssignment_2_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__MinAssignment_2_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getMinAssignment_2_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_2__1__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_2__2" + // InternalFiacre.g:25341:1: rule__AlwaysPattern__Group_2_2__2 : rule__AlwaysPattern__Group_2_2__2__Impl rule__AlwaysPattern__Group_2_2__3 ; + public final void rule__AlwaysPattern__Group_2_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25345:1: ( rule__AlwaysPattern__Group_2_2__2__Impl rule__AlwaysPattern__Group_2_2__3 ) + // InternalFiacre.g:25346:2: rule__AlwaysPattern__Group_2_2__2__Impl rule__AlwaysPattern__Group_2_2__3 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__AlwaysPattern__Group_2_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_2__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_2__2" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_2__2__Impl" + // InternalFiacre.g:25353:1: rule__AlwaysPattern__Group_2_2__2__Impl : ( 'and' ) ; + public final void rule__AlwaysPattern__Group_2_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25357:1: ( ( 'and' ) ) + // InternalFiacre.g:25358:1: ( 'and' ) + { + // InternalFiacre.g:25358:1: ( 'and' ) + // InternalFiacre.g:25359:2: 'and' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getAndKeyword_2_2_2()); + } + match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getAndKeyword_2_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_2__2__Impl" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_2__3" + // InternalFiacre.g:25368:1: rule__AlwaysPattern__Group_2_2__3 : rule__AlwaysPattern__Group_2_2__3__Impl ; + public final void rule__AlwaysPattern__Group_2_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25372:1: ( rule__AlwaysPattern__Group_2_2__3__Impl ) + // InternalFiacre.g:25373:2: rule__AlwaysPattern__Group_2_2__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__Group_2_2__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_2__3" + + + // $ANTLR start "rule__AlwaysPattern__Group_2_2__3__Impl" + // InternalFiacre.g:25379:1: rule__AlwaysPattern__Group_2_2__3__Impl : ( ( rule__AlwaysPattern__MaxAssignment_2_2_3 ) ) ; + public final void rule__AlwaysPattern__Group_2_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25383:1: ( ( ( rule__AlwaysPattern__MaxAssignment_2_2_3 ) ) ) + // InternalFiacre.g:25384:1: ( ( rule__AlwaysPattern__MaxAssignment_2_2_3 ) ) + { + // InternalFiacre.g:25384:1: ( ( rule__AlwaysPattern__MaxAssignment_2_2_3 ) ) + // InternalFiacre.g:25385:2: ( rule__AlwaysPattern__MaxAssignment_2_2_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getMaxAssignment_2_2_3()); + } + // InternalFiacre.g:25386:2: ( rule__AlwaysPattern__MaxAssignment_2_2_3 ) + // InternalFiacre.g:25386:3: rule__AlwaysPattern__MaxAssignment_2_2_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AlwaysPattern__MaxAssignment_2_2_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getMaxAssignment_2_2_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__Group_2_2__3__Impl" + + + // $ANTLR start "rule__SequencePattern__Group__0" + // InternalFiacre.g:25395:1: rule__SequencePattern__Group__0 : rule__SequencePattern__Group__0__Impl rule__SequencePattern__Group__1 ; + public final void rule__SequencePattern__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25399:1: ( rule__SequencePattern__Group__0__Impl rule__SequencePattern__Group__1 ) + // InternalFiacre.g:25400:2: rule__SequencePattern__Group__0__Impl rule__SequencePattern__Group__1 + { + pushFollow(FollowSets000.FOLLOW_141); + rule__SequencePattern__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group__0" + + + // $ANTLR start "rule__SequencePattern__Group__0__Impl" + // InternalFiacre.g:25407:1: rule__SequencePattern__Group__0__Impl : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25411:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:25412:1: ( ruleAtomicObservable ) + { + // InternalFiacre.g:25412:1: ( ruleAtomicObservable ) + // InternalFiacre.g:25413:2: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAtomicObservableParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAtomicObservableParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group__1" + // InternalFiacre.g:25422:1: rule__SequencePattern__Group__1 : rule__SequencePattern__Group__1__Impl ; + public final void rule__SequencePattern__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25426:1: ( rule__SequencePattern__Group__1__Impl ) + // InternalFiacre.g:25427:2: rule__SequencePattern__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group__1" + + + // $ANTLR start "rule__SequencePattern__Group__1__Impl" + // InternalFiacre.g:25433:1: rule__SequencePattern__Group__1__Impl : ( ( rule__SequencePattern__Alternatives_1 ) ) ; + public final void rule__SequencePattern__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25437:1: ( ( ( rule__SequencePattern__Alternatives_1 ) ) ) + // InternalFiacre.g:25438:1: ( ( rule__SequencePattern__Alternatives_1 ) ) + { + // InternalFiacre.g:25438:1: ( ( rule__SequencePattern__Alternatives_1 ) ) + // InternalFiacre.g:25439:2: ( rule__SequencePattern__Alternatives_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAlternatives_1()); + } + // InternalFiacre.g:25440:2: ( rule__SequencePattern__Alternatives_1 ) + // InternalFiacre.g:25440:3: rule__SequencePattern__Alternatives_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Alternatives_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAlternatives_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0__0" + // InternalFiacre.g:25449:1: rule__SequencePattern__Group_1_0__0 : rule__SequencePattern__Group_1_0__0__Impl rule__SequencePattern__Group_1_0__1 ; + public final void rule__SequencePattern__Group_1_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25453:1: ( rule__SequencePattern__Group_1_0__0__Impl rule__SequencePattern__Group_1_0__1 ) + // InternalFiacre.g:25454:2: rule__SequencePattern__Group_1_0__0__Impl rule__SequencePattern__Group_1_0__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_0__0__Impl" + // InternalFiacre.g:25461:1: rule__SequencePattern__Group_1_0__0__Impl : ( 'leadsto' ) ; + public final void rule__SequencePattern__Group_1_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25465:1: ( ( 'leadsto' ) ) + // InternalFiacre.g:25466:1: ( 'leadsto' ) + { + // InternalFiacre.g:25466:1: ( 'leadsto' ) + // InternalFiacre.g:25467:2: 'leadsto' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getLeadstoKeyword_1_0_0()); + } + match(input,127,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getLeadstoKeyword_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0__1" + // InternalFiacre.g:25476:1: rule__SequencePattern__Group_1_0__1 : rule__SequencePattern__Group_1_0__1__Impl rule__SequencePattern__Group_1_0__2 ; + public final void rule__SequencePattern__Group_1_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25480:1: ( rule__SequencePattern__Group_1_0__1__Impl rule__SequencePattern__Group_1_0__2 ) + // InternalFiacre.g:25481:2: rule__SequencePattern__Group_1_0__1__Impl rule__SequencePattern__Group_1_0__2 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_0__1__Impl" + // InternalFiacre.g:25488:1: rule__SequencePattern__Group_1_0__1__Impl : ( () ) ; + public final void rule__SequencePattern__Group_1_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25492:1: ( ( () ) ) + // InternalFiacre.g:25493:1: ( () ) + { + // InternalFiacre.g:25493:1: ( () ) + // InternalFiacre.g:25494:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getLeadsToPatternSubjectAction_1_0_1()); + } + // InternalFiacre.g:25495:2: () + // InternalFiacre.g:25495:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getLeadsToPatternSubjectAction_1_0_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0__2" + // InternalFiacre.g:25503:1: rule__SequencePattern__Group_1_0__2 : rule__SequencePattern__Group_1_0__2__Impl rule__SequencePattern__Group_1_0__3 ; + public final void rule__SequencePattern__Group_1_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25507:1: ( rule__SequencePattern__Group_1_0__2__Impl rule__SequencePattern__Group_1_0__3 ) + // InternalFiacre.g:25508:2: rule__SequencePattern__Group_1_0__2__Impl rule__SequencePattern__Group_1_0__3 + { + pushFollow(FollowSets000.FOLLOW_142); + rule__SequencePattern__Group_1_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0__2" + + + // $ANTLR start "rule__SequencePattern__Group_1_0__2__Impl" + // InternalFiacre.g:25515:1: rule__SequencePattern__Group_1_0__2__Impl : ( ( rule__SequencePattern__FollowerAssignment_1_0_2 ) ) ; + public final void rule__SequencePattern__Group_1_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25519:1: ( ( ( rule__SequencePattern__FollowerAssignment_1_0_2 ) ) ) + // InternalFiacre.g:25520:1: ( ( rule__SequencePattern__FollowerAssignment_1_0_2 ) ) + { + // InternalFiacre.g:25520:1: ( ( rule__SequencePattern__FollowerAssignment_1_0_2 ) ) + // InternalFiacre.g:25521:2: ( rule__SequencePattern__FollowerAssignment_1_0_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getFollowerAssignment_1_0_2()); + } + // InternalFiacre.g:25522:2: ( rule__SequencePattern__FollowerAssignment_1_0_2 ) + // InternalFiacre.g:25522:3: rule__SequencePattern__FollowerAssignment_1_0_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__FollowerAssignment_1_0_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getFollowerAssignment_1_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0__2__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0__3" + // InternalFiacre.g:25530:1: rule__SequencePattern__Group_1_0__3 : rule__SequencePattern__Group_1_0__3__Impl ; + public final void rule__SequencePattern__Group_1_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25534:1: ( rule__SequencePattern__Group_1_0__3__Impl ) + // InternalFiacre.g:25535:2: rule__SequencePattern__Group_1_0__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0__3" + + + // $ANTLR start "rule__SequencePattern__Group_1_0__3__Impl" + // InternalFiacre.g:25541:1: rule__SequencePattern__Group_1_0__3__Impl : ( ( rule__SequencePattern__Alternatives_1_0_3 )? ) ; + public final void rule__SequencePattern__Group_1_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25545:1: ( ( ( rule__SequencePattern__Alternatives_1_0_3 )? ) ) + // InternalFiacre.g:25546:1: ( ( rule__SequencePattern__Alternatives_1_0_3 )? ) + { + // InternalFiacre.g:25546:1: ( ( rule__SequencePattern__Alternatives_1_0_3 )? ) + // InternalFiacre.g:25547:2: ( rule__SequencePattern__Alternatives_1_0_3 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAlternatives_1_0_3()); + } + // InternalFiacre.g:25548:2: ( rule__SequencePattern__Alternatives_1_0_3 )? + int alt188=2; + int LA188_0 = input.LA(1); + + if ( ((LA188_0>=119 && LA188_0<=120)||(LA188_0>=122 && LA188_0<=123)) ) { + alt188=1; + } + switch (alt188) { + case 1 : + // InternalFiacre.g:25548:3: rule__SequencePattern__Alternatives_1_0_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Alternatives_1_0_3(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAlternatives_1_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0__3__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0__0" + // InternalFiacre.g:25557:1: rule__SequencePattern__Group_1_0_3_0__0 : rule__SequencePattern__Group_1_0_3_0__0__Impl rule__SequencePattern__Group_1_0_3_0__1 ; + public final void rule__SequencePattern__Group_1_0_3_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25561:1: ( rule__SequencePattern__Group_1_0_3_0__0__Impl rule__SequencePattern__Group_1_0_3_0__1 ) + // InternalFiacre.g:25562:2: rule__SequencePattern__Group_1_0_3_0__0__Impl rule__SequencePattern__Group_1_0_3_0__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_0_3_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0__0__Impl" + // InternalFiacre.g:25569:1: rule__SequencePattern__Group_1_0_3_0__0__Impl : ( 'before' ) ; + public final void rule__SequencePattern__Group_1_0_3_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25573:1: ( ( 'before' ) ) + // InternalFiacre.g:25574:1: ( 'before' ) + { + // InternalFiacre.g:25574:1: ( 'before' ) + // InternalFiacre.g:25575:2: 'before' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_0_3_0_0()); + } + match(input,122,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_0_3_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0__1" + // InternalFiacre.g:25584:1: rule__SequencePattern__Group_1_0_3_0__1 : rule__SequencePattern__Group_1_0_3_0__1__Impl rule__SequencePattern__Group_1_0_3_0__2 ; + public final void rule__SequencePattern__Group_1_0_3_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25588:1: ( rule__SequencePattern__Group_1_0_3_0__1__Impl rule__SequencePattern__Group_1_0_3_0__2 ) + // InternalFiacre.g:25589:2: rule__SequencePattern__Group_1_0_3_0__1__Impl rule__SequencePattern__Group_1_0_3_0__2 + { + pushFollow(FollowSets000.FOLLOW_137); + rule__SequencePattern__Group_1_0_3_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0__1__Impl" + // InternalFiacre.g:25596:1: rule__SequencePattern__Group_1_0_3_0__1__Impl : ( ( rule__SequencePattern__BeforeAssignment_1_0_3_0_1 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25600:1: ( ( ( rule__SequencePattern__BeforeAssignment_1_0_3_0_1 ) ) ) + // InternalFiacre.g:25601:1: ( ( rule__SequencePattern__BeforeAssignment_1_0_3_0_1 ) ) + { + // InternalFiacre.g:25601:1: ( ( rule__SequencePattern__BeforeAssignment_1_0_3_0_1 ) ) + // InternalFiacre.g:25602:2: ( rule__SequencePattern__BeforeAssignment_1_0_3_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getBeforeAssignment_1_0_3_0_1()); + } + // InternalFiacre.g:25603:2: ( rule__SequencePattern__BeforeAssignment_1_0_3_0_1 ) + // InternalFiacre.g:25603:3: rule__SequencePattern__BeforeAssignment_1_0_3_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__BeforeAssignment_1_0_3_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getBeforeAssignment_1_0_3_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0__2" + // InternalFiacre.g:25611:1: rule__SequencePattern__Group_1_0_3_0__2 : rule__SequencePattern__Group_1_0_3_0__2__Impl ; + public final void rule__SequencePattern__Group_1_0_3_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25615:1: ( rule__SequencePattern__Group_1_0_3_0__2__Impl ) + // InternalFiacre.g:25616:2: rule__SequencePattern__Group_1_0_3_0__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0__2" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0__2__Impl" + // InternalFiacre.g:25622:1: rule__SequencePattern__Group_1_0_3_0__2__Impl : ( ( rule__SequencePattern__Group_1_0_3_0_2__0 )? ) ; + public final void rule__SequencePattern__Group_1_0_3_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25626:1: ( ( ( rule__SequencePattern__Group_1_0_3_0_2__0 )? ) ) + // InternalFiacre.g:25627:1: ( ( rule__SequencePattern__Group_1_0_3_0_2__0 )? ) + { + // InternalFiacre.g:25627:1: ( ( rule__SequencePattern__Group_1_0_3_0_2__0 )? ) + // InternalFiacre.g:25628:2: ( rule__SequencePattern__Group_1_0_3_0_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_0_2()); + } + // InternalFiacre.g:25629:2: ( rule__SequencePattern__Group_1_0_3_0_2__0 )? + int alt189=2; + int LA189_0 = input.LA(1); + + if ( (LA189_0==120) ) { + alt189=1; + } + switch (alt189) { + case 1 : + // InternalFiacre.g:25629:3: rule__SequencePattern__Group_1_0_3_0_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_0_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_0_3_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0__2__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0_2__0" + // InternalFiacre.g:25638:1: rule__SequencePattern__Group_1_0_3_0_2__0 : rule__SequencePattern__Group_1_0_3_0_2__0__Impl rule__SequencePattern__Group_1_0_3_0_2__1 ; + public final void rule__SequencePattern__Group_1_0_3_0_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25642:1: ( rule__SequencePattern__Group_1_0_3_0_2__0__Impl rule__SequencePattern__Group_1_0_3_0_2__1 ) + // InternalFiacre.g:25643:2: rule__SequencePattern__Group_1_0_3_0_2__0__Impl rule__SequencePattern__Group_1_0_3_0_2__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__SequencePattern__Group_1_0_3_0_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_0_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0_2__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0_2__0__Impl" + // InternalFiacre.g:25650:1: rule__SequencePattern__Group_1_0_3_0_2__0__Impl : ( 'within' ) ; + public final void rule__SequencePattern__Group_1_0_3_0_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25654:1: ( ( 'within' ) ) + // InternalFiacre.g:25655:1: ( 'within' ) + { + // InternalFiacre.g:25655:1: ( 'within' ) + // InternalFiacre.g:25656:2: 'within' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_0_2_0()); + } + match(input,120,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0_2__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0_2__1" + // InternalFiacre.g:25665:1: rule__SequencePattern__Group_1_0_3_0_2__1 : rule__SequencePattern__Group_1_0_3_0_2__1__Impl rule__SequencePattern__Group_1_0_3_0_2__2 ; + public final void rule__SequencePattern__Group_1_0_3_0_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25669:1: ( rule__SequencePattern__Group_1_0_3_0_2__1__Impl rule__SequencePattern__Group_1_0_3_0_2__2 ) + // InternalFiacre.g:25670:2: rule__SequencePattern__Group_1_0_3_0_2__1__Impl rule__SequencePattern__Group_1_0_3_0_2__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__SequencePattern__Group_1_0_3_0_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_0_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0_2__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0_2__1__Impl" + // InternalFiacre.g:25677:1: rule__SequencePattern__Group_1_0_3_0_2__1__Impl : ( ( rule__SequencePattern__LowerAssignment_1_0_3_0_2_1 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_0_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25681:1: ( ( ( rule__SequencePattern__LowerAssignment_1_0_3_0_2_1 ) ) ) + // InternalFiacre.g:25682:1: ( ( rule__SequencePattern__LowerAssignment_1_0_3_0_2_1 ) ) + { + // InternalFiacre.g:25682:1: ( ( rule__SequencePattern__LowerAssignment_1_0_3_0_2_1 ) ) + // InternalFiacre.g:25683:2: ( rule__SequencePattern__LowerAssignment_1_0_3_0_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_0_2_1()); + } + // InternalFiacre.g:25684:2: ( rule__SequencePattern__LowerAssignment_1_0_3_0_2_1 ) + // InternalFiacre.g:25684:3: rule__SequencePattern__LowerAssignment_1_0_3_0_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__LowerAssignment_1_0_3_0_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_0_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0_2__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0_2__2" + // InternalFiacre.g:25692:1: rule__SequencePattern__Group_1_0_3_0_2__2 : rule__SequencePattern__Group_1_0_3_0_2__2__Impl rule__SequencePattern__Group_1_0_3_0_2__3 ; + public final void rule__SequencePattern__Group_1_0_3_0_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25696:1: ( rule__SequencePattern__Group_1_0_3_0_2__2__Impl rule__SequencePattern__Group_1_0_3_0_2__3 ) + // InternalFiacre.g:25697:2: rule__SequencePattern__Group_1_0_3_0_2__2__Impl rule__SequencePattern__Group_1_0_3_0_2__3 + { + pushFollow(FollowSets000.FOLLOW_48); + rule__SequencePattern__Group_1_0_3_0_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_0_2__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0_2__2" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0_2__2__Impl" + // InternalFiacre.g:25704:1: rule__SequencePattern__Group_1_0_3_0_2__2__Impl : ( ',' ) ; + public final void rule__SequencePattern__Group_1_0_3_0_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25708:1: ( ( ',' ) ) + // InternalFiacre.g:25709:1: ( ',' ) + { + // InternalFiacre.g:25709:1: ( ',' ) + // InternalFiacre.g:25710:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_0_2_2()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_0_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0_2__2__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0_2__3" + // InternalFiacre.g:25719:1: rule__SequencePattern__Group_1_0_3_0_2__3 : rule__SequencePattern__Group_1_0_3_0_2__3__Impl ; + public final void rule__SequencePattern__Group_1_0_3_0_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25723:1: ( rule__SequencePattern__Group_1_0_3_0_2__3__Impl ) + // InternalFiacre.g:25724:2: rule__SequencePattern__Group_1_0_3_0_2__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_0_2__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0_2__3" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_0_2__3__Impl" + // InternalFiacre.g:25730:1: rule__SequencePattern__Group_1_0_3_0_2__3__Impl : ( ( rule__SequencePattern__UpperAssignment_1_0_3_0_2_3 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_0_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25734:1: ( ( ( rule__SequencePattern__UpperAssignment_1_0_3_0_2_3 ) ) ) + // InternalFiacre.g:25735:1: ( ( rule__SequencePattern__UpperAssignment_1_0_3_0_2_3 ) ) + { + // InternalFiacre.g:25735:1: ( ( rule__SequencePattern__UpperAssignment_1_0_3_0_2_3 ) ) + // InternalFiacre.g:25736:2: ( rule__SequencePattern__UpperAssignment_1_0_3_0_2_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_0_2_3()); + } + // InternalFiacre.g:25737:2: ( rule__SequencePattern__UpperAssignment_1_0_3_0_2_3 ) + // InternalFiacre.g:25737:3: rule__SequencePattern__UpperAssignment_1_0_3_0_2_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__UpperAssignment_1_0_3_0_2_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_0_2_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_0_2__3__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_1__0" + // InternalFiacre.g:25746:1: rule__SequencePattern__Group_1_0_3_1__0 : rule__SequencePattern__Group_1_0_3_1__0__Impl rule__SequencePattern__Group_1_0_3_1__1 ; + public final void rule__SequencePattern__Group_1_0_3_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25750:1: ( rule__SequencePattern__Group_1_0_3_1__0__Impl rule__SequencePattern__Group_1_0_3_1__1 ) + // InternalFiacre.g:25751:2: rule__SequencePattern__Group_1_0_3_1__0__Impl rule__SequencePattern__Group_1_0_3_1__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__SequencePattern__Group_1_0_3_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_1__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_1__0__Impl" + // InternalFiacre.g:25758:1: rule__SequencePattern__Group_1_0_3_1__0__Impl : ( 'within' ) ; + public final void rule__SequencePattern__Group_1_0_3_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25762:1: ( ( 'within' ) ) + // InternalFiacre.g:25763:1: ( 'within' ) + { + // InternalFiacre.g:25763:1: ( 'within' ) + // InternalFiacre.g:25764:2: 'within' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_1_0()); + } + match(input,120,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_1__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_1__1" + // InternalFiacre.g:25773:1: rule__SequencePattern__Group_1_0_3_1__1 : rule__SequencePattern__Group_1_0_3_1__1__Impl rule__SequencePattern__Group_1_0_3_1__2 ; + public final void rule__SequencePattern__Group_1_0_3_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25777:1: ( rule__SequencePattern__Group_1_0_3_1__1__Impl rule__SequencePattern__Group_1_0_3_1__2 ) + // InternalFiacre.g:25778:2: rule__SequencePattern__Group_1_0_3_1__1__Impl rule__SequencePattern__Group_1_0_3_1__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__SequencePattern__Group_1_0_3_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_1__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_1__1__Impl" + // InternalFiacre.g:25785:1: rule__SequencePattern__Group_1_0_3_1__1__Impl : ( ( rule__SequencePattern__LowerAssignment_1_0_3_1_1 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25789:1: ( ( ( rule__SequencePattern__LowerAssignment_1_0_3_1_1 ) ) ) + // InternalFiacre.g:25790:1: ( ( rule__SequencePattern__LowerAssignment_1_0_3_1_1 ) ) + { + // InternalFiacre.g:25790:1: ( ( rule__SequencePattern__LowerAssignment_1_0_3_1_1 ) ) + // InternalFiacre.g:25791:2: ( rule__SequencePattern__LowerAssignment_1_0_3_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_1_1()); + } + // InternalFiacre.g:25792:2: ( rule__SequencePattern__LowerAssignment_1_0_3_1_1 ) + // InternalFiacre.g:25792:3: rule__SequencePattern__LowerAssignment_1_0_3_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__LowerAssignment_1_0_3_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_1__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_1__2" + // InternalFiacre.g:25800:1: rule__SequencePattern__Group_1_0_3_1__2 : rule__SequencePattern__Group_1_0_3_1__2__Impl rule__SequencePattern__Group_1_0_3_1__3 ; + public final void rule__SequencePattern__Group_1_0_3_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25804:1: ( rule__SequencePattern__Group_1_0_3_1__2__Impl rule__SequencePattern__Group_1_0_3_1__3 ) + // InternalFiacre.g:25805:2: rule__SequencePattern__Group_1_0_3_1__2__Impl rule__SequencePattern__Group_1_0_3_1__3 + { + pushFollow(FollowSets000.FOLLOW_48); + rule__SequencePattern__Group_1_0_3_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_1__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_1__2" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_1__2__Impl" + // InternalFiacre.g:25812:1: rule__SequencePattern__Group_1_0_3_1__2__Impl : ( ',' ) ; + public final void rule__SequencePattern__Group_1_0_3_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25816:1: ( ( ',' ) ) + // InternalFiacre.g:25817:1: ( ',' ) + { + // InternalFiacre.g:25817:1: ( ',' ) + // InternalFiacre.g:25818:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_1_2()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_1__2__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_1__3" + // InternalFiacre.g:25827:1: rule__SequencePattern__Group_1_0_3_1__3 : rule__SequencePattern__Group_1_0_3_1__3__Impl ; + public final void rule__SequencePattern__Group_1_0_3_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25831:1: ( rule__SequencePattern__Group_1_0_3_1__3__Impl ) + // InternalFiacre.g:25832:2: rule__SequencePattern__Group_1_0_3_1__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_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__SequencePattern__Group_1_0_3_1__3" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_1__3__Impl" + // InternalFiacre.g:25838:1: rule__SequencePattern__Group_1_0_3_1__3__Impl : ( ( rule__SequencePattern__UpperAssignment_1_0_3_1_3 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25842:1: ( ( ( rule__SequencePattern__UpperAssignment_1_0_3_1_3 ) ) ) + // InternalFiacre.g:25843:1: ( ( rule__SequencePattern__UpperAssignment_1_0_3_1_3 ) ) + { + // InternalFiacre.g:25843:1: ( ( rule__SequencePattern__UpperAssignment_1_0_3_1_3 ) ) + // InternalFiacre.g:25844:2: ( rule__SequencePattern__UpperAssignment_1_0_3_1_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_1_3()); + } + // InternalFiacre.g:25845:2: ( rule__SequencePattern__UpperAssignment_1_0_3_1_3 ) + // InternalFiacre.g:25845:3: rule__SequencePattern__UpperAssignment_1_0_3_1_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__UpperAssignment_1_0_3_1_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_1_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_1__3__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2__0" + // InternalFiacre.g:25854:1: rule__SequencePattern__Group_1_0_3_2__0 : rule__SequencePattern__Group_1_0_3_2__0__Impl rule__SequencePattern__Group_1_0_3_2__1 ; + public final void rule__SequencePattern__Group_1_0_3_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25858:1: ( rule__SequencePattern__Group_1_0_3_2__0__Impl rule__SequencePattern__Group_1_0_3_2__1 ) + // InternalFiacre.g:25859:2: rule__SequencePattern__Group_1_0_3_2__0__Impl rule__SequencePattern__Group_1_0_3_2__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_0_3_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2__0__Impl" + // InternalFiacre.g:25866:1: rule__SequencePattern__Group_1_0_3_2__0__Impl : ( 'after' ) ; + public final void rule__SequencePattern__Group_1_0_3_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25870:1: ( ( 'after' ) ) + // InternalFiacre.g:25871:1: ( 'after' ) + { + // InternalFiacre.g:25871:1: ( 'after' ) + // InternalFiacre.g:25872:2: 'after' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAfterKeyword_1_0_3_2_0()); + } + match(input,119,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAfterKeyword_1_0_3_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2__1" + // InternalFiacre.g:25881:1: rule__SequencePattern__Group_1_0_3_2__1 : rule__SequencePattern__Group_1_0_3_2__1__Impl rule__SequencePattern__Group_1_0_3_2__2 ; + public final void rule__SequencePattern__Group_1_0_3_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25885:1: ( rule__SequencePattern__Group_1_0_3_2__1__Impl rule__SequencePattern__Group_1_0_3_2__2 ) + // InternalFiacre.g:25886:2: rule__SequencePattern__Group_1_0_3_2__1__Impl rule__SequencePattern__Group_1_0_3_2__2 + { + pushFollow(FollowSets000.FOLLOW_136); + rule__SequencePattern__Group_1_0_3_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2__1__Impl" + // InternalFiacre.g:25893:1: rule__SequencePattern__Group_1_0_3_2__1__Impl : ( ( rule__SequencePattern__AfterAssignment_1_0_3_2_1 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25897:1: ( ( ( rule__SequencePattern__AfterAssignment_1_0_3_2_1 ) ) ) + // InternalFiacre.g:25898:1: ( ( rule__SequencePattern__AfterAssignment_1_0_3_2_1 ) ) + { + // InternalFiacre.g:25898:1: ( ( rule__SequencePattern__AfterAssignment_1_0_3_2_1 ) ) + // InternalFiacre.g:25899:2: ( rule__SequencePattern__AfterAssignment_1_0_3_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAfterAssignment_1_0_3_2_1()); + } + // InternalFiacre.g:25900:2: ( rule__SequencePattern__AfterAssignment_1_0_3_2_1 ) + // InternalFiacre.g:25900:3: rule__SequencePattern__AfterAssignment_1_0_3_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__AfterAssignment_1_0_3_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAfterAssignment_1_0_3_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2__2" + // InternalFiacre.g:25908:1: rule__SequencePattern__Group_1_0_3_2__2 : rule__SequencePattern__Group_1_0_3_2__2__Impl ; + public final void rule__SequencePattern__Group_1_0_3_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25912:1: ( rule__SequencePattern__Group_1_0_3_2__2__Impl ) + // InternalFiacre.g:25913:2: rule__SequencePattern__Group_1_0_3_2__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2__2" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2__2__Impl" + // InternalFiacre.g:25919:1: rule__SequencePattern__Group_1_0_3_2__2__Impl : ( ( rule__SequencePattern__Alternatives_1_0_3_2_2 )? ) ; + public final void rule__SequencePattern__Group_1_0_3_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25923:1: ( ( ( rule__SequencePattern__Alternatives_1_0_3_2_2 )? ) ) + // InternalFiacre.g:25924:1: ( ( rule__SequencePattern__Alternatives_1_0_3_2_2 )? ) + { + // InternalFiacre.g:25924:1: ( ( rule__SequencePattern__Alternatives_1_0_3_2_2 )? ) + // InternalFiacre.g:25925:2: ( rule__SequencePattern__Alternatives_1_0_3_2_2 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAlternatives_1_0_3_2_2()); + } + // InternalFiacre.g:25926:2: ( rule__SequencePattern__Alternatives_1_0_3_2_2 )? + int alt190=2; + int LA190_0 = input.LA(1); + + if ( ((LA190_0>=120 && LA190_0<=121)) ) { + alt190=1; + } + switch (alt190) { + case 1 : + // InternalFiacre.g:25926:3: rule__SequencePattern__Alternatives_1_0_3_2_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Alternatives_1_0_3_2_2(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAlternatives_1_0_3_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2__2__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_0__0" + // InternalFiacre.g:25935:1: rule__SequencePattern__Group_1_0_3_2_2_0__0 : rule__SequencePattern__Group_1_0_3_2_2_0__0__Impl rule__SequencePattern__Group_1_0_3_2_2_0__1 ; + public final void rule__SequencePattern__Group_1_0_3_2_2_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25939:1: ( rule__SequencePattern__Group_1_0_3_2_2_0__0__Impl rule__SequencePattern__Group_1_0_3_2_2_0__1 ) + // InternalFiacre.g:25940:2: rule__SequencePattern__Group_1_0_3_2_2_0__0__Impl rule__SequencePattern__Group_1_0_3_2_2_0__1 + { + pushFollow(FollowSets000.FOLLOW_47); + rule__SequencePattern__Group_1_0_3_2_2_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_2_2_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2_2_0__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_0__0__Impl" + // InternalFiacre.g:25947:1: rule__SequencePattern__Group_1_0_3_2_2_0__0__Impl : ( 'within' ) ; + public final void rule__SequencePattern__Group_1_0_3_2_2_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25951:1: ( ( 'within' ) ) + // InternalFiacre.g:25952:1: ( 'within' ) + { + // InternalFiacre.g:25952:1: ( 'within' ) + // InternalFiacre.g:25953:2: 'within' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_2_2_0_0()); + } + match(input,120,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_2_2_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2_2_0__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_0__1" + // InternalFiacre.g:25962:1: rule__SequencePattern__Group_1_0_3_2_2_0__1 : rule__SequencePattern__Group_1_0_3_2_2_0__1__Impl rule__SequencePattern__Group_1_0_3_2_2_0__2 ; + public final void rule__SequencePattern__Group_1_0_3_2_2_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25966:1: ( rule__SequencePattern__Group_1_0_3_2_2_0__1__Impl rule__SequencePattern__Group_1_0_3_2_2_0__2 ) + // InternalFiacre.g:25967:2: rule__SequencePattern__Group_1_0_3_2_2_0__1__Impl rule__SequencePattern__Group_1_0_3_2_2_0__2 + { + pushFollow(FollowSets000.FOLLOW_19); + rule__SequencePattern__Group_1_0_3_2_2_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_2_2_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2_2_0__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_0__1__Impl" + // InternalFiacre.g:25974:1: rule__SequencePattern__Group_1_0_3_2_2_0__1__Impl : ( ( rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_2_2_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25978:1: ( ( ( rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1 ) ) ) + // InternalFiacre.g:25979:1: ( ( rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1 ) ) + { + // InternalFiacre.g:25979:1: ( ( rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1 ) ) + // InternalFiacre.g:25980:2: ( rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_2_2_0_1()); + } + // InternalFiacre.g:25981:2: ( rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1 ) + // InternalFiacre.g:25981:3: rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getLowerAssignment_1_0_3_2_2_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2_2_0__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_0__2" + // InternalFiacre.g:25989:1: rule__SequencePattern__Group_1_0_3_2_2_0__2 : rule__SequencePattern__Group_1_0_3_2_2_0__2__Impl rule__SequencePattern__Group_1_0_3_2_2_0__3 ; + public final void rule__SequencePattern__Group_1_0_3_2_2_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:25993:1: ( rule__SequencePattern__Group_1_0_3_2_2_0__2__Impl rule__SequencePattern__Group_1_0_3_2_2_0__3 ) + // InternalFiacre.g:25994:2: rule__SequencePattern__Group_1_0_3_2_2_0__2__Impl rule__SequencePattern__Group_1_0_3_2_2_0__3 + { + pushFollow(FollowSets000.FOLLOW_48); + rule__SequencePattern__Group_1_0_3_2_2_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_2_2_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2_2_0__2" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_0__2__Impl" + // InternalFiacre.g:26001:1: rule__SequencePattern__Group_1_0_3_2_2_0__2__Impl : ( ',' ) ; + public final void rule__SequencePattern__Group_1_0_3_2_2_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26005:1: ( ( ',' ) ) + // InternalFiacre.g:26006:1: ( ',' ) + { + // InternalFiacre.g:26006:1: ( ',' ) + // InternalFiacre.g:26007:2: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_2_2_0_2()); + } + match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_2_2_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2_2_0__2__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_0__3" + // InternalFiacre.g:26016:1: rule__SequencePattern__Group_1_0_3_2_2_0__3 : rule__SequencePattern__Group_1_0_3_2_2_0__3__Impl ; + public final void rule__SequencePattern__Group_1_0_3_2_2_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26020:1: ( rule__SequencePattern__Group_1_0_3_2_2_0__3__Impl ) + // InternalFiacre.g:26021:2: rule__SequencePattern__Group_1_0_3_2_2_0__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_2_2_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2_2_0__3" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_0__3__Impl" + // InternalFiacre.g:26027:1: rule__SequencePattern__Group_1_0_3_2_2_0__3__Impl : ( ( rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_2_2_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26031:1: ( ( ( rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3 ) ) ) + // InternalFiacre.g:26032:1: ( ( rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3 ) ) + { + // InternalFiacre.g:26032:1: ( ( rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3 ) ) + // InternalFiacre.g:26033:2: ( rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_2_2_0_3()); + } + // InternalFiacre.g:26034:2: ( rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3 ) + // InternalFiacre.g:26034:3: rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUpperAssignment_1_0_3_2_2_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2_2_0__3__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_1__0" + // InternalFiacre.g:26043:1: rule__SequencePattern__Group_1_0_3_2_2_1__0 : rule__SequencePattern__Group_1_0_3_2_2_1__0__Impl rule__SequencePattern__Group_1_0_3_2_2_1__1 ; + public final void rule__SequencePattern__Group_1_0_3_2_2_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26047:1: ( rule__SequencePattern__Group_1_0_3_2_2_1__0__Impl rule__SequencePattern__Group_1_0_3_2_2_1__1 ) + // InternalFiacre.g:26048:2: rule__SequencePattern__Group_1_0_3_2_2_1__0__Impl rule__SequencePattern__Group_1_0_3_2_2_1__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_0_3_2_2_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_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__SequencePattern__Group_1_0_3_2_2_1__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_1__0__Impl" + // InternalFiacre.g:26055:1: rule__SequencePattern__Group_1_0_3_2_2_1__0__Impl : ( 'until' ) ; + public final void rule__SequencePattern__Group_1_0_3_2_2_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26059:1: ( ( 'until' ) ) + // InternalFiacre.g:26060:1: ( 'until' ) + { + // InternalFiacre.g:26060:1: ( 'until' ) + // InternalFiacre.g:26061:2: 'until' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUntilKeyword_1_0_3_2_2_1_0()); + } + match(input,121,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUntilKeyword_1_0_3_2_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2_2_1__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_1__1" + // InternalFiacre.g:26070:1: rule__SequencePattern__Group_1_0_3_2_2_1__1 : rule__SequencePattern__Group_1_0_3_2_2_1__1__Impl ; + public final void rule__SequencePattern__Group_1_0_3_2_2_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26074:1: ( rule__SequencePattern__Group_1_0_3_2_2_1__1__Impl ) + // InternalFiacre.g:26075:2: rule__SequencePattern__Group_1_0_3_2_2_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_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__SequencePattern__Group_1_0_3_2_2_1__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_2_2_1__1__Impl" + // InternalFiacre.g:26081:1: rule__SequencePattern__Group_1_0_3_2_2_1__1__Impl : ( ( rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_2_2_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26085:1: ( ( ( rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1 ) ) ) + // InternalFiacre.g:26086:1: ( ( rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1 ) ) + { + // InternalFiacre.g:26086:1: ( ( rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1 ) ) + // InternalFiacre.g:26087:2: ( rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUntilAssignment_1_0_3_2_2_1_1()); + } + // InternalFiacre.g:26088:2: ( rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1 ) + // InternalFiacre.g:26088:3: rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUntilAssignment_1_0_3_2_2_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_2_2_1__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_3__0" + // InternalFiacre.g:26097:1: rule__SequencePattern__Group_1_0_3_3__0 : rule__SequencePattern__Group_1_0_3_3__0__Impl rule__SequencePattern__Group_1_0_3_3__1 ; + public final void rule__SequencePattern__Group_1_0_3_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26101:1: ( rule__SequencePattern__Group_1_0_3_3__0__Impl rule__SequencePattern__Group_1_0_3_3__1 ) + // InternalFiacre.g:26102:2: rule__SequencePattern__Group_1_0_3_3__0__Impl rule__SequencePattern__Group_1_0_3_3__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_0_3_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_3__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_3__0__Impl" + // InternalFiacre.g:26109:1: rule__SequencePattern__Group_1_0_3_3__0__Impl : ( 'between' ) ; + public final void rule__SequencePattern__Group_1_0_3_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26113:1: ( ( 'between' ) ) + // InternalFiacre.g:26114:1: ( 'between' ) + { + // InternalFiacre.g:26114:1: ( 'between' ) + // InternalFiacre.g:26115:2: 'between' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_0_3_3_0()); + } + match(input,123,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_0_3_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_3__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_3__1" + // InternalFiacre.g:26124:1: rule__SequencePattern__Group_1_0_3_3__1 : rule__SequencePattern__Group_1_0_3_3__1__Impl rule__SequencePattern__Group_1_0_3_3__2 ; + public final void rule__SequencePattern__Group_1_0_3_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26128:1: ( rule__SequencePattern__Group_1_0_3_3__1__Impl rule__SequencePattern__Group_1_0_3_3__2 ) + // InternalFiacre.g:26129:2: rule__SequencePattern__Group_1_0_3_3__1__Impl rule__SequencePattern__Group_1_0_3_3__2 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__SequencePattern__Group_1_0_3_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_3__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_3__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_3__1__Impl" + // InternalFiacre.g:26136:1: rule__SequencePattern__Group_1_0_3_3__1__Impl : ( ( rule__SequencePattern__MinAssignment_1_0_3_3_1 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26140:1: ( ( ( rule__SequencePattern__MinAssignment_1_0_3_3_1 ) ) ) + // InternalFiacre.g:26141:1: ( ( rule__SequencePattern__MinAssignment_1_0_3_3_1 ) ) + { + // InternalFiacre.g:26141:1: ( ( rule__SequencePattern__MinAssignment_1_0_3_3_1 ) ) + // InternalFiacre.g:26142:2: ( rule__SequencePattern__MinAssignment_1_0_3_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getMinAssignment_1_0_3_3_1()); + } + // InternalFiacre.g:26143:2: ( rule__SequencePattern__MinAssignment_1_0_3_3_1 ) + // InternalFiacre.g:26143:3: rule__SequencePattern__MinAssignment_1_0_3_3_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__MinAssignment_1_0_3_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getMinAssignment_1_0_3_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_3__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_3__2" + // InternalFiacre.g:26151:1: rule__SequencePattern__Group_1_0_3_3__2 : rule__SequencePattern__Group_1_0_3_3__2__Impl rule__SequencePattern__Group_1_0_3_3__3 ; + public final void rule__SequencePattern__Group_1_0_3_3__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26155:1: ( rule__SequencePattern__Group_1_0_3_3__2__Impl rule__SequencePattern__Group_1_0_3_3__3 ) + // InternalFiacre.g:26156:2: rule__SequencePattern__Group_1_0_3_3__2__Impl rule__SequencePattern__Group_1_0_3_3__3 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_0_3_3__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_3__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_3__2" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_3__2__Impl" + // InternalFiacre.g:26163:1: rule__SequencePattern__Group_1_0_3_3__2__Impl : ( 'and' ) ; + public final void rule__SequencePattern__Group_1_0_3_3__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26167:1: ( ( 'and' ) ) + // InternalFiacre.g:26168:1: ( 'and' ) + { + // InternalFiacre.g:26168:1: ( 'and' ) + // InternalFiacre.g:26169:2: 'and' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAndKeyword_1_0_3_3_2()); + } + match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAndKeyword_1_0_3_3_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_3__2__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_3__3" + // InternalFiacre.g:26178:1: rule__SequencePattern__Group_1_0_3_3__3 : rule__SequencePattern__Group_1_0_3_3__3__Impl ; + public final void rule__SequencePattern__Group_1_0_3_3__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26182:1: ( rule__SequencePattern__Group_1_0_3_3__3__Impl ) + // InternalFiacre.g:26183:2: rule__SequencePattern__Group_1_0_3_3__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_0_3_3__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_3__3" + + + // $ANTLR start "rule__SequencePattern__Group_1_0_3_3__3__Impl" + // InternalFiacre.g:26189:1: rule__SequencePattern__Group_1_0_3_3__3__Impl : ( ( rule__SequencePattern__MaxAssignment_1_0_3_3_3 ) ) ; + public final void rule__SequencePattern__Group_1_0_3_3__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26193:1: ( ( ( rule__SequencePattern__MaxAssignment_1_0_3_3_3 ) ) ) + // InternalFiacre.g:26194:1: ( ( rule__SequencePattern__MaxAssignment_1_0_3_3_3 ) ) + { + // InternalFiacre.g:26194:1: ( ( rule__SequencePattern__MaxAssignment_1_0_3_3_3 ) ) + // InternalFiacre.g:26195:2: ( rule__SequencePattern__MaxAssignment_1_0_3_3_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getMaxAssignment_1_0_3_3_3()); + } + // InternalFiacre.g:26196:2: ( rule__SequencePattern__MaxAssignment_1_0_3_3_3 ) + // InternalFiacre.g:26196:3: rule__SequencePattern__MaxAssignment_1_0_3_3_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__MaxAssignment_1_0_3_3_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getMaxAssignment_1_0_3_3_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_0_3_3__3__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1__0" + // InternalFiacre.g:26205:1: rule__SequencePattern__Group_1_1__0 : rule__SequencePattern__Group_1_1__0__Impl rule__SequencePattern__Group_1_1__1 ; + public final void rule__SequencePattern__Group_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26209:1: ( rule__SequencePattern__Group_1_1__0__Impl rule__SequencePattern__Group_1_1__1 ) + // InternalFiacre.g:26210:2: rule__SequencePattern__Group_1_1__0__Impl rule__SequencePattern__Group_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__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__SequencePattern__Group_1_1__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_1__0__Impl" + // InternalFiacre.g:26217:1: rule__SequencePattern__Group_1_1__0__Impl : ( 'precedes' ) ; + public final void rule__SequencePattern__Group_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26221:1: ( ( 'precedes' ) ) + // InternalFiacre.g:26222:1: ( 'precedes' ) + { + // InternalFiacre.g:26222:1: ( 'precedes' ) + // InternalFiacre.g:26223:2: 'precedes' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getPrecedesKeyword_1_1_0()); + } + match(input,128,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getPrecedesKeyword_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1__1" + // InternalFiacre.g:26232:1: rule__SequencePattern__Group_1_1__1 : rule__SequencePattern__Group_1_1__1__Impl rule__SequencePattern__Group_1_1__2 ; + public final void rule__SequencePattern__Group_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26236:1: ( rule__SequencePattern__Group_1_1__1__Impl rule__SequencePattern__Group_1_1__2 ) + // InternalFiacre.g:26237:2: rule__SequencePattern__Group_1_1__1__Impl rule__SequencePattern__Group_1_1__2 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_1__1__Impl" + // InternalFiacre.g:26244:1: rule__SequencePattern__Group_1_1__1__Impl : ( () ) ; + public final void rule__SequencePattern__Group_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26248:1: ( ( () ) ) + // InternalFiacre.g:26249:1: ( () ) + { + // InternalFiacre.g:26249:1: ( () ) + // InternalFiacre.g:26250:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getPrecedesPatternSubjectAction_1_1_1()); + } + // InternalFiacre.g:26251:2: () + // InternalFiacre.g:26251:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getPrecedesPatternSubjectAction_1_1_1()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1__2" + // InternalFiacre.g:26259:1: rule__SequencePattern__Group_1_1__2 : rule__SequencePattern__Group_1_1__2__Impl rule__SequencePattern__Group_1_1__3 ; + public final void rule__SequencePattern__Group_1_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26263:1: ( rule__SequencePattern__Group_1_1__2__Impl rule__SequencePattern__Group_1_1__3 ) + // InternalFiacre.g:26264:2: rule__SequencePattern__Group_1_1__2__Impl rule__SequencePattern__Group_1_1__3 + { + pushFollow(FollowSets000.FOLLOW_138); + rule__SequencePattern__Group_1_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1__2" + + + // $ANTLR start "rule__SequencePattern__Group_1_1__2__Impl" + // InternalFiacre.g:26271:1: rule__SequencePattern__Group_1_1__2__Impl : ( ( rule__SequencePattern__FollowerAssignment_1_1_2 ) ) ; + public final void rule__SequencePattern__Group_1_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26275:1: ( ( ( rule__SequencePattern__FollowerAssignment_1_1_2 ) ) ) + // InternalFiacre.g:26276:1: ( ( rule__SequencePattern__FollowerAssignment_1_1_2 ) ) + { + // InternalFiacre.g:26276:1: ( ( rule__SequencePattern__FollowerAssignment_1_1_2 ) ) + // InternalFiacre.g:26277:2: ( rule__SequencePattern__FollowerAssignment_1_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getFollowerAssignment_1_1_2()); + } + // InternalFiacre.g:26278:2: ( rule__SequencePattern__FollowerAssignment_1_1_2 ) + // InternalFiacre.g:26278:3: rule__SequencePattern__FollowerAssignment_1_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__FollowerAssignment_1_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getFollowerAssignment_1_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1__2__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1__3" + // InternalFiacre.g:26286:1: rule__SequencePattern__Group_1_1__3 : rule__SequencePattern__Group_1_1__3__Impl ; + public final void rule__SequencePattern__Group_1_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26290:1: ( rule__SequencePattern__Group_1_1__3__Impl ) + // InternalFiacre.g:26291:2: rule__SequencePattern__Group_1_1__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1__3" + + + // $ANTLR start "rule__SequencePattern__Group_1_1__3__Impl" + // InternalFiacre.g:26297:1: rule__SequencePattern__Group_1_1__3__Impl : ( ( rule__SequencePattern__Alternatives_1_1_3 )? ) ; + public final void rule__SequencePattern__Group_1_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26301:1: ( ( ( rule__SequencePattern__Alternatives_1_1_3 )? ) ) + // InternalFiacre.g:26302:1: ( ( rule__SequencePattern__Alternatives_1_1_3 )? ) + { + // InternalFiacre.g:26302:1: ( ( rule__SequencePattern__Alternatives_1_1_3 )? ) + // InternalFiacre.g:26303:2: ( rule__SequencePattern__Alternatives_1_1_3 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAlternatives_1_1_3()); + } + // InternalFiacre.g:26304:2: ( rule__SequencePattern__Alternatives_1_1_3 )? + int alt191=2; + int LA191_0 = input.LA(1); + + if ( (LA191_0==119||(LA191_0>=122 && LA191_0<=123)) ) { + alt191=1; + } + switch (alt191) { + case 1 : + // InternalFiacre.g:26304:3: rule__SequencePattern__Alternatives_1_1_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Alternatives_1_1_3(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAlternatives_1_1_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1__3__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_0__0" + // InternalFiacre.g:26313:1: rule__SequencePattern__Group_1_1_3_0__0 : rule__SequencePattern__Group_1_1_3_0__0__Impl rule__SequencePattern__Group_1_1_3_0__1 ; + public final void rule__SequencePattern__Group_1_1_3_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26317:1: ( rule__SequencePattern__Group_1_1_3_0__0__Impl rule__SequencePattern__Group_1_1_3_0__1 ) + // InternalFiacre.g:26318:2: rule__SequencePattern__Group_1_1_3_0__0__Impl rule__SequencePattern__Group_1_1_3_0__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_1_3_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_0__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_0__0__Impl" + // InternalFiacre.g:26325:1: rule__SequencePattern__Group_1_1_3_0__0__Impl : ( 'before' ) ; + public final void rule__SequencePattern__Group_1_1_3_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26329:1: ( ( 'before' ) ) + // InternalFiacre.g:26330:1: ( 'before' ) + { + // InternalFiacre.g:26330:1: ( 'before' ) + // InternalFiacre.g:26331:2: 'before' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_1_3_0_0()); + } + match(input,122,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_1_3_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_0__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_0__1" + // InternalFiacre.g:26340:1: rule__SequencePattern__Group_1_1_3_0__1 : rule__SequencePattern__Group_1_1_3_0__1__Impl ; + public final void rule__SequencePattern__Group_1_1_3_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26344:1: ( rule__SequencePattern__Group_1_1_3_0__1__Impl ) + // InternalFiacre.g:26345:2: rule__SequencePattern__Group_1_1_3_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_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__SequencePattern__Group_1_1_3_0__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_0__1__Impl" + // InternalFiacre.g:26351:1: rule__SequencePattern__Group_1_1_3_0__1__Impl : ( ( rule__SequencePattern__BeforeAssignment_1_1_3_0_1 ) ) ; + public final void rule__SequencePattern__Group_1_1_3_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26355:1: ( ( ( rule__SequencePattern__BeforeAssignment_1_1_3_0_1 ) ) ) + // InternalFiacre.g:26356:1: ( ( rule__SequencePattern__BeforeAssignment_1_1_3_0_1 ) ) + { + // InternalFiacre.g:26356:1: ( ( rule__SequencePattern__BeforeAssignment_1_1_3_0_1 ) ) + // InternalFiacre.g:26357:2: ( rule__SequencePattern__BeforeAssignment_1_1_3_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getBeforeAssignment_1_1_3_0_1()); + } + // InternalFiacre.g:26358:2: ( rule__SequencePattern__BeforeAssignment_1_1_3_0_1 ) + // InternalFiacre.g:26358:3: rule__SequencePattern__BeforeAssignment_1_1_3_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__BeforeAssignment_1_1_3_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getBeforeAssignment_1_1_3_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_0__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_1__0" + // InternalFiacre.g:26367:1: rule__SequencePattern__Group_1_1_3_1__0 : rule__SequencePattern__Group_1_1_3_1__0__Impl rule__SequencePattern__Group_1_1_3_1__1 ; + public final void rule__SequencePattern__Group_1_1_3_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26371:1: ( rule__SequencePattern__Group_1_1_3_1__0__Impl rule__SequencePattern__Group_1_1_3_1__1 ) + // InternalFiacre.g:26372:2: rule__SequencePattern__Group_1_1_3_1__0__Impl rule__SequencePattern__Group_1_1_3_1__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_1_3_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_1__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_1__0__Impl" + // InternalFiacre.g:26379:1: rule__SequencePattern__Group_1_1_3_1__0__Impl : ( 'after' ) ; + public final void rule__SequencePattern__Group_1_1_3_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26383:1: ( ( 'after' ) ) + // InternalFiacre.g:26384:1: ( 'after' ) + { + // InternalFiacre.g:26384:1: ( 'after' ) + // InternalFiacre.g:26385:2: 'after' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAfterKeyword_1_1_3_1_0()); + } + match(input,119,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAfterKeyword_1_1_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_1__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_1__1" + // InternalFiacre.g:26394:1: rule__SequencePattern__Group_1_1_3_1__1 : rule__SequencePattern__Group_1_1_3_1__1__Impl rule__SequencePattern__Group_1_1_3_1__2 ; + public final void rule__SequencePattern__Group_1_1_3_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26398:1: ( rule__SequencePattern__Group_1_1_3_1__1__Impl rule__SequencePattern__Group_1_1_3_1__2 ) + // InternalFiacre.g:26399:2: rule__SequencePattern__Group_1_1_3_1__1__Impl rule__SequencePattern__Group_1_1_3_1__2 + { + pushFollow(FollowSets000.FOLLOW_140); + rule__SequencePattern__Group_1_1_3_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_1__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_1__1__Impl" + // InternalFiacre.g:26406:1: rule__SequencePattern__Group_1_1_3_1__1__Impl : ( ( rule__SequencePattern__AfterAssignment_1_1_3_1_1 ) ) ; + public final void rule__SequencePattern__Group_1_1_3_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26410:1: ( ( ( rule__SequencePattern__AfterAssignment_1_1_3_1_1 ) ) ) + // InternalFiacre.g:26411:1: ( ( rule__SequencePattern__AfterAssignment_1_1_3_1_1 ) ) + { + // InternalFiacre.g:26411:1: ( ( rule__SequencePattern__AfterAssignment_1_1_3_1_1 ) ) + // InternalFiacre.g:26412:2: ( rule__SequencePattern__AfterAssignment_1_1_3_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAfterAssignment_1_1_3_1_1()); + } + // InternalFiacre.g:26413:2: ( rule__SequencePattern__AfterAssignment_1_1_3_1_1 ) + // InternalFiacre.g:26413:3: rule__SequencePattern__AfterAssignment_1_1_3_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__AfterAssignment_1_1_3_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAfterAssignment_1_1_3_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_1__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_1__2" + // InternalFiacre.g:26421:1: rule__SequencePattern__Group_1_1_3_1__2 : rule__SequencePattern__Group_1_1_3_1__2__Impl ; + public final void rule__SequencePattern__Group_1_1_3_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26425:1: ( rule__SequencePattern__Group_1_1_3_1__2__Impl ) + // InternalFiacre.g:26426:2: rule__SequencePattern__Group_1_1_3_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_1__2" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_1__2__Impl" + // InternalFiacre.g:26432:1: rule__SequencePattern__Group_1_1_3_1__2__Impl : ( ( rule__SequencePattern__Group_1_1_3_1_2__0 )? ) ; + public final void rule__SequencePattern__Group_1_1_3_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26436:1: ( ( ( rule__SequencePattern__Group_1_1_3_1_2__0 )? ) ) + // InternalFiacre.g:26437:1: ( ( rule__SequencePattern__Group_1_1_3_1_2__0 )? ) + { + // InternalFiacre.g:26437:1: ( ( rule__SequencePattern__Group_1_1_3_1_2__0 )? ) + // InternalFiacre.g:26438:2: ( rule__SequencePattern__Group_1_1_3_1_2__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_1_2()); + } + // InternalFiacre.g:26439:2: ( rule__SequencePattern__Group_1_1_3_1_2__0 )? + int alt192=2; + int LA192_0 = input.LA(1); + + if ( (LA192_0==121) ) { + alt192=1; + } + switch (alt192) { + case 1 : + // InternalFiacre.g:26439:3: rule__SequencePattern__Group_1_1_3_1_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_1_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getGroup_1_1_3_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_1__2__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_1_2__0" + // InternalFiacre.g:26448:1: rule__SequencePattern__Group_1_1_3_1_2__0 : rule__SequencePattern__Group_1_1_3_1_2__0__Impl rule__SequencePattern__Group_1_1_3_1_2__1 ; + public final void rule__SequencePattern__Group_1_1_3_1_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26452:1: ( rule__SequencePattern__Group_1_1_3_1_2__0__Impl rule__SequencePattern__Group_1_1_3_1_2__1 ) + // InternalFiacre.g:26453:2: rule__SequencePattern__Group_1_1_3_1_2__0__Impl rule__SequencePattern__Group_1_1_3_1_2__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_1_3_1_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_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__SequencePattern__Group_1_1_3_1_2__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_1_2__0__Impl" + // InternalFiacre.g:26460:1: rule__SequencePattern__Group_1_1_3_1_2__0__Impl : ( 'until' ) ; + public final void rule__SequencePattern__Group_1_1_3_1_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26464:1: ( ( 'until' ) ) + // InternalFiacre.g:26465:1: ( 'until' ) + { + // InternalFiacre.g:26465:1: ( 'until' ) + // InternalFiacre.g:26466:2: 'until' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUntilKeyword_1_1_3_1_2_0()); + } + match(input,121,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUntilKeyword_1_1_3_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_1_2__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_1_2__1" + // InternalFiacre.g:26475:1: rule__SequencePattern__Group_1_1_3_1_2__1 : rule__SequencePattern__Group_1_1_3_1_2__1__Impl ; + public final void rule__SequencePattern__Group_1_1_3_1_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26479:1: ( rule__SequencePattern__Group_1_1_3_1_2__1__Impl ) + // InternalFiacre.g:26480:2: rule__SequencePattern__Group_1_1_3_1_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_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__SequencePattern__Group_1_1_3_1_2__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_1_2__1__Impl" + // InternalFiacre.g:26486:1: rule__SequencePattern__Group_1_1_3_1_2__1__Impl : ( ( rule__SequencePattern__UntilAssignment_1_1_3_1_2_1 ) ) ; + public final void rule__SequencePattern__Group_1_1_3_1_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26490:1: ( ( ( rule__SequencePattern__UntilAssignment_1_1_3_1_2_1 ) ) ) + // InternalFiacre.g:26491:1: ( ( rule__SequencePattern__UntilAssignment_1_1_3_1_2_1 ) ) + { + // InternalFiacre.g:26491:1: ( ( rule__SequencePattern__UntilAssignment_1_1_3_1_2_1 ) ) + // InternalFiacre.g:26492:2: ( rule__SequencePattern__UntilAssignment_1_1_3_1_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUntilAssignment_1_1_3_1_2_1()); + } + // InternalFiacre.g:26493:2: ( rule__SequencePattern__UntilAssignment_1_1_3_1_2_1 ) + // InternalFiacre.g:26493:3: rule__SequencePattern__UntilAssignment_1_1_3_1_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__UntilAssignment_1_1_3_1_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUntilAssignment_1_1_3_1_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_1_2__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_2__0" + // InternalFiacre.g:26502:1: rule__SequencePattern__Group_1_1_3_2__0 : rule__SequencePattern__Group_1_1_3_2__0__Impl rule__SequencePattern__Group_1_1_3_2__1 ; + public final void rule__SequencePattern__Group_1_1_3_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26506:1: ( rule__SequencePattern__Group_1_1_3_2__0__Impl rule__SequencePattern__Group_1_1_3_2__1 ) + // InternalFiacre.g:26507:2: rule__SequencePattern__Group_1_1_3_2__0__Impl rule__SequencePattern__Group_1_1_3_2__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_1_3_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_2__0" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_2__0__Impl" + // InternalFiacre.g:26514:1: rule__SequencePattern__Group_1_1_3_2__0__Impl : ( 'between' ) ; + public final void rule__SequencePattern__Group_1_1_3_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26518:1: ( ( 'between' ) ) + // InternalFiacre.g:26519:1: ( 'between' ) + { + // InternalFiacre.g:26519:1: ( 'between' ) + // InternalFiacre.g:26520:2: 'between' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_1_3_2_0()); + } + match(input,123,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_1_3_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_2__0__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_2__1" + // InternalFiacre.g:26529:1: rule__SequencePattern__Group_1_1_3_2__1 : rule__SequencePattern__Group_1_1_3_2__1__Impl rule__SequencePattern__Group_1_1_3_2__2 ; + public final void rule__SequencePattern__Group_1_1_3_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26533:1: ( rule__SequencePattern__Group_1_1_3_2__1__Impl rule__SequencePattern__Group_1_1_3_2__2 ) + // InternalFiacre.g:26534:2: rule__SequencePattern__Group_1_1_3_2__1__Impl rule__SequencePattern__Group_1_1_3_2__2 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__SequencePattern__Group_1_1_3_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_2__1" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_2__1__Impl" + // InternalFiacre.g:26541:1: rule__SequencePattern__Group_1_1_3_2__1__Impl : ( ( rule__SequencePattern__MinAssignment_1_1_3_2_1 ) ) ; + public final void rule__SequencePattern__Group_1_1_3_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26545:1: ( ( ( rule__SequencePattern__MinAssignment_1_1_3_2_1 ) ) ) + // InternalFiacre.g:26546:1: ( ( rule__SequencePattern__MinAssignment_1_1_3_2_1 ) ) + { + // InternalFiacre.g:26546:1: ( ( rule__SequencePattern__MinAssignment_1_1_3_2_1 ) ) + // InternalFiacre.g:26547:2: ( rule__SequencePattern__MinAssignment_1_1_3_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getMinAssignment_1_1_3_2_1()); + } + // InternalFiacre.g:26548:2: ( rule__SequencePattern__MinAssignment_1_1_3_2_1 ) + // InternalFiacre.g:26548:3: rule__SequencePattern__MinAssignment_1_1_3_2_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__MinAssignment_1_1_3_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getMinAssignment_1_1_3_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_2__1__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_2__2" + // InternalFiacre.g:26556:1: rule__SequencePattern__Group_1_1_3_2__2 : rule__SequencePattern__Group_1_1_3_2__2__Impl rule__SequencePattern__Group_1_1_3_2__3 ; + public final void rule__SequencePattern__Group_1_1_3_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26560:1: ( rule__SequencePattern__Group_1_1_3_2__2__Impl rule__SequencePattern__Group_1_1_3_2__3 ) + // InternalFiacre.g:26561:2: rule__SequencePattern__Group_1_1_3_2__2__Impl rule__SequencePattern__Group_1_1_3_2__3 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__SequencePattern__Group_1_1_3_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_2__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_2__2" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_2__2__Impl" + // InternalFiacre.g:26568:1: rule__SequencePattern__Group_1_1_3_2__2__Impl : ( 'and' ) ; + public final void rule__SequencePattern__Group_1_1_3_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26572:1: ( ( 'and' ) ) + // InternalFiacre.g:26573:1: ( 'and' ) + { + // InternalFiacre.g:26573:1: ( 'and' ) + // InternalFiacre.g:26574:2: 'and' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAndKeyword_1_1_3_2_2()); + } + match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAndKeyword_1_1_3_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_2__2__Impl" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_2__3" + // InternalFiacre.g:26583:1: rule__SequencePattern__Group_1_1_3_2__3 : rule__SequencePattern__Group_1_1_3_2__3__Impl ; + public final void rule__SequencePattern__Group_1_1_3_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26587:1: ( rule__SequencePattern__Group_1_1_3_2__3__Impl ) + // InternalFiacre.g:26588:2: rule__SequencePattern__Group_1_1_3_2__3__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__Group_1_1_3_2__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_2__3" + + + // $ANTLR start "rule__SequencePattern__Group_1_1_3_2__3__Impl" + // InternalFiacre.g:26594:1: rule__SequencePattern__Group_1_1_3_2__3__Impl : ( ( rule__SequencePattern__MaxAssignment_1_1_3_2_3 ) ) ; + public final void rule__SequencePattern__Group_1_1_3_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26598:1: ( ( ( rule__SequencePattern__MaxAssignment_1_1_3_2_3 ) ) ) + // InternalFiacre.g:26599:1: ( ( rule__SequencePattern__MaxAssignment_1_1_3_2_3 ) ) + { + // InternalFiacre.g:26599:1: ( ( rule__SequencePattern__MaxAssignment_1_1_3_2_3 ) ) + // InternalFiacre.g:26600:2: ( rule__SequencePattern__MaxAssignment_1_1_3_2_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getMaxAssignment_1_1_3_2_3()); + } + // InternalFiacre.g:26601:2: ( rule__SequencePattern__MaxAssignment_1_1_3_2_3 ) + // InternalFiacre.g:26601:3: rule__SequencePattern__MaxAssignment_1_1_3_2_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__SequencePattern__MaxAssignment_1_1_3_2_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getMaxAssignment_1_1_3_2_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__Group_1_1_3_2__3__Impl" + + + // $ANTLR start "rule__LTLQuantified__Group_0__0" + // InternalFiacre.g:26610:1: rule__LTLQuantified__Group_0__0 : rule__LTLQuantified__Group_0__0__Impl rule__LTLQuantified__Group_0__1 ; + public final void rule__LTLQuantified__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26614:1: ( rule__LTLQuantified__Group_0__0__Impl rule__LTLQuantified__Group_0__1 ) + // InternalFiacre.g:26615:2: rule__LTLQuantified__Group_0__0__Impl rule__LTLQuantified__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__LTLQuantified__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__0" + + + // $ANTLR start "rule__LTLQuantified__Group_0__0__Impl" + // InternalFiacre.g:26622:1: rule__LTLQuantified__Group_0__0__Impl : ( ( rule__LTLQuantified__Alternatives_0_0 ) ) ; + public final void rule__LTLQuantified__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26626:1: ( ( ( rule__LTLQuantified__Alternatives_0_0 ) ) ) + // InternalFiacre.g:26627:1: ( ( rule__LTLQuantified__Alternatives_0_0 ) ) + { + // InternalFiacre.g:26627:1: ( ( rule__LTLQuantified__Alternatives_0_0 ) ) + // InternalFiacre.g:26628:2: ( rule__LTLQuantified__Alternatives_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getAlternatives_0_0()); + } + // InternalFiacre.g:26629:2: ( rule__LTLQuantified__Alternatives_0_0 ) + // InternalFiacre.g:26629:3: rule__LTLQuantified__Alternatives_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Alternatives_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getAlternatives_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__0__Impl" + + + // $ANTLR start "rule__LTLQuantified__Group_0__1" + // InternalFiacre.g:26637:1: rule__LTLQuantified__Group_0__1 : rule__LTLQuantified__Group_0__1__Impl rule__LTLQuantified__Group_0__2 ; + public final void rule__LTLQuantified__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26641:1: ( rule__LTLQuantified__Group_0__1__Impl rule__LTLQuantified__Group_0__2 ) + // InternalFiacre.g:26642:2: rule__LTLQuantified__Group_0__1__Impl rule__LTLQuantified__Group_0__2 + { + pushFollow(FollowSets000.FOLLOW_46); + rule__LTLQuantified__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__1" + + + // $ANTLR start "rule__LTLQuantified__Group_0__1__Impl" + // InternalFiacre.g:26649:1: rule__LTLQuantified__Group_0__1__Impl : ( ( rule__LTLQuantified__IndexAssignment_0_1 ) ) ; + public final void rule__LTLQuantified__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26653:1: ( ( ( rule__LTLQuantified__IndexAssignment_0_1 ) ) ) + // InternalFiacre.g:26654:1: ( ( rule__LTLQuantified__IndexAssignment_0_1 ) ) + { + // InternalFiacre.g:26654:1: ( ( rule__LTLQuantified__IndexAssignment_0_1 ) ) + // InternalFiacre.g:26655:2: ( rule__LTLQuantified__IndexAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getIndexAssignment_0_1()); + } + // InternalFiacre.g:26656:2: ( rule__LTLQuantified__IndexAssignment_0_1 ) + // InternalFiacre.g:26656:3: rule__LTLQuantified__IndexAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__IndexAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getIndexAssignment_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__1__Impl" + + + // $ANTLR start "rule__LTLQuantified__Group_0__2" + // InternalFiacre.g:26664:1: rule__LTLQuantified__Group_0__2 : rule__LTLQuantified__Group_0__2__Impl rule__LTLQuantified__Group_0__3 ; + public final void rule__LTLQuantified__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26668:1: ( rule__LTLQuantified__Group_0__2__Impl rule__LTLQuantified__Group_0__3 ) + // InternalFiacre.g:26669:2: rule__LTLQuantified__Group_0__2__Impl rule__LTLQuantified__Group_0__3 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__LTLQuantified__Group_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__2" + + + // $ANTLR start "rule__LTLQuantified__Group_0__2__Impl" + // InternalFiacre.g:26676:1: rule__LTLQuantified__Group_0__2__Impl : ( 'in' ) ; + public final void rule__LTLQuantified__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26680:1: ( ( 'in' ) ) + // InternalFiacre.g:26681:1: ( 'in' ) + { + // InternalFiacre.g:26681:1: ( 'in' ) + // InternalFiacre.g:26682:2: 'in' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getInKeyword_0_2()); + } + match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getInKeyword_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__2__Impl" + + + // $ANTLR start "rule__LTLQuantified__Group_0__3" + // InternalFiacre.g:26691:1: rule__LTLQuantified__Group_0__3 : rule__LTLQuantified__Group_0__3__Impl rule__LTLQuantified__Group_0__4 ; + public final void rule__LTLQuantified__Group_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26695:1: ( rule__LTLQuantified__Group_0__3__Impl rule__LTLQuantified__Group_0__4 ) + // InternalFiacre.g:26696:2: rule__LTLQuantified__Group_0__3__Impl rule__LTLQuantified__Group_0__4 + { + pushFollow(FollowSets000.FOLLOW_131); + rule__LTLQuantified__Group_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_0__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__3" + + + // $ANTLR start "rule__LTLQuantified__Group_0__3__Impl" + // InternalFiacre.g:26703:1: rule__LTLQuantified__Group_0__3__Impl : ( ( rule__LTLQuantified__TypeAssignment_0_3 ) ) ; + public final void rule__LTLQuantified__Group_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26707:1: ( ( ( rule__LTLQuantified__TypeAssignment_0_3 ) ) ) + // InternalFiacre.g:26708:1: ( ( rule__LTLQuantified__TypeAssignment_0_3 ) ) + { + // InternalFiacre.g:26708:1: ( ( rule__LTLQuantified__TypeAssignment_0_3 ) ) + // InternalFiacre.g:26709:2: ( rule__LTLQuantified__TypeAssignment_0_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getTypeAssignment_0_3()); + } + // InternalFiacre.g:26710:2: ( rule__LTLQuantified__TypeAssignment_0_3 ) + // InternalFiacre.g:26710:3: rule__LTLQuantified__TypeAssignment_0_3 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__TypeAssignment_0_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getTypeAssignment_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__3__Impl" + + + // $ANTLR start "rule__LTLQuantified__Group_0__4" + // InternalFiacre.g:26718:1: rule__LTLQuantified__Group_0__4 : rule__LTLQuantified__Group_0__4__Impl rule__LTLQuantified__Group_0__5 ; + public final void rule__LTLQuantified__Group_0__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26722:1: ( rule__LTLQuantified__Group_0__4__Impl rule__LTLQuantified__Group_0__5 ) + // InternalFiacre.g:26723:2: rule__LTLQuantified__Group_0__4__Impl rule__LTLQuantified__Group_0__5 + { + pushFollow(FollowSets000.FOLLOW_143); + rule__LTLQuantified__Group_0__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_0__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__4" + + + // $ANTLR start "rule__LTLQuantified__Group_0__4__Impl" + // InternalFiacre.g:26730:1: rule__LTLQuantified__Group_0__4__Impl : ( '.' ) ; + public final void rule__LTLQuantified__Group_0__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26734:1: ( ( '.' ) ) + // InternalFiacre.g:26735:1: ( '.' ) + { + // InternalFiacre.g:26735:1: ( '.' ) + // InternalFiacre.g:26736:2: '.' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getFullStopKeyword_0_4()); + } + match(input,61,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getFullStopKeyword_0_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__4__Impl" + + + // $ANTLR start "rule__LTLQuantified__Group_0__5" + // InternalFiacre.g:26745:1: rule__LTLQuantified__Group_0__5 : rule__LTLQuantified__Group_0__5__Impl ; + public final void rule__LTLQuantified__Group_0__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26749:1: ( rule__LTLQuantified__Group_0__5__Impl ) + // InternalFiacre.g:26750:2: rule__LTLQuantified__Group_0__5__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_0__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__5" + + + // $ANTLR start "rule__LTLQuantified__Group_0__5__Impl" + // InternalFiacre.g:26756:1: rule__LTLQuantified__Group_0__5__Impl : ( ( rule__LTLQuantified__ChildAssignment_0_5 ) ) ; + public final void rule__LTLQuantified__Group_0__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26760:1: ( ( ( rule__LTLQuantified__ChildAssignment_0_5 ) ) ) + // InternalFiacre.g:26761:1: ( ( rule__LTLQuantified__ChildAssignment_0_5 ) ) + { + // InternalFiacre.g:26761:1: ( ( rule__LTLQuantified__ChildAssignment_0_5 ) ) + // InternalFiacre.g:26762:2: ( rule__LTLQuantified__ChildAssignment_0_5 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getChildAssignment_0_5()); + } + // InternalFiacre.g:26763:2: ( rule__LTLQuantified__ChildAssignment_0_5 ) + // InternalFiacre.g:26763:3: rule__LTLQuantified__ChildAssignment_0_5 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__ChildAssignment_0_5(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getChildAssignment_0_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0__5__Impl" + + + // $ANTLR start "rule__LTLQuantified__Group_0_0_0__0" + // InternalFiacre.g:26772:1: rule__LTLQuantified__Group_0_0_0__0 : rule__LTLQuantified__Group_0_0_0__0__Impl rule__LTLQuantified__Group_0_0_0__1 ; + public final void rule__LTLQuantified__Group_0_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26776:1: ( rule__LTLQuantified__Group_0_0_0__0__Impl rule__LTLQuantified__Group_0_0_0__1 ) + // InternalFiacre.g:26777:2: rule__LTLQuantified__Group_0_0_0__0__Impl rule__LTLQuantified__Group_0_0_0__1 + { + pushFollow(FollowSets000.FOLLOW_90); + rule__LTLQuantified__Group_0_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__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__LTLQuantified__Group_0_0_0__0" + + + // $ANTLR start "rule__LTLQuantified__Group_0_0_0__0__Impl" + // InternalFiacre.g:26784:1: rule__LTLQuantified__Group_0_0_0__0__Impl : ( () ) ; + public final void rule__LTLQuantified__Group_0_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26788:1: ( ( () ) ) + // InternalFiacre.g:26789:1: ( () ) + { + // InternalFiacre.g:26789:1: ( () ) + // InternalFiacre.g:26790:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getLTLAllAction_0_0_0_0()); + } + // InternalFiacre.g:26791:2: () + // InternalFiacre.g:26791:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getLTLAllAction_0_0_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0_0_0__0__Impl" + + + // $ANTLR start "rule__LTLQuantified__Group_0_0_0__1" + // InternalFiacre.g:26799:1: rule__LTLQuantified__Group_0_0_0__1 : rule__LTLQuantified__Group_0_0_0__1__Impl ; + public final void rule__LTLQuantified__Group_0_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26803:1: ( rule__LTLQuantified__Group_0_0_0__1__Impl ) + // InternalFiacre.g:26804:2: rule__LTLQuantified__Group_0_0_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_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__LTLQuantified__Group_0_0_0__1" + + + // $ANTLR start "rule__LTLQuantified__Group_0_0_0__1__Impl" + // InternalFiacre.g:26810:1: rule__LTLQuantified__Group_0_0_0__1__Impl : ( 'all' ) ; + public final void rule__LTLQuantified__Group_0_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26814:1: ( ( 'all' ) ) + // InternalFiacre.g:26815:1: ( 'all' ) + { + // InternalFiacre.g:26815:1: ( 'all' ) + // InternalFiacre.g:26816:2: 'all' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getAllKeyword_0_0_0_1()); + } + match(input,77,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getAllKeyword_0_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0_0_0__1__Impl" + + + // $ANTLR start "rule__LTLQuantified__Group_0_0_1__0" + // InternalFiacre.g:26826:1: rule__LTLQuantified__Group_0_0_1__0 : rule__LTLQuantified__Group_0_0_1__0__Impl rule__LTLQuantified__Group_0_0_1__1 ; + public final void rule__LTLQuantified__Group_0_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26830:1: ( rule__LTLQuantified__Group_0_0_1__0__Impl rule__LTLQuantified__Group_0_0_1__1 ) + // InternalFiacre.g:26831:2: rule__LTLQuantified__Group_0_0_1__0__Impl rule__LTLQuantified__Group_0_0_1__1 + { + pushFollow(FollowSets000.FOLLOW_91); + rule__LTLQuantified__Group_0_0_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__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__LTLQuantified__Group_0_0_1__0" + + + // $ANTLR start "rule__LTLQuantified__Group_0_0_1__0__Impl" + // InternalFiacre.g:26838:1: rule__LTLQuantified__Group_0_0_1__0__Impl : ( () ) ; + public final void rule__LTLQuantified__Group_0_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26842:1: ( ( () ) ) + // InternalFiacre.g:26843:1: ( () ) + { + // InternalFiacre.g:26843:1: ( () ) + // InternalFiacre.g:26844:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getLTLExistsAction_0_0_1_0()); + } + // InternalFiacre.g:26845:2: () + // InternalFiacre.g:26845:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getLTLExistsAction_0_0_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0_0_1__0__Impl" + + + // $ANTLR start "rule__LTLQuantified__Group_0_0_1__1" + // InternalFiacre.g:26853:1: rule__LTLQuantified__Group_0_0_1__1 : rule__LTLQuantified__Group_0_0_1__1__Impl ; + public final void rule__LTLQuantified__Group_0_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26857:1: ( rule__LTLQuantified__Group_0_0_1__1__Impl ) + // InternalFiacre.g:26858:2: rule__LTLQuantified__Group_0_0_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLQuantified__Group_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__LTLQuantified__Group_0_0_1__1" + + + // $ANTLR start "rule__LTLQuantified__Group_0_0_1__1__Impl" + // InternalFiacre.g:26864:1: rule__LTLQuantified__Group_0_0_1__1__Impl : ( 'exists' ) ; + public final void rule__LTLQuantified__Group_0_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26868:1: ( ( 'exists' ) ) + // InternalFiacre.g:26869:1: ( 'exists' ) + { + // InternalFiacre.g:26869:1: ( 'exists' ) + // InternalFiacre.g:26870:2: 'exists' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getExistsKeyword_0_0_1_1()); + } + match(input,78,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getExistsKeyword_0_0_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__Group_0_0_1__1__Impl" + + + // $ANTLR start "rule__LTLDisjunction__Group__0" + // InternalFiacre.g:26880:1: rule__LTLDisjunction__Group__0 : rule__LTLDisjunction__Group__0__Impl rule__LTLDisjunction__Group__1 ; + public final void rule__LTLDisjunction__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26884:1: ( rule__LTLDisjunction__Group__0__Impl rule__LTLDisjunction__Group__1 ) + // InternalFiacre.g:26885:2: rule__LTLDisjunction__Group__0__Impl rule__LTLDisjunction__Group__1 + { + pushFollow(FollowSets000.FOLLOW_93); + rule__LTLDisjunction__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLDisjunction__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLDisjunction__Group__0" + + + // $ANTLR start "rule__LTLDisjunction__Group__0__Impl" + // InternalFiacre.g:26892:1: rule__LTLDisjunction__Group__0__Impl : ( ruleLTLImplication ) ; + public final void rule__LTLDisjunction__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26896:1: ( ( ruleLTLImplication ) ) + // InternalFiacre.g:26897:1: ( ruleLTLImplication ) + { + // InternalFiacre.g:26897:1: ( ruleLTLImplication ) + // InternalFiacre.g:26898:2: ruleLTLImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLDisjunctionAccess().getLTLImplicationParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLDisjunctionAccess().getLTLImplicationParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLDisjunction__Group__0__Impl" + + + // $ANTLR start "rule__LTLDisjunction__Group__1" + // InternalFiacre.g:26907:1: rule__LTLDisjunction__Group__1 : rule__LTLDisjunction__Group__1__Impl ; + public final void rule__LTLDisjunction__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26911:1: ( rule__LTLDisjunction__Group__1__Impl ) + // InternalFiacre.g:26912:2: rule__LTLDisjunction__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLDisjunction__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLDisjunction__Group__1" + + + // $ANTLR start "rule__LTLDisjunction__Group__1__Impl" + // InternalFiacre.g:26918:1: rule__LTLDisjunction__Group__1__Impl : ( ( rule__LTLDisjunction__Group_1__0 )* ) ; + public final void rule__LTLDisjunction__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26922:1: ( ( ( rule__LTLDisjunction__Group_1__0 )* ) ) + // InternalFiacre.g:26923:1: ( ( rule__LTLDisjunction__Group_1__0 )* ) + { + // InternalFiacre.g:26923:1: ( ( rule__LTLDisjunction__Group_1__0 )* ) + // InternalFiacre.g:26924:2: ( rule__LTLDisjunction__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLDisjunctionAccess().getGroup_1()); + } + // InternalFiacre.g:26925:2: ( rule__LTLDisjunction__Group_1__0 )* + loop193: + do { + int alt193=2; + int LA193_0 = input.LA(1); + + if ( (LA193_0==79) ) { + alt193=1; + } + + + switch (alt193) { + case 1 : + // InternalFiacre.g:26925:3: rule__LTLDisjunction__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_94); + rule__LTLDisjunction__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop193; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLDisjunctionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLDisjunction__Group__1__Impl" + + + // $ANTLR start "rule__LTLDisjunction__Group_1__0" + // InternalFiacre.g:26934:1: rule__LTLDisjunction__Group_1__0 : rule__LTLDisjunction__Group_1__0__Impl rule__LTLDisjunction__Group_1__1 ; + public final void rule__LTLDisjunction__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26938:1: ( rule__LTLDisjunction__Group_1__0__Impl rule__LTLDisjunction__Group_1__1 ) + // InternalFiacre.g:26939:2: rule__LTLDisjunction__Group_1__0__Impl rule__LTLDisjunction__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_93); + rule__LTLDisjunction__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLDisjunction__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLDisjunction__Group_1__0" + + + // $ANTLR start "rule__LTLDisjunction__Group_1__0__Impl" + // InternalFiacre.g:26946:1: rule__LTLDisjunction__Group_1__0__Impl : ( () ) ; + public final void rule__LTLDisjunction__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26950:1: ( ( () ) ) + // InternalFiacre.g:26951:1: ( () ) + { + // InternalFiacre.g:26951:1: ( () ) + // InternalFiacre.g:26952:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLDisjunctionAccess().getLTLDisjunctionLeftAction_1_0()); + } + // InternalFiacre.g:26953:2: () + // InternalFiacre.g:26953:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLDisjunctionAccess().getLTLDisjunctionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLDisjunction__Group_1__0__Impl" + + + // $ANTLR start "rule__LTLDisjunction__Group_1__1" + // InternalFiacre.g:26961:1: rule__LTLDisjunction__Group_1__1 : rule__LTLDisjunction__Group_1__1__Impl rule__LTLDisjunction__Group_1__2 ; + public final void rule__LTLDisjunction__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26965:1: ( rule__LTLDisjunction__Group_1__1__Impl rule__LTLDisjunction__Group_1__2 ) + // InternalFiacre.g:26966:2: rule__LTLDisjunction__Group_1__1__Impl rule__LTLDisjunction__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_143); + rule__LTLDisjunction__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLDisjunction__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLDisjunction__Group_1__1" + + + // $ANTLR start "rule__LTLDisjunction__Group_1__1__Impl" + // InternalFiacre.g:26973:1: rule__LTLDisjunction__Group_1__1__Impl : ( 'or' ) ; + public final void rule__LTLDisjunction__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26977:1: ( ( 'or' ) ) + // InternalFiacre.g:26978:1: ( 'or' ) + { + // InternalFiacre.g:26978:1: ( 'or' ) + // InternalFiacre.g:26979:2: 'or' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLDisjunctionAccess().getOrKeyword_1_1()); + } + match(input,79,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLDisjunctionAccess().getOrKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLDisjunction__Group_1__1__Impl" + + + // $ANTLR start "rule__LTLDisjunction__Group_1__2" + // InternalFiacre.g:26988:1: rule__LTLDisjunction__Group_1__2 : rule__LTLDisjunction__Group_1__2__Impl ; + public final void rule__LTLDisjunction__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:26992:1: ( rule__LTLDisjunction__Group_1__2__Impl ) + // InternalFiacre.g:26993:2: rule__LTLDisjunction__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLDisjunction__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__LTLDisjunction__Group_1__2" + + + // $ANTLR start "rule__LTLDisjunction__Group_1__2__Impl" + // InternalFiacre.g:26999:1: rule__LTLDisjunction__Group_1__2__Impl : ( ( rule__LTLDisjunction__RightAssignment_1_2 ) ) ; + public final void rule__LTLDisjunction__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27003:1: ( ( ( rule__LTLDisjunction__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:27004:1: ( ( rule__LTLDisjunction__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:27004:1: ( ( rule__LTLDisjunction__RightAssignment_1_2 ) ) + // InternalFiacre.g:27005:2: ( rule__LTLDisjunction__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLDisjunctionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:27006:2: ( rule__LTLDisjunction__RightAssignment_1_2 ) + // InternalFiacre.g:27006:3: rule__LTLDisjunction__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLDisjunction__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLDisjunctionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLDisjunction__Group_1__2__Impl" + + + // $ANTLR start "rule__LTLImplication__Group__0" + // InternalFiacre.g:27015:1: rule__LTLImplication__Group__0 : rule__LTLImplication__Group__0__Impl rule__LTLImplication__Group__1 ; + public final void rule__LTLImplication__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27019:1: ( rule__LTLImplication__Group__0__Impl rule__LTLImplication__Group__1 ) + // InternalFiacre.g:27020:2: rule__LTLImplication__Group__0__Impl rule__LTLImplication__Group__1 + { + pushFollow(FollowSets000.FOLLOW_95); + rule__LTLImplication__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLImplication__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLImplication__Group__0" + + + // $ANTLR start "rule__LTLImplication__Group__0__Impl" + // InternalFiacre.g:27027:1: rule__LTLImplication__Group__0__Impl : ( ruleLTLConjunction ) ; + public final void rule__LTLImplication__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27031:1: ( ( ruleLTLConjunction ) ) + // InternalFiacre.g:27032:1: ( ruleLTLConjunction ) + { + // InternalFiacre.g:27032:1: ( ruleLTLConjunction ) + // InternalFiacre.g:27033:2: ruleLTLConjunction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLImplicationAccess().getLTLConjunctionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLConjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLImplicationAccess().getLTLConjunctionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLImplication__Group__0__Impl" + + + // $ANTLR start "rule__LTLImplication__Group__1" + // InternalFiacre.g:27042:1: rule__LTLImplication__Group__1 : rule__LTLImplication__Group__1__Impl ; + public final void rule__LTLImplication__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27046:1: ( rule__LTLImplication__Group__1__Impl ) + // InternalFiacre.g:27047:2: rule__LTLImplication__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLImplication__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLImplication__Group__1" + + + // $ANTLR start "rule__LTLImplication__Group__1__Impl" + // InternalFiacre.g:27053:1: rule__LTLImplication__Group__1__Impl : ( ( rule__LTLImplication__Group_1__0 )? ) ; + public final void rule__LTLImplication__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27057:1: ( ( ( rule__LTLImplication__Group_1__0 )? ) ) + // InternalFiacre.g:27058:1: ( ( rule__LTLImplication__Group_1__0 )? ) + { + // InternalFiacre.g:27058:1: ( ( rule__LTLImplication__Group_1__0 )? ) + // InternalFiacre.g:27059:2: ( rule__LTLImplication__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLImplicationAccess().getGroup_1()); + } + // InternalFiacre.g:27060:2: ( rule__LTLImplication__Group_1__0 )? + int alt194=2; + int LA194_0 = input.LA(1); + + if ( (LA194_0==80) ) { + alt194=1; + } + switch (alt194) { + case 1 : + // InternalFiacre.g:27060:3: rule__LTLImplication__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLImplication__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLImplicationAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLImplication__Group__1__Impl" + + + // $ANTLR start "rule__LTLImplication__Group_1__0" + // InternalFiacre.g:27069:1: rule__LTLImplication__Group_1__0 : rule__LTLImplication__Group_1__0__Impl rule__LTLImplication__Group_1__1 ; + public final void rule__LTLImplication__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27073:1: ( rule__LTLImplication__Group_1__0__Impl rule__LTLImplication__Group_1__1 ) + // InternalFiacre.g:27074:2: rule__LTLImplication__Group_1__0__Impl rule__LTLImplication__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_95); + rule__LTLImplication__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLImplication__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLImplication__Group_1__0" + + + // $ANTLR start "rule__LTLImplication__Group_1__0__Impl" + // InternalFiacre.g:27081:1: rule__LTLImplication__Group_1__0__Impl : ( () ) ; + public final void rule__LTLImplication__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27085:1: ( ( () ) ) + // InternalFiacre.g:27086:1: ( () ) + { + // InternalFiacre.g:27086:1: ( () ) + // InternalFiacre.g:27087:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLImplicationAccess().getLTLImplicationLeftAction_1_0()); + } + // InternalFiacre.g:27088:2: () + // InternalFiacre.g:27088:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLImplicationAccess().getLTLImplicationLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLImplication__Group_1__0__Impl" + + + // $ANTLR start "rule__LTLImplication__Group_1__1" + // InternalFiacre.g:27096:1: rule__LTLImplication__Group_1__1 : rule__LTLImplication__Group_1__1__Impl rule__LTLImplication__Group_1__2 ; + public final void rule__LTLImplication__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27100:1: ( rule__LTLImplication__Group_1__1__Impl rule__LTLImplication__Group_1__2 ) + // InternalFiacre.g:27101:2: rule__LTLImplication__Group_1__1__Impl rule__LTLImplication__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_143); + rule__LTLImplication__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLImplication__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLImplication__Group_1__1" + + + // $ANTLR start "rule__LTLImplication__Group_1__1__Impl" + // InternalFiacre.g:27108:1: rule__LTLImplication__Group_1__1__Impl : ( '=>' ) ; + public final void rule__LTLImplication__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27112:1: ( ( '=>' ) ) + // InternalFiacre.g:27113:1: ( '=>' ) + { + // InternalFiacre.g:27113:1: ( '=>' ) + // InternalFiacre.g:27114:2: '=>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLImplication__Group_1__1__Impl" + + + // $ANTLR start "rule__LTLImplication__Group_1__2" + // InternalFiacre.g:27123:1: rule__LTLImplication__Group_1__2 : rule__LTLImplication__Group_1__2__Impl ; + public final void rule__LTLImplication__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27127:1: ( rule__LTLImplication__Group_1__2__Impl ) + // InternalFiacre.g:27128:2: rule__LTLImplication__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLImplication__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__LTLImplication__Group_1__2" + + + // $ANTLR start "rule__LTLImplication__Group_1__2__Impl" + // InternalFiacre.g:27134:1: rule__LTLImplication__Group_1__2__Impl : ( ( rule__LTLImplication__RightAssignment_1_2 ) ) ; + public final void rule__LTLImplication__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27138:1: ( ( ( rule__LTLImplication__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:27139:1: ( ( rule__LTLImplication__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:27139:1: ( ( rule__LTLImplication__RightAssignment_1_2 ) ) + // InternalFiacre.g:27140:2: ( rule__LTLImplication__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLImplicationAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:27141:2: ( rule__LTLImplication__RightAssignment_1_2 ) + // InternalFiacre.g:27141:3: rule__LTLImplication__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLImplication__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLImplicationAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLImplication__Group_1__2__Impl" + + + // $ANTLR start "rule__LTLConjunction__Group__0" + // InternalFiacre.g:27150:1: rule__LTLConjunction__Group__0 : rule__LTLConjunction__Group__0__Impl rule__LTLConjunction__Group__1 ; + public final void rule__LTLConjunction__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27154:1: ( rule__LTLConjunction__Group__0__Impl rule__LTLConjunction__Group__1 ) + // InternalFiacre.g:27155:2: rule__LTLConjunction__Group__0__Impl rule__LTLConjunction__Group__1 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__LTLConjunction__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLConjunction__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLConjunction__Group__0" + + + // $ANTLR start "rule__LTLConjunction__Group__0__Impl" + // InternalFiacre.g:27162:1: rule__LTLConjunction__Group__0__Impl : ( ruleLTLBinary ) ; + public final void rule__LTLConjunction__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27166:1: ( ( ruleLTLBinary ) ) + // InternalFiacre.g:27167:1: ( ruleLTLBinary ) + { + // InternalFiacre.g:27167:1: ( ruleLTLBinary ) + // InternalFiacre.g:27168:2: ruleLTLBinary + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLConjunctionAccess().getLTLBinaryParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLBinary(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLConjunctionAccess().getLTLBinaryParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLConjunction__Group__0__Impl" + + + // $ANTLR start "rule__LTLConjunction__Group__1" + // InternalFiacre.g:27177:1: rule__LTLConjunction__Group__1 : rule__LTLConjunction__Group__1__Impl ; + public final void rule__LTLConjunction__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27181:1: ( rule__LTLConjunction__Group__1__Impl ) + // InternalFiacre.g:27182:2: rule__LTLConjunction__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLConjunction__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLConjunction__Group__1" + + + // $ANTLR start "rule__LTLConjunction__Group__1__Impl" + // InternalFiacre.g:27188:1: rule__LTLConjunction__Group__1__Impl : ( ( rule__LTLConjunction__Group_1__0 )* ) ; + public final void rule__LTLConjunction__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27192:1: ( ( ( rule__LTLConjunction__Group_1__0 )* ) ) + // InternalFiacre.g:27193:1: ( ( rule__LTLConjunction__Group_1__0 )* ) + { + // InternalFiacre.g:27193:1: ( ( rule__LTLConjunction__Group_1__0 )* ) + // InternalFiacre.g:27194:2: ( rule__LTLConjunction__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLConjunctionAccess().getGroup_1()); + } + // InternalFiacre.g:27195:2: ( rule__LTLConjunction__Group_1__0 )* + loop195: + do { + int alt195=2; + int LA195_0 = input.LA(1); + + if ( (LA195_0==81) ) { + alt195=1; + } + + + switch (alt195) { + case 1 : + // InternalFiacre.g:27195:3: rule__LTLConjunction__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_97); + rule__LTLConjunction__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop195; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLConjunctionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLConjunction__Group__1__Impl" + + + // $ANTLR start "rule__LTLConjunction__Group_1__0" + // InternalFiacre.g:27204:1: rule__LTLConjunction__Group_1__0 : rule__LTLConjunction__Group_1__0__Impl rule__LTLConjunction__Group_1__1 ; + public final void rule__LTLConjunction__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27208:1: ( rule__LTLConjunction__Group_1__0__Impl rule__LTLConjunction__Group_1__1 ) + // InternalFiacre.g:27209:2: rule__LTLConjunction__Group_1__0__Impl rule__LTLConjunction__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__LTLConjunction__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLConjunction__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLConjunction__Group_1__0" + + + // $ANTLR start "rule__LTLConjunction__Group_1__0__Impl" + // InternalFiacre.g:27216:1: rule__LTLConjunction__Group_1__0__Impl : ( () ) ; + public final void rule__LTLConjunction__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27220:1: ( ( () ) ) + // InternalFiacre.g:27221:1: ( () ) + { + // InternalFiacre.g:27221:1: ( () ) + // InternalFiacre.g:27222:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLConjunctionAccess().getLTLConjunctionLeftAction_1_0()); + } + // InternalFiacre.g:27223:2: () + // InternalFiacre.g:27223:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLConjunctionAccess().getLTLConjunctionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLConjunction__Group_1__0__Impl" + + + // $ANTLR start "rule__LTLConjunction__Group_1__1" + // InternalFiacre.g:27231:1: rule__LTLConjunction__Group_1__1 : rule__LTLConjunction__Group_1__1__Impl rule__LTLConjunction__Group_1__2 ; + public final void rule__LTLConjunction__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27235:1: ( rule__LTLConjunction__Group_1__1__Impl rule__LTLConjunction__Group_1__2 ) + // InternalFiacre.g:27236:2: rule__LTLConjunction__Group_1__1__Impl rule__LTLConjunction__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_143); + rule__LTLConjunction__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLConjunction__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLConjunction__Group_1__1" + + + // $ANTLR start "rule__LTLConjunction__Group_1__1__Impl" + // InternalFiacre.g:27243:1: rule__LTLConjunction__Group_1__1__Impl : ( 'and' ) ; + public final void rule__LTLConjunction__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27247:1: ( ( 'and' ) ) + // InternalFiacre.g:27248:1: ( 'and' ) + { + // InternalFiacre.g:27248:1: ( 'and' ) + // InternalFiacre.g:27249:2: 'and' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLConjunctionAccess().getAndKeyword_1_1()); + } + match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLConjunctionAccess().getAndKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLConjunction__Group_1__1__Impl" + + + // $ANTLR start "rule__LTLConjunction__Group_1__2" + // InternalFiacre.g:27258:1: rule__LTLConjunction__Group_1__2 : rule__LTLConjunction__Group_1__2__Impl ; + public final void rule__LTLConjunction__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27262:1: ( rule__LTLConjunction__Group_1__2__Impl ) + // InternalFiacre.g:27263:2: rule__LTLConjunction__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLConjunction__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__LTLConjunction__Group_1__2" + + + // $ANTLR start "rule__LTLConjunction__Group_1__2__Impl" + // InternalFiacre.g:27269:1: rule__LTLConjunction__Group_1__2__Impl : ( ( rule__LTLConjunction__RightAssignment_1_2 ) ) ; + public final void rule__LTLConjunction__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27273:1: ( ( ( rule__LTLConjunction__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:27274:1: ( ( rule__LTLConjunction__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:27274:1: ( ( rule__LTLConjunction__RightAssignment_1_2 ) ) + // InternalFiacre.g:27275:2: ( rule__LTLConjunction__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLConjunctionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:27276:2: ( rule__LTLConjunction__RightAssignment_1_2 ) + // InternalFiacre.g:27276:3: rule__LTLConjunction__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLConjunction__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLConjunctionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLConjunction__Group_1__2__Impl" + + + // $ANTLR start "rule__LTLBinary__Group__0" + // InternalFiacre.g:27285:1: rule__LTLBinary__Group__0 : rule__LTLBinary__Group__0__Impl rule__LTLBinary__Group__1 ; + public final void rule__LTLBinary__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27289:1: ( rule__LTLBinary__Group__0__Impl rule__LTLBinary__Group__1 ) + // InternalFiacre.g:27290:2: rule__LTLBinary__Group__0__Impl rule__LTLBinary__Group__1 + { + pushFollow(FollowSets000.FOLLOW_144); + rule__LTLBinary__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group__0" + + + // $ANTLR start "rule__LTLBinary__Group__0__Impl" + // InternalFiacre.g:27297:1: rule__LTLBinary__Group__0__Impl : ( ruleLTLUnary ) ; + public final void rule__LTLBinary__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27301:1: ( ( ruleLTLUnary ) ) + // InternalFiacre.g:27302:1: ( ruleLTLUnary ) + { + // InternalFiacre.g:27302:1: ( ruleLTLUnary ) + // InternalFiacre.g:27303:2: ruleLTLUnary + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getLTLUnaryParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLUnary(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getLTLUnaryParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group__0__Impl" + + + // $ANTLR start "rule__LTLBinary__Group__1" + // InternalFiacre.g:27312:1: rule__LTLBinary__Group__1 : rule__LTLBinary__Group__1__Impl ; + public final void rule__LTLBinary__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27316:1: ( rule__LTLBinary__Group__1__Impl ) + // InternalFiacre.g:27317:2: rule__LTLBinary__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group__1" + + + // $ANTLR start "rule__LTLBinary__Group__1__Impl" + // InternalFiacre.g:27323:1: rule__LTLBinary__Group__1__Impl : ( ( rule__LTLBinary__Alternatives_1 )? ) ; + public final void rule__LTLBinary__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27327:1: ( ( ( rule__LTLBinary__Alternatives_1 )? ) ) + // InternalFiacre.g:27328:1: ( ( rule__LTLBinary__Alternatives_1 )? ) + { + // InternalFiacre.g:27328:1: ( ( rule__LTLBinary__Alternatives_1 )? ) + // InternalFiacre.g:27329:2: ( rule__LTLBinary__Alternatives_1 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getAlternatives_1()); + } + // InternalFiacre.g:27330:2: ( rule__LTLBinary__Alternatives_1 )? + int alt196=2; + int LA196_0 = input.LA(1); + + if ( (LA196_0==121||LA196_0==129) ) { + alt196=1; + } + switch (alt196) { + case 1 : + // InternalFiacre.g:27330:3: rule__LTLBinary__Alternatives_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Alternatives_1(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getAlternatives_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group__1__Impl" + + + // $ANTLR start "rule__LTLBinary__Group_1_0__0" + // InternalFiacre.g:27339:1: rule__LTLBinary__Group_1_0__0 : rule__LTLBinary__Group_1_0__0__Impl rule__LTLBinary__Group_1_0__1 ; + public final void rule__LTLBinary__Group_1_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27343:1: ( rule__LTLBinary__Group_1_0__0__Impl rule__LTLBinary__Group_1_0__1 ) + // InternalFiacre.g:27344:2: rule__LTLBinary__Group_1_0__0__Impl rule__LTLBinary__Group_1_0__1 + { + pushFollow(FollowSets000.FOLLOW_140); + rule__LTLBinary__Group_1_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Group_1_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group_1_0__0" + + + // $ANTLR start "rule__LTLBinary__Group_1_0__0__Impl" + // InternalFiacre.g:27351:1: rule__LTLBinary__Group_1_0__0__Impl : ( () ) ; + public final void rule__LTLBinary__Group_1_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27355:1: ( ( () ) ) + // InternalFiacre.g:27356:1: ( () ) + { + // InternalFiacre.g:27356:1: ( () ) + // InternalFiacre.g:27357:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getLTLUntilLeftAction_1_0_0()); + } + // InternalFiacre.g:27358:2: () + // InternalFiacre.g:27358:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getLTLUntilLeftAction_1_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group_1_0__0__Impl" + + + // $ANTLR start "rule__LTLBinary__Group_1_0__1" + // InternalFiacre.g:27366:1: rule__LTLBinary__Group_1_0__1 : rule__LTLBinary__Group_1_0__1__Impl rule__LTLBinary__Group_1_0__2 ; + public final void rule__LTLBinary__Group_1_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27370:1: ( rule__LTLBinary__Group_1_0__1__Impl rule__LTLBinary__Group_1_0__2 ) + // InternalFiacre.g:27371:2: rule__LTLBinary__Group_1_0__1__Impl rule__LTLBinary__Group_1_0__2 + { + pushFollow(FollowSets000.FOLLOW_132); + rule__LTLBinary__Group_1_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Group_1_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group_1_0__1" + + + // $ANTLR start "rule__LTLBinary__Group_1_0__1__Impl" + // InternalFiacre.g:27378:1: rule__LTLBinary__Group_1_0__1__Impl : ( 'until' ) ; + public final void rule__LTLBinary__Group_1_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27382:1: ( ( 'until' ) ) + // InternalFiacre.g:27383:1: ( 'until' ) + { + // InternalFiacre.g:27383:1: ( 'until' ) + // InternalFiacre.g:27384:2: 'until' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getUntilKeyword_1_0_1()); + } + match(input,121,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getUntilKeyword_1_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group_1_0__1__Impl" + + + // $ANTLR start "rule__LTLBinary__Group_1_0__2" + // InternalFiacre.g:27393:1: rule__LTLBinary__Group_1_0__2 : rule__LTLBinary__Group_1_0__2__Impl ; + public final void rule__LTLBinary__Group_1_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27397:1: ( rule__LTLBinary__Group_1_0__2__Impl ) + // InternalFiacre.g:27398:2: rule__LTLBinary__Group_1_0__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Group_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__LTLBinary__Group_1_0__2" + + + // $ANTLR start "rule__LTLBinary__Group_1_0__2__Impl" + // InternalFiacre.g:27404:1: rule__LTLBinary__Group_1_0__2__Impl : ( ( rule__LTLBinary__RightAssignment_1_0_2 ) ) ; + public final void rule__LTLBinary__Group_1_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27408:1: ( ( ( rule__LTLBinary__RightAssignment_1_0_2 ) ) ) + // InternalFiacre.g:27409:1: ( ( rule__LTLBinary__RightAssignment_1_0_2 ) ) + { + // InternalFiacre.g:27409:1: ( ( rule__LTLBinary__RightAssignment_1_0_2 ) ) + // InternalFiacre.g:27410:2: ( rule__LTLBinary__RightAssignment_1_0_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getRightAssignment_1_0_2()); + } + // InternalFiacre.g:27411:2: ( rule__LTLBinary__RightAssignment_1_0_2 ) + // InternalFiacre.g:27411:3: rule__LTLBinary__RightAssignment_1_0_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__RightAssignment_1_0_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getRightAssignment_1_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group_1_0__2__Impl" + + + // $ANTLR start "rule__LTLBinary__Group_1_1__0" + // InternalFiacre.g:27420:1: rule__LTLBinary__Group_1_1__0 : rule__LTLBinary__Group_1_1__0__Impl rule__LTLBinary__Group_1_1__1 ; + public final void rule__LTLBinary__Group_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27424:1: ( rule__LTLBinary__Group_1_1__0__Impl rule__LTLBinary__Group_1_1__1 ) + // InternalFiacre.g:27425:2: rule__LTLBinary__Group_1_1__0__Impl rule__LTLBinary__Group_1_1__1 + { + pushFollow(FollowSets000.FOLLOW_144); + rule__LTLBinary__Group_1_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__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__LTLBinary__Group_1_1__0" + + + // $ANTLR start "rule__LTLBinary__Group_1_1__0__Impl" + // InternalFiacre.g:27432:1: rule__LTLBinary__Group_1_1__0__Impl : ( () ) ; + public final void rule__LTLBinary__Group_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27436:1: ( ( () ) ) + // InternalFiacre.g:27437:1: ( () ) + { + // InternalFiacre.g:27437:1: ( () ) + // InternalFiacre.g:27438:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getLTLReleaseLeftAction_1_1_0()); + } + // InternalFiacre.g:27439:2: () + // InternalFiacre.g:27439:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getLTLReleaseLeftAction_1_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group_1_1__0__Impl" + + + // $ANTLR start "rule__LTLBinary__Group_1_1__1" + // InternalFiacre.g:27447:1: rule__LTLBinary__Group_1_1__1 : rule__LTLBinary__Group_1_1__1__Impl rule__LTLBinary__Group_1_1__2 ; + public final void rule__LTLBinary__Group_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27451:1: ( rule__LTLBinary__Group_1_1__1__Impl rule__LTLBinary__Group_1_1__2 ) + // InternalFiacre.g:27452:2: rule__LTLBinary__Group_1_1__1__Impl rule__LTLBinary__Group_1_1__2 + { + pushFollow(FollowSets000.FOLLOW_132); + rule__LTLBinary__Group_1_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Group_1_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group_1_1__1" + + + // $ANTLR start "rule__LTLBinary__Group_1_1__1__Impl" + // InternalFiacre.g:27459:1: rule__LTLBinary__Group_1_1__1__Impl : ( 'release' ) ; + public final void rule__LTLBinary__Group_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27463:1: ( ( 'release' ) ) + // InternalFiacre.g:27464:1: ( 'release' ) + { + // InternalFiacre.g:27464:1: ( 'release' ) + // InternalFiacre.g:27465:2: 'release' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getReleaseKeyword_1_1_1()); + } + match(input,129,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getReleaseKeyword_1_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group_1_1__1__Impl" + + + // $ANTLR start "rule__LTLBinary__Group_1_1__2" + // InternalFiacre.g:27474:1: rule__LTLBinary__Group_1_1__2 : rule__LTLBinary__Group_1_1__2__Impl ; + public final void rule__LTLBinary__Group_1_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27478:1: ( rule__LTLBinary__Group_1_1__2__Impl ) + // InternalFiacre.g:27479:2: rule__LTLBinary__Group_1_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__Group_1_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group_1_1__2" + + + // $ANTLR start "rule__LTLBinary__Group_1_1__2__Impl" + // InternalFiacre.g:27485:1: rule__LTLBinary__Group_1_1__2__Impl : ( ( rule__LTLBinary__RightAssignment_1_1_2 ) ) ; + public final void rule__LTLBinary__Group_1_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27489:1: ( ( ( rule__LTLBinary__RightAssignment_1_1_2 ) ) ) + // InternalFiacre.g:27490:1: ( ( rule__LTLBinary__RightAssignment_1_1_2 ) ) + { + // InternalFiacre.g:27490:1: ( ( rule__LTLBinary__RightAssignment_1_1_2 ) ) + // InternalFiacre.g:27491:2: ( rule__LTLBinary__RightAssignment_1_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getRightAssignment_1_1_2()); + } + // InternalFiacre.g:27492:2: ( rule__LTLBinary__RightAssignment_1_1_2 ) + // InternalFiacre.g:27492:3: rule__LTLBinary__RightAssignment_1_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLBinary__RightAssignment_1_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getRightAssignment_1_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__Group_1_1__2__Impl" + + + // $ANTLR start "rule__LTLUnary__Group_0__0" + // InternalFiacre.g:27501:1: rule__LTLUnary__Group_0__0 : rule__LTLUnary__Group_0__0__Impl rule__LTLUnary__Group_0__1 ; + public final void rule__LTLUnary__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27505:1: ( rule__LTLUnary__Group_0__0__Impl rule__LTLUnary__Group_0__1 ) + // InternalFiacre.g:27506:2: rule__LTLUnary__Group_0__0__Impl rule__LTLUnary__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_132); + rule__LTLUnary__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0__0" + + + // $ANTLR start "rule__LTLUnary__Group_0__0__Impl" + // InternalFiacre.g:27513:1: rule__LTLUnary__Group_0__0__Impl : ( ( rule__LTLUnary__Alternatives_0_0 ) ) ; + public final void rule__LTLUnary__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27517:1: ( ( ( rule__LTLUnary__Alternatives_0_0 ) ) ) + // InternalFiacre.g:27518:1: ( ( rule__LTLUnary__Alternatives_0_0 ) ) + { + // InternalFiacre.g:27518:1: ( ( rule__LTLUnary__Alternatives_0_0 ) ) + // InternalFiacre.g:27519:2: ( rule__LTLUnary__Alternatives_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getAlternatives_0_0()); + } + // InternalFiacre.g:27520:2: ( rule__LTLUnary__Alternatives_0_0 ) + // InternalFiacre.g:27520:3: rule__LTLUnary__Alternatives_0_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Alternatives_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getAlternatives_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0__0__Impl" + + + // $ANTLR start "rule__LTLUnary__Group_0__1" + // InternalFiacre.g:27528:1: rule__LTLUnary__Group_0__1 : rule__LTLUnary__Group_0__1__Impl ; + public final void rule__LTLUnary__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27532:1: ( rule__LTLUnary__Group_0__1__Impl ) + // InternalFiacre.g:27533:2: rule__LTLUnary__Group_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__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__LTLUnary__Group_0__1" + + + // $ANTLR start "rule__LTLUnary__Group_0__1__Impl" + // InternalFiacre.g:27539:1: rule__LTLUnary__Group_0__1__Impl : ( ( rule__LTLUnary__OperandAssignment_0_1 ) ) ; + public final void rule__LTLUnary__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27543:1: ( ( ( rule__LTLUnary__OperandAssignment_0_1 ) ) ) + // InternalFiacre.g:27544:1: ( ( rule__LTLUnary__OperandAssignment_0_1 ) ) + { + // InternalFiacre.g:27544:1: ( ( rule__LTLUnary__OperandAssignment_0_1 ) ) + // InternalFiacre.g:27545:2: ( rule__LTLUnary__OperandAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getOperandAssignment_0_1()); + } + // InternalFiacre.g:27546:2: ( rule__LTLUnary__OperandAssignment_0_1 ) + // InternalFiacre.g:27546:3: rule__LTLUnary__OperandAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__OperandAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getOperandAssignment_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0__1__Impl" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_0__0" + // InternalFiacre.g:27555:1: rule__LTLUnary__Group_0_0_0__0 : rule__LTLUnary__Group_0_0_0__0__Impl rule__LTLUnary__Group_0_0_0__1 ; + public final void rule__LTLUnary__Group_0_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27559:1: ( rule__LTLUnary__Group_0_0_0__0__Impl rule__LTLUnary__Group_0_0_0__1 ) + // InternalFiacre.g:27560:2: rule__LTLUnary__Group_0_0_0__0__Impl rule__LTLUnary__Group_0_0_0__1 + { + pushFollow(FollowSets000.FOLLOW_113); + rule__LTLUnary__Group_0_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__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__LTLUnary__Group_0_0_0__0" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_0__0__Impl" + // InternalFiacre.g:27567:1: rule__LTLUnary__Group_0_0_0__0__Impl : ( () ) ; + public final void rule__LTLUnary__Group_0_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27571:1: ( ( () ) ) + // InternalFiacre.g:27572:1: ( () ) + { + // InternalFiacre.g:27572:1: ( () ) + // InternalFiacre.g:27573:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getLTLUnaryNegationAction_0_0_0_0()); + } + // InternalFiacre.g:27574:2: () + // InternalFiacre.g:27574:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getLTLUnaryNegationAction_0_0_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0_0_0__0__Impl" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_0__1" + // InternalFiacre.g:27582:1: rule__LTLUnary__Group_0_0_0__1 : rule__LTLUnary__Group_0_0_0__1__Impl ; + public final void rule__LTLUnary__Group_0_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27586:1: ( rule__LTLUnary__Group_0_0_0__1__Impl ) + // InternalFiacre.g:27587:2: rule__LTLUnary__Group_0_0_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_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__LTLUnary__Group_0_0_0__1" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_0__1__Impl" + // InternalFiacre.g:27593:1: rule__LTLUnary__Group_0_0_0__1__Impl : ( 'not' ) ; + public final void rule__LTLUnary__Group_0_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27597:1: ( ( 'not' ) ) + // InternalFiacre.g:27598:1: ( 'not' ) + { + // InternalFiacre.g:27598:1: ( 'not' ) + // InternalFiacre.g:27599:2: 'not' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getNotKeyword_0_0_0_1()); + } + match(input,91,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getNotKeyword_0_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0_0_0__1__Impl" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_1__0" + // InternalFiacre.g:27609:1: rule__LTLUnary__Group_0_0_1__0 : rule__LTLUnary__Group_0_0_1__0__Impl rule__LTLUnary__Group_0_0_1__1 ; + public final void rule__LTLUnary__Group_0_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27613:1: ( rule__LTLUnary__Group_0_0_1__0__Impl rule__LTLUnary__Group_0_0_1__1 ) + // InternalFiacre.g:27614:2: rule__LTLUnary__Group_0_0_1__0__Impl rule__LTLUnary__Group_0_0_1__1 + { + pushFollow(FollowSets000.FOLLOW_145); + rule__LTLUnary__Group_0_0_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__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__LTLUnary__Group_0_0_1__0" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_1__0__Impl" + // InternalFiacre.g:27621:1: rule__LTLUnary__Group_0_0_1__0__Impl : ( () ) ; + public final void rule__LTLUnary__Group_0_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27625:1: ( ( () ) ) + // InternalFiacre.g:27626:1: ( () ) + { + // InternalFiacre.g:27626:1: ( () ) + // InternalFiacre.g:27627:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getLTLUnaryNextAction_0_0_1_0()); + } + // InternalFiacre.g:27628:2: () + // InternalFiacre.g:27628:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getLTLUnaryNextAction_0_0_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0_0_1__0__Impl" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_1__1" + // InternalFiacre.g:27636:1: rule__LTLUnary__Group_0_0_1__1 : rule__LTLUnary__Group_0_0_1__1__Impl ; + public final void rule__LTLUnary__Group_0_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27640:1: ( rule__LTLUnary__Group_0_0_1__1__Impl ) + // InternalFiacre.g:27641:2: rule__LTLUnary__Group_0_0_1__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_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__LTLUnary__Group_0_0_1__1" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_1__1__Impl" + // InternalFiacre.g:27647:1: rule__LTLUnary__Group_0_0_1__1__Impl : ( 'next' ) ; + public final void rule__LTLUnary__Group_0_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27651:1: ( ( 'next' ) ) + // InternalFiacre.g:27652:1: ( 'next' ) + { + // InternalFiacre.g:27652:1: ( 'next' ) + // InternalFiacre.g:27653:2: 'next' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getNextKeyword_0_0_1_1()); + } + match(input,130,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getNextKeyword_0_0_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0_0_1__1__Impl" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_2__0" + // InternalFiacre.g:27663:1: rule__LTLUnary__Group_0_0_2__0 : rule__LTLUnary__Group_0_0_2__0__Impl rule__LTLUnary__Group_0_0_2__1 ; + public final void rule__LTLUnary__Group_0_0_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27667:1: ( rule__LTLUnary__Group_0_0_2__0__Impl rule__LTLUnary__Group_0_0_2__1 ) + // InternalFiacre.g:27668:2: rule__LTLUnary__Group_0_0_2__0__Impl rule__LTLUnary__Group_0_0_2__1 + { + pushFollow(FollowSets000.FOLLOW_56); + rule__LTLUnary__Group_0_0_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_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__LTLUnary__Group_0_0_2__0" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_2__0__Impl" + // InternalFiacre.g:27675:1: rule__LTLUnary__Group_0_0_2__0__Impl : ( () ) ; + public final void rule__LTLUnary__Group_0_0_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27679:1: ( ( () ) ) + // InternalFiacre.g:27680:1: ( () ) + { + // InternalFiacre.g:27680:1: ( () ) + // InternalFiacre.g:27681:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getLTLUnaryAlwaysAction_0_0_2_0()); + } + // InternalFiacre.g:27682:2: () + // InternalFiacre.g:27682:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getLTLUnaryAlwaysAction_0_0_2_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0_0_2__0__Impl" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_2__1" + // InternalFiacre.g:27690:1: rule__LTLUnary__Group_0_0_2__1 : rule__LTLUnary__Group_0_0_2__1__Impl ; + public final void rule__LTLUnary__Group_0_0_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27694:1: ( rule__LTLUnary__Group_0_0_2__1__Impl ) + // InternalFiacre.g:27695:2: rule__LTLUnary__Group_0_0_2__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_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__LTLUnary__Group_0_0_2__1" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_2__1__Impl" + // InternalFiacre.g:27701:1: rule__LTLUnary__Group_0_0_2__1__Impl : ( '[]' ) ; + public final void rule__LTLUnary__Group_0_0_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27705:1: ( ( '[]' ) ) + // InternalFiacre.g:27706:1: ( '[]' ) + { + // InternalFiacre.g:27706:1: ( '[]' ) + // InternalFiacre.g:27707:2: '[]' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getLeftSquareBracketRightSquareBracketKeyword_0_0_2_1()); + } + match(input,52,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getLeftSquareBracketRightSquareBracketKeyword_0_0_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0_0_2__1__Impl" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_3__0" + // InternalFiacre.g:27717:1: rule__LTLUnary__Group_0_0_3__0 : rule__LTLUnary__Group_0_0_3__0__Impl rule__LTLUnary__Group_0_0_3__1 ; + public final void rule__LTLUnary__Group_0_0_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27721:1: ( rule__LTLUnary__Group_0_0_3__0__Impl rule__LTLUnary__Group_0_0_3__1 ) + // InternalFiacre.g:27722:2: rule__LTLUnary__Group_0_0_3__0__Impl rule__LTLUnary__Group_0_0_3__1 + { + pushFollow(FollowSets000.FOLLOW_146); + rule__LTLUnary__Group_0_0_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_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__LTLUnary__Group_0_0_3__0" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_3__0__Impl" + // InternalFiacre.g:27729:1: rule__LTLUnary__Group_0_0_3__0__Impl : ( () ) ; + public final void rule__LTLUnary__Group_0_0_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27733:1: ( ( () ) ) + // InternalFiacre.g:27734:1: ( () ) + { + // InternalFiacre.g:27734:1: ( () ) + // InternalFiacre.g:27735:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getLTLUnaryEventuallyAction_0_0_3_0()); + } + // InternalFiacre.g:27736:2: () + // InternalFiacre.g:27736:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getLTLUnaryEventuallyAction_0_0_3_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0_0_3__0__Impl" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_3__1" + // InternalFiacre.g:27744:1: rule__LTLUnary__Group_0_0_3__1 : rule__LTLUnary__Group_0_0_3__1__Impl ; + public final void rule__LTLUnary__Group_0_0_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27748:1: ( rule__LTLUnary__Group_0_0_3__1__Impl ) + // InternalFiacre.g:27749:2: rule__LTLUnary__Group_0_0_3__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LTLUnary__Group_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__LTLUnary__Group_0_0_3__1" + + + // $ANTLR start "rule__LTLUnary__Group_0_0_3__1__Impl" + // InternalFiacre.g:27755:1: rule__LTLUnary__Group_0_0_3__1__Impl : ( '<>' ) ; + public final void rule__LTLUnary__Group_0_0_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27759:1: ( ( '<>' ) ) + // InternalFiacre.g:27760:1: ( '<>' ) + { + // InternalFiacre.g:27760:1: ( '<>' ) + // InternalFiacre.g:27761:2: '<>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getLessThanSignGreaterThanSignKeyword_0_0_3_1()); + } + match(input,83,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getLessThanSignGreaterThanSignKeyword_0_0_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__Group_0_0_3__1__Impl" + + + // $ANTLR start "rule__AtomicLTL__Group_0__0" + // InternalFiacre.g:27771:1: rule__AtomicLTL__Group_0__0 : rule__AtomicLTL__Group_0__0__Impl rule__AtomicLTL__Group_0__1 ; + public final void rule__AtomicLTL__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27775:1: ( rule__AtomicLTL__Group_0__0__Impl rule__AtomicLTL__Group_0__1 ) + // InternalFiacre.g:27776:2: rule__AtomicLTL__Group_0__0__Impl rule__AtomicLTL__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__AtomicLTL__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicLTL__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicLTL__Group_0__0" + + + // $ANTLR start "rule__AtomicLTL__Group_0__0__Impl" + // InternalFiacre.g:27783:1: rule__AtomicLTL__Group_0__0__Impl : ( () ) ; + public final void rule__AtomicLTL__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27787:1: ( ( () ) ) + // InternalFiacre.g:27788:1: ( () ) + { + // InternalFiacre.g:27788:1: ( () ) + // InternalFiacre.g:27789:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getLTLVariableAction_0_0()); + } + // InternalFiacre.g:27790:2: () + // InternalFiacre.g:27790:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getLTLVariableAction_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicLTL__Group_0__0__Impl" + + + // $ANTLR start "rule__AtomicLTL__Group_0__1" + // InternalFiacre.g:27798:1: rule__AtomicLTL__Group_0__1 : rule__AtomicLTL__Group_0__1__Impl ; + public final void rule__AtomicLTL__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27802:1: ( rule__AtomicLTL__Group_0__1__Impl ) + // InternalFiacre.g:27803:2: rule__AtomicLTL__Group_0__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicLTL__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__AtomicLTL__Group_0__1" + + + // $ANTLR start "rule__AtomicLTL__Group_0__1__Impl" + // InternalFiacre.g:27809:1: rule__AtomicLTL__Group_0__1__Impl : ( ( rule__AtomicLTL__DeclarationAssignment_0_1 ) ) ; + public final void rule__AtomicLTL__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27813:1: ( ( ( rule__AtomicLTL__DeclarationAssignment_0_1 ) ) ) + // InternalFiacre.g:27814:1: ( ( rule__AtomicLTL__DeclarationAssignment_0_1 ) ) + { + // InternalFiacre.g:27814:1: ( ( rule__AtomicLTL__DeclarationAssignment_0_1 ) ) + // InternalFiacre.g:27815:2: ( rule__AtomicLTL__DeclarationAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getDeclarationAssignment_0_1()); + } + // InternalFiacre.g:27816:2: ( rule__AtomicLTL__DeclarationAssignment_0_1 ) + // InternalFiacre.g:27816:3: rule__AtomicLTL__DeclarationAssignment_0_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicLTL__DeclarationAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getDeclarationAssignment_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicLTL__Group_0__1__Impl" + + + // $ANTLR start "rule__AtomicLTL__Group_2__0" + // InternalFiacre.g:27825:1: rule__AtomicLTL__Group_2__0 : rule__AtomicLTL__Group_2__0__Impl rule__AtomicLTL__Group_2__1 ; + public final void rule__AtomicLTL__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27829:1: ( rule__AtomicLTL__Group_2__0__Impl rule__AtomicLTL__Group_2__1 ) + // InternalFiacre.g:27830:2: rule__AtomicLTL__Group_2__0__Impl rule__AtomicLTL__Group_2__1 + { + pushFollow(FollowSets000.FOLLOW_143); + rule__AtomicLTL__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicLTL__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicLTL__Group_2__0" + + + // $ANTLR start "rule__AtomicLTL__Group_2__0__Impl" + // InternalFiacre.g:27837:1: rule__AtomicLTL__Group_2__0__Impl : ( '(' ) ; + public final void rule__AtomicLTL__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27841:1: ( ( '(' ) ) + // InternalFiacre.g:27842:1: ( '(' ) + { + // InternalFiacre.g:27842:1: ( '(' ) + // InternalFiacre.g:27843:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getLeftParenthesisKeyword_2_0()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getLeftParenthesisKeyword_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicLTL__Group_2__0__Impl" + + + // $ANTLR start "rule__AtomicLTL__Group_2__1" + // InternalFiacre.g:27852:1: rule__AtomicLTL__Group_2__1 : rule__AtomicLTL__Group_2__1__Impl rule__AtomicLTL__Group_2__2 ; + public final void rule__AtomicLTL__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27856:1: ( rule__AtomicLTL__Group_2__1__Impl rule__AtomicLTL__Group_2__2 ) + // InternalFiacre.g:27857:2: rule__AtomicLTL__Group_2__1__Impl rule__AtomicLTL__Group_2__2 + { + pushFollow(FollowSets000.FOLLOW_68); + rule__AtomicLTL__Group_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicLTL__Group_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicLTL__Group_2__1" + + + // $ANTLR start "rule__AtomicLTL__Group_2__1__Impl" + // InternalFiacre.g:27864:1: rule__AtomicLTL__Group_2__1__Impl : ( ruleLTLProperty ) ; + public final void rule__AtomicLTL__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27868:1: ( ( ruleLTLProperty ) ) + // InternalFiacre.g:27869:1: ( ruleLTLProperty ) + { + // InternalFiacre.g:27869:1: ( ruleLTLProperty ) + // InternalFiacre.g:27870:2: ruleLTLProperty + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getLTLPropertyParserRuleCall_2_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getLTLPropertyParserRuleCall_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicLTL__Group_2__1__Impl" + + + // $ANTLR start "rule__AtomicLTL__Group_2__2" + // InternalFiacre.g:27879:1: rule__AtomicLTL__Group_2__2 : rule__AtomicLTL__Group_2__2__Impl ; + public final void rule__AtomicLTL__Group_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27883:1: ( rule__AtomicLTL__Group_2__2__Impl ) + // InternalFiacre.g:27884:2: rule__AtomicLTL__Group_2__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicLTL__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__AtomicLTL__Group_2__2" + + + // $ANTLR start "rule__AtomicLTL__Group_2__2__Impl" + // InternalFiacre.g:27890:1: rule__AtomicLTL__Group_2__2__Impl : ( ')' ) ; + public final void rule__AtomicLTL__Group_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27894:1: ( ( ')' ) ) + // InternalFiacre.g:27895:1: ( ')' ) + { + // InternalFiacre.g:27895:1: ( ')' ) + // InternalFiacre.g:27896:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getRightParenthesisKeyword_2_2()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getRightParenthesisKeyword_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicLTL__Group_2__2__Impl" + + + // $ANTLR start "rule__EnterStateEvent__Group__0" + // InternalFiacre.g:27906:1: rule__EnterStateEvent__Group__0 : rule__EnterStateEvent__Group__0__Impl rule__EnterStateEvent__Group__1 ; + public final void rule__EnterStateEvent__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27910:1: ( rule__EnterStateEvent__Group__0__Impl rule__EnterStateEvent__Group__1 ) + // InternalFiacre.g:27911:2: rule__EnterStateEvent__Group__0__Impl rule__EnterStateEvent__Group__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__EnterStateEvent__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__EnterStateEvent__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnterStateEvent__Group__0" + + + // $ANTLR start "rule__EnterStateEvent__Group__0__Impl" + // InternalFiacre.g:27918:1: rule__EnterStateEvent__Group__0__Impl : ( 'enter' ) ; + public final void rule__EnterStateEvent__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27922:1: ( ( 'enter' ) ) + // InternalFiacre.g:27923:1: ( 'enter' ) + { + // InternalFiacre.g:27923:1: ( 'enter' ) + // InternalFiacre.g:27924:2: 'enter' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnterStateEventAccess().getEnterKeyword_0()); + } + match(input,131,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEnterStateEventAccess().getEnterKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnterStateEvent__Group__0__Impl" + + + // $ANTLR start "rule__EnterStateEvent__Group__1" + // InternalFiacre.g:27933:1: rule__EnterStateEvent__Group__1 : rule__EnterStateEvent__Group__1__Impl ; + public final void rule__EnterStateEvent__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27937:1: ( rule__EnterStateEvent__Group__1__Impl ) + // InternalFiacre.g:27938:2: rule__EnterStateEvent__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__EnterStateEvent__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnterStateEvent__Group__1" + + + // $ANTLR start "rule__EnterStateEvent__Group__1__Impl" + // InternalFiacre.g:27944:1: rule__EnterStateEvent__Group__1__Impl : ( ( rule__EnterStateEvent__SubjectAssignment_1 ) ) ; + public final void rule__EnterStateEvent__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27948:1: ( ( ( rule__EnterStateEvent__SubjectAssignment_1 ) ) ) + // InternalFiacre.g:27949:1: ( ( rule__EnterStateEvent__SubjectAssignment_1 ) ) + { + // InternalFiacre.g:27949:1: ( ( rule__EnterStateEvent__SubjectAssignment_1 ) ) + // InternalFiacre.g:27950:2: ( rule__EnterStateEvent__SubjectAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnterStateEventAccess().getSubjectAssignment_1()); + } + // InternalFiacre.g:27951:2: ( rule__EnterStateEvent__SubjectAssignment_1 ) + // InternalFiacre.g:27951:3: rule__EnterStateEvent__SubjectAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__EnterStateEvent__SubjectAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getEnterStateEventAccess().getSubjectAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnterStateEvent__Group__1__Impl" + + + // $ANTLR start "rule__LeaveStateEvent__Group__0" + // InternalFiacre.g:27960:1: rule__LeaveStateEvent__Group__0 : rule__LeaveStateEvent__Group__0__Impl rule__LeaveStateEvent__Group__1 ; + public final void rule__LeaveStateEvent__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27964:1: ( rule__LeaveStateEvent__Group__0__Impl rule__LeaveStateEvent__Group__1 ) + // InternalFiacre.g:27965:2: rule__LeaveStateEvent__Group__0__Impl rule__LeaveStateEvent__Group__1 + { + pushFollow(FollowSets000.FOLLOW_134); + rule__LeaveStateEvent__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__LeaveStateEvent__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LeaveStateEvent__Group__0" + + + // $ANTLR start "rule__LeaveStateEvent__Group__0__Impl" + // InternalFiacre.g:27972:1: rule__LeaveStateEvent__Group__0__Impl : ( 'leave' ) ; + public final void rule__LeaveStateEvent__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27976:1: ( ( 'leave' ) ) + // InternalFiacre.g:27977:1: ( 'leave' ) + { + // InternalFiacre.g:27977:1: ( 'leave' ) + // InternalFiacre.g:27978:2: 'leave' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLeaveStateEventAccess().getLeaveKeyword_0()); + } + match(input,132,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLeaveStateEventAccess().getLeaveKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LeaveStateEvent__Group__0__Impl" + + + // $ANTLR start "rule__LeaveStateEvent__Group__1" + // InternalFiacre.g:27987:1: rule__LeaveStateEvent__Group__1 : rule__LeaveStateEvent__Group__1__Impl ; + public final void rule__LeaveStateEvent__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:27991:1: ( rule__LeaveStateEvent__Group__1__Impl ) + // InternalFiacre.g:27992:2: rule__LeaveStateEvent__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LeaveStateEvent__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LeaveStateEvent__Group__1" + + + // $ANTLR start "rule__LeaveStateEvent__Group__1__Impl" + // InternalFiacre.g:27998:1: rule__LeaveStateEvent__Group__1__Impl : ( ( rule__LeaveStateEvent__SubjectAssignment_1 ) ) ; + public final void rule__LeaveStateEvent__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28002:1: ( ( ( rule__LeaveStateEvent__SubjectAssignment_1 ) ) ) + // InternalFiacre.g:28003:1: ( ( rule__LeaveStateEvent__SubjectAssignment_1 ) ) + { + // InternalFiacre.g:28003:1: ( ( rule__LeaveStateEvent__SubjectAssignment_1 ) ) + // InternalFiacre.g:28004:2: ( rule__LeaveStateEvent__SubjectAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLeaveStateEventAccess().getSubjectAssignment_1()); + } + // InternalFiacre.g:28005:2: ( rule__LeaveStateEvent__SubjectAssignment_1 ) + // InternalFiacre.g:28005:3: rule__LeaveStateEvent__SubjectAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__LeaveStateEvent__SubjectAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getLeaveStateEventAccess().getSubjectAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LeaveStateEvent__Group__1__Impl" + + + // $ANTLR start "rule__ObservableDisjunction__Group__0" + // InternalFiacre.g:28014:1: rule__ObservableDisjunction__Group__0 : rule__ObservableDisjunction__Group__0__Impl rule__ObservableDisjunction__Group__1 ; + public final void rule__ObservableDisjunction__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28018:1: ( rule__ObservableDisjunction__Group__0__Impl rule__ObservableDisjunction__Group__1 ) + // InternalFiacre.g:28019:2: rule__ObservableDisjunction__Group__0__Impl rule__ObservableDisjunction__Group__1 + { + pushFollow(FollowSets000.FOLLOW_93); + rule__ObservableDisjunction__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableDisjunction__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableDisjunction__Group__0" + + + // $ANTLR start "rule__ObservableDisjunction__Group__0__Impl" + // InternalFiacre.g:28026:1: rule__ObservableDisjunction__Group__0__Impl : ( ruleObservableImplication ) ; + public final void rule__ObservableDisjunction__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28030:1: ( ( ruleObservableImplication ) ) + // InternalFiacre.g:28031:1: ( ruleObservableImplication ) + { + // InternalFiacre.g:28031:1: ( ruleObservableImplication ) + // InternalFiacre.g:28032:2: ruleObservableImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableDisjunctionAccess().getObservableImplicationParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservableImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableDisjunctionAccess().getObservableImplicationParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableDisjunction__Group__0__Impl" + + + // $ANTLR start "rule__ObservableDisjunction__Group__1" + // InternalFiacre.g:28041:1: rule__ObservableDisjunction__Group__1 : rule__ObservableDisjunction__Group__1__Impl ; + public final void rule__ObservableDisjunction__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28045:1: ( rule__ObservableDisjunction__Group__1__Impl ) + // InternalFiacre.g:28046:2: rule__ObservableDisjunction__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableDisjunction__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableDisjunction__Group__1" + + + // $ANTLR start "rule__ObservableDisjunction__Group__1__Impl" + // InternalFiacre.g:28052:1: rule__ObservableDisjunction__Group__1__Impl : ( ( rule__ObservableDisjunction__Group_1__0 )* ) ; + public final void rule__ObservableDisjunction__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28056:1: ( ( ( rule__ObservableDisjunction__Group_1__0 )* ) ) + // InternalFiacre.g:28057:1: ( ( rule__ObservableDisjunction__Group_1__0 )* ) + { + // InternalFiacre.g:28057:1: ( ( rule__ObservableDisjunction__Group_1__0 )* ) + // InternalFiacre.g:28058:2: ( rule__ObservableDisjunction__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableDisjunctionAccess().getGroup_1()); + } + // InternalFiacre.g:28059:2: ( rule__ObservableDisjunction__Group_1__0 )* + loop197: + do { + int alt197=2; + int LA197_0 = input.LA(1); + + if ( (LA197_0==79) ) { + alt197=1; + } + + + switch (alt197) { + case 1 : + // InternalFiacre.g:28059:3: rule__ObservableDisjunction__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_94); + rule__ObservableDisjunction__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop197; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableDisjunctionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableDisjunction__Group__1__Impl" + + + // $ANTLR start "rule__ObservableDisjunction__Group_1__0" + // InternalFiacre.g:28068:1: rule__ObservableDisjunction__Group_1__0 : rule__ObservableDisjunction__Group_1__0__Impl rule__ObservableDisjunction__Group_1__1 ; + public final void rule__ObservableDisjunction__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28072:1: ( rule__ObservableDisjunction__Group_1__0__Impl rule__ObservableDisjunction__Group_1__1 ) + // InternalFiacre.g:28073:2: rule__ObservableDisjunction__Group_1__0__Impl rule__ObservableDisjunction__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_93); + rule__ObservableDisjunction__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableDisjunction__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableDisjunction__Group_1__0" + + + // $ANTLR start "rule__ObservableDisjunction__Group_1__0__Impl" + // InternalFiacre.g:28080:1: rule__ObservableDisjunction__Group_1__0__Impl : ( () ) ; + public final void rule__ObservableDisjunction__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28084:1: ( ( () ) ) + // InternalFiacre.g:28085:1: ( () ) + { + // InternalFiacre.g:28085:1: ( () ) + // InternalFiacre.g:28086:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableDisjunctionAccess().getObservableDisjunctionLeftAction_1_0()); + } + // InternalFiacre.g:28087:2: () + // InternalFiacre.g:28087:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableDisjunctionAccess().getObservableDisjunctionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableDisjunction__Group_1__0__Impl" + + + // $ANTLR start "rule__ObservableDisjunction__Group_1__1" + // InternalFiacre.g:28095:1: rule__ObservableDisjunction__Group_1__1 : rule__ObservableDisjunction__Group_1__1__Impl rule__ObservableDisjunction__Group_1__2 ; + public final void rule__ObservableDisjunction__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28099:1: ( rule__ObservableDisjunction__Group_1__1__Impl rule__ObservableDisjunction__Group_1__2 ) + // InternalFiacre.g:28100:2: rule__ObservableDisjunction__Group_1__1__Impl rule__ObservableDisjunction__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_147); + rule__ObservableDisjunction__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableDisjunction__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableDisjunction__Group_1__1" + + + // $ANTLR start "rule__ObservableDisjunction__Group_1__1__Impl" + // InternalFiacre.g:28107:1: rule__ObservableDisjunction__Group_1__1__Impl : ( 'or' ) ; + public final void rule__ObservableDisjunction__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28111:1: ( ( 'or' ) ) + // InternalFiacre.g:28112:1: ( 'or' ) + { + // InternalFiacre.g:28112:1: ( 'or' ) + // InternalFiacre.g:28113:2: 'or' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableDisjunctionAccess().getOrKeyword_1_1()); + } + match(input,79,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableDisjunctionAccess().getOrKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableDisjunction__Group_1__1__Impl" + + + // $ANTLR start "rule__ObservableDisjunction__Group_1__2" + // InternalFiacre.g:28122:1: rule__ObservableDisjunction__Group_1__2 : rule__ObservableDisjunction__Group_1__2__Impl ; + public final void rule__ObservableDisjunction__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28126:1: ( rule__ObservableDisjunction__Group_1__2__Impl ) + // InternalFiacre.g:28127:2: rule__ObservableDisjunction__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableDisjunction__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__ObservableDisjunction__Group_1__2" + + + // $ANTLR start "rule__ObservableDisjunction__Group_1__2__Impl" + // InternalFiacre.g:28133:1: rule__ObservableDisjunction__Group_1__2__Impl : ( ( rule__ObservableDisjunction__RightAssignment_1_2 ) ) ; + public final void rule__ObservableDisjunction__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28137:1: ( ( ( rule__ObservableDisjunction__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:28138:1: ( ( rule__ObservableDisjunction__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:28138:1: ( ( rule__ObservableDisjunction__RightAssignment_1_2 ) ) + // InternalFiacre.g:28139:2: ( rule__ObservableDisjunction__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableDisjunctionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:28140:2: ( rule__ObservableDisjunction__RightAssignment_1_2 ) + // InternalFiacre.g:28140:3: rule__ObservableDisjunction__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableDisjunction__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableDisjunctionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableDisjunction__Group_1__2__Impl" + + + // $ANTLR start "rule__ObservableImplication__Group__0" + // InternalFiacre.g:28149:1: rule__ObservableImplication__Group__0 : rule__ObservableImplication__Group__0__Impl rule__ObservableImplication__Group__1 ; + public final void rule__ObservableImplication__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28153:1: ( rule__ObservableImplication__Group__0__Impl rule__ObservableImplication__Group__1 ) + // InternalFiacre.g:28154:2: rule__ObservableImplication__Group__0__Impl rule__ObservableImplication__Group__1 + { + pushFollow(FollowSets000.FOLLOW_95); + rule__ObservableImplication__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableImplication__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableImplication__Group__0" + + + // $ANTLR start "rule__ObservableImplication__Group__0__Impl" + // InternalFiacre.g:28161:1: rule__ObservableImplication__Group__0__Impl : ( ruleObservableConjunction ) ; + public final void rule__ObservableImplication__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28165:1: ( ( ruleObservableConjunction ) ) + // InternalFiacre.g:28166:1: ( ruleObservableConjunction ) + { + // InternalFiacre.g:28166:1: ( ruleObservableConjunction ) + // InternalFiacre.g:28167:2: ruleObservableConjunction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableImplicationAccess().getObservableConjunctionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservableConjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableImplicationAccess().getObservableConjunctionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableImplication__Group__0__Impl" + + + // $ANTLR start "rule__ObservableImplication__Group__1" + // InternalFiacre.g:28176:1: rule__ObservableImplication__Group__1 : rule__ObservableImplication__Group__1__Impl ; + public final void rule__ObservableImplication__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28180:1: ( rule__ObservableImplication__Group__1__Impl ) + // InternalFiacre.g:28181:2: rule__ObservableImplication__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableImplication__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableImplication__Group__1" + + + // $ANTLR start "rule__ObservableImplication__Group__1__Impl" + // InternalFiacre.g:28187:1: rule__ObservableImplication__Group__1__Impl : ( ( rule__ObservableImplication__Group_1__0 )? ) ; + public final void rule__ObservableImplication__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28191:1: ( ( ( rule__ObservableImplication__Group_1__0 )? ) ) + // InternalFiacre.g:28192:1: ( ( rule__ObservableImplication__Group_1__0 )? ) + { + // InternalFiacre.g:28192:1: ( ( rule__ObservableImplication__Group_1__0 )? ) + // InternalFiacre.g:28193:2: ( rule__ObservableImplication__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableImplicationAccess().getGroup_1()); + } + // InternalFiacre.g:28194:2: ( rule__ObservableImplication__Group_1__0 )? + int alt198=2; + int LA198_0 = input.LA(1); + + if ( (LA198_0==80) ) { + alt198=1; + } + switch (alt198) { + case 1 : + // InternalFiacre.g:28194:3: rule__ObservableImplication__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableImplication__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableImplicationAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableImplication__Group__1__Impl" + + + // $ANTLR start "rule__ObservableImplication__Group_1__0" + // InternalFiacre.g:28203:1: rule__ObservableImplication__Group_1__0 : rule__ObservableImplication__Group_1__0__Impl rule__ObservableImplication__Group_1__1 ; + public final void rule__ObservableImplication__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28207:1: ( rule__ObservableImplication__Group_1__0__Impl rule__ObservableImplication__Group_1__1 ) + // InternalFiacre.g:28208:2: rule__ObservableImplication__Group_1__0__Impl rule__ObservableImplication__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_95); + rule__ObservableImplication__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableImplication__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableImplication__Group_1__0" + + + // $ANTLR start "rule__ObservableImplication__Group_1__0__Impl" + // InternalFiacre.g:28215:1: rule__ObservableImplication__Group_1__0__Impl : ( () ) ; + public final void rule__ObservableImplication__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28219:1: ( ( () ) ) + // InternalFiacre.g:28220:1: ( () ) + { + // InternalFiacre.g:28220:1: ( () ) + // InternalFiacre.g:28221:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableImplicationAccess().getObservableImplicationLeftAction_1_0()); + } + // InternalFiacre.g:28222:2: () + // InternalFiacre.g:28222:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableImplicationAccess().getObservableImplicationLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableImplication__Group_1__0__Impl" + + + // $ANTLR start "rule__ObservableImplication__Group_1__1" + // InternalFiacre.g:28230:1: rule__ObservableImplication__Group_1__1 : rule__ObservableImplication__Group_1__1__Impl rule__ObservableImplication__Group_1__2 ; + public final void rule__ObservableImplication__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28234:1: ( rule__ObservableImplication__Group_1__1__Impl rule__ObservableImplication__Group_1__2 ) + // InternalFiacre.g:28235:2: rule__ObservableImplication__Group_1__1__Impl rule__ObservableImplication__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_147); + rule__ObservableImplication__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableImplication__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableImplication__Group_1__1" + + + // $ANTLR start "rule__ObservableImplication__Group_1__1__Impl" + // InternalFiacre.g:28242:1: rule__ObservableImplication__Group_1__1__Impl : ( '=>' ) ; + public final void rule__ObservableImplication__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28246:1: ( ( '=>' ) ) + // InternalFiacre.g:28247:1: ( '=>' ) + { + // InternalFiacre.g:28247:1: ( '=>' ) + // InternalFiacre.g:28248:2: '=>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableImplication__Group_1__1__Impl" + + + // $ANTLR start "rule__ObservableImplication__Group_1__2" + // InternalFiacre.g:28257:1: rule__ObservableImplication__Group_1__2 : rule__ObservableImplication__Group_1__2__Impl ; + public final void rule__ObservableImplication__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28261:1: ( rule__ObservableImplication__Group_1__2__Impl ) + // InternalFiacre.g:28262:2: rule__ObservableImplication__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableImplication__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__ObservableImplication__Group_1__2" + + + // $ANTLR start "rule__ObservableImplication__Group_1__2__Impl" + // InternalFiacre.g:28268:1: rule__ObservableImplication__Group_1__2__Impl : ( ( rule__ObservableImplication__RightAssignment_1_2 ) ) ; + public final void rule__ObservableImplication__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28272:1: ( ( ( rule__ObservableImplication__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:28273:1: ( ( rule__ObservableImplication__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:28273:1: ( ( rule__ObservableImplication__RightAssignment_1_2 ) ) + // InternalFiacre.g:28274:2: ( rule__ObservableImplication__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableImplicationAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:28275:2: ( rule__ObservableImplication__RightAssignment_1_2 ) + // InternalFiacre.g:28275:3: rule__ObservableImplication__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableImplication__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableImplicationAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableImplication__Group_1__2__Impl" + + + // $ANTLR start "rule__ObservableConjunction__Group__0" + // InternalFiacre.g:28284:1: rule__ObservableConjunction__Group__0 : rule__ObservableConjunction__Group__0__Impl rule__ObservableConjunction__Group__1 ; + public final void rule__ObservableConjunction__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28288:1: ( rule__ObservableConjunction__Group__0__Impl rule__ObservableConjunction__Group__1 ) + // InternalFiacre.g:28289:2: rule__ObservableConjunction__Group__0__Impl rule__ObservableConjunction__Group__1 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__ObservableConjunction__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableConjunction__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableConjunction__Group__0" + + + // $ANTLR start "rule__ObservableConjunction__Group__0__Impl" + // InternalFiacre.g:28296:1: rule__ObservableConjunction__Group__0__Impl : ( ruleObservableNegation ) ; + public final void rule__ObservableConjunction__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28300:1: ( ( ruleObservableNegation ) ) + // InternalFiacre.g:28301:1: ( ruleObservableNegation ) + { + // InternalFiacre.g:28301:1: ( ruleObservableNegation ) + // InternalFiacre.g:28302:2: ruleObservableNegation + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableConjunctionAccess().getObservableNegationParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservableNegation(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableConjunctionAccess().getObservableNegationParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableConjunction__Group__0__Impl" + + + // $ANTLR start "rule__ObservableConjunction__Group__1" + // InternalFiacre.g:28311:1: rule__ObservableConjunction__Group__1 : rule__ObservableConjunction__Group__1__Impl ; + public final void rule__ObservableConjunction__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28315:1: ( rule__ObservableConjunction__Group__1__Impl ) + // InternalFiacre.g:28316:2: rule__ObservableConjunction__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableConjunction__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableConjunction__Group__1" + + + // $ANTLR start "rule__ObservableConjunction__Group__1__Impl" + // InternalFiacre.g:28322:1: rule__ObservableConjunction__Group__1__Impl : ( ( rule__ObservableConjunction__Group_1__0 )* ) ; + public final void rule__ObservableConjunction__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28326:1: ( ( ( rule__ObservableConjunction__Group_1__0 )* ) ) + // InternalFiacre.g:28327:1: ( ( rule__ObservableConjunction__Group_1__0 )* ) + { + // InternalFiacre.g:28327:1: ( ( rule__ObservableConjunction__Group_1__0 )* ) + // InternalFiacre.g:28328:2: ( rule__ObservableConjunction__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableConjunctionAccess().getGroup_1()); + } + // InternalFiacre.g:28329:2: ( rule__ObservableConjunction__Group_1__0 )* + loop199: + do { + int alt199=2; + int LA199_0 = input.LA(1); + + if ( (LA199_0==81) ) { + alt199=1; + } + + + switch (alt199) { + case 1 : + // InternalFiacre.g:28329:3: rule__ObservableConjunction__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_97); + rule__ObservableConjunction__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop199; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableConjunctionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableConjunction__Group__1__Impl" + + + // $ANTLR start "rule__ObservableConjunction__Group_1__0" + // InternalFiacre.g:28338:1: rule__ObservableConjunction__Group_1__0 : rule__ObservableConjunction__Group_1__0__Impl rule__ObservableConjunction__Group_1__1 ; + public final void rule__ObservableConjunction__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28342:1: ( rule__ObservableConjunction__Group_1__0__Impl rule__ObservableConjunction__Group_1__1 ) + // InternalFiacre.g:28343:2: rule__ObservableConjunction__Group_1__0__Impl rule__ObservableConjunction__Group_1__1 + { + pushFollow(FollowSets000.FOLLOW_96); + rule__ObservableConjunction__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableConjunction__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableConjunction__Group_1__0" + + + // $ANTLR start "rule__ObservableConjunction__Group_1__0__Impl" + // InternalFiacre.g:28350:1: rule__ObservableConjunction__Group_1__0__Impl : ( () ) ; + public final void rule__ObservableConjunction__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28354:1: ( ( () ) ) + // InternalFiacre.g:28355:1: ( () ) + { + // InternalFiacre.g:28355:1: ( () ) + // InternalFiacre.g:28356:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableConjunctionAccess().getObservableConjunctionLeftAction_1_0()); + } + // InternalFiacre.g:28357:2: () + // InternalFiacre.g:28357:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableConjunctionAccess().getObservableConjunctionLeftAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableConjunction__Group_1__0__Impl" + + + // $ANTLR start "rule__ObservableConjunction__Group_1__1" + // InternalFiacre.g:28365:1: rule__ObservableConjunction__Group_1__1 : rule__ObservableConjunction__Group_1__1__Impl rule__ObservableConjunction__Group_1__2 ; + public final void rule__ObservableConjunction__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28369:1: ( rule__ObservableConjunction__Group_1__1__Impl rule__ObservableConjunction__Group_1__2 ) + // InternalFiacre.g:28370:2: rule__ObservableConjunction__Group_1__1__Impl rule__ObservableConjunction__Group_1__2 + { + pushFollow(FollowSets000.FOLLOW_147); + rule__ObservableConjunction__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableConjunction__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableConjunction__Group_1__1" + + + // $ANTLR start "rule__ObservableConjunction__Group_1__1__Impl" + // InternalFiacre.g:28377:1: rule__ObservableConjunction__Group_1__1__Impl : ( 'and' ) ; + public final void rule__ObservableConjunction__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28381:1: ( ( 'and' ) ) + // InternalFiacre.g:28382:1: ( 'and' ) + { + // InternalFiacre.g:28382:1: ( 'and' ) + // InternalFiacre.g:28383:2: 'and' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableConjunctionAccess().getAndKeyword_1_1()); + } + match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableConjunctionAccess().getAndKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableConjunction__Group_1__1__Impl" + + + // $ANTLR start "rule__ObservableConjunction__Group_1__2" + // InternalFiacre.g:28392:1: rule__ObservableConjunction__Group_1__2 : rule__ObservableConjunction__Group_1__2__Impl ; + public final void rule__ObservableConjunction__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28396:1: ( rule__ObservableConjunction__Group_1__2__Impl ) + // InternalFiacre.g:28397:2: rule__ObservableConjunction__Group_1__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableConjunction__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__ObservableConjunction__Group_1__2" + + + // $ANTLR start "rule__ObservableConjunction__Group_1__2__Impl" + // InternalFiacre.g:28403:1: rule__ObservableConjunction__Group_1__2__Impl : ( ( rule__ObservableConjunction__RightAssignment_1_2 ) ) ; + public final void rule__ObservableConjunction__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28407:1: ( ( ( rule__ObservableConjunction__RightAssignment_1_2 ) ) ) + // InternalFiacre.g:28408:1: ( ( rule__ObservableConjunction__RightAssignment_1_2 ) ) + { + // InternalFiacre.g:28408:1: ( ( rule__ObservableConjunction__RightAssignment_1_2 ) ) + // InternalFiacre.g:28409:2: ( rule__ObservableConjunction__RightAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableConjunctionAccess().getRightAssignment_1_2()); + } + // InternalFiacre.g:28410:2: ( rule__ObservableConjunction__RightAssignment_1_2 ) + // InternalFiacre.g:28410:3: rule__ObservableConjunction__RightAssignment_1_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableConjunction__RightAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableConjunctionAccess().getRightAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableConjunction__Group_1__2__Impl" + + + // $ANTLR start "rule__ObservableNegation__Group_0__0" + // InternalFiacre.g:28419:1: rule__ObservableNegation__Group_0__0 : rule__ObservableNegation__Group_0__0__Impl rule__ObservableNegation__Group_0__1 ; + public final void rule__ObservableNegation__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28423:1: ( rule__ObservableNegation__Group_0__0__Impl rule__ObservableNegation__Group_0__1 ) + // InternalFiacre.g:28424:2: rule__ObservableNegation__Group_0__0__Impl rule__ObservableNegation__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_113); + rule__ObservableNegation__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableNegation__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableNegation__Group_0__0" + + + // $ANTLR start "rule__ObservableNegation__Group_0__0__Impl" + // InternalFiacre.g:28431:1: rule__ObservableNegation__Group_0__0__Impl : ( () ) ; + public final void rule__ObservableNegation__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28435:1: ( ( () ) ) + // InternalFiacre.g:28436:1: ( () ) + { + // InternalFiacre.g:28436:1: ( () ) + // InternalFiacre.g:28437:2: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableNegationAccess().getObservableNegationAction_0_0()); + } + // InternalFiacre.g:28438:2: () + // InternalFiacre.g:28438:3: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableNegationAccess().getObservableNegationAction_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableNegation__Group_0__0__Impl" + + + // $ANTLR start "rule__ObservableNegation__Group_0__1" + // InternalFiacre.g:28446:1: rule__ObservableNegation__Group_0__1 : rule__ObservableNegation__Group_0__1__Impl rule__ObservableNegation__Group_0__2 ; + public final void rule__ObservableNegation__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28450:1: ( rule__ObservableNegation__Group_0__1__Impl rule__ObservableNegation__Group_0__2 ) + // InternalFiacre.g:28451:2: rule__ObservableNegation__Group_0__1__Impl rule__ObservableNegation__Group_0__2 + { + pushFollow(FollowSets000.FOLLOW_147); + rule__ObservableNegation__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableNegation__Group_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableNegation__Group_0__1" + + + // $ANTLR start "rule__ObservableNegation__Group_0__1__Impl" + // InternalFiacre.g:28458:1: rule__ObservableNegation__Group_0__1__Impl : ( 'not' ) ; + public final void rule__ObservableNegation__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28462:1: ( ( 'not' ) ) + // InternalFiacre.g:28463:1: ( 'not' ) + { + // InternalFiacre.g:28463:1: ( 'not' ) + // InternalFiacre.g:28464:2: 'not' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableNegationAccess().getNotKeyword_0_1()); + } + match(input,91,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableNegationAccess().getNotKeyword_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableNegation__Group_0__1__Impl" + + + // $ANTLR start "rule__ObservableNegation__Group_0__2" + // InternalFiacre.g:28473:1: rule__ObservableNegation__Group_0__2 : rule__ObservableNegation__Group_0__2__Impl ; + public final void rule__ObservableNegation__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28477:1: ( rule__ObservableNegation__Group_0__2__Impl ) + // InternalFiacre.g:28478:2: rule__ObservableNegation__Group_0__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableNegation__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__ObservableNegation__Group_0__2" + + + // $ANTLR start "rule__ObservableNegation__Group_0__2__Impl" + // InternalFiacre.g:28484:1: rule__ObservableNegation__Group_0__2__Impl : ( ( rule__ObservableNegation__ChildAssignment_0_2 ) ) ; + public final void rule__ObservableNegation__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28488:1: ( ( ( rule__ObservableNegation__ChildAssignment_0_2 ) ) ) + // InternalFiacre.g:28489:1: ( ( rule__ObservableNegation__ChildAssignment_0_2 ) ) + { + // InternalFiacre.g:28489:1: ( ( rule__ObservableNegation__ChildAssignment_0_2 ) ) + // InternalFiacre.g:28490:2: ( rule__ObservableNegation__ChildAssignment_0_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableNegationAccess().getChildAssignment_0_2()); + } + // InternalFiacre.g:28491:2: ( rule__ObservableNegation__ChildAssignment_0_2 ) + // InternalFiacre.g:28491:3: rule__ObservableNegation__ChildAssignment_0_2 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ObservableNegation__ChildAssignment_0_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableNegationAccess().getChildAssignment_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableNegation__Group_0__2__Impl" + + + // $ANTLR start "rule__AtomicObservable__Group_0__0" + // InternalFiacre.g:28500:1: rule__AtomicObservable__Group_0__0 : rule__AtomicObservable__Group_0__0__Impl rule__AtomicObservable__Group_0__1 ; + public final void rule__AtomicObservable__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28504:1: ( rule__AtomicObservable__Group_0__0__Impl rule__AtomicObservable__Group_0__1 ) + // InternalFiacre.g:28505:2: rule__AtomicObservable__Group_0__0__Impl rule__AtomicObservable__Group_0__1 + { + pushFollow(FollowSets000.FOLLOW_147); + rule__AtomicObservable__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicObservable__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicObservable__Group_0__0" + + + // $ANTLR start "rule__AtomicObservable__Group_0__0__Impl" + // InternalFiacre.g:28512:1: rule__AtomicObservable__Group_0__0__Impl : ( '(' ) ; + public final void rule__AtomicObservable__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28516:1: ( ( '(' ) ) + // InternalFiacre.g:28517:1: ( '(' ) + { + // InternalFiacre.g:28517:1: ( '(' ) + // InternalFiacre.g:28518:2: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicObservableAccess().getLeftParenthesisKeyword_0_0()); + } + match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicObservableAccess().getLeftParenthesisKeyword_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicObservable__Group_0__0__Impl" + + + // $ANTLR start "rule__AtomicObservable__Group_0__1" + // InternalFiacre.g:28527:1: rule__AtomicObservable__Group_0__1 : rule__AtomicObservable__Group_0__1__Impl rule__AtomicObservable__Group_0__2 ; + public final void rule__AtomicObservable__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28531:1: ( rule__AtomicObservable__Group_0__1__Impl rule__AtomicObservable__Group_0__2 ) + // InternalFiacre.g:28532:2: rule__AtomicObservable__Group_0__1__Impl rule__AtomicObservable__Group_0__2 + { + pushFollow(FollowSets000.FOLLOW_68); + rule__AtomicObservable__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicObservable__Group_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicObservable__Group_0__1" + + + // $ANTLR start "rule__AtomicObservable__Group_0__1__Impl" + // InternalFiacre.g:28539:1: rule__AtomicObservable__Group_0__1__Impl : ( ruleObservable ) ; + public final void rule__AtomicObservable__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28543:1: ( ( ruleObservable ) ) + // InternalFiacre.g:28544:1: ( ruleObservable ) + { + // InternalFiacre.g:28544:1: ( ruleObservable ) + // InternalFiacre.g:28545:2: ruleObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicObservableAccess().getObservableParserRuleCall_0_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicObservableAccess().getObservableParserRuleCall_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicObservable__Group_0__1__Impl" + + + // $ANTLR start "rule__AtomicObservable__Group_0__2" + // InternalFiacre.g:28554:1: rule__AtomicObservable__Group_0__2 : rule__AtomicObservable__Group_0__2__Impl ; + public final void rule__AtomicObservable__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28558:1: ( rule__AtomicObservable__Group_0__2__Impl ) + // InternalFiacre.g:28559:2: rule__AtomicObservable__Group_0__2__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__AtomicObservable__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__AtomicObservable__Group_0__2" + + + // $ANTLR start "rule__AtomicObservable__Group_0__2__Impl" + // InternalFiacre.g:28565:1: rule__AtomicObservable__Group_0__2__Impl : ( ')' ) ; + public final void rule__AtomicObservable__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28569:1: ( ( ')' ) ) + // InternalFiacre.g:28570:1: ( ')' ) + { + // InternalFiacre.g:28570:1: ( ')' ) + // InternalFiacre.g:28571:2: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicObservableAccess().getRightParenthesisKeyword_0_2()); + } + match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicObservableAccess().getRightParenthesisKeyword_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicObservable__Group_0__2__Impl" + + + // $ANTLR start "rule__PathEvent__Group__0" + // InternalFiacre.g:28581:1: rule__PathEvent__Group__0 : rule__PathEvent__Group__0__Impl rule__PathEvent__Group__1 ; + public final void rule__PathEvent__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28585:1: ( rule__PathEvent__Group__0__Impl rule__PathEvent__Group__1 ) + // InternalFiacre.g:28586:2: rule__PathEvent__Group__0__Impl rule__PathEvent__Group__1 + { + pushFollow(FollowSets000.FOLLOW_148); + rule__PathEvent__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__PathEvent__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PathEvent__Group__0" + + + // $ANTLR start "rule__PathEvent__Group__0__Impl" + // InternalFiacre.g:28593:1: rule__PathEvent__Group__0__Impl : ( ( rule__PathEvent__PathAssignment_0 ) ) ; + public final void rule__PathEvent__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28597:1: ( ( ( rule__PathEvent__PathAssignment_0 ) ) ) + // InternalFiacre.g:28598:1: ( ( rule__PathEvent__PathAssignment_0 ) ) + { + // InternalFiacre.g:28598:1: ( ( rule__PathEvent__PathAssignment_0 ) ) + // InternalFiacre.g:28599:2: ( rule__PathEvent__PathAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathEventAccess().getPathAssignment_0()); + } + // InternalFiacre.g:28600:2: ( rule__PathEvent__PathAssignment_0 ) + // InternalFiacre.g:28600:3: rule__PathEvent__PathAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PathEvent__PathAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPathEventAccess().getPathAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PathEvent__Group__0__Impl" + + + // $ANTLR start "rule__PathEvent__Group__1" + // InternalFiacre.g:28608:1: rule__PathEvent__Group__1 : rule__PathEvent__Group__1__Impl ; + public final void rule__PathEvent__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28612:1: ( rule__PathEvent__Group__1__Impl ) + // InternalFiacre.g:28613:2: rule__PathEvent__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PathEvent__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PathEvent__Group__1" + + + // $ANTLR start "rule__PathEvent__Group__1__Impl" + // InternalFiacre.g:28619:1: rule__PathEvent__Group__1__Impl : ( ( rule__PathEvent__ItemAssignment_1 ) ) ; + public final void rule__PathEvent__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28623:1: ( ( ( rule__PathEvent__ItemAssignment_1 ) ) ) + // InternalFiacre.g:28624:1: ( ( rule__PathEvent__ItemAssignment_1 ) ) + { + // InternalFiacre.g:28624:1: ( ( rule__PathEvent__ItemAssignment_1 ) ) + // InternalFiacre.g:28625:2: ( rule__PathEvent__ItemAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathEventAccess().getItemAssignment_1()); + } + // InternalFiacre.g:28626:2: ( rule__PathEvent__ItemAssignment_1 ) + // InternalFiacre.g:28626:3: rule__PathEvent__ItemAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PathEvent__ItemAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPathEventAccess().getItemAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PathEvent__Group__1__Impl" + + + // $ANTLR start "rule__Path__Group__0" + // InternalFiacre.g:28635:1: rule__Path__Group__0 : rule__Path__Group__0__Impl rule__Path__Group__1 ; + public final void rule__Path__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28639:1: ( rule__Path__Group__0__Impl rule__Path__Group__1 ) + // InternalFiacre.g:28640:2: rule__Path__Group__0__Impl rule__Path__Group__1 + { + pushFollow(FollowSets000.FOLLOW_109); + rule__Path__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__Path__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Path__Group__0" + + + // $ANTLR start "rule__Path__Group__0__Impl" + // InternalFiacre.g:28647:1: rule__Path__Group__0__Impl : ( ( rule__Path__ItemsAssignment_0 ) ) ; + public final void rule__Path__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28651:1: ( ( ( rule__Path__ItemsAssignment_0 ) ) ) + // InternalFiacre.g:28652:1: ( ( rule__Path__ItemsAssignment_0 ) ) + { + // InternalFiacre.g:28652:1: ( ( rule__Path__ItemsAssignment_0 ) ) + // InternalFiacre.g:28653:2: ( rule__Path__ItemsAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathAccess().getItemsAssignment_0()); + } + // InternalFiacre.g:28654:2: ( rule__Path__ItemsAssignment_0 ) + // InternalFiacre.g:28654:3: rule__Path__ItemsAssignment_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Path__ItemsAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPathAccess().getItemsAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Path__Group__0__Impl" + + + // $ANTLR start "rule__Path__Group__1" + // InternalFiacre.g:28662:1: rule__Path__Group__1 : rule__Path__Group__1__Impl ; + public final void rule__Path__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28666:1: ( rule__Path__Group__1__Impl ) + // InternalFiacre.g:28667:2: rule__Path__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Path__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Path__Group__1" + + + // $ANTLR start "rule__Path__Group__1__Impl" + // InternalFiacre.g:28673:1: rule__Path__Group__1__Impl : ( '/' ) ; + public final void rule__Path__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28677:1: ( ( '/' ) ) + // InternalFiacre.g:28678:1: ( '/' ) + { + // InternalFiacre.g:28678:1: ( '/' ) + // InternalFiacre.g:28679:2: '/' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathAccess().getSolidusKeyword_1()); + } + match(input,89,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPathAccess().getSolidusKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Path__Group__1__Impl" + + + // $ANTLR start "rule__StateSubject__Group__0" + // InternalFiacre.g:28689:1: rule__StateSubject__Group__0 : rule__StateSubject__Group__0__Impl rule__StateSubject__Group__1 ; + public final void rule__StateSubject__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28693:1: ( rule__StateSubject__Group__0__Impl rule__StateSubject__Group__1 ) + // InternalFiacre.g:28694:2: rule__StateSubject__Group__0__Impl rule__StateSubject__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__StateSubject__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__StateSubject__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateSubject__Group__0" + + + // $ANTLR start "rule__StateSubject__Group__0__Impl" + // InternalFiacre.g:28701:1: rule__StateSubject__Group__0__Impl : ( 'state' ) ; + public final void rule__StateSubject__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28705:1: ( ( 'state' ) ) + // InternalFiacre.g:28706:1: ( 'state' ) + { + // InternalFiacre.g:28706:1: ( 'state' ) + // InternalFiacre.g:28707:2: 'state' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateSubjectAccess().getStateKeyword_0()); + } + match(input,133,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStateSubjectAccess().getStateKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateSubject__Group__0__Impl" + + + // $ANTLR start "rule__StateSubject__Group__1" + // InternalFiacre.g:28716:1: rule__StateSubject__Group__1 : rule__StateSubject__Group__1__Impl ; + public final void rule__StateSubject__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28720:1: ( rule__StateSubject__Group__1__Impl ) + // InternalFiacre.g:28721:2: rule__StateSubject__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StateSubject__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateSubject__Group__1" + + + // $ANTLR start "rule__StateSubject__Group__1__Impl" + // InternalFiacre.g:28727:1: rule__StateSubject__Group__1__Impl : ( ( rule__StateSubject__StateAssignment_1 ) ) ; + public final void rule__StateSubject__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28731:1: ( ( ( rule__StateSubject__StateAssignment_1 ) ) ) + // InternalFiacre.g:28732:1: ( ( rule__StateSubject__StateAssignment_1 ) ) + { + // InternalFiacre.g:28732:1: ( ( rule__StateSubject__StateAssignment_1 ) ) + // InternalFiacre.g:28733:2: ( rule__StateSubject__StateAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateSubjectAccess().getStateAssignment_1()); + } + // InternalFiacre.g:28734:2: ( rule__StateSubject__StateAssignment_1 ) + // InternalFiacre.g:28734:3: rule__StateSubject__StateAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__StateSubject__StateAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStateSubjectAccess().getStateAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateSubject__Group__1__Impl" + + + // $ANTLR start "rule__ValueSubject__Group__0" + // InternalFiacre.g:28743:1: rule__ValueSubject__Group__0 : rule__ValueSubject__Group__0__Impl rule__ValueSubject__Group__1 ; + public final void rule__ValueSubject__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28747:1: ( rule__ValueSubject__Group__0__Impl rule__ValueSubject__Group__1 ) + // InternalFiacre.g:28748:2: rule__ValueSubject__Group__0__Impl rule__ValueSubject__Group__1 + { + pushFollow(FollowSets000.FOLLOW_23); + rule__ValueSubject__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__ValueSubject__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ValueSubject__Group__0" + + + // $ANTLR start "rule__ValueSubject__Group__0__Impl" + // InternalFiacre.g:28755:1: rule__ValueSubject__Group__0__Impl : ( 'value' ) ; + public final void rule__ValueSubject__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28759:1: ( ( 'value' ) ) + // InternalFiacre.g:28760:1: ( 'value' ) + { + // InternalFiacre.g:28760:1: ( 'value' ) + // InternalFiacre.g:28761:2: 'value' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getValueSubjectAccess().getValueKeyword_0()); + } + match(input,134,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getValueSubjectAccess().getValueKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ValueSubject__Group__0__Impl" + + + // $ANTLR start "rule__ValueSubject__Group__1" + // InternalFiacre.g:28770:1: rule__ValueSubject__Group__1 : rule__ValueSubject__Group__1__Impl ; + public final void rule__ValueSubject__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28774:1: ( rule__ValueSubject__Group__1__Impl ) + // InternalFiacre.g:28775:2: rule__ValueSubject__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ValueSubject__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ValueSubject__Group__1" + + + // $ANTLR start "rule__ValueSubject__Group__1__Impl" + // InternalFiacre.g:28781:1: rule__ValueSubject__Group__1__Impl : ( ( rule__ValueSubject__ValueAssignment_1 ) ) ; + public final void rule__ValueSubject__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28785:1: ( ( ( rule__ValueSubject__ValueAssignment_1 ) ) ) + // InternalFiacre.g:28786:1: ( ( rule__ValueSubject__ValueAssignment_1 ) ) + { + // InternalFiacre.g:28786:1: ( ( rule__ValueSubject__ValueAssignment_1 ) ) + // InternalFiacre.g:28787:2: ( rule__ValueSubject__ValueAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getValueSubjectAccess().getValueAssignment_1()); + } + // InternalFiacre.g:28788:2: ( rule__ValueSubject__ValueAssignment_1 ) + // InternalFiacre.g:28788:3: rule__ValueSubject__ValueAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ValueSubject__ValueAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getValueSubjectAccess().getValueAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ValueSubject__Group__1__Impl" + + + // $ANTLR start "rule__TagSubject__Group__0" + // InternalFiacre.g:28797:1: rule__TagSubject__Group__0 : rule__TagSubject__Group__0__Impl rule__TagSubject__Group__1 ; + public final void rule__TagSubject__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28801:1: ( rule__TagSubject__Group__0__Impl rule__TagSubject__Group__1 ) + // InternalFiacre.g:28802:2: rule__TagSubject__Group__0__Impl rule__TagSubject__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__TagSubject__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__TagSubject__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TagSubject__Group__0" + + + // $ANTLR start "rule__TagSubject__Group__0__Impl" + // InternalFiacre.g:28809:1: rule__TagSubject__Group__0__Impl : ( 'tag' ) ; + public final void rule__TagSubject__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28813:1: ( ( 'tag' ) ) + // InternalFiacre.g:28814:1: ( 'tag' ) + { + // InternalFiacre.g:28814:1: ( 'tag' ) + // InternalFiacre.g:28815:2: 'tag' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTagSubjectAccess().getTagKeyword_0()); + } + match(input,135,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTagSubjectAccess().getTagKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TagSubject__Group__0__Impl" + + + // $ANTLR start "rule__TagSubject__Group__1" + // InternalFiacre.g:28824:1: rule__TagSubject__Group__1 : rule__TagSubject__Group__1__Impl ; + public final void rule__TagSubject__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28828:1: ( rule__TagSubject__Group__1__Impl ) + // InternalFiacre.g:28829:2: rule__TagSubject__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TagSubject__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TagSubject__Group__1" + + + // $ANTLR start "rule__TagSubject__Group__1__Impl" + // InternalFiacre.g:28835:1: rule__TagSubject__Group__1__Impl : ( ( rule__TagSubject__TagAssignment_1 ) ) ; + public final void rule__TagSubject__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28839:1: ( ( ( rule__TagSubject__TagAssignment_1 ) ) ) + // InternalFiacre.g:28840:1: ( ( rule__TagSubject__TagAssignment_1 ) ) + { + // InternalFiacre.g:28840:1: ( ( rule__TagSubject__TagAssignment_1 ) ) + // InternalFiacre.g:28841:2: ( rule__TagSubject__TagAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTagSubjectAccess().getTagAssignment_1()); + } + // InternalFiacre.g:28842:2: ( rule__TagSubject__TagAssignment_1 ) + // InternalFiacre.g:28842:3: rule__TagSubject__TagAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__TagSubject__TagAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTagSubjectAccess().getTagAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TagSubject__Group__1__Impl" + + + // $ANTLR start "rule__EventSubject__Group__0" + // InternalFiacre.g:28851:1: rule__EventSubject__Group__0 : rule__EventSubject__Group__0__Impl rule__EventSubject__Group__1 ; + public final void rule__EventSubject__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28855:1: ( rule__EventSubject__Group__0__Impl rule__EventSubject__Group__1 ) + // InternalFiacre.g:28856:2: rule__EventSubject__Group__0__Impl rule__EventSubject__Group__1 + { + pushFollow(FollowSets000.FOLLOW_9); + rule__EventSubject__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FollowSets000.FOLLOW_2); + rule__EventSubject__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EventSubject__Group__0" + + + // $ANTLR start "rule__EventSubject__Group__0__Impl" + // InternalFiacre.g:28863:1: rule__EventSubject__Group__0__Impl : ( 'event' ) ; + public final void rule__EventSubject__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28867:1: ( ( 'event' ) ) + // InternalFiacre.g:28868:1: ( 'event' ) + { + // InternalFiacre.g:28868:1: ( 'event' ) + // InternalFiacre.g:28869:2: 'event' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEventSubjectAccess().getEventKeyword_0()); + } + match(input,136,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEventSubjectAccess().getEventKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EventSubject__Group__0__Impl" + + + // $ANTLR start "rule__EventSubject__Group__1" + // InternalFiacre.g:28878:1: rule__EventSubject__Group__1 : rule__EventSubject__Group__1__Impl ; + public final void rule__EventSubject__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28882:1: ( rule__EventSubject__Group__1__Impl ) + // InternalFiacre.g:28883:2: rule__EventSubject__Group__1__Impl + { + pushFollow(FollowSets000.FOLLOW_2); + rule__EventSubject__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EventSubject__Group__1" + + + // $ANTLR start "rule__EventSubject__Group__1__Impl" + // InternalFiacre.g:28889:1: rule__EventSubject__Group__1__Impl : ( ( rule__EventSubject__EventAssignment_1 ) ) ; + public final void rule__EventSubject__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28893:1: ( ( ( rule__EventSubject__EventAssignment_1 ) ) ) + // InternalFiacre.g:28894:1: ( ( rule__EventSubject__EventAssignment_1 ) ) + { + // InternalFiacre.g:28894:1: ( ( rule__EventSubject__EventAssignment_1 ) ) + // InternalFiacre.g:28895:2: ( rule__EventSubject__EventAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEventSubjectAccess().getEventAssignment_1()); + } + // InternalFiacre.g:28896:2: ( rule__EventSubject__EventAssignment_1 ) + // InternalFiacre.g:28896:3: rule__EventSubject__EventAssignment_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__EventSubject__EventAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getEventSubjectAccess().getEventAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EventSubject__Group__1__Impl" + + + // $ANTLR start "rule__Model__ImportsAssignment_1" + // InternalFiacre.g:28905:1: rule__Model__ImportsAssignment_1 : ( ruleImportDeclaration ) ; + public final void rule__Model__ImportsAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28909:1: ( ( ruleImportDeclaration ) ) + // InternalFiacre.g:28910:2: ( ruleImportDeclaration ) + { + // InternalFiacre.g:28910:2: ( ruleImportDeclaration ) + // InternalFiacre.g:28911:3: ruleImportDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getImportsImportDeclarationParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleImportDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getImportsImportDeclarationParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__ImportsAssignment_1" + + + // $ANTLR start "rule__Model__DeclarationsAssignment_2_0" + // InternalFiacre.g:28920:1: rule__Model__DeclarationsAssignment_2_0 : ( ruleDeclaration ) ; + public final void rule__Model__DeclarationsAssignment_2_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28924:1: ( ( ruleDeclaration ) ) + // InternalFiacre.g:28925:2: ( ruleDeclaration ) + { + // InternalFiacre.g:28925:2: ( ruleDeclaration ) + // InternalFiacre.g:28926:3: ruleDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_2_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_2_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__DeclarationsAssignment_2_0" + + + // $ANTLR start "rule__Model__RequirementsAssignment_2_1" + // InternalFiacre.g:28935:1: rule__Model__RequirementsAssignment_2_1 : ( ruleRequirement ) ; + public final void rule__Model__RequirementsAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28939:1: ( ( ruleRequirement ) ) + // InternalFiacre.g:28940:2: ( ruleRequirement ) + { + // InternalFiacre.g:28940:2: ( ruleRequirement ) + // InternalFiacre.g:28941:3: ruleRequirement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getRequirementsRequirementParserRuleCall_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRequirement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getRequirementsRequirementParserRuleCall_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__RequirementsAssignment_2_1" + + + // $ANTLR start "rule__Model__RootAssignment_2_2" + // InternalFiacre.g:28950:1: rule__Model__RootAssignment_2_2 : ( ruleRoot ) ; + public final void rule__Model__RootAssignment_2_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28954:1: ( ( ruleRoot ) ) + // InternalFiacre.g:28955:2: ( ruleRoot ) + { + // InternalFiacre.g:28955:2: ( ruleRoot ) + // InternalFiacre.g:28956:3: ruleRoot + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModelAccess().getRootRootParserRuleCall_2_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRoot(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getModelAccess().getRootRootParserRuleCall_2_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__RootAssignment_2_2" + + + // $ANTLR start "rule__Root__DeclarationAssignment_1" + // InternalFiacre.g:28965:1: rule__Root__DeclarationAssignment_1 : ( ( RULE_ID ) ) ; + public final void rule__Root__DeclarationAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28969:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:28970:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:28970:2: ( ( RULE_ID ) ) + // InternalFiacre.g:28971:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getDeclarationRootDeclarationCrossReference_1_0()); + } + // InternalFiacre.g:28972:3: ( RULE_ID ) + // InternalFiacre.g:28973:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getDeclarationRootDeclarationIDTerminalRuleCall_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getDeclarationRootDeclarationIDTerminalRuleCall_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getDeclarationRootDeclarationCrossReference_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__DeclarationAssignment_1" + + + // $ANTLR start "rule__Root__ObservedAssignment_2_1_0" + // InternalFiacre.g:28984:1: rule__Root__ObservedAssignment_2_1_0 : ( ( RULE_ID ) ) ; + public final void rule__Root__ObservedAssignment_2_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:28988:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:28989:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:28989:2: ( ( RULE_ID ) ) + // InternalFiacre.g:28990:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_0_0()); + } + // InternalFiacre.g:28991:3: ( RULE_ID ) + // InternalFiacre.g:28992:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getObservedRootDeclarationIDTerminalRuleCall_2_1_0_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getObservedRootDeclarationIDTerminalRuleCall_2_1_0_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__ObservedAssignment_2_1_0" + + + // $ANTLR start "rule__Root__ObservedAssignment_2_1_1_1" + // InternalFiacre.g:29003:1: rule__Root__ObservedAssignment_2_1_1_1 : ( ( RULE_ID ) ) ; + public final void rule__Root__ObservedAssignment_2_1_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29007:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:29008:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:29008:2: ( ( RULE_ID ) ) + // InternalFiacre.g:29009:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_1_1_0()); + } + // InternalFiacre.g:29010:3: ( RULE_ID ) + // InternalFiacre.g:29011:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRootAccess().getObservedRootDeclarationIDTerminalRuleCall_2_1_1_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getObservedRootDeclarationIDTerminalRuleCall_2_1_1_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Root__ObservedAssignment_2_1_1_1" + + + // $ANTLR start "rule__ImportDeclaration__ImportURIAssignment_1" + // InternalFiacre.g:29022:1: rule__ImportDeclaration__ImportURIAssignment_1 : ( RULE_STRING ) ; + public final void rule__ImportDeclaration__ImportURIAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29026:1: ( ( RULE_STRING ) ) + // InternalFiacre.g:29027:2: ( RULE_STRING ) + { + // InternalFiacre.g:29027:2: ( RULE_STRING ) + // InternalFiacre.g:29028:3: RULE_STRING + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImportDeclarationAccess().getImportURISTRINGTerminalRuleCall_1_0()); + } + match(input,RULE_STRING,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getImportDeclarationAccess().getImportURISTRINGTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ImportDeclaration__ImportURIAssignment_1" + + + // $ANTLR start "rule__FunctionDeclaration__NameAssignment_1" + // InternalFiacre.g:29037:1: rule__FunctionDeclaration__NameAssignment_1 : ( RULE_ID ) ; + public final void rule__FunctionDeclaration__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29041:1: ( ( RULE_ID ) ) + // InternalFiacre.g:29042:2: ( RULE_ID ) + { + // InternalFiacre.g:29042:2: ( RULE_ID ) + // InternalFiacre.g:29043:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__NameAssignment_1" + + + // $ANTLR start "rule__FunctionDeclaration__ParametersAssignment_2_1_0" + // InternalFiacre.g:29052:1: rule__FunctionDeclaration__ParametersAssignment_2_1_0 : ( ruleParametersDeclaration ) ; + public final void rule__FunctionDeclaration__ParametersAssignment_2_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29056:1: ( ( ruleParametersDeclaration ) ) + // InternalFiacre.g:29057:2: ( ruleParametersDeclaration ) + { + // InternalFiacre.g:29057:2: ( ruleParametersDeclaration ) + // InternalFiacre.g:29058:3: ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__ParametersAssignment_2_1_0" + + + // $ANTLR start "rule__FunctionDeclaration__ParametersAssignment_2_1_1_1" + // InternalFiacre.g:29067:1: rule__FunctionDeclaration__ParametersAssignment_2_1_1_1 : ( ruleParametersDeclaration ) ; + public final void rule__FunctionDeclaration__ParametersAssignment_2_1_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29071:1: ( ( ruleParametersDeclaration ) ) + // InternalFiacre.g:29072:2: ( ruleParametersDeclaration ) + { + // InternalFiacre.g:29072:2: ( ruleParametersDeclaration ) + // InternalFiacre.g:29073:3: ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__ParametersAssignment_2_1_1_1" + + + // $ANTLR start "rule__FunctionDeclaration__TypeAssignment_4" + // InternalFiacre.g:29082:1: rule__FunctionDeclaration__TypeAssignment_4 : ( ruleType ) ; + public final void rule__FunctionDeclaration__TypeAssignment_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29086:1: ( ( ruleType ) ) + // InternalFiacre.g:29087:2: ( ruleType ) + { + // InternalFiacre.g:29087:2: ( ruleType ) + // InternalFiacre.g:29088:3: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getTypeTypeParserRuleCall_4_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getTypeTypeParserRuleCall_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__TypeAssignment_4" + + + // $ANTLR start "rule__FunctionDeclaration__VariablesAssignment_6_1" + // InternalFiacre.g:29097:1: rule__FunctionDeclaration__VariablesAssignment_6_1 : ( ruleVariablesDeclaration ) ; + public final void rule__FunctionDeclaration__VariablesAssignment_6_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29101:1: ( ( ruleVariablesDeclaration ) ) + // InternalFiacre.g:29102:2: ( ruleVariablesDeclaration ) + { + // InternalFiacre.g:29102:2: ( ruleVariablesDeclaration ) + // InternalFiacre.g:29103:3: ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__VariablesAssignment_6_1" + + + // $ANTLR start "rule__FunctionDeclaration__VariablesAssignment_6_2_1" + // InternalFiacre.g:29112:1: rule__FunctionDeclaration__VariablesAssignment_6_2_1 : ( ruleVariablesDeclaration ) ; + public final void rule__FunctionDeclaration__VariablesAssignment_6_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29116:1: ( ( ruleVariablesDeclaration ) ) + // InternalFiacre.g:29117:2: ( ruleVariablesDeclaration ) + { + // InternalFiacre.g:29117:2: ( ruleVariablesDeclaration ) + // InternalFiacre.g:29118:3: ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__VariablesAssignment_6_2_1" + + + // $ANTLR start "rule__FunctionDeclaration__StatementAssignment_7" + // InternalFiacre.g:29127:1: rule__FunctionDeclaration__StatementAssignment_7 : ( ruleStatement ) ; + public final void rule__FunctionDeclaration__StatementAssignment_7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29131:1: ( ( ruleStatement ) ) + // InternalFiacre.g:29132:2: ( ruleStatement ) + { + // InternalFiacre.g:29132:2: ( ruleStatement ) + // InternalFiacre.g:29133:3: ruleStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFunctionDeclarationAccess().getStatementStatementParserRuleCall_7_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFunctionDeclarationAccess().getStatementStatementParserRuleCall_7_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionDeclaration__StatementAssignment_7" + + + // $ANTLR start "rule__TypeDeclaration__NameAssignment_1" + // InternalFiacre.g:29142:1: rule__TypeDeclaration__NameAssignment_1 : ( RULE_ID ) ; + public final void rule__TypeDeclaration__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29146:1: ( ( RULE_ID ) ) + // InternalFiacre.g:29147:2: ( RULE_ID ) + { + // InternalFiacre.g:29147:2: ( RULE_ID ) + // InternalFiacre.g:29148:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TypeDeclaration__NameAssignment_1" + + + // $ANTLR start "rule__TypeDeclaration__ValueAssignment_3" + // InternalFiacre.g:29157:1: rule__TypeDeclaration__ValueAssignment_3 : ( ruleType ) ; + public final void rule__TypeDeclaration__ValueAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29161:1: ( ( ruleType ) ) + // InternalFiacre.g:29162:2: ( ruleType ) + { + // InternalFiacre.g:29162:2: ( ruleType ) + // InternalFiacre.g:29163:3: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeDeclarationAccess().getValueTypeParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTypeDeclarationAccess().getValueTypeParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TypeDeclaration__ValueAssignment_3" + + + // $ANTLR start "rule__ChannelDeclaration__NameAssignment_1" + // InternalFiacre.g:29172:1: rule__ChannelDeclaration__NameAssignment_1 : ( RULE_ID ) ; + public final void rule__ChannelDeclaration__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29176:1: ( ( RULE_ID ) ) + // InternalFiacre.g:29177:2: ( RULE_ID ) + { + // InternalFiacre.g:29177:2: ( RULE_ID ) + // InternalFiacre.g:29178:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelDeclaration__NameAssignment_1" + + + // $ANTLR start "rule__ChannelDeclaration__ValueAssignment_3" + // InternalFiacre.g:29187:1: rule__ChannelDeclaration__ValueAssignment_3 : ( ruleChannelType ) ; + public final void rule__ChannelDeclaration__ValueAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29191:1: ( ( ruleChannelType ) ) + // InternalFiacre.g:29192:2: ( ruleChannelType ) + { + // InternalFiacre.g:29192:2: ( ruleChannelType ) + // InternalFiacre.g:29193:3: ruleChannelType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelDeclarationAccess().getValueChannelTypeParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleChannelType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelDeclarationAccess().getValueChannelTypeParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelDeclaration__ValueAssignment_3" + + + // $ANTLR start "rule__ChannelType__SizeAssignment_1_1" + // InternalFiacre.g:29202:1: rule__ChannelType__SizeAssignment_1_1 : ( ruleExpression ) ; + public final void rule__ChannelType__SizeAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29206:1: ( ( ruleExpression ) ) + // InternalFiacre.g:29207:2: ( ruleExpression ) + { + // InternalFiacre.g:29207:2: ( ruleExpression ) + // InternalFiacre.g:29208:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getSizeExpressionParserRuleCall_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getSizeExpressionParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__SizeAssignment_1_1" + + + // $ANTLR start "rule__ChannelType__InAssignment_2_0_0_0_0" + // InternalFiacre.g:29217:1: rule__ChannelType__InAssignment_2_0_0_0_0 : ( ( 'in' ) ) ; + public final void rule__ChannelType__InAssignment_2_0_0_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29221:1: ( ( ( 'in' ) ) ) + // InternalFiacre.g:29222:2: ( ( 'in' ) ) + { + // InternalFiacre.g:29222:2: ( ( 'in' ) ) + // InternalFiacre.g:29223:3: ( 'in' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getInInKeyword_2_0_0_0_0_0()); + } + // InternalFiacre.g:29224:3: ( 'in' ) + // InternalFiacre.g:29225:4: 'in' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getInInKeyword_2_0_0_0_0_0()); + } + match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getInInKeyword_2_0_0_0_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getInInKeyword_2_0_0_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__InAssignment_2_0_0_0_0" + + + // $ANTLR start "rule__ChannelType__OutAssignment_2_0_0_0_1" + // InternalFiacre.g:29236:1: rule__ChannelType__OutAssignment_2_0_0_0_1 : ( ( 'out' ) ) ; + public final void rule__ChannelType__OutAssignment_2_0_0_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29240:1: ( ( ( 'out' ) ) ) + // InternalFiacre.g:29241:2: ( ( 'out' ) ) + { + // InternalFiacre.g:29241:2: ( ( 'out' ) ) + // InternalFiacre.g:29242:3: ( 'out' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_0_1_0()); + } + // InternalFiacre.g:29243:3: ( 'out' ) + // InternalFiacre.g:29244:4: 'out' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_0_1_0()); + } + match(input,137,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_0_1_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__OutAssignment_2_0_0_0_1" + + + // $ANTLR start "rule__ChannelType__OutAssignment_2_0_0_1" + // InternalFiacre.g:29255:1: rule__ChannelType__OutAssignment_2_0_0_1 : ( ( 'out' ) ) ; + public final void rule__ChannelType__OutAssignment_2_0_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29259:1: ( ( ( 'out' ) ) ) + // InternalFiacre.g:29260:2: ( ( 'out' ) ) + { + // InternalFiacre.g:29260:2: ( ( 'out' ) ) + // InternalFiacre.g:29261:3: ( 'out' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_1_0()); + } + // InternalFiacre.g:29262:3: ( 'out' ) + // InternalFiacre.g:29263:4: 'out' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_1_0()); + } + match(input,137,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_1_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__OutAssignment_2_0_0_1" + + + // $ANTLR start "rule__ChannelType__TypeAssignment_2_0_1_0" + // InternalFiacre.g:29274:1: rule__ChannelType__TypeAssignment_2_0_1_0 : ( ruleTupleType ) ; + public final void rule__ChannelType__TypeAssignment_2_0_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29278:1: ( ( ruleTupleType ) ) + // InternalFiacre.g:29279:2: ( ruleTupleType ) + { + // InternalFiacre.g:29279:2: ( ruleTupleType ) + // InternalFiacre.g:29280:3: ruleTupleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getTypeTupleTypeParserRuleCall_2_0_1_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleTupleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getChannelTypeAccess().getTypeTupleTypeParserRuleCall_2_0_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ChannelType__TypeAssignment_2_0_1_0" + + + // $ANTLR start "rule__TupleType__TypesAssignment_1_2" + // InternalFiacre.g:29289:1: rule__TupleType__TypesAssignment_1_2 : ( ruleType ) ; + public final void rule__TupleType__TypesAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29293:1: ( ( ruleType ) ) + // InternalFiacre.g:29294:2: ( ruleType ) + { + // InternalFiacre.g:29294:2: ( ruleType ) + // InternalFiacre.g:29295:3: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTupleTypeAccess().getTypesTypeParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTupleTypeAccess().getTypesTypeParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TupleType__TypesAssignment_1_2" + + + // $ANTLR start "rule__RangeType__MinimumAssignment_0" + // InternalFiacre.g:29304:1: rule__RangeType__MinimumAssignment_0 : ( ruleExpression ) ; + public final void rule__RangeType__MinimumAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29308:1: ( ( ruleExpression ) ) + // InternalFiacre.g:29309:2: ( ruleExpression ) + { + // InternalFiacre.g:29309:2: ( ruleExpression ) + // InternalFiacre.g:29310:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRangeTypeAccess().getMinimumExpressionParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRangeTypeAccess().getMinimumExpressionParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RangeType__MinimumAssignment_0" + + + // $ANTLR start "rule__RangeType__MaximumAssignment_2" + // InternalFiacre.g:29319:1: rule__RangeType__MaximumAssignment_2 : ( ruleExpression ) ; + public final void rule__RangeType__MaximumAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29323:1: ( ( ruleExpression ) ) + // InternalFiacre.g:29324:2: ( ruleExpression ) + { + // InternalFiacre.g:29324:2: ( ruleExpression ) + // InternalFiacre.g:29325:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRangeTypeAccess().getMaximumExpressionParserRuleCall_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRangeTypeAccess().getMaximumExpressionParserRuleCall_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RangeType__MaximumAssignment_2" + + + // $ANTLR start "rule__UnionType__TagsAssignment_1" + // InternalFiacre.g:29334:1: rule__UnionType__TagsAssignment_1 : ( ruleUnionTags ) ; + public final void rule__UnionType__TagsAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29338:1: ( ( ruleUnionTags ) ) + // InternalFiacre.g:29339:2: ( ruleUnionTags ) + { + // InternalFiacre.g:29339:2: ( ruleUnionTags ) + // InternalFiacre.g:29340:3: ruleUnionTags + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUnionTags(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__TagsAssignment_1" + + + // $ANTLR start "rule__UnionType__TagsAssignment_2_1" + // InternalFiacre.g:29349:1: rule__UnionType__TagsAssignment_2_1 : ( ruleUnionTags ) ; + public final void rule__UnionType__TagsAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29353:1: ( ( ruleUnionTags ) ) + // InternalFiacre.g:29354:2: ( ruleUnionTags ) + { + // InternalFiacre.g:29354:2: ( ruleUnionTags ) + // InternalFiacre.g:29355:3: ruleUnionTags + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUnionTags(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionType__TagsAssignment_2_1" + + + // $ANTLR start "rule__UnionTags__TagsAssignment_0" + // InternalFiacre.g:29364:1: rule__UnionTags__TagsAssignment_0 : ( ruleUnionTagDeclaration ) ; + public final void rule__UnionTags__TagsAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29368:1: ( ( ruleUnionTagDeclaration ) ) + // InternalFiacre.g:29369:2: ( ruleUnionTagDeclaration ) + { + // InternalFiacre.g:29369:2: ( ruleUnionTagDeclaration ) + // InternalFiacre.g:29370:3: ruleUnionTagDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUnionTagDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__TagsAssignment_0" + + + // $ANTLR start "rule__UnionTags__TagsAssignment_1_1" + // InternalFiacre.g:29379:1: rule__UnionTags__TagsAssignment_1_1 : ( ruleUnionTagDeclaration ) ; + public final void rule__UnionTags__TagsAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29383:1: ( ( ruleUnionTagDeclaration ) ) + // InternalFiacre.g:29384:2: ( ruleUnionTagDeclaration ) + { + // InternalFiacre.g:29384:2: ( ruleUnionTagDeclaration ) + // InternalFiacre.g:29385:3: ruleUnionTagDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUnionTagDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__TagsAssignment_1_1" + + + // $ANTLR start "rule__UnionTags__TypeAssignment_2_1" + // InternalFiacre.g:29394:1: rule__UnionTags__TypeAssignment_2_1 : ( ruleType ) ; + public final void rule__UnionTags__TypeAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29398:1: ( ( ruleType ) ) + // InternalFiacre.g:29399:2: ( ruleType ) + { + // InternalFiacre.g:29399:2: ( ruleType ) + // InternalFiacre.g:29400:3: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagsAccess().getTypeTypeParserRuleCall_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagsAccess().getTypeTypeParserRuleCall_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTags__TypeAssignment_2_1" + + + // $ANTLR start "rule__UnionTagDeclaration__NameAssignment" + // InternalFiacre.g:29409:1: rule__UnionTagDeclaration__NameAssignment : ( RULE_ID ) ; + public final void rule__UnionTagDeclaration__NameAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29413:1: ( ( RULE_ID ) ) + // InternalFiacre.g:29414:2: ( RULE_ID ) + { + // InternalFiacre.g:29414:2: ( RULE_ID ) + // InternalFiacre.g:29415:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnionTagDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnionTagDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnionTagDeclaration__NameAssignment" + + + // $ANTLR start "rule__RecordType__FieldsAssignment_1" + // InternalFiacre.g:29424:1: rule__RecordType__FieldsAssignment_1 : ( ruleRecordFields ) ; + public final void rule__RecordType__FieldsAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29428:1: ( ( ruleRecordFields ) ) + // InternalFiacre.g:29429:2: ( ruleRecordFields ) + { + // InternalFiacre.g:29429:2: ( ruleRecordFields ) + // InternalFiacre.g:29430:3: ruleRecordFields + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRecordFields(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__FieldsAssignment_1" + + + // $ANTLR start "rule__RecordType__FieldsAssignment_2_1" + // InternalFiacre.g:29439:1: rule__RecordType__FieldsAssignment_2_1 : ( ruleRecordFields ) ; + public final void rule__RecordType__FieldsAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29443:1: ( ( ruleRecordFields ) ) + // InternalFiacre.g:29444:2: ( ruleRecordFields ) + { + // InternalFiacre.g:29444:2: ( ruleRecordFields ) + // InternalFiacre.g:29445:3: ruleRecordFields + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRecordFields(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordType__FieldsAssignment_2_1" + + + // $ANTLR start "rule__RecordFields__FieldsAssignment_0" + // InternalFiacre.g:29454:1: rule__RecordFields__FieldsAssignment_0 : ( ruleRecordFieldDeclaration ) ; + public final void rule__RecordFields__FieldsAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29458:1: ( ( ruleRecordFieldDeclaration ) ) + // InternalFiacre.g:29459:2: ( ruleRecordFieldDeclaration ) + { + // InternalFiacre.g:29459:2: ( ruleRecordFieldDeclaration ) + // InternalFiacre.g:29460:3: ruleRecordFieldDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRecordFieldDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__FieldsAssignment_0" + + + // $ANTLR start "rule__RecordFields__FieldsAssignment_1_1" + // InternalFiacre.g:29469:1: rule__RecordFields__FieldsAssignment_1_1 : ( ruleRecordFieldDeclaration ) ; + public final void rule__RecordFields__FieldsAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29473:1: ( ( ruleRecordFieldDeclaration ) ) + // InternalFiacre.g:29474:2: ( ruleRecordFieldDeclaration ) + { + // InternalFiacre.g:29474:2: ( ruleRecordFieldDeclaration ) + // InternalFiacre.g:29475:3: ruleRecordFieldDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRecordFieldDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__FieldsAssignment_1_1" + + + // $ANTLR start "rule__RecordFields__TypeAssignment_3" + // InternalFiacre.g:29484:1: rule__RecordFields__TypeAssignment_3 : ( ruleType ) ; + public final void rule__RecordFields__TypeAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29488:1: ( ( ruleType ) ) + // InternalFiacre.g:29489:2: ( ruleType ) + { + // InternalFiacre.g:29489:2: ( ruleType ) + // InternalFiacre.g:29490:3: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldsAccess().getTypeTypeParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldsAccess().getTypeTypeParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFields__TypeAssignment_3" + + + // $ANTLR start "rule__RecordFieldDeclaration__NameAssignment" + // InternalFiacre.g:29499:1: rule__RecordFieldDeclaration__NameAssignment : ( RULE_ID ) ; + public final void rule__RecordFieldDeclaration__NameAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29503:1: ( ( RULE_ID ) ) + // InternalFiacre.g:29504:2: ( RULE_ID ) + { + // InternalFiacre.g:29504:2: ( RULE_ID ) + // InternalFiacre.g:29505:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordFieldDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordFieldDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordFieldDeclaration__NameAssignment" + + + // $ANTLR start "rule__QueueType__SizeAssignment_1" + // InternalFiacre.g:29514:1: rule__QueueType__SizeAssignment_1 : ( ruleExpression ) ; + public final void rule__QueueType__SizeAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29518:1: ( ( ruleExpression ) ) + // InternalFiacre.g:29519:2: ( ruleExpression ) + { + // InternalFiacre.g:29519:2: ( ruleExpression ) + // InternalFiacre.g:29520:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueTypeAccess().getSizeExpressionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueTypeAccess().getSizeExpressionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueType__SizeAssignment_1" + + + // $ANTLR start "rule__QueueType__TypeAssignment_3" + // InternalFiacre.g:29529:1: rule__QueueType__TypeAssignment_3 : ( ruleType ) ; + public final void rule__QueueType__TypeAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29533:1: ( ( ruleType ) ) + // InternalFiacre.g:29534:2: ( ruleType ) + { + // InternalFiacre.g:29534:2: ( ruleType ) + // InternalFiacre.g:29535:3: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueTypeAccess().getTypeTypeParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueTypeAccess().getTypeTypeParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueType__TypeAssignment_3" + + + // $ANTLR start "rule__ArrayType__SizeAssignment_1" + // InternalFiacre.g:29544:1: rule__ArrayType__SizeAssignment_1 : ( ruleExpression ) ; + public final void rule__ArrayType__SizeAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29548:1: ( ( ruleExpression ) ) + // InternalFiacre.g:29549:2: ( ruleExpression ) + { + // InternalFiacre.g:29549:2: ( ruleExpression ) + // InternalFiacre.g:29550:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayTypeAccess().getSizeExpressionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayTypeAccess().getSizeExpressionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayType__SizeAssignment_1" + + + // $ANTLR start "rule__ArrayType__TypeAssignment_3" + // InternalFiacre.g:29559:1: rule__ArrayType__TypeAssignment_3 : ( ruleType ) ; + public final void rule__ArrayType__TypeAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29563:1: ( ( ruleType ) ) + // InternalFiacre.g:29564:2: ( ruleType ) + { + // InternalFiacre.g:29564:2: ( ruleType ) + // InternalFiacre.g:29565:3: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayTypeAccess().getTypeTypeParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayTypeAccess().getTypeTypeParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayType__TypeAssignment_3" + + + // $ANTLR start "rule__ReferencedType__TypeAssignment" + // InternalFiacre.g:29574:1: rule__ReferencedType__TypeAssignment : ( ( RULE_ID ) ) ; + public final void rule__ReferencedType__TypeAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29578:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:29579:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:29579:2: ( ( RULE_ID ) ) + // InternalFiacre.g:29580:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseCrossReference_0()); + } + // InternalFiacre.g:29581:3: ( RULE_ID ) + // InternalFiacre.g:29582:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseIDTerminalRuleCall_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseIDTerminalRuleCall_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseCrossReference_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReferencedType__TypeAssignment" + + + // $ANTLR start "rule__ConstantDeclaration__NameAssignment_1" + // InternalFiacre.g:29593:1: rule__ConstantDeclaration__NameAssignment_1 : ( RULE_ID ) ; + public final void rule__ConstantDeclaration__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29597:1: ( ( RULE_ID ) ) + // InternalFiacre.g:29598:2: ( RULE_ID ) + { + // InternalFiacre.g:29598:2: ( RULE_ID ) + // InternalFiacre.g:29599:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__NameAssignment_1" + + + // $ANTLR start "rule__ConstantDeclaration__TypeAssignment_3" + // InternalFiacre.g:29608:1: rule__ConstantDeclaration__TypeAssignment_3 : ( ruleType ) ; + public final void rule__ConstantDeclaration__TypeAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29612:1: ( ( ruleType ) ) + // InternalFiacre.g:29613:2: ( ruleType ) + { + // InternalFiacre.g:29613:2: ( ruleType ) + // InternalFiacre.g:29614:3: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationAccess().getTypeTypeParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationAccess().getTypeTypeParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__TypeAssignment_3" + + + // $ANTLR start "rule__ConstantDeclaration__ValueAssignment_5" + // InternalFiacre.g:29623:1: rule__ConstantDeclaration__ValueAssignment_5 : ( ruleExpression ) ; + public final void rule__ConstantDeclaration__ValueAssignment_5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29627:1: ( ( ruleExpression ) ) + // InternalFiacre.g:29628:2: ( ruleExpression ) + { + // InternalFiacre.g:29628:2: ( ruleExpression ) + // InternalFiacre.g:29629:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantDeclarationAccess().getValueExpressionParserRuleCall_5_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantDeclarationAccess().getValueExpressionParserRuleCall_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantDeclaration__ValueAssignment_5" + + + // $ANTLR start "rule__ProcessDeclaration__NameAssignment_1" + // InternalFiacre.g:29638:1: rule__ProcessDeclaration__NameAssignment_1 : ( RULE_ID ) ; + public final void rule__ProcessDeclaration__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29642:1: ( ( RULE_ID ) ) + // InternalFiacre.g:29643:2: ( RULE_ID ) + { + // InternalFiacre.g:29643:2: ( RULE_ID ) + // InternalFiacre.g:29644:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__NameAssignment_1" + + + // $ANTLR start "rule__ProcessDeclaration__PortsAssignment_2_1" + // InternalFiacre.g:29653:1: rule__ProcessDeclaration__PortsAssignment_2_1 : ( rulePortsDeclaration ) ; + public final void rule__ProcessDeclaration__PortsAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29657:1: ( ( rulePortsDeclaration ) ) + // InternalFiacre.g:29658:2: ( rulePortsDeclaration ) + { + // InternalFiacre.g:29658:2: ( rulePortsDeclaration ) + // InternalFiacre.g:29659:3: rulePortsDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__PortsAssignment_2_1" + + + // $ANTLR start "rule__ProcessDeclaration__PortsAssignment_2_2_1" + // InternalFiacre.g:29668:1: rule__ProcessDeclaration__PortsAssignment_2_2_1 : ( rulePortsDeclaration ) ; + public final void rule__ProcessDeclaration__PortsAssignment_2_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29672:1: ( ( rulePortsDeclaration ) ) + // InternalFiacre.g:29673:2: ( rulePortsDeclaration ) + { + // InternalFiacre.g:29673:2: ( rulePortsDeclaration ) + // InternalFiacre.g:29674:3: rulePortsDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__PortsAssignment_2_2_1" + + + // $ANTLR start "rule__ProcessDeclaration__ParametersAssignment_3_1" + // InternalFiacre.g:29683:1: rule__ProcessDeclaration__ParametersAssignment_3_1 : ( ruleParametersDeclaration ) ; + public final void rule__ProcessDeclaration__ParametersAssignment_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29687:1: ( ( ruleParametersDeclaration ) ) + // InternalFiacre.g:29688:2: ( ruleParametersDeclaration ) + { + // InternalFiacre.g:29688:2: ( ruleParametersDeclaration ) + // InternalFiacre.g:29689:3: ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__ParametersAssignment_3_1" + + + // $ANTLR start "rule__ProcessDeclaration__ParametersAssignment_3_2_1" + // InternalFiacre.g:29698:1: rule__ProcessDeclaration__ParametersAssignment_3_2_1 : ( ruleParametersDeclaration ) ; + public final void rule__ProcessDeclaration__ParametersAssignment_3_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29702:1: ( ( ruleParametersDeclaration ) ) + // InternalFiacre.g:29703:2: ( ruleParametersDeclaration ) + { + // InternalFiacre.g:29703:2: ( ruleParametersDeclaration ) + // InternalFiacre.g:29704:3: ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__ParametersAssignment_3_2_1" + + + // $ANTLR start "rule__ProcessDeclaration__LocalPortsAssignment_5_1" + // InternalFiacre.g:29713:1: rule__ProcessDeclaration__LocalPortsAssignment_5_1 : ( rulePortsDeclaration ) ; + public final void rule__ProcessDeclaration__LocalPortsAssignment_5_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29717:1: ( ( rulePortsDeclaration ) ) + // InternalFiacre.g:29718:2: ( rulePortsDeclaration ) + { + // InternalFiacre.g:29718:2: ( rulePortsDeclaration ) + // InternalFiacre.g:29719:3: rulePortsDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__LocalPortsAssignment_5_1" + + + // $ANTLR start "rule__ProcessDeclaration__LocalPortsAssignment_5_2_1" + // InternalFiacre.g:29728:1: rule__ProcessDeclaration__LocalPortsAssignment_5_2_1 : ( rulePortsDeclaration ) ; + public final void rule__ProcessDeclaration__LocalPortsAssignment_5_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29732:1: ( ( rulePortsDeclaration ) ) + // InternalFiacre.g:29733:2: ( rulePortsDeclaration ) + { + // InternalFiacre.g:29733:2: ( rulePortsDeclaration ) + // InternalFiacre.g:29734:3: rulePortsDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__LocalPortsAssignment_5_2_1" + + + // $ANTLR start "rule__ProcessDeclaration__PrioritiesAssignment_6_1" + // InternalFiacre.g:29743:1: rule__ProcessDeclaration__PrioritiesAssignment_6_1 : ( rulePriorityDeclaration ) ; + public final void rule__ProcessDeclaration__PrioritiesAssignment_6_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29747:1: ( ( rulePriorityDeclaration ) ) + // InternalFiacre.g:29748:2: ( rulePriorityDeclaration ) + { + // InternalFiacre.g:29748:2: ( rulePriorityDeclaration ) + // InternalFiacre.g:29749:3: rulePriorityDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePriorityDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__PrioritiesAssignment_6_1" + + + // $ANTLR start "rule__ProcessDeclaration__PrioritiesAssignment_6_2_1" + // InternalFiacre.g:29758:1: rule__ProcessDeclaration__PrioritiesAssignment_6_2_1 : ( rulePriorityDeclaration ) ; + public final void rule__ProcessDeclaration__PrioritiesAssignment_6_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29762:1: ( ( rulePriorityDeclaration ) ) + // InternalFiacre.g:29763:2: ( rulePriorityDeclaration ) + { + // InternalFiacre.g:29763:2: ( rulePriorityDeclaration ) + // InternalFiacre.g:29764:3: rulePriorityDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePriorityDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__PrioritiesAssignment_6_2_1" + + + // $ANTLR start "rule__ProcessDeclaration__StatesAssignment_8" + // InternalFiacre.g:29773:1: rule__ProcessDeclaration__StatesAssignment_8 : ( ruleStateDeclaration ) ; + public final void rule__ProcessDeclaration__StatesAssignment_8() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29777:1: ( ( ruleStateDeclaration ) ) + // InternalFiacre.g:29778:2: ( ruleStateDeclaration ) + { + // InternalFiacre.g:29778:2: ( ruleStateDeclaration ) + // InternalFiacre.g:29779:3: ruleStateDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_8_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStateDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_8_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__StatesAssignment_8" + + + // $ANTLR start "rule__ProcessDeclaration__StatesAssignment_9_1" + // InternalFiacre.g:29788:1: rule__ProcessDeclaration__StatesAssignment_9_1 : ( ruleStateDeclaration ) ; + public final void rule__ProcessDeclaration__StatesAssignment_9_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29792:1: ( ( ruleStateDeclaration ) ) + // InternalFiacre.g:29793:2: ( ruleStateDeclaration ) + { + // InternalFiacre.g:29793:2: ( ruleStateDeclaration ) + // InternalFiacre.g:29794:3: ruleStateDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_9_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStateDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_9_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__StatesAssignment_9_1" + + + // $ANTLR start "rule__ProcessDeclaration__VariablesAssignment_10_1" + // InternalFiacre.g:29803:1: rule__ProcessDeclaration__VariablesAssignment_10_1 : ( ruleVariablesDeclaration ) ; + public final void rule__ProcessDeclaration__VariablesAssignment_10_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29807:1: ( ( ruleVariablesDeclaration ) ) + // InternalFiacre.g:29808:2: ( ruleVariablesDeclaration ) + { + // InternalFiacre.g:29808:2: ( ruleVariablesDeclaration ) + // InternalFiacre.g:29809:3: ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__VariablesAssignment_10_1" + + + // $ANTLR start "rule__ProcessDeclaration__VariablesAssignment_10_2_1" + // InternalFiacre.g:29818:1: rule__ProcessDeclaration__VariablesAssignment_10_2_1 : ( ruleVariablesDeclaration ) ; + public final void rule__ProcessDeclaration__VariablesAssignment_10_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29822:1: ( ( ruleVariablesDeclaration ) ) + // InternalFiacre.g:29823:2: ( ruleVariablesDeclaration ) + { + // InternalFiacre.g:29823:2: ( ruleVariablesDeclaration ) + // InternalFiacre.g:29824:3: ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__VariablesAssignment_10_2_1" + + + // $ANTLR start "rule__ProcessDeclaration__PreludeAssignment_11_1" + // InternalFiacre.g:29833:1: rule__ProcessDeclaration__PreludeAssignment_11_1 : ( ruleStatementSequence ) ; + public final void rule__ProcessDeclaration__PreludeAssignment_11_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29837:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:29838:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:29838:2: ( ruleStatementSequence ) + // InternalFiacre.g:29839:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getPreludeStatementSequenceParserRuleCall_11_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getPreludeStatementSequenceParserRuleCall_11_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__PreludeAssignment_11_1" + + + // $ANTLR start "rule__ProcessDeclaration__TransitionsAssignment_12" + // InternalFiacre.g:29848:1: rule__ProcessDeclaration__TransitionsAssignment_12 : ( ruleTransition ) ; + public final void rule__ProcessDeclaration__TransitionsAssignment_12() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29852:1: ( ( ruleTransition ) ) + // InternalFiacre.g:29853:2: ( ruleTransition ) + { + // InternalFiacre.g:29853:2: ( ruleTransition ) + // InternalFiacre.g:29854:3: ruleTransition + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProcessDeclarationAccess().getTransitionsTransitionParserRuleCall_12_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleTransition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProcessDeclarationAccess().getTransitionsTransitionParserRuleCall_12_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ProcessDeclaration__TransitionsAssignment_12" + + + // $ANTLR start "rule__StateDeclaration__NameAssignment" + // InternalFiacre.g:29863:1: rule__StateDeclaration__NameAssignment : ( RULE_ID ) ; + public final void rule__StateDeclaration__NameAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29867:1: ( ( RULE_ID ) ) + // InternalFiacre.g:29868:2: ( RULE_ID ) + { + // InternalFiacre.g:29868:2: ( RULE_ID ) + // InternalFiacre.g:29869:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStateDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateDeclaration__NameAssignment" + + + // $ANTLR start "rule__TransitionSource__OriginAssignment_1" + // InternalFiacre.g:29878:1: rule__TransitionSource__OriginAssignment_1 : ( ( RULE_ID ) ) ; + public final void rule__TransitionSource__OriginAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29882:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:29883:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:29883:2: ( ( RULE_ID ) ) + // InternalFiacre.g:29884:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationCrossReference_1_0()); + } + // InternalFiacre.g:29885:3: ( RULE_ID ) + // InternalFiacre.g:29886:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationIDTerminalRuleCall_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationIDTerminalRuleCall_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationCrossReference_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TransitionSource__OriginAssignment_1" + + + // $ANTLR start "rule__Transition__SourceAssignment_0" + // InternalFiacre.g:29897:1: rule__Transition__SourceAssignment_0 : ( ruleTransitionSource ) ; + public final void rule__Transition__SourceAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29901:1: ( ( ruleTransitionSource ) ) + // InternalFiacre.g:29902:2: ( ruleTransitionSource ) + { + // InternalFiacre.g:29902:2: ( ruleTransitionSource ) + // InternalFiacre.g:29903:3: ruleTransitionSource + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionAccess().getSourceTransitionSourceParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleTransitionSource(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionAccess().getSourceTransitionSourceParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Transition__SourceAssignment_0" + + + // $ANTLR start "rule__Transition__ActionAssignment_1" + // InternalFiacre.g:29912:1: rule__Transition__ActionAssignment_1 : ( ruleStatementSequence ) ; + public final void rule__Transition__ActionAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29916:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:29917:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:29917:2: ( ruleStatementSequence ) + // InternalFiacre.g:29918:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTransitionAccess().getActionStatementSequenceParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTransitionAccess().getActionStatementSequenceParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Transition__ActionAssignment_1" + + + // $ANTLR start "rule__ComponentDeclaration__NameAssignment_1" + // InternalFiacre.g:29927:1: rule__ComponentDeclaration__NameAssignment_1 : ( RULE_ID ) ; + public final void rule__ComponentDeclaration__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29931:1: ( ( RULE_ID ) ) + // InternalFiacre.g:29932:2: ( RULE_ID ) + { + // InternalFiacre.g:29932:2: ( RULE_ID ) + // InternalFiacre.g:29933:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__NameAssignment_1" + + + // $ANTLR start "rule__ComponentDeclaration__PortsAssignment_2_1" + // InternalFiacre.g:29942:1: rule__ComponentDeclaration__PortsAssignment_2_1 : ( rulePortsDeclaration ) ; + public final void rule__ComponentDeclaration__PortsAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29946:1: ( ( rulePortsDeclaration ) ) + // InternalFiacre.g:29947:2: ( rulePortsDeclaration ) + { + // InternalFiacre.g:29947:2: ( rulePortsDeclaration ) + // InternalFiacre.g:29948:3: rulePortsDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__PortsAssignment_2_1" + + + // $ANTLR start "rule__ComponentDeclaration__PortsAssignment_2_2_1" + // InternalFiacre.g:29957:1: rule__ComponentDeclaration__PortsAssignment_2_2_1 : ( rulePortsDeclaration ) ; + public final void rule__ComponentDeclaration__PortsAssignment_2_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29961:1: ( ( rulePortsDeclaration ) ) + // InternalFiacre.g:29962:2: ( rulePortsDeclaration ) + { + // InternalFiacre.g:29962:2: ( rulePortsDeclaration ) + // InternalFiacre.g:29963:3: rulePortsDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__PortsAssignment_2_2_1" + + + // $ANTLR start "rule__ComponentDeclaration__ParametersAssignment_3_1" + // InternalFiacre.g:29972:1: rule__ComponentDeclaration__ParametersAssignment_3_1 : ( ruleParametersDeclaration ) ; + public final void rule__ComponentDeclaration__ParametersAssignment_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29976:1: ( ( ruleParametersDeclaration ) ) + // InternalFiacre.g:29977:2: ( ruleParametersDeclaration ) + { + // InternalFiacre.g:29977:2: ( ruleParametersDeclaration ) + // InternalFiacre.g:29978:3: ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__ParametersAssignment_3_1" + + + // $ANTLR start "rule__ComponentDeclaration__ParametersAssignment_3_2_1" + // InternalFiacre.g:29987:1: rule__ComponentDeclaration__ParametersAssignment_3_2_1 : ( ruleParametersDeclaration ) ; + public final void rule__ComponentDeclaration__ParametersAssignment_3_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:29991:1: ( ( ruleParametersDeclaration ) ) + // InternalFiacre.g:29992:2: ( ruleParametersDeclaration ) + { + // InternalFiacre.g:29992:2: ( ruleParametersDeclaration ) + // InternalFiacre.g:29993:3: ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__ParametersAssignment_3_2_1" + + + // $ANTLR start "rule__ComponentDeclaration__VariablesAssignment_5_1" + // InternalFiacre.g:30002:1: rule__ComponentDeclaration__VariablesAssignment_5_1 : ( ruleVariablesDeclaration ) ; + public final void rule__ComponentDeclaration__VariablesAssignment_5_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30006:1: ( ( ruleVariablesDeclaration ) ) + // InternalFiacre.g:30007:2: ( ruleVariablesDeclaration ) + { + // InternalFiacre.g:30007:2: ( ruleVariablesDeclaration ) + // InternalFiacre.g:30008:3: ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__VariablesAssignment_5_1" + + + // $ANTLR start "rule__ComponentDeclaration__VariablesAssignment_5_2_1" + // InternalFiacre.g:30017:1: rule__ComponentDeclaration__VariablesAssignment_5_2_1 : ( ruleVariablesDeclaration ) ; + public final void rule__ComponentDeclaration__VariablesAssignment_5_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30021:1: ( ( ruleVariablesDeclaration ) ) + // InternalFiacre.g:30022:2: ( ruleVariablesDeclaration ) + { + // InternalFiacre.g:30022:2: ( ruleVariablesDeclaration ) + // InternalFiacre.g:30023:3: ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__VariablesAssignment_5_2_1" + + + // $ANTLR start "rule__ComponentDeclaration__LocalPortsAssignment_6_1" + // InternalFiacre.g:30032:1: rule__ComponentDeclaration__LocalPortsAssignment_6_1 : ( ruleLocalPortsDeclaration ) ; + public final void rule__ComponentDeclaration__LocalPortsAssignment_6_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30036:1: ( ( ruleLocalPortsDeclaration ) ) + // InternalFiacre.g:30037:2: ( ruleLocalPortsDeclaration ) + { + // InternalFiacre.g:30037:2: ( ruleLocalPortsDeclaration ) + // InternalFiacre.g:30038:3: ruleLocalPortsDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLocalPortsDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__LocalPortsAssignment_6_1" + + + // $ANTLR start "rule__ComponentDeclaration__LocalPortsAssignment_6_2_1" + // InternalFiacre.g:30047:1: rule__ComponentDeclaration__LocalPortsAssignment_6_2_1 : ( ruleLocalPortsDeclaration ) ; + public final void rule__ComponentDeclaration__LocalPortsAssignment_6_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30051:1: ( ( ruleLocalPortsDeclaration ) ) + // InternalFiacre.g:30052:2: ( ruleLocalPortsDeclaration ) + { + // InternalFiacre.g:30052:2: ( ruleLocalPortsDeclaration ) + // InternalFiacre.g:30053:3: ruleLocalPortsDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLocalPortsDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__LocalPortsAssignment_6_2_1" + + + // $ANTLR start "rule__ComponentDeclaration__PrioritiesAssignment_7_1" + // InternalFiacre.g:30062:1: rule__ComponentDeclaration__PrioritiesAssignment_7_1 : ( rulePriorityDeclaration ) ; + public final void rule__ComponentDeclaration__PrioritiesAssignment_7_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30066:1: ( ( rulePriorityDeclaration ) ) + // InternalFiacre.g:30067:2: ( rulePriorityDeclaration ) + { + // InternalFiacre.g:30067:2: ( rulePriorityDeclaration ) + // InternalFiacre.g:30068:3: rulePriorityDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePriorityDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__PrioritiesAssignment_7_1" + + + // $ANTLR start "rule__ComponentDeclaration__PrioritiesAssignment_7_2_1" + // InternalFiacre.g:30077:1: rule__ComponentDeclaration__PrioritiesAssignment_7_2_1 : ( rulePriorityDeclaration ) ; + public final void rule__ComponentDeclaration__PrioritiesAssignment_7_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30081:1: ( ( rulePriorityDeclaration ) ) + // InternalFiacre.g:30082:2: ( rulePriorityDeclaration ) + { + // InternalFiacre.g:30082:2: ( rulePriorityDeclaration ) + // InternalFiacre.g:30083:3: rulePriorityDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePriorityDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__PrioritiesAssignment_7_2_1" + + + // $ANTLR start "rule__ComponentDeclaration__PreludeAssignment_8_1" + // InternalFiacre.g:30092:1: rule__ComponentDeclaration__PreludeAssignment_8_1 : ( ruleStatementSequence ) ; + public final void rule__ComponentDeclaration__PreludeAssignment_8_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30096:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:30097:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:30097:2: ( ruleStatementSequence ) + // InternalFiacre.g:30098:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getPreludeStatementSequenceParserRuleCall_8_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getPreludeStatementSequenceParserRuleCall_8_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__PreludeAssignment_8_1" + + + // $ANTLR start "rule__ComponentDeclaration__BodyAssignment_9" + // InternalFiacre.g:30107:1: rule__ComponentDeclaration__BodyAssignment_9 : ( ruleComposition ) ; + public final void rule__ComponentDeclaration__BodyAssignment_9() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30111:1: ( ( ruleComposition ) ) + // InternalFiacre.g:30112:2: ( ruleComposition ) + { + // InternalFiacre.g:30112:2: ( ruleComposition ) + // InternalFiacre.g:30113:3: ruleComposition + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentDeclarationAccess().getBodyCompositionParserRuleCall_9_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleComposition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentDeclarationAccess().getBodyCompositionParserRuleCall_9_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentDeclaration__BodyAssignment_9" + + + // $ANTLR start "rule__PortsDeclaration__PortsAssignment_0" + // InternalFiacre.g:30122:1: rule__PortsDeclaration__PortsAssignment_0 : ( rulePortDeclaration ) ; + public final void rule__PortsDeclaration__PortsAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30126:1: ( ( rulePortDeclaration ) ) + // InternalFiacre.g:30127:2: ( rulePortDeclaration ) + { + // InternalFiacre.g:30127:2: ( rulePortDeclaration ) + // InternalFiacre.g:30128:3: rulePortDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__PortsAssignment_0" + + + // $ANTLR start "rule__PortsDeclaration__PortsAssignment_1_1" + // InternalFiacre.g:30137:1: rule__PortsDeclaration__PortsAssignment_1_1 : ( rulePortDeclaration ) ; + public final void rule__PortsDeclaration__PortsAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30141:1: ( ( rulePortDeclaration ) ) + // InternalFiacre.g:30142:2: ( rulePortDeclaration ) + { + // InternalFiacre.g:30142:2: ( rulePortDeclaration ) + // InternalFiacre.g:30143:3: rulePortDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__PortsAssignment_1_1" + + + // $ANTLR start "rule__PortsDeclaration__TypeAssignment_3" + // InternalFiacre.g:30152:1: rule__PortsDeclaration__TypeAssignment_3 : ( ruleChannelType ) ; + public final void rule__PortsDeclaration__TypeAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30156:1: ( ( ruleChannelType ) ) + // InternalFiacre.g:30157:2: ( ruleChannelType ) + { + // InternalFiacre.g:30157:2: ( ruleChannelType ) + // InternalFiacre.g:30158:3: ruleChannelType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleChannelType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortsDeclaration__TypeAssignment_3" + + + // $ANTLR start "rule__PortDeclaration__NameAssignment" + // InternalFiacre.g:30167:1: rule__PortDeclaration__NameAssignment : ( RULE_ID ) ; + public final void rule__PortDeclaration__NameAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30171:1: ( ( RULE_ID ) ) + // InternalFiacre.g:30172:2: ( RULE_ID ) + { + // InternalFiacre.g:30172:2: ( RULE_ID ) + // InternalFiacre.g:30173:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortDeclaration__NameAssignment" + + + // $ANTLR start "rule__LocalPortsDeclaration__PortsAssignment_0" + // InternalFiacre.g:30182:1: rule__LocalPortsDeclaration__PortsAssignment_0 : ( rulePortDeclaration ) ; + public final void rule__LocalPortsDeclaration__PortsAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30186:1: ( ( rulePortDeclaration ) ) + // InternalFiacre.g:30187:2: ( rulePortDeclaration ) + { + // InternalFiacre.g:30187:2: ( rulePortDeclaration ) + // InternalFiacre.g:30188:3: rulePortDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__PortsAssignment_0" + + + // $ANTLR start "rule__LocalPortsDeclaration__PortsAssignment_1_1" + // InternalFiacre.g:30197:1: rule__LocalPortsDeclaration__PortsAssignment_1_1 : ( rulePortDeclaration ) ; + public final void rule__LocalPortsDeclaration__PortsAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30201:1: ( ( rulePortDeclaration ) ) + // InternalFiacre.g:30202:2: ( rulePortDeclaration ) + { + // InternalFiacre.g:30202:2: ( rulePortDeclaration ) + // InternalFiacre.g:30203:3: rulePortDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__PortsAssignment_1_1" + + + // $ANTLR start "rule__LocalPortsDeclaration__TypeAssignment_3" + // InternalFiacre.g:30212:1: rule__LocalPortsDeclaration__TypeAssignment_3 : ( ruleChannelType ) ; + public final void rule__LocalPortsDeclaration__TypeAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30216:1: ( ( ruleChannelType ) ) + // InternalFiacre.g:30217:2: ( ruleChannelType ) + { + // InternalFiacre.g:30217:2: ( ruleChannelType ) + // InternalFiacre.g:30218:3: ruleChannelType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleChannelType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__TypeAssignment_3" + + + // $ANTLR start "rule__LocalPortsDeclaration__LeftAssignment_4_1" + // InternalFiacre.g:30227:1: rule__LocalPortsDeclaration__LeftAssignment_4_1 : ( ruleLowerBound ) ; + public final void rule__LocalPortsDeclaration__LeftAssignment_4_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30231:1: ( ( ruleLowerBound ) ) + // InternalFiacre.g:30232:2: ( ruleLowerBound ) + { + // InternalFiacre.g:30232:2: ( ruleLowerBound ) + // InternalFiacre.g:30233:3: ruleLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getLeftLowerBoundParserRuleCall_4_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getLeftLowerBoundParserRuleCall_4_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__LeftAssignment_4_1" + + + // $ANTLR start "rule__LocalPortsDeclaration__RightAssignment_4_3" + // InternalFiacre.g:30242:1: rule__LocalPortsDeclaration__RightAssignment_4_3 : ( ruleUpperBound ) ; + public final void rule__LocalPortsDeclaration__RightAssignment_4_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30246:1: ( ( ruleUpperBound ) ) + // InternalFiacre.g:30247:2: ( ruleUpperBound ) + { + // InternalFiacre.g:30247:2: ( ruleUpperBound ) + // InternalFiacre.g:30248:3: ruleUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLocalPortsDeclarationAccess().getRightUpperBoundParserRuleCall_4_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLocalPortsDeclarationAccess().getRightUpperBoundParserRuleCall_4_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LocalPortsDeclaration__RightAssignment_4_3" + + + // $ANTLR start "rule__ParametersDeclaration__ParametersAssignment_0" + // InternalFiacre.g:30257:1: rule__ParametersDeclaration__ParametersAssignment_0 : ( ruleParameterDeclaration ) ; + public final void rule__ParametersDeclaration__ParametersAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30261:1: ( ( ruleParameterDeclaration ) ) + // InternalFiacre.g:30262:2: ( ruleParameterDeclaration ) + { + // InternalFiacre.g:30262:2: ( ruleParameterDeclaration ) + // InternalFiacre.g:30263:3: ruleParameterDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleParameterDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__ParametersAssignment_0" + + + // $ANTLR start "rule__ParametersDeclaration__ParametersAssignment_1_1" + // InternalFiacre.g:30272:1: rule__ParametersDeclaration__ParametersAssignment_1_1 : ( ruleParameterDeclaration ) ; + public final void rule__ParametersDeclaration__ParametersAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30276:1: ( ( ruleParameterDeclaration ) ) + // InternalFiacre.g:30277:2: ( ruleParameterDeclaration ) + { + // InternalFiacre.g:30277:2: ( ruleParameterDeclaration ) + // InternalFiacre.g:30278:3: ruleParameterDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleParameterDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__ParametersAssignment_1_1" + + + // $ANTLR start "rule__ParametersDeclaration__ReadAssignment_3" + // InternalFiacre.g:30287:1: rule__ParametersDeclaration__ReadAssignment_3 : ( ( 'read' ) ) ; + public final void rule__ParametersDeclaration__ReadAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30291:1: ( ( ( 'read' ) ) ) + // InternalFiacre.g:30292:2: ( ( 'read' ) ) + { + // InternalFiacre.g:30292:2: ( ( 'read' ) ) + // InternalFiacre.g:30293:3: ( 'read' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getReadReadKeyword_3_0()); + } + // InternalFiacre.g:30294:3: ( 'read' ) + // InternalFiacre.g:30295:4: 'read' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getReadReadKeyword_3_0()); + } + match(input,138,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getReadReadKeyword_3_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getReadReadKeyword_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__ReadAssignment_3" + + + // $ANTLR start "rule__ParametersDeclaration__WriteAssignment_4" + // InternalFiacre.g:30306:1: rule__ParametersDeclaration__WriteAssignment_4 : ( ( 'write' ) ) ; + public final void rule__ParametersDeclaration__WriteAssignment_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30310:1: ( ( ( 'write' ) ) ) + // InternalFiacre.g:30311:2: ( ( 'write' ) ) + { + // InternalFiacre.g:30311:2: ( ( 'write' ) ) + // InternalFiacre.g:30312:3: ( 'write' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getWriteWriteKeyword_4_0()); + } + // InternalFiacre.g:30313:3: ( 'write' ) + // InternalFiacre.g:30314:4: 'write' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getWriteWriteKeyword_4_0()); + } + match(input,139,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getWriteWriteKeyword_4_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getWriteWriteKeyword_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__WriteAssignment_4" + + + // $ANTLR start "rule__ParametersDeclaration__TypeAssignment_5" + // InternalFiacre.g:30325:1: rule__ParametersDeclaration__TypeAssignment_5 : ( ruleType ) ; + public final void rule__ParametersDeclaration__TypeAssignment_5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30329:1: ( ( ruleType ) ) + // InternalFiacre.g:30330:2: ( ruleType ) + { + // InternalFiacre.g:30330:2: ( ruleType ) + // InternalFiacre.g:30331:3: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParametersDeclarationAccess().getTypeTypeParserRuleCall_5_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParametersDeclarationAccess().getTypeTypeParserRuleCall_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParametersDeclaration__TypeAssignment_5" + + + // $ANTLR start "rule__ParameterDeclaration__ReferenceAssignment_0_0" + // InternalFiacre.g:30340:1: rule__ParameterDeclaration__ReferenceAssignment_0_0 : ( ( '&' ) ) ; + public final void rule__ParameterDeclaration__ReferenceAssignment_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30344:1: ( ( ( '&' ) ) ) + // InternalFiacre.g:30345:2: ( ( '&' ) ) + { + // InternalFiacre.g:30345:2: ( ( '&' ) ) + // InternalFiacre.g:30346:3: ( '&' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getReferenceAmpersandKeyword_0_0_0()); + } + // InternalFiacre.g:30347:3: ( '&' ) + // InternalFiacre.g:30348:4: '&' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getReferenceAmpersandKeyword_0_0_0()); + } + match(input,99,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getReferenceAmpersandKeyword_0_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getReferenceAmpersandKeyword_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__ReferenceAssignment_0_0" + + + // $ANTLR start "rule__ParameterDeclaration__ArrayAssignment_0_1_0" + // InternalFiacre.g:30359:1: rule__ParameterDeclaration__ArrayAssignment_0_1_0 : ( ( '[' ) ) ; + public final void rule__ParameterDeclaration__ArrayAssignment_0_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30363:1: ( ( ( '[' ) ) ) + // InternalFiacre.g:30364:2: ( ( '[' ) ) + { + // InternalFiacre.g:30364:2: ( ( '[' ) ) + // InternalFiacre.g:30365:3: ( '[' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getArrayLeftSquareBracketKeyword_0_1_0_0()); + } + // InternalFiacre.g:30366:3: ( '[' ) + // InternalFiacre.g:30367:4: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getArrayLeftSquareBracketKeyword_0_1_0_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getArrayLeftSquareBracketKeyword_0_1_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getArrayLeftSquareBracketKeyword_0_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__ArrayAssignment_0_1_0" + + + // $ANTLR start "rule__ParameterDeclaration__SizeAssignment_0_1_1" + // InternalFiacre.g:30378:1: rule__ParameterDeclaration__SizeAssignment_0_1_1 : ( ruleExpression ) ; + public final void rule__ParameterDeclaration__SizeAssignment_0_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30382:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30383:2: ( ruleExpression ) + { + // InternalFiacre.g:30383:2: ( ruleExpression ) + // InternalFiacre.g:30384:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getSizeExpressionParserRuleCall_0_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getSizeExpressionParserRuleCall_0_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__SizeAssignment_0_1_1" + + + // $ANTLR start "rule__ParameterDeclaration__NameAssignment_1" + // InternalFiacre.g:30393:1: rule__ParameterDeclaration__NameAssignment_1 : ( RULE_ID ) ; + public final void rule__ParameterDeclaration__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30397:1: ( ( RULE_ID ) ) + // InternalFiacre.g:30398:2: ( RULE_ID ) + { + // InternalFiacre.g:30398:2: ( RULE_ID ) + // InternalFiacre.g:30399:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getParameterDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getParameterDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ParameterDeclaration__NameAssignment_1" + + + // $ANTLR start "rule__VariablesDeclaration__VariablesAssignment_0" + // InternalFiacre.g:30408:1: rule__VariablesDeclaration__VariablesAssignment_0 : ( ruleVariableDeclaration ) ; + public final void rule__VariablesDeclaration__VariablesAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30412:1: ( ( ruleVariableDeclaration ) ) + // InternalFiacre.g:30413:2: ( ruleVariableDeclaration ) + { + // InternalFiacre.g:30413:2: ( ruleVariableDeclaration ) + // InternalFiacre.g:30414:3: ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__VariablesAssignment_0" + + + // $ANTLR start "rule__VariablesDeclaration__VariablesAssignment_1_1" + // InternalFiacre.g:30423:1: rule__VariablesDeclaration__VariablesAssignment_1_1 : ( ruleVariableDeclaration ) ; + public final void rule__VariablesDeclaration__VariablesAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30427:1: ( ( ruleVariableDeclaration ) ) + // InternalFiacre.g:30428:2: ( ruleVariableDeclaration ) + { + // InternalFiacre.g:30428:2: ( ruleVariableDeclaration ) + // InternalFiacre.g:30429:3: ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__VariablesAssignment_1_1" + + + // $ANTLR start "rule__VariablesDeclaration__TypeAssignment_3" + // InternalFiacre.g:30438:1: rule__VariablesDeclaration__TypeAssignment_3 : ( ruleType ) ; + public final void rule__VariablesDeclaration__TypeAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30442:1: ( ( ruleType ) ) + // InternalFiacre.g:30443:2: ( ruleType ) + { + // InternalFiacre.g:30443:2: ( ruleType ) + // InternalFiacre.g:30444:3: ruleType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getTypeTypeParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getTypeTypeParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__TypeAssignment_3" + + + // $ANTLR start "rule__VariablesDeclaration__ValueAssignment_4_1" + // InternalFiacre.g:30453:1: rule__VariablesDeclaration__ValueAssignment_4_1 : ( ruleExpression ) ; + public final void rule__VariablesDeclaration__ValueAssignment_4_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30457:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30458:2: ( ruleExpression ) + { + // InternalFiacre.g:30458:2: ( ruleExpression ) + // InternalFiacre.g:30459:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariablesDeclarationAccess().getValueExpressionParserRuleCall_4_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariablesDeclarationAccess().getValueExpressionParserRuleCall_4_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariablesDeclaration__ValueAssignment_4_1" + + + // $ANTLR start "rule__VariableDeclaration__NameAssignment" + // InternalFiacre.g:30468:1: rule__VariableDeclaration__NameAssignment : ( RULE_ID ) ; + public final void rule__VariableDeclaration__NameAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30472:1: ( ( RULE_ID ) ) + // InternalFiacre.g:30473:2: ( RULE_ID ) + { + // InternalFiacre.g:30473:2: ( RULE_ID ) + // InternalFiacre.g:30474:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableDeclaration__NameAssignment" + + + // $ANTLR start "rule__PriorityDeclaration__GroupsAssignment_0" + // InternalFiacre.g:30483:1: rule__PriorityDeclaration__GroupsAssignment_0 : ( rulePriorityGroup ) ; + public final void rule__PriorityDeclaration__GroupsAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30487:1: ( ( rulePriorityGroup ) ) + // InternalFiacre.g:30488:2: ( rulePriorityGroup ) + { + // InternalFiacre.g:30488:2: ( rulePriorityGroup ) + // InternalFiacre.g:30489:3: rulePriorityGroup + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePriorityGroup(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityDeclaration__GroupsAssignment_0" + + + // $ANTLR start "rule__PriorityDeclaration__GroupsAssignment_1_1" + // InternalFiacre.g:30498:1: rule__PriorityDeclaration__GroupsAssignment_1_1 : ( rulePriorityGroup ) ; + public final void rule__PriorityDeclaration__GroupsAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30502:1: ( ( rulePriorityGroup ) ) + // InternalFiacre.g:30503:2: ( rulePriorityGroup ) + { + // InternalFiacre.g:30503:2: ( rulePriorityGroup ) + // InternalFiacre.g:30504:3: rulePriorityGroup + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePriorityGroup(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityDeclaration__GroupsAssignment_1_1" + + + // $ANTLR start "rule__PriorityGroup__PortsAssignment_0" + // InternalFiacre.g:30513:1: rule__PriorityGroup__PortsAssignment_0 : ( ( RULE_ID ) ) ; + public final void rule__PriorityGroup__PortsAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30517:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:30518:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:30518:2: ( ( RULE_ID ) ) + // InternalFiacre.g:30519:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_0_0()); + } + // InternalFiacre.g:30520:3: ( RULE_ID ) + // InternalFiacre.g:30521:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationIDTerminalRuleCall_0_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationIDTerminalRuleCall_0_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityGroup__PortsAssignment_0" + + + // $ANTLR start "rule__PriorityGroup__PortsAssignment_1_1" + // InternalFiacre.g:30532:1: rule__PriorityGroup__PortsAssignment_1_1 : ( ( RULE_ID ) ) ; + public final void rule__PriorityGroup__PortsAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30536:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:30537:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:30537:2: ( ( RULE_ID ) ) + // InternalFiacre.g:30538:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_1_1_0()); + } + // InternalFiacre.g:30539:3: ( RULE_ID ) + // InternalFiacre.g:30540:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationIDTerminalRuleCall_1_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationIDTerminalRuleCall_1_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PriorityGroup__PortsAssignment_1_1" + + + // $ANTLR start "rule__UnlessStatement__FollowersAssignment_1_2" + // InternalFiacre.g:30551:1: rule__UnlessStatement__FollowersAssignment_1_2 : ( ruleStatementChoice ) ; + public final void rule__UnlessStatement__FollowersAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30555:1: ( ( ruleStatementChoice ) ) + // InternalFiacre.g:30556:2: ( ruleStatementChoice ) + { + // InternalFiacre.g:30556:2: ( ruleStatementChoice ) + // InternalFiacre.g:30557:3: ruleStatementChoice + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnlessStatementAccess().getFollowersStatementChoiceParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementChoice(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnlessStatementAccess().getFollowersStatementChoiceParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnlessStatement__FollowersAssignment_1_2" + + + // $ANTLR start "rule__StatementChoice__ChoicesAssignment_1_2" + // InternalFiacre.g:30566:1: rule__StatementChoice__ChoicesAssignment_1_2 : ( ruleStatementSequence ) ; + public final void rule__StatementChoice__ChoicesAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30570:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:30571:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:30571:2: ( ruleStatementSequence ) + // InternalFiacre.g:30572:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementChoiceAccess().getChoicesStatementSequenceParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementChoiceAccess().getChoicesStatementSequenceParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementChoice__ChoicesAssignment_1_2" + + + // $ANTLR start "rule__StatementSequence__StatementsAssignment_1_2" + // InternalFiacre.g:30581:1: rule__StatementSequence__StatementsAssignment_1_2 : ( ruleStatement ) ; + public final void rule__StatementSequence__StatementsAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30585:1: ( ( ruleStatement ) ) + // InternalFiacre.g:30586:2: ( ruleStatement ) + { + // InternalFiacre.g:30586:2: ( ruleStatement ) + // InternalFiacre.g:30587:3: ruleStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStatementSequenceAccess().getStatementsStatementParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStatementSequenceAccess().getStatementsStatementParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StatementSequence__StatementsAssignment_1_2" + + + // $ANTLR start "rule__BlockStatement__BodyAssignment_1" + // InternalFiacre.g:30596:1: rule__BlockStatement__BodyAssignment_1 : ( ruleStatementSequence ) ; + public final void rule__BlockStatement__BodyAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30600:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:30601:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:30601:2: ( ruleStatementSequence ) + // InternalFiacre.g:30602:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockStatementAccess().getBodyStatementSequenceParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getBlockStatementAccess().getBodyStatementSequenceParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__BlockStatement__BodyAssignment_1" + + + // $ANTLR start "rule__ReturnStatement__ExpressionAssignment_1" + // InternalFiacre.g:30611:1: rule__ReturnStatement__ExpressionAssignment_1 : ( ruleExpression ) ; + public final void rule__ReturnStatement__ExpressionAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30615:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30616:2: ( ruleExpression ) + { + // InternalFiacre.g:30616:2: ( ruleExpression ) + // InternalFiacre.g:30617:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReturnStatementAccess().getExpressionExpressionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getReturnStatementAccess().getExpressionExpressionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReturnStatement__ExpressionAssignment_1" + + + // $ANTLR start "rule__TaggedStatement__NameAssignment_1" + // InternalFiacre.g:30626:1: rule__TaggedStatement__NameAssignment_1 : ( RULE_ID ) ; + public final void rule__TaggedStatement__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30630:1: ( ( RULE_ID ) ) + // InternalFiacre.g:30631:2: ( RULE_ID ) + { + // InternalFiacre.g:30631:2: ( RULE_ID ) + // InternalFiacre.g:30632:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTaggedStatementAccess().getNameIDTerminalRuleCall_1_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTaggedStatementAccess().getNameIDTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TaggedStatement__NameAssignment_1" + + + // $ANTLR start "rule__PatternStatement__PatternsAssignment_1_0_2" + // InternalFiacre.g:30641:1: rule__PatternStatement__PatternsAssignment_1_0_2 : ( rulePattern ) ; + public final void rule__PatternStatement__PatternsAssignment_1_0_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30645:1: ( ( rulePattern ) ) + // InternalFiacre.g:30646:2: ( rulePattern ) + { + // InternalFiacre.g:30646:2: ( rulePattern ) + // InternalFiacre.g:30647:3: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__PatternsAssignment_1_0_2" + + + // $ANTLR start "rule__PatternStatement__PatternsAssignment_1_0_3_1" + // InternalFiacre.g:30656:1: rule__PatternStatement__PatternsAssignment_1_0_3_1 : ( rulePattern ) ; + public final void rule__PatternStatement__PatternsAssignment_1_0_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30660:1: ( ( rulePattern ) ) + // InternalFiacre.g:30661:2: ( rulePattern ) + { + // InternalFiacre.g:30661:2: ( rulePattern ) + // InternalFiacre.g:30662:3: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__PatternsAssignment_1_0_3_1" + + + // $ANTLR start "rule__PatternStatement__ValuesAssignment_1_0_5" + // InternalFiacre.g:30671:1: rule__PatternStatement__ValuesAssignment_1_0_5 : ( ruleExpression ) ; + public final void rule__PatternStatement__ValuesAssignment_1_0_5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30675:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30676:2: ( ruleExpression ) + { + // InternalFiacre.g:30676:2: ( ruleExpression ) + // InternalFiacre.g:30677:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_5_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__ValuesAssignment_1_0_5" + + + // $ANTLR start "rule__PatternStatement__ValuesAssignment_1_0_6_1" + // InternalFiacre.g:30686:1: rule__PatternStatement__ValuesAssignment_1_0_6_1 : ( ruleExpression ) ; + public final void rule__PatternStatement__ValuesAssignment_1_0_6_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30690:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30691:2: ( ruleExpression ) + { + // InternalFiacre.g:30691:2: ( ruleExpression ) + // InternalFiacre.g:30692:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_6_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_6_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__ValuesAssignment_1_0_6_1" + + + // $ANTLR start "rule__PatternStatement__ValuesAssignment_1_1_2_0" + // InternalFiacre.g:30701:1: rule__PatternStatement__ValuesAssignment_1_1_2_0 : ( ruleExpression ) ; + public final void rule__PatternStatement__ValuesAssignment_1_1_2_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30705:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30706:2: ( ruleExpression ) + { + // InternalFiacre.g:30706:2: ( ruleExpression ) + // InternalFiacre.g:30707:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__ValuesAssignment_1_1_2_0" + + + // $ANTLR start "rule__PatternStatement__ValuesAssignment_1_1_2_1_1" + // InternalFiacre.g:30716:1: rule__PatternStatement__ValuesAssignment_1_1_2_1_1 : ( ruleExpression ) ; + public final void rule__PatternStatement__ValuesAssignment_1_1_2_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30720:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30721:2: ( ruleExpression ) + { + // InternalFiacre.g:30721:2: ( ruleExpression ) + // InternalFiacre.g:30722:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__ValuesAssignment_1_1_2_1_1" + + + // $ANTLR start "rule__PatternStatement__PatternsAssignment_1_2_2" + // InternalFiacre.g:30731:1: rule__PatternStatement__PatternsAssignment_1_2_2 : ( rulePattern ) ; + public final void rule__PatternStatement__PatternsAssignment_1_2_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30735:1: ( ( rulePattern ) ) + // InternalFiacre.g:30736:2: ( rulePattern ) + { + // InternalFiacre.g:30736:2: ( rulePattern ) + // InternalFiacre.g:30737:3: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__PatternsAssignment_1_2_2" + + + // $ANTLR start "rule__PatternStatement__PatternsAssignment_1_2_3_1" + // InternalFiacre.g:30746:1: rule__PatternStatement__PatternsAssignment_1_2_3_1 : ( rulePattern ) ; + public final void rule__PatternStatement__PatternsAssignment_1_2_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30750:1: ( ( rulePattern ) ) + // InternalFiacre.g:30751:2: ( rulePattern ) + { + // InternalFiacre.g:30751:2: ( rulePattern ) + // InternalFiacre.g:30752:3: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__PatternsAssignment_1_2_3_1" + + + // $ANTLR start "rule__PatternStatement__ExpAssignment_1_2_6_1" + // InternalFiacre.g:30761:1: rule__PatternStatement__ExpAssignment_1_2_6_1 : ( ruleExpression ) ; + public final void rule__PatternStatement__ExpAssignment_1_2_6_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30765:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30766:2: ( ruleExpression ) + { + // InternalFiacre.g:30766:2: ( ruleExpression ) + // InternalFiacre.g:30767:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_2_6_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_2_6_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__ExpAssignment_1_2_6_1" + + + // $ANTLR start "rule__PatternStatement__ExpAssignment_1_3_3_1" + // InternalFiacre.g:30776:1: rule__PatternStatement__ExpAssignment_1_3_3_1 : ( ruleExpression ) ; + public final void rule__PatternStatement__ExpAssignment_1_3_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30780:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30781:2: ( ruleExpression ) + { + // InternalFiacre.g:30781:2: ( ruleExpression ) + // InternalFiacre.g:30782:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_3_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_3_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__ExpAssignment_1_3_3_1" + + + // $ANTLR start "rule__PatternStatement__ValuesAssignment_1_4_2" + // InternalFiacre.g:30791:1: rule__PatternStatement__ValuesAssignment_1_4_2 : ( ruleExpression ) ; + public final void rule__PatternStatement__ValuesAssignment_1_4_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30795:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30796:2: ( ruleExpression ) + { + // InternalFiacre.g:30796:2: ( ruleExpression ) + // InternalFiacre.g:30797:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__ValuesAssignment_1_4_2" + + + // $ANTLR start "rule__PatternStatement__ValuesAssignment_1_4_3_1" + // InternalFiacre.g:30806:1: rule__PatternStatement__ValuesAssignment_1_4_3_1 : ( ruleExpression ) ; + public final void rule__PatternStatement__ValuesAssignment_1_4_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30810:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30811:2: ( ruleExpression ) + { + // InternalFiacre.g:30811:2: ( ruleExpression ) + // InternalFiacre.g:30812:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__ValuesAssignment_1_4_3_1" + + + // $ANTLR start "rule__PatternStatement__PatternsAssignment_1_5_2" + // InternalFiacre.g:30821:1: rule__PatternStatement__PatternsAssignment_1_5_2 : ( rulePattern ) ; + public final void rule__PatternStatement__PatternsAssignment_1_5_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30825:1: ( ( rulePattern ) ) + // InternalFiacre.g:30826:2: ( rulePattern ) + { + // InternalFiacre.g:30826:2: ( rulePattern ) + // InternalFiacre.g:30827:3: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__PatternsAssignment_1_5_2" + + + // $ANTLR start "rule__PatternStatement__PatternsAssignment_1_5_3_1" + // InternalFiacre.g:30836:1: rule__PatternStatement__PatternsAssignment_1_5_3_1 : ( rulePattern ) ; + public final void rule__PatternStatement__PatternsAssignment_1_5_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30840:1: ( ( rulePattern ) ) + // InternalFiacre.g:30841:2: ( rulePattern ) + { + // InternalFiacre.g:30841:2: ( rulePattern ) + // InternalFiacre.g:30842:3: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__PatternsAssignment_1_5_3_1" + + + // $ANTLR start "rule__PatternStatement__ExpAssignment_1_5_4_1" + // InternalFiacre.g:30851:1: rule__PatternStatement__ExpAssignment_1_5_4_1 : ( ruleExpression ) ; + public final void rule__PatternStatement__ExpAssignment_1_5_4_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30855:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30856:2: ( ruleExpression ) + { + // InternalFiacre.g:30856:2: ( ruleExpression ) + // InternalFiacre.g:30857:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_5_4_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_5_4_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PatternStatement__ExpAssignment_1_5_4_1" + + + // $ANTLR start "rule__ConstantPattern__ValueAssignment" + // InternalFiacre.g:30866:1: rule__ConstantPattern__ValueAssignment : ( ruleLiteralExpression ) ; + public final void rule__ConstantPattern__ValueAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30870:1: ( ( ruleLiteralExpression ) ) + // InternalFiacre.g:30871:2: ( ruleLiteralExpression ) + { + // InternalFiacre.g:30871:2: ( ruleLiteralExpression ) + // InternalFiacre.g:30872:3: ruleLiteralExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConstantPatternAccess().getValueLiteralExpressionParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLiteralExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConstantPatternAccess().getValueLiteralExpressionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConstantPattern__ValueAssignment" + + + // $ANTLR start "rule__IntegerPattern__NegativeAssignment_0_1" + // InternalFiacre.g:30881:1: rule__IntegerPattern__NegativeAssignment_0_1 : ( ( '-' ) ) ; + public final void rule__IntegerPattern__NegativeAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30885:1: ( ( ( '-' ) ) ) + // InternalFiacre.g:30886:2: ( ( '-' ) ) + { + // InternalFiacre.g:30886:2: ( ( '-' ) ) + // InternalFiacre.g:30887:3: ( '-' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIntegerPatternAccess().getNegativeHyphenMinusKeyword_0_1_0()); + } + // InternalFiacre.g:30888:3: ( '-' ) + // InternalFiacre.g:30889:4: '-' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIntegerPatternAccess().getNegativeHyphenMinusKeyword_0_1_0()); + } + match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIntegerPatternAccess().getNegativeHyphenMinusKeyword_0_1_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIntegerPatternAccess().getNegativeHyphenMinusKeyword_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IntegerPattern__NegativeAssignment_0_1" + + + // $ANTLR start "rule__IntegerPattern__ValueAssignment_1" + // InternalFiacre.g:30900:1: rule__IntegerPattern__ValueAssignment_1 : ( RULE_INT ) ; + public final void rule__IntegerPattern__ValueAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30904:1: ( ( RULE_INT ) ) + // InternalFiacre.g:30905:2: ( RULE_INT ) + { + // InternalFiacre.g:30905:2: ( RULE_INT ) + // InternalFiacre.g:30906:3: RULE_INT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIntegerPatternAccess().getValueINTTerminalRuleCall_1_0()); + } + match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIntegerPatternAccess().getValueINTTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IntegerPattern__ValueAssignment_1" + + + // $ANTLR start "rule__IdentifierPattern__DeclarationAssignment_0_1" + // InternalFiacre.g:30915:1: rule__IdentifierPattern__DeclarationAssignment_0_1 : ( ( RULE_ID ) ) ; + public final void rule__IdentifierPattern__DeclarationAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30919:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:30920:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:30920:2: ( ( RULE_ID ) ) + // InternalFiacre.g:30921:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_0_1_0()); + } + // InternalFiacre.g:30922:3: ( RULE_ID ) + // InternalFiacre.g:30923:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseIDTerminalRuleCall_0_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseIDTerminalRuleCall_0_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__DeclarationAssignment_0_1" + + + // $ANTLR start "rule__IdentifierPattern__ParametersAssignment_0_3_0" + // InternalFiacre.g:30934:1: rule__IdentifierPattern__ParametersAssignment_0_3_0 : ( rulePattern ) ; + public final void rule__IdentifierPattern__ParametersAssignment_0_3_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30938:1: ( ( rulePattern ) ) + // InternalFiacre.g:30939:2: ( rulePattern ) + { + // InternalFiacre.g:30939:2: ( rulePattern ) + // InternalFiacre.g:30940:3: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__ParametersAssignment_0_3_0" + + + // $ANTLR start "rule__IdentifierPattern__ParametersAssignment_0_3_1_1" + // InternalFiacre.g:30949:1: rule__IdentifierPattern__ParametersAssignment_0_3_1_1 : ( rulePattern ) ; + public final void rule__IdentifierPattern__ParametersAssignment_0_3_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30953:1: ( ( rulePattern ) ) + // InternalFiacre.g:30954:2: ( rulePattern ) + { + // InternalFiacre.g:30954:2: ( rulePattern ) + // InternalFiacre.g:30955:3: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__ParametersAssignment_0_3_1_1" + + + // $ANTLR start "rule__IdentifierPattern__DeclarationAssignment_1_0" + // InternalFiacre.g:30964:1: rule__IdentifierPattern__DeclarationAssignment_1_0 : ( ( RULE_ID ) ) ; + public final void rule__IdentifierPattern__DeclarationAssignment_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30968:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:30969:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:30969:2: ( ( RULE_ID ) ) + // InternalFiacre.g:30970:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_1_0_0()); + } + // InternalFiacre.g:30971:3: ( RULE_ID ) + // InternalFiacre.g:30972:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseIDTerminalRuleCall_1_0_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseIDTerminalRuleCall_1_0_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__DeclarationAssignment_1_0" + + + // $ANTLR start "rule__IdentifierPattern__IndexAssignment_1_1_0_2" + // InternalFiacre.g:30983:1: rule__IdentifierPattern__IndexAssignment_1_1_0_2 : ( ruleExpression ) ; + public final void rule__IdentifierPattern__IndexAssignment_1_1_0_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:30987:1: ( ( ruleExpression ) ) + // InternalFiacre.g:30988:2: ( ruleExpression ) + { + // InternalFiacre.g:30988:2: ( ruleExpression ) + // InternalFiacre.g:30989:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getIndexExpressionParserRuleCall_1_1_0_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getIndexExpressionParserRuleCall_1_1_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__IndexAssignment_1_1_0_2" + + + // $ANTLR start "rule__IdentifierPattern__FieldAssignment_1_1_1_2" + // InternalFiacre.g:30998:1: rule__IdentifierPattern__FieldAssignment_1_1_1_2 : ( ( RULE_ID ) ) ; + public final void rule__IdentifierPattern__FieldAssignment_1_1_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31002:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:31003:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:31003:2: ( ( RULE_ID ) ) + // InternalFiacre.g:31004:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); + } + // InternalFiacre.g:31005:3: ( RULE_ID ) + // InternalFiacre.g:31006:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierPattern__FieldAssignment_1_1_1_2" + + + // $ANTLR start "rule__ConditionalStatement__ConditionAssignment_1" + // InternalFiacre.g:31017:1: rule__ConditionalStatement__ConditionAssignment_1 : ( ruleExpression ) ; + public final void rule__ConditionalStatement__ConditionAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31021:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31022:2: ( ruleExpression ) + { + // InternalFiacre.g:31022:2: ( ruleExpression ) + // InternalFiacre.g:31023:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__ConditionAssignment_1" + + + // $ANTLR start "rule__ConditionalStatement__ThenAssignment_3" + // InternalFiacre.g:31032:1: rule__ConditionalStatement__ThenAssignment_3 : ( ruleStatementSequence ) ; + public final void rule__ConditionalStatement__ThenAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31036:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:31037:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:31037:2: ( ruleStatementSequence ) + // InternalFiacre.g:31038:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__ThenAssignment_3" + + + // $ANTLR start "rule__ConditionalStatement__ElseifAssignment_4" + // InternalFiacre.g:31047:1: rule__ConditionalStatement__ElseifAssignment_4 : ( ruleExtendedConditionalStatement ) ; + public final void rule__ConditionalStatement__ElseifAssignment_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31051:1: ( ( ruleExtendedConditionalStatement ) ) + // InternalFiacre.g:31052:2: ( ruleExtendedConditionalStatement ) + { + // InternalFiacre.g:31052:2: ( ruleExtendedConditionalStatement ) + // InternalFiacre.g:31053:3: ruleExtendedConditionalStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getElseifExtendedConditionalStatementParserRuleCall_4_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExtendedConditionalStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getElseifExtendedConditionalStatementParserRuleCall_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__ElseifAssignment_4" + + + // $ANTLR start "rule__ConditionalStatement__ElseAssignment_5_1" + // InternalFiacre.g:31062:1: rule__ConditionalStatement__ElseAssignment_5_1 : ( ruleStatementSequence ) ; + public final void rule__ConditionalStatement__ElseAssignment_5_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31066:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:31067:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:31067:2: ( ruleStatementSequence ) + // InternalFiacre.g:31068:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalStatementAccess().getElseStatementSequenceParserRuleCall_5_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalStatementAccess().getElseStatementSequenceParserRuleCall_5_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ConditionalStatement__ElseAssignment_5_1" + + + // $ANTLR start "rule__ExtendedConditionalStatement__ConditionAssignment_1" + // InternalFiacre.g:31077:1: rule__ExtendedConditionalStatement__ConditionAssignment_1 : ( ruleExpression ) ; + public final void rule__ExtendedConditionalStatement__ConditionAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31081:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31082:2: ( ruleExpression ) + { + // InternalFiacre.g:31082:2: ( ruleExpression ) + // InternalFiacre.g:31083:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getExtendedConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getExtendedConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ExtendedConditionalStatement__ConditionAssignment_1" + + + // $ANTLR start "rule__ExtendedConditionalStatement__ThenAssignment_3" + // InternalFiacre.g:31092:1: rule__ExtendedConditionalStatement__ThenAssignment_3 : ( ruleStatementSequence ) ; + public final void rule__ExtendedConditionalStatement__ThenAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31096:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:31097:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:31097:2: ( ruleStatementSequence ) + // InternalFiacre.g:31098:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getExtendedConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getExtendedConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ExtendedConditionalStatement__ThenAssignment_3" + + + // $ANTLR start "rule__SelectStatement__BodyAssignment_1" + // InternalFiacre.g:31107:1: rule__SelectStatement__BodyAssignment_1 : ( ruleUnlessStatement ) ; + public final void rule__SelectStatement__BodyAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31111:1: ( ( ruleUnlessStatement ) ) + // InternalFiacre.g:31112:2: ( ruleUnlessStatement ) + { + // InternalFiacre.g:31112:2: ( ruleUnlessStatement ) + // InternalFiacre.g:31113:3: ruleUnlessStatement + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getBodyUnlessStatementParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUnlessStatement(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getBodyUnlessStatementParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__BodyAssignment_1" + + + // $ANTLR start "rule__SelectStatement__IndexAssignment_2_1" + // InternalFiacre.g:31122:1: rule__SelectStatement__IndexAssignment_2_1 : ( ruleVariableDeclaration ) ; + public final void rule__SelectStatement__IndexAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31126:1: ( ( ruleVariableDeclaration ) ) + // InternalFiacre.g:31127:2: ( ruleVariableDeclaration ) + { + // InternalFiacre.g:31127:2: ( ruleVariableDeclaration ) + // InternalFiacre.g:31128:3: ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getIndexVariableDeclarationParserRuleCall_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getIndexVariableDeclarationParserRuleCall_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__IndexAssignment_2_1" + + + // $ANTLR start "rule__SelectStatement__TypeAssignment_2_3" + // InternalFiacre.g:31137:1: rule__SelectStatement__TypeAssignment_2_3 : ( ruleRangeType ) ; + public final void rule__SelectStatement__TypeAssignment_2_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31141:1: ( ( ruleRangeType ) ) + // InternalFiacre.g:31142:2: ( ruleRangeType ) + { + // InternalFiacre.g:31142:2: ( ruleRangeType ) + // InternalFiacre.g:31143:3: ruleRangeType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSelectStatementAccess().getTypeRangeTypeParserRuleCall_2_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRangeType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSelectStatementAccess().getTypeRangeTypeParserRuleCall_2_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SelectStatement__TypeAssignment_2_3" + + + // $ANTLR start "rule__WhileStatement__ConditionAssignment_1" + // InternalFiacre.g:31152:1: rule__WhileStatement__ConditionAssignment_1 : ( ruleExpression ) ; + public final void rule__WhileStatement__ConditionAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31156:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31157:2: ( ruleExpression ) + { + // InternalFiacre.g:31157:2: ( ruleExpression ) + // InternalFiacre.g:31158:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWhileStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWhileStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__ConditionAssignment_1" + + + // $ANTLR start "rule__WhileStatement__BodyAssignment_3" + // InternalFiacre.g:31167:1: rule__WhileStatement__BodyAssignment_3 : ( ruleStatementSequence ) ; + public final void rule__WhileStatement__BodyAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31171:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:31172:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:31172:2: ( ruleStatementSequence ) + // InternalFiacre.g:31173:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWhileStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWhileStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WhileStatement__BodyAssignment_3" + + + // $ANTLR start "rule__ForeachStatement__VariableAssignment_1" + // InternalFiacre.g:31182:1: rule__ForeachStatement__VariableAssignment_1 : ( ruleVariableDeclaration ) ; + public final void rule__ForeachStatement__VariableAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31186:1: ( ( ruleVariableDeclaration ) ) + // InternalFiacre.g:31187:2: ( ruleVariableDeclaration ) + { + // InternalFiacre.g:31187:2: ( ruleVariableDeclaration ) + // InternalFiacre.g:31188:3: ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getForeachStatementAccess().getVariableVariableDeclarationParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getForeachStatementAccess().getVariableVariableDeclarationParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__VariableAssignment_1" + + + // $ANTLR start "rule__ForeachStatement__BodyAssignment_3" + // InternalFiacre.g:31197:1: rule__ForeachStatement__BodyAssignment_3 : ( ruleStatementSequence ) ; + public final void rule__ForeachStatement__BodyAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31201:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:31202:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:31202:2: ( ruleStatementSequence ) + // InternalFiacre.g:31203:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getForeachStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getForeachStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ForeachStatement__BodyAssignment_3" + + + // $ANTLR start "rule__ToStatement__StateAssignment_1" + // InternalFiacre.g:31212:1: rule__ToStatement__StateAssignment_1 : ( ( RULE_ID ) ) ; + public final void rule__ToStatement__StateAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31216:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:31217:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:31217:2: ( ( RULE_ID ) ) + // InternalFiacre.g:31218:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getToStatementAccess().getStateStateDeclarationCrossReference_1_0()); + } + // InternalFiacre.g:31219:3: ( RULE_ID ) + // InternalFiacre.g:31220:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getToStatementAccess().getStateStateDeclarationIDTerminalRuleCall_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getToStatementAccess().getStateStateDeclarationIDTerminalRuleCall_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getToStatementAccess().getStateStateDeclarationCrossReference_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ToStatement__StateAssignment_1" + + + // $ANTLR start "rule__CaseStatement__ValueAssignment_1" + // InternalFiacre.g:31231:1: rule__CaseStatement__ValueAssignment_1 : ( ruleExpression ) ; + public final void rule__CaseStatement__ValueAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31235:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31236:2: ( ruleExpression ) + { + // InternalFiacre.g:31236:2: ( ruleExpression ) + // InternalFiacre.g:31237:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getValueExpressionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getValueExpressionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__ValueAssignment_1" + + + // $ANTLR start "rule__CaseStatement__PatternAssignment_3" + // InternalFiacre.g:31246:1: rule__CaseStatement__PatternAssignment_3 : ( rulePattern ) ; + public final void rule__CaseStatement__PatternAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31250:1: ( ( rulePattern ) ) + // InternalFiacre.g:31251:2: ( rulePattern ) + { + // InternalFiacre.g:31251:2: ( rulePattern ) + // InternalFiacre.g:31252:3: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__PatternAssignment_3" + + + // $ANTLR start "rule__CaseStatement__BodyAssignment_5" + // InternalFiacre.g:31261:1: rule__CaseStatement__BodyAssignment_5 : ( ruleStatementSequence ) ; + public final void rule__CaseStatement__BodyAssignment_5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31265:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:31266:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:31266:2: ( ruleStatementSequence ) + // InternalFiacre.g:31267:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_5_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__BodyAssignment_5" + + + // $ANTLR start "rule__CaseStatement__PatternAssignment_6_1" + // InternalFiacre.g:31276:1: rule__CaseStatement__PatternAssignment_6_1 : ( rulePattern ) ; + public final void rule__CaseStatement__PatternAssignment_6_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31280:1: ( ( rulePattern ) ) + // InternalFiacre.g:31281:2: ( rulePattern ) + { + // InternalFiacre.g:31281:2: ( rulePattern ) + // InternalFiacre.g:31282:3: rulePattern + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_6_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePattern(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_6_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__PatternAssignment_6_1" + + + // $ANTLR start "rule__CaseStatement__BodyAssignment_6_3" + // InternalFiacre.g:31291:1: rule__CaseStatement__BodyAssignment_6_3 : ( ruleStatementSequence ) ; + public final void rule__CaseStatement__BodyAssignment_6_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31295:1: ( ( ruleStatementSequence ) ) + // InternalFiacre.g:31296:2: ( ruleStatementSequence ) + { + // InternalFiacre.g:31296:2: ( ruleStatementSequence ) + // InternalFiacre.g:31297:3: ruleStatementSequence + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_6_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleStatementSequence(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_6_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CaseStatement__BodyAssignment_6_3" + + + // $ANTLR start "rule__OnStatement__ConditionAssignment_1" + // InternalFiacre.g:31306:1: rule__OnStatement__ConditionAssignment_1 : ( ruleExpression ) ; + public final void rule__OnStatement__ConditionAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31310:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31311:2: ( ruleExpression ) + { + // InternalFiacre.g:31311:2: ( ruleExpression ) + // InternalFiacre.g:31312:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getOnStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getOnStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__OnStatement__ConditionAssignment_1" + + + // $ANTLR start "rule__WaitStatement__LeftAssignment_1" + // InternalFiacre.g:31321:1: rule__WaitStatement__LeftAssignment_1 : ( ruleLowerBound ) ; + public final void rule__WaitStatement__LeftAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31325:1: ( ( ruleLowerBound ) ) + // InternalFiacre.g:31326:2: ( ruleLowerBound ) + { + // InternalFiacre.g:31326:2: ( ruleLowerBound ) + // InternalFiacre.g:31327:3: ruleLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWaitStatementAccess().getLeftLowerBoundParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWaitStatementAccess().getLeftLowerBoundParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WaitStatement__LeftAssignment_1" + + + // $ANTLR start "rule__WaitStatement__RightAssignment_3" + // InternalFiacre.g:31336:1: rule__WaitStatement__RightAssignment_3 : ( ruleUpperBound ) ; + public final void rule__WaitStatement__RightAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31340:1: ( ( ruleUpperBound ) ) + // InternalFiacre.g:31341:2: ( ruleUpperBound ) + { + // InternalFiacre.g:31341:2: ( ruleUpperBound ) + // InternalFiacre.g:31342:3: ruleUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getWaitStatementAccess().getRightUpperBoundParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getWaitStatementAccess().getRightUpperBoundParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__WaitStatement__RightAssignment_3" + + + // $ANTLR start "rule__Composition__GlobalAssignment_1_0" + // InternalFiacre.g:31351:1: rule__Composition__GlobalAssignment_1_0 : ( rulePortSet ) ; + public final void rule__Composition__GlobalAssignment_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31355:1: ( ( rulePortSet ) ) + // InternalFiacre.g:31356:2: ( rulePortSet ) + { + // InternalFiacre.g:31356:2: ( rulePortSet ) + // InternalFiacre.g:31357:3: rulePortSet + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getGlobalPortSetParserRuleCall_1_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortSet(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getGlobalPortSetParserRuleCall_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__GlobalAssignment_1_0" + + + // $ANTLR start "rule__Composition__BlocksAssignment_2" + // InternalFiacre.g:31366:1: rule__Composition__BlocksAssignment_2 : ( ruleBlock ) ; + public final void rule__Composition__BlocksAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31370:1: ( ( ruleBlock ) ) + // InternalFiacre.g:31371:2: ( ruleBlock ) + { + // InternalFiacre.g:31371:2: ( ruleBlock ) + // InternalFiacre.g:31372:3: ruleBlock + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleBlock(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__BlocksAssignment_2" + + + // $ANTLR start "rule__Composition__BlocksAssignment_3_1" + // InternalFiacre.g:31381:1: rule__Composition__BlocksAssignment_3_1 : ( ruleBlock ) ; + public final void rule__Composition__BlocksAssignment_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31385:1: ( ( ruleBlock ) ) + // InternalFiacre.g:31386:2: ( ruleBlock ) + { + // InternalFiacre.g:31386:2: ( ruleBlock ) + // InternalFiacre.g:31387:3: ruleBlock + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleBlock(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Composition__BlocksAssignment_3_1" + + + // $ANTLR start "rule__CompositeBlock__LocalAssignment_0_0_0" + // InternalFiacre.g:31396:1: rule__CompositeBlock__LocalAssignment_0_0_0 : ( rulePortSet ) ; + public final void rule__CompositeBlock__LocalAssignment_0_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31400:1: ( ( rulePortSet ) ) + // InternalFiacre.g:31401:2: ( rulePortSet ) + { + // InternalFiacre.g:31401:2: ( rulePortSet ) + // InternalFiacre.g:31402:3: rulePortSet + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositeBlockAccess().getLocalPortSetParserRuleCall_0_0_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortSet(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositeBlockAccess().getLocalPortSetParserRuleCall_0_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompositeBlock__LocalAssignment_0_0_0" + + + // $ANTLR start "rule__CompositeBlock__CompositionAssignment_1" + // InternalFiacre.g:31411:1: rule__CompositeBlock__CompositionAssignment_1 : ( ruleComposition ) ; + public final void rule__CompositeBlock__CompositionAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31415:1: ( ( ruleComposition ) ) + // InternalFiacre.g:31416:2: ( ruleComposition ) + { + // InternalFiacre.g:31416:2: ( ruleComposition ) + // InternalFiacre.g:31417:3: ruleComposition + { + if ( state.backtracking==0 ) { + before(grammarAccess.getCompositeBlockAccess().getCompositionCompositionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleComposition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getCompositeBlockAccess().getCompositionCompositionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompositeBlock__CompositionAssignment_1" + + + // $ANTLR start "rule__InstanceDeclaration__LocalAssignment_0_0_0" + // InternalFiacre.g:31426:1: rule__InstanceDeclaration__LocalAssignment_0_0_0 : ( rulePortSet ) ; + public final void rule__InstanceDeclaration__LocalAssignment_0_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31430:1: ( ( rulePortSet ) ) + // InternalFiacre.g:31431:2: ( rulePortSet ) + { + // InternalFiacre.g:31431:2: ( rulePortSet ) + // InternalFiacre.g:31432:3: rulePortSet + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInstanceDeclarationAccess().getLocalPortSetParserRuleCall_0_0_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePortSet(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInstanceDeclarationAccess().getLocalPortSetParserRuleCall_0_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InstanceDeclaration__LocalAssignment_0_0_0" + + + // $ANTLR start "rule__InstanceDeclaration__InstanceAssignment_1" + // InternalFiacre.g:31441:1: rule__InstanceDeclaration__InstanceAssignment_1 : ( ruleComponentInstance ) ; + public final void rule__InstanceDeclaration__InstanceAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31445:1: ( ( ruleComponentInstance ) ) + // InternalFiacre.g:31446:2: ( ruleComponentInstance ) + { + // InternalFiacre.g:31446:2: ( ruleComponentInstance ) + // InternalFiacre.g:31447:3: ruleComponentInstance + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInstanceDeclarationAccess().getInstanceComponentInstanceParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleComponentInstance(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInstanceDeclarationAccess().getInstanceComponentInstanceParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InstanceDeclaration__InstanceAssignment_1" + + + // $ANTLR start "rule__PortSet__AllPortsAssignment_0" + // InternalFiacre.g:31456:1: rule__PortSet__AllPortsAssignment_0 : ( ( '*' ) ) ; + public final void rule__PortSet__AllPortsAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31460:1: ( ( ( '*' ) ) ) + // InternalFiacre.g:31461:2: ( ( '*' ) ) + { + // InternalFiacre.g:31461:2: ( ( '*' ) ) + // InternalFiacre.g:31462:3: ( '*' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getAllPortsAsteriskKeyword_0_0()); + } + // InternalFiacre.g:31463:3: ( '*' ) + // InternalFiacre.g:31464:4: '*' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getAllPortsAsteriskKeyword_0_0()); + } + match(input,88,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getAllPortsAsteriskKeyword_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getAllPortsAsteriskKeyword_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortSet__AllPortsAssignment_0" + + + // $ANTLR start "rule__PortSet__PortsAssignment_1_0" + // InternalFiacre.g:31475:1: rule__PortSet__PortsAssignment_1_0 : ( ruleExpression ) ; + public final void rule__PortSet__PortsAssignment_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31479:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31480:2: ( ruleExpression ) + { + // InternalFiacre.g:31480:2: ( ruleExpression ) + // InternalFiacre.g:31481:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortSet__PortsAssignment_1_0" + + + // $ANTLR start "rule__PortSet__PortsAssignment_1_1_1" + // InternalFiacre.g:31490:1: rule__PortSet__PortsAssignment_1_1_1 : ( ruleExpression ) ; + public final void rule__PortSet__PortsAssignment_1_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31494:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31495:2: ( ruleExpression ) + { + // InternalFiacre.g:31495:2: ( ruleExpression ) + // InternalFiacre.g:31496:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PortSet__PortsAssignment_1_1_1" + + + // $ANTLR start "rule__ComponentInstance__ComponentAssignment_0" + // InternalFiacre.g:31505:1: rule__ComponentInstance__ComponentAssignment_0 : ( ( RULE_ID ) ) ; + public final void rule__ComponentInstance__ComponentAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31509:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:31510:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:31510:2: ( ( RULE_ID ) ) + // InternalFiacre.g:31511:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getComponentParameterizedDeclarationCrossReference_0_0()); + } + // InternalFiacre.g:31512:3: ( RULE_ID ) + // InternalFiacre.g:31513:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getComponentParameterizedDeclarationIDTerminalRuleCall_0_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getComponentParameterizedDeclarationIDTerminalRuleCall_0_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getComponentParameterizedDeclarationCrossReference_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__ComponentAssignment_0" + + + // $ANTLR start "rule__ComponentInstance__PortsAssignment_1_1" + // InternalFiacre.g:31524:1: rule__ComponentInstance__PortsAssignment_1_1 : ( ruleExpression ) ; + public final void rule__ComponentInstance__PortsAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31528:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31529:2: ( ruleExpression ) + { + // InternalFiacre.g:31529:2: ( ruleExpression ) + // InternalFiacre.g:31530:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__PortsAssignment_1_1" + + + // $ANTLR start "rule__ComponentInstance__PortsAssignment_1_2_1" + // InternalFiacre.g:31539:1: rule__ComponentInstance__PortsAssignment_1_2_1 : ( ruleExpression ) ; + public final void rule__ComponentInstance__PortsAssignment_1_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31543:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31544:2: ( ruleExpression ) + { + // InternalFiacre.g:31544:2: ( ruleExpression ) + // InternalFiacre.g:31545:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__PortsAssignment_1_2_1" + + + // $ANTLR start "rule__ComponentInstance__ParametersAssignment_2_1" + // InternalFiacre.g:31554:1: rule__ComponentInstance__ParametersAssignment_2_1 : ( ruleExpression ) ; + public final void rule__ComponentInstance__ParametersAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31558:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31559:2: ( ruleExpression ) + { + // InternalFiacre.g:31559:2: ( ruleExpression ) + // InternalFiacre.g:31560:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__ParametersAssignment_2_1" + + + // $ANTLR start "rule__ComponentInstance__ParametersAssignment_2_2_1" + // InternalFiacre.g:31569:1: rule__ComponentInstance__ParametersAssignment_2_2_1 : ( ruleExpression ) ; + public final void rule__ComponentInstance__ParametersAssignment_2_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31573:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31574:2: ( ruleExpression ) + { + // InternalFiacre.g:31574:2: ( ruleExpression ) + // InternalFiacre.g:31575:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ComponentInstance__ParametersAssignment_2_2_1" + + + // $ANTLR start "rule__QuantifiedExpression__IndexAssignment_0_1" + // InternalFiacre.g:31584:1: rule__QuantifiedExpression__IndexAssignment_0_1 : ( ruleVariableDeclaration ) ; + public final void rule__QuantifiedExpression__IndexAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31588:1: ( ( ruleVariableDeclaration ) ) + // InternalFiacre.g:31589:2: ( ruleVariableDeclaration ) + { + // InternalFiacre.g:31589:2: ( ruleVariableDeclaration ) + // InternalFiacre.g:31590:3: ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__IndexAssignment_0_1" + + + // $ANTLR start "rule__QuantifiedExpression__TypeAssignment_0_2_1" + // InternalFiacre.g:31599:1: rule__QuantifiedExpression__TypeAssignment_0_2_1 : ( ruleRangeType ) ; + public final void rule__QuantifiedExpression__TypeAssignment_0_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31603:1: ( ( ruleRangeType ) ) + // InternalFiacre.g:31604:2: ( ruleRangeType ) + { + // InternalFiacre.g:31604:2: ( ruleRangeType ) + // InternalFiacre.g:31605:3: ruleRangeType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getTypeRangeTypeParserRuleCall_0_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRangeType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getTypeRangeTypeParserRuleCall_0_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__TypeAssignment_0_2_1" + + + // $ANTLR start "rule__QuantifiedExpression__ChildAssignment_0_4" + // InternalFiacre.g:31614:1: rule__QuantifiedExpression__ChildAssignment_0_4 : ( ruleQuantifiedExpression ) ; + public final void rule__QuantifiedExpression__ChildAssignment_0_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31618:1: ( ( ruleQuantifiedExpression ) ) + // InternalFiacre.g:31619:2: ( ruleQuantifiedExpression ) + { + // InternalFiacre.g:31619:2: ( ruleQuantifiedExpression ) + // InternalFiacre.g:31620:3: ruleQuantifiedExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedExpressionAccess().getChildQuantifiedExpressionParserRuleCall_0_4_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleQuantifiedExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedExpressionAccess().getChildQuantifiedExpressionParserRuleCall_0_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedExpression__ChildAssignment_0_4" + + + // $ANTLR start "rule__Conditional__ThenAssignment_1_2" + // InternalFiacre.g:31629:1: rule__Conditional__ThenAssignment_1_2 : ( ruleDisjunction ) ; + public final void rule__Conditional__ThenAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31633:1: ( ( ruleDisjunction ) ) + // InternalFiacre.g:31634:2: ( ruleDisjunction ) + { + // InternalFiacre.g:31634:2: ( ruleDisjunction ) + // InternalFiacre.g:31635:3: ruleDisjunction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalAccess().getThenDisjunctionParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleDisjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalAccess().getThenDisjunctionParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__ThenAssignment_1_2" + + + // $ANTLR start "rule__Conditional__ElseAssignment_1_4" + // InternalFiacre.g:31644:1: rule__Conditional__ElseAssignment_1_4 : ( ruleDisjunction ) ; + public final void rule__Conditional__ElseAssignment_1_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31648:1: ( ( ruleDisjunction ) ) + // InternalFiacre.g:31649:2: ( ruleDisjunction ) + { + // InternalFiacre.g:31649:2: ( ruleDisjunction ) + // InternalFiacre.g:31650:3: ruleDisjunction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConditionalAccess().getElseDisjunctionParserRuleCall_1_4_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleDisjunction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConditionalAccess().getElseDisjunctionParserRuleCall_1_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conditional__ElseAssignment_1_4" + + + // $ANTLR start "rule__Disjunction__RightAssignment_1_2" + // InternalFiacre.g:31659:1: rule__Disjunction__RightAssignment_1_2 : ( ruleImplication ) ; + public final void rule__Disjunction__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31663:1: ( ( ruleImplication ) ) + // InternalFiacre.g:31664:2: ( ruleImplication ) + { + // InternalFiacre.g:31664:2: ( ruleImplication ) + // InternalFiacre.g:31665:3: ruleImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDisjunctionAccess().getRightImplicationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDisjunctionAccess().getRightImplicationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Disjunction__RightAssignment_1_2" + + + // $ANTLR start "rule__Implication__RightAssignment_1_2" + // InternalFiacre.g:31674:1: rule__Implication__RightAssignment_1_2 : ( ruleImplication ) ; + public final void rule__Implication__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31678:1: ( ( ruleImplication ) ) + // InternalFiacre.g:31679:2: ( ruleImplication ) + { + // InternalFiacre.g:31679:2: ( ruleImplication ) + // InternalFiacre.g:31680:3: ruleImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getImplicationAccess().getRightImplicationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getImplicationAccess().getRightImplicationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Implication__RightAssignment_1_2" + + + // $ANTLR start "rule__Conjunction__RightAssignment_1_2" + // InternalFiacre.g:31689:1: rule__Conjunction__RightAssignment_1_2 : ( ruleComparison ) ; + public final void rule__Conjunction__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31693:1: ( ( ruleComparison ) ) + // InternalFiacre.g:31694:2: ( ruleComparison ) + { + // InternalFiacre.g:31694:2: ( ruleComparison ) + // InternalFiacre.g:31695:3: ruleComparison + { + if ( state.backtracking==0 ) { + before(grammarAccess.getConjunctionAccess().getRightComparisonParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleComparison(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getConjunctionAccess().getRightComparisonParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Conjunction__RightAssignment_1_2" + + + // $ANTLR start "rule__Comparison__RightAssignment_1_1" + // InternalFiacre.g:31704:1: rule__Comparison__RightAssignment_1_1 : ( ruleAddition ) ; + public final void rule__Comparison__RightAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31708:1: ( ( ruleAddition ) ) + // InternalFiacre.g:31709:2: ( ruleAddition ) + { + // InternalFiacre.g:31709:2: ( ruleAddition ) + // InternalFiacre.g:31710:3: ruleAddition + { + if ( state.backtracking==0 ) { + before(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAddition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Comparison__RightAssignment_1_1" + + + // $ANTLR start "rule__Addition__RightAssignment_1_2" + // InternalFiacre.g:31719:1: rule__Addition__RightAssignment_1_2 : ( ruleSubstraction ) ; + public final void rule__Addition__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31723:1: ( ( ruleSubstraction ) ) + // InternalFiacre.g:31724:2: ( ruleSubstraction ) + { + // InternalFiacre.g:31724:2: ( ruleSubstraction ) + // InternalFiacre.g:31725:3: ruleSubstraction + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAdditionAccess().getRightSubstractionParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleSubstraction(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAdditionAccess().getRightSubstractionParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__RightAssignment_1_2" + + + // $ANTLR start "rule__Substraction__RightAssignment_1_2" + // InternalFiacre.g:31734:1: rule__Substraction__RightAssignment_1_2 : ( ruleMultiplication ) ; + public final void rule__Substraction__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31738:1: ( ( ruleMultiplication ) ) + // InternalFiacre.g:31739:2: ( ruleMultiplication ) + { + // InternalFiacre.g:31739:2: ( ruleMultiplication ) + // InternalFiacre.g:31740:3: ruleMultiplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSubstractionAccess().getRightMultiplicationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleMultiplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSubstractionAccess().getRightMultiplicationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Substraction__RightAssignment_1_2" + + + // $ANTLR start "rule__Multiplication__RightAssignment_1_2" + // InternalFiacre.g:31749:1: rule__Multiplication__RightAssignment_1_2 : ( ruleDivision ) ; + public final void rule__Multiplication__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31753:1: ( ( ruleDivision ) ) + // InternalFiacre.g:31754:2: ( ruleDivision ) + { + // InternalFiacre.g:31754:2: ( ruleDivision ) + // InternalFiacre.g:31755:3: ruleDivision + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMultiplicationAccess().getRightDivisionParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleDivision(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getMultiplicationAccess().getRightDivisionParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__RightAssignment_1_2" + + + // $ANTLR start "rule__Division__RightAssignment_1_2" + // InternalFiacre.g:31764:1: rule__Division__RightAssignment_1_2 : ( ruleModulo ) ; + public final void rule__Division__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31768:1: ( ( ruleModulo ) ) + // InternalFiacre.g:31769:2: ( ruleModulo ) + { + // InternalFiacre.g:31769:2: ( ruleModulo ) + // InternalFiacre.g:31770:3: ruleModulo + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDivisionAccess().getRightModuloParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleModulo(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDivisionAccess().getRightModuloParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Division__RightAssignment_1_2" + + + // $ANTLR start "rule__Modulo__RightAssignment_1_2" + // InternalFiacre.g:31779:1: rule__Modulo__RightAssignment_1_2 : ( ruleUnaryExpression ) ; + public final void rule__Modulo__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31783:1: ( ( ruleUnaryExpression ) ) + // InternalFiacre.g:31784:2: ( ruleUnaryExpression ) + { + // InternalFiacre.g:31784:2: ( ruleUnaryExpression ) + // InternalFiacre.g:31785:3: ruleUnaryExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getModuloAccess().getRightUnaryExpressionParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUnaryExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getModuloAccess().getRightUnaryExpressionParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Modulo__RightAssignment_1_2" + + + // $ANTLR start "rule__UnaryExpression__ChildAssignment_0_1" + // InternalFiacre.g:31794:1: rule__UnaryExpression__ChildAssignment_0_1 : ( ruleUnaryExpression ) ; + public final void rule__UnaryExpression__ChildAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31798:1: ( ( ruleUnaryExpression ) ) + // InternalFiacre.g:31799:2: ( ruleUnaryExpression ) + { + // InternalFiacre.g:31799:2: ( ruleUnaryExpression ) + // InternalFiacre.g:31800:3: ruleUnaryExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUnaryExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__UnaryExpression__ChildAssignment_0_1" + + + // $ANTLR start "rule__Projection__FieldAssignment_1_2" + // InternalFiacre.g:31809:1: rule__Projection__FieldAssignment_1_2 : ( ruleAtomicExpression ) ; + public final void rule__Projection__FieldAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31813:1: ( ( ruleAtomicExpression ) ) + // InternalFiacre.g:31814:2: ( ruleAtomicExpression ) + { + // InternalFiacre.g:31814:2: ( ruleAtomicExpression ) + // InternalFiacre.g:31815:3: ruleAtomicExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getProjectionAccess().getFieldAtomicExpressionParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getProjectionAccess().getFieldAtomicExpressionParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Projection__FieldAssignment_1_2" + + + // $ANTLR start "rule__ReferenceExpression__DeclarationAssignment_1" + // InternalFiacre.g:31824:1: rule__ReferenceExpression__DeclarationAssignment_1 : ( ( RULE_ID ) ) ; + public final void rule__ReferenceExpression__DeclarationAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31828:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:31829:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:31829:2: ( ( RULE_ID ) ) + // InternalFiacre.g:31830:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseCrossReference_1_0()); + } + // InternalFiacre.g:31831:3: ( RULE_ID ) + // InternalFiacre.g:31832:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseIDTerminalRuleCall_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseIDTerminalRuleCall_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseCrossReference_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReferenceExpression__DeclarationAssignment_1" + + + // $ANTLR start "rule__IdentifierExpression__DeclarationAssignment_0_1" + // InternalFiacre.g:31843:1: rule__IdentifierExpression__DeclarationAssignment_0_1 : ( ( RULE_ID ) ) ; + public final void rule__IdentifierExpression__DeclarationAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31847:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:31848:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:31848:2: ( ( RULE_ID ) ) + // InternalFiacre.g:31849:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_0_1_0()); + } + // InternalFiacre.g:31850:3: ( RULE_ID ) + // InternalFiacre.g:31851:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseIDTerminalRuleCall_0_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseIDTerminalRuleCall_0_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__DeclarationAssignment_0_1" + + + // $ANTLR start "rule__IdentifierExpression__ParametersAssignment_0_3_0" + // InternalFiacre.g:31862:1: rule__IdentifierExpression__ParametersAssignment_0_3_0 : ( ruleExpression ) ; + public final void rule__IdentifierExpression__ParametersAssignment_0_3_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31866:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31867:2: ( ruleExpression ) + { + // InternalFiacre.g:31867:2: ( ruleExpression ) + // InternalFiacre.g:31868:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__ParametersAssignment_0_3_0" + + + // $ANTLR start "rule__IdentifierExpression__ParametersAssignment_0_3_1_1" + // InternalFiacre.g:31877:1: rule__IdentifierExpression__ParametersAssignment_0_3_1_1 : ( ruleExpression ) ; + public final void rule__IdentifierExpression__ParametersAssignment_0_3_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31881:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31882:2: ( ruleExpression ) + { + // InternalFiacre.g:31882:2: ( ruleExpression ) + // InternalFiacre.g:31883:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__ParametersAssignment_0_3_1_1" + + + // $ANTLR start "rule__IdentifierExpression__DeclarationAssignment_1_0" + // InternalFiacre.g:31892:1: rule__IdentifierExpression__DeclarationAssignment_1_0 : ( ( RULE_ID ) ) ; + public final void rule__IdentifierExpression__DeclarationAssignment_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31896:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:31897:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:31897:2: ( ( RULE_ID ) ) + // InternalFiacre.g:31898:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_1_0_0()); + } + // InternalFiacre.g:31899:3: ( RULE_ID ) + // InternalFiacre.g:31900:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseIDTerminalRuleCall_1_0_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseIDTerminalRuleCall_1_0_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__DeclarationAssignment_1_0" + + + // $ANTLR start "rule__IdentifierExpression__IndexesAssignment_1_1_0_2" + // InternalFiacre.g:31911:1: rule__IdentifierExpression__IndexesAssignment_1_1_0_2 : ( ruleExpression ) ; + public final void rule__IdentifierExpression__IndexesAssignment_1_1_0_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31915:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31916:2: ( ruleExpression ) + { + // InternalFiacre.g:31916:2: ( ruleExpression ) + // InternalFiacre.g:31917:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__IndexesAssignment_1_1_0_2" + + + // $ANTLR start "rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1" + // InternalFiacre.g:31926:1: rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1 : ( ruleExpression ) ; + public final void rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31930:1: ( ( ruleExpression ) ) + // InternalFiacre.g:31931:2: ( ruleExpression ) + { + // InternalFiacre.g:31931:2: ( ruleExpression ) + // InternalFiacre.g:31932:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__IndexesAssignment_1_1_0_3_1" + + + // $ANTLR start "rule__IdentifierExpression__FieldAssignment_1_1_1_2" + // InternalFiacre.g:31941:1: rule__IdentifierExpression__FieldAssignment_1_1_1_2 : ( ( RULE_ID ) ) ; + public final void rule__IdentifierExpression__FieldAssignment_1_1_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31945:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:31946:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:31946:2: ( ( RULE_ID ) ) + // InternalFiacre.g:31947:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); + } + // InternalFiacre.g:31948:3: ( RULE_ID ) + // InternalFiacre.g:31949:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__IdentifierExpression__FieldAssignment_1_1_1_2" + + + // $ANTLR start "rule__RecordExpression__FieldsAssignment_1" + // InternalFiacre.g:31960:1: rule__RecordExpression__FieldsAssignment_1 : ( ruleFieldExpression ) ; + public final void rule__RecordExpression__FieldsAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31964:1: ( ( ruleFieldExpression ) ) + // InternalFiacre.g:31965:2: ( ruleFieldExpression ) + { + // InternalFiacre.g:31965:2: ( ruleFieldExpression ) + // InternalFiacre.g:31966:3: ruleFieldExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleFieldExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__FieldsAssignment_1" + + + // $ANTLR start "rule__RecordExpression__FieldsAssignment_2_1" + // InternalFiacre.g:31975:1: rule__RecordExpression__FieldsAssignment_2_1 : ( ruleFieldExpression ) ; + public final void rule__RecordExpression__FieldsAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31979:1: ( ( ruleFieldExpression ) ) + // InternalFiacre.g:31980:2: ( ruleFieldExpression ) + { + // InternalFiacre.g:31980:2: ( ruleFieldExpression ) + // InternalFiacre.g:31981:3: ruleFieldExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleFieldExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__RecordExpression__FieldsAssignment_2_1" + + + // $ANTLR start "rule__FieldExpression__FieldAssignment_0" + // InternalFiacre.g:31990:1: rule__FieldExpression__FieldAssignment_0 : ( ( RULE_ID ) ) ; + public final void rule__FieldExpression__FieldAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:31994:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:31995:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:31995:2: ( ( RULE_ID ) ) + // InternalFiacre.g:31996:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseCrossReference_0_0()); + } + // InternalFiacre.g:31997:3: ( RULE_ID ) + // InternalFiacre.g:31998:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseIDTerminalRuleCall_0_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseIDTerminalRuleCall_0_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseCrossReference_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FieldExpression__FieldAssignment_0" + + + // $ANTLR start "rule__FieldExpression__ValueAssignment_2" + // InternalFiacre.g:32009:1: rule__FieldExpression__ValueAssignment_2 : ( ruleExpression ) ; + public final void rule__FieldExpression__ValueAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32013:1: ( ( ruleExpression ) ) + // InternalFiacre.g:32014:2: ( ruleExpression ) + { + // InternalFiacre.g:32014:2: ( ruleExpression ) + // InternalFiacre.g:32015:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getFieldExpressionAccess().getValueExpressionParserRuleCall_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getFieldExpressionAccess().getValueExpressionParserRuleCall_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FieldExpression__ValueAssignment_2" + + + // $ANTLR start "rule__ArrayExpression__ValuesAssignment_2_0" + // InternalFiacre.g:32024:1: rule__ArrayExpression__ValuesAssignment_2_0 : ( ruleExpression ) ; + public final void rule__ArrayExpression__ValuesAssignment_2_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32028:1: ( ( ruleExpression ) ) + // InternalFiacre.g:32029:2: ( ruleExpression ) + { + // InternalFiacre.g:32029:2: ( ruleExpression ) + // InternalFiacre.g:32030:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__ValuesAssignment_2_0" + + + // $ANTLR start "rule__ArrayExpression__ValuesAssignment_2_1_1" + // InternalFiacre.g:32039:1: rule__ArrayExpression__ValuesAssignment_2_1_1 : ( ruleExpression ) ; + public final void rule__ArrayExpression__ValuesAssignment_2_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32043:1: ( ( ruleExpression ) ) + // InternalFiacre.g:32044:2: ( ruleExpression ) + { + // InternalFiacre.g:32044:2: ( ruleExpression ) + // InternalFiacre.g:32045:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ArrayExpression__ValuesAssignment_2_1_1" + + + // $ANTLR start "rule__QueueExpression__ValuesAssignment_2_0" + // InternalFiacre.g:32054:1: rule__QueueExpression__ValuesAssignment_2_0 : ( ruleExpression ) ; + public final void rule__QueueExpression__ValuesAssignment_2_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32058:1: ( ( ruleExpression ) ) + // InternalFiacre.g:32059:2: ( ruleExpression ) + { + // InternalFiacre.g:32059:2: ( ruleExpression ) + // InternalFiacre.g:32060:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__ValuesAssignment_2_0" + + + // $ANTLR start "rule__QueueExpression__ValuesAssignment_2_1_1" + // InternalFiacre.g:32069:1: rule__QueueExpression__ValuesAssignment_2_1_1 : ( ruleExpression ) ; + public final void rule__QueueExpression__ValuesAssignment_2_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32073:1: ( ( ruleExpression ) ) + // InternalFiacre.g:32074:2: ( ruleExpression ) + { + // InternalFiacre.g:32074:2: ( ruleExpression ) + // InternalFiacre.g:32075:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QueueExpression__ValuesAssignment_2_1_1" + + + // $ANTLR start "rule__EnqueueExpression__ElementAssignment_2" + // InternalFiacre.g:32084:1: rule__EnqueueExpression__ElementAssignment_2 : ( ruleExpression ) ; + public final void rule__EnqueueExpression__ElementAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32088:1: ( ( ruleExpression ) ) + // InternalFiacre.g:32089:2: ( ruleExpression ) + { + // InternalFiacre.g:32089:2: ( ruleExpression ) + // InternalFiacre.g:32090:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnqueueExpressionAccess().getElementExpressionParserRuleCall_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEnqueueExpressionAccess().getElementExpressionParserRuleCall_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__ElementAssignment_2" + + + // $ANTLR start "rule__EnqueueExpression__QueueAssignment_4" + // InternalFiacre.g:32099:1: rule__EnqueueExpression__QueueAssignment_4 : ( ruleExpression ) ; + public final void rule__EnqueueExpression__QueueAssignment_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32103:1: ( ( ruleExpression ) ) + // InternalFiacre.g:32104:2: ( ruleExpression ) + { + // InternalFiacre.g:32104:2: ( ruleExpression ) + // InternalFiacre.g:32105:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnqueueExpressionAccess().getQueueExpressionParserRuleCall_4_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEnqueueExpressionAccess().getQueueExpressionParserRuleCall_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnqueueExpression__QueueAssignment_4" + + + // $ANTLR start "rule__AppendExpression__LeftAssignment_2" + // InternalFiacre.g:32114:1: rule__AppendExpression__LeftAssignment_2 : ( ruleExpression ) ; + public final void rule__AppendExpression__LeftAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32118:1: ( ( ruleExpression ) ) + // InternalFiacre.g:32119:2: ( ruleExpression ) + { + // InternalFiacre.g:32119:2: ( ruleExpression ) + // InternalFiacre.g:32120:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAppendExpressionAccess().getLeftExpressionParserRuleCall_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAppendExpressionAccess().getLeftExpressionParserRuleCall_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__LeftAssignment_2" + + + // $ANTLR start "rule__AppendExpression__RightAssignment_4" + // InternalFiacre.g:32129:1: rule__AppendExpression__RightAssignment_4 : ( ruleExpression ) ; + public final void rule__AppendExpression__RightAssignment_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32133:1: ( ( ruleExpression ) ) + // InternalFiacre.g:32134:2: ( ruleExpression ) + { + // InternalFiacre.g:32134:2: ( ruleExpression ) + // InternalFiacre.g:32135:3: ruleExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAppendExpressionAccess().getRightExpressionParserRuleCall_4_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAppendExpressionAccess().getRightExpressionParserRuleCall_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AppendExpression__RightAssignment_4" + + + // $ANTLR start "rule__NaturalLiteral__ValueAssignment" + // InternalFiacre.g:32144:1: rule__NaturalLiteral__ValueAssignment : ( RULE_INT ) ; + public final void rule__NaturalLiteral__ValueAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32148:1: ( ( RULE_INT ) ) + // InternalFiacre.g:32149:2: ( RULE_INT ) + { + // InternalFiacre.g:32149:2: ( RULE_INT ) + // InternalFiacre.g:32150:3: RULE_INT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLiteralAccess().getValueINTTerminalRuleCall_0()); + } + match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLiteralAccess().getValueINTTerminalRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalLiteral__ValueAssignment" + + + // $ANTLR start "rule__NaturalLowerBound__LeftAssignment_0_0" + // InternalFiacre.g:32159:1: rule__NaturalLowerBound__LeftAssignment_0_0 : ( ( '[' ) ) ; + public final void rule__NaturalLowerBound__LeftAssignment_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32163:1: ( ( ( '[' ) ) ) + // InternalFiacre.g:32164:2: ( ( '[' ) ) + { + // InternalFiacre.g:32164:2: ( ( '[' ) ) + // InternalFiacre.g:32165:3: ( '[' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + // InternalFiacre.g:32166:3: ( '[' ) + // InternalFiacre.g:32167:4: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalLowerBound__LeftAssignment_0_0" + + + // $ANTLR start "rule__NaturalLowerBound__RightAssignment_0_1" + // InternalFiacre.g:32178:1: rule__NaturalLowerBound__RightAssignment_0_1 : ( ( ']' ) ) ; + public final void rule__NaturalLowerBound__RightAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32182:1: ( ( ( ']' ) ) ) + // InternalFiacre.g:32183:2: ( ( ']' ) ) + { + // InternalFiacre.g:32183:2: ( ( ']' ) ) + // InternalFiacre.g:32184:3: ( ']' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + // InternalFiacre.g:32185:3: ( ']' ) + // InternalFiacre.g:32186:4: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalLowerBound__RightAssignment_0_1" + + + // $ANTLR start "rule__NaturalLowerBound__ValueAssignment_1" + // InternalFiacre.g:32197:1: rule__NaturalLowerBound__ValueAssignment_1 : ( RULE_INT ) ; + public final void rule__NaturalLowerBound__ValueAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32201:1: ( ( RULE_INT ) ) + // InternalFiacre.g:32202:2: ( RULE_INT ) + { + // InternalFiacre.g:32202:2: ( RULE_INT ) + // InternalFiacre.g:32203:3: RULE_INT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalLowerBoundAccess().getValueINTTerminalRuleCall_1_0()); + } + match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalLowerBoundAccess().getValueINTTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalLowerBound__ValueAssignment_1" + + + // $ANTLR start "rule__NaturalUpperBound__ValueAssignment_0" + // InternalFiacre.g:32212:1: rule__NaturalUpperBound__ValueAssignment_0 : ( RULE_INT ) ; + public final void rule__NaturalUpperBound__ValueAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32216:1: ( ( RULE_INT ) ) + // InternalFiacre.g:32217:2: ( RULE_INT ) + { + // InternalFiacre.g:32217:2: ( RULE_INT ) + // InternalFiacre.g:32218:3: RULE_INT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundAccess().getValueINTTerminalRuleCall_0_0()); + } + match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundAccess().getValueINTTerminalRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalUpperBound__ValueAssignment_0" + + + // $ANTLR start "rule__NaturalUpperBound__LeftAssignment_1_0" + // InternalFiacre.g:32227:1: rule__NaturalUpperBound__LeftAssignment_1_0 : ( ( '[' ) ) ; + public final void rule__NaturalUpperBound__LeftAssignment_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32231:1: ( ( ( '[' ) ) ) + // InternalFiacre.g:32232:2: ( ( '[' ) ) + { + // InternalFiacre.g:32232:2: ( ( '[' ) ) + // InternalFiacre.g:32233:3: ( '[' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + // InternalFiacre.g:32234:3: ( '[' ) + // InternalFiacre.g:32235:4: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalUpperBound__LeftAssignment_1_0" + + + // $ANTLR start "rule__NaturalUpperBound__RightAssignment_1_1" + // InternalFiacre.g:32246:1: rule__NaturalUpperBound__RightAssignment_1_1 : ( ( ']' ) ) ; + public final void rule__NaturalUpperBound__RightAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32250:1: ( ( ( ']' ) ) ) + // InternalFiacre.g:32251:2: ( ( ']' ) ) + { + // InternalFiacre.g:32251:2: ( ( ']' ) ) + // InternalFiacre.g:32252:3: ( ']' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + // InternalFiacre.g:32253:3: ( ']' ) + // InternalFiacre.g:32254:4: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalUpperBound__RightAssignment_1_1" + + + // $ANTLR start "rule__DecimalLowerBound__LeftAssignment_0_0" + // InternalFiacre.g:32265:1: rule__DecimalLowerBound__LeftAssignment_0_0 : ( ( '[' ) ) ; + public final void rule__DecimalLowerBound__LeftAssignment_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32269:1: ( ( ( '[' ) ) ) + // InternalFiacre.g:32270:2: ( ( '[' ) ) + { + // InternalFiacre.g:32270:2: ( ( '[' ) ) + // InternalFiacre.g:32271:3: ( '[' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + // InternalFiacre.g:32272:3: ( '[' ) + // InternalFiacre.g:32273:4: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalLowerBound__LeftAssignment_0_0" + + + // $ANTLR start "rule__DecimalLowerBound__RightAssignment_0_1" + // InternalFiacre.g:32284:1: rule__DecimalLowerBound__RightAssignment_0_1 : ( ( ']' ) ) ; + public final void rule__DecimalLowerBound__RightAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32288:1: ( ( ( ']' ) ) ) + // InternalFiacre.g:32289:2: ( ( ']' ) ) + { + // InternalFiacre.g:32289:2: ( ( ']' ) ) + // InternalFiacre.g:32290:3: ( ']' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + // InternalFiacre.g:32291:3: ( ']' ) + // InternalFiacre.g:32292:4: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalLowerBound__RightAssignment_0_1" + + + // $ANTLR start "rule__DecimalLowerBound__ValueAssignment_1" + // InternalFiacre.g:32303:1: rule__DecimalLowerBound__ValueAssignment_1 : ( RULE_FLT ) ; + public final void rule__DecimalLowerBound__ValueAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32307:1: ( ( RULE_FLT ) ) + // InternalFiacre.g:32308:2: ( RULE_FLT ) + { + // InternalFiacre.g:32308:2: ( RULE_FLT ) + // InternalFiacre.g:32309:3: RULE_FLT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalLowerBoundAccess().getValueFLTTerminalRuleCall_1_0()); + } + match(input,RULE_FLT,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalLowerBoundAccess().getValueFLTTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalLowerBound__ValueAssignment_1" + + + // $ANTLR start "rule__DecimalUpperBound__ValueAssignment_0" + // InternalFiacre.g:32318:1: rule__DecimalUpperBound__ValueAssignment_0 : ( RULE_FLT ) ; + public final void rule__DecimalUpperBound__ValueAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32322:1: ( ( RULE_FLT ) ) + // InternalFiacre.g:32323:2: ( RULE_FLT ) + { + // InternalFiacre.g:32323:2: ( RULE_FLT ) + // InternalFiacre.g:32324:3: RULE_FLT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundAccess().getValueFLTTerminalRuleCall_0_0()); + } + match(input,RULE_FLT,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundAccess().getValueFLTTerminalRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalUpperBound__ValueAssignment_0" + + + // $ANTLR start "rule__DecimalUpperBound__LeftAssignment_1_0" + // InternalFiacre.g:32333:1: rule__DecimalUpperBound__LeftAssignment_1_0 : ( ( '[' ) ) ; + public final void rule__DecimalUpperBound__LeftAssignment_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32337:1: ( ( ( '[' ) ) ) + // InternalFiacre.g:32338:2: ( ( '[' ) ) + { + // InternalFiacre.g:32338:2: ( ( '[' ) ) + // InternalFiacre.g:32339:3: ( '[' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + // InternalFiacre.g:32340:3: ( '[' ) + // InternalFiacre.g:32341:4: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalUpperBound__LeftAssignment_1_0" + + + // $ANTLR start "rule__DecimalUpperBound__RightAssignment_1_1" + // InternalFiacre.g:32352:1: rule__DecimalUpperBound__RightAssignment_1_1 : ( ( ']' ) ) ; + public final void rule__DecimalUpperBound__RightAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32356:1: ( ( ( ']' ) ) ) + // InternalFiacre.g:32357:2: ( ( ']' ) ) + { + // InternalFiacre.g:32357:2: ( ( ']' ) ) + // InternalFiacre.g:32358:3: ( ']' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + // InternalFiacre.g:32359:3: ( ']' ) + // InternalFiacre.g:32360:4: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getDecimalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getDecimalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DecimalUpperBound__RightAssignment_1_1" + + + // $ANTLR start "rule__VariableLowerBound__LeftAssignment_0_0" + // InternalFiacre.g:32371:1: rule__VariableLowerBound__LeftAssignment_0_0 : ( ( '[' ) ) ; + public final void rule__VariableLowerBound__LeftAssignment_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32375:1: ( ( ( '[' ) ) ) + // InternalFiacre.g:32376:2: ( ( '[' ) ) + { + // InternalFiacre.g:32376:2: ( ( '[' ) ) + // InternalFiacre.g:32377:3: ( '[' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + // InternalFiacre.g:32378:3: ( '[' ) + // InternalFiacre.g:32379:4: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableLowerBound__LeftAssignment_0_0" + + + // $ANTLR start "rule__VariableLowerBound__RightAssignment_0_1" + // InternalFiacre.g:32390:1: rule__VariableLowerBound__RightAssignment_0_1 : ( ( ']' ) ) ; + public final void rule__VariableLowerBound__RightAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32394:1: ( ( ( ']' ) ) ) + // InternalFiacre.g:32395:2: ( ( ']' ) ) + { + // InternalFiacre.g:32395:2: ( ( ']' ) ) + // InternalFiacre.g:32396:3: ( ']' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + // InternalFiacre.g:32397:3: ( ']' ) + // InternalFiacre.g:32398:4: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableLowerBound__RightAssignment_0_1" + + + // $ANTLR start "rule__VariableLowerBound__VariableAssignment_1" + // InternalFiacre.g:32409:1: rule__VariableLowerBound__VariableAssignment_1 : ( ( RULE_ID ) ) ; + public final void rule__VariableLowerBound__VariableAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32413:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:32414:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:32414:2: ( ( RULE_ID ) ) + // InternalFiacre.g:32415:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getVariableBoundDeclarationUseCrossReference_1_0()); + } + // InternalFiacre.g:32416:3: ( RULE_ID ) + // InternalFiacre.g:32417:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableLowerBoundAccess().getVariableBoundDeclarationUseIDTerminalRuleCall_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getVariableBoundDeclarationUseIDTerminalRuleCall_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableLowerBoundAccess().getVariableBoundDeclarationUseCrossReference_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableLowerBound__VariableAssignment_1" + + + // $ANTLR start "rule__VariableUpperBound__VariableAssignment_0" + // InternalFiacre.g:32428:1: rule__VariableUpperBound__VariableAssignment_0 : ( ( RULE_ID ) ) ; + public final void rule__VariableUpperBound__VariableAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32432:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:32433:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:32433:2: ( ( RULE_ID ) ) + // InternalFiacre.g:32434:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getVariableBoundDeclarationUseCrossReference_0_0()); + } + // InternalFiacre.g:32435:3: ( RULE_ID ) + // InternalFiacre.g:32436:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getVariableBoundDeclarationUseIDTerminalRuleCall_0_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getVariableBoundDeclarationUseIDTerminalRuleCall_0_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getVariableBoundDeclarationUseCrossReference_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableUpperBound__VariableAssignment_0" + + + // $ANTLR start "rule__VariableUpperBound__LeftAssignment_1_0" + // InternalFiacre.g:32447:1: rule__VariableUpperBound__LeftAssignment_1_0 : ( ( '[' ) ) ; + public final void rule__VariableUpperBound__LeftAssignment_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32451:1: ( ( ( '[' ) ) ) + // InternalFiacre.g:32452:2: ( ( '[' ) ) + { + // InternalFiacre.g:32452:2: ( ( '[' ) ) + // InternalFiacre.g:32453:3: ( '[' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + // InternalFiacre.g:32454:3: ( '[' ) + // InternalFiacre.g:32455:4: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableUpperBound__LeftAssignment_1_0" + + + // $ANTLR start "rule__VariableUpperBound__RightAssignment_1_1" + // InternalFiacre.g:32466:1: rule__VariableUpperBound__RightAssignment_1_1 : ( ( ']' ) ) ; + public final void rule__VariableUpperBound__RightAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32470:1: ( ( ( ']' ) ) ) + // InternalFiacre.g:32471:2: ( ( ']' ) ) + { + // InternalFiacre.g:32471:2: ( ( ']' ) ) + // InternalFiacre.g:32472:3: ( ']' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + // InternalFiacre.g:32473:3: ( ']' ) + // InternalFiacre.g:32474:4: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getVariableUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getVariableUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VariableUpperBound__RightAssignment_1_1" + + + // $ANTLR start "rule__Requirement__PropertyAssignment_1" + // InternalFiacre.g:32485:1: rule__Requirement__PropertyAssignment_1 : ( ( RULE_ID ) ) ; + public final void rule__Requirement__PropertyAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32489:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:32490:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:32490:2: ( ( RULE_ID ) ) + // InternalFiacre.g:32491:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getPropertyPropertyDeclarationCrossReference_1_0()); + } + // InternalFiacre.g:32492:3: ( RULE_ID ) + // InternalFiacre.g:32493:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getPropertyPropertyDeclarationIDTerminalRuleCall_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getPropertyPropertyDeclarationIDTerminalRuleCall_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getPropertyPropertyDeclarationCrossReference_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__PropertyAssignment_1" + + + // $ANTLR start "rule__Requirement__PositiveAssignment_2_1" + // InternalFiacre.g:32504:1: rule__Requirement__PositiveAssignment_2_1 : ( RULE_STRING ) ; + public final void rule__Requirement__PositiveAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32508:1: ( ( RULE_STRING ) ) + // InternalFiacre.g:32509:2: ( RULE_STRING ) + { + // InternalFiacre.g:32509:2: ( RULE_STRING ) + // InternalFiacre.g:32510:3: RULE_STRING + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getPositiveSTRINGTerminalRuleCall_2_1_0()); + } + match(input,RULE_STRING,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getPositiveSTRINGTerminalRuleCall_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__PositiveAssignment_2_1" + + + // $ANTLR start "rule__Requirement__NegativeAssignment_3_1" + // InternalFiacre.g:32519:1: rule__Requirement__NegativeAssignment_3_1 : ( RULE_STRING ) ; + public final void rule__Requirement__NegativeAssignment_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32523:1: ( ( RULE_STRING ) ) + // InternalFiacre.g:32524:2: ( RULE_STRING ) + { + // InternalFiacre.g:32524:2: ( RULE_STRING ) + // InternalFiacre.g:32525:3: RULE_STRING + { + if ( state.backtracking==0 ) { + before(grammarAccess.getRequirementAccess().getNegativeSTRINGTerminalRuleCall_3_1_0()); + } + match(input,RULE_STRING,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getRequirementAccess().getNegativeSTRINGTerminalRuleCall_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Requirement__NegativeAssignment_3_1" + + + // $ANTLR start "rule__PropertyDeclaration__NameAssignment_1" + // InternalFiacre.g:32534:1: rule__PropertyDeclaration__NameAssignment_1 : ( RULE_ID ) ; + public final void rule__PropertyDeclaration__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32538:1: ( ( RULE_ID ) ) + // InternalFiacre.g:32539:2: ( RULE_ID ) + { + // InternalFiacre.g:32539:2: ( RULE_ID ) + // InternalFiacre.g:32540:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDeclaration__NameAssignment_1" + + + // $ANTLR start "rule__PropertyDeclaration__PropertyAssignment_3" + // InternalFiacre.g:32549:1: rule__PropertyDeclaration__PropertyAssignment_3 : ( ruleProperty ) ; + public final void rule__PropertyDeclaration__PropertyAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32553:1: ( ( ruleProperty ) ) + // InternalFiacre.g:32554:2: ( ruleProperty ) + { + // InternalFiacre.g:32554:2: ( ruleProperty ) + // InternalFiacre.g:32555:3: ruleProperty + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDeclarationAccess().getPropertyPropertyParserRuleCall_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDeclarationAccess().getPropertyPropertyParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDeclaration__PropertyAssignment_3" + + + // $ANTLR start "rule__QuantifiedProperty__VariableAssignment_0_1" + // InternalFiacre.g:32564:1: rule__QuantifiedProperty__VariableAssignment_0_1 : ( ruleVariableDeclaration ) ; + public final void rule__QuantifiedProperty__VariableAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32568:1: ( ( ruleVariableDeclaration ) ) + // InternalFiacre.g:32569:2: ( ruleVariableDeclaration ) + { + // InternalFiacre.g:32569:2: ( ruleVariableDeclaration ) + // InternalFiacre.g:32570:3: ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getVariableVariableDeclarationParserRuleCall_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getVariableVariableDeclarationParserRuleCall_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__VariableAssignment_0_1" + + + // $ANTLR start "rule__QuantifiedProperty__TypeAssignment_0_3" + // InternalFiacre.g:32579:1: rule__QuantifiedProperty__TypeAssignment_0_3 : ( ruleRangeType ) ; + public final void rule__QuantifiedProperty__TypeAssignment_0_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32583:1: ( ( ruleRangeType ) ) + // InternalFiacre.g:32584:2: ( ruleRangeType ) + { + // InternalFiacre.g:32584:2: ( ruleRangeType ) + // InternalFiacre.g:32585:3: ruleRangeType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getTypeRangeTypeParserRuleCall_0_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRangeType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getTypeRangeTypeParserRuleCall_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__TypeAssignment_0_3" + + + // $ANTLR start "rule__QuantifiedProperty__ChildAssignment_0_5" + // InternalFiacre.g:32594:1: rule__QuantifiedProperty__ChildAssignment_0_5 : ( ruleQuantifiedProperty ) ; + public final void rule__QuantifiedProperty__ChildAssignment_0_5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32598:1: ( ( ruleQuantifiedProperty ) ) + // InternalFiacre.g:32599:2: ( ruleQuantifiedProperty ) + { + // InternalFiacre.g:32599:2: ( ruleQuantifiedProperty ) + // InternalFiacre.g:32600:3: ruleQuantifiedProperty + { + if ( state.backtracking==0 ) { + before(grammarAccess.getQuantifiedPropertyAccess().getChildQuantifiedPropertyParserRuleCall_0_5_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleQuantifiedProperty(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getQuantifiedPropertyAccess().getChildQuantifiedPropertyParserRuleCall_0_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__QuantifiedProperty__ChildAssignment_0_5" + + + // $ANTLR start "rule__PropertyDisjunction__RightAssignment_1_2" + // InternalFiacre.g:32609:1: rule__PropertyDisjunction__RightAssignment_1_2 : ( rulePropertyImplication ) ; + public final void rule__PropertyDisjunction__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32613:1: ( ( rulePropertyImplication ) ) + // InternalFiacre.g:32614:2: ( rulePropertyImplication ) + { + // InternalFiacre.g:32614:2: ( rulePropertyImplication ) + // InternalFiacre.g:32615:3: rulePropertyImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyDisjunctionAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePropertyImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyDisjunctionAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyDisjunction__RightAssignment_1_2" + + + // $ANTLR start "rule__PropertyImplication__RightAssignment_1_2" + // InternalFiacre.g:32624:1: rule__PropertyImplication__RightAssignment_1_2 : ( rulePropertyImplication ) ; + public final void rule__PropertyImplication__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32628:1: ( ( rulePropertyImplication ) ) + // InternalFiacre.g:32629:2: ( rulePropertyImplication ) + { + // InternalFiacre.g:32629:2: ( rulePropertyImplication ) + // InternalFiacre.g:32630:3: rulePropertyImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyImplicationAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePropertyImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyImplicationAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyImplication__RightAssignment_1_2" + + + // $ANTLR start "rule__PropertyConjunction__RightAssignment_1_2" + // InternalFiacre.g:32639:1: rule__PropertyConjunction__RightAssignment_1_2 : ( rulePropertyNegation ) ; + public final void rule__PropertyConjunction__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32643:1: ( ( rulePropertyNegation ) ) + // InternalFiacre.g:32644:2: ( rulePropertyNegation ) + { + // InternalFiacre.g:32644:2: ( rulePropertyNegation ) + // InternalFiacre.g:32645:3: rulePropertyNegation + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyConjunctionAccess().getRightPropertyNegationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePropertyNegation(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyConjunctionAccess().getRightPropertyNegationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyConjunction__RightAssignment_1_2" + + + // $ANTLR start "rule__PropertyNegation__ChildAssignment_0_2" + // InternalFiacre.g:32654:1: rule__PropertyNegation__ChildAssignment_0_2 : ( rulePropertyNegation ) ; + public final void rule__PropertyNegation__ChildAssignment_0_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32658:1: ( ( rulePropertyNegation ) ) + // InternalFiacre.g:32659:2: ( rulePropertyNegation ) + { + // InternalFiacre.g:32659:2: ( rulePropertyNegation ) + // InternalFiacre.g:32660:3: rulePropertyNegation + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPropertyNegationAccess().getChildPropertyNegationParserRuleCall_0_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePropertyNegation(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPropertyNegationAccess().getChildPropertyNegationParserRuleCall_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PropertyNegation__ChildAssignment_0_2" + + + // $ANTLR start "rule__LTLPattern__PropertyAssignment_1" + // InternalFiacre.g:32669:1: rule__LTLPattern__PropertyAssignment_1 : ( ruleLTLUnary ) ; + public final void rule__LTLPattern__PropertyAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32673:1: ( ( ruleLTLUnary ) ) + // InternalFiacre.g:32674:2: ( ruleLTLUnary ) + { + // InternalFiacre.g:32674:2: ( ruleLTLUnary ) + // InternalFiacre.g:32675:3: ruleLTLUnary + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLPatternAccess().getPropertyLTLUnaryParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLUnary(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLPatternAccess().getPropertyLTLUnaryParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLPattern__PropertyAssignment_1" + + + // $ANTLR start "rule__InfinitelyOftenPattern__SubjectAssignment_1" + // InternalFiacre.g:32684:1: rule__InfinitelyOftenPattern__SubjectAssignment_1 : ( ruleAtomicObservable ) ; + public final void rule__InfinitelyOftenPattern__SubjectAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32688:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32689:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32689:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32690:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__InfinitelyOftenPattern__SubjectAssignment_1" + + + // $ANTLR start "rule__MortalPattern__SubjectAssignment_1" + // InternalFiacre.g:32699:1: rule__MortalPattern__SubjectAssignment_1 : ( ruleAtomicObservable ) ; + public final void rule__MortalPattern__SubjectAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32703:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32704:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32704:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32705:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getMortalPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getMortalPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__MortalPattern__SubjectAssignment_1" + + + // $ANTLR start "rule__PresencePattern__SubjectAssignment_1" + // InternalFiacre.g:32714:1: rule__PresencePattern__SubjectAssignment_1 : ( ruleAtomicObservable ) ; + public final void rule__PresencePattern__SubjectAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32718:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32719:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32719:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32720:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__SubjectAssignment_1" + + + // $ANTLR start "rule__PresencePattern__LastingAssignment_2_0_1" + // InternalFiacre.g:32729:1: rule__PresencePattern__LastingAssignment_2_0_1 : ( RULE_INT ) ; + public final void rule__PresencePattern__LastingAssignment_2_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32733:1: ( ( RULE_INT ) ) + // InternalFiacre.g:32734:2: ( RULE_INT ) + { + // InternalFiacre.g:32734:2: ( RULE_INT ) + // InternalFiacre.g:32735:3: RULE_INT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getLastingINTTerminalRuleCall_2_0_1_0()); + } + match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getLastingINTTerminalRuleCall_2_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__LastingAssignment_2_0_1" + + + // $ANTLR start "rule__PresencePattern__AfterAssignment_2_1_0_1" + // InternalFiacre.g:32744:1: rule__PresencePattern__AfterAssignment_2_1_0_1 : ( ruleAtomicObservable ) ; + public final void rule__PresencePattern__AfterAssignment_2_1_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32748:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32749:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32749:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32750:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getAfterAtomicObservableParserRuleCall_2_1_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getAfterAtomicObservableParserRuleCall_2_1_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__AfterAssignment_2_1_0_1" + + + // $ANTLR start "rule__PresencePattern__LowerAssignment_2_1_1_0_1" + // InternalFiacre.g:32759:1: rule__PresencePattern__LowerAssignment_2_1_1_0_1 : ( ruleLowerBound ) ; + public final void rule__PresencePattern__LowerAssignment_2_1_1_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32763:1: ( ( ruleLowerBound ) ) + // InternalFiacre.g:32764:2: ( ruleLowerBound ) + { + // InternalFiacre.g:32764:2: ( ruleLowerBound ) + // InternalFiacre.g:32765:3: ruleLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__LowerAssignment_2_1_1_0_1" + + + // $ANTLR start "rule__PresencePattern__UpperAssignment_2_1_1_0_3" + // InternalFiacre.g:32774:1: rule__PresencePattern__UpperAssignment_2_1_1_0_3 : ( ruleUpperBound ) ; + public final void rule__PresencePattern__UpperAssignment_2_1_1_0_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32778:1: ( ( ruleUpperBound ) ) + // InternalFiacre.g:32779:2: ( ruleUpperBound ) + { + // InternalFiacre.g:32779:2: ( ruleUpperBound ) + // InternalFiacre.g:32780:3: ruleUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_0_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__UpperAssignment_2_1_1_0_3" + + + // $ANTLR start "rule__PresencePattern__UntilAssignment_2_1_1_1_1" + // InternalFiacre.g:32789:1: rule__PresencePattern__UntilAssignment_2_1_1_1_1 : ( ruleAtomicObservable ) ; + public final void rule__PresencePattern__UntilAssignment_2_1_1_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32793:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32794:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32794:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32795:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getUntilAtomicObservableParserRuleCall_2_1_1_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getUntilAtomicObservableParserRuleCall_2_1_1_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__UntilAssignment_2_1_1_1_1" + + + // $ANTLR start "rule__PresencePattern__BeforeAssignment_2_2_0_1" + // InternalFiacre.g:32804:1: rule__PresencePattern__BeforeAssignment_2_2_0_1 : ( ruleAtomicObservable ) ; + public final void rule__PresencePattern__BeforeAssignment_2_2_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32808:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32809:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32809:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32810:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_2_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_2_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__BeforeAssignment_2_2_0_1" + + + // $ANTLR start "rule__PresencePattern__LowerAssignment_2_2_1_1" + // InternalFiacre.g:32819:1: rule__PresencePattern__LowerAssignment_2_2_1_1 : ( ruleLowerBound ) ; + public final void rule__PresencePattern__LowerAssignment_2_2_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32823:1: ( ( ruleLowerBound ) ) + // InternalFiacre.g:32824:2: ( ruleLowerBound ) + { + // InternalFiacre.g:32824:2: ( ruleLowerBound ) + // InternalFiacre.g:32825:3: ruleLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_2_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_2_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__LowerAssignment_2_2_1_1" + + + // $ANTLR start "rule__PresencePattern__UpperAssignment_2_2_1_3" + // InternalFiacre.g:32834:1: rule__PresencePattern__UpperAssignment_2_2_1_3 : ( ruleUpperBound ) ; + public final void rule__PresencePattern__UpperAssignment_2_2_1_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32838:1: ( ( ruleUpperBound ) ) + // InternalFiacre.g:32839:2: ( ruleUpperBound ) + { + // InternalFiacre.g:32839:2: ( ruleUpperBound ) + // InternalFiacre.g:32840:3: ruleUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_2_1_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_2_1_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__UpperAssignment_2_2_1_3" + + + // $ANTLR start "rule__PresencePattern__MinAssignment_2_3_1" + // InternalFiacre.g:32849:1: rule__PresencePattern__MinAssignment_2_3_1 : ( ruleAtomicObservable ) ; + public final void rule__PresencePattern__MinAssignment_2_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32853:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32854:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32854:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32855:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getMinAtomicObservableParserRuleCall_2_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getMinAtomicObservableParserRuleCall_2_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__MinAssignment_2_3_1" + + + // $ANTLR start "rule__PresencePattern__MaxAssignment_2_3_3" + // InternalFiacre.g:32864:1: rule__PresencePattern__MaxAssignment_2_3_3 : ( ruleAtomicObservable ) ; + public final void rule__PresencePattern__MaxAssignment_2_3_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32868:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32869:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32869:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32870:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPresencePatternAccess().getMaxAtomicObservableParserRuleCall_2_3_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPresencePatternAccess().getMaxAtomicObservableParserRuleCall_2_3_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PresencePattern__MaxAssignment_2_3_3" + + + // $ANTLR start "rule__AbsencePattern__SubjectAssignment_1" + // InternalFiacre.g:32879:1: rule__AbsencePattern__SubjectAssignment_1 : ( ruleAtomicObservable ) ; + public final void rule__AbsencePattern__SubjectAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32883:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32884:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32884:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32885:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__SubjectAssignment_1" + + + // $ANTLR start "rule__AbsencePattern__AfterAssignment_2_0_0_1" + // InternalFiacre.g:32894:1: rule__AbsencePattern__AfterAssignment_2_0_0_1 : ( ruleAtomicObservable ) ; + public final void rule__AbsencePattern__AfterAssignment_2_0_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32898:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32899:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32899:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32900:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getAfterAtomicObservableParserRuleCall_2_0_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getAfterAtomicObservableParserRuleCall_2_0_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__AfterAssignment_2_0_0_1" + + + // $ANTLR start "rule__AbsencePattern__LowerAssignment_2_0_1_0_1" + // InternalFiacre.g:32909:1: rule__AbsencePattern__LowerAssignment_2_0_1_0_1 : ( ruleLowerBound ) ; + public final void rule__AbsencePattern__LowerAssignment_2_0_1_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32913:1: ( ( ruleLowerBound ) ) + // InternalFiacre.g:32914:2: ( ruleLowerBound ) + { + // InternalFiacre.g:32914:2: ( ruleLowerBound ) + // InternalFiacre.g:32915:3: ruleLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_0_1_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_0_1_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__LowerAssignment_2_0_1_0_1" + + + // $ANTLR start "rule__AbsencePattern__UpperAssignment_2_0_1_0_3" + // InternalFiacre.g:32924:1: rule__AbsencePattern__UpperAssignment_2_0_1_0_3 : ( ruleUpperBound ) ; + public final void rule__AbsencePattern__UpperAssignment_2_0_1_0_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32928:1: ( ( ruleUpperBound ) ) + // InternalFiacre.g:32929:2: ( ruleUpperBound ) + { + // InternalFiacre.g:32929:2: ( ruleUpperBound ) + // InternalFiacre.g:32930:3: ruleUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_0_1_0_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_0_1_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__UpperAssignment_2_0_1_0_3" + + + // $ANTLR start "rule__AbsencePattern__UntilAssignment_2_0_1_1_1" + // InternalFiacre.g:32939:1: rule__AbsencePattern__UntilAssignment_2_0_1_1_1 : ( ruleAtomicObservable ) ; + public final void rule__AbsencePattern__UntilAssignment_2_0_1_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32943:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32944:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32944:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32945:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getUntilAtomicObservableParserRuleCall_2_0_1_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getUntilAtomicObservableParserRuleCall_2_0_1_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__UntilAssignment_2_0_1_1_1" + + + // $ANTLR start "rule__AbsencePattern__BeforeAssignment_2_1_0_1" + // InternalFiacre.g:32954:1: rule__AbsencePattern__BeforeAssignment_2_1_0_1 : ( ruleAtomicObservable ) ; + public final void rule__AbsencePattern__BeforeAssignment_2_1_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32958:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:32959:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:32959:2: ( ruleAtomicObservable ) + // InternalFiacre.g:32960:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_1_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_1_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__BeforeAssignment_2_1_0_1" + + + // $ANTLR start "rule__AbsencePattern__LowerAssignment_2_1_1_1" + // InternalFiacre.g:32969:1: rule__AbsencePattern__LowerAssignment_2_1_1_1 : ( ruleLowerBound ) ; + public final void rule__AbsencePattern__LowerAssignment_2_1_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32973:1: ( ( ruleLowerBound ) ) + // InternalFiacre.g:32974:2: ( ruleLowerBound ) + { + // InternalFiacre.g:32974:2: ( ruleLowerBound ) + // InternalFiacre.g:32975:3: ruleLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__LowerAssignment_2_1_1_1" + + + // $ANTLR start "rule__AbsencePattern__UpperAssignment_2_1_1_3" + // InternalFiacre.g:32984:1: rule__AbsencePattern__UpperAssignment_2_1_1_3 : ( ruleUpperBound ) ; + public final void rule__AbsencePattern__UpperAssignment_2_1_1_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:32988:1: ( ( ruleUpperBound ) ) + // InternalFiacre.g:32989:2: ( ruleUpperBound ) + { + // InternalFiacre.g:32989:2: ( ruleUpperBound ) + // InternalFiacre.g:32990:3: ruleUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__UpperAssignment_2_1_1_3" + + + // $ANTLR start "rule__AbsencePattern__MinAssignment_2_2_1" + // InternalFiacre.g:32999:1: rule__AbsencePattern__MinAssignment_2_2_1 : ( ruleAtomicObservable ) ; + public final void rule__AbsencePattern__MinAssignment_2_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33003:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33004:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33004:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33005:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__MinAssignment_2_2_1" + + + // $ANTLR start "rule__AbsencePattern__MaxAssignment_2_2_3" + // InternalFiacre.g:33014:1: rule__AbsencePattern__MaxAssignment_2_2_3 : ( ruleAtomicObservable ) ; + public final void rule__AbsencePattern__MaxAssignment_2_2_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33018:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33019:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33019:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33020:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAbsencePatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAbsencePatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AbsencePattern__MaxAssignment_2_2_3" + + + // $ANTLR start "rule__AlwaysPattern__SubjectAssignment_1" + // InternalFiacre.g:33029:1: rule__AlwaysPattern__SubjectAssignment_1 : ( ruleAtomicObservable ) ; + public final void rule__AlwaysPattern__SubjectAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33033:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33034:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33034:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33035:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__SubjectAssignment_1" + + + // $ANTLR start "rule__AlwaysPattern__BeforeAssignment_2_0_1" + // InternalFiacre.g:33044:1: rule__AlwaysPattern__BeforeAssignment_2_0_1 : ( ruleAtomicObservable ) ; + public final void rule__AlwaysPattern__BeforeAssignment_2_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33048:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33049:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33049:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33050:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getBeforeAtomicObservableParserRuleCall_2_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getBeforeAtomicObservableParserRuleCall_2_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__BeforeAssignment_2_0_1" + + + // $ANTLR start "rule__AlwaysPattern__AfterAssignment_2_1_1" + // InternalFiacre.g:33059:1: rule__AlwaysPattern__AfterAssignment_2_1_1 : ( ruleAtomicObservable ) ; + public final void rule__AlwaysPattern__AfterAssignment_2_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33063:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33064:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33064:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33065:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getAfterAtomicObservableParserRuleCall_2_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getAfterAtomicObservableParserRuleCall_2_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__AfterAssignment_2_1_1" + + + // $ANTLR start "rule__AlwaysPattern__UntilAssignment_2_1_2_1" + // InternalFiacre.g:33074:1: rule__AlwaysPattern__UntilAssignment_2_1_2_1 : ( ruleAtomicObservable ) ; + public final void rule__AlwaysPattern__UntilAssignment_2_1_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33078:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33079:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33079:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33080:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getUntilAtomicObservableParserRuleCall_2_1_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getUntilAtomicObservableParserRuleCall_2_1_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__UntilAssignment_2_1_2_1" + + + // $ANTLR start "rule__AlwaysPattern__MinAssignment_2_2_1" + // InternalFiacre.g:33089:1: rule__AlwaysPattern__MinAssignment_2_2_1 : ( ruleAtomicObservable ) ; + public final void rule__AlwaysPattern__MinAssignment_2_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33093:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33094:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33094:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33095:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__MinAssignment_2_2_1" + + + // $ANTLR start "rule__AlwaysPattern__MaxAssignment_2_2_3" + // InternalFiacre.g:33104:1: rule__AlwaysPattern__MaxAssignment_2_2_3 : ( ruleAtomicObservable ) ; + public final void rule__AlwaysPattern__MaxAssignment_2_2_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33108:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33109:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33109:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33110:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAlwaysPatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAlwaysPatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AlwaysPattern__MaxAssignment_2_2_3" + + + // $ANTLR start "rule__SequencePattern__FollowerAssignment_1_0_2" + // InternalFiacre.g:33119:1: rule__SequencePattern__FollowerAssignment_1_0_2 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__FollowerAssignment_1_0_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33123:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33124:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33124:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33125:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_0_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__FollowerAssignment_1_0_2" + + + // $ANTLR start "rule__SequencePattern__BeforeAssignment_1_0_3_0_1" + // InternalFiacre.g:33134:1: rule__SequencePattern__BeforeAssignment_1_0_3_0_1 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__BeforeAssignment_1_0_3_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33138:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33139:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33139:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33140:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_0_3_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_0_3_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__BeforeAssignment_1_0_3_0_1" + + + // $ANTLR start "rule__SequencePattern__LowerAssignment_1_0_3_0_2_1" + // InternalFiacre.g:33149:1: rule__SequencePattern__LowerAssignment_1_0_3_0_2_1 : ( ruleLowerBound ) ; + public final void rule__SequencePattern__LowerAssignment_1_0_3_0_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33153:1: ( ( ruleLowerBound ) ) + // InternalFiacre.g:33154:2: ( ruleLowerBound ) + { + // InternalFiacre.g:33154:2: ( ruleLowerBound ) + // InternalFiacre.g:33155:3: ruleLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_0_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_0_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__LowerAssignment_1_0_3_0_2_1" + + + // $ANTLR start "rule__SequencePattern__UpperAssignment_1_0_3_0_2_3" + // InternalFiacre.g:33164:1: rule__SequencePattern__UpperAssignment_1_0_3_0_2_3 : ( ruleUpperBound ) ; + public final void rule__SequencePattern__UpperAssignment_1_0_3_0_2_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33168:1: ( ( ruleUpperBound ) ) + // InternalFiacre.g:33169:2: ( ruleUpperBound ) + { + // InternalFiacre.g:33169:2: ( ruleUpperBound ) + // InternalFiacre.g:33170:3: ruleUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_0_2_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_0_2_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__UpperAssignment_1_0_3_0_2_3" + + + // $ANTLR start "rule__SequencePattern__LowerAssignment_1_0_3_1_1" + // InternalFiacre.g:33179:1: rule__SequencePattern__LowerAssignment_1_0_3_1_1 : ( ruleLowerBound ) ; + public final void rule__SequencePattern__LowerAssignment_1_0_3_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33183:1: ( ( ruleLowerBound ) ) + // InternalFiacre.g:33184:2: ( ruleLowerBound ) + { + // InternalFiacre.g:33184:2: ( ruleLowerBound ) + // InternalFiacre.g:33185:3: ruleLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__LowerAssignment_1_0_3_1_1" + + + // $ANTLR start "rule__SequencePattern__UpperAssignment_1_0_3_1_3" + // InternalFiacre.g:33194:1: rule__SequencePattern__UpperAssignment_1_0_3_1_3 : ( ruleUpperBound ) ; + public final void rule__SequencePattern__UpperAssignment_1_0_3_1_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33198:1: ( ( ruleUpperBound ) ) + // InternalFiacre.g:33199:2: ( ruleUpperBound ) + { + // InternalFiacre.g:33199:2: ( ruleUpperBound ) + // InternalFiacre.g:33200:3: ruleUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_1_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_1_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__UpperAssignment_1_0_3_1_3" + + + // $ANTLR start "rule__SequencePattern__AfterAssignment_1_0_3_2_1" + // InternalFiacre.g:33209:1: rule__SequencePattern__AfterAssignment_1_0_3_2_1 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__AfterAssignment_1_0_3_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33213:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33214:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33214:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33215:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_0_3_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_0_3_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__AfterAssignment_1_0_3_2_1" + + + // $ANTLR start "rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1" + // InternalFiacre.g:33224:1: rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1 : ( ruleLowerBound ) ; + public final void rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33228:1: ( ( ruleLowerBound ) ) + // InternalFiacre.g:33229:2: ( ruleLowerBound ) + { + // InternalFiacre.g:33229:2: ( ruleLowerBound ) + // InternalFiacre.g:33230:3: ruleLowerBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_2_2_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLowerBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_2_2_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__LowerAssignment_1_0_3_2_2_0_1" + + + // $ANTLR start "rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3" + // InternalFiacre.g:33239:1: rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3 : ( ruleUpperBound ) ; + public final void rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33243:1: ( ( ruleUpperBound ) ) + // InternalFiacre.g:33244:2: ( ruleUpperBound ) + { + // InternalFiacre.g:33244:2: ( ruleUpperBound ) + // InternalFiacre.g:33245:3: ruleUpperBound + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_2_2_0_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleUpperBound(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_2_2_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__UpperAssignment_1_0_3_2_2_0_3" + + + // $ANTLR start "rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1" + // InternalFiacre.g:33254:1: rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33258:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33259:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33259:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33260:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_0_3_2_2_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_0_3_2_2_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__UntilAssignment_1_0_3_2_2_1_1" + + + // $ANTLR start "rule__SequencePattern__MinAssignment_1_0_3_3_1" + // InternalFiacre.g:33269:1: rule__SequencePattern__MinAssignment_1_0_3_3_1 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__MinAssignment_1_0_3_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33273:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33274:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33274:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33275:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_0_3_3_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_0_3_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__MinAssignment_1_0_3_3_1" + + + // $ANTLR start "rule__SequencePattern__MaxAssignment_1_0_3_3_3" + // InternalFiacre.g:33284:1: rule__SequencePattern__MaxAssignment_1_0_3_3_3 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__MaxAssignment_1_0_3_3_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33288:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33289:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33289:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33290:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_0_3_3_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_0_3_3_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__MaxAssignment_1_0_3_3_3" + + + // $ANTLR start "rule__SequencePattern__FollowerAssignment_1_1_2" + // InternalFiacre.g:33299:1: rule__SequencePattern__FollowerAssignment_1_1_2 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__FollowerAssignment_1_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33303:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33304:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33304:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33305:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__FollowerAssignment_1_1_2" + + + // $ANTLR start "rule__SequencePattern__BeforeAssignment_1_1_3_0_1" + // InternalFiacre.g:33314:1: rule__SequencePattern__BeforeAssignment_1_1_3_0_1 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__BeforeAssignment_1_1_3_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33318:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33319:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33319:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33320:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_1_3_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_1_3_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__BeforeAssignment_1_1_3_0_1" + + + // $ANTLR start "rule__SequencePattern__AfterAssignment_1_1_3_1_1" + // InternalFiacre.g:33329:1: rule__SequencePattern__AfterAssignment_1_1_3_1_1 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__AfterAssignment_1_1_3_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33333:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33334:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33334:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33335:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_1_3_1_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_1_3_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__AfterAssignment_1_1_3_1_1" + + + // $ANTLR start "rule__SequencePattern__UntilAssignment_1_1_3_1_2_1" + // InternalFiacre.g:33344:1: rule__SequencePattern__UntilAssignment_1_1_3_1_2_1 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__UntilAssignment_1_1_3_1_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33348:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33349:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33349:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33350:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_1_3_1_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_1_3_1_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__UntilAssignment_1_1_3_1_2_1" + + + // $ANTLR start "rule__SequencePattern__MinAssignment_1_1_3_2_1" + // InternalFiacre.g:33359:1: rule__SequencePattern__MinAssignment_1_1_3_2_1 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__MinAssignment_1_1_3_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33363:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33364:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33364:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33365:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_1_3_2_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_1_3_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__MinAssignment_1_1_3_2_1" + + + // $ANTLR start "rule__SequencePattern__MaxAssignment_1_1_3_2_3" + // InternalFiacre.g:33374:1: rule__SequencePattern__MaxAssignment_1_1_3_2_3 : ( ruleAtomicObservable ) ; + public final void rule__SequencePattern__MaxAssignment_1_1_3_2_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33378:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33379:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33379:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33380:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_1_3_2_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_1_3_2_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__SequencePattern__MaxAssignment_1_1_3_2_3" + + + // $ANTLR start "rule__LTLQuantified__IndexAssignment_0_1" + // InternalFiacre.g:33389:1: rule__LTLQuantified__IndexAssignment_0_1 : ( ruleVariableDeclaration ) ; + public final void rule__LTLQuantified__IndexAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33393:1: ( ( ruleVariableDeclaration ) ) + // InternalFiacre.g:33394:2: ( ruleVariableDeclaration ) + { + // InternalFiacre.g:33394:2: ( ruleVariableDeclaration ) + // InternalFiacre.g:33395:3: ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__IndexAssignment_0_1" + + + // $ANTLR start "rule__LTLQuantified__TypeAssignment_0_3" + // InternalFiacre.g:33404:1: rule__LTLQuantified__TypeAssignment_0_3 : ( ruleRangeType ) ; + public final void rule__LTLQuantified__TypeAssignment_0_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33408:1: ( ( ruleRangeType ) ) + // InternalFiacre.g:33409:2: ( ruleRangeType ) + { + // InternalFiacre.g:33409:2: ( ruleRangeType ) + // InternalFiacre.g:33410:3: ruleRangeType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getTypeRangeTypeParserRuleCall_0_3_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRangeType(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getTypeRangeTypeParserRuleCall_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__TypeAssignment_0_3" + + + // $ANTLR start "rule__LTLQuantified__ChildAssignment_0_5" + // InternalFiacre.g:33419:1: rule__LTLQuantified__ChildAssignment_0_5 : ( ruleLTLQuantified ) ; + public final void rule__LTLQuantified__ChildAssignment_0_5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33423:1: ( ( ruleLTLQuantified ) ) + // InternalFiacre.g:33424:2: ( ruleLTLQuantified ) + { + // InternalFiacre.g:33424:2: ( ruleLTLQuantified ) + // InternalFiacre.g:33425:3: ruleLTLQuantified + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLQuantifiedAccess().getChildLTLQuantifiedParserRuleCall_0_5_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLQuantified(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLQuantifiedAccess().getChildLTLQuantifiedParserRuleCall_0_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLQuantified__ChildAssignment_0_5" + + + // $ANTLR start "rule__LTLDisjunction__RightAssignment_1_2" + // InternalFiacre.g:33434:1: rule__LTLDisjunction__RightAssignment_1_2 : ( ruleLTLImplication ) ; + public final void rule__LTLDisjunction__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33438:1: ( ( ruleLTLImplication ) ) + // InternalFiacre.g:33439:2: ( ruleLTLImplication ) + { + // InternalFiacre.g:33439:2: ( ruleLTLImplication ) + // InternalFiacre.g:33440:3: ruleLTLImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLDisjunctionAccess().getRightLTLImplicationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLDisjunctionAccess().getRightLTLImplicationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLDisjunction__RightAssignment_1_2" + + + // $ANTLR start "rule__LTLImplication__RightAssignment_1_2" + // InternalFiacre.g:33449:1: rule__LTLImplication__RightAssignment_1_2 : ( ruleLTLImplication ) ; + public final void rule__LTLImplication__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33453:1: ( ( ruleLTLImplication ) ) + // InternalFiacre.g:33454:2: ( ruleLTLImplication ) + { + // InternalFiacre.g:33454:2: ( ruleLTLImplication ) + // InternalFiacre.g:33455:3: ruleLTLImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLImplicationAccess().getRightLTLImplicationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLImplicationAccess().getRightLTLImplicationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLImplication__RightAssignment_1_2" + + + // $ANTLR start "rule__LTLConjunction__RightAssignment_1_2" + // InternalFiacre.g:33464:1: rule__LTLConjunction__RightAssignment_1_2 : ( ruleLTLBinary ) ; + public final void rule__LTLConjunction__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33468:1: ( ( ruleLTLBinary ) ) + // InternalFiacre.g:33469:2: ( ruleLTLBinary ) + { + // InternalFiacre.g:33469:2: ( ruleLTLBinary ) + // InternalFiacre.g:33470:3: ruleLTLBinary + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLConjunctionAccess().getRightLTLBinaryParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLBinary(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLConjunctionAccess().getRightLTLBinaryParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLConjunction__RightAssignment_1_2" + + + // $ANTLR start "rule__LTLBinary__RightAssignment_1_0_2" + // InternalFiacre.g:33479:1: rule__LTLBinary__RightAssignment_1_0_2 : ( ruleLTLUnary ) ; + public final void rule__LTLBinary__RightAssignment_1_0_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33483:1: ( ( ruleLTLUnary ) ) + // InternalFiacre.g:33484:2: ( ruleLTLUnary ) + { + // InternalFiacre.g:33484:2: ( ruleLTLUnary ) + // InternalFiacre.g:33485:3: ruleLTLUnary + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_0_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLUnary(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__RightAssignment_1_0_2" + + + // $ANTLR start "rule__LTLBinary__RightAssignment_1_1_2" + // InternalFiacre.g:33494:1: rule__LTLBinary__RightAssignment_1_1_2 : ( ruleLTLUnary ) ; + public final void rule__LTLBinary__RightAssignment_1_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33498:1: ( ( ruleLTLUnary ) ) + // InternalFiacre.g:33499:2: ( ruleLTLUnary ) + { + // InternalFiacre.g:33499:2: ( ruleLTLUnary ) + // InternalFiacre.g:33500:3: ruleLTLUnary + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLUnary(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLBinary__RightAssignment_1_1_2" + + + // $ANTLR start "rule__LTLUnary__OperandAssignment_0_1" + // InternalFiacre.g:33509:1: rule__LTLUnary__OperandAssignment_0_1 : ( ruleLTLUnary ) ; + public final void rule__LTLUnary__OperandAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33513:1: ( ( ruleLTLUnary ) ) + // InternalFiacre.g:33514:2: ( ruleLTLUnary ) + { + // InternalFiacre.g:33514:2: ( ruleLTLUnary ) + // InternalFiacre.g:33515:3: ruleLTLUnary + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLTLUnaryAccess().getOperandLTLUnaryParserRuleCall_0_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleLTLUnary(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLTLUnaryAccess().getOperandLTLUnaryParserRuleCall_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LTLUnary__OperandAssignment_0_1" + + + // $ANTLR start "rule__AtomicLTL__DeclarationAssignment_0_1" + // InternalFiacre.g:33524:1: rule__AtomicLTL__DeclarationAssignment_0_1 : ( ( RULE_ID ) ) ; + public final void rule__AtomicLTL__DeclarationAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33528:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:33529:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:33529:2: ( ( RULE_ID ) ) + // InternalFiacre.g:33530:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseCrossReference_0_1_0()); + } + // InternalFiacre.g:33531:3: ( RULE_ID ) + // InternalFiacre.g:33532:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseIDTerminalRuleCall_0_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseIDTerminalRuleCall_0_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseCrossReference_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__AtomicLTL__DeclarationAssignment_0_1" + + + // $ANTLR start "rule__EnterStateEvent__SubjectAssignment_1" + // InternalFiacre.g:33543:1: rule__EnterStateEvent__SubjectAssignment_1 : ( ruleAtomicObservable ) ; + public final void rule__EnterStateEvent__SubjectAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33547:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33548:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33548:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33549:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEnterStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEnterStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EnterStateEvent__SubjectAssignment_1" + + + // $ANTLR start "rule__LeaveStateEvent__SubjectAssignment_1" + // InternalFiacre.g:33558:1: rule__LeaveStateEvent__SubjectAssignment_1 : ( ruleAtomicObservable ) ; + public final void rule__LeaveStateEvent__SubjectAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33562:1: ( ( ruleAtomicObservable ) ) + // InternalFiacre.g:33563:2: ( ruleAtomicObservable ) + { + // InternalFiacre.g:33563:2: ( ruleAtomicObservable ) + // InternalFiacre.g:33564:3: ruleAtomicObservable + { + if ( state.backtracking==0 ) { + before(grammarAccess.getLeaveStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getLeaveStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LeaveStateEvent__SubjectAssignment_1" + + + // $ANTLR start "rule__ObservableDisjunction__RightAssignment_1_2" + // InternalFiacre.g:33573:1: rule__ObservableDisjunction__RightAssignment_1_2 : ( ruleObservableImplication ) ; + public final void rule__ObservableDisjunction__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33577:1: ( ( ruleObservableImplication ) ) + // InternalFiacre.g:33578:2: ( ruleObservableImplication ) + { + // InternalFiacre.g:33578:2: ( ruleObservableImplication ) + // InternalFiacre.g:33579:3: ruleObservableImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableDisjunctionAccess().getRightObservableImplicationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservableImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableDisjunctionAccess().getRightObservableImplicationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableDisjunction__RightAssignment_1_2" + + + // $ANTLR start "rule__ObservableImplication__RightAssignment_1_2" + // InternalFiacre.g:33588:1: rule__ObservableImplication__RightAssignment_1_2 : ( ruleObservableImplication ) ; + public final void rule__ObservableImplication__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33592:1: ( ( ruleObservableImplication ) ) + // InternalFiacre.g:33593:2: ( ruleObservableImplication ) + { + // InternalFiacre.g:33593:2: ( ruleObservableImplication ) + // InternalFiacre.g:33594:3: ruleObservableImplication + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableImplicationAccess().getRightObservableImplicationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservableImplication(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableImplicationAccess().getRightObservableImplicationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableImplication__RightAssignment_1_2" + + + // $ANTLR start "rule__ObservableConjunction__RightAssignment_1_2" + // InternalFiacre.g:33603:1: rule__ObservableConjunction__RightAssignment_1_2 : ( ruleObservableNegation ) ; + public final void rule__ObservableConjunction__RightAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33607:1: ( ( ruleObservableNegation ) ) + // InternalFiacre.g:33608:2: ( ruleObservableNegation ) + { + // InternalFiacre.g:33608:2: ( ruleObservableNegation ) + // InternalFiacre.g:33609:3: ruleObservableNegation + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableConjunctionAccess().getRightObservableNegationParserRuleCall_1_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservableNegation(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableConjunctionAccess().getRightObservableNegationParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableConjunction__RightAssignment_1_2" + + + // $ANTLR start "rule__ObservableNegation__ChildAssignment_0_2" + // InternalFiacre.g:33618:1: rule__ObservableNegation__ChildAssignment_0_2 : ( ruleObservableNegation ) ; + public final void rule__ObservableNegation__ChildAssignment_0_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33622:1: ( ( ruleObservableNegation ) ) + // InternalFiacre.g:33623:2: ( ruleObservableNegation ) + { + // InternalFiacre.g:33623:2: ( ruleObservableNegation ) + // InternalFiacre.g:33624:3: ruleObservableNegation + { + if ( state.backtracking==0 ) { + before(grammarAccess.getObservableNegationAccess().getChildObservableNegationParserRuleCall_0_2_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleObservableNegation(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getObservableNegationAccess().getChildObservableNegationParserRuleCall_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ObservableNegation__ChildAssignment_0_2" + + + // $ANTLR start "rule__PathEvent__PathAssignment_0" + // InternalFiacre.g:33633:1: rule__PathEvent__PathAssignment_0 : ( rulePath ) ; + public final void rule__PathEvent__PathAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33637:1: ( ( rulePath ) ) + // InternalFiacre.g:33638:2: ( rulePath ) + { + // InternalFiacre.g:33638:2: ( rulePath ) + // InternalFiacre.g:33639:3: rulePath + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathEventAccess().getPathPathParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePath(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPathEventAccess().getPathPathParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PathEvent__PathAssignment_0" + + + // $ANTLR start "rule__PathEvent__ItemAssignment_1" + // InternalFiacre.g:33648:1: rule__PathEvent__ItemAssignment_1 : ( ruleSubject ) ; + public final void rule__PathEvent__ItemAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33652:1: ( ( ruleSubject ) ) + // InternalFiacre.g:33653:2: ( ruleSubject ) + { + // InternalFiacre.g:33653:2: ( ruleSubject ) + // InternalFiacre.g:33654:3: ruleSubject + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathEventAccess().getItemSubjectParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleSubject(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPathEventAccess().getItemSubjectParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PathEvent__ItemAssignment_1" + + + // $ANTLR start "rule__Path__ItemsAssignment_0" + // InternalFiacre.g:33663:1: rule__Path__ItemsAssignment_0 : ( rulePathItem ) ; + public final void rule__Path__ItemsAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33667:1: ( ( rulePathItem ) ) + // InternalFiacre.g:33668:2: ( rulePathItem ) + { + // InternalFiacre.g:33668:2: ( rulePathItem ) + // InternalFiacre.g:33669:3: rulePathItem + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPathAccess().getItemsPathItemParserRuleCall_0_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePathItem(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getPathAccess().getItemsPathItemParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Path__ItemsAssignment_0" + + + // $ANTLR start "rule__NaturalItem__ValueAssignment" + // InternalFiacre.g:33678:1: rule__NaturalItem__ValueAssignment : ( RULE_INT ) ; + public final void rule__NaturalItem__ValueAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33682:1: ( ( RULE_INT ) ) + // InternalFiacre.g:33683:2: ( RULE_INT ) + { + // InternalFiacre.g:33683:2: ( RULE_INT ) + // InternalFiacre.g:33684:3: RULE_INT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNaturalItemAccess().getValueINTTerminalRuleCall_0()); + } + match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNaturalItemAccess().getValueINTTerminalRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NaturalItem__ValueAssignment" + + + // $ANTLR start "rule__NamedItem__DeclarationAssignment" + // InternalFiacre.g:33693:1: rule__NamedItem__DeclarationAssignment : ( ( RULE_ID ) ) ; + public final void rule__NamedItem__DeclarationAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33697:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:33698:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:33698:2: ( ( RULE_ID ) ) + // InternalFiacre.g:33699:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseCrossReference_0()); + } + // InternalFiacre.g:33700:3: ( RULE_ID ) + // InternalFiacre.g:33701:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseIDTerminalRuleCall_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseIDTerminalRuleCall_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseCrossReference_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NamedItem__DeclarationAssignment" + + + // $ANTLR start "rule__StateSubject__StateAssignment_1" + // InternalFiacre.g:33712:1: rule__StateSubject__StateAssignment_1 : ( ( RULE_ID ) ) ; + public final void rule__StateSubject__StateAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33716:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:33717:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:33717:2: ( ( RULE_ID ) ) + // InternalFiacre.g:33718:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateSubjectAccess().getStateStateDeclarationCrossReference_1_0()); + } + // InternalFiacre.g:33719:3: ( RULE_ID ) + // InternalFiacre.g:33720:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getStateSubjectAccess().getStateStateDeclarationIDTerminalRuleCall_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getStateSubjectAccess().getStateStateDeclarationIDTerminalRuleCall_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getStateSubjectAccess().getStateStateDeclarationCrossReference_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateSubject__StateAssignment_1" + + + // $ANTLR start "rule__ValueSubject__ValueAssignment_1" + // InternalFiacre.g:33731:1: rule__ValueSubject__ValueAssignment_1 : ( ruleAtomicExpression ) ; + public final void rule__ValueSubject__ValueAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33735:1: ( ( ruleAtomicExpression ) ) + // InternalFiacre.g:33736:2: ( ruleAtomicExpression ) + { + // InternalFiacre.g:33736:2: ( ruleAtomicExpression ) + // InternalFiacre.g:33737:3: ruleAtomicExpression + { + if ( state.backtracking==0 ) { + before(grammarAccess.getValueSubjectAccess().getValueAtomicExpressionParserRuleCall_1_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleAtomicExpression(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getValueSubjectAccess().getValueAtomicExpressionParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ValueSubject__ValueAssignment_1" + + + // $ANTLR start "rule__TagSubject__TagAssignment_1" + // InternalFiacre.g:33746:1: rule__TagSubject__TagAssignment_1 : ( ( RULE_ID ) ) ; + public final void rule__TagSubject__TagAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33750:1: ( ( ( RULE_ID ) ) ) + // InternalFiacre.g:33751:2: ( ( RULE_ID ) ) + { + // InternalFiacre.g:33751:2: ( ( RULE_ID ) ) + // InternalFiacre.g:33752:3: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTagSubjectAccess().getTagTaggedStatementCrossReference_1_0()); + } + // InternalFiacre.g:33753:3: ( RULE_ID ) + // InternalFiacre.g:33754:4: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTagSubjectAccess().getTagTaggedStatementIDTerminalRuleCall_1_0_1()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getTagSubjectAccess().getTagTaggedStatementIDTerminalRuleCall_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getTagSubjectAccess().getTagTaggedStatementCrossReference_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TagSubject__TagAssignment_1" + + + // $ANTLR start "rule__EventSubject__EventAssignment_1" + // InternalFiacre.g:33765:1: rule__EventSubject__EventAssignment_1 : ( RULE_ID ) ; + public final void rule__EventSubject__EventAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalFiacre.g:33769:1: ( ( RULE_ID ) ) + // InternalFiacre.g:33770:2: ( RULE_ID ) + { + // InternalFiacre.g:33770:2: ( RULE_ID ) + // InternalFiacre.g:33771:3: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getEventSubjectAccess().getEventIDTerminalRuleCall_1_0()); + } + match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getEventSubjectAccess().getEventIDTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__EventSubject__EventAssignment_1" + + // $ANTLR start synpred10_InternalFiacre + public final void synpred10_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:3858:2: ( ( ( rule__ChannelType__Group_2_0__0 ) ) ) + // InternalFiacre.g:3858:2: ( ( rule__ChannelType__Group_2_0__0 ) ) + { + // InternalFiacre.g:3858:2: ( ( rule__ChannelType__Group_2_0__0 ) ) + // InternalFiacre.g:3859:3: ( rule__ChannelType__Group_2_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getGroup_2_0()); + } + // InternalFiacre.g:3860:3: ( rule__ChannelType__Group_2_0__0 ) + // InternalFiacre.g:3860:4: rule__ChannelType__Group_2_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_2_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + } + // $ANTLR end synpred10_InternalFiacre + + // $ANTLR start synpred11_InternalFiacre + public final void synpred11_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:3864:2: ( ( 'none' ) ) + // InternalFiacre.g:3864:2: ( 'none' ) + { + // InternalFiacre.g:3864:2: ( 'none' ) + // InternalFiacre.g:3865:3: 'none' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getChannelTypeAccess().getNoneKeyword_2_1()); + } + match(input,12,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + + } + } + // $ANTLR end synpred11_InternalFiacre + + // $ANTLR start synpred15_InternalFiacre + public final void synpred15_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:3933:2: ( ( ruleRangeType ) ) + // InternalFiacre.g:3933:2: ( ruleRangeType ) + { + // InternalFiacre.g:3933:2: ( ruleRangeType ) + // InternalFiacre.g:3934:3: ruleRangeType + { + if ( state.backtracking==0 ) { + before(grammarAccess.getTypeAccess().getRangeTypeParserRuleCall_1()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleRangeType(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + } + // $ANTLR end synpred15_InternalFiacre + + // $ANTLR start synpred35_InternalFiacre + public final void synpred35_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:4098:2: ( ( ( rule__PatternStatement__Group_1_0__0 ) ) ) + // InternalFiacre.g:4098:2: ( ( rule__PatternStatement__Group_1_0__0 ) ) + { + // InternalFiacre.g:4098:2: ( ( rule__PatternStatement__Group_1_0__0 ) ) + // InternalFiacre.g:4099:3: ( rule__PatternStatement__Group_1_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_0()); + } + // InternalFiacre.g:4100:3: ( rule__PatternStatement__Group_1_0__0 ) + // InternalFiacre.g:4100:4: rule__PatternStatement__Group_1_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + } + // $ANTLR end synpred35_InternalFiacre + + // $ANTLR start synpred36_InternalFiacre + public final void synpred36_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:4104:2: ( ( ( rule__PatternStatement__Group_1_1__0 ) ) ) + // InternalFiacre.g:4104:2: ( ( rule__PatternStatement__Group_1_1__0 ) ) + { + // InternalFiacre.g:4104:2: ( ( rule__PatternStatement__Group_1_1__0 ) ) + // InternalFiacre.g:4105:3: ( rule__PatternStatement__Group_1_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_1()); + } + // InternalFiacre.g:4106:3: ( rule__PatternStatement__Group_1_1__0 ) + // InternalFiacre.g:4106:4: rule__PatternStatement__Group_1_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + } + // $ANTLR end synpred36_InternalFiacre + + // $ANTLR start synpred37_InternalFiacre + public final void synpred37_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:4110:2: ( ( ( rule__PatternStatement__Group_1_2__0 ) ) ) + // InternalFiacre.g:4110:2: ( ( rule__PatternStatement__Group_1_2__0 ) ) + { + // InternalFiacre.g:4110:2: ( ( rule__PatternStatement__Group_1_2__0 ) ) + // InternalFiacre.g:4111:3: ( rule__PatternStatement__Group_1_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_2()); + } + // InternalFiacre.g:4112:3: ( rule__PatternStatement__Group_1_2__0 ) + // InternalFiacre.g:4112:4: rule__PatternStatement__Group_1_2__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + } + // $ANTLR end synpred37_InternalFiacre + + // $ANTLR start synpred38_InternalFiacre + public final void synpred38_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:4116:2: ( ( ( rule__PatternStatement__Group_1_3__0 ) ) ) + // InternalFiacre.g:4116:2: ( ( rule__PatternStatement__Group_1_3__0 ) ) + { + // InternalFiacre.g:4116:2: ( ( rule__PatternStatement__Group_1_3__0 ) ) + // InternalFiacre.g:4117:3: ( rule__PatternStatement__Group_1_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getPatternStatementAccess().getGroup_1_3()); + } + // InternalFiacre.g:4118:3: ( rule__PatternStatement__Group_1_3__0 ) + // InternalFiacre.g:4118:4: rule__PatternStatement__Group_1_3__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__PatternStatement__Group_1_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + } + // $ANTLR end synpred38_InternalFiacre + + // $ANTLR start synpred47_InternalFiacre + public final void synpred47_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:4245:2: ( ( ruleCompositeBlock ) ) + // InternalFiacre.g:4245:2: ( ruleCompositeBlock ) + { + // InternalFiacre.g:4245:2: ( ruleCompositeBlock ) + // InternalFiacre.g:4246:3: ruleCompositeBlock + { + if ( state.backtracking==0 ) { + before(grammarAccess.getBlockAccess().getCompositeBlockParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + ruleCompositeBlock(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + } + // $ANTLR end synpred47_InternalFiacre + + // $ANTLR start synpred75_InternalFiacre + public final void synpred75_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:4563:2: ( ( ( rule__IdentifierExpression__Group_0__0 ) ) ) + // InternalFiacre.g:4563:2: ( ( rule__IdentifierExpression__Group_0__0 ) ) + { + // InternalFiacre.g:4563:2: ( ( rule__IdentifierExpression__Group_0__0 ) ) + // InternalFiacre.g:4564:3: ( rule__IdentifierExpression__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getIdentifierExpressionAccess().getGroup_0()); + } + // InternalFiacre.g:4565:3: ( rule__IdentifierExpression__Group_0__0 ) + // InternalFiacre.g:4565:4: rule__IdentifierExpression__Group_0__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + } + // $ANTLR end synpred75_InternalFiacre + + // $ANTLR start synpred93_InternalFiacre + public final void synpred93_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:4896:2: ( ( rulePatternProperty ) ) + // InternalFiacre.g:4896:2: ( rulePatternProperty ) + { + // InternalFiacre.g:4896:2: ( rulePatternProperty ) + // InternalFiacre.g:4897:3: rulePatternProperty + { + if ( state.backtracking==0 ) { + before(grammarAccess.getAtomicPropertyAccess().getPatternPropertyParserRuleCall_0()); + } + pushFollow(FollowSets000.FOLLOW_2); + rulePatternProperty(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + } + // $ANTLR end synpred93_InternalFiacre + + // $ANTLR start synpred142_InternalFiacre + public final void synpred142_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:6662:3: ( rule__ChannelType__Group_1__0 ) + // InternalFiacre.g:6662:3: rule__ChannelType__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__ChannelType__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred142_InternalFiacre + + // $ANTLR start synpred214_InternalFiacre + public final void synpred214_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:16396:3: ( rule__Composition__Group_1__0 ) + // InternalFiacre.g:16396:3: rule__Composition__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Composition__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred214_InternalFiacre + + // $ANTLR start synpred218_InternalFiacre + public final void synpred218_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:16747:3: ( rule__InstanceDeclaration__Alternatives_0 ) + // InternalFiacre.g:16747:3: rule__InstanceDeclaration__Alternatives_0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__InstanceDeclaration__Alternatives_0(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred218_InternalFiacre + + // $ANTLR start synpred230_InternalFiacre + public final void synpred230_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:18717:3: ( rule__Addition__Group_1__0 ) + // InternalFiacre.g:18717:3: rule__Addition__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Addition__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred230_InternalFiacre + + // $ANTLR start synpred231_InternalFiacre + public final void synpred231_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:18852:3: ( rule__Substraction__Group_1__0 ) + // InternalFiacre.g:18852:3: rule__Substraction__Group_1__0 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__Substraction__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred231_InternalFiacre + + // $ANTLR start synpred238_InternalFiacre + public final void synpred238_InternalFiacre_fragment() throws RecognitionException { + // InternalFiacre.g:20445:3: ( rule__IdentifierExpression__Alternatives_1_1 ) + // InternalFiacre.g:20445:3: rule__IdentifierExpression__Alternatives_1_1 + { + pushFollow(FollowSets000.FOLLOW_2); + rule__IdentifierExpression__Alternatives_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred238_InternalFiacre + + // Delegated rules + + public final boolean synpred231_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred231_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred37_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred37_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred47_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred47_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred93_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred93_InternalFiacre_fragment(); // can never throw exception + } catch (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_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred238_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred75_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred75_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred15_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred15_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred11_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred11_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred38_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred38_InternalFiacre_fragment(); // can never throw exception + } catch (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_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred230_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred35_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred35_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred142_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred142_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred36_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred36_InternalFiacre_fragment(); // can never throw exception + } catch (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_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred214_InternalFiacre_fragment(); // can never throw exception + } catch (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_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred218_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred10_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred10_InternalFiacre_fragment(); // can never 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 DFA8 dfa8 = new DFA8(this); + protected DFA16 dfa16 = new DFA16(this); + protected DFA41 dfa41 = new DFA41(this); + protected DFA72 dfa72 = new DFA72(this); + protected DFA144 dfa144 = new DFA144(this); + protected DFA148 dfa148 = new DFA148(this); + static final String dfa_1s = "\37\uffff"; + static final String dfa_2s = "\1\4\16\uffff\1\0\17\uffff"; + static final String dfa_3s = "\1\153\16\uffff\1\0\17\uffff"; + static final String dfa_4s = "\1\uffff\1\1\2\uffff\1\2\25\uffff\1\3\1\4\1\5\1\6\1\7"; + static final String dfa_5s = "\17\uffff\1\0\17\uffff}>"; + static final String[] dfa_6s = { + "\1\17\1\uffff\1\4\7\uffff\1\4\7\uffff\1\4\5\uffff\1\35\2\uffff\3\1\1\uffff\1\32\1\uffff\1\33\1\34\3\uffff\1\4\42\uffff\2\4\10\uffff\1\4\3\uffff\7\4\1\uffff\2\4\1\uffff\1\4\1\uffff\4\4", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); + static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s); + static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s); + static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s); + static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s); + static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s); + + class DFA8 extends DFA { + + public DFA8(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 8; + 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 "3922:1: rule__Type__Alternatives : ( ( ruleBasicType ) | ( ruleRangeType ) | ( ruleUnionType ) | ( ruleRecordType ) | ( ruleQueueType ) | ( ruleArrayType ) | ( ruleReferencedType ) );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA8_15 = input.LA(1); + + + int index8_15 = input.index(); + input.rewind(); + s = -1; + if ( (synpred15_InternalFiacre()) ) {s = 4;} + + else if ( (true) ) {s = 30;} + + + input.seek(index8_15); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 8, _s, input); + error(nvae); + throw nvae; + } + } + static final String dfa_7s = "\33\uffff"; + static final String dfa_8s = "\1\4\30\0\2\uffff"; + static final String dfa_9s = "\1\153\30\0\2\uffff"; + static final String dfa_10s = "\31\uffff\1\1\1\2"; + static final String dfa_11s = "\1\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\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\2\uffff}>"; + static final String[] dfa_12s = { + "\1\15\1\uffff\1\21\7\uffff\1\4\1\30\6\uffff\1\27\23\uffff\1\23\40\uffff\1\31\1\uffff\1\2\1\3\10\uffff\1\5\1\1\2\uffff\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\uffff\1\16\1\22\1\uffff\1\24\1\uffff\1\25\1\26\1\17\1\20", + "\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", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "" + }; + + 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 DFA16 extends DFA { + + public DFA16(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 16; + 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 "4240:1: rule__Block__Alternatives : ( ( ruleCompositeBlock ) | ( ruleInstanceDeclaration ) );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA16_1 = input.LA(1); + + + int index16_1 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_1); + if ( s>=0 ) return s; + break; + case 1 : + int LA16_2 = input.LA(1); + + + int index16_2 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_2); + if ( s>=0 ) return s; + break; + case 2 : + int LA16_3 = input.LA(1); + + + int index16_3 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_3); + if ( s>=0 ) return s; + break; + case 3 : + int LA16_4 = input.LA(1); + + + int index16_4 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_4); + if ( s>=0 ) return s; + break; + case 4 : + int LA16_5 = input.LA(1); + + + int index16_5 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_5); + if ( s>=0 ) return s; + break; + case 5 : + int LA16_6 = input.LA(1); + + + int index16_6 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_6); + if ( s>=0 ) return s; + break; + case 6 : + int LA16_7 = input.LA(1); + + + int index16_7 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_7); + if ( s>=0 ) return s; + break; + case 7 : + int LA16_8 = input.LA(1); + + + int index16_8 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_8); + if ( s>=0 ) return s; + break; + case 8 : + int LA16_9 = input.LA(1); + + + int index16_9 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_9); + if ( s>=0 ) return s; + break; + case 9 : + int LA16_10 = input.LA(1); + + + int index16_10 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_10); + if ( s>=0 ) return s; + break; + case 10 : + int LA16_11 = input.LA(1); + + + int index16_11 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_11); + if ( s>=0 ) return s; + break; + case 11 : + int LA16_12 = input.LA(1); + + + int index16_12 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_12); + if ( s>=0 ) return s; + break; + case 12 : + int LA16_13 = input.LA(1); + + + int index16_13 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_13); + if ( s>=0 ) return s; + break; + case 13 : + int LA16_14 = input.LA(1); + + + int index16_14 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_14); + if ( s>=0 ) return s; + break; + case 14 : + int LA16_15 = input.LA(1); + + + int index16_15 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_15); + if ( s>=0 ) return s; + break; + case 15 : + int LA16_16 = input.LA(1); + + + int index16_16 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_16); + if ( s>=0 ) return s; + break; + case 16 : + int LA16_17 = input.LA(1); + + + int index16_17 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_17); + if ( s>=0 ) return s; + break; + case 17 : + int LA16_18 = input.LA(1); + + + int index16_18 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_18); + if ( s>=0 ) return s; + break; + case 18 : + int LA16_19 = input.LA(1); + + + int index16_19 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_19); + if ( s>=0 ) return s; + break; + case 19 : + int LA16_20 = input.LA(1); + + + int index16_20 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_20); + if ( s>=0 ) return s; + break; + case 20 : + int LA16_21 = input.LA(1); + + + int index16_21 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_21); + if ( s>=0 ) return s; + break; + case 21 : + int LA16_22 = input.LA(1); + + + int index16_22 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_22); + if ( s>=0 ) return s; + break; + case 22 : + int LA16_23 = input.LA(1); + + + int index16_23 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_23); + if ( s>=0 ) return s; + break; + case 23 : + int LA16_24 = input.LA(1); + + + int index16_24 = input.index(); + input.rewind(); + s = -1; + if ( (synpred47_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index16_24); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 16, _s, input); + error(nvae); + throw nvae; + } + } + static final String dfa_13s = "\16\uffff"; + static final String dfa_14s = "\1\4\7\uffff\1\0\5\uffff"; + static final String dfa_15s = "\1\u0084\7\uffff\1\0\5\uffff"; + static final String dfa_16s = "\1\uffff\1\1\13\uffff\1\2"; + static final String dfa_17s = "\10\uffff\1\0\5\uffff}>"; + static final String[] dfa_18s = { + "\1\1\1\uffff\1\1\17\uffff\1\10\132\uffff\5\1\6\uffff\1\1\1\uffff\1\1\4\uffff\2\1", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "" + }; + + static final short[] dfa_13 = DFA.unpackEncodedString(dfa_13s); + static final char[] dfa_14 = DFA.unpackEncodedStringToUnsignedChars(dfa_14s); + static final char[] dfa_15 = DFA.unpackEncodedStringToUnsignedChars(dfa_15s); + static final short[] dfa_16 = DFA.unpackEncodedString(dfa_16s); + static final short[] dfa_17 = DFA.unpackEncodedString(dfa_17s); + static final short[][] dfa_18 = unpackEncodedStringArray(dfa_18s); + + class DFA41 extends DFA { + + public DFA41(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 41; + this.eot = dfa_13; + this.eof = dfa_13; + this.min = dfa_14; + this.max = dfa_15; + this.accept = dfa_16; + this.special = dfa_17; + this.transition = dfa_18; + } + public String getDescription() { + return "4891:1: rule__AtomicProperty__Alternatives : ( ( rulePatternProperty ) | ( ( rule__AtomicProperty__Group_1__0 ) ) );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA41_8 = input.LA(1); + + + int index41_8 = input.index(); + input.rewind(); + s = -1; + if ( (synpred93_InternalFiacre()) ) {s = 1;} + + else if ( (true) ) {s = 13;} + + + input.seek(index41_8); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 41, _s, input); + error(nvae); + throw nvae; + } + } + static final String dfa_19s = "\43\uffff"; + static final String dfa_20s = "\1\4\1\0\41\uffff"; + static final String dfa_21s = "\1\u0089\1\0\41\uffff"; + static final String dfa_22s = "\2\uffff\1\2\37\uffff\1\1"; + static final String dfa_23s = "\1\uffff\1\0\41\uffff}>"; + static final String[] dfa_24s = { + "\1\2\1\uffff\1\2\5\uffff\3\2\7\uffff\1\2\5\uffff\1\1\2\uffff\3\2\1\uffff\1\2\1\uffff\2\2\3\uffff\1\2\6\uffff\1\2\33\uffff\2\2\10\uffff\1\2\3\uffff\7\2\1\uffff\2\2\1\uffff\1\2\1\uffff\4\2\35\uffff\1\2", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] dfa_19 = DFA.unpackEncodedString(dfa_19s); + static final char[] dfa_20 = DFA.unpackEncodedStringToUnsignedChars(dfa_20s); + static final char[] dfa_21 = DFA.unpackEncodedStringToUnsignedChars(dfa_21s); + static final short[] dfa_22 = DFA.unpackEncodedString(dfa_22s); + static final short[] dfa_23 = DFA.unpackEncodedString(dfa_23s); + static final short[][] dfa_24 = unpackEncodedStringArray(dfa_24s); + + class DFA72 extends DFA { + + public DFA72(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 72; + this.eot = dfa_19; + this.eof = dfa_19; + this.min = dfa_20; + this.max = dfa_21; + this.accept = dfa_22; + this.special = dfa_23; + this.transition = dfa_24; + } + public String getDescription() { + return "6662:2: ( rule__ChannelType__Group_1__0 )?"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA72_1 = input.LA(1); + + + int index72_1 = input.index(); + input.rewind(); + s = -1; + if ( (synpred142_InternalFiacre()) ) {s = 34;} + + else if ( (true) ) {s = 2;} + + + input.seek(index72_1); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 72, _s, input); + error(nvae); + throw nvae; + } + } + static final String dfa_25s = "\1\4\27\0\3\uffff"; + static final String dfa_26s = "\1\153\27\0\3\uffff"; + static final String dfa_27s = "\30\uffff\1\2\1\uffff\1\1"; + static final String dfa_28s = "\1\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\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\3\uffff}>"; + static final String[] dfa_29s = { + "\1\15\1\uffff\1\21\7\uffff\1\4\1\30\6\uffff\1\27\23\uffff\1\23\40\uffff\1\30\1\uffff\1\2\1\3\10\uffff\1\5\1\1\2\uffff\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\uffff\1\16\1\22\1\uffff\1\24\1\uffff\1\25\1\26\1\17\1\20", + "\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", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "" + }; + static final char[] dfa_25 = DFA.unpackEncodedStringToUnsignedChars(dfa_25s); + static final char[] dfa_26 = DFA.unpackEncodedStringToUnsignedChars(dfa_26s); + static final short[] dfa_27 = DFA.unpackEncodedString(dfa_27s); + static final short[] dfa_28 = DFA.unpackEncodedString(dfa_28s); + static final short[][] dfa_29 = unpackEncodedStringArray(dfa_29s); + + class DFA144 extends DFA { + + public DFA144(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 144; + this.eot = dfa_7; + this.eof = dfa_7; + this.min = dfa_25; + this.max = dfa_26; + this.accept = dfa_27; + this.special = dfa_28; + this.transition = dfa_29; + } + public String getDescription() { + return "16396:2: ( rule__Composition__Group_1__0 )?"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA144_1 = input.LA(1); + + + int index144_1 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_1); + if ( s>=0 ) return s; + break; + case 1 : + int LA144_2 = input.LA(1); + + + int index144_2 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_2); + if ( s>=0 ) return s; + break; + case 2 : + int LA144_3 = input.LA(1); + + + int index144_3 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_3); + if ( s>=0 ) return s; + break; + case 3 : + int LA144_4 = input.LA(1); + + + int index144_4 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_4); + if ( s>=0 ) return s; + break; + case 4 : + int LA144_5 = input.LA(1); + + + int index144_5 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_5); + if ( s>=0 ) return s; + break; + case 5 : + int LA144_6 = input.LA(1); + + + int index144_6 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_6); + if ( s>=0 ) return s; + break; + case 6 : + int LA144_7 = input.LA(1); + + + int index144_7 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_7); + if ( s>=0 ) return s; + break; + case 7 : + int LA144_8 = input.LA(1); + + + int index144_8 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_8); + if ( s>=0 ) return s; + break; + case 8 : + int LA144_9 = input.LA(1); + + + int index144_9 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_9); + if ( s>=0 ) return s; + break; + case 9 : + int LA144_10 = input.LA(1); + + + int index144_10 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_10); + if ( s>=0 ) return s; + break; + case 10 : + int LA144_11 = input.LA(1); + + + int index144_11 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_11); + if ( s>=0 ) return s; + break; + case 11 : + int LA144_12 = input.LA(1); + + + int index144_12 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_12); + if ( s>=0 ) return s; + break; + case 12 : + int LA144_13 = input.LA(1); + + + int index144_13 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_13); + if ( s>=0 ) return s; + break; + case 13 : + int LA144_14 = input.LA(1); + + + int index144_14 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_14); + if ( s>=0 ) return s; + break; + case 14 : + int LA144_15 = input.LA(1); + + + int index144_15 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_15); + if ( s>=0 ) return s; + break; + case 15 : + int LA144_16 = input.LA(1); + + + int index144_16 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_16); + if ( s>=0 ) return s; + break; + case 16 : + int LA144_17 = input.LA(1); + + + int index144_17 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_17); + if ( s>=0 ) return s; + break; + case 17 : + int LA144_18 = input.LA(1); + + + int index144_18 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_18); + if ( s>=0 ) return s; + break; + case 18 : + int LA144_19 = input.LA(1); + + + int index144_19 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_19); + if ( s>=0 ) return s; + break; + case 19 : + int LA144_20 = input.LA(1); + + + int index144_20 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_20); + if ( s>=0 ) return s; + break; + case 20 : + int LA144_21 = input.LA(1); + + + int index144_21 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_21); + if ( s>=0 ) return s; + break; + case 21 : + int LA144_22 = input.LA(1); + + + int index144_22 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_22); + if ( s>=0 ) return s; + break; + case 22 : + int LA144_23 = input.LA(1); + + + int index144_23 = input.index(); + input.rewind(); + s = -1; + if ( (synpred214_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index144_23); + 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_30s = "\32\uffff"; + static final String dfa_31s = "\1\4\14\uffff\1\0\14\uffff"; + static final String dfa_32s = "\1\153\14\uffff\1\0\14\uffff"; + static final String dfa_33s = "\1\uffff\1\1\27\uffff\1\2"; + static final String dfa_34s = "\15\uffff\1\0\14\uffff}>"; + static final String[] dfa_35s = { + "\1\15\1\uffff\1\1\7\uffff\2\1\6\uffff\1\1\23\uffff\1\1\42\uffff\2\1\10\uffff\2\1\2\uffff\7\1\1\uffff\2\1\1\uffff\1\1\1\uffff\4\1", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] dfa_30 = DFA.unpackEncodedString(dfa_30s); + static final char[] dfa_31 = DFA.unpackEncodedStringToUnsignedChars(dfa_31s); + static final char[] dfa_32 = DFA.unpackEncodedStringToUnsignedChars(dfa_32s); + static final short[] dfa_33 = DFA.unpackEncodedString(dfa_33s); + static final short[] dfa_34 = DFA.unpackEncodedString(dfa_34s); + static final short[][] dfa_35 = unpackEncodedStringArray(dfa_35s); + + class DFA148 extends DFA { + + public DFA148(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 148; + this.eot = dfa_30; + this.eof = dfa_30; + this.min = dfa_31; + this.max = dfa_32; + this.accept = dfa_33; + this.special = dfa_34; + this.transition = dfa_35; + } + public String getDescription() { + return "16747:2: ( rule__InstanceDeclaration__Alternatives_0 )?"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA148_13 = input.LA(1); + + + int index148_13 = input.index(); + input.rewind(); + s = -1; + if ( (synpred218_InternalFiacre()) ) {s = 1;} + + else if ( (true) ) {s = 25;} + + + input.seek(index148_13); + 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; + } + } + + + + private static class FollowSets000 { + 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[]{0x0000000000000052L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x000101800C0C0010L,0x0001200000000000L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000040002L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x000101800C080012L,0x0001200000000000L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x000101800C080010L,0x0001200000000000L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000020002L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000046B90404050L,0x00000F5BF8806000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x43C0000042404050L,0x00000C00008007ECL}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000800010L,0x0000000800000000L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000001000002L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000000000010L,0x0000000800000000L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0002046B90407050L,0x00000F5BF8806000L,0x0000000000000200L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000040000404050L,0x00000F5BF8806000L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0002046B90405050L,0x00000F5BF8806000L,0x0000000000000200L}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000200L}); + public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000040000002L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000080000000L}); + public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000100000000L}); + public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000380000000L}); + public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000001000020000L}); + public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000021000000L}); + public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000001001000000L}); + public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000001100000L}); + public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000040000600000L}); + public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000320000000000L}); + public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000C00003000000L}); + public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000C00003000002L}); + public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000080001000000L}); + public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000001800000L}); + public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000700002000000L,0x0000000000000800L}); + public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0002000000000000L}); + public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x00000C0000000000L}); + public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x00000000000000D0L,0x0000100000000000L}); + public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000046B90404050L,0x00000F5BF8806000L,0x0000000000000C00L}); + public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000080000000000L}); + public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0004000000000000L}); + public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000010002L}); + public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0008000000000000L}); + public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0008000000000002L}); + public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0010000000000000L}); + public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0010000000000002L}); + public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0020000000000000L}); + public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0020000000000002L}); + public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x1804000001000000L}); + public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0200000000404050L,0x00000C0000800000L}); + public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0004000001000000L}); + public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0200000000000000L}); + public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0400000000000000L}); + public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0400000001000000L}); + public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0200000000C04050L,0x00000C0000800000L}); + public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x2000040000000000L}); + public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x2000040000000002L}); + public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x8000000000000000L}); + public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000001000000000L,0x0000000000000003L}); + public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L}); + public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x4000000000000000L}); + public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L}); + public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L}); + public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L}); + public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L}); + public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L}); + public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x000074000240C050L,0x00000F5BF9806800L}); + public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000001000000000L,0x0000000000001000L}); + public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L}); + public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); + public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000040000400000L}); + public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x2002000000000000L}); + public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L}); + public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000000L,0x0000000000006000L}); + public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x1000000000000000L}); + public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L}); + public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L}); + public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L}); + public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L}); + public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000010000L,0x00000000007C0000L}); + public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L}); + public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L}); + public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L}); + public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L}); + public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000004002L}); + public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L}); + public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L}); + public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); + public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); + public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L}); + public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000002L,0x0000000002000000L}); + public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L}); + public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000000000002L,0x0000000004000000L}); + public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); + public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L}); + public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L}); + public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L}); + public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L}); + public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L}); + public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0000000000004000L,0x00000003F8800000L}); + public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L}); + public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0000040000C04050L,0x00000F5BF8806000L}); + public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x0000000001000000L,0x0000002000000000L}); + public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x00000C0000404050L,0x00000F5BF8806000L}); + public static final BitSet FOLLOW_124 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L}); + public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x0000040000404050L,0x00000FDBF8806000L}); + public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L}); + public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x0000000000000000L,0x00000C0000000000L}); + public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x0000000000000000L,0x0000C00000000000L}); + public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0000000000400050L,0x503E000008006000L,0x0000000000000018L}); + public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x2000000000000000L}); + public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x0010000000400050L,0x503E000008080000L,0x000000000000001CL}); + public static final BitSet FOLLOW_133 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L}); + public static final BitSet FOLLOW_134 = new BitSet(new long[]{0x0000000000400050L,0x503E000000000000L,0x0000000000000018L}); + public static final BitSet FOLLOW_135 = new BitSet(new long[]{0x0000000000000000L,0x0CC0000000000000L}); + public static final BitSet FOLLOW_136 = new BitSet(new long[]{0x0000000000000000L,0x0300000000000000L}); + public static final BitSet FOLLOW_137 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L}); + public static final BitSet FOLLOW_138 = new BitSet(new long[]{0x0000000000000000L,0x0C80000000000000L}); + public static final BitSet FOLLOW_139 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L}); + public static final BitSet FOLLOW_140 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); + public static final BitSet FOLLOW_141 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L,0x0000000000000001L}); + public static final BitSet FOLLOW_142 = new BitSet(new long[]{0x0000000000000000L,0x0D80000000000000L}); + public static final BitSet FOLLOW_143 = new BitSet(new long[]{0x0010000000400050L,0x503E000008086000L,0x000000000000001CL}); + public static final BitSet FOLLOW_144 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L,0x0000000000000002L}); + public static final BitSet FOLLOW_145 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L}); + public static final BitSet FOLLOW_146 = new BitSet(new long[]{0x0010000000000000L,0x0000000008080000L,0x0000000000000004L}); + public static final BitSet FOLLOW_147 = new BitSet(new long[]{0x0000000000400050L,0x503E000008000000L,0x0000000000000018L}); + public static final BitSet FOLLOW_148 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00000000000001E0L}); + } + + +} \ No newline at end of file diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/src/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.ide/src/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ide/xtend-gen/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.ide/xtend-gen/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/.classpath b/eclipse/plugins/fr.irit.fiacre.xtext.ui/.classpath new file mode 100644 index 0000000..9081d4f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.ui/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/.project b/eclipse/plugins/fr.irit.fiacre.xtext.ui/.project new file mode 100644 index 0000000..6dc3916 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/.project @@ -0,0 +1,34 @@ + + + fr.irit.fiacre.xtext.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/eclipse/plugins/fr.irit.fiacre.xtext.ui/.settings/org.eclipse.core.resources.prefs b/eclipse/plugins/fr.irit.fiacre.xtext.ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/fr.irit.fiacre.xtext.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..0c68a61 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.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/eclipse/plugins/fr.irit.fiacre.xtext.ui/META-INF/MANIFEST.MF b/eclipse/plugins/fr.irit.fiacre.xtext.ui/META-INF/MANIFEST.MF new file mode 100644 index 0000000..5439477 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/META-INF/MANIFEST.MF @@ -0,0 +1,25 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: fr.irit.fiacre.xtext.ui +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: fr.irit.fiacre.xtext.ui; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: fr.irit.fiacre.xtext, + fr.irit.fiacre.xtext.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", + org.eclipse.ui, + org.eclipse.compare, + org.eclipse.xtext.builder, + org.eclipse.xtend.lib;resolution:=optional, + org.eclipse.xtext.xbase.lib +Import-Package: org.apache.log4j +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: fr.irit.fiacre.xtext.ui.internal, + fr.irit.fiacre.xtext.ui.contentassist, + fr.irit.fiacre.xtext.ui.quickfix +Bundle-Activator: fr.irit.fiacre.xtext.ui.internal.XtextActivator diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/build.properties b/eclipse/plugins/fr.irit.fiacre.xtext.ui/build.properties new file mode 100644 index 0000000..8096926 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/build.properties @@ -0,0 +1,16 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/,\ + plugin.xml diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/plugin.xml b/eclipse/plugins/fr.irit.fiacre.xtext.ui/plugin.xml new file mode 100644 index 0000000..f0357d6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/plugin.xml @@ -0,0 +1,421 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/plugin.xml_gen b/eclipse/plugins/fr.irit.fiacre.xtext.ui/plugin.xml_gen new file mode 100644 index 0000000..222a715 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/plugin.xml_gen @@ -0,0 +1,410 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/AbstractFiacreUiModule.java b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/AbstractFiacreUiModule.java new file mode 100644 index 0000000..ff433f1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/AbstractFiacreUiModule.java @@ -0,0 +1,290 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.ui; + +import com.google.inject.Binder; +import com.google.inject.Provider; +import com.google.inject.name.Names; +import fr.irit.fiacre.xtext.ide.contentassist.antlr.FiacreParser; +import fr.irit.fiacre.xtext.ide.contentassist.antlr.PartialFiacreContentAssistParser; +import fr.irit.fiacre.xtext.ide.contentassist.antlr.internal.InternalFiacreLexer; +import fr.irit.fiacre.xtext.ui.contentassist.FiacreProposalProvider; +import fr.irit.fiacre.xtext.ui.labeling.FiacreDescriptionLabelProvider; +import fr.irit.fiacre.xtext.ui.labeling.FiacreLabelProvider; +import fr.irit.fiacre.xtext.ui.outline.FiacreOutlineTreeProvider; +import fr.irit.fiacre.xtext.ui.quickfix.FiacreQuickfixProvider; +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.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.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; + +/** + * Manual modifications go to {@link FiacreUiModule}. + */ +@SuppressWarnings("all") +public abstract class AbstractFiacreUiModule extends DefaultUiModule { + + public AbstractFiacreUiModule(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(InternalFiacreLexer.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(fr.irit.fiacre.xtext.parser.antlr.internal.InternalFiacreLexer.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 FiacreParser.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public void configureContentAssistLexerProvider(Binder binder) { + binder.bind(InternalFiacreLexer.class).toProvider(LexerProvider.create(InternalFiacreLexer.class)); + } + + // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2 + public Class bindPrefixMatcher() { + return FQNPrefixMatcher.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2 + 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; + } + + // 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.ui.labeling.LabelProviderFragment2 + public Class bindILabelProvider() { + return FiacreLabelProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2 + public void configureResourceUIServiceLabelProvider(Binder binder) { + binder.bind(ILabelProvider.class).annotatedWith(ResourceServiceDescriptionLabelProvider.class).to(FiacreDescriptionLabelProvider.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2 + public Class bindIOutlineTreeProvider() { + return FiacreOutlineTreeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2 + public Class bindIOutlineTreeStructureProvider() { + return FiacreOutlineTreeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2 + public Class bindIssueResolutionProvider() { + return FiacreQuickfixProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2 + public Class bindIContentProposalProvider() { + return FiacreProposalProvider.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 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 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 PartialFiacreContentAssistParser.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; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/FiacreExecutableExtensionFactory.java b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/FiacreExecutableExtensionFactory.java new file mode 100644 index 0000000..ef625cd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/FiacreExecutableExtensionFactory.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.ui; + +import com.google.inject.Injector; +import fr.irit.fiacre.xtext.ui.internal.XtextActivator; +import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory; +import org.osgi.framework.Bundle; + +/** + * This class was generated. Customizations should only happen in a newly + * introduced subclass. + */ +public class FiacreExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory { + + @Override + protected Bundle getBundle() { + return XtextActivator.getInstance().getBundle(); + } + + @Override + protected Injector getInjector() { + return XtextActivator.getInstance().getInjector(XtextActivator.FR_IRIT_FIACRE_XTEXT_FIACRE); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/contentassist/AbstractFiacreProposalProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/contentassist/AbstractFiacreProposalProvider.java new file mode 100644 index 0000000..f3d16df --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/contentassist/AbstractFiacreProposalProvider.java @@ -0,0 +1,1265 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.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.common.ui.contentassist.TerminalsProposalProvider; +import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; +import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor; + +/** + * Represents a generated, default implementation of superclass {@link TerminalsProposalProvider}. + * Methods are dynamically dispatched on the first parameter, i.e., you can override them + * with a more concrete subtype. + */ +public abstract class AbstractFiacreProposalProvider extends TerminalsProposalProvider { + + public void completeModel_Imports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeModel_Declarations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeModel_Requirements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeModel_Root(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeRoot_Declaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeRoot_Observed(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeImportDeclaration_ImportURI(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFunctionDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFunctionDeclaration_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFunctionDeclaration_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFunctionDeclaration_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFunctionDeclaration_Statement(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeTypeDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeTypeDeclaration_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeChannelDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeChannelDeclaration_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeChannelType_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeChannelType_In(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeChannelType_Out(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeChannelType_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeTupleType_Types(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeRangeType_Minimum(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeRangeType_Maximum(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeUnionType_Tags(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeUnionTags_Tags(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeUnionTags_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeUnionTagDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeRecordType_Fields(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeRecordFields_Fields(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeRecordFields_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeRecordFieldDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeQueueType_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeQueueType_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeArrayType_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeArrayType_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeReferencedType_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeConstantDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeConstantDeclaration_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeConstantDeclaration_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeProcessDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeProcessDeclaration_Ports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeProcessDeclaration_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeProcessDeclaration_LocalPorts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeProcessDeclaration_Priorities(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeProcessDeclaration_States(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeProcessDeclaration_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeProcessDeclaration_Prelude(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeProcessDeclaration_Transitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeStateDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeTransitionSource_Origin(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeTransition_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeTransition_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComponentDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComponentDeclaration_Ports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComponentDeclaration_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComponentDeclaration_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComponentDeclaration_LocalPorts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComponentDeclaration_Priorities(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComponentDeclaration_Prelude(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComponentDeclaration_Body(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePortsDeclaration_Ports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePortsDeclaration_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePortDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLocalPortsDeclaration_Ports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLocalPortsDeclaration_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLocalPortsDeclaration_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLocalPortsDeclaration_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeParametersDeclaration_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeParametersDeclaration_Read(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeParametersDeclaration_Write(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeParametersDeclaration_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeParameterDeclaration_Reference(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeParameterDeclaration_Array(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeParameterDeclaration_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeParameterDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVariablesDeclaration_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVariablesDeclaration_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVariablesDeclaration_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVariableDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePriorityDeclaration_Groups(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePriorityGroup_Ports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeUnlessStatement_Followers(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeStatementChoice_Choices(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeStatementSequence_Statements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeBlockStatement_Body(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeReturnStatement_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeTaggedStatement_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePatternStatement_Patterns(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePatternStatement_Values(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePatternStatement_Exp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeConstantPattern_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeIntegerPattern_Negative(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeIntegerPattern_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeIdentifierPattern_Declaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeIdentifierPattern_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeIdentifierPattern_Index(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeIdentifierPattern_Field(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeConditionalStatement_Condition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeConditionalStatement_Then(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeConditionalStatement_Elseif(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeConditionalStatement_Else(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeExtendedConditionalStatement_Condition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeExtendedConditionalStatement_Then(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSelectStatement_Body(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSelectStatement_Index(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSelectStatement_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeWhileStatement_Condition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeWhileStatement_Body(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeForeachStatement_Variable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeForeachStatement_Body(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeToStatement_State(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeCaseStatement_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeCaseStatement_Pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeCaseStatement_Body(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeOnStatement_Condition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeWaitStatement_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeWaitStatement_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComposition_Global(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComposition_Blocks(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeCompositeBlock_Local(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeCompositeBlock_Composition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeInstanceDeclaration_Local(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeInstanceDeclaration_Instance(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePortSet_AllPorts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completePortSet_Ports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComponentInstance_Component(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeComponentInstance_Ports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComponentInstance_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeQuantifiedExpression_Index(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeQuantifiedExpression_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeQuantifiedExpression_Child(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeConditional_Then(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeConditional_Else(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeDisjunction_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeImplication_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeConjunction_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeComparison_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAddition_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSubstraction_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeMultiplication_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeDivision_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeModulo_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeUnaryExpression_Child(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeProjection_Field(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeReferenceExpression_Declaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeIdentifierExpression_Declaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeIdentifierExpression_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeIdentifierExpression_Indexes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeIdentifierExpression_Field(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeRecordExpression_Fields(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFieldExpression_Field(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeFieldExpression_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeArrayExpression_Values(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeQueueExpression_Values(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeEnqueueExpression_Element(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeEnqueueExpression_Queue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAppendExpression_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAppendExpression_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeNaturalLiteral_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeNaturalLowerBound_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeNaturalLowerBound_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeNaturalLowerBound_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeNaturalUpperBound_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeNaturalUpperBound_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeNaturalUpperBound_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeDecimalLowerBound_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeDecimalLowerBound_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeDecimalLowerBound_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeDecimalUpperBound_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeDecimalUpperBound_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeDecimalUpperBound_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeVariableLowerBound_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeVariableLowerBound_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeVariableLowerBound_Variable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeVariableUpperBound_Variable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeVariableUpperBound_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeVariableUpperBound_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeRequirement_Property(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeRequirement_Positive(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeRequirement_Negative(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePropertyDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePropertyDeclaration_Property(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeQuantifiedProperty_Variable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeQuantifiedProperty_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeQuantifiedProperty_Child(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePropertyDisjunction_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePropertyImplication_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePropertyConjunction_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePropertyNegation_Child(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLTLPattern_Property(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeInfinitelyOftenPattern_Subject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeMortalPattern_Subject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePresencePattern_Subject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePresencePattern_Lasting(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePresencePattern_After(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePresencePattern_Lower(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePresencePattern_Upper(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePresencePattern_Until(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePresencePattern_Before(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePresencePattern_Min(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePresencePattern_Max(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAbsencePattern_Subject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAbsencePattern_After(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAbsencePattern_Lower(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAbsencePattern_Upper(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAbsencePattern_Until(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAbsencePattern_Before(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAbsencePattern_Min(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAbsencePattern_Max(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAlwaysPattern_Subject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAlwaysPattern_Before(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAlwaysPattern_After(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAlwaysPattern_Until(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAlwaysPattern_Min(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAlwaysPattern_Max(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSequencePattern_Follower(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSequencePattern_Before(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSequencePattern_Lower(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSequencePattern_Upper(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSequencePattern_After(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSequencePattern_Until(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSequencePattern_Min(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeSequencePattern_Max(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLTLQuantified_Index(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLTLQuantified_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLTLQuantified_Child(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLTLDisjunction_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLTLImplication_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLTLConjunction_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLTLBinary_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLTLUnary_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAtomicLTL_Declaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeEnterStateEvent_Subject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLeaveStateEvent_Subject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeObservableDisjunction_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeObservableImplication_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeObservableConjunction_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeObservableNegation_Child(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePathEvent_Path(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePathEvent_Item(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePath_Items(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeNaturalItem_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeNamedItem_Declaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeStateSubject_State(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeValueSubject_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeTagSubject_Tag(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeEventSubject_Event(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + + public void complete_Model(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_RootDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Root(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_NamedElement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_TypeDeclarationUse(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ConstantDeclarationUse(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ExpressionDeclarationUse(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ReferenceDeclarationUse(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UnionTagDeclarationUse(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_RecordFieldDeclarationUse(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PatternDeclarationUse(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_BoundDeclarationUse(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PathDeclarationUse(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PropertyDeclarationUse(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ImportDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Declaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ParameterizedDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_FunctionDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_TypeDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ChannelDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ChannelType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Type(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_TupleType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_BasicType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_RangeType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UnionType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UnionTags(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UnionTagDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_RecordType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_RecordFields(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_RecordFieldDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_QueueType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ArrayType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ReferencedType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ConstantDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ProcessDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_StateDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_TransitionSource(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Transition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ComponentDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PortsDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PortDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LocalPortsDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ParametersDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ParameterDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VariablesDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VariableDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PriorityDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PriorityGroup(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UnlessStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_StatementChoice(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_StatementSequence(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Statement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_BlockStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ReturnStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_NullStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_TaggedStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PatternStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Pattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_AnyPattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ConstantPattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_IntegerPattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_IdentifierPattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ConditionalStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ExtendedConditionalStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_SelectStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_WhileStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ForeachStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ToStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_CaseStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LoopStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_OnStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_WaitStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Composition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Block(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_CompositeBlock(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_InstanceDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PortSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ComponentInstance(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Expression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_QuantifiedExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Conditional(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Disjunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Implication(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Conjunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Comparison(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Addition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Substraction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Multiplication(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Division(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Modulo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UnaryExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Projection(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ValueExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_AtomicExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ReferenceExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_IdentifierExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_RecordExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_FieldExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ArrayExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_QueueExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_EnqueueExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_AppendExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LiteralExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_BooleanLiteral(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_NaturalLiteral(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LowerBound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UpperBound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_NaturalLowerBound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_NaturalUpperBound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_DecimalLowerBound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_DecimalUpperBound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VariableLowerBound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VariableUpperBound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_InfiniteUpperBound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Requirement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PropertyDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Property(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_QuantifiedProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PropertyDisjunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PropertyImplication(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PropertyConjunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PropertyNegation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_AtomicProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PatternProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LTLPattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_DeadlockFreePattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_InfinitelyOftenPattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_MortalPattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PresencePattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_AbsencePattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_AlwaysPattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_SequencePattern(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LTLProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LTLQuantified(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LTLDisjunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LTLImplication(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LTLConjunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LTLBinary(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LTLUnary(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_AtomicLTL(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_StateEvent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_EnterStateEvent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LeaveStateEvent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Observable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ObservableDisjunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ObservableImplication(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ObservableConjunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ObservableNegation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_AtomicObservable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ObservableEvent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PathEvent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Path(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PathItem(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_NaturalItem(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_NamedItem(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Subject(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_StateSubject(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ValueSubject(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_TagSubject(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_EventSubject(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_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_FLT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/internal/XtextActivator.java b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/internal/XtextActivator.java new file mode 100644 index 0000000..7276520 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src-gen/fr/irit/fiacre/xtext/ui/internal/XtextActivator.java @@ -0,0 +1,103 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.ui.internal; + +import com.google.common.collect.Maps; +import com.google.inject.Guice; +import com.google.inject.Injector; +import com.google.inject.Module; +import fr.irit.fiacre.xtext.FiacreRuntimeModule; +import fr.irit.fiacre.xtext.ui.FiacreUiModule; +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; + +/** + * This class was generated. Customizations should only happen in a newly + * introduced subclass. + */ +public class XtextActivator extends AbstractUIPlugin { + + public static final String FR_IRIT_FIACRE_XTEXT_FIACRE = "fr.irit.fiacre.xtext.Fiacre"; + + private static final Logger logger = Logger.getLogger(XtextActivator.class); + + private static XtextActivator 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 XtextActivator 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 (FR_IRIT_FIACRE_XTEXT_FIACRE.equals(grammar)) { + return new FiacreRuntimeModule(); + } + throw new IllegalArgumentException(grammar); + } + + protected Module getUiModule(String grammar) { + if (FR_IRIT_FIACRE_XTEXT_FIACRE.equals(grammar)) { + return new FiacreUiModule(this); + } + throw new IllegalArgumentException(grammar); + } + + protected Module getSharedStateModule() { + return new SharedStateModule(); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/FiacreUiModule.xtend b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/FiacreUiModule.xtend new file mode 100644 index 0000000..5818e68 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/FiacreUiModule.xtend @@ -0,0 +1,13 @@ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.ui + +import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor + +/** + * Use this class to register components to be used within the Eclipse IDE. + */ +@FinalFieldsConstructor +class FiacreUiModule extends AbstractFiacreUiModule { +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/contentassist/FiacreProposalProvider.xtend b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/contentassist/FiacreProposalProvider.xtend new file mode 100644 index 0000000..bf1c4d0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/contentassist/FiacreProposalProvider.xtend @@ -0,0 +1,12 @@ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.ui.contentassist + + +/** + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist + * on how to customize the content assistant. + */ +class FiacreProposalProvider extends AbstractFiacreProposalProvider { +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/labeling/FiacreDescriptionLabelProvider.xtend b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/labeling/FiacreDescriptionLabelProvider.xtend new file mode 100644 index 0000000..f9c909b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/labeling/FiacreDescriptionLabelProvider.xtend @@ -0,0 +1,24 @@ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.ui.labeling + +import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider + +/** + * Provides labels for IEObjectDescriptions and IResourceDescriptions. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider + */ +class FiacreDescriptionLabelProvider extends DefaultDescriptionLabelProvider { + + // Labels and icons can be computed like this: + +// override text(IEObjectDescription ele) { +// ele.name.toString +// } +// +// override image(IEObjectDescription ele) { +// ele.EClass.name + '.gif' +// } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/labeling/FiacreLabelProvider.xtend b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/labeling/FiacreLabelProvider.xtend new file mode 100644 index 0000000..9155283 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/labeling/FiacreLabelProvider.xtend @@ -0,0 +1,31 @@ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.ui.labeling + +import com.google.inject.Inject +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider +import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider + +/** + * Provides labels for EObjects. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider + */ +class FiacreLabelProvider extends DefaultEObjectLabelProvider { + + @Inject + new(AdapterFactoryLabelProvider delegate) { + super(delegate); + } + + // Labels and icons can be computed like this: + +// def text(Greeting ele) { +// 'A greeting to ' + ele.name +// } +// +// def image(Greeting ele) { +// 'Greeting.gif' +// } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/outline/FiacreOutlineTreeProvider.xtend b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/outline/FiacreOutlineTreeProvider.xtend new file mode 100644 index 0000000..788ad32 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/outline/FiacreOutlineTreeProvider.xtend @@ -0,0 +1,15 @@ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.ui.outline + +import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider + +/** + * Customization of the default outline structure. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#outline + */ +class FiacreOutlineTreeProvider extends DefaultOutlineTreeProvider { + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/quickfix/FiacreQuickfixProvider.xtend b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/quickfix/FiacreQuickfixProvider.xtend new file mode 100644 index 0000000..d06b93a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/src/fr/irit/fiacre/xtext/ui/quickfix/FiacreQuickfixProvider.xtend @@ -0,0 +1,24 @@ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.ui.quickfix + +import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider + +/** + * Custom quickfixes. + * + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes + */ +class FiacreQuickfixProvider extends DefaultQuickfixProvider { + +// @Fix(FiacreValidator.INVALID_NAME) +// def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) { +// acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [ +// context | +// val xtextDocument = context.xtextDocument +// val firstLetter = xtextDocument.get(issue.offset, 1) +// xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase) +// ] +// } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/.gitignore new file mode 100644 index 0000000..3e9a4d8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/.gitignore @@ -0,0 +1,3 @@ +/.FiacreUiModule.java._trace +/.FiacreUiModule.xtendbin +/FiacreUiModule.java diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/contentassist/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/contentassist/.gitignore new file mode 100644 index 0000000..43590e0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/contentassist/.gitignore @@ -0,0 +1,3 @@ +/.FiacreProposalProvider.java._trace +/.FiacreProposalProvider.xtendbin +/FiacreProposalProvider.java diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/labeling/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/labeling/.gitignore new file mode 100644 index 0000000..a184592 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/labeling/.gitignore @@ -0,0 +1,6 @@ +/.FiacreDescriptionLabelProvider.java._trace +/.FiacreDescriptionLabelProvider.xtendbin +/.FiacreLabelProvider.java._trace +/.FiacreLabelProvider.xtendbin +/FiacreDescriptionLabelProvider.java +/FiacreLabelProvider.java diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/outline/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/outline/.gitignore new file mode 100644 index 0000000..d582475 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/outline/.gitignore @@ -0,0 +1,3 @@ +/.FiacreOutlineTreeProvider.java._trace +/.FiacreOutlineTreeProvider.xtendbin +/FiacreOutlineTreeProvider.java diff --git a/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/quickfix/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/quickfix/.gitignore new file mode 100644 index 0000000..04b96eb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext.ui/xtend-gen/fr/irit/fiacre/xtext/ui/quickfix/.gitignore @@ -0,0 +1,3 @@ +/.FiacreQuickfixProvider.java._trace +/.FiacreQuickfixProvider.xtendbin +/FiacreQuickfixProvider.java diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/.antlr-generator-3.2.0-patch.jar b/eclipse/plugins/fr.irit.fiacre.xtext/.antlr-generator-3.2.0-patch.jar new file mode 100644 index 0000000000000000000000000000000000000000..90516fd7ac76a3ec685e046f91eb762e68e20586 GIT binary patch literal 1484649 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%0AaAH?nu0NxCVyl& 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

    0o!{G>?pE44LUKy|#M%y*oR=c!hc*7_{If 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%0DU}=hy#Jq^`TKJB5lbk_T^f`R<=qC!pt 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

    kDx#JEXxXY5fwD%JuFeuD@(=>Tp`Q&% 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�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%0DXL{~qe7JA{hcxu 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

    I8_nWQmla%we@Iji{1SQ?m*~ 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 QGin|_fqUSNv#iel1NWwaUjP6A literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/.classpath b/eclipse/plugins/fr.irit.fiacre.xtext/.classpath new file mode 100644 index 0000000..9081d4f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/.launch/Generate Language Infrastructure (fr.irit.fiacre.xtext).launch b/eclipse/plugins/fr.irit.fiacre.xtext/.launch/Generate Language Infrastructure (fr.irit.fiacre.xtext).launch new file mode 100644 index 0000000..657d23e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/.launch/Generate Language Infrastructure (fr.irit.fiacre.xtext).launch @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/.project b/eclipse/plugins/fr.irit.fiacre.xtext/.project new file mode 100644 index 0000000..c1fd245 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/.project @@ -0,0 +1,34 @@ + + + fr.irit.fiacre.xtext + + + + + + 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/eclipse/plugins/fr.irit.fiacre.xtext/.settings/org.eclipse.core.resources.prefs b/eclipse/plugins/fr.irit.fiacre.xtext/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/fr.irit.fiacre.xtext/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..0c68a61 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/.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/eclipse/plugins/fr.irit.fiacre.xtext/META-INF/MANIFEST.MF b/eclipse/plugins/fr.irit.fiacre.xtext/META-INF/MANIFEST.MF new file mode 100644 index 0000000..af5b1db --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/META-INF/MANIFEST.MF @@ -0,0 +1,29 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: fr.irit.fiacre.xtext +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: fr.irit.fiacre.xtext; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.xtext, + org.eclipse.xtext.xbase, + org.eclipse.equinox.common;bundle-version="3.5.0", + org.eclipse.emf.ecore, + org.eclipse.xtext.xbase.lib, + org.antlr.runtime, + org.eclipse.xtext.util, + org.eclipse.xtend.lib, + org.eclipse.emf.common +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: fr.irit.fiacre.xtext, + fr.irit.fiacre.xtext.services, + fr.irit.fiacre.xtext.generator, + fr.irit.fiacre.xtext.validation, + fr.irit.fiacre.xtext.scoping, + fr.irit.fiacre.xtext.fiacre.impl, + fr.irit.fiacre.xtext.parser.antlr.internal, + fr.irit.fiacre.xtext.fiacre, + fr.irit.fiacre.xtext.parser.antlr, + fr.irit.fiacre.xtext.fiacre.util, + fr.irit.fiacre.xtext.serializer +Import-Package: org.apache.log4j diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/build.properties b/eclipse/plugins/fr.irit.fiacre.xtext/build.properties new file mode 100644 index 0000000..6876fd3 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/build.properties @@ -0,0 +1,28 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = model/generated/,\ + .,\ + META-INF/,\ + plugin.xml +additional.bundles = org.eclipse.xtext.xbase,\ + org.eclipse.xtext.common.types,\ + org.eclipse.xtext.xtext.generator,\ + org.eclipse.emf.codegen.ecore,\ + org.eclipse.emf.mwe.utils,\ + org.eclipse.emf.mwe2.launch,\ + org.eclipse.emf.mwe2.lib,\ + org.objectweb.asm,\ + org.apache.commons.logging,\ + org.apache.log4j,\ + com.ibm.icu diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/model/generated/Fiacre.ecore b/eclipse/plugins/fr.irit.fiacre.xtext/model/generated/Fiacre.ecore new file mode 100644 index 0000000..fbbd71a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/model/generated/Fiacre.ecore @@ -0,0 +1,881 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/model/generated/Fiacre.genmodel b/eclipse/plugins/fr.irit.fiacre.xtext/model/generated/Fiacre.genmodel new file mode 100644 index 0000000..d68a579 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/model/generated/Fiacre.genmodel @@ -0,0 +1,649 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/plugin.properties b/eclipse/plugins/fr.irit.fiacre.xtext/plugin.properties new file mode 100644 index 0000000..66b334e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/plugin.properties @@ -0,0 +1,14 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +# generated by Xtext 2.10.0 + +pluginName = Fiacre Model +providerName = www.example.org diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/plugin.xml b/eclipse/plugins/fr.irit.fiacre.xtext/plugin.xml new file mode 100644 index 0000000..8d13690 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/plugin.xml @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/plugin.xml_gen b/eclipse/plugins/fr.irit.fiacre.xtext/plugin.xml_gen new file mode 100644 index 0000000..e0c6e50 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/plugin.xml_gen @@ -0,0 +1,10 @@ + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/AbstractFiacreRuntimeModule.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/AbstractFiacreRuntimeModule.java new file mode 100644 index 0000000..dcc43fe --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/AbstractFiacreRuntimeModule.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext; + +import com.google.inject.Binder; +import com.google.inject.Provider; +import com.google.inject.name.Names; +import fr.irit.fiacre.xtext.generator.FiacreGenerator; +import fr.irit.fiacre.xtext.parser.antlr.FiacreAntlrTokenFileProvider; +import fr.irit.fiacre.xtext.parser.antlr.FiacreParser; +import fr.irit.fiacre.xtext.parser.antlr.internal.InternalFiacreLexer; +import fr.irit.fiacre.xtext.scoping.FiacreScopeProvider; +import fr.irit.fiacre.xtext.serializer.FiacreSemanticSequencer; +import fr.irit.fiacre.xtext.serializer.FiacreSyntacticSequencer; +import fr.irit.fiacre.xtext.services.FiacreGrammarAccess; +import fr.irit.fiacre.xtext.validation.FiacreValidator; +import java.util.Properties; +import org.eclipse.xtext.Constants; +import org.eclipse.xtext.IGrammarAccess; +import org.eclipse.xtext.generator.IGenerator2; +import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider; +import org.eclipse.xtext.naming.IQualifiedNameProvider; +import org.eclipse.xtext.parser.IParser; +import org.eclipse.xtext.parser.ITokenToStringConverter; +import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider; +import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter; +import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; +import org.eclipse.xtext.parser.antlr.ITokenDefProvider; +import org.eclipse.xtext.parser.antlr.Lexer; +import org.eclipse.xtext.parser.antlr.LexerBindings; +import org.eclipse.xtext.parser.antlr.LexerProvider; +import org.eclipse.xtext.resource.IContainer; +import org.eclipse.xtext.resource.IResourceDescriptions; +import org.eclipse.xtext.resource.containers.IAllContainersState; +import org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider; +import org.eclipse.xtext.resource.containers.StateBasedContainerManager; +import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider; +import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions; +import org.eclipse.xtext.scoping.IGlobalScopeProvider; +import org.eclipse.xtext.scoping.IScopeProvider; +import org.eclipse.xtext.scoping.IgnoreCaseLinking; +import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; +import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider; +import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider; +import org.eclipse.xtext.serializer.ISerializer; +import org.eclipse.xtext.serializer.impl.Serializer; +import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer; +import org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer; +import org.eclipse.xtext.service.DefaultRuntimeModule; +import org.eclipse.xtext.service.SingletonBinding; + +/** + * Manual modifications go to {@link FiacreRuntimeModule}. + */ +@SuppressWarnings("all") +public abstract class AbstractFiacreRuntimeModule extends DefaultRuntimeModule { + + protected Properties properties = null; + + @Override + public void configure(Binder binder) { + properties = tryBindProperties(binder, "fr/irit/fiacre/xtext/Fiacre.properties"); + super.configure(binder); + } + + public void configureLanguageName(Binder binder) { + binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("fr.irit.fiacre.xtext.Fiacre"); + } + + public void configureFileExtensions(Binder binder) { + if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null) + binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("fcr"); + } + + // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2 + public ClassLoader bindClassLoaderToInstance() { + return getClass().getClassLoader(); + } + + // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2 + public Class bindIGrammarAccess() { + return FiacreGrammarAccess.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 + public Class bindISemanticSequencer() { + return FiacreSemanticSequencer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 + public Class bindISyntacticSequencer() { + return FiacreSyntacticSequencer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 + public Class bindISerializer() { + return Serializer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIParser() { + return FiacreParser.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindITokenToStringConverter() { + return AntlrTokenToStringConverter.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIAntlrTokenFileProvider() { + return FiacreAntlrTokenFileProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindLexer() { + return InternalFiacreLexer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindITokenDefProvider() { + return AntlrTokenDefProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Provider provideInternalFiacreLexer() { + return LexerProvider.create(InternalFiacreLexer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public void configureRuntimeLexer(Binder binder) { + binder.bind(Lexer.class) + .annotatedWith(Names.named(LexerBindings.RUNTIME)) + .to(InternalFiacreLexer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2 + @SingletonBinding(eager=true) + public Class bindFiacreValidator() { + return FiacreValidator.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public Class bindIScopeProvider() { + return FiacreScopeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public void configureIScopeProviderDelegate(Binder binder) { + binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(ImportedNamespaceAwareLocalScopeProvider.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public Class bindIGlobalScopeProvider() { + return DefaultGlobalScopeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public void configureIgnoreCaseLinking(Binder binder) { + binder.bindConstant().annotatedWith(IgnoreCaseLinking.class).to(false); + } + + // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2 + public Class bindIQualifiedNameProvider() { + return DefaultDeclarativeQualifiedNameProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public Class bindIContainer$Manager() { + return StateBasedContainerManager.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public Class bindIAllContainersState$Provider() { + return ResourceSetBasedAllContainersStateProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public void configureIResourceDescriptions(Binder binder) { + binder.bind(IResourceDescriptions.class).to(ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public void configureIResourceDescriptionsPersisted(Binder binder) { + binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2 + public Class bindIGenerator2() { + return FiacreGenerator.class; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/Fiacre.xtextbin b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/Fiacre.xtextbin new file mode 100644 index 0000000000000000000000000000000000000000..c4956bb0a3f0f21a35467968fb89b0f06ccaa170 GIT binary patch literal 29460 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 H%BcSX(!5Kb literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/FiacreStandaloneSetupGenerated.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/FiacreStandaloneSetupGenerated.java new file mode 100644 index 0000000..000d007 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/FiacreStandaloneSetupGenerated.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext; + +import com.google.inject.Guice; +import com.google.inject.Injector; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.xtext.ISetup; +import org.eclipse.xtext.common.TerminalsStandaloneSetup; +import org.eclipse.xtext.resource.IResourceFactory; +import org.eclipse.xtext.resource.IResourceServiceProvider; + +@SuppressWarnings("all") +public class FiacreStandaloneSetupGenerated implements ISetup { + + @Override + public Injector createInjectorAndDoEMFRegistration() { + TerminalsStandaloneSetup.doSetup(); + + Injector injector = createInjector(); + register(injector); + return injector; + } + + public Injector createInjector() { + return Guice.createInjector(new FiacreRuntimeModule()); + } + + public void register(Injector injector) { + if (!EPackage.Registry.INSTANCE.containsKey("http://www.irit.fr/fiacre/xtext/Fiacre")) { + EPackage.Registry.INSTANCE.put("http://www.irit.fr/fiacre/xtext/Fiacre", FiacrePackage.eINSTANCE); + } + IResourceFactory resourceFactory = injector.getInstance(IResourceFactory.class); + IResourceServiceProvider serviceProvider = injector.getInstance(IResourceServiceProvider.class); + + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("fcr", resourceFactory); + IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("fcr", serviceProvider); + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AbsencePattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AbsencePattern.java new file mode 100644 index 0000000..290453c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AbsencePattern.java @@ -0,0 +1,250 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Absence Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getSubject Subject}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getAfter After}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getLower Lower}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getUpper Upper}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getUntil Until}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getBefore Before}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getMin Min}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getMax Max}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAbsencePattern() + * @model + * @generated + */ +public interface AbsencePattern extends PatternProperty +{ + /** + * Returns the value of the 'Subject' containment reference. + * + *

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

    + * + * @return the value of the 'Subject' containment reference. + * @see #setSubject(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAbsencePattern_Subject() + * @model containment="true" + * @generated + */ + Observable getSubject(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getSubject Subject}' containment reference. + * + * + * @param value the new value of the 'Subject' containment reference. + * @see #getSubject() + * @generated + */ + void setSubject(Observable value); + + /** + * Returns the value of the 'After' containment reference. + * + *

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

    + * + * @return the value of the 'After' containment reference. + * @see #setAfter(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAbsencePattern_After() + * @model containment="true" + * @generated + */ + Observable getAfter(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getAfter After}' containment reference. + * + * + * @param value the new value of the 'After' containment reference. + * @see #getAfter() + * @generated + */ + void setAfter(Observable value); + + /** + * Returns the value of the 'Lower' containment reference. + * + *

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

    + * + * @return the value of the 'Lower' containment reference. + * @see #setLower(LowerBound) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAbsencePattern_Lower() + * @model containment="true" + * @generated + */ + LowerBound getLower(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getLower Lower}' containment reference. + * + * + * @param value the new value of the 'Lower' containment reference. + * @see #getLower() + * @generated + */ + void setLower(LowerBound value); + + /** + * Returns the value of the 'Upper' containment reference. + * + *

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

    + * + * @return the value of the 'Upper' containment reference. + * @see #setUpper(UpperBound) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAbsencePattern_Upper() + * @model containment="true" + * @generated + */ + UpperBound getUpper(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getUpper Upper}' containment reference. + * + * + * @param value the new value of the 'Upper' containment reference. + * @see #getUpper() + * @generated + */ + void setUpper(UpperBound value); + + /** + * Returns the value of the 'Until' containment reference. + * + *

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

    + * + * @return the value of the 'Until' containment reference. + * @see #setUntil(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAbsencePattern_Until() + * @model containment="true" + * @generated + */ + Observable getUntil(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getUntil Until}' containment reference. + * + * + * @param value the new value of the 'Until' containment reference. + * @see #getUntil() + * @generated + */ + void setUntil(Observable value); + + /** + * Returns the value of the 'Before' containment reference. + * + *

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

    + * + * @return the value of the 'Before' containment reference. + * @see #setBefore(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAbsencePattern_Before() + * @model containment="true" + * @generated + */ + Observable getBefore(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getBefore Before}' containment reference. + * + * + * @param value the new value of the 'Before' containment reference. + * @see #getBefore() + * @generated + */ + void setBefore(Observable value); + + /** + * Returns the value of the 'Min' containment reference. + * + *

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

    + * + * @return the value of the 'Min' containment reference. + * @see #setMin(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAbsencePattern_Min() + * @model containment="true" + * @generated + */ + Observable getMin(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getMin Min}' containment reference. + * + * + * @param value the new value of the 'Min' containment reference. + * @see #getMin() + * @generated + */ + void setMin(Observable value); + + /** + * Returns the value of the 'Max' containment reference. + * + *

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

    + * + * @return the value of the 'Max' containment reference. + * @see #setMax(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAbsencePattern_Max() + * @model containment="true" + * @generated + */ + Observable getMax(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getMax Max}' containment reference. + * + * + * @param value the new value of the 'Max' containment reference. + * @see #getMax() + * @generated + */ + void setMax(Observable value); + +} // AbsencePattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Addition.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Addition.java new file mode 100644 index 0000000..a2f2798 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Addition.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Addition'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Addition#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Addition#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAddition() + * @model + * @generated + */ +public interface Addition extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAddition_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Addition#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAddition_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Addition#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Addition diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AllExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AllExpression.java new file mode 100644 index 0000000..7d0a465 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AllExpression.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'All Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.AllExpression#getIndex Index}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AllExpression#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AllExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAllExpression() + * @model + * @generated + */ +public interface AllExpression extends Expression +{ + /** + * Returns the value of the 'Index' containment reference. + * + *

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

    + * + * @return the value of the 'Index' containment reference. + * @see #setIndex(VariableDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAllExpression_Index() + * @model containment="true" + * @generated + */ + VariableDeclaration getIndex(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AllExpression#getIndex Index}' containment reference. + * + * + * @param value the new value of the 'Index' containment reference. + * @see #getIndex() + * @generated + */ + void setIndex(VariableDeclaration value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(RangeType) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAllExpression_Type() + * @model containment="true" + * @generated + */ + RangeType getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AllExpression#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(RangeType value); + + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAllExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AllExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // AllExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AllProperty.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AllProperty.java new file mode 100644 index 0000000..9dbf19d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AllProperty.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'All Property'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.AllProperty#getVariable Variable}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AllProperty#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AllProperty#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAllProperty() + * @model + * @generated + */ +public interface AllProperty extends Property +{ + /** + * 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(VariableDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAllProperty_Variable() + * @model containment="true" + * @generated + */ + VariableDeclaration getVariable(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AllProperty#getVariable Variable}' containment reference. + * + * + * @param value the new value of the 'Variable' containment reference. + * @see #getVariable() + * @generated + */ + void setVariable(VariableDeclaration value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(RangeType) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAllProperty_Type() + * @model containment="true" + * @generated + */ + RangeType getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AllProperty#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(RangeType value); + + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Property) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAllProperty_Child() + * @model containment="true" + * @generated + */ + Property getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AllProperty#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Property value); + +} // AllProperty diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AlwaysPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AlwaysPattern.java new file mode 100644 index 0000000..d1d164c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AlwaysPattern.java @@ -0,0 +1,196 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Always Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getSubject Subject}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getBefore Before}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getAfter After}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getUntil Until}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getMin Min}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getMax Max}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAlwaysPattern() + * @model + * @generated + */ +public interface AlwaysPattern extends PatternProperty +{ + /** + * Returns the value of the 'Subject' containment reference. + * + *

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

    + * + * @return the value of the 'Subject' containment reference. + * @see #setSubject(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAlwaysPattern_Subject() + * @model containment="true" + * @generated + */ + Observable getSubject(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getSubject Subject}' containment reference. + * + * + * @param value the new value of the 'Subject' containment reference. + * @see #getSubject() + * @generated + */ + void setSubject(Observable value); + + /** + * Returns the value of the 'Before' containment reference. + * + *

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

    + * + * @return the value of the 'Before' containment reference. + * @see #setBefore(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAlwaysPattern_Before() + * @model containment="true" + * @generated + */ + Observable getBefore(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getBefore Before}' containment reference. + * + * + * @param value the new value of the 'Before' containment reference. + * @see #getBefore() + * @generated + */ + void setBefore(Observable value); + + /** + * Returns the value of the 'After' containment reference. + * + *

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

    + * + * @return the value of the 'After' containment reference. + * @see #setAfter(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAlwaysPattern_After() + * @model containment="true" + * @generated + */ + Observable getAfter(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getAfter After}' containment reference. + * + * + * @param value the new value of the 'After' containment reference. + * @see #getAfter() + * @generated + */ + void setAfter(Observable value); + + /** + * Returns the value of the 'Until' containment reference. + * + *

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

    + * + * @return the value of the 'Until' containment reference. + * @see #setUntil(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAlwaysPattern_Until() + * @model containment="true" + * @generated + */ + Observable getUntil(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getUntil Until}' containment reference. + * + * + * @param value the new value of the 'Until' containment reference. + * @see #getUntil() + * @generated + */ + void setUntil(Observable value); + + /** + * Returns the value of the 'Min' containment reference. + * + *

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

    + * + * @return the value of the 'Min' containment reference. + * @see #setMin(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAlwaysPattern_Min() + * @model containment="true" + * @generated + */ + Observable getMin(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getMin Min}' containment reference. + * + * + * @param value the new value of the 'Min' containment reference. + * @see #getMin() + * @generated + */ + void setMin(Observable value); + + /** + * Returns the value of the 'Max' containment reference. + * + *

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

    + * + * @return the value of the 'Max' containment reference. + * @see #setMax(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAlwaysPattern_Max() + * @model containment="true" + * @generated + */ + Observable getMax(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getMax Max}' containment reference. + * + * + * @param value the new value of the 'Max' containment reference. + * @see #getMax() + * @generated + */ + void setMax(Observable value); + +} // AlwaysPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AnyPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AnyPattern.java new file mode 100644 index 0000000..135af7c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AnyPattern.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Any Pattern'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAnyPattern() + * @model + * @generated + */ +public interface AnyPattern extends Pattern +{ +} // AnyPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AppendExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AppendExpression.java new file mode 100644 index 0000000..7d187d6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AppendExpression.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Append Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.AppendExpression#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AppendExpression#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAppendExpression() + * @model + * @generated + */ +public interface AppendExpression extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAppendExpression_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AppendExpression#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAppendExpression_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AppendExpression#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // AppendExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayAccessExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayAccessExpression.java new file mode 100644 index 0000000..0967199 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayAccessExpression.java @@ -0,0 +1,79 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Array Access Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression#getChild Child}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression#getIndexes Indexes}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayAccessExpression() + * @model + * @generated + */ +public interface ArrayAccessExpression extends IdentifierExpression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(IdentifierExpression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayAccessExpression_Child() + * @model containment="true" + * @generated + */ + IdentifierExpression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(IdentifierExpression value); + + /** + * Returns the value of the 'Indexes' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Expression}. + * + *

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

    + * + * @return the value of the 'Indexes' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayAccessExpression_Indexes() + * @model containment="true" + * @generated + */ + EList getIndexes(); + +} // ArrayAccessExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayAccessPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayAccessPattern.java new file mode 100644 index 0000000..0fb08ec --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayAccessPattern.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Array Access Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern#getSource Source}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern#getIndex Index}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayAccessPattern() + * @model + * @generated + */ +public interface ArrayAccessPattern extends IdentifierPattern +{ + /** + * Returns the value of the 'Source' containment reference. + * + *

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

    + * + * @return the value of the 'Source' containment reference. + * @see #setSource(IdentifierPattern) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayAccessPattern_Source() + * @model containment="true" + * @generated + */ + IdentifierPattern getSource(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern#getSource Source}' containment reference. + * + * + * @param value the new value of the 'Source' containment reference. + * @see #getSource() + * @generated + */ + void setSource(IdentifierPattern value); + + /** + * Returns the value of the 'Index' containment reference. + * + *

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

    + * + * @return the value of the 'Index' containment reference. + * @see #setIndex(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayAccessPattern_Index() + * @model containment="true" + * @generated + */ + Expression getIndex(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern#getIndex Index}' containment reference. + * + * + * @param value the new value of the 'Index' containment reference. + * @see #getIndex() + * @generated + */ + void setIndex(Expression value); + +} // ArrayAccessPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayExpression.java new file mode 100644 index 0000000..832db31 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayExpression.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Array Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ArrayExpression#getValues Values}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayExpression() + * @model + * @generated + */ +public interface ArrayExpression extends ValueExpression, Expression +{ + /** + * Returns the value of the 'Values' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Expression}. + * + *

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

    + * + * @return the value of the 'Values' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayExpression_Values() + * @model containment="true" + * @generated + */ + EList getValues(); + +} // ArrayExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayType.java new file mode 100644 index 0000000..9987a06 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ArrayType.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Array Type'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ArrayType#getSize Size}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ArrayType#getType Type}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayType() + * @model + * @generated + */ +public interface ArrayType extends Type +{ + /** + * Returns the value of the 'Size' containment reference. + * + *

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

    + * + * @return the value of the 'Size' containment reference. + * @see #setSize(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayType_Size() + * @model containment="true" + * @generated + */ + Expression getSize(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ArrayType#getSize Size}' containment reference. + * + * + * @param value the new value of the 'Size' containment reference. + * @see #getSize() + * @generated + */ + void setSize(Expression value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(Type) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getArrayType_Type() + * @model containment="true" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ArrayType#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(Type value); + +} // ArrayType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AssignAnyStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AssignAnyStatement.java new file mode 100644 index 0000000..76dc580 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AssignAnyStatement.java @@ -0,0 +1,79 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Assign Any Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement#getPatterns Patterns}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement#getExp Exp}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAssignAnyStatement() + * @model + * @generated + */ +public interface AssignAnyStatement extends PatternStatement +{ + /** + * Returns the value of the 'Patterns' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Pattern}. + * + *

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

    + * + * @return the value of the 'Patterns' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAssignAnyStatement_Patterns() + * @model containment="true" + * @generated + */ + EList getPatterns(); + + /** + * Returns the value of the 'Exp' containment reference. + * + *

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

    + * + * @return the value of the 'Exp' containment reference. + * @see #setExp(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAssignAnyStatement_Exp() + * @model containment="true" + * @generated + */ + Expression getExp(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement#getExp Exp}' containment reference. + * + * + * @param value the new value of the 'Exp' containment reference. + * @see #getExp() + * @generated + */ + void setExp(Expression value); + +} // AssignAnyStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AssignStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AssignStatement.java new file mode 100644 index 0000000..4efae00 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/AssignStatement.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Assign Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.AssignStatement#getPatterns Patterns}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.AssignStatement#getValues Values}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAssignStatement() + * @model + * @generated + */ +public interface AssignStatement extends PatternStatement +{ + /** + * Returns the value of the 'Patterns' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Pattern}. + * + *

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

    + * + * @return the value of the 'Patterns' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAssignStatement_Patterns() + * @model containment="true" + * @generated + */ + EList getPatterns(); + + /** + * Returns the value of the 'Values' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Expression}. + * + *

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

    + * + * @return the value of the 'Values' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getAssignStatement_Values() + * @model containment="true" + * @generated + */ + EList getValues(); + +} // AssignStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BasicType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BasicType.java new file mode 100644 index 0000000..331eeda --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BasicType.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Basic Type'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getBasicType() + * @model + * @generated + */ +public interface BasicType extends Type +{ +} // BasicType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Block.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Block.java new file mode 100644 index 0000000..ac3aa83 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Block.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Block'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Block#getLocal Local}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getBlock() + * @model + * @generated + */ +public interface Block extends EObject +{ + /** + * Returns the value of the 'Local' containment reference. + * + *

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

    + * + * @return the value of the 'Local' containment reference. + * @see #setLocal(PortSet) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getBlock_Local() + * @model containment="true" + * @generated + */ + PortSet getLocal(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Block#getLocal Local}' containment reference. + * + * + * @param value the new value of the 'Local' containment reference. + * @see #getLocal() + * @generated + */ + void setLocal(PortSet value); + +} // Block diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BlockStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BlockStatement.java new file mode 100644 index 0000000..ebb9d4c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BlockStatement.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Block Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.BlockStatement#getBody Body}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getBlockStatement() + * @model + * @generated + */ +public interface BlockStatement extends Statement +{ + /** + * 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(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getBlockStatement_Body() + * @model containment="true" + * @generated + */ + Statement getBody(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.BlockStatement#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Statement value); + +} // BlockStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BooleanLiteral.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BooleanLiteral.java new file mode 100644 index 0000000..1ce5f97 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BooleanLiteral.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Boolean Literal'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getBooleanLiteral() + * @model + * @generated + */ +public interface BooleanLiteral extends LiteralExpression +{ +} // BooleanLiteral diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BooleanType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BooleanType.java new file mode 100644 index 0000000..ebdd9b2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BooleanType.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Boolean Type'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getBooleanType() + * @model + * @generated + */ +public interface BooleanType extends BasicType +{ +} // BooleanType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BoundDeclarationUse.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BoundDeclarationUse.java new file mode 100644 index 0000000..70dfb0c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/BoundDeclarationUse.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Bound Declaration Use'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getBoundDeclarationUse() + * @model + * @generated + */ +public interface BoundDeclarationUse extends EObject +{ +} // BoundDeclarationUse diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/CaseStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/CaseStatement.java new file mode 100644 index 0000000..7587d32 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/CaseStatement.java @@ -0,0 +1,96 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Case Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.CaseStatement#getValue Value}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.CaseStatement#getPattern Pattern}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.CaseStatement#getBody Body}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getCaseStatement() + * @model + * @generated + */ +public interface CaseStatement extends Statement +{ + /** + * 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 fr.irit.fiacre.xtext.fiacre.FiacrePackage#getCaseStatement_Value() + * @model containment="true" + * @generated + */ + Expression getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.CaseStatement#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 'Pattern' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Pattern}. + * + *

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

    + * + * @return the value of the 'Pattern' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getCaseStatement_Pattern() + * @model containment="true" + * @generated + */ + EList getPattern(); + + /** + * Returns the value of the 'Body' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Statement}. + * + *

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

    + * + * @return the value of the 'Body' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getCaseStatement_Body() + * @model containment="true" + * @generated + */ + EList getBody(); + +} // CaseStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ChannelDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ChannelDeclaration.java new file mode 100644 index 0000000..8183785 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ChannelDeclaration.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Channel Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ChannelDeclaration#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getChannelDeclaration() + * @model + * @generated + */ +public interface ChannelDeclaration extends TypeDeclarationUse, Declaration +{ + /** + * 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(ChannelType) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getChannelDeclaration_Value() + * @model containment="true" + * @generated + */ + ChannelType getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ChannelDeclaration#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(ChannelType value); + +} // ChannelDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ChannelType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ChannelType.java new file mode 100644 index 0000000..6e8a08d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ChannelType.java @@ -0,0 +1,143 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Channel Type'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ChannelType#getSize Size}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ChannelType#isIn In}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ChannelType#isOut Out}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ChannelType#getType Type}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getChannelType() + * @model + * @generated + */ +public interface ChannelType extends EObject +{ + /** + * Returns the value of the 'Size' containment reference. + * + *

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

    + * + * @return the value of the 'Size' containment reference. + * @see #setSize(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getChannelType_Size() + * @model containment="true" + * @generated + */ + Expression getSize(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ChannelType#getSize Size}' containment reference. + * + * + * @param value the new value of the 'Size' containment reference. + * @see #getSize() + * @generated + */ + void setSize(Expression value); + + /** + * Returns the value of the 'In' attribute. + * + *

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

    + * + * @return the value of the 'In' attribute. + * @see #setIn(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getChannelType_In() + * @model + * @generated + */ + boolean isIn(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ChannelType#isIn In}' attribute. + * + * + * @param value the new value of the 'In' attribute. + * @see #isIn() + * @generated + */ + void setIn(boolean value); + + /** + * Returns the value of the 'Out' attribute. + * + *

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

    + * + * @return the value of the 'Out' attribute. + * @see #setOut(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getChannelType_Out() + * @model + * @generated + */ + boolean isOut(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ChannelType#isOut Out}' attribute. + * + * + * @param value the new value of the 'Out' attribute. + * @see #isOut() + * @generated + */ + void setOut(boolean value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(Type) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getChannelType_Type() + * @model containment="true" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ChannelType#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(Type value); + +} // ChannelType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonEqual.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonEqual.java new file mode 100644 index 0000000..67ae2b0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonEqual.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Comparison Equal'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonEqual() + * @model + * @generated + */ +public interface ComparisonEqual extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonEqual_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonEqual_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // ComparisonEqual diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonGreater.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonGreater.java new file mode 100644 index 0000000..203981a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonGreater.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Comparison Greater'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonGreater() + * @model + * @generated + */ +public interface ComparisonGreater extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonGreater_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonGreater_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // ComparisonGreater diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonGreaterEqual.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonGreaterEqual.java new file mode 100644 index 0000000..e902188 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonGreaterEqual.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Comparison Greater Equal'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonGreaterEqual() + * @model + * @generated + */ +public interface ComparisonGreaterEqual extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonGreaterEqual_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonGreaterEqual_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // ComparisonGreaterEqual diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonLesser.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonLesser.java new file mode 100644 index 0000000..b596f00 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonLesser.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Comparison Lesser'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonLesser() + * @model + * @generated + */ +public interface ComparisonLesser extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonLesser_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonLesser_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // ComparisonLesser diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonLesserEqual.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonLesserEqual.java new file mode 100644 index 0000000..a360af8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonLesserEqual.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Comparison Lesser Equal'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonLesserEqual() + * @model + * @generated + */ +public interface ComparisonLesserEqual extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonLesserEqual_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonLesserEqual_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // ComparisonLesserEqual diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonNotEqual.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonNotEqual.java new file mode 100644 index 0000000..a67a97c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComparisonNotEqual.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Comparison Not Equal'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonNotEqual() + * @model + * @generated + */ +public interface ComparisonNotEqual extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonNotEqual_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComparisonNotEqual_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // ComparisonNotEqual diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComponentDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComponentDeclaration.java new file mode 100644 index 0000000..6ea3f08 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComponentDeclaration.java @@ -0,0 +1,140 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Component Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getPorts Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getLocalPorts Local Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getPriorities Priorities}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getPrelude Prelude}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getBody Body}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComponentDeclaration() + * @model + * @generated + */ +public interface ComponentDeclaration extends RootDeclaration, PathDeclarationUse, ParameterizedDeclaration +{ + /** + * Returns the value of the 'Ports' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration}. + * + *

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

    + * + * @return the value of the 'Ports' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComponentDeclaration_Ports() + * @model containment="true" + * @generated + */ + EList getPorts(); + + /** + * Returns the value of the 'Local Ports' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration}. + * + *

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

    + * + * @return the value of the 'Local Ports' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComponentDeclaration_LocalPorts() + * @model containment="true" + * @generated + */ + EList getLocalPorts(); + + /** + * Returns the value of the 'Priorities' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration}. + * + *

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

    + * + * @return the value of the 'Priorities' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComponentDeclaration_Priorities() + * @model containment="true" + * @generated + */ + EList getPriorities(); + + /** + * Returns the value of the 'Prelude' containment reference. + * + *

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

    + * + * @return the value of the 'Prelude' containment reference. + * @see #setPrelude(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComponentDeclaration_Prelude() + * @model containment="true" + * @generated + */ + Statement getPrelude(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getPrelude Prelude}' containment reference. + * + * + * @param value the new value of the 'Prelude' containment reference. + * @see #getPrelude() + * @generated + */ + void setPrelude(Statement 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(Composition) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComponentDeclaration_Body() + * @model containment="true" + * @generated + */ + Composition getBody(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Composition value); + +} // ComponentDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComponentInstance.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComponentInstance.java new file mode 100644 index 0000000..3e9ca7e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ComponentInstance.java @@ -0,0 +1,98 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Component Instance'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComponentInstance#getComponent Component}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComponentInstance#getPorts Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ComponentInstance#getParameters Parameters}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComponentInstance() + * @model + * @generated + */ +public interface ComponentInstance extends EObject +{ + /** + * Returns the value of the 'Component' reference. + * + *

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

    + * + * @return the value of the 'Component' reference. + * @see #setComponent(ParameterizedDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComponentInstance_Component() + * @model + * @generated + */ + ParameterizedDeclaration getComponent(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ComponentInstance#getComponent Component}' reference. + * + * + * @param value the new value of the 'Component' reference. + * @see #getComponent() + * @generated + */ + void setComponent(ParameterizedDeclaration value); + + /** + * Returns the value of the 'Ports' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Expression}. + * + *

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

    + * + * @return the value of the 'Ports' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComponentInstance_Ports() + * @model containment="true" + * @generated + */ + EList getPorts(); + + /** + * Returns the value of the 'Parameters' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Expression}. + * + *

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

    + * + * @return the value of the 'Parameters' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComponentInstance_Parameters() + * @model containment="true" + * @generated + */ + EList getParameters(); + +} // ComponentInstance diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/CompositeBlock.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/CompositeBlock.java new file mode 100644 index 0000000..2b7c7bf --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/CompositeBlock.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Composite Block'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.CompositeBlock#getComposition Composition}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getCompositeBlock() + * @model + * @generated + */ +public interface CompositeBlock extends Block +{ + /** + * Returns the value of the 'Composition' containment reference. + * + *

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

    + * + * @return the value of the 'Composition' containment reference. + * @see #setComposition(Composition) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getCompositeBlock_Composition() + * @model containment="true" + * @generated + */ + Composition getComposition(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.CompositeBlock#getComposition Composition}' containment reference. + * + * + * @param value the new value of the 'Composition' containment reference. + * @see #getComposition() + * @generated + */ + void setComposition(Composition value); + +} // CompositeBlock diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Composition.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Composition.java new file mode 100644 index 0000000..78eab59 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Composition.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Composition'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Composition#getGlobal Global}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Composition#getBlocks Blocks}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComposition() + * @model + * @generated + */ +public interface Composition extends EObject +{ + /** + * Returns the value of the 'Global' containment reference. + * + *

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

    + * + * @return the value of the 'Global' containment reference. + * @see #setGlobal(PortSet) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComposition_Global() + * @model containment="true" + * @generated + */ + PortSet getGlobal(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Composition#getGlobal Global}' containment reference. + * + * + * @param value the new value of the 'Global' containment reference. + * @see #getGlobal() + * @generated + */ + void setGlobal(PortSet value); + + /** + * Returns the value of the 'Blocks' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Block}. + * + *

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

    + * + * @return the value of the 'Blocks' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getComposition_Blocks() + * @model containment="true" + * @generated + */ + EList getBlocks(); + +} // Composition diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Conditional.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Conditional.java new file mode 100644 index 0000000..1757efc --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Conditional.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Conditional'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Conditional#getCondition Condition}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Conditional#getThen Then}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Conditional#getElse Else}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConditional() + * @model + * @generated + */ +public interface Conditional extends Expression +{ + /** + * Returns the value of the 'Condition' containment reference. + * + *

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

    + * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConditional_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Conditional#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' containment reference. + * + *

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

    + * + * @return the value of the 'Then' containment reference. + * @see #setThen(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConditional_Then() + * @model containment="true" + * @generated + */ + Expression getThen(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Conditional#getThen Then}' containment reference. + * + * + * @param value the new value of the 'Then' containment reference. + * @see #getThen() + * @generated + */ + void setThen(Expression value); + + /** + * Returns the value of the 'Else' containment reference. + * + *

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

    + * + * @return the value of the 'Else' containment reference. + * @see #setElse(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConditional_Else() + * @model containment="true" + * @generated + */ + Expression getElse(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Conditional#getElse Else}' containment reference. + * + * + * @param value the new value of the 'Else' containment reference. + * @see #getElse() + * @generated + */ + void setElse(Expression value); + +} // Conditional diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConditionalStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConditionalStatement.java new file mode 100644 index 0000000..199373d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConditionalStatement.java @@ -0,0 +1,133 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Conditional Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getCondition Condition}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getThen Then}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getElseif Elseif}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getElse Else}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConditionalStatement() + * @model + * @generated + */ +public interface ConditionalStatement extends Statement +{ + /** + * Returns the value of the 'Condition' containment reference. + * + *

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

    + * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConditionalStatement_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#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' containment reference. + * + *

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

    + * + * @return the value of the 'Then' containment reference. + * @see #setThen(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConditionalStatement_Then() + * @model containment="true" + * @generated + */ + Statement getThen(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getThen Then}' containment reference. + * + * + * @param value the new value of the 'Then' containment reference. + * @see #getThen() + * @generated + */ + void setThen(Statement value); + + /** + * Returns the value of the 'Elseif' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement}. + * + *

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

    + * + * @return the value of the 'Elseif' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConditionalStatement_Elseif() + * @model containment="true" + * @generated + */ + EList getElseif(); + + /** + * Returns the value of the 'Else' containment reference. + * + *

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

    + * + * @return the value of the 'Else' containment reference. + * @see #setElse(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConditionalStatement_Else() + * @model containment="true" + * @generated + */ + Statement getElse(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getElse Else}' containment reference. + * + * + * @param value the new value of the 'Else' containment reference. + * @see #getElse() + * @generated + */ + void setElse(Statement value); + +} // ConditionalStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Conjunction.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Conjunction.java new file mode 100644 index 0000000..7ae733c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Conjunction.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Conjunction'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Conjunction#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Conjunction#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConjunction() + * @model + * @generated + */ +public interface Conjunction extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConjunction_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Conjunction#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConjunction_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Conjunction#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Conjunction diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantDeclaration.java new file mode 100644 index 0000000..b1a80a2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantDeclaration.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Constant Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConstantDeclaration() + * @model + * @generated + */ +public interface ConstantDeclaration extends ConstantDeclarationUse, ExpressionDeclarationUse, BoundDeclarationUse, Declaration +{ + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(Type) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConstantDeclaration_Type() + * @model containment="true" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(Type value); + + /** + * 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 fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConstantDeclaration_Value() + * @model containment="true" + * @generated + */ + Expression getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(Expression value); + +} // ConstantDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantDeclarationUse.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantDeclarationUse.java new file mode 100644 index 0000000..377c11c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantDeclarationUse.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Constant Declaration Use'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConstantDeclarationUse() + * @model + * @generated + */ +public interface ConstantDeclarationUse extends EObject +{ +} // ConstantDeclarationUse diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantPattern.java new file mode 100644 index 0000000..c5cf6ab --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstantPattern.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Constant Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ConstantPattern#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConstantPattern() + * @model + * @generated + */ +public interface ConstantPattern extends Pattern +{ + /** + * 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(LiteralExpression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConstantPattern_Value() + * @model containment="true" + * @generated + */ + LiteralExpression getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ConstantPattern#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(LiteralExpression value); + +} // ConstantPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstructionExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstructionExpression.java new file mode 100644 index 0000000..685a45f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstructionExpression.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Construction Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ConstructionExpression#getParameters Parameters}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConstructionExpression() + * @model + * @generated + */ +public interface ConstructionExpression extends IdentifierExpression +{ + /** + * Returns the value of the 'Parameters' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Expression}. + * + *

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

    + * + * @return the value of the 'Parameters' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConstructionExpression_Parameters() + * @model containment="true" + * @generated + */ + EList getParameters(); + +} // ConstructionExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstructorPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstructorPattern.java new file mode 100644 index 0000000..ac2e210 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ConstructorPattern.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Constructor Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ConstructorPattern#getParameters Parameters}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConstructorPattern() + * @model + * @generated + */ +public interface ConstructorPattern extends IdentifierPattern +{ + /** + * Returns the value of the 'Parameters' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Pattern}. + * + *

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

    + * + * @return the value of the 'Parameters' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getConstructorPattern_Parameters() + * @model containment="true" + * @generated + */ + EList getParameters(); + +} // ConstructorPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DeadlockFreePattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DeadlockFreePattern.java new file mode 100644 index 0000000..2f91c53 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DeadlockFreePattern.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Deadlock Free Pattern'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDeadlockFreePattern() + * @model + * @generated + */ +public interface DeadlockFreePattern extends PatternProperty +{ +} // DeadlockFreePattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DecimalLowerBound.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DecimalLowerBound.java new file mode 100644 index 0000000..9b4f364 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DecimalLowerBound.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Decimal Lower Bound'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.DecimalLowerBound#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDecimalLowerBound() + * @model + * @generated + */ +public interface DecimalLowerBound extends LowerBound +{ + /** + * Returns the value of the 'Value' attribute. + * + *

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

    + * + * @return the value of the 'Value' attribute. + * @see #setValue(float) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDecimalLowerBound_Value() + * @model + * @generated + */ + float getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.DecimalLowerBound#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(float value); + +} // DecimalLowerBound diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DecimalUpperBound.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DecimalUpperBound.java new file mode 100644 index 0000000..aa5f5ad --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/DecimalUpperBound.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Decimal Upper Bound'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#getValue Value}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#isLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#isRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDecimalUpperBound() + * @model + * @generated + */ +public interface DecimalUpperBound extends UpperBound +{ + /** + * Returns the value of the 'Value' attribute. + * + *

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

    + * + * @return the value of the 'Value' attribute. + * @see #setValue(float) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDecimalUpperBound_Value() + * @model + * @generated + */ + float getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(float value); + + /** + * Returns the value of the 'Left' attribute. + * + *

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

    + * + * @return the value of the 'Left' attribute. + * @see #setLeft(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDecimalUpperBound_Left() + * @model + * @generated + */ + boolean isLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#isLeft Left}' attribute. + * + * + * @param value the new value of the 'Left' attribute. + * @see #isLeft() + * @generated + */ + void setLeft(boolean value); + + /** + * Returns the value of the 'Right' attribute. + * + *

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

    + * + * @return the value of the 'Right' attribute. + * @see #setRight(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDecimalUpperBound_Right() + * @model + * @generated + */ + boolean isRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#isRight Right}' attribute. + * + * + * @param value the new value of the 'Right' attribute. + * @see #isRight() + * @generated + */ + void setRight(boolean value); + +} // DecimalUpperBound diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Declaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Declaration.java new file mode 100644 index 0000000..0c215d2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Declaration.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Declaration'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDeclaration() + * @model + * @generated + */ +public interface Declaration extends NamedElement +{ +} // Declaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Disjunction.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Disjunction.java new file mode 100644 index 0000000..b825dc6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Disjunction.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Disjunction'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Disjunction#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Disjunction#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDisjunction() + * @model + * @generated + */ +public interface Disjunction extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDisjunction_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Disjunction#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDisjunction_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Disjunction#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Disjunction diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Division.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Division.java new file mode 100644 index 0000000..ef36241 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Division.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Division'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Division#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Division#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDivision() + * @model + * @generated + */ +public interface Division extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDivision_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Division#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getDivision_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Division#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Division diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EnqueueExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EnqueueExpression.java new file mode 100644 index 0000000..0f87a41 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EnqueueExpression.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Enqueue Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression#getElement Element}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression#getQueue Queue}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getEnqueueExpression() + * @model + * @generated + */ +public interface EnqueueExpression extends Expression +{ + /** + * Returns the value of the 'Element' containment reference. + * + *

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

    + * + * @return the value of the 'Element' containment reference. + * @see #setElement(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getEnqueueExpression_Element() + * @model containment="true" + * @generated + */ + Expression getElement(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression#getElement Element}' containment reference. + * + * + * @param value the new value of the 'Element' containment reference. + * @see #getElement() + * @generated + */ + void setElement(Expression value); + + /** + * Returns the value of the 'Queue' containment reference. + * + *

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

    + * + * @return the value of the 'Queue' containment reference. + * @see #setQueue(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getEnqueueExpression_Queue() + * @model containment="true" + * @generated + */ + Expression getQueue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression#getQueue Queue}' containment reference. + * + * + * @param value the new value of the 'Queue' containment reference. + * @see #getQueue() + * @generated + */ + void setQueue(Expression value); + +} // EnqueueExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EnterStateEvent.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EnterStateEvent.java new file mode 100644 index 0000000..bd48390 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EnterStateEvent.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Enter State Event'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getEnterStateEvent() + * @model + * @generated + */ +public interface EnterStateEvent extends StateEvent +{ +} // EnterStateEvent diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EventSubject.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EventSubject.java new file mode 100644 index 0000000..c95b411 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/EventSubject.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Event Subject'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.EventSubject#getEvent Event}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getEventSubject() + * @model + * @generated + */ +public interface EventSubject extends Subject +{ + /** + * Returns the value of the 'Event' attribute. + * + *

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

    + * + * @return the value of the 'Event' attribute. + * @see #setEvent(String) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getEventSubject_Event() + * @model + * @generated + */ + String getEvent(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.EventSubject#getEvent Event}' attribute. + * + * + * @param value the new value of the 'Event' attribute. + * @see #getEvent() + * @generated + */ + void setEvent(String value); + +} // EventSubject diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExistsExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExistsExpression.java new file mode 100644 index 0000000..55e549a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExistsExpression.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Exists Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ExistsExpression#getIndex Index}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ExistsExpression#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ExistsExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExistsExpression() + * @model + * @generated + */ +public interface ExistsExpression extends Expression +{ + /** + * Returns the value of the 'Index' containment reference. + * + *

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

    + * + * @return the value of the 'Index' containment reference. + * @see #setIndex(VariableDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExistsExpression_Index() + * @model containment="true" + * @generated + */ + VariableDeclaration getIndex(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ExistsExpression#getIndex Index}' containment reference. + * + * + * @param value the new value of the 'Index' containment reference. + * @see #getIndex() + * @generated + */ + void setIndex(VariableDeclaration value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(RangeType) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExistsExpression_Type() + * @model containment="true" + * @generated + */ + RangeType getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ExistsExpression#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(RangeType value); + + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExistsExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ExistsExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // ExistsExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExistsProperty.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExistsProperty.java new file mode 100644 index 0000000..68f2cce --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExistsProperty.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Exists Property'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ExistsProperty#getVariable Variable}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ExistsProperty#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ExistsProperty#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExistsProperty() + * @model + * @generated + */ +public interface ExistsProperty extends Property +{ + /** + * 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(VariableDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExistsProperty_Variable() + * @model containment="true" + * @generated + */ + VariableDeclaration getVariable(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ExistsProperty#getVariable Variable}' containment reference. + * + * + * @param value the new value of the 'Variable' containment reference. + * @see #getVariable() + * @generated + */ + void setVariable(VariableDeclaration value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(RangeType) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExistsProperty_Type() + * @model containment="true" + * @generated + */ + RangeType getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ExistsProperty#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(RangeType value); + + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Property) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExistsProperty_Child() + * @model containment="true" + * @generated + */ + Property getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ExistsProperty#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Property value); + +} // ExistsProperty diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Expression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Expression.java new file mode 100644 index 0000000..4500e7b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Expression.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Expression'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExpression() + * @model + * @generated + */ +public interface Expression extends EObject +{ +} // Expression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExpressionDeclarationUse.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExpressionDeclarationUse.java new file mode 100644 index 0000000..dfc206a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExpressionDeclarationUse.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Expression Declaration Use'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExpressionDeclarationUse() + * @model + * @generated + */ +public interface ExpressionDeclarationUse extends EObject +{ +} // ExpressionDeclarationUse diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExtendedConditionalStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExtendedConditionalStatement.java new file mode 100644 index 0000000..7b4a399 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ExtendedConditionalStatement.java @@ -0,0 +1,89 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Extended Conditional Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement#getCondition Condition}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement#getThen Then}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExtendedConditionalStatement() + * @model + * @generated + */ +public interface ExtendedConditionalStatement extends EObject +{ + /** + * Returns the value of the 'Condition' containment reference. + * + *

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

    + * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExtendedConditionalStatement_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement#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' containment reference. + * + *

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

    + * + * @return the value of the 'Then' containment reference. + * @see #setThen(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getExtendedConditionalStatement_Then() + * @model containment="true" + * @generated + */ + Statement getThen(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement#getThen Then}' containment reference. + * + * + * @param value the new value of the 'Then' containment reference. + * @see #getThen() + * @generated + */ + void setThen(Statement value); + +} // ExtendedConditionalStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FalseLiteral.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FalseLiteral.java new file mode 100644 index 0000000..226166a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FalseLiteral.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'False Literal'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getFalseLiteral() + * @model + * @generated + */ +public interface FalseLiteral extends BooleanLiteral +{ +} // FalseLiteral diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FiacreFactory.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FiacreFactory.java new file mode 100644 index 0000000..89d1d02 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FiacreFactory.java @@ -0,0 +1,1800 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +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 fr.irit.fiacre.xtext.fiacre.FiacrePackage + * @generated + */ +public interface FiacreFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * + * + * @generated + */ + FiacreFactory eINSTANCE = fr.irit.fiacre.xtext.fiacre.impl.FiacreFactoryImpl.init(); + + /** + * Returns a new object of class 'Model'. + * + * + * @return a new object of class 'Model'. + * @generated + */ + Model createModel(); + + /** + * Returns a new object of class 'Root Declaration'. + * + * + * @return a new object of class 'Root Declaration'. + * @generated + */ + RootDeclaration createRootDeclaration(); + + /** + * Returns a new object of class 'Root'. + * + * + * @return a new object of class 'Root'. + * @generated + */ + Root createRoot(); + + /** + * Returns a new object of class 'Named Element'. + * + * + * @return a new object of class 'Named Element'. + * @generated + */ + NamedElement createNamedElement(); + + /** + * Returns a new object of class 'Type Declaration Use'. + * + * + * @return a new object of class 'Type Declaration Use'. + * @generated + */ + TypeDeclarationUse createTypeDeclarationUse(); + + /** + * Returns a new object of class 'Constant Declaration Use'. + * + * + * @return a new object of class 'Constant Declaration Use'. + * @generated + */ + ConstantDeclarationUse createConstantDeclarationUse(); + + /** + * Returns a new object of class 'Expression Declaration Use'. + * + * + * @return a new object of class 'Expression Declaration Use'. + * @generated + */ + ExpressionDeclarationUse createExpressionDeclarationUse(); + + /** + * Returns a new object of class 'Reference Declaration Use'. + * + * + * @return a new object of class 'Reference Declaration Use'. + * @generated + */ + ReferenceDeclarationUse createReferenceDeclarationUse(); + + /** + * Returns a new object of class 'Union Tag Declaration Use'. + * + * + * @return a new object of class 'Union Tag Declaration Use'. + * @generated + */ + UnionTagDeclarationUse createUnionTagDeclarationUse(); + + /** + * Returns a new object of class 'Record Field Declaration Use'. + * + * + * @return a new object of class 'Record Field Declaration Use'. + * @generated + */ + RecordFieldDeclarationUse createRecordFieldDeclarationUse(); + + /** + * Returns a new object of class 'Pattern Declaration Use'. + * + * + * @return a new object of class 'Pattern Declaration Use'. + * @generated + */ + PatternDeclarationUse createPatternDeclarationUse(); + + /** + * Returns a new object of class 'Bound Declaration Use'. + * + * + * @return a new object of class 'Bound Declaration Use'. + * @generated + */ + BoundDeclarationUse createBoundDeclarationUse(); + + /** + * Returns a new object of class 'Path Declaration Use'. + * + * + * @return a new object of class 'Path Declaration Use'. + * @generated + */ + PathDeclarationUse createPathDeclarationUse(); + + /** + * Returns a new object of class 'Property Declaration Use'. + * + * + * @return a new object of class 'Property Declaration Use'. + * @generated + */ + PropertyDeclarationUse createPropertyDeclarationUse(); + + /** + * Returns a new object of class 'Import Declaration'. + * + * + * @return a new object of class 'Import Declaration'. + * @generated + */ + ImportDeclaration createImportDeclaration(); + + /** + * Returns a new object of class 'Declaration'. + * + * + * @return a new object of class 'Declaration'. + * @generated + */ + Declaration createDeclaration(); + + /** + * Returns a new object of class 'Parameterized Declaration'. + * + * + * @return a new object of class 'Parameterized Declaration'. + * @generated + */ + ParameterizedDeclaration createParameterizedDeclaration(); + + /** + * Returns a new object of class 'Function Declaration'. + * + * + * @return a new object of class 'Function Declaration'. + * @generated + */ + FunctionDeclaration createFunctionDeclaration(); + + /** + * Returns a new object of class 'Type Declaration'. + * + * + * @return a new object of class 'Type Declaration'. + * @generated + */ + TypeDeclaration createTypeDeclaration(); + + /** + * Returns a new object of class 'Channel Declaration'. + * + * + * @return a new object of class 'Channel Declaration'. + * @generated + */ + ChannelDeclaration createChannelDeclaration(); + + /** + * Returns a new object of class 'Channel Type'. + * + * + * @return a new object of class 'Channel Type'. + * @generated + */ + ChannelType createChannelType(); + + /** + * Returns a new object of class 'Type'. + * + * + * @return a new object of class 'Type'. + * @generated + */ + Type createType(); + + /** + * Returns a new object of class 'Basic Type'. + * + * + * @return a new object of class 'Basic Type'. + * @generated + */ + BasicType createBasicType(); + + /** + * Returns a new object of class 'Range Type'. + * + * + * @return a new object of class 'Range Type'. + * @generated + */ + RangeType createRangeType(); + + /** + * Returns a new object of class 'Union Type'. + * + * + * @return a new object of class 'Union Type'. + * @generated + */ + UnionType createUnionType(); + + /** + * Returns a new object of class 'Union Tags'. + * + * + * @return a new object of class 'Union Tags'. + * @generated + */ + UnionTags createUnionTags(); + + /** + * Returns a new object of class 'Union Tag Declaration'. + * + * + * @return a new object of class 'Union Tag Declaration'. + * @generated + */ + UnionTagDeclaration createUnionTagDeclaration(); + + /** + * Returns a new object of class 'Record Type'. + * + * + * @return a new object of class 'Record Type'. + * @generated + */ + RecordType createRecordType(); + + /** + * Returns a new object of class 'Record Fields'. + * + * + * @return a new object of class 'Record Fields'. + * @generated + */ + RecordFields createRecordFields(); + + /** + * Returns a new object of class 'Record Field Declaration'. + * + * + * @return a new object of class 'Record Field Declaration'. + * @generated + */ + RecordFieldDeclaration createRecordFieldDeclaration(); + + /** + * Returns a new object of class 'Queue Type'. + * + * + * @return a new object of class 'Queue Type'. + * @generated + */ + QueueType createQueueType(); + + /** + * Returns a new object of class 'Array Type'. + * + * + * @return a new object of class 'Array Type'. + * @generated + */ + ArrayType createArrayType(); + + /** + * Returns a new object of class 'Referenced Type'. + * + * + * @return a new object of class 'Referenced Type'. + * @generated + */ + ReferencedType createReferencedType(); + + /** + * Returns a new object of class 'Constant Declaration'. + * + * + * @return a new object of class 'Constant Declaration'. + * @generated + */ + ConstantDeclaration createConstantDeclaration(); + + /** + * Returns a new object of class 'Process Declaration'. + * + * + * @return a new object of class 'Process Declaration'. + * @generated + */ + ProcessDeclaration createProcessDeclaration(); + + /** + * Returns a new object of class 'State Declaration'. + * + * + * @return a new object of class 'State Declaration'. + * @generated + */ + StateDeclaration createStateDeclaration(); + + /** + * Returns a new object of class 'Transition Source'. + * + * + * @return a new object of class 'Transition Source'. + * @generated + */ + TransitionSource createTransitionSource(); + + /** + * Returns a new object of class 'Transition'. + * + * + * @return a new object of class 'Transition'. + * @generated + */ + Transition createTransition(); + + /** + * Returns a new object of class 'Component Declaration'. + * + * + * @return a new object of class 'Component Declaration'. + * @generated + */ + ComponentDeclaration createComponentDeclaration(); + + /** + * Returns a new object of class 'Ports Declaration'. + * + * + * @return a new object of class 'Ports Declaration'. + * @generated + */ + PortsDeclaration createPortsDeclaration(); + + /** + * Returns a new object of class 'Port Declaration'. + * + * + * @return a new object of class 'Port Declaration'. + * @generated + */ + PortDeclaration createPortDeclaration(); + + /** + * Returns a new object of class 'Local Ports Declaration'. + * + * + * @return a new object of class 'Local Ports Declaration'. + * @generated + */ + LocalPortsDeclaration createLocalPortsDeclaration(); + + /** + * Returns a new object of class 'Parameters Declaration'. + * + * + * @return a new object of class 'Parameters Declaration'. + * @generated + */ + ParametersDeclaration createParametersDeclaration(); + + /** + * Returns a new object of class 'Parameter Declaration'. + * + * + * @return a new object of class 'Parameter Declaration'. + * @generated + */ + ParameterDeclaration createParameterDeclaration(); + + /** + * Returns a new object of class 'Variables Declaration'. + * + * + * @return a new object of class 'Variables Declaration'. + * @generated + */ + VariablesDeclaration createVariablesDeclaration(); + + /** + * Returns a new object of class 'Variable Declaration'. + * + * + * @return a new object of class 'Variable Declaration'. + * @generated + */ + VariableDeclaration createVariableDeclaration(); + + /** + * Returns a new object of class 'Priority Declaration'. + * + * + * @return a new object of class 'Priority Declaration'. + * @generated + */ + PriorityDeclaration createPriorityDeclaration(); + + /** + * Returns a new object of class 'Priority Group'. + * + * + * @return a new object of class 'Priority Group'. + * @generated + */ + PriorityGroup createPriorityGroup(); + + /** + * Returns a new object of class 'Statement'. + * + * + * @return a new object of class 'Statement'. + * @generated + */ + Statement createStatement(); + + /** + * Returns a new object of class 'Block Statement'. + * + * + * @return a new object of class 'Block Statement'. + * @generated + */ + BlockStatement createBlockStatement(); + + /** + * Returns a new object of class 'Return Statement'. + * + * + * @return a new object of class 'Return Statement'. + * @generated + */ + ReturnStatement createReturnStatement(); + + /** + * Returns a new object of class 'Null Statement'. + * + * + * @return a new object of class 'Null Statement'. + * @generated + */ + NullStatement createNullStatement(); + + /** + * Returns a new object of class 'Tagged Statement'. + * + * + * @return a new object of class 'Tagged Statement'. + * @generated + */ + TaggedStatement createTaggedStatement(); + + /** + * Returns a new object of class 'Pattern Statement'. + * + * + * @return a new object of class 'Pattern Statement'. + * @generated + */ + PatternStatement createPatternStatement(); + + /** + * Returns a new object of class 'Pattern'. + * + * + * @return a new object of class 'Pattern'. + * @generated + */ + Pattern createPattern(); + + /** + * Returns a new object of class 'Any Pattern'. + * + * + * @return a new object of class 'Any Pattern'. + * @generated + */ + AnyPattern createAnyPattern(); + + /** + * Returns a new object of class 'Constant Pattern'. + * + * + * @return a new object of class 'Constant Pattern'. + * @generated + */ + ConstantPattern createConstantPattern(); + + /** + * Returns a new object of class 'Integer Pattern'. + * + * + * @return a new object of class 'Integer Pattern'. + * @generated + */ + IntegerPattern createIntegerPattern(); + + /** + * Returns a new object of class 'Identifier Pattern'. + * + * + * @return a new object of class 'Identifier Pattern'. + * @generated + */ + IdentifierPattern createIdentifierPattern(); + + /** + * Returns a new object of class 'Conditional Statement'. + * + * + * @return a new object of class 'Conditional Statement'. + * @generated + */ + ConditionalStatement createConditionalStatement(); + + /** + * Returns a new object of class 'Extended Conditional Statement'. + * + * + * @return a new object of class 'Extended Conditional Statement'. + * @generated + */ + ExtendedConditionalStatement createExtendedConditionalStatement(); + + /** + * Returns a new object of class 'Select Statement'. + * + * + * @return a new object of class 'Select Statement'. + * @generated + */ + SelectStatement createSelectStatement(); + + /** + * Returns a new object of class 'While Statement'. + * + * + * @return a new object of class 'While Statement'. + * @generated + */ + WhileStatement createWhileStatement(); + + /** + * Returns a new object of class 'Foreach Statement'. + * + * + * @return a new object of class 'Foreach Statement'. + * @generated + */ + ForeachStatement createForeachStatement(); + + /** + * Returns a new object of class 'To Statement'. + * + * + * @return a new object of class 'To Statement'. + * @generated + */ + ToStatement createToStatement(); + + /** + * Returns a new object of class 'Case Statement'. + * + * + * @return a new object of class 'Case Statement'. + * @generated + */ + CaseStatement createCaseStatement(); + + /** + * Returns a new object of class 'Loop Statement'. + * + * + * @return a new object of class 'Loop Statement'. + * @generated + */ + LoopStatement createLoopStatement(); + + /** + * Returns a new object of class 'On Statement'. + * + * + * @return a new object of class 'On Statement'. + * @generated + */ + OnStatement createOnStatement(); + + /** + * Returns a new object of class 'Wait Statement'. + * + * + * @return a new object of class 'Wait Statement'. + * @generated + */ + WaitStatement createWaitStatement(); + + /** + * Returns a new object of class 'Composition'. + * + * + * @return a new object of class 'Composition'. + * @generated + */ + Composition createComposition(); + + /** + * Returns a new object of class 'Block'. + * + * + * @return a new object of class 'Block'. + * @generated + */ + Block createBlock(); + + /** + * Returns a new object of class 'Composite Block'. + * + * + * @return a new object of class 'Composite Block'. + * @generated + */ + CompositeBlock createCompositeBlock(); + + /** + * Returns a new object of class 'Instance Declaration'. + * + * + * @return a new object of class 'Instance Declaration'. + * @generated + */ + InstanceDeclaration createInstanceDeclaration(); + + /** + * Returns a new object of class 'Port Set'. + * + * + * @return a new object of class 'Port Set'. + * @generated + */ + PortSet createPortSet(); + + /** + * Returns a new object of class 'Component Instance'. + * + * + * @return a new object of class 'Component Instance'. + * @generated + */ + ComponentInstance createComponentInstance(); + + /** + * Returns a new object of class 'Expression'. + * + * + * @return a new object of class 'Expression'. + * @generated + */ + Expression createExpression(); + + /** + * Returns a new object of class 'Value Expression'. + * + * + * @return a new object of class 'Value Expression'. + * @generated + */ + ValueExpression createValueExpression(); + + /** + * Returns a new object of class 'Reference Expression'. + * + * + * @return a new object of class 'Reference Expression'. + * @generated + */ + ReferenceExpression createReferenceExpression(); + + /** + * Returns a new object of class 'Identifier Expression'. + * + * + * @return a new object of class 'Identifier Expression'. + * @generated + */ + IdentifierExpression createIdentifierExpression(); + + /** + * Returns a new object of class 'Record Expression'. + * + * + * @return a new object of class 'Record Expression'. + * @generated + */ + RecordExpression createRecordExpression(); + + /** + * Returns a new object of class 'Field Expression'. + * + * + * @return a new object of class 'Field Expression'. + * @generated + */ + FieldExpression createFieldExpression(); + + /** + * Returns a new object of class 'Array Expression'. + * + * + * @return a new object of class 'Array Expression'. + * @generated + */ + ArrayExpression createArrayExpression(); + + /** + * Returns a new object of class 'Queue Expression'. + * + * + * @return a new object of class 'Queue Expression'. + * @generated + */ + QueueExpression createQueueExpression(); + + /** + * Returns a new object of class 'Enqueue Expression'. + * + * + * @return a new object of class 'Enqueue Expression'. + * @generated + */ + EnqueueExpression createEnqueueExpression(); + + /** + * Returns a new object of class 'Append Expression'. + * + * + * @return a new object of class 'Append Expression'. + * @generated + */ + AppendExpression createAppendExpression(); + + /** + * Returns a new object of class 'Literal Expression'. + * + * + * @return a new object of class 'Literal Expression'. + * @generated + */ + LiteralExpression createLiteralExpression(); + + /** + * Returns a new object of class 'Boolean Literal'. + * + * + * @return a new object of class 'Boolean Literal'. + * @generated + */ + BooleanLiteral createBooleanLiteral(); + + /** + * Returns a new object of class 'Natural Literal'. + * + * + * @return a new object of class 'Natural Literal'. + * @generated + */ + NaturalLiteral createNaturalLiteral(); + + /** + * Returns a new object of class 'Lower Bound'. + * + * + * @return a new object of class 'Lower Bound'. + * @generated + */ + LowerBound createLowerBound(); + + /** + * Returns a new object of class 'Upper Bound'. + * + * + * @return a new object of class 'Upper Bound'. + * @generated + */ + UpperBound createUpperBound(); + + /** + * Returns a new object of class 'Natural Lower Bound'. + * + * + * @return a new object of class 'Natural Lower Bound'. + * @generated + */ + NaturalLowerBound createNaturalLowerBound(); + + /** + * Returns a new object of class 'Natural Upper Bound'. + * + * + * @return a new object of class 'Natural Upper Bound'. + * @generated + */ + NaturalUpperBound createNaturalUpperBound(); + + /** + * Returns a new object of class 'Decimal Lower Bound'. + * + * + * @return a new object of class 'Decimal Lower Bound'. + * @generated + */ + DecimalLowerBound createDecimalLowerBound(); + + /** + * Returns a new object of class 'Decimal Upper Bound'. + * + * + * @return a new object of class 'Decimal Upper Bound'. + * @generated + */ + DecimalUpperBound createDecimalUpperBound(); + + /** + * Returns a new object of class 'Variable Lower Bound'. + * + * + * @return a new object of class 'Variable Lower Bound'. + * @generated + */ + VariableLowerBound createVariableLowerBound(); + + /** + * Returns a new object of class 'Variable Upper Bound'. + * + * + * @return a new object of class 'Variable Upper Bound'. + * @generated + */ + VariableUpperBound createVariableUpperBound(); + + /** + * Returns a new object of class 'Infinite Upper Bound'. + * + * + * @return a new object of class 'Infinite Upper Bound'. + * @generated + */ + InfiniteUpperBound createInfiniteUpperBound(); + + /** + * Returns a new object of class 'Requirement'. + * + * + * @return a new object of class 'Requirement'. + * @generated + */ + Requirement createRequirement(); + + /** + * Returns a new object of class 'Property Declaration'. + * + * + * @return a new object of class 'Property Declaration'. + * @generated + */ + PropertyDeclaration createPropertyDeclaration(); + + /** + * Returns a new object of class 'Property'. + * + * + * @return a new object of class 'Property'. + * @generated + */ + Property createProperty(); + + /** + * Returns a new object of class 'Pattern Property'. + * + * + * @return a new object of class 'Pattern Property'. + * @generated + */ + PatternProperty createPatternProperty(); + + /** + * Returns a new object of class 'LTL Pattern'. + * + * + * @return a new object of class 'LTL Pattern'. + * @generated + */ + LTLPattern createLTLPattern(); + + /** + * Returns a new object of class 'Deadlock Free Pattern'. + * + * + * @return a new object of class 'Deadlock Free Pattern'. + * @generated + */ + DeadlockFreePattern createDeadlockFreePattern(); + + /** + * Returns a new object of class 'Infinitely Often Pattern'. + * + * + * @return a new object of class 'Infinitely Often Pattern'. + * @generated + */ + InfinitelyOftenPattern createInfinitelyOftenPattern(); + + /** + * Returns a new object of class 'Mortal Pattern'. + * + * + * @return a new object of class 'Mortal Pattern'. + * @generated + */ + MortalPattern createMortalPattern(); + + /** + * Returns a new object of class 'Presence Pattern'. + * + * + * @return a new object of class 'Presence Pattern'. + * @generated + */ + PresencePattern createPresencePattern(); + + /** + * Returns a new object of class 'Absence Pattern'. + * + * + * @return a new object of class 'Absence Pattern'. + * @generated + */ + AbsencePattern createAbsencePattern(); + + /** + * Returns a new object of class 'Always Pattern'. + * + * + * @return a new object of class 'Always Pattern'. + * @generated + */ + AlwaysPattern createAlwaysPattern(); + + /** + * Returns a new object of class 'Sequence Pattern'. + * + * + * @return a new object of class 'Sequence Pattern'. + * @generated + */ + SequencePattern createSequencePattern(); + + /** + * Returns a new object of class 'LTL Property'. + * + * + * @return a new object of class 'LTL Property'. + * @generated + */ + LTLProperty createLTLProperty(); + + /** + * Returns a new object of class 'State Event'. + * + * + * @return a new object of class 'State Event'. + * @generated + */ + StateEvent createStateEvent(); + + /** + * Returns a new object of class 'Enter State Event'. + * + * + * @return a new object of class 'Enter State Event'. + * @generated + */ + EnterStateEvent createEnterStateEvent(); + + /** + * Returns a new object of class 'Leave State Event'. + * + * + * @return a new object of class 'Leave State Event'. + * @generated + */ + LeaveStateEvent createLeaveStateEvent(); + + /** + * Returns a new object of class 'Observable'. + * + * + * @return a new object of class 'Observable'. + * @generated + */ + Observable createObservable(); + + /** + * Returns a new object of class 'Observable Event'. + * + * + * @return a new object of class 'Observable Event'. + * @generated + */ + ObservableEvent createObservableEvent(); + + /** + * Returns a new object of class 'Path Event'. + * + * + * @return a new object of class 'Path Event'. + * @generated + */ + PathEvent createPathEvent(); + + /** + * Returns a new object of class 'Path'. + * + * + * @return a new object of class 'Path'. + * @generated + */ + Path createPath(); + + /** + * Returns a new object of class 'Path Item'. + * + * + * @return a new object of class 'Path Item'. + * @generated + */ + PathItem createPathItem(); + + /** + * Returns a new object of class 'Natural Item'. + * + * + * @return a new object of class 'Natural Item'. + * @generated + */ + NaturalItem createNaturalItem(); + + /** + * Returns a new object of class 'Named Item'. + * + * + * @return a new object of class 'Named Item'. + * @generated + */ + NamedItem createNamedItem(); + + /** + * Returns a new object of class 'Subject'. + * + * + * @return a new object of class 'Subject'. + * @generated + */ + Subject createSubject(); + + /** + * Returns a new object of class 'State Subject'. + * + * + * @return a new object of class 'State Subject'. + * @generated + */ + StateSubject createStateSubject(); + + /** + * Returns a new object of class 'Value Subject'. + * + * + * @return a new object of class 'Value Subject'. + * @generated + */ + ValueSubject createValueSubject(); + + /** + * Returns a new object of class 'Tag Subject'. + * + * + * @return a new object of class 'Tag Subject'. + * @generated + */ + TagSubject createTagSubject(); + + /** + * Returns a new object of class 'Event Subject'. + * + * + * @return a new object of class 'Event Subject'. + * @generated + */ + EventSubject createEventSubject(); + + /** + * Returns a new object of class 'Tuple Type'. + * + * + * @return a new object of class 'Tuple Type'. + * @generated + */ + TupleType createTupleType(); + + /** + * Returns a new object of class 'Natural Type'. + * + * + * @return a new object of class 'Natural Type'. + * @generated + */ + NaturalType createNaturalType(); + + /** + * Returns a new object of class 'Integer Type'. + * + * + * @return a new object of class 'Integer Type'. + * @generated + */ + IntegerType createIntegerType(); + + /** + * Returns a new object of class 'Boolean Type'. + * + * + * @return a new object of class 'Boolean Type'. + * @generated + */ + BooleanType createBooleanType(); + + /** + * Returns a new object of class 'Unless Statement'. + * + * + * @return a new object of class 'Unless Statement'. + * @generated + */ + UnlessStatement createUnlessStatement(); + + /** + * Returns a new object of class 'Statement Choice'. + * + * + * @return a new object of class 'Statement Choice'. + * @generated + */ + StatementChoice createStatementChoice(); + + /** + * Returns a new object of class 'Statement Sequence'. + * + * + * @return a new object of class 'Statement Sequence'. + * @generated + */ + StatementSequence createStatementSequence(); + + /** + * Returns a new object of class 'Assign Statement'. + * + * + * @return a new object of class 'Assign Statement'. + * @generated + */ + AssignStatement createAssignStatement(); + + /** + * Returns a new object of class 'Assign Any Statement'. + * + * + * @return a new object of class 'Assign Any Statement'. + * @generated + */ + AssignAnyStatement createAssignAnyStatement(); + + /** + * Returns a new object of class 'Send Statement'. + * + * + * @return a new object of class 'Send Statement'. + * @generated + */ + SendStatement createSendStatement(); + + /** + * Returns a new object of class 'Receive Statement'. + * + * + * @return a new object of class 'Receive Statement'. + * @generated + */ + ReceiveStatement createReceiveStatement(); + + /** + * Returns a new object of class 'Constructor Pattern'. + * + * + * @return a new object of class 'Constructor Pattern'. + * @generated + */ + ConstructorPattern createConstructorPattern(); + + /** + * Returns a new object of class 'Array Access Pattern'. + * + * + * @return a new object of class 'Array Access Pattern'. + * @generated + */ + ArrayAccessPattern createArrayAccessPattern(); + + /** + * Returns a new object of class 'Record Access Pattern'. + * + * + * @return a new object of class 'Record Access Pattern'. + * @generated + */ + RecordAccessPattern createRecordAccessPattern(); + + /** + * Returns a new object of class 'All Expression'. + * + * + * @return a new object of class 'All Expression'. + * @generated + */ + AllExpression createAllExpression(); + + /** + * Returns a new object of class 'Exists Expression'. + * + * + * @return a new object of class 'Exists Expression'. + * @generated + */ + ExistsExpression createExistsExpression(); + + /** + * Returns a new object of class 'Conditional'. + * + * + * @return a new object of class 'Conditional'. + * @generated + */ + Conditional createConditional(); + + /** + * Returns a new object of class 'Disjunction'. + * + * + * @return a new object of class 'Disjunction'. + * @generated + */ + Disjunction createDisjunction(); + + /** + * Returns a new object of class 'Implication'. + * + * + * @return a new object of class 'Implication'. + * @generated + */ + Implication createImplication(); + + /** + * Returns a new object of class 'Conjunction'. + * + * + * @return a new object of class 'Conjunction'. + * @generated + */ + Conjunction createConjunction(); + + /** + * Returns a new object of class 'Comparison Equal'. + * + * + * @return a new object of class 'Comparison Equal'. + * @generated + */ + ComparisonEqual createComparisonEqual(); + + /** + * Returns a new object of class 'Comparison Not Equal'. + * + * + * @return a new object of class 'Comparison Not Equal'. + * @generated + */ + ComparisonNotEqual createComparisonNotEqual(); + + /** + * Returns a new object of class 'Comparison Lesser'. + * + * + * @return a new object of class 'Comparison Lesser'. + * @generated + */ + ComparisonLesser createComparisonLesser(); + + /** + * Returns a new object of class 'Comparison Lesser Equal'. + * + * + * @return a new object of class 'Comparison Lesser Equal'. + * @generated + */ + ComparisonLesserEqual createComparisonLesserEqual(); + + /** + * Returns a new object of class 'Comparison Greater'. + * + * + * @return a new object of class 'Comparison Greater'. + * @generated + */ + ComparisonGreater createComparisonGreater(); + + /** + * Returns a new object of class 'Comparison Greater Equal'. + * + * + * @return a new object of class 'Comparison Greater Equal'. + * @generated + */ + ComparisonGreaterEqual createComparisonGreaterEqual(); + + /** + * Returns a new object of class 'Addition'. + * + * + * @return a new object of class 'Addition'. + * @generated + */ + Addition createAddition(); + + /** + * Returns a new object of class 'Substraction'. + * + * + * @return a new object of class 'Substraction'. + * @generated + */ + Substraction createSubstraction(); + + /** + * Returns a new object of class 'Multiplication'. + * + * + * @return a new object of class 'Multiplication'. + * @generated + */ + Multiplication createMultiplication(); + + /** + * Returns a new object of class 'Division'. + * + * + * @return a new object of class 'Division'. + * @generated + */ + Division createDivision(); + + /** + * Returns a new object of class 'Modulo'. + * + * + * @return a new object of class 'Modulo'. + * @generated + */ + Modulo createModulo(); + + /** + * Returns a new object of class 'Unary Plus Expression'. + * + * + * @return a new object of class 'Unary Plus Expression'. + * @generated + */ + UnaryPlusExpression createUnaryPlusExpression(); + + /** + * Returns a new object of class 'Unary Minus Expression'. + * + * + * @return a new object of class 'Unary Minus Expression'. + * @generated + */ + UnaryMinusExpression createUnaryMinusExpression(); + + /** + * Returns a new object of class 'Unary Negation Expression'. + * + * + * @return a new object of class 'Unary Negation Expression'. + * @generated + */ + UnaryNegationExpression createUnaryNegationExpression(); + + /** + * Returns a new object of class 'Unary First Expression'. + * + * + * @return a new object of class 'Unary First Expression'. + * @generated + */ + UnaryFirstExpression createUnaryFirstExpression(); + + /** + * Returns a new object of class 'Unary Length Expression'. + * + * + * @return a new object of class 'Unary Length Expression'. + * @generated + */ + UnaryLengthExpression createUnaryLengthExpression(); + + /** + * Returns a new object of class 'Unary Coerce Expression'. + * + * + * @return a new object of class 'Unary Coerce Expression'. + * @generated + */ + UnaryCoerceExpression createUnaryCoerceExpression(); + + /** + * Returns a new object of class 'Unary Full Expression'. + * + * + * @return a new object of class 'Unary Full Expression'. + * @generated + */ + UnaryFullExpression createUnaryFullExpression(); + + /** + * Returns a new object of class 'Unary De Queue Expression'. + * + * + * @return a new object of class 'Unary De Queue Expression'. + * @generated + */ + UnaryDeQueueExpression createUnaryDeQueueExpression(); + + /** + * Returns a new object of class 'Unary Empty Expression'. + * + * + * @return a new object of class 'Unary Empty Expression'. + * @generated + */ + UnaryEmptyExpression createUnaryEmptyExpression(); + + /** + * Returns a new object of class 'Projection'. + * + * + * @return a new object of class 'Projection'. + * @generated + */ + Projection createProjection(); + + /** + * Returns a new object of class 'Construction Expression'. + * + * + * @return a new object of class 'Construction Expression'. + * @generated + */ + ConstructionExpression createConstructionExpression(); + + /** + * Returns a new object of class 'Array Access Expression'. + * + * + * @return a new object of class 'Array Access Expression'. + * @generated + */ + ArrayAccessExpression createArrayAccessExpression(); + + /** + * Returns a new object of class 'Record Access Expression'. + * + * + * @return a new object of class 'Record Access Expression'. + * @generated + */ + RecordAccessExpression createRecordAccessExpression(); + + /** + * Returns a new object of class 'True Literal'. + * + * + * @return a new object of class 'True Literal'. + * @generated + */ + TrueLiteral createTrueLiteral(); + + /** + * Returns a new object of class 'False Literal'. + * + * + * @return a new object of class 'False Literal'. + * @generated + */ + FalseLiteral createFalseLiteral(); + + /** + * Returns a new object of class 'All Property'. + * + * + * @return a new object of class 'All Property'. + * @generated + */ + AllProperty createAllProperty(); + + /** + * Returns a new object of class 'Exists Property'. + * + * + * @return a new object of class 'Exists Property'. + * @generated + */ + ExistsProperty createExistsProperty(); + + /** + * Returns a new object of class 'Property Disjunction'. + * + * + * @return a new object of class 'Property Disjunction'. + * @generated + */ + PropertyDisjunction createPropertyDisjunction(); + + /** + * Returns a new object of class 'Property Implication'. + * + * + * @return a new object of class 'Property Implication'. + * @generated + */ + PropertyImplication createPropertyImplication(); + + /** + * Returns a new object of class 'Property Conjunction'. + * + * + * @return a new object of class 'Property Conjunction'. + * @generated + */ + PropertyConjunction createPropertyConjunction(); + + /** + * Returns a new object of class 'Property Negation'. + * + * + * @return a new object of class 'Property Negation'. + * @generated + */ + PropertyNegation createPropertyNegation(); + + /** + * Returns a new object of class 'Leads To Pattern'. + * + * + * @return a new object of class 'Leads To Pattern'. + * @generated + */ + LeadsToPattern createLeadsToPattern(); + + /** + * Returns a new object of class 'Precedes Pattern'. + * + * + * @return a new object of class 'Precedes Pattern'. + * @generated + */ + PrecedesPattern createPrecedesPattern(); + + /** + * Returns a new object of class 'LTL All'. + * + * + * @return a new object of class 'LTL All'. + * @generated + */ + LTLAll createLTLAll(); + + /** + * Returns a new object of class 'LTL Exists'. + * + * + * @return a new object of class 'LTL Exists'. + * @generated + */ + LTLExists createLTLExists(); + + /** + * Returns a new object of class 'LTL Disjunction'. + * + * + * @return a new object of class 'LTL Disjunction'. + * @generated + */ + LTLDisjunction createLTLDisjunction(); + + /** + * Returns a new object of class 'LTL Implication'. + * + * + * @return a new object of class 'LTL Implication'. + * @generated + */ + LTLImplication createLTLImplication(); + + /** + * Returns a new object of class 'LTL Conjunction'. + * + * + * @return a new object of class 'LTL Conjunction'. + * @generated + */ + LTLConjunction createLTLConjunction(); + + /** + * Returns a new object of class 'LTL Until'. + * + * + * @return a new object of class 'LTL Until'. + * @generated + */ + LTLUntil createLTLUntil(); + + /** + * Returns a new object of class 'LTL Release'. + * + * + * @return a new object of class 'LTL Release'. + * @generated + */ + LTLRelease createLTLRelease(); + + /** + * Returns a new object of class 'LTL Unary Negation'. + * + * + * @return a new object of class 'LTL Unary Negation'. + * @generated + */ + LTLUnaryNegation createLTLUnaryNegation(); + + /** + * Returns a new object of class 'LTL Unary Next'. + * + * + * @return a new object of class 'LTL Unary Next'. + * @generated + */ + LTLUnaryNext createLTLUnaryNext(); + + /** + * Returns a new object of class 'LTL Unary Always'. + * + * + * @return a new object of class 'LTL Unary Always'. + * @generated + */ + LTLUnaryAlways createLTLUnaryAlways(); + + /** + * Returns a new object of class 'LTL Unary Eventually'. + * + * + * @return a new object of class 'LTL Unary Eventually'. + * @generated + */ + LTLUnaryEventually createLTLUnaryEventually(); + + /** + * Returns a new object of class 'LTL Variable'. + * + * + * @return a new object of class 'LTL Variable'. + * @generated + */ + LTLVariable createLTLVariable(); + + /** + * Returns a new object of class 'Observable Disjunction'. + * + * + * @return a new object of class 'Observable Disjunction'. + * @generated + */ + ObservableDisjunction createObservableDisjunction(); + + /** + * Returns a new object of class 'Observable Implication'. + * + * + * @return a new object of class 'Observable Implication'. + * @generated + */ + ObservableImplication createObservableImplication(); + + /** + * Returns a new object of class 'Observable Conjunction'. + * + * + * @return a new object of class 'Observable Conjunction'. + * @generated + */ + ObservableConjunction createObservableConjunction(); + + /** + * Returns a new object of class 'Observable Negation'. + * + * + * @return a new object of class 'Observable Negation'. + * @generated + */ + ObservableNegation createObservableNegation(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + FiacrePackage getFiacrePackage(); + +} //FiacreFactory diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FiacrePackage.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FiacrePackage.java new file mode 100644 index 0000000..711a809 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FiacrePackage.java @@ -0,0 +1,11988 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +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 enum,
    • + *
    • and each data type
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacreFactory + * @model kind="package" + * @generated + */ +public interface FiacrePackage extends EPackage +{ + /** + * The package name. + * + * + * @generated + */ + String eNAME = "fiacre"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.irit.fr/fiacre/xtext/Fiacre"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "fiacre"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + FiacrePackage eINSTANCE = fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl.init(); + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ModelImpl Model}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ModelImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getModel() + * @generated + */ + int MODEL = 0; + + /** + * The feature id for the 'Imports' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__IMPORTS = 0; + + /** + * The feature id for the 'Declarations' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__DECLARATIONS = 1; + + /** + * The feature id for the 'Requirements' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__REQUIREMENTS = 2; + + /** + * The feature id for the 'Root' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__ROOT = 3; + + /** + * The number of structural features of the 'Model' class. + * + * + * @generated + * @ordered + */ + int MODEL_FEATURE_COUNT = 4; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RootDeclarationImpl Root Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RootDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRootDeclaration() + * @generated + */ + int ROOT_DECLARATION = 1; + + /** + * The number of structural features of the 'Root Declaration' class. + * + * + * @generated + * @ordered + */ + int ROOT_DECLARATION_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RootImpl Root}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RootImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRoot() + * @generated + */ + int ROOT = 2; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int ROOT__DECLARATION = 0; + + /** + * The feature id for the 'Observed' reference list. + * + * + * @generated + * @ordered + */ + int ROOT__OBSERVED = 1; + + /** + * The number of structural features of the 'Root' class. + * + * + * @generated + * @ordered + */ + int ROOT_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.NamedElementImpl Named Element}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.NamedElementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getNamedElement() + * @generated + */ + int NAMED_ELEMENT = 3; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__NAME = 0; + + /** + * The number of structural features of the 'Named Element' class. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.TypeDeclarationUseImpl Type Declaration Use}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.TypeDeclarationUseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getTypeDeclarationUse() + * @generated + */ + int TYPE_DECLARATION_USE = 4; + + /** + * The number of structural features of the 'Type Declaration Use' class. + * + * + * @generated + * @ordered + */ + int TYPE_DECLARATION_USE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ConstantDeclarationUseImpl Constant Declaration Use}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ConstantDeclarationUseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getConstantDeclarationUse() + * @generated + */ + int CONSTANT_DECLARATION_USE = 5; + + /** + * The number of structural features of the 'Constant Declaration Use' class. + * + * + * @generated + * @ordered + */ + int CONSTANT_DECLARATION_USE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ExpressionDeclarationUseImpl Expression Declaration Use}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ExpressionDeclarationUseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getExpressionDeclarationUse() + * @generated + */ + int EXPRESSION_DECLARATION_USE = 6; + + /** + * The number of structural features of the 'Expression Declaration Use' class. + * + * + * @generated + * @ordered + */ + int EXPRESSION_DECLARATION_USE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ReferenceDeclarationUseImpl Reference Declaration Use}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ReferenceDeclarationUseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getReferenceDeclarationUse() + * @generated + */ + int REFERENCE_DECLARATION_USE = 7; + + /** + * The number of structural features of the 'Reference Declaration Use' class. + * + * + * @generated + * @ordered + */ + int REFERENCE_DECLARATION_USE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnionTagDeclarationUseImpl Union Tag Declaration Use}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnionTagDeclarationUseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnionTagDeclarationUse() + * @generated + */ + int UNION_TAG_DECLARATION_USE = 8; + + /** + * The number of structural features of the 'Union Tag Declaration Use' class. + * + * + * @generated + * @ordered + */ + int UNION_TAG_DECLARATION_USE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RecordFieldDeclarationUseImpl Record Field Declaration Use}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RecordFieldDeclarationUseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRecordFieldDeclarationUse() + * @generated + */ + int RECORD_FIELD_DECLARATION_USE = 9; + + /** + * The number of structural features of the 'Record Field Declaration Use' class. + * + * + * @generated + * @ordered + */ + int RECORD_FIELD_DECLARATION_USE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PatternDeclarationUseImpl Pattern Declaration Use}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PatternDeclarationUseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPatternDeclarationUse() + * @generated + */ + int PATTERN_DECLARATION_USE = 10; + + /** + * The number of structural features of the 'Pattern Declaration Use' class. + * + * + * @generated + * @ordered + */ + int PATTERN_DECLARATION_USE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.BoundDeclarationUseImpl Bound Declaration Use}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.BoundDeclarationUseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getBoundDeclarationUse() + * @generated + */ + int BOUND_DECLARATION_USE = 11; + + /** + * The number of structural features of the 'Bound Declaration Use' class. + * + * + * @generated + * @ordered + */ + int BOUND_DECLARATION_USE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PathDeclarationUseImpl Path Declaration Use}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PathDeclarationUseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPathDeclarationUse() + * @generated + */ + int PATH_DECLARATION_USE = 12; + + /** + * The number of structural features of the 'Path Declaration Use' class. + * + * + * @generated + * @ordered + */ + int PATH_DECLARATION_USE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PropertyDeclarationUseImpl Property Declaration Use}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PropertyDeclarationUseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPropertyDeclarationUse() + * @generated + */ + int PROPERTY_DECLARATION_USE = 13; + + /** + * The number of structural features of the 'Property Declaration Use' class. + * + * + * @generated + * @ordered + */ + int PROPERTY_DECLARATION_USE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ImportDeclarationImpl Import Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ImportDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getImportDeclaration() + * @generated + */ + int IMPORT_DECLARATION = 14; + + /** + * The feature id for the 'Import URI' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT_DECLARATION__IMPORT_URI = 0; + + /** + * The number of structural features of the 'Import Declaration' class. + * + * + * @generated + * @ordered + */ + int IMPORT_DECLARATION_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.DeclarationImpl Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.DeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getDeclaration() + * @generated + */ + int DECLARATION = 15; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DECLARATION__NAME = NAMED_ELEMENT__NAME; + + /** + * The number of structural features of the 'Declaration' class. + * + * + * @generated + * @ordered + */ + int DECLARATION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ParameterizedDeclarationImpl Parameterized Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ParameterizedDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getParameterizedDeclaration() + * @generated + */ + int PARAMETERIZED_DECLARATION = 16; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETERIZED_DECLARATION__NAME = DECLARATION__NAME; + + /** + * The feature id for the 'Parameters' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETERIZED_DECLARATION__PARAMETERS = DECLARATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETERIZED_DECLARATION__VARIABLES = DECLARATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Parameterized Declaration' class. + * + * + * @generated + * @ordered + */ + int PARAMETERIZED_DECLARATION_FEATURE_COUNT = DECLARATION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.FunctionDeclarationImpl Function Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.FunctionDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getFunctionDeclaration() + * @generated + */ + int FUNCTION_DECLARATION = 17; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION_DECLARATION__NAME = EXPRESSION_DECLARATION_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameters' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_DECLARATION__PARAMETERS = EXPRESSION_DECLARATION_USE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_DECLARATION__VARIABLES = EXPRESSION_DECLARATION_USE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_DECLARATION__TYPE = EXPRESSION_DECLARATION_USE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Statement' containment reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_DECLARATION__STATEMENT = EXPRESSION_DECLARATION_USE_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Function Declaration' class. + * + * + * @generated + * @ordered + */ + int FUNCTION_DECLARATION_FEATURE_COUNT = EXPRESSION_DECLARATION_USE_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.TypeDeclarationImpl Type Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.TypeDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getTypeDeclaration() + * @generated + */ + int TYPE_DECLARATION = 18; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_DECLARATION__NAME = TYPE_DECLARATION_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int TYPE_DECLARATION__VALUE = TYPE_DECLARATION_USE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Type Declaration' class. + * + * + * @generated + * @ordered + */ + int TYPE_DECLARATION_FEATURE_COUNT = TYPE_DECLARATION_USE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ChannelDeclarationImpl Channel Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ChannelDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getChannelDeclaration() + * @generated + */ + int CHANNEL_DECLARATION = 19; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CHANNEL_DECLARATION__NAME = TYPE_DECLARATION_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int CHANNEL_DECLARATION__VALUE = TYPE_DECLARATION_USE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Channel Declaration' class. + * + * + * @generated + * @ordered + */ + int CHANNEL_DECLARATION_FEATURE_COUNT = TYPE_DECLARATION_USE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ChannelTypeImpl Channel Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ChannelTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getChannelType() + * @generated + */ + int CHANNEL_TYPE = 20; + + /** + * The feature id for the 'Size' containment reference. + * + * + * @generated + * @ordered + */ + int CHANNEL_TYPE__SIZE = 0; + + /** + * The feature id for the 'In' attribute. + * + * + * @generated + * @ordered + */ + int CHANNEL_TYPE__IN = 1; + + /** + * The feature id for the 'Out' attribute. + * + * + * @generated + * @ordered + */ + int CHANNEL_TYPE__OUT = 2; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int CHANNEL_TYPE__TYPE = 3; + + /** + * The number of structural features of the 'Channel Type' class. + * + * + * @generated + * @ordered + */ + int CHANNEL_TYPE_FEATURE_COUNT = 4; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.TypeImpl Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.TypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getType() + * @generated + */ + int TYPE = 21; + + /** + * The number of structural features of the 'Type' class. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.BasicTypeImpl Basic Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.BasicTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getBasicType() + * @generated + */ + int BASIC_TYPE = 22; + + /** + * The number of structural features of the 'Basic Type' class. + * + * + * @generated + * @ordered + */ + int BASIC_TYPE_FEATURE_COUNT = TYPE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RangeTypeImpl Range Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RangeTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRangeType() + * @generated + */ + int RANGE_TYPE = 23; + + /** + * The feature id for the 'Minimum' containment reference. + * + * + * @generated + * @ordered + */ + int RANGE_TYPE__MINIMUM = TYPE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Maximum' containment reference. + * + * + * @generated + * @ordered + */ + int RANGE_TYPE__MAXIMUM = TYPE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Range Type' class. + * + * + * @generated + * @ordered + */ + int RANGE_TYPE_FEATURE_COUNT = TYPE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnionTypeImpl Union Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnionTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnionType() + * @generated + */ + int UNION_TYPE = 24; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int UNION_TYPE__TAGS = TYPE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Union Type' class. + * + * + * @generated + * @ordered + */ + int UNION_TYPE_FEATURE_COUNT = TYPE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnionTagsImpl Union Tags}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnionTagsImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnionTags() + * @generated + */ + int UNION_TAGS = 25; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int UNION_TAGS__TAGS = 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int UNION_TAGS__TYPE = 1; + + /** + * The number of structural features of the 'Union Tags' class. + * + * + * @generated + * @ordered + */ + int UNION_TAGS_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnionTagDeclarationImpl Union Tag Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnionTagDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnionTagDeclaration() + * @generated + */ + int UNION_TAG_DECLARATION = 26; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int UNION_TAG_DECLARATION__NAME = NAMED_ELEMENT__NAME; + + /** + * The number of structural features of the 'Union Tag Declaration' class. + * + * + * @generated + * @ordered + */ + int UNION_TAG_DECLARATION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RecordTypeImpl Record Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RecordTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRecordType() + * @generated + */ + int RECORD_TYPE = 27; + + /** + * The feature id for the 'Fields' containment reference list. + * + * + * @generated + * @ordered + */ + int RECORD_TYPE__FIELDS = TYPE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Record Type' class. + * + * + * @generated + * @ordered + */ + int RECORD_TYPE_FEATURE_COUNT = TYPE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RecordFieldsImpl Record Fields}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RecordFieldsImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRecordFields() + * @generated + */ + int RECORD_FIELDS = 28; + + /** + * The feature id for the 'Fields' containment reference list. + * + * + * @generated + * @ordered + */ + int RECORD_FIELDS__FIELDS = 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int RECORD_FIELDS__TYPE = 1; + + /** + * The number of structural features of the 'Record Fields' class. + * + * + * @generated + * @ordered + */ + int RECORD_FIELDS_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RecordFieldDeclarationImpl Record Field Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RecordFieldDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRecordFieldDeclaration() + * @generated + */ + int RECORD_FIELD_DECLARATION = 29; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RECORD_FIELD_DECLARATION__NAME = NAMED_ELEMENT__NAME; + + /** + * The number of structural features of the 'Record Field Declaration' class. + * + * + * @generated + * @ordered + */ + int RECORD_FIELD_DECLARATION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.QueueTypeImpl Queue Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.QueueTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getQueueType() + * @generated + */ + int QUEUE_TYPE = 30; + + /** + * The feature id for the 'Size' containment reference. + * + * + * @generated + * @ordered + */ + int QUEUE_TYPE__SIZE = TYPE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int QUEUE_TYPE__TYPE = TYPE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Queue Type' class. + * + * + * @generated + * @ordered + */ + int QUEUE_TYPE_FEATURE_COUNT = TYPE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ArrayTypeImpl Array Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ArrayTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getArrayType() + * @generated + */ + int ARRAY_TYPE = 31; + + /** + * The feature id for the 'Size' containment reference. + * + * + * @generated + * @ordered + */ + int ARRAY_TYPE__SIZE = TYPE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int ARRAY_TYPE__TYPE = TYPE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Array Type' class. + * + * + * @generated + * @ordered + */ + int ARRAY_TYPE_FEATURE_COUNT = TYPE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ReferencedTypeImpl Referenced Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ReferencedTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getReferencedType() + * @generated + */ + int REFERENCED_TYPE = 32; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int REFERENCED_TYPE__TYPE = TYPE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Referenced Type' class. + * + * + * @generated + * @ordered + */ + int REFERENCED_TYPE_FEATURE_COUNT = TYPE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ConstantDeclarationImpl Constant Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ConstantDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getConstantDeclaration() + * @generated + */ + int CONSTANT_DECLARATION = 33; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTANT_DECLARATION__NAME = CONSTANT_DECLARATION_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int CONSTANT_DECLARATION__TYPE = CONSTANT_DECLARATION_USE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int CONSTANT_DECLARATION__VALUE = CONSTANT_DECLARATION_USE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Constant Declaration' class. + * + * + * @generated + * @ordered + */ + int CONSTANT_DECLARATION_FEATURE_COUNT = CONSTANT_DECLARATION_USE_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl Process Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getProcessDeclaration() + * @generated + */ + int PROCESS_DECLARATION = 34; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION__NAME = ROOT_DECLARATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameters' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION__PARAMETERS = ROOT_DECLARATION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION__VARIABLES = ROOT_DECLARATION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Ports' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION__PORTS = ROOT_DECLARATION_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Local Ports' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION__LOCAL_PORTS = ROOT_DECLARATION_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Priorities' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION__PRIORITIES = ROOT_DECLARATION_FEATURE_COUNT + 5; + + /** + * The feature id for the 'States' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION__STATES = ROOT_DECLARATION_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Prelude' containment reference. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION__PRELUDE = ROOT_DECLARATION_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Transitions' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION__TRANSITIONS = ROOT_DECLARATION_FEATURE_COUNT + 8; + + /** + * The number of structural features of the 'Process Declaration' class. + * + * + * @generated + * @ordered + */ + int PROCESS_DECLARATION_FEATURE_COUNT = ROOT_DECLARATION_FEATURE_COUNT + 9; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.StateDeclarationImpl State Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.StateDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getStateDeclaration() + * @generated + */ + int STATE_DECLARATION = 35; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DECLARATION__NAME = NAMED_ELEMENT__NAME; + + /** + * The number of structural features of the 'State Declaration' class. + * + * + * @generated + * @ordered + */ + int STATE_DECLARATION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.TransitionSourceImpl Transition Source}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.TransitionSourceImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getTransitionSource() + * @generated + */ + int TRANSITION_SOURCE = 36; + + /** + * The feature id for the 'Origin' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_SOURCE__ORIGIN = 0; + + /** + * The number of structural features of the 'Transition Source' class. + * + * + * @generated + * @ordered + */ + int TRANSITION_SOURCE_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.TransitionImpl Transition}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.TransitionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getTransition() + * @generated + */ + int TRANSITION = 37; + + /** + * The feature id for the 'Source' containment reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__SOURCE = 0; + + /** + * The feature id for the 'Action' containment reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__ACTION = 1; + + /** + * The number of structural features of the 'Transition' class. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ComponentDeclarationImpl Component Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ComponentDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getComponentDeclaration() + * @generated + */ + int COMPONENT_DECLARATION = 38; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION__NAME = ROOT_DECLARATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameters' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION__PARAMETERS = ROOT_DECLARATION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION__VARIABLES = ROOT_DECLARATION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Ports' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION__PORTS = ROOT_DECLARATION_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Local Ports' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION__LOCAL_PORTS = ROOT_DECLARATION_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Priorities' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION__PRIORITIES = ROOT_DECLARATION_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Prelude' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION__PRELUDE = ROOT_DECLARATION_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Body' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION__BODY = ROOT_DECLARATION_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Component Declaration' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_DECLARATION_FEATURE_COUNT = ROOT_DECLARATION_FEATURE_COUNT + 8; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PortsDeclarationImpl Ports Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PortsDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPortsDeclaration() + * @generated + */ + int PORTS_DECLARATION = 39; + + /** + * The feature id for the 'Ports' containment reference list. + * + * + * @generated + * @ordered + */ + int PORTS_DECLARATION__PORTS = 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int PORTS_DECLARATION__TYPE = 1; + + /** + * The number of structural features of the 'Ports Declaration' class. + * + * + * @generated + * @ordered + */ + int PORTS_DECLARATION_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PortDeclarationImpl Port Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PortDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPortDeclaration() + * @generated + */ + int PORT_DECLARATION = 40; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DECLARATION__NAME = NAMED_ELEMENT__NAME; + + /** + * The number of structural features of the 'Port Declaration' class. + * + * + * @generated + * @ordered + */ + int PORT_DECLARATION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LocalPortsDeclarationImpl Local Ports Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LocalPortsDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLocalPortsDeclaration() + * @generated + */ + int LOCAL_PORTS_DECLARATION = 41; + + /** + * The feature id for the 'Ports' containment reference list. + * + * + * @generated + * @ordered + */ + int LOCAL_PORTS_DECLARATION__PORTS = 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int LOCAL_PORTS_DECLARATION__TYPE = 1; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int LOCAL_PORTS_DECLARATION__LEFT = 2; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int LOCAL_PORTS_DECLARATION__RIGHT = 3; + + /** + * The number of structural features of the 'Local Ports Declaration' class. + * + * + * @generated + * @ordered + */ + int LOCAL_PORTS_DECLARATION_FEATURE_COUNT = 4; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ParametersDeclarationImpl Parameters Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ParametersDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getParametersDeclaration() + * @generated + */ + int PARAMETERS_DECLARATION = 42; + + /** + * The feature id for the 'Parameters' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETERS_DECLARATION__PARAMETERS = 0; + + /** + * The feature id for the 'Read' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETERS_DECLARATION__READ = 1; + + /** + * The feature id for the 'Write' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETERS_DECLARATION__WRITE = 2; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int PARAMETERS_DECLARATION__TYPE = 3; + + /** + * The number of structural features of the 'Parameters Declaration' class. + * + * + * @generated + * @ordered + */ + int PARAMETERS_DECLARATION_FEATURE_COUNT = 4; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ParameterDeclarationImpl Parameter Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ParameterDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getParameterDeclaration() + * @generated + */ + int PARAMETER_DECLARATION = 43; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_DECLARATION__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Reference' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_DECLARATION__REFERENCE = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Array' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_DECLARATION__ARRAY = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Size' containment reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_DECLARATION__SIZE = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Parameter Declaration' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_DECLARATION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.VariablesDeclarationImpl Variables Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.VariablesDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getVariablesDeclaration() + * @generated + */ + int VARIABLES_DECLARATION = 44; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLES_DECLARATION__VARIABLES = 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int VARIABLES_DECLARATION__TYPE = 1; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int VARIABLES_DECLARATION__VALUE = 2; + + /** + * The number of structural features of the 'Variables Declaration' class. + * + * + * @generated + * @ordered + */ + int VARIABLES_DECLARATION_FEATURE_COUNT = 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.VariableDeclarationImpl Variable Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.VariableDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getVariableDeclaration() + * @generated + */ + int VARIABLE_DECLARATION = 45; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE_DECLARATION__NAME = NAMED_ELEMENT__NAME; + + /** + * The number of structural features of the 'Variable Declaration' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_DECLARATION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PriorityDeclarationImpl Priority Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PriorityDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPriorityDeclaration() + * @generated + */ + int PRIORITY_DECLARATION = 46; + + /** + * The feature id for the 'Groups' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIORITY_DECLARATION__GROUPS = 0; + + /** + * The number of structural features of the 'Priority Declaration' class. + * + * + * @generated + * @ordered + */ + int PRIORITY_DECLARATION_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PriorityGroupImpl Priority Group}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PriorityGroupImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPriorityGroup() + * @generated + */ + int PRIORITY_GROUP = 47; + + /** + * The feature id for the 'Ports' reference list. + * + * + * @generated + * @ordered + */ + int PRIORITY_GROUP__PORTS = 0; + + /** + * The number of structural features of the 'Priority Group' class. + * + * + * @generated + * @ordered + */ + int PRIORITY_GROUP_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.StatementImpl Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.StatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getStatement() + * @generated + */ + int STATEMENT = 48; + + /** + * The number of structural features of the 'Statement' class. + * + * + * @generated + * @ordered + */ + int STATEMENT_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.BlockStatementImpl Block Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.BlockStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getBlockStatement() + * @generated + */ + int BLOCK_STATEMENT = 49; + + /** + * The feature id for the 'Body' containment reference. + * + * + * @generated + * @ordered + */ + int BLOCK_STATEMENT__BODY = STATEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Block Statement' class. + * + * + * @generated + * @ordered + */ + int BLOCK_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ReturnStatementImpl Return Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ReturnStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getReturnStatement() + * @generated + */ + int RETURN_STATEMENT = 50; + + /** + * The feature id for the 'Expression' containment reference. + * + * + * @generated + * @ordered + */ + int RETURN_STATEMENT__EXPRESSION = STATEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Return Statement' class. + * + * + * @generated + * @ordered + */ + int RETURN_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.NullStatementImpl Null Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.NullStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getNullStatement() + * @generated + */ + int NULL_STATEMENT = 51; + + /** + * The number of structural features of the 'Null Statement' class. + * + * + * @generated + * @ordered + */ + int NULL_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.TaggedStatementImpl Tagged Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.TaggedStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getTaggedStatement() + * @generated + */ + int TAGGED_STATEMENT = 52; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TAGGED_STATEMENT__NAME = STATEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Tagged Statement' class. + * + * + * @generated + * @ordered + */ + int TAGGED_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PatternStatementImpl Pattern Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PatternStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPatternStatement() + * @generated + */ + int PATTERN_STATEMENT = 53; + + /** + * The number of structural features of the 'Pattern Statement' class. + * + * + * @generated + * @ordered + */ + int PATTERN_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PatternImpl Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPattern() + * @generated + */ + int PATTERN = 54; + + /** + * The number of structural features of the 'Pattern' class. + * + * + * @generated + * @ordered + */ + int PATTERN_FEATURE_COUNT = PATTERN_STATEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.AnyPatternImpl Any Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.AnyPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getAnyPattern() + * @generated + */ + int ANY_PATTERN = 55; + + /** + * The number of structural features of the 'Any Pattern' class. + * + * + * @generated + * @ordered + */ + int ANY_PATTERN_FEATURE_COUNT = PATTERN_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ConstantPatternImpl Constant Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ConstantPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getConstantPattern() + * @generated + */ + int CONSTANT_PATTERN = 56; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int CONSTANT_PATTERN__VALUE = PATTERN_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Constant Pattern' class. + * + * + * @generated + * @ordered + */ + int CONSTANT_PATTERN_FEATURE_COUNT = PATTERN_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.IntegerPatternImpl Integer Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.IntegerPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getIntegerPattern() + * @generated + */ + int INTEGER_PATTERN = 57; + + /** + * The feature id for the 'Negative' attribute. + * + * + * @generated + * @ordered + */ + int INTEGER_PATTERN__NEGATIVE = PATTERN_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int INTEGER_PATTERN__VALUE = PATTERN_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Integer Pattern' class. + * + * + * @generated + * @ordered + */ + int INTEGER_PATTERN_FEATURE_COUNT = PATTERN_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.IdentifierPatternImpl Identifier Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.IdentifierPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getIdentifierPattern() + * @generated + */ + int IDENTIFIER_PATTERN = 58; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int IDENTIFIER_PATTERN__DECLARATION = PATTERN_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Identifier Pattern' class. + * + * + * @generated + * @ordered + */ + int IDENTIFIER_PATTERN_FEATURE_COUNT = PATTERN_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ConditionalStatementImpl Conditional Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ConditionalStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getConditionalStatement() + * @generated + */ + int CONDITIONAL_STATEMENT = 59; + + /** + * The feature id for the 'Condition' containment reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_STATEMENT__CONDITION = STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Then' containment reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_STATEMENT__THEN = STATEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Elseif' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_STATEMENT__ELSEIF = STATEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Else' containment reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_STATEMENT__ELSE = STATEMENT_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Conditional Statement' class. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ExtendedConditionalStatementImpl Extended Conditional Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ExtendedConditionalStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getExtendedConditionalStatement() + * @generated + */ + int EXTENDED_CONDITIONAL_STATEMENT = 60; + + /** + * The feature id for the 'Condition' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENDED_CONDITIONAL_STATEMENT__CONDITION = 0; + + /** + * The feature id for the 'Then' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENDED_CONDITIONAL_STATEMENT__THEN = 1; + + /** + * The number of structural features of the 'Extended Conditional Statement' class. + * + * + * @generated + * @ordered + */ + int EXTENDED_CONDITIONAL_STATEMENT_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.SelectStatementImpl Select Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.SelectStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getSelectStatement() + * @generated + */ + int SELECT_STATEMENT = 61; + + /** + * The feature id for the 'Body' containment reference. + * + * + * @generated + * @ordered + */ + int SELECT_STATEMENT__BODY = STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Index' containment reference. + * + * + * @generated + * @ordered + */ + int SELECT_STATEMENT__INDEX = STATEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int SELECT_STATEMENT__TYPE = STATEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Select Statement' class. + * + * + * @generated + * @ordered + */ + int SELECT_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.WhileStatementImpl While Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.WhileStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getWhileStatement() + * @generated + */ + int WHILE_STATEMENT = 62; + + /** + * The feature id for the 'Condition' containment reference. + * + * + * @generated + * @ordered + */ + int WHILE_STATEMENT__CONDITION = STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Body' containment reference. + * + * + * @generated + * @ordered + */ + int WHILE_STATEMENT__BODY = STATEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'While Statement' class. + * + * + * @generated + * @ordered + */ + int WHILE_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ForeachStatementImpl Foreach Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ForeachStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getForeachStatement() + * @generated + */ + int FOREACH_STATEMENT = 63; + + /** + * The feature id for the 'Variable' containment reference. + * + * + * @generated + * @ordered + */ + int FOREACH_STATEMENT__VARIABLE = STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Body' containment reference. + * + * + * @generated + * @ordered + */ + int FOREACH_STATEMENT__BODY = STATEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Foreach Statement' class. + * + * + * @generated + * @ordered + */ + int FOREACH_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ToStatementImpl To Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ToStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getToStatement() + * @generated + */ + int TO_STATEMENT = 64; + + /** + * The feature id for the 'State' reference. + * + * + * @generated + * @ordered + */ + int TO_STATEMENT__STATE = STATEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'To Statement' class. + * + * + * @generated + * @ordered + */ + int TO_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.CaseStatementImpl Case Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.CaseStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getCaseStatement() + * @generated + */ + int CASE_STATEMENT = 65; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int CASE_STATEMENT__VALUE = STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Pattern' containment reference list. + * + * + * @generated + * @ordered + */ + int CASE_STATEMENT__PATTERN = STATEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Body' containment reference list. + * + * + * @generated + * @ordered + */ + int CASE_STATEMENT__BODY = STATEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Case Statement' class. + * + * + * @generated + * @ordered + */ + int CASE_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LoopStatementImpl Loop Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LoopStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLoopStatement() + * @generated + */ + int LOOP_STATEMENT = 66; + + /** + * The number of structural features of the 'Loop Statement' class. + * + * + * @generated + * @ordered + */ + int LOOP_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.OnStatementImpl On Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.OnStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getOnStatement() + * @generated + */ + int ON_STATEMENT = 67; + + /** + * The feature id for the 'Condition' containment reference. + * + * + * @generated + * @ordered + */ + int ON_STATEMENT__CONDITION = STATEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'On Statement' class. + * + * + * @generated + * @ordered + */ + int ON_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.WaitStatementImpl Wait Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.WaitStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getWaitStatement() + * @generated + */ + int WAIT_STATEMENT = 68; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int WAIT_STATEMENT__LEFT = STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int WAIT_STATEMENT__RIGHT = STATEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Wait Statement' class. + * + * + * @generated + * @ordered + */ + int WAIT_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.CompositionImpl Composition}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.CompositionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getComposition() + * @generated + */ + int COMPOSITION = 69; + + /** + * The feature id for the 'Global' containment reference. + * + * + * @generated + * @ordered + */ + int COMPOSITION__GLOBAL = 0; + + /** + * The feature id for the 'Blocks' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPOSITION__BLOCKS = 1; + + /** + * The number of structural features of the 'Composition' class. + * + * + * @generated + * @ordered + */ + int COMPOSITION_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.BlockImpl Block}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.BlockImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getBlock() + * @generated + */ + int BLOCK = 70; + + /** + * The feature id for the 'Local' containment reference. + * + * + * @generated + * @ordered + */ + int BLOCK__LOCAL = 0; + + /** + * The number of structural features of the 'Block' class. + * + * + * @generated + * @ordered + */ + int BLOCK_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.CompositeBlockImpl Composite Block}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.CompositeBlockImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getCompositeBlock() + * @generated + */ + int COMPOSITE_BLOCK = 71; + + /** + * The feature id for the 'Local' containment reference. + * + * + * @generated + * @ordered + */ + int COMPOSITE_BLOCK__LOCAL = BLOCK__LOCAL; + + /** + * The feature id for the 'Composition' containment reference. + * + * + * @generated + * @ordered + */ + int COMPOSITE_BLOCK__COMPOSITION = BLOCK_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Composite Block' class. + * + * + * @generated + * @ordered + */ + int COMPOSITE_BLOCK_FEATURE_COUNT = BLOCK_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.InstanceDeclarationImpl Instance Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.InstanceDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getInstanceDeclaration() + * @generated + */ + int INSTANCE_DECLARATION = 72; + + /** + * The feature id for the 'Local' containment reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_DECLARATION__LOCAL = PATH_DECLARATION_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Instance' containment reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_DECLARATION__INSTANCE = PATH_DECLARATION_USE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Instance Declaration' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_DECLARATION_FEATURE_COUNT = PATH_DECLARATION_USE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PortSetImpl Port Set}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PortSetImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPortSet() + * @generated + */ + int PORT_SET = 73; + + /** + * The feature id for the 'All Ports' attribute. + * + * + * @generated + * @ordered + */ + int PORT_SET__ALL_PORTS = 0; + + /** + * The feature id for the 'Ports' containment reference list. + * + * + * @generated + * @ordered + */ + int PORT_SET__PORTS = 1; + + /** + * The number of structural features of the 'Port Set' class. + * + * + * @generated + * @ordered + */ + int PORT_SET_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ComponentInstanceImpl Component Instance}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ComponentInstanceImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getComponentInstance() + * @generated + */ + int COMPONENT_INSTANCE = 74; + + /** + * The feature id for the 'Component' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE__COMPONENT = 0; + + /** + * The feature id for the 'Ports' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE__PORTS = 1; + + /** + * The feature id for the 'Parameters' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE__PARAMETERS = 2; + + /** + * The number of structural features of the 'Component Instance' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_FEATURE_COUNT = 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ExpressionImpl Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getExpression() + * @generated + */ + int EXPRESSION = 75; + + /** + * The number of structural features of the 'Expression' class. + * + * + * @generated + * @ordered + */ + int EXPRESSION_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ValueExpressionImpl Value Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ValueExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getValueExpression() + * @generated + */ + int VALUE_EXPRESSION = 76; + + /** + * The number of structural features of the 'Value Expression' class. + * + * + * @generated + * @ordered + */ + int VALUE_EXPRESSION_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ReferenceExpressionImpl Reference Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ReferenceExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getReferenceExpression() + * @generated + */ + int REFERENCE_EXPRESSION = 77; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_EXPRESSION__DECLARATION = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Reference Expression' class. + * + * + * @generated + * @ordered + */ + int REFERENCE_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.IdentifierExpressionImpl Identifier Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.IdentifierExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getIdentifierExpression() + * @generated + */ + int IDENTIFIER_EXPRESSION = 78; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int IDENTIFIER_EXPRESSION__DECLARATION = VALUE_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Identifier Expression' class. + * + * + * @generated + * @ordered + */ + int IDENTIFIER_EXPRESSION_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RecordExpressionImpl Record Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RecordExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRecordExpression() + * @generated + */ + int RECORD_EXPRESSION = 79; + + /** + * The feature id for the 'Fields' containment reference list. + * + * + * @generated + * @ordered + */ + int RECORD_EXPRESSION__FIELDS = VALUE_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Record Expression' class. + * + * + * @generated + * @ordered + */ + int RECORD_EXPRESSION_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.FieldExpressionImpl Field Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.FieldExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getFieldExpression() + * @generated + */ + int FIELD_EXPRESSION = 80; + + /** + * The feature id for the 'Field' reference. + * + * + * @generated + * @ordered + */ + int FIELD_EXPRESSION__FIELD = 0; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int FIELD_EXPRESSION__VALUE = 1; + + /** + * The number of structural features of the 'Field Expression' class. + * + * + * @generated + * @ordered + */ + int FIELD_EXPRESSION_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ArrayExpressionImpl Array Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ArrayExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getArrayExpression() + * @generated + */ + int ARRAY_EXPRESSION = 81; + + /** + * The feature id for the 'Values' containment reference list. + * + * + * @generated + * @ordered + */ + int ARRAY_EXPRESSION__VALUES = VALUE_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Array Expression' class. + * + * + * @generated + * @ordered + */ + int ARRAY_EXPRESSION_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.QueueExpressionImpl Queue Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.QueueExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getQueueExpression() + * @generated + */ + int QUEUE_EXPRESSION = 82; + + /** + * The feature id for the 'Values' containment reference list. + * + * + * @generated + * @ordered + */ + int QUEUE_EXPRESSION__VALUES = VALUE_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Queue Expression' class. + * + * + * @generated + * @ordered + */ + int QUEUE_EXPRESSION_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.EnqueueExpressionImpl Enqueue Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.EnqueueExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getEnqueueExpression() + * @generated + */ + int ENQUEUE_EXPRESSION = 83; + + /** + * The feature id for the 'Element' containment reference. + * + * + * @generated + * @ordered + */ + int ENQUEUE_EXPRESSION__ELEMENT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Queue' containment reference. + * + * + * @generated + * @ordered + */ + int ENQUEUE_EXPRESSION__QUEUE = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Enqueue Expression' class. + * + * + * @generated + * @ordered + */ + int ENQUEUE_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.AppendExpressionImpl Append Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.AppendExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getAppendExpression() + * @generated + */ + int APPEND_EXPRESSION = 84; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int APPEND_EXPRESSION__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int APPEND_EXPRESSION__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Append Expression' class. + * + * + * @generated + * @ordered + */ + int APPEND_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LiteralExpressionImpl Literal Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LiteralExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLiteralExpression() + * @generated + */ + int LITERAL_EXPRESSION = 85; + + /** + * The number of structural features of the 'Literal Expression' class. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.BooleanLiteralImpl Boolean Literal}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.BooleanLiteralImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getBooleanLiteral() + * @generated + */ + int BOOLEAN_LITERAL = 86; + + /** + * The number of structural features of the 'Boolean Literal' class. + * + * + * @generated + * @ordered + */ + int BOOLEAN_LITERAL_FEATURE_COUNT = LITERAL_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.NaturalLiteralImpl Natural Literal}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.NaturalLiteralImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getNaturalLiteral() + * @generated + */ + int NATURAL_LITERAL = 87; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int NATURAL_LITERAL__VALUE = LITERAL_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Natural Literal' class. + * + * + * @generated + * @ordered + */ + int NATURAL_LITERAL_FEATURE_COUNT = LITERAL_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LowerBoundImpl Lower Bound}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LowerBoundImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLowerBound() + * @generated + */ + int LOWER_BOUND = 88; + + /** + * The feature id for the 'Left' attribute. + * + * + * @generated + * @ordered + */ + int LOWER_BOUND__LEFT = 0; + + /** + * The feature id for the 'Right' attribute. + * + * + * @generated + * @ordered + */ + int LOWER_BOUND__RIGHT = 1; + + /** + * The number of structural features of the 'Lower Bound' class. + * + * + * @generated + * @ordered + */ + int LOWER_BOUND_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UpperBoundImpl Upper Bound}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UpperBoundImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUpperBound() + * @generated + */ + int UPPER_BOUND = 89; + + /** + * The number of structural features of the 'Upper Bound' class. + * + * + * @generated + * @ordered + */ + int UPPER_BOUND_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.NaturalLowerBoundImpl Natural Lower Bound}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.NaturalLowerBoundImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getNaturalLowerBound() + * @generated + */ + int NATURAL_LOWER_BOUND = 90; + + /** + * The feature id for the 'Left' attribute. + * + * + * @generated + * @ordered + */ + int NATURAL_LOWER_BOUND__LEFT = LOWER_BOUND__LEFT; + + /** + * The feature id for the 'Right' attribute. + * + * + * @generated + * @ordered + */ + int NATURAL_LOWER_BOUND__RIGHT = LOWER_BOUND__RIGHT; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int NATURAL_LOWER_BOUND__VALUE = LOWER_BOUND_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Natural Lower Bound' class. + * + * + * @generated + * @ordered + */ + int NATURAL_LOWER_BOUND_FEATURE_COUNT = LOWER_BOUND_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.NaturalUpperBoundImpl Natural Upper Bound}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.NaturalUpperBoundImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getNaturalUpperBound() + * @generated + */ + int NATURAL_UPPER_BOUND = 91; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int NATURAL_UPPER_BOUND__VALUE = UPPER_BOUND_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Left' attribute. + * + * + * @generated + * @ordered + */ + int NATURAL_UPPER_BOUND__LEFT = UPPER_BOUND_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Right' attribute. + * + * + * @generated + * @ordered + */ + int NATURAL_UPPER_BOUND__RIGHT = UPPER_BOUND_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Natural Upper Bound' class. + * + * + * @generated + * @ordered + */ + int NATURAL_UPPER_BOUND_FEATURE_COUNT = UPPER_BOUND_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.DecimalLowerBoundImpl Decimal Lower Bound}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.DecimalLowerBoundImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getDecimalLowerBound() + * @generated + */ + int DECIMAL_LOWER_BOUND = 92; + + /** + * The feature id for the 'Left' attribute. + * + * + * @generated + * @ordered + */ + int DECIMAL_LOWER_BOUND__LEFT = LOWER_BOUND__LEFT; + + /** + * The feature id for the 'Right' attribute. + * + * + * @generated + * @ordered + */ + int DECIMAL_LOWER_BOUND__RIGHT = LOWER_BOUND__RIGHT; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int DECIMAL_LOWER_BOUND__VALUE = LOWER_BOUND_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Decimal Lower Bound' class. + * + * + * @generated + * @ordered + */ + int DECIMAL_LOWER_BOUND_FEATURE_COUNT = LOWER_BOUND_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.DecimalUpperBoundImpl Decimal Upper Bound}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.DecimalUpperBoundImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getDecimalUpperBound() + * @generated + */ + int DECIMAL_UPPER_BOUND = 93; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int DECIMAL_UPPER_BOUND__VALUE = UPPER_BOUND_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Left' attribute. + * + * + * @generated + * @ordered + */ + int DECIMAL_UPPER_BOUND__LEFT = UPPER_BOUND_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Right' attribute. + * + * + * @generated + * @ordered + */ + int DECIMAL_UPPER_BOUND__RIGHT = UPPER_BOUND_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Decimal Upper Bound' class. + * + * + * @generated + * @ordered + */ + int DECIMAL_UPPER_BOUND_FEATURE_COUNT = UPPER_BOUND_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.VariableLowerBoundImpl Variable Lower Bound}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.VariableLowerBoundImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getVariableLowerBound() + * @generated + */ + int VARIABLE_LOWER_BOUND = 94; + + /** + * The feature id for the 'Left' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE_LOWER_BOUND__LEFT = LOWER_BOUND__LEFT; + + /** + * The feature id for the 'Right' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE_LOWER_BOUND__RIGHT = LOWER_BOUND__RIGHT; + + /** + * The feature id for the 'Variable' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_LOWER_BOUND__VARIABLE = LOWER_BOUND_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Variable Lower Bound' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_LOWER_BOUND_FEATURE_COUNT = LOWER_BOUND_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.VariableUpperBoundImpl Variable Upper Bound}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.VariableUpperBoundImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getVariableUpperBound() + * @generated + */ + int VARIABLE_UPPER_BOUND = 95; + + /** + * The feature id for the 'Variable' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_UPPER_BOUND__VARIABLE = UPPER_BOUND_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Left' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE_UPPER_BOUND__LEFT = UPPER_BOUND_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Right' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE_UPPER_BOUND__RIGHT = UPPER_BOUND_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Variable Upper Bound' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_UPPER_BOUND_FEATURE_COUNT = UPPER_BOUND_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.InfiniteUpperBoundImpl Infinite Upper Bound}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.InfiniteUpperBoundImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getInfiniteUpperBound() + * @generated + */ + int INFINITE_UPPER_BOUND = 96; + + /** + * The number of structural features of the 'Infinite Upper Bound' class. + * + * + * @generated + * @ordered + */ + int INFINITE_UPPER_BOUND_FEATURE_COUNT = UPPER_BOUND_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RequirementImpl Requirement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RequirementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRequirement() + * @generated + */ + int REQUIREMENT = 97; + + /** + * The feature id for the 'Property' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT__PROPERTY = 0; + + /** + * The feature id for the 'Positive' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT__POSITIVE = 1; + + /** + * The feature id for the 'Negative' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT__NEGATIVE = 2; + + /** + * The number of structural features of the 'Requirement' class. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_FEATURE_COUNT = 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PropertyDeclarationImpl Property Declaration}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PropertyDeclarationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPropertyDeclaration() + * @generated + */ + int PROPERTY_DECLARATION = 98; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY_DECLARATION__NAME = PROPERTY_DECLARATION_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Property' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY_DECLARATION__PROPERTY = PROPERTY_DECLARATION_USE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Property Declaration' class. + * + * + * @generated + * @ordered + */ + int PROPERTY_DECLARATION_FEATURE_COUNT = PROPERTY_DECLARATION_USE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PropertyImpl Property}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PropertyImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getProperty() + * @generated + */ + int PROPERTY = 99; + + /** + * The number of structural features of the 'Property' class. + * + * + * @generated + * @ordered + */ + int PROPERTY_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PatternPropertyImpl Pattern Property}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PatternPropertyImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPatternProperty() + * @generated + */ + int PATTERN_PROPERTY = 100; + + /** + * The number of structural features of the 'Pattern Property' class. + * + * + * @generated + * @ordered + */ + int PATTERN_PROPERTY_FEATURE_COUNT = PROPERTY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLPatternImpl LTL Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLPattern() + * @generated + */ + int LTL_PATTERN = 101; + + /** + * The feature id for the 'Property' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_PATTERN__PROPERTY = PATTERN_PROPERTY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'LTL Pattern' class. + * + * + * @generated + * @ordered + */ + int LTL_PATTERN_FEATURE_COUNT = PATTERN_PROPERTY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.DeadlockFreePatternImpl Deadlock Free Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.DeadlockFreePatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getDeadlockFreePattern() + * @generated + */ + int DEADLOCK_FREE_PATTERN = 102; + + /** + * The number of structural features of the 'Deadlock Free Pattern' class. + * + * + * @generated + * @ordered + */ + int DEADLOCK_FREE_PATTERN_FEATURE_COUNT = PATTERN_PROPERTY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.InfinitelyOftenPatternImpl Infinitely Often Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.InfinitelyOftenPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getInfinitelyOftenPattern() + * @generated + */ + int INFINITELY_OFTEN_PATTERN = 103; + + /** + * The feature id for the 'Subject' containment reference. + * + * + * @generated + * @ordered + */ + int INFINITELY_OFTEN_PATTERN__SUBJECT = PATTERN_PROPERTY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Infinitely Often Pattern' class. + * + * + * @generated + * @ordered + */ + int INFINITELY_OFTEN_PATTERN_FEATURE_COUNT = PATTERN_PROPERTY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.MortalPatternImpl Mortal Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.MortalPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getMortalPattern() + * @generated + */ + int MORTAL_PATTERN = 104; + + /** + * The feature id for the 'Subject' containment reference. + * + * + * @generated + * @ordered + */ + int MORTAL_PATTERN__SUBJECT = PATTERN_PROPERTY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Mortal Pattern' class. + * + * + * @generated + * @ordered + */ + int MORTAL_PATTERN_FEATURE_COUNT = PATTERN_PROPERTY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl Presence Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPresencePattern() + * @generated + */ + int PRESENCE_PATTERN = 105; + + /** + * The feature id for the 'Subject' containment reference. + * + * + * @generated + * @ordered + */ + int PRESENCE_PATTERN__SUBJECT = PATTERN_PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Lasting' attribute. + * + * + * @generated + * @ordered + */ + int PRESENCE_PATTERN__LASTING = PATTERN_PROPERTY_FEATURE_COUNT + 1; + + /** + * The feature id for the 'After' containment reference. + * + * + * @generated + * @ordered + */ + int PRESENCE_PATTERN__AFTER = PATTERN_PROPERTY_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Lower' containment reference. + * + * + * @generated + * @ordered + */ + int PRESENCE_PATTERN__LOWER = PATTERN_PROPERTY_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Upper' containment reference. + * + * + * @generated + * @ordered + */ + int PRESENCE_PATTERN__UPPER = PATTERN_PROPERTY_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Until' containment reference. + * + * + * @generated + * @ordered + */ + int PRESENCE_PATTERN__UNTIL = PATTERN_PROPERTY_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Before' containment reference. + * + * + * @generated + * @ordered + */ + int PRESENCE_PATTERN__BEFORE = PATTERN_PROPERTY_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Min' containment reference. + * + * + * @generated + * @ordered + */ + int PRESENCE_PATTERN__MIN = PATTERN_PROPERTY_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Max' containment reference. + * + * + * @generated + * @ordered + */ + int PRESENCE_PATTERN__MAX = PATTERN_PROPERTY_FEATURE_COUNT + 8; + + /** + * The number of structural features of the 'Presence Pattern' class. + * + * + * @generated + * @ordered + */ + int PRESENCE_PATTERN_FEATURE_COUNT = PATTERN_PROPERTY_FEATURE_COUNT + 9; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.AbsencePatternImpl Absence Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.AbsencePatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getAbsencePattern() + * @generated + */ + int ABSENCE_PATTERN = 106; + + /** + * The feature id for the 'Subject' containment reference. + * + * + * @generated + * @ordered + */ + int ABSENCE_PATTERN__SUBJECT = PATTERN_PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'After' containment reference. + * + * + * @generated + * @ordered + */ + int ABSENCE_PATTERN__AFTER = PATTERN_PROPERTY_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Lower' containment reference. + * + * + * @generated + * @ordered + */ + int ABSENCE_PATTERN__LOWER = PATTERN_PROPERTY_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Upper' containment reference. + * + * + * @generated + * @ordered + */ + int ABSENCE_PATTERN__UPPER = PATTERN_PROPERTY_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Until' containment reference. + * + * + * @generated + * @ordered + */ + int ABSENCE_PATTERN__UNTIL = PATTERN_PROPERTY_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Before' containment reference. + * + * + * @generated + * @ordered + */ + int ABSENCE_PATTERN__BEFORE = PATTERN_PROPERTY_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Min' containment reference. + * + * + * @generated + * @ordered + */ + int ABSENCE_PATTERN__MIN = PATTERN_PROPERTY_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Max' containment reference. + * + * + * @generated + * @ordered + */ + int ABSENCE_PATTERN__MAX = PATTERN_PROPERTY_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Absence Pattern' class. + * + * + * @generated + * @ordered + */ + int ABSENCE_PATTERN_FEATURE_COUNT = PATTERN_PROPERTY_FEATURE_COUNT + 8; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.AlwaysPatternImpl Always Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.AlwaysPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getAlwaysPattern() + * @generated + */ + int ALWAYS_PATTERN = 107; + + /** + * The feature id for the 'Subject' containment reference. + * + * + * @generated + * @ordered + */ + int ALWAYS_PATTERN__SUBJECT = PATTERN_PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Before' containment reference. + * + * + * @generated + * @ordered + */ + int ALWAYS_PATTERN__BEFORE = PATTERN_PROPERTY_FEATURE_COUNT + 1; + + /** + * The feature id for the 'After' containment reference. + * + * + * @generated + * @ordered + */ + int ALWAYS_PATTERN__AFTER = PATTERN_PROPERTY_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Until' containment reference. + * + * + * @generated + * @ordered + */ + int ALWAYS_PATTERN__UNTIL = PATTERN_PROPERTY_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Min' containment reference. + * + * + * @generated + * @ordered + */ + int ALWAYS_PATTERN__MIN = PATTERN_PROPERTY_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Max' containment reference. + * + * + * @generated + * @ordered + */ + int ALWAYS_PATTERN__MAX = PATTERN_PROPERTY_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Always Pattern' class. + * + * + * @generated + * @ordered + */ + int ALWAYS_PATTERN_FEATURE_COUNT = PATTERN_PROPERTY_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.SequencePatternImpl Sequence Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.SequencePatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getSequencePattern() + * @generated + */ + int SEQUENCE_PATTERN = 108; + + /** + * The number of structural features of the 'Sequence Pattern' class. + * + * + * @generated + * @ordered + */ + int SEQUENCE_PATTERN_FEATURE_COUNT = PATTERN_PROPERTY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLPropertyImpl LTL Property}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLPropertyImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLProperty() + * @generated + */ + int LTL_PROPERTY = 109; + + /** + * The number of structural features of the 'LTL Property' class. + * + * + * @generated + * @ordered + */ + int LTL_PROPERTY_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ObservableEventImpl Observable Event}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ObservableEventImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getObservableEvent() + * @generated + */ + int OBSERVABLE_EVENT = 114; + + /** + * The number of structural features of the 'Observable Event' class. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_EVENT_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.StateEventImpl State Event}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.StateEventImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getStateEvent() + * @generated + */ + int STATE_EVENT = 110; + + /** + * The feature id for the 'Subject' containment reference. + * + * + * @generated + * @ordered + */ + int STATE_EVENT__SUBJECT = OBSERVABLE_EVENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'State Event' class. + * + * + * @generated + * @ordered + */ + int STATE_EVENT_FEATURE_COUNT = OBSERVABLE_EVENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.EnterStateEventImpl Enter State Event}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.EnterStateEventImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getEnterStateEvent() + * @generated + */ + int ENTER_STATE_EVENT = 111; + + /** + * The feature id for the 'Subject' containment reference. + * + * + * @generated + * @ordered + */ + int ENTER_STATE_EVENT__SUBJECT = STATE_EVENT__SUBJECT; + + /** + * The number of structural features of the 'Enter State Event' class. + * + * + * @generated + * @ordered + */ + int ENTER_STATE_EVENT_FEATURE_COUNT = STATE_EVENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LeaveStateEventImpl Leave State Event}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LeaveStateEventImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLeaveStateEvent() + * @generated + */ + int LEAVE_STATE_EVENT = 112; + + /** + * The feature id for the 'Subject' containment reference. + * + * + * @generated + * @ordered + */ + int LEAVE_STATE_EVENT__SUBJECT = STATE_EVENT__SUBJECT; + + /** + * The number of structural features of the 'Leave State Event' class. + * + * + * @generated + * @ordered + */ + int LEAVE_STATE_EVENT_FEATURE_COUNT = STATE_EVENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ObservableImpl Observable}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ObservableImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getObservable() + * @generated + */ + int OBSERVABLE = 113; + + /** + * The number of structural features of the 'Observable' class. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_FEATURE_COUNT = SEQUENCE_PATTERN_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PathEventImpl Path Event}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PathEventImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPathEvent() + * @generated + */ + int PATH_EVENT = 115; + + /** + * The feature id for the 'Path' containment reference. + * + * + * @generated + * @ordered + */ + int PATH_EVENT__PATH = OBSERVABLE_EVENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Item' containment reference. + * + * + * @generated + * @ordered + */ + int PATH_EVENT__ITEM = OBSERVABLE_EVENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Path Event' class. + * + * + * @generated + * @ordered + */ + int PATH_EVENT_FEATURE_COUNT = OBSERVABLE_EVENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PathImpl Path}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PathImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPath() + * @generated + */ + int PATH = 116; + + /** + * The feature id for the 'Items' containment reference list. + * + * + * @generated + * @ordered + */ + int PATH__ITEMS = 0; + + /** + * The number of structural features of the 'Path' class. + * + * + * @generated + * @ordered + */ + int PATH_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PathItemImpl Path Item}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PathItemImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPathItem() + * @generated + */ + int PATH_ITEM = 117; + + /** + * The number of structural features of the 'Path Item' class. + * + * + * @generated + * @ordered + */ + int PATH_ITEM_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.NaturalItemImpl Natural Item}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.NaturalItemImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getNaturalItem() + * @generated + */ + int NATURAL_ITEM = 118; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int NATURAL_ITEM__VALUE = PATH_ITEM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Natural Item' class. + * + * + * @generated + * @ordered + */ + int NATURAL_ITEM_FEATURE_COUNT = PATH_ITEM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.NamedItemImpl Named Item}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.NamedItemImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getNamedItem() + * @generated + */ + int NAMED_ITEM = 119; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int NAMED_ITEM__DECLARATION = PATH_ITEM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Named Item' class. + * + * + * @generated + * @ordered + */ + int NAMED_ITEM_FEATURE_COUNT = PATH_ITEM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.SubjectImpl Subject}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.SubjectImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getSubject() + * @generated + */ + int SUBJECT = 120; + + /** + * The number of structural features of the 'Subject' class. + * + * + * @generated + * @ordered + */ + int SUBJECT_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.StateSubjectImpl State Subject}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.StateSubjectImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getStateSubject() + * @generated + */ + int STATE_SUBJECT = 121; + + /** + * The feature id for the 'State' reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBJECT__STATE = SUBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'State Subject' class. + * + * + * @generated + * @ordered + */ + int STATE_SUBJECT_FEATURE_COUNT = SUBJECT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ValueSubjectImpl Value Subject}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ValueSubjectImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getValueSubject() + * @generated + */ + int VALUE_SUBJECT = 122; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int VALUE_SUBJECT__VALUE = SUBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Value Subject' class. + * + * + * @generated + * @ordered + */ + int VALUE_SUBJECT_FEATURE_COUNT = SUBJECT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.TagSubjectImpl Tag Subject}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.TagSubjectImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getTagSubject() + * @generated + */ + int TAG_SUBJECT = 123; + + /** + * The feature id for the 'Tag' reference. + * + * + * @generated + * @ordered + */ + int TAG_SUBJECT__TAG = SUBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Tag Subject' class. + * + * + * @generated + * @ordered + */ + int TAG_SUBJECT_FEATURE_COUNT = SUBJECT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.EventSubjectImpl Event Subject}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.EventSubjectImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getEventSubject() + * @generated + */ + int EVENT_SUBJECT = 124; + + /** + * The feature id for the 'Event' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_SUBJECT__EVENT = SUBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Event Subject' class. + * + * + * @generated + * @ordered + */ + int EVENT_SUBJECT_FEATURE_COUNT = SUBJECT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.TupleTypeImpl Tuple Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.TupleTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getTupleType() + * @generated + */ + int TUPLE_TYPE = 125; + + /** + * The feature id for the 'Types' containment reference list. + * + * + * @generated + * @ordered + */ + int TUPLE_TYPE__TYPES = TYPE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Tuple Type' class. + * + * + * @generated + * @ordered + */ + int TUPLE_TYPE_FEATURE_COUNT = TYPE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.NaturalTypeImpl Natural Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.NaturalTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getNaturalType() + * @generated + */ + int NATURAL_TYPE = 126; + + /** + * The number of structural features of the 'Natural Type' class. + * + * + * @generated + * @ordered + */ + int NATURAL_TYPE_FEATURE_COUNT = BASIC_TYPE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.IntegerTypeImpl Integer Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.IntegerTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getIntegerType() + * @generated + */ + int INTEGER_TYPE = 127; + + /** + * The number of structural features of the 'Integer Type' class. + * + * + * @generated + * @ordered + */ + int INTEGER_TYPE_FEATURE_COUNT = BASIC_TYPE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.BooleanTypeImpl Boolean Type}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.BooleanTypeImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getBooleanType() + * @generated + */ + int BOOLEAN_TYPE = 128; + + /** + * The number of structural features of the 'Boolean Type' class. + * + * + * @generated + * @ordered + */ + int BOOLEAN_TYPE_FEATURE_COUNT = BASIC_TYPE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnlessStatementImpl Unless Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnlessStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnlessStatement() + * @generated + */ + int UNLESS_STATEMENT = 129; + + /** + * The feature id for the 'Followers' containment reference list. + * + * + * @generated + * @ordered + */ + int UNLESS_STATEMENT__FOLLOWERS = STATEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Unless Statement' class. + * + * + * @generated + * @ordered + */ + int UNLESS_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.StatementChoiceImpl Statement Choice}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.StatementChoiceImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getStatementChoice() + * @generated + */ + int STATEMENT_CHOICE = 130; + + /** + * The feature id for the 'Choices' containment reference list. + * + * + * @generated + * @ordered + */ + int STATEMENT_CHOICE__CHOICES = STATEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Statement Choice' class. + * + * + * @generated + * @ordered + */ + int STATEMENT_CHOICE_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.StatementSequenceImpl Statement Sequence}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.StatementSequenceImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getStatementSequence() + * @generated + */ + int STATEMENT_SEQUENCE = 131; + + /** + * The feature id for the 'Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int STATEMENT_SEQUENCE__STATEMENTS = STATEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Statement Sequence' class. + * + * + * @generated + * @ordered + */ + int STATEMENT_SEQUENCE_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.AssignStatementImpl Assign Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.AssignStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getAssignStatement() + * @generated + */ + int ASSIGN_STATEMENT = 132; + + /** + * The feature id for the 'Patterns' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSIGN_STATEMENT__PATTERNS = PATTERN_STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Values' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSIGN_STATEMENT__VALUES = PATTERN_STATEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Assign Statement' class. + * + * + * @generated + * @ordered + */ + int ASSIGN_STATEMENT_FEATURE_COUNT = PATTERN_STATEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.AssignAnyStatementImpl Assign Any Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.AssignAnyStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getAssignAnyStatement() + * @generated + */ + int ASSIGN_ANY_STATEMENT = 133; + + /** + * The feature id for the 'Patterns' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSIGN_ANY_STATEMENT__PATTERNS = PATTERN_STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Exp' containment reference. + * + * + * @generated + * @ordered + */ + int ASSIGN_ANY_STATEMENT__EXP = PATTERN_STATEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Assign Any Statement' class. + * + * + * @generated + * @ordered + */ + int ASSIGN_ANY_STATEMENT_FEATURE_COUNT = PATTERN_STATEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.SendStatementImpl Send Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.SendStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getSendStatement() + * @generated + */ + int SEND_STATEMENT = 134; + + /** + * The feature id for the 'Port' containment reference. + * + * + * @generated + * @ordered + */ + int SEND_STATEMENT__PORT = PATTERN_STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Values' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_STATEMENT__VALUES = PATTERN_STATEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Send Statement' class. + * + * + * @generated + * @ordered + */ + int SEND_STATEMENT_FEATURE_COUNT = PATTERN_STATEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ReceiveStatementImpl Receive Statement}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ReceiveStatementImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getReceiveStatement() + * @generated + */ + int RECEIVE_STATEMENT = 135; + + /** + * The feature id for the 'Port' containment reference. + * + * + * @generated + * @ordered + */ + int RECEIVE_STATEMENT__PORT = PATTERN_STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Patterns' containment reference list. + * + * + * @generated + * @ordered + */ + int RECEIVE_STATEMENT__PATTERNS = PATTERN_STATEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Exp' containment reference. + * + * + * @generated + * @ordered + */ + int RECEIVE_STATEMENT__EXP = PATTERN_STATEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Receive Statement' class. + * + * + * @generated + * @ordered + */ + int RECEIVE_STATEMENT_FEATURE_COUNT = PATTERN_STATEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ConstructorPatternImpl Constructor Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ConstructorPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getConstructorPattern() + * @generated + */ + int CONSTRUCTOR_PATTERN = 136; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_PATTERN__DECLARATION = IDENTIFIER_PATTERN__DECLARATION; + + /** + * The feature id for the 'Parameters' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_PATTERN__PARAMETERS = IDENTIFIER_PATTERN_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Constructor Pattern' class. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_PATTERN_FEATURE_COUNT = IDENTIFIER_PATTERN_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ArrayAccessPatternImpl Array Access Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ArrayAccessPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getArrayAccessPattern() + * @generated + */ + int ARRAY_ACCESS_PATTERN = 137; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int ARRAY_ACCESS_PATTERN__DECLARATION = IDENTIFIER_PATTERN__DECLARATION; + + /** + * The feature id for the 'Source' containment reference. + * + * + * @generated + * @ordered + */ + int ARRAY_ACCESS_PATTERN__SOURCE = IDENTIFIER_PATTERN_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Index' containment reference. + * + * + * @generated + * @ordered + */ + int ARRAY_ACCESS_PATTERN__INDEX = IDENTIFIER_PATTERN_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Array Access Pattern' class. + * + * + * @generated + * @ordered + */ + int ARRAY_ACCESS_PATTERN_FEATURE_COUNT = IDENTIFIER_PATTERN_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RecordAccessPatternImpl Record Access Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RecordAccessPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRecordAccessPattern() + * @generated + */ + int RECORD_ACCESS_PATTERN = 138; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int RECORD_ACCESS_PATTERN__DECLARATION = IDENTIFIER_PATTERN__DECLARATION; + + /** + * The feature id for the 'Source' containment reference. + * + * + * @generated + * @ordered + */ + int RECORD_ACCESS_PATTERN__SOURCE = IDENTIFIER_PATTERN_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Field' reference. + * + * + * @generated + * @ordered + */ + int RECORD_ACCESS_PATTERN__FIELD = IDENTIFIER_PATTERN_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Record Access Pattern' class. + * + * + * @generated + * @ordered + */ + int RECORD_ACCESS_PATTERN_FEATURE_COUNT = IDENTIFIER_PATTERN_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.AllExpressionImpl All Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.AllExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getAllExpression() + * @generated + */ + int ALL_EXPRESSION = 139; + + /** + * The feature id for the 'Index' containment reference. + * + * + * @generated + * @ordered + */ + int ALL_EXPRESSION__INDEX = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int ALL_EXPRESSION__TYPE = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int ALL_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'All Expression' class. + * + * + * @generated + * @ordered + */ + int ALL_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ExistsExpressionImpl Exists Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ExistsExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getExistsExpression() + * @generated + */ + int EXISTS_EXPRESSION = 140; + + /** + * The feature id for the 'Index' containment reference. + * + * + * @generated + * @ordered + */ + int EXISTS_EXPRESSION__INDEX = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int EXISTS_EXPRESSION__TYPE = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int EXISTS_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Exists Expression' class. + * + * + * @generated + * @ordered + */ + int EXISTS_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ConditionalImpl Conditional}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ConditionalImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getConditional() + * @generated + */ + int CONDITIONAL = 141; + + /** + * The feature id for the 'Condition' containment reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL__CONDITION = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Then' containment reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL__THEN = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Else' containment reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL__ELSE = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Conditional' class. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.DisjunctionImpl Disjunction}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.DisjunctionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getDisjunction() + * @generated + */ + int DISJUNCTION = 142; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int DISJUNCTION__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int DISJUNCTION__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Disjunction' class. + * + * + * @generated + * @ordered + */ + int DISJUNCTION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ImplicationImpl Implication}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ImplicationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getImplication() + * @generated + */ + int IMPLICATION = 143; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int IMPLICATION__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int IMPLICATION__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Implication' class. + * + * + * @generated + * @ordered + */ + int IMPLICATION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ConjunctionImpl Conjunction}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ConjunctionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getConjunction() + * @generated + */ + int CONJUNCTION = 144; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int CONJUNCTION__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int CONJUNCTION__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Conjunction' class. + * + * + * @generated + * @ordered + */ + int CONJUNCTION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonEqualImpl Comparison Equal}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ComparisonEqualImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getComparisonEqual() + * @generated + */ + int COMPARISON_EQUAL = 145; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_EQUAL__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_EQUAL__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Comparison Equal' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_EQUAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonNotEqualImpl Comparison Not Equal}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ComparisonNotEqualImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getComparisonNotEqual() + * @generated + */ + int COMPARISON_NOT_EQUAL = 146; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_NOT_EQUAL__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_NOT_EQUAL__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Comparison Not Equal' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_NOT_EQUAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonLesserImpl Comparison Lesser}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ComparisonLesserImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getComparisonLesser() + * @generated + */ + int COMPARISON_LESSER = 147; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_LESSER__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_LESSER__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Comparison Lesser' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_LESSER_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonLesserEqualImpl Comparison Lesser Equal}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ComparisonLesserEqualImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getComparisonLesserEqual() + * @generated + */ + int COMPARISON_LESSER_EQUAL = 148; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_LESSER_EQUAL__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_LESSER_EQUAL__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Comparison Lesser Equal' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_LESSER_EQUAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonGreaterImpl Comparison Greater}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ComparisonGreaterImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getComparisonGreater() + * @generated + */ + int COMPARISON_GREATER = 149; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_GREATER__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_GREATER__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Comparison Greater' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_GREATER_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonGreaterEqualImpl Comparison Greater Equal}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ComparisonGreaterEqualImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getComparisonGreaterEqual() + * @generated + */ + int COMPARISON_GREATER_EQUAL = 150; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_GREATER_EQUAL__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON_GREATER_EQUAL__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Comparison Greater Equal' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_GREATER_EQUAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.AdditionImpl Addition}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.AdditionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getAddition() + * @generated + */ + int ADDITION = 151; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int ADDITION__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int ADDITION__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Addition' class. + * + * + * @generated + * @ordered + */ + int ADDITION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.SubstractionImpl Substraction}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.SubstractionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getSubstraction() + * @generated + */ + int SUBSTRACTION = 152; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int SUBSTRACTION__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int SUBSTRACTION__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Substraction' class. + * + * + * @generated + * @ordered + */ + int SUBSTRACTION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.MultiplicationImpl Multiplication}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.MultiplicationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getMultiplication() + * @generated + */ + int MULTIPLICATION = 153; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICATION__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICATION__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Multiplication' class. + * + * + * @generated + * @ordered + */ + int MULTIPLICATION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.DivisionImpl Division}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.DivisionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getDivision() + * @generated + */ + int DIVISION = 154; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int DIVISION__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int DIVISION__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Division' class. + * + * + * @generated + * @ordered + */ + int DIVISION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ModuloImpl Modulo}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ModuloImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getModulo() + * @generated + */ + int MODULO = 155; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int MODULO__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int MODULO__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Modulo' class. + * + * + * @generated + * @ordered + */ + int MODULO_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnaryPlusExpressionImpl Unary Plus Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnaryPlusExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnaryPlusExpression() + * @generated + */ + int UNARY_PLUS_EXPRESSION = 156; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int UNARY_PLUS_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Unary Plus Expression' class. + * + * + * @generated + * @ordered + */ + int UNARY_PLUS_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnaryMinusExpressionImpl Unary Minus Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnaryMinusExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnaryMinusExpression() + * @generated + */ + int UNARY_MINUS_EXPRESSION = 157; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int UNARY_MINUS_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Unary Minus Expression' class. + * + * + * @generated + * @ordered + */ + int UNARY_MINUS_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnaryNegationExpressionImpl Unary Negation Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnaryNegationExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnaryNegationExpression() + * @generated + */ + int UNARY_NEGATION_EXPRESSION = 158; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int UNARY_NEGATION_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Unary Negation Expression' class. + * + * + * @generated + * @ordered + */ + int UNARY_NEGATION_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnaryFirstExpressionImpl Unary First Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnaryFirstExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnaryFirstExpression() + * @generated + */ + int UNARY_FIRST_EXPRESSION = 159; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int UNARY_FIRST_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Unary First Expression' class. + * + * + * @generated + * @ordered + */ + int UNARY_FIRST_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnaryLengthExpressionImpl Unary Length Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnaryLengthExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnaryLengthExpression() + * @generated + */ + int UNARY_LENGTH_EXPRESSION = 160; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int UNARY_LENGTH_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Unary Length Expression' class. + * + * + * @generated + * @ordered + */ + int UNARY_LENGTH_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnaryCoerceExpressionImpl Unary Coerce Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnaryCoerceExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnaryCoerceExpression() + * @generated + */ + int UNARY_COERCE_EXPRESSION = 161; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int UNARY_COERCE_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Unary Coerce Expression' class. + * + * + * @generated + * @ordered + */ + int UNARY_COERCE_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnaryFullExpressionImpl Unary Full Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnaryFullExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnaryFullExpression() + * @generated + */ + int UNARY_FULL_EXPRESSION = 162; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int UNARY_FULL_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Unary Full Expression' class. + * + * + * @generated + * @ordered + */ + int UNARY_FULL_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnaryDeQueueExpressionImpl Unary De Queue Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnaryDeQueueExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnaryDeQueueExpression() + * @generated + */ + int UNARY_DE_QUEUE_EXPRESSION = 163; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int UNARY_DE_QUEUE_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Unary De Queue Expression' class. + * + * + * @generated + * @ordered + */ + int UNARY_DE_QUEUE_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.UnaryEmptyExpressionImpl Unary Empty Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.UnaryEmptyExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getUnaryEmptyExpression() + * @generated + */ + int UNARY_EMPTY_EXPRESSION = 164; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int UNARY_EMPTY_EXPRESSION__CHILD = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Unary Empty Expression' class. + * + * + * @generated + * @ordered + */ + int UNARY_EMPTY_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ProjectionImpl Projection}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ProjectionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getProjection() + * @generated + */ + int PROJECTION = 165; + + /** + * The feature id for the 'Channel' containment reference. + * + * + * @generated + * @ordered + */ + int PROJECTION__CHANNEL = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Field' containment reference. + * + * + * @generated + * @ordered + */ + int PROJECTION__FIELD = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Projection' class. + * + * + * @generated + * @ordered + */ + int PROJECTION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ConstructionExpressionImpl Construction Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ConstructionExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getConstructionExpression() + * @generated + */ + int CONSTRUCTION_EXPRESSION = 166; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTION_EXPRESSION__DECLARATION = IDENTIFIER_EXPRESSION__DECLARATION; + + /** + * The feature id for the 'Parameters' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTION_EXPRESSION__PARAMETERS = IDENTIFIER_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Construction Expression' class. + * + * + * @generated + * @ordered + */ + int CONSTRUCTION_EXPRESSION_FEATURE_COUNT = IDENTIFIER_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ArrayAccessExpressionImpl Array Access Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ArrayAccessExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getArrayAccessExpression() + * @generated + */ + int ARRAY_ACCESS_EXPRESSION = 167; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int ARRAY_ACCESS_EXPRESSION__DECLARATION = IDENTIFIER_EXPRESSION__DECLARATION; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int ARRAY_ACCESS_EXPRESSION__CHILD = IDENTIFIER_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Indexes' containment reference list. + * + * + * @generated + * @ordered + */ + int ARRAY_ACCESS_EXPRESSION__INDEXES = IDENTIFIER_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Array Access Expression' class. + * + * + * @generated + * @ordered + */ + int ARRAY_ACCESS_EXPRESSION_FEATURE_COUNT = IDENTIFIER_EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.RecordAccessExpressionImpl Record Access Expression}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.RecordAccessExpressionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getRecordAccessExpression() + * @generated + */ + int RECORD_ACCESS_EXPRESSION = 168; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int RECORD_ACCESS_EXPRESSION__DECLARATION = IDENTIFIER_EXPRESSION__DECLARATION; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int RECORD_ACCESS_EXPRESSION__CHILD = IDENTIFIER_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Field' reference. + * + * + * @generated + * @ordered + */ + int RECORD_ACCESS_EXPRESSION__FIELD = IDENTIFIER_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Record Access Expression' class. + * + * + * @generated + * @ordered + */ + int RECORD_ACCESS_EXPRESSION_FEATURE_COUNT = IDENTIFIER_EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.TrueLiteralImpl True Literal}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.TrueLiteralImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getTrueLiteral() + * @generated + */ + int TRUE_LITERAL = 169; + + /** + * The number of structural features of the 'True Literal' class. + * + * + * @generated + * @ordered + */ + int TRUE_LITERAL_FEATURE_COUNT = BOOLEAN_LITERAL_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.FalseLiteralImpl False Literal}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.FalseLiteralImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getFalseLiteral() + * @generated + */ + int FALSE_LITERAL = 170; + + /** + * The number of structural features of the 'False Literal' class. + * + * + * @generated + * @ordered + */ + int FALSE_LITERAL_FEATURE_COUNT = BOOLEAN_LITERAL_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.AllPropertyImpl All Property}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.AllPropertyImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getAllProperty() + * @generated + */ + int ALL_PROPERTY = 171; + + /** + * The feature id for the 'Variable' containment reference. + * + * + * @generated + * @ordered + */ + int ALL_PROPERTY__VARIABLE = PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int ALL_PROPERTY__TYPE = PROPERTY_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int ALL_PROPERTY__CHILD = PROPERTY_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'All Property' class. + * + * + * @generated + * @ordered + */ + int ALL_PROPERTY_FEATURE_COUNT = PROPERTY_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ExistsPropertyImpl Exists Property}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ExistsPropertyImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getExistsProperty() + * @generated + */ + int EXISTS_PROPERTY = 172; + + /** + * The feature id for the 'Variable' containment reference. + * + * + * @generated + * @ordered + */ + int EXISTS_PROPERTY__VARIABLE = PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int EXISTS_PROPERTY__TYPE = PROPERTY_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int EXISTS_PROPERTY__CHILD = PROPERTY_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Exists Property' class. + * + * + * @generated + * @ordered + */ + int EXISTS_PROPERTY_FEATURE_COUNT = PROPERTY_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PropertyDisjunctionImpl Property Disjunction}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PropertyDisjunctionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPropertyDisjunction() + * @generated + */ + int PROPERTY_DISJUNCTION = 173; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY_DISJUNCTION__LEFT = PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY_DISJUNCTION__RIGHT = PROPERTY_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Property Disjunction' class. + * + * + * @generated + * @ordered + */ + int PROPERTY_DISJUNCTION_FEATURE_COUNT = PROPERTY_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PropertyImplicationImpl Property Implication}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PropertyImplicationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPropertyImplication() + * @generated + */ + int PROPERTY_IMPLICATION = 174; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY_IMPLICATION__LEFT = PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY_IMPLICATION__RIGHT = PROPERTY_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Property Implication' class. + * + * + * @generated + * @ordered + */ + int PROPERTY_IMPLICATION_FEATURE_COUNT = PROPERTY_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PropertyConjunctionImpl Property Conjunction}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PropertyConjunctionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPropertyConjunction() + * @generated + */ + int PROPERTY_CONJUNCTION = 175; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY_CONJUNCTION__LEFT = PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY_CONJUNCTION__RIGHT = PROPERTY_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Property Conjunction' class. + * + * + * @generated + * @ordered + */ + int PROPERTY_CONJUNCTION_FEATURE_COUNT = PROPERTY_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PropertyNegationImpl Property Negation}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PropertyNegationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPropertyNegation() + * @generated + */ + int PROPERTY_NEGATION = 176; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY_NEGATION__CHILD = PROPERTY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Property Negation' class. + * + * + * @generated + * @ordered + */ + int PROPERTY_NEGATION_FEATURE_COUNT = PROPERTY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl Leads To Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLeadsToPattern() + * @generated + */ + int LEADS_TO_PATTERN = 177; + + /** + * The feature id for the 'Subject' containment reference. + * + * + * @generated + * @ordered + */ + int LEADS_TO_PATTERN__SUBJECT = SEQUENCE_PATTERN_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Follower' containment reference. + * + * + * @generated + * @ordered + */ + int LEADS_TO_PATTERN__FOLLOWER = SEQUENCE_PATTERN_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Before' containment reference. + * + * + * @generated + * @ordered + */ + int LEADS_TO_PATTERN__BEFORE = SEQUENCE_PATTERN_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Lower' containment reference. + * + * + * @generated + * @ordered + */ + int LEADS_TO_PATTERN__LOWER = SEQUENCE_PATTERN_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Upper' containment reference. + * + * + * @generated + * @ordered + */ + int LEADS_TO_PATTERN__UPPER = SEQUENCE_PATTERN_FEATURE_COUNT + 4; + + /** + * The feature id for the 'After' containment reference. + * + * + * @generated + * @ordered + */ + int LEADS_TO_PATTERN__AFTER = SEQUENCE_PATTERN_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Until' containment reference. + * + * + * @generated + * @ordered + */ + int LEADS_TO_PATTERN__UNTIL = SEQUENCE_PATTERN_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Min' containment reference. + * + * + * @generated + * @ordered + */ + int LEADS_TO_PATTERN__MIN = SEQUENCE_PATTERN_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Max' containment reference. + * + * + * @generated + * @ordered + */ + int LEADS_TO_PATTERN__MAX = SEQUENCE_PATTERN_FEATURE_COUNT + 8; + + /** + * The number of structural features of the 'Leads To Pattern' class. + * + * + * @generated + * @ordered + */ + int LEADS_TO_PATTERN_FEATURE_COUNT = SEQUENCE_PATTERN_FEATURE_COUNT + 9; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.PrecedesPatternImpl Precedes Pattern}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.PrecedesPatternImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getPrecedesPattern() + * @generated + */ + int PRECEDES_PATTERN = 178; + + /** + * The feature id for the 'Subject' containment reference. + * + * + * @generated + * @ordered + */ + int PRECEDES_PATTERN__SUBJECT = SEQUENCE_PATTERN_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Follower' containment reference. + * + * + * @generated + * @ordered + */ + int PRECEDES_PATTERN__FOLLOWER = SEQUENCE_PATTERN_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Before' containment reference. + * + * + * @generated + * @ordered + */ + int PRECEDES_PATTERN__BEFORE = SEQUENCE_PATTERN_FEATURE_COUNT + 2; + + /** + * The feature id for the 'After' containment reference. + * + * + * @generated + * @ordered + */ + int PRECEDES_PATTERN__AFTER = SEQUENCE_PATTERN_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Until' containment reference. + * + * + * @generated + * @ordered + */ + int PRECEDES_PATTERN__UNTIL = SEQUENCE_PATTERN_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Min' containment reference. + * + * + * @generated + * @ordered + */ + int PRECEDES_PATTERN__MIN = SEQUENCE_PATTERN_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Max' containment reference. + * + * + * @generated + * @ordered + */ + int PRECEDES_PATTERN__MAX = SEQUENCE_PATTERN_FEATURE_COUNT + 6; + + /** + * The number of structural features of the 'Precedes Pattern' class. + * + * + * @generated + * @ordered + */ + int PRECEDES_PATTERN_FEATURE_COUNT = SEQUENCE_PATTERN_FEATURE_COUNT + 7; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLAllImpl LTL All}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLAllImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLAll() + * @generated + */ + int LTL_ALL = 179; + + /** + * The feature id for the 'Index' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_ALL__INDEX = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_ALL__TYPE = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_ALL__CHILD = LTL_PROPERTY_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'LTL All' class. + * + * + * @generated + * @ordered + */ + int LTL_ALL_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLExistsImpl LTL Exists}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLExistsImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLExists() + * @generated + */ + int LTL_EXISTS = 180; + + /** + * The feature id for the 'Index' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_EXISTS__INDEX = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_EXISTS__TYPE = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_EXISTS__CHILD = LTL_PROPERTY_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'LTL Exists' class. + * + * + * @generated + * @ordered + */ + int LTL_EXISTS_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLDisjunctionImpl LTL Disjunction}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLDisjunctionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLDisjunction() + * @generated + */ + int LTL_DISJUNCTION = 181; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_DISJUNCTION__LEFT = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_DISJUNCTION__RIGHT = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'LTL Disjunction' class. + * + * + * @generated + * @ordered + */ + int LTL_DISJUNCTION_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLImplicationImpl LTL Implication}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLImplicationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLImplication() + * @generated + */ + int LTL_IMPLICATION = 182; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_IMPLICATION__LEFT = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_IMPLICATION__RIGHT = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'LTL Implication' class. + * + * + * @generated + * @ordered + */ + int LTL_IMPLICATION_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLConjunctionImpl LTL Conjunction}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLConjunctionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLConjunction() + * @generated + */ + int LTL_CONJUNCTION = 183; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_CONJUNCTION__LEFT = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_CONJUNCTION__RIGHT = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'LTL Conjunction' class. + * + * + * @generated + * @ordered + */ + int LTL_CONJUNCTION_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLUntilImpl LTL Until}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLUntilImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLUntil() + * @generated + */ + int LTL_UNTIL = 184; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_UNTIL__LEFT = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_UNTIL__RIGHT = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'LTL Until' class. + * + * + * @generated + * @ordered + */ + int LTL_UNTIL_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLReleaseImpl LTL Release}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLReleaseImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLRelease() + * @generated + */ + int LTL_RELEASE = 185; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_RELEASE__LEFT = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_RELEASE__RIGHT = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'LTL Release' class. + * + * + * @generated + * @ordered + */ + int LTL_RELEASE_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryNegationImpl LTL Unary Negation}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryNegationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLUnaryNegation() + * @generated + */ + int LTL_UNARY_NEGATION = 186; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_UNARY_NEGATION__OPERAND = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'LTL Unary Negation' class. + * + * + * @generated + * @ordered + */ + int LTL_UNARY_NEGATION_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryNextImpl LTL Unary Next}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryNextImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLUnaryNext() + * @generated + */ + int LTL_UNARY_NEXT = 187; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_UNARY_NEXT__OPERAND = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'LTL Unary Next' class. + * + * + * @generated + * @ordered + */ + int LTL_UNARY_NEXT_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryAlwaysImpl LTL Unary Always}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryAlwaysImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLUnaryAlways() + * @generated + */ + int LTL_UNARY_ALWAYS = 188; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_UNARY_ALWAYS__OPERAND = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'LTL Unary Always' class. + * + * + * @generated + * @ordered + */ + int LTL_UNARY_ALWAYS_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryEventuallyImpl LTL Unary Eventually}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryEventuallyImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLUnaryEventually() + * @generated + */ + int LTL_UNARY_EVENTUALLY = 189; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int LTL_UNARY_EVENTUALLY__OPERAND = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'LTL Unary Eventually' class. + * + * + * @generated + * @ordered + */ + int LTL_UNARY_EVENTUALLY_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.LTLVariableImpl LTL Variable}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.LTLVariableImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getLTLVariable() + * @generated + */ + int LTL_VARIABLE = 190; + + /** + * The feature id for the 'Declaration' reference. + * + * + * @generated + * @ordered + */ + int LTL_VARIABLE__DECLARATION = LTL_PROPERTY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'LTL Variable' class. + * + * + * @generated + * @ordered + */ + int LTL_VARIABLE_FEATURE_COUNT = LTL_PROPERTY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ObservableDisjunctionImpl Observable Disjunction}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ObservableDisjunctionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getObservableDisjunction() + * @generated + */ + int OBSERVABLE_DISJUNCTION = 191; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_DISJUNCTION__LEFT = OBSERVABLE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_DISJUNCTION__RIGHT = OBSERVABLE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Observable Disjunction' class. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_DISJUNCTION_FEATURE_COUNT = OBSERVABLE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ObservableImplicationImpl Observable Implication}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ObservableImplicationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getObservableImplication() + * @generated + */ + int OBSERVABLE_IMPLICATION = 192; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_IMPLICATION__LEFT = OBSERVABLE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_IMPLICATION__RIGHT = OBSERVABLE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Observable Implication' class. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_IMPLICATION_FEATURE_COUNT = OBSERVABLE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ObservableConjunctionImpl Observable Conjunction}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ObservableConjunctionImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getObservableConjunction() + * @generated + */ + int OBSERVABLE_CONJUNCTION = 193; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_CONJUNCTION__LEFT = OBSERVABLE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_CONJUNCTION__RIGHT = OBSERVABLE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Observable Conjunction' class. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_CONJUNCTION_FEATURE_COUNT = OBSERVABLE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link fr.irit.fiacre.xtext.fiacre.impl.ObservableNegationImpl Observable Negation}' class. + * + * + * @see fr.irit.fiacre.xtext.fiacre.impl.ObservableNegationImpl + * @see fr.irit.fiacre.xtext.fiacre.impl.FiacrePackageImpl#getObservableNegation() + * @generated + */ + int OBSERVABLE_NEGATION = 194; + + /** + * The feature id for the 'Child' containment reference. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_NEGATION__CHILD = OBSERVABLE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Observable Negation' class. + * + * + * @generated + * @ordered + */ + int OBSERVABLE_NEGATION_FEATURE_COUNT = OBSERVABLE_FEATURE_COUNT + 1; + + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Model Model}'. + * + * + * @return the meta object for class 'Model'. + * @see fr.irit.fiacre.xtext.fiacre.Model + * @generated + */ + EClass getModel(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.Model#getImports Imports}'. + * + * + * @return the meta object for the containment reference list 'Imports'. + * @see fr.irit.fiacre.xtext.fiacre.Model#getImports() + * @see #getModel() + * @generated + */ + EReference getModel_Imports(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.Model#getDeclarations Declarations}'. + * + * + * @return the meta object for the containment reference list 'Declarations'. + * @see fr.irit.fiacre.xtext.fiacre.Model#getDeclarations() + * @see #getModel() + * @generated + */ + EReference getModel_Declarations(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.Model#getRequirements Requirements}'. + * + * + * @return the meta object for the containment reference list 'Requirements'. + * @see fr.irit.fiacre.xtext.fiacre.Model#getRequirements() + * @see #getModel() + * @generated + */ + EReference getModel_Requirements(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.Model#getRoot Root}'. + * + * + * @return the meta object for the containment reference list 'Root'. + * @see fr.irit.fiacre.xtext.fiacre.Model#getRoot() + * @see #getModel() + * @generated + */ + EReference getModel_Root(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.RootDeclaration Root Declaration}'. + * + * + * @return the meta object for class 'Root Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.RootDeclaration + * @generated + */ + EClass getRootDeclaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Root Root}'. + * + * + * @return the meta object for class 'Root'. + * @see fr.irit.fiacre.xtext.fiacre.Root + * @generated + */ + EClass getRoot(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.Root#getDeclaration Declaration}'. + * + * + * @return the meta object for the reference 'Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.Root#getDeclaration() + * @see #getRoot() + * @generated + */ + EReference getRoot_Declaration(); + + /** + * Returns the meta object for the reference list '{@link fr.irit.fiacre.xtext.fiacre.Root#getObserved Observed}'. + * + * + * @return the meta object for the reference list 'Observed'. + * @see fr.irit.fiacre.xtext.fiacre.Root#getObserved() + * @see #getRoot() + * @generated + */ + EReference getRoot_Observed(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.NamedElement Named Element}'. + * + * + * @return the meta object for class 'Named Element'. + * @see fr.irit.fiacre.xtext.fiacre.NamedElement + * @generated + */ + EClass getNamedElement(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.NamedElement#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see fr.irit.fiacre.xtext.fiacre.NamedElement#getName() + * @see #getNamedElement() + * @generated + */ + EAttribute getNamedElement_Name(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse Type Declaration Use}'. + * + * + * @return the meta object for class 'Type Declaration Use'. + * @see fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse + * @generated + */ + EClass getTypeDeclarationUse(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ConstantDeclarationUse Constant Declaration Use}'. + * + * + * @return the meta object for class 'Constant Declaration Use'. + * @see fr.irit.fiacre.xtext.fiacre.ConstantDeclarationUse + * @generated + */ + EClass getConstantDeclarationUse(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse Expression Declaration Use}'. + * + * + * @return the meta object for class 'Expression Declaration Use'. + * @see fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse + * @generated + */ + EClass getExpressionDeclarationUse(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse Reference Declaration Use}'. + * + * + * @return the meta object for class 'Reference Declaration Use'. + * @see fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse + * @generated + */ + EClass getReferenceDeclarationUse(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclarationUse Union Tag Declaration Use}'. + * + * + * @return the meta object for class 'Union Tag Declaration Use'. + * @see fr.irit.fiacre.xtext.fiacre.UnionTagDeclarationUse + * @generated + */ + EClass getUnionTagDeclarationUse(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse Record Field Declaration Use}'. + * + * + * @return the meta object for class 'Record Field Declaration Use'. + * @see fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse + * @generated + */ + EClass getRecordFieldDeclarationUse(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse Pattern Declaration Use}'. + * + * + * @return the meta object for class 'Pattern Declaration Use'. + * @see fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse + * @generated + */ + EClass getPatternDeclarationUse(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse Bound Declaration Use}'. + * + * + * @return the meta object for class 'Bound Declaration Use'. + * @see fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse + * @generated + */ + EClass getBoundDeclarationUse(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PathDeclarationUse Path Declaration Use}'. + * + * + * @return the meta object for class 'Path Declaration Use'. + * @see fr.irit.fiacre.xtext.fiacre.PathDeclarationUse + * @generated + */ + EClass getPathDeclarationUse(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse Property Declaration Use}'. + * + * + * @return the meta object for class 'Property Declaration Use'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse + * @generated + */ + EClass getPropertyDeclarationUse(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration Import Declaration}'. + * + * + * @return the meta object for class 'Import Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.ImportDeclaration + * @generated + */ + EClass getImportDeclaration(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration#getImportURI Import URI}'. + * + * + * @return the meta object for the attribute 'Import URI'. + * @see fr.irit.fiacre.xtext.fiacre.ImportDeclaration#getImportURI() + * @see #getImportDeclaration() + * @generated + */ + EAttribute getImportDeclaration_ImportURI(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Declaration Declaration}'. + * + * + * @return the meta object for class 'Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.Declaration + * @generated + */ + EClass getDeclaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration Parameterized Declaration}'. + * + * + * @return the meta object for class 'Parameterized Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration + * @generated + */ + EClass getParameterizedDeclaration(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration#getParameters Parameters}'. + * + * + * @return the meta object for the containment reference list 'Parameters'. + * @see fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration#getParameters() + * @see #getParameterizedDeclaration() + * @generated + */ + EReference getParameterizedDeclaration_Parameters(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration#getVariables Variables}'. + * + * + * @return the meta object for the containment reference list 'Variables'. + * @see fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration#getVariables() + * @see #getParameterizedDeclaration() + * @generated + */ + EReference getParameterizedDeclaration_Variables(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration Function Declaration}'. + * + * + * @return the meta object for class 'Function Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.FunctionDeclaration + * @generated + */ + EClass getFunctionDeclaration(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.FunctionDeclaration#getType() + * @see #getFunctionDeclaration() + * @generated + */ + EReference getFunctionDeclaration_Type(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration#getStatement Statement}'. + * + * + * @return the meta object for the containment reference 'Statement'. + * @see fr.irit.fiacre.xtext.fiacre.FunctionDeclaration#getStatement() + * @see #getFunctionDeclaration() + * @generated + */ + EReference getFunctionDeclaration_Statement(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.TypeDeclaration Type Declaration}'. + * + * + * @return the meta object for class 'Type Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.TypeDeclaration + * @generated + */ + EClass getTypeDeclaration(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.TypeDeclaration#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.TypeDeclaration#getValue() + * @see #getTypeDeclaration() + * @generated + */ + EReference getTypeDeclaration_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ChannelDeclaration Channel Declaration}'. + * + * + * @return the meta object for class 'Channel Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.ChannelDeclaration + * @generated + */ + EClass getChannelDeclaration(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ChannelDeclaration#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.ChannelDeclaration#getValue() + * @see #getChannelDeclaration() + * @generated + */ + EReference getChannelDeclaration_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ChannelType Channel Type}'. + * + * + * @return the meta object for class 'Channel Type'. + * @see fr.irit.fiacre.xtext.fiacre.ChannelType + * @generated + */ + EClass getChannelType(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ChannelType#getSize Size}'. + * + * + * @return the meta object for the containment reference 'Size'. + * @see fr.irit.fiacre.xtext.fiacre.ChannelType#getSize() + * @see #getChannelType() + * @generated + */ + EReference getChannelType_Size(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.ChannelType#isIn In}'. + * + * + * @return the meta object for the attribute 'In'. + * @see fr.irit.fiacre.xtext.fiacre.ChannelType#isIn() + * @see #getChannelType() + * @generated + */ + EAttribute getChannelType_In(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.ChannelType#isOut Out}'. + * + * + * @return the meta object for the attribute 'Out'. + * @see fr.irit.fiacre.xtext.fiacre.ChannelType#isOut() + * @see #getChannelType() + * @generated + */ + EAttribute getChannelType_Out(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ChannelType#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.ChannelType#getType() + * @see #getChannelType() + * @generated + */ + EReference getChannelType_Type(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Type Type}'. + * + * + * @return the meta object for class 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.Type + * @generated + */ + EClass getType(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.BasicType Basic Type}'. + * + * + * @return the meta object for class 'Basic Type'. + * @see fr.irit.fiacre.xtext.fiacre.BasicType + * @generated + */ + EClass getBasicType(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.RangeType Range Type}'. + * + * + * @return the meta object for class 'Range Type'. + * @see fr.irit.fiacre.xtext.fiacre.RangeType + * @generated + */ + EClass getRangeType(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.RangeType#getMinimum Minimum}'. + * + * + * @return the meta object for the containment reference 'Minimum'. + * @see fr.irit.fiacre.xtext.fiacre.RangeType#getMinimum() + * @see #getRangeType() + * @generated + */ + EReference getRangeType_Minimum(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.RangeType#getMaximum Maximum}'. + * + * + * @return the meta object for the containment reference 'Maximum'. + * @see fr.irit.fiacre.xtext.fiacre.RangeType#getMaximum() + * @see #getRangeType() + * @generated + */ + EReference getRangeType_Maximum(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnionType Union Type}'. + * + * + * @return the meta object for class 'Union Type'. + * @see fr.irit.fiacre.xtext.fiacre.UnionType + * @generated + */ + EClass getUnionType(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.UnionType#getTags Tags}'. + * + * + * @return the meta object for the containment reference list 'Tags'. + * @see fr.irit.fiacre.xtext.fiacre.UnionType#getTags() + * @see #getUnionType() + * @generated + */ + EReference getUnionType_Tags(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnionTags Union Tags}'. + * + * + * @return the meta object for class 'Union Tags'. + * @see fr.irit.fiacre.xtext.fiacre.UnionTags + * @generated + */ + EClass getUnionTags(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.UnionTags#getTags Tags}'. + * + * + * @return the meta object for the containment reference list 'Tags'. + * @see fr.irit.fiacre.xtext.fiacre.UnionTags#getTags() + * @see #getUnionTags() + * @generated + */ + EReference getUnionTags_Tags(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.UnionTags#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.UnionTags#getType() + * @see #getUnionTags() + * @generated + */ + EReference getUnionTags_Type(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration Union Tag Declaration}'. + * + * + * @return the meta object for class 'Union Tag Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration + * @generated + */ + EClass getUnionTagDeclaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.RecordType Record Type}'. + * + * + * @return the meta object for class 'Record Type'. + * @see fr.irit.fiacre.xtext.fiacre.RecordType + * @generated + */ + EClass getRecordType(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.RecordType#getFields Fields}'. + * + * + * @return the meta object for the containment reference list 'Fields'. + * @see fr.irit.fiacre.xtext.fiacre.RecordType#getFields() + * @see #getRecordType() + * @generated + */ + EReference getRecordType_Fields(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.RecordFields Record Fields}'. + * + * + * @return the meta object for class 'Record Fields'. + * @see fr.irit.fiacre.xtext.fiacre.RecordFields + * @generated + */ + EClass getRecordFields(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.RecordFields#getFields Fields}'. + * + * + * @return the meta object for the containment reference list 'Fields'. + * @see fr.irit.fiacre.xtext.fiacre.RecordFields#getFields() + * @see #getRecordFields() + * @generated + */ + EReference getRecordFields_Fields(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.RecordFields#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.RecordFields#getType() + * @see #getRecordFields() + * @generated + */ + EReference getRecordFields_Type(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration Record Field Declaration}'. + * + * + * @return the meta object for class 'Record Field Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration + * @generated + */ + EClass getRecordFieldDeclaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.QueueType Queue Type}'. + * + * + * @return the meta object for class 'Queue Type'. + * @see fr.irit.fiacre.xtext.fiacre.QueueType + * @generated + */ + EClass getQueueType(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.QueueType#getSize Size}'. + * + * + * @return the meta object for the containment reference 'Size'. + * @see fr.irit.fiacre.xtext.fiacre.QueueType#getSize() + * @see #getQueueType() + * @generated + */ + EReference getQueueType_Size(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.QueueType#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.QueueType#getType() + * @see #getQueueType() + * @generated + */ + EReference getQueueType_Type(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ArrayType Array Type}'. + * + * + * @return the meta object for class 'Array Type'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayType + * @generated + */ + EClass getArrayType(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ArrayType#getSize Size}'. + * + * + * @return the meta object for the containment reference 'Size'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayType#getSize() + * @see #getArrayType() + * @generated + */ + EReference getArrayType_Size(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ArrayType#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayType#getType() + * @see #getArrayType() + * @generated + */ + EReference getArrayType_Type(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ReferencedType Referenced Type}'. + * + * + * @return the meta object for class 'Referenced Type'. + * @see fr.irit.fiacre.xtext.fiacre.ReferencedType + * @generated + */ + EClass getReferencedType(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.ReferencedType#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.ReferencedType#getType() + * @see #getReferencedType() + * @generated + */ + EReference getReferencedType_Type(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration Constant Declaration}'. + * + * + * @return the meta object for class 'Constant Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.ConstantDeclaration + * @generated + */ + EClass getConstantDeclaration(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.ConstantDeclaration#getType() + * @see #getConstantDeclaration() + * @generated + */ + EReference getConstantDeclaration_Type(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.ConstantDeclaration#getValue() + * @see #getConstantDeclaration() + * @generated + */ + EReference getConstantDeclaration_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration Process Declaration}'. + * + * + * @return the meta object for class 'Process Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.ProcessDeclaration + * @generated + */ + EClass getProcessDeclaration(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getPorts Ports}'. + * + * + * @return the meta object for the containment reference list 'Ports'. + * @see fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getPorts() + * @see #getProcessDeclaration() + * @generated + */ + EReference getProcessDeclaration_Ports(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getLocalPorts Local Ports}'. + * + * + * @return the meta object for the containment reference list 'Local Ports'. + * @see fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getLocalPorts() + * @see #getProcessDeclaration() + * @generated + */ + EReference getProcessDeclaration_LocalPorts(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getPriorities Priorities}'. + * + * + * @return the meta object for the containment reference list 'Priorities'. + * @see fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getPriorities() + * @see #getProcessDeclaration() + * @generated + */ + EReference getProcessDeclaration_Priorities(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getStates States}'. + * + * + * @return the meta object for the containment reference list 'States'. + * @see fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getStates() + * @see #getProcessDeclaration() + * @generated + */ + EReference getProcessDeclaration_States(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getPrelude Prelude}'. + * + * + * @return the meta object for the containment reference 'Prelude'. + * @see fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getPrelude() + * @see #getProcessDeclaration() + * @generated + */ + EReference getProcessDeclaration_Prelude(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getTransitions Transitions}'. + * + * + * @return the meta object for the containment reference list 'Transitions'. + * @see fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getTransitions() + * @see #getProcessDeclaration() + * @generated + */ + EReference getProcessDeclaration_Transitions(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.StateDeclaration State Declaration}'. + * + * + * @return the meta object for class 'State Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.StateDeclaration + * @generated + */ + EClass getStateDeclaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.TransitionSource Transition Source}'. + * + * + * @return the meta object for class 'Transition Source'. + * @see fr.irit.fiacre.xtext.fiacre.TransitionSource + * @generated + */ + EClass getTransitionSource(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.TransitionSource#getOrigin Origin}'. + * + * + * @return the meta object for the reference 'Origin'. + * @see fr.irit.fiacre.xtext.fiacre.TransitionSource#getOrigin() + * @see #getTransitionSource() + * @generated + */ + EReference getTransitionSource_Origin(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Transition Transition}'. + * + * + * @return the meta object for class 'Transition'. + * @see fr.irit.fiacre.xtext.fiacre.Transition + * @generated + */ + EClass getTransition(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Transition#getSource Source}'. + * + * + * @return the meta object for the containment reference 'Source'. + * @see fr.irit.fiacre.xtext.fiacre.Transition#getSource() + * @see #getTransition() + * @generated + */ + EReference getTransition_Source(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Transition#getAction Action}'. + * + * + * @return the meta object for the containment reference 'Action'. + * @see fr.irit.fiacre.xtext.fiacre.Transition#getAction() + * @see #getTransition() + * @generated + */ + EReference getTransition_Action(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration Component Declaration}'. + * + * + * @return the meta object for class 'Component Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.ComponentDeclaration + * @generated + */ + EClass getComponentDeclaration(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getPorts Ports}'. + * + * + * @return the meta object for the containment reference list 'Ports'. + * @see fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getPorts() + * @see #getComponentDeclaration() + * @generated + */ + EReference getComponentDeclaration_Ports(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getLocalPorts Local Ports}'. + * + * + * @return the meta object for the containment reference list 'Local Ports'. + * @see fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getLocalPorts() + * @see #getComponentDeclaration() + * @generated + */ + EReference getComponentDeclaration_LocalPorts(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getPriorities Priorities}'. + * + * + * @return the meta object for the containment reference list 'Priorities'. + * @see fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getPriorities() + * @see #getComponentDeclaration() + * @generated + */ + EReference getComponentDeclaration_Priorities(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getPrelude Prelude}'. + * + * + * @return the meta object for the containment reference 'Prelude'. + * @see fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getPrelude() + * @see #getComponentDeclaration() + * @generated + */ + EReference getComponentDeclaration_Prelude(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see fr.irit.fiacre.xtext.fiacre.ComponentDeclaration#getBody() + * @see #getComponentDeclaration() + * @generated + */ + EReference getComponentDeclaration_Body(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration Ports Declaration}'. + * + * + * @return the meta object for class 'Ports Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.PortsDeclaration + * @generated + */ + EClass getPortsDeclaration(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration#getPorts Ports}'. + * + * + * @return the meta object for the containment reference list 'Ports'. + * @see fr.irit.fiacre.xtext.fiacre.PortsDeclaration#getPorts() + * @see #getPortsDeclaration() + * @generated + */ + EReference getPortsDeclaration_Ports(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.PortsDeclaration#getType() + * @see #getPortsDeclaration() + * @generated + */ + EReference getPortsDeclaration_Type(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PortDeclaration Port Declaration}'. + * + * + * @return the meta object for class 'Port Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.PortDeclaration + * @generated + */ + EClass getPortDeclaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration Local Ports Declaration}'. + * + * + * @return the meta object for class 'Local Ports Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration + * @generated + */ + EClass getLocalPortsDeclaration(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getPorts Ports}'. + * + * + * @return the meta object for the containment reference list 'Ports'. + * @see fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getPorts() + * @see #getLocalPortsDeclaration() + * @generated + */ + EReference getLocalPortsDeclaration_Ports(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getType() + * @see #getLocalPortsDeclaration() + * @generated + */ + EReference getLocalPortsDeclaration_Type(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getLeft() + * @see #getLocalPortsDeclaration() + * @generated + */ + EReference getLocalPortsDeclaration_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getRight() + * @see #getLocalPortsDeclaration() + * @generated + */ + EReference getLocalPortsDeclaration_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration Parameters Declaration}'. + * + * + * @return the meta object for class 'Parameters Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.ParametersDeclaration + * @generated + */ + EClass getParametersDeclaration(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#getParameters Parameters}'. + * + * + * @return the meta object for the containment reference list 'Parameters'. + * @see fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#getParameters() + * @see #getParametersDeclaration() + * @generated + */ + EReference getParametersDeclaration_Parameters(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#isRead Read}'. + * + * + * @return the meta object for the attribute 'Read'. + * @see fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#isRead() + * @see #getParametersDeclaration() + * @generated + */ + EAttribute getParametersDeclaration_Read(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#isWrite Write}'. + * + * + * @return the meta object for the attribute 'Write'. + * @see fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#isWrite() + * @see #getParametersDeclaration() + * @generated + */ + EAttribute getParametersDeclaration_Write(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#getType() + * @see #getParametersDeclaration() + * @generated + */ + EReference getParametersDeclaration_Type(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration Parameter Declaration}'. + * + * + * @return the meta object for class 'Parameter Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.ParameterDeclaration + * @generated + */ + EClass getParameterDeclaration(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#isReference Reference}'. + * + * + * @return the meta object for the attribute 'Reference'. + * @see fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#isReference() + * @see #getParameterDeclaration() + * @generated + */ + EAttribute getParameterDeclaration_Reference(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#isArray Array}'. + * + * + * @return the meta object for the attribute 'Array'. + * @see fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#isArray() + * @see #getParameterDeclaration() + * @generated + */ + EAttribute getParameterDeclaration_Array(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#getSize Size}'. + * + * + * @return the meta object for the containment reference 'Size'. + * @see fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#getSize() + * @see #getParameterDeclaration() + * @generated + */ + EReference getParameterDeclaration_Size(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration Variables Declaration}'. + * + * + * @return the meta object for class 'Variables Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.VariablesDeclaration + * @generated + */ + EClass getVariablesDeclaration(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getVariables Variables}'. + * + * + * @return the meta object for the containment reference list 'Variables'. + * @see fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getVariables() + * @see #getVariablesDeclaration() + * @generated + */ + EReference getVariablesDeclaration_Variables(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getType() + * @see #getVariablesDeclaration() + * @generated + */ + EReference getVariablesDeclaration_Type(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getValue() + * @see #getVariablesDeclaration() + * @generated + */ + EReference getVariablesDeclaration_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.VariableDeclaration Variable Declaration}'. + * + * + * @return the meta object for class 'Variable Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.VariableDeclaration + * @generated + */ + EClass getVariableDeclaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration Priority Declaration}'. + * + * + * @return the meta object for class 'Priority Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.PriorityDeclaration + * @generated + */ + EClass getPriorityDeclaration(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration#getGroups Groups}'. + * + * + * @return the meta object for the containment reference list 'Groups'. + * @see fr.irit.fiacre.xtext.fiacre.PriorityDeclaration#getGroups() + * @see #getPriorityDeclaration() + * @generated + */ + EReference getPriorityDeclaration_Groups(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PriorityGroup Priority Group}'. + * + * + * @return the meta object for class 'Priority Group'. + * @see fr.irit.fiacre.xtext.fiacre.PriorityGroup + * @generated + */ + EClass getPriorityGroup(); + + /** + * Returns the meta object for the reference list '{@link fr.irit.fiacre.xtext.fiacre.PriorityGroup#getPorts Ports}'. + * + * + * @return the meta object for the reference list 'Ports'. + * @see fr.irit.fiacre.xtext.fiacre.PriorityGroup#getPorts() + * @see #getPriorityGroup() + * @generated + */ + EReference getPriorityGroup_Ports(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Statement Statement}'. + * + * + * @return the meta object for class 'Statement'. + * @see fr.irit.fiacre.xtext.fiacre.Statement + * @generated + */ + EClass getStatement(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.BlockStatement Block Statement}'. + * + * + * @return the meta object for class 'Block Statement'. + * @see fr.irit.fiacre.xtext.fiacre.BlockStatement + * @generated + */ + EClass getBlockStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.BlockStatement#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see fr.irit.fiacre.xtext.fiacre.BlockStatement#getBody() + * @see #getBlockStatement() + * @generated + */ + EReference getBlockStatement_Body(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ReturnStatement Return Statement}'. + * + * + * @return the meta object for class 'Return Statement'. + * @see fr.irit.fiacre.xtext.fiacre.ReturnStatement + * @generated + */ + EClass getReturnStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ReturnStatement#getExpression Expression}'. + * + * + * @return the meta object for the containment reference 'Expression'. + * @see fr.irit.fiacre.xtext.fiacre.ReturnStatement#getExpression() + * @see #getReturnStatement() + * @generated + */ + EReference getReturnStatement_Expression(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.NullStatement Null Statement}'. + * + * + * @return the meta object for class 'Null Statement'. + * @see fr.irit.fiacre.xtext.fiacre.NullStatement + * @generated + */ + EClass getNullStatement(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.TaggedStatement Tagged Statement}'. + * + * + * @return the meta object for class 'Tagged Statement'. + * @see fr.irit.fiacre.xtext.fiacre.TaggedStatement + * @generated + */ + EClass getTaggedStatement(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.TaggedStatement#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see fr.irit.fiacre.xtext.fiacre.TaggedStatement#getName() + * @see #getTaggedStatement() + * @generated + */ + EAttribute getTaggedStatement_Name(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PatternStatement Pattern Statement}'. + * + * + * @return the meta object for class 'Pattern Statement'. + * @see fr.irit.fiacre.xtext.fiacre.PatternStatement + * @generated + */ + EClass getPatternStatement(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Pattern Pattern}'. + * + * + * @return the meta object for class 'Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.Pattern + * @generated + */ + EClass getPattern(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.AnyPattern Any Pattern}'. + * + * + * @return the meta object for class 'Any Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.AnyPattern + * @generated + */ + EClass getAnyPattern(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ConstantPattern Constant Pattern}'. + * + * + * @return the meta object for class 'Constant Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.ConstantPattern + * @generated + */ + EClass getConstantPattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ConstantPattern#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.ConstantPattern#getValue() + * @see #getConstantPattern() + * @generated + */ + EReference getConstantPattern_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.IntegerPattern Integer Pattern}'. + * + * + * @return the meta object for class 'Integer Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.IntegerPattern + * @generated + */ + EClass getIntegerPattern(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.IntegerPattern#isNegative Negative}'. + * + * + * @return the meta object for the attribute 'Negative'. + * @see fr.irit.fiacre.xtext.fiacre.IntegerPattern#isNegative() + * @see #getIntegerPattern() + * @generated + */ + EAttribute getIntegerPattern_Negative(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.IntegerPattern#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.IntegerPattern#getValue() + * @see #getIntegerPattern() + * @generated + */ + EAttribute getIntegerPattern_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.IdentifierPattern Identifier Pattern}'. + * + * + * @return the meta object for class 'Identifier Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.IdentifierPattern + * @generated + */ + EClass getIdentifierPattern(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.IdentifierPattern#getDeclaration Declaration}'. + * + * + * @return the meta object for the reference 'Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.IdentifierPattern#getDeclaration() + * @see #getIdentifierPattern() + * @generated + */ + EReference getIdentifierPattern_Declaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement Conditional Statement}'. + * + * + * @return the meta object for class 'Conditional Statement'. + * @see fr.irit.fiacre.xtext.fiacre.ConditionalStatement + * @generated + */ + EClass getConditionalStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getCondition() + * @see #getConditionalStatement() + * @generated + */ + EReference getConditionalStatement_Condition(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getThen Then}'. + * + * + * @return the meta object for the containment reference 'Then'. + * @see fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getThen() + * @see #getConditionalStatement() + * @generated + */ + EReference getConditionalStatement_Then(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getElseif Elseif}'. + * + * + * @return the meta object for the containment reference list 'Elseif'. + * @see fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getElseif() + * @see #getConditionalStatement() + * @generated + */ + EReference getConditionalStatement_Elseif(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getElse Else}'. + * + * + * @return the meta object for the containment reference 'Else'. + * @see fr.irit.fiacre.xtext.fiacre.ConditionalStatement#getElse() + * @see #getConditionalStatement() + * @generated + */ + EReference getConditionalStatement_Else(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement Extended Conditional Statement}'. + * + * + * @return the meta object for class 'Extended Conditional Statement'. + * @see fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement + * @generated + */ + EClass getExtendedConditionalStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement#getCondition() + * @see #getExtendedConditionalStatement() + * @generated + */ + EReference getExtendedConditionalStatement_Condition(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement#getThen Then}'. + * + * + * @return the meta object for the containment reference 'Then'. + * @see fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement#getThen() + * @see #getExtendedConditionalStatement() + * @generated + */ + EReference getExtendedConditionalStatement_Then(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.SelectStatement Select Statement}'. + * + * + * @return the meta object for class 'Select Statement'. + * @see fr.irit.fiacre.xtext.fiacre.SelectStatement + * @generated + */ + EClass getSelectStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.SelectStatement#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see fr.irit.fiacre.xtext.fiacre.SelectStatement#getBody() + * @see #getSelectStatement() + * @generated + */ + EReference getSelectStatement_Body(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.SelectStatement#getIndex Index}'. + * + * + * @return the meta object for the containment reference 'Index'. + * @see fr.irit.fiacre.xtext.fiacre.SelectStatement#getIndex() + * @see #getSelectStatement() + * @generated + */ + EReference getSelectStatement_Index(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.SelectStatement#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.SelectStatement#getType() + * @see #getSelectStatement() + * @generated + */ + EReference getSelectStatement_Type(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.WhileStatement While Statement}'. + * + * + * @return the meta object for class 'While Statement'. + * @see fr.irit.fiacre.xtext.fiacre.WhileStatement + * @generated + */ + EClass getWhileStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.WhileStatement#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see fr.irit.fiacre.xtext.fiacre.WhileStatement#getCondition() + * @see #getWhileStatement() + * @generated + */ + EReference getWhileStatement_Condition(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.WhileStatement#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see fr.irit.fiacre.xtext.fiacre.WhileStatement#getBody() + * @see #getWhileStatement() + * @generated + */ + EReference getWhileStatement_Body(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ForeachStatement Foreach Statement}'. + * + * + * @return the meta object for class 'Foreach Statement'. + * @see fr.irit.fiacre.xtext.fiacre.ForeachStatement + * @generated + */ + EClass getForeachStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ForeachStatement#getVariable Variable}'. + * + * + * @return the meta object for the containment reference 'Variable'. + * @see fr.irit.fiacre.xtext.fiacre.ForeachStatement#getVariable() + * @see #getForeachStatement() + * @generated + */ + EReference getForeachStatement_Variable(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ForeachStatement#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see fr.irit.fiacre.xtext.fiacre.ForeachStatement#getBody() + * @see #getForeachStatement() + * @generated + */ + EReference getForeachStatement_Body(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ToStatement To Statement}'. + * + * + * @return the meta object for class 'To Statement'. + * @see fr.irit.fiacre.xtext.fiacre.ToStatement + * @generated + */ + EClass getToStatement(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.ToStatement#getState State}'. + * + * + * @return the meta object for the reference 'State'. + * @see fr.irit.fiacre.xtext.fiacre.ToStatement#getState() + * @see #getToStatement() + * @generated + */ + EReference getToStatement_State(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.CaseStatement Case Statement}'. + * + * + * @return the meta object for class 'Case Statement'. + * @see fr.irit.fiacre.xtext.fiacre.CaseStatement + * @generated + */ + EClass getCaseStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.CaseStatement#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.CaseStatement#getValue() + * @see #getCaseStatement() + * @generated + */ + EReference getCaseStatement_Value(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.CaseStatement#getPattern Pattern}'. + * + * + * @return the meta object for the containment reference list 'Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.CaseStatement#getPattern() + * @see #getCaseStatement() + * @generated + */ + EReference getCaseStatement_Pattern(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.CaseStatement#getBody Body}'. + * + * + * @return the meta object for the containment reference list 'Body'. + * @see fr.irit.fiacre.xtext.fiacre.CaseStatement#getBody() + * @see #getCaseStatement() + * @generated + */ + EReference getCaseStatement_Body(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LoopStatement Loop Statement}'. + * + * + * @return the meta object for class 'Loop Statement'. + * @see fr.irit.fiacre.xtext.fiacre.LoopStatement + * @generated + */ + EClass getLoopStatement(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.OnStatement On Statement}'. + * + * + * @return the meta object for class 'On Statement'. + * @see fr.irit.fiacre.xtext.fiacre.OnStatement + * @generated + */ + EClass getOnStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.OnStatement#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see fr.irit.fiacre.xtext.fiacre.OnStatement#getCondition() + * @see #getOnStatement() + * @generated + */ + EReference getOnStatement_Condition(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.WaitStatement Wait Statement}'. + * + * + * @return the meta object for class 'Wait Statement'. + * @see fr.irit.fiacre.xtext.fiacre.WaitStatement + * @generated + */ + EClass getWaitStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.WaitStatement#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.WaitStatement#getLeft() + * @see #getWaitStatement() + * @generated + */ + EReference getWaitStatement_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.WaitStatement#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.WaitStatement#getRight() + * @see #getWaitStatement() + * @generated + */ + EReference getWaitStatement_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Composition Composition}'. + * + * + * @return the meta object for class 'Composition'. + * @see fr.irit.fiacre.xtext.fiacre.Composition + * @generated + */ + EClass getComposition(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Composition#getGlobal Global}'. + * + * + * @return the meta object for the containment reference 'Global'. + * @see fr.irit.fiacre.xtext.fiacre.Composition#getGlobal() + * @see #getComposition() + * @generated + */ + EReference getComposition_Global(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.Composition#getBlocks Blocks}'. + * + * + * @return the meta object for the containment reference list 'Blocks'. + * @see fr.irit.fiacre.xtext.fiacre.Composition#getBlocks() + * @see #getComposition() + * @generated + */ + EReference getComposition_Blocks(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Block Block}'. + * + * + * @return the meta object for class 'Block'. + * @see fr.irit.fiacre.xtext.fiacre.Block + * @generated + */ + EClass getBlock(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Block#getLocal Local}'. + * + * + * @return the meta object for the containment reference 'Local'. + * @see fr.irit.fiacre.xtext.fiacre.Block#getLocal() + * @see #getBlock() + * @generated + */ + EReference getBlock_Local(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.CompositeBlock Composite Block}'. + * + * + * @return the meta object for class 'Composite Block'. + * @see fr.irit.fiacre.xtext.fiacre.CompositeBlock + * @generated + */ + EClass getCompositeBlock(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.CompositeBlock#getComposition Composition}'. + * + * + * @return the meta object for the containment reference 'Composition'. + * @see fr.irit.fiacre.xtext.fiacre.CompositeBlock#getComposition() + * @see #getCompositeBlock() + * @generated + */ + EReference getCompositeBlock_Composition(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.InstanceDeclaration Instance Declaration}'. + * + * + * @return the meta object for class 'Instance Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.InstanceDeclaration + * @generated + */ + EClass getInstanceDeclaration(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.InstanceDeclaration#getInstance Instance}'. + * + * + * @return the meta object for the containment reference 'Instance'. + * @see fr.irit.fiacre.xtext.fiacre.InstanceDeclaration#getInstance() + * @see #getInstanceDeclaration() + * @generated + */ + EReference getInstanceDeclaration_Instance(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PortSet Port Set}'. + * + * + * @return the meta object for class 'Port Set'. + * @see fr.irit.fiacre.xtext.fiacre.PortSet + * @generated + */ + EClass getPortSet(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.PortSet#isAllPorts All Ports}'. + * + * + * @return the meta object for the attribute 'All Ports'. + * @see fr.irit.fiacre.xtext.fiacre.PortSet#isAllPorts() + * @see #getPortSet() + * @generated + */ + EAttribute getPortSet_AllPorts(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.PortSet#getPorts Ports}'. + * + * + * @return the meta object for the containment reference list 'Ports'. + * @see fr.irit.fiacre.xtext.fiacre.PortSet#getPorts() + * @see #getPortSet() + * @generated + */ + EReference getPortSet_Ports(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ComponentInstance Component Instance}'. + * + * + * @return the meta object for class 'Component Instance'. + * @see fr.irit.fiacre.xtext.fiacre.ComponentInstance + * @generated + */ + EClass getComponentInstance(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.ComponentInstance#getComponent Component}'. + * + * + * @return the meta object for the reference 'Component'. + * @see fr.irit.fiacre.xtext.fiacre.ComponentInstance#getComponent() + * @see #getComponentInstance() + * @generated + */ + EReference getComponentInstance_Component(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ComponentInstance#getPorts Ports}'. + * + * + * @return the meta object for the containment reference list 'Ports'. + * @see fr.irit.fiacre.xtext.fiacre.ComponentInstance#getPorts() + * @see #getComponentInstance() + * @generated + */ + EReference getComponentInstance_Ports(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ComponentInstance#getParameters Parameters}'. + * + * + * @return the meta object for the containment reference list 'Parameters'. + * @see fr.irit.fiacre.xtext.fiacre.ComponentInstance#getParameters() + * @see #getComponentInstance() + * @generated + */ + EReference getComponentInstance_Parameters(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Expression Expression}'. + * + * + * @return the meta object for class 'Expression'. + * @see fr.irit.fiacre.xtext.fiacre.Expression + * @generated + */ + EClass getExpression(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ValueExpression Value Expression}'. + * + * + * @return the meta object for class 'Value Expression'. + * @see fr.irit.fiacre.xtext.fiacre.ValueExpression + * @generated + */ + EClass getValueExpression(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ReferenceExpression Reference Expression}'. + * + * + * @return the meta object for class 'Reference Expression'. + * @see fr.irit.fiacre.xtext.fiacre.ReferenceExpression + * @generated + */ + EClass getReferenceExpression(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.ReferenceExpression#getDeclaration Declaration}'. + * + * + * @return the meta object for the reference 'Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.ReferenceExpression#getDeclaration() + * @see #getReferenceExpression() + * @generated + */ + EReference getReferenceExpression_Declaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.IdentifierExpression Identifier Expression}'. + * + * + * @return the meta object for class 'Identifier Expression'. + * @see fr.irit.fiacre.xtext.fiacre.IdentifierExpression + * @generated + */ + EClass getIdentifierExpression(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.IdentifierExpression#getDeclaration Declaration}'. + * + * + * @return the meta object for the reference 'Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.IdentifierExpression#getDeclaration() + * @see #getIdentifierExpression() + * @generated + */ + EReference getIdentifierExpression_Declaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.RecordExpression Record Expression}'. + * + * + * @return the meta object for class 'Record Expression'. + * @see fr.irit.fiacre.xtext.fiacre.RecordExpression + * @generated + */ + EClass getRecordExpression(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.RecordExpression#getFields Fields}'. + * + * + * @return the meta object for the containment reference list 'Fields'. + * @see fr.irit.fiacre.xtext.fiacre.RecordExpression#getFields() + * @see #getRecordExpression() + * @generated + */ + EReference getRecordExpression_Fields(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.FieldExpression Field Expression}'. + * + * + * @return the meta object for class 'Field Expression'. + * @see fr.irit.fiacre.xtext.fiacre.FieldExpression + * @generated + */ + EClass getFieldExpression(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.FieldExpression#getField Field}'. + * + * + * @return the meta object for the reference 'Field'. + * @see fr.irit.fiacre.xtext.fiacre.FieldExpression#getField() + * @see #getFieldExpression() + * @generated + */ + EReference getFieldExpression_Field(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.FieldExpression#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.FieldExpression#getValue() + * @see #getFieldExpression() + * @generated + */ + EReference getFieldExpression_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ArrayExpression Array Expression}'. + * + * + * @return the meta object for class 'Array Expression'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayExpression + * @generated + */ + EClass getArrayExpression(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ArrayExpression#getValues Values}'. + * + * + * @return the meta object for the containment reference list 'Values'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayExpression#getValues() + * @see #getArrayExpression() + * @generated + */ + EReference getArrayExpression_Values(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.QueueExpression Queue Expression}'. + * + * + * @return the meta object for class 'Queue Expression'. + * @see fr.irit.fiacre.xtext.fiacre.QueueExpression + * @generated + */ + EClass getQueueExpression(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.QueueExpression#getValues Values}'. + * + * + * @return the meta object for the containment reference list 'Values'. + * @see fr.irit.fiacre.xtext.fiacre.QueueExpression#getValues() + * @see #getQueueExpression() + * @generated + */ + EReference getQueueExpression_Values(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression Enqueue Expression}'. + * + * + * @return the meta object for class 'Enqueue Expression'. + * @see fr.irit.fiacre.xtext.fiacre.EnqueueExpression + * @generated + */ + EClass getEnqueueExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression#getElement Element}'. + * + * + * @return the meta object for the containment reference 'Element'. + * @see fr.irit.fiacre.xtext.fiacre.EnqueueExpression#getElement() + * @see #getEnqueueExpression() + * @generated + */ + EReference getEnqueueExpression_Element(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression#getQueue Queue}'. + * + * + * @return the meta object for the containment reference 'Queue'. + * @see fr.irit.fiacre.xtext.fiacre.EnqueueExpression#getQueue() + * @see #getEnqueueExpression() + * @generated + */ + EReference getEnqueueExpression_Queue(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.AppendExpression Append Expression}'. + * + * + * @return the meta object for class 'Append Expression'. + * @see fr.irit.fiacre.xtext.fiacre.AppendExpression + * @generated + */ + EClass getAppendExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AppendExpression#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.AppendExpression#getLeft() + * @see #getAppendExpression() + * @generated + */ + EReference getAppendExpression_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AppendExpression#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.AppendExpression#getRight() + * @see #getAppendExpression() + * @generated + */ + EReference getAppendExpression_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LiteralExpression Literal Expression}'. + * + * + * @return the meta object for class 'Literal Expression'. + * @see fr.irit.fiacre.xtext.fiacre.LiteralExpression + * @generated + */ + EClass getLiteralExpression(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.BooleanLiteral Boolean Literal}'. + * + * + * @return the meta object for class 'Boolean Literal'. + * @see fr.irit.fiacre.xtext.fiacre.BooleanLiteral + * @generated + */ + EClass getBooleanLiteral(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.NaturalLiteral Natural Literal}'. + * + * + * @return the meta object for class 'Natural Literal'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalLiteral + * @generated + */ + EClass getNaturalLiteral(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.NaturalLiteral#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalLiteral#getValue() + * @see #getNaturalLiteral() + * @generated + */ + EAttribute getNaturalLiteral_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LowerBound Lower Bound}'. + * + * + * @return the meta object for class 'Lower Bound'. + * @see fr.irit.fiacre.xtext.fiacre.LowerBound + * @generated + */ + EClass getLowerBound(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.LowerBound#isLeft Left}'. + * + * + * @return the meta object for the attribute 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.LowerBound#isLeft() + * @see #getLowerBound() + * @generated + */ + EAttribute getLowerBound_Left(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.LowerBound#isRight Right}'. + * + * + * @return the meta object for the attribute 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.LowerBound#isRight() + * @see #getLowerBound() + * @generated + */ + EAttribute getLowerBound_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UpperBound Upper Bound}'. + * + * + * @return the meta object for class 'Upper Bound'. + * @see fr.irit.fiacre.xtext.fiacre.UpperBound + * @generated + */ + EClass getUpperBound(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.NaturalLowerBound Natural Lower Bound}'. + * + * + * @return the meta object for class 'Natural Lower Bound'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalLowerBound + * @generated + */ + EClass getNaturalLowerBound(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.NaturalLowerBound#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalLowerBound#getValue() + * @see #getNaturalLowerBound() + * @generated + */ + EAttribute getNaturalLowerBound_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound Natural Upper Bound}'. + * + * + * @return the meta object for class 'Natural Upper Bound'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalUpperBound + * @generated + */ + EClass getNaturalUpperBound(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#getValue() + * @see #getNaturalUpperBound() + * @generated + */ + EAttribute getNaturalUpperBound_Value(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#isLeft Left}'. + * + * + * @return the meta object for the attribute 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#isLeft() + * @see #getNaturalUpperBound() + * @generated + */ + EAttribute getNaturalUpperBound_Left(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#isRight Right}'. + * + * + * @return the meta object for the attribute 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#isRight() + * @see #getNaturalUpperBound() + * @generated + */ + EAttribute getNaturalUpperBound_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.DecimalLowerBound Decimal Lower Bound}'. + * + * + * @return the meta object for class 'Decimal Lower Bound'. + * @see fr.irit.fiacre.xtext.fiacre.DecimalLowerBound + * @generated + */ + EClass getDecimalLowerBound(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.DecimalLowerBound#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.DecimalLowerBound#getValue() + * @see #getDecimalLowerBound() + * @generated + */ + EAttribute getDecimalLowerBound_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound Decimal Upper Bound}'. + * + * + * @return the meta object for class 'Decimal Upper Bound'. + * @see fr.irit.fiacre.xtext.fiacre.DecimalUpperBound + * @generated + */ + EClass getDecimalUpperBound(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#getValue() + * @see #getDecimalUpperBound() + * @generated + */ + EAttribute getDecimalUpperBound_Value(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#isLeft Left}'. + * + * + * @return the meta object for the attribute 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#isLeft() + * @see #getDecimalUpperBound() + * @generated + */ + EAttribute getDecimalUpperBound_Left(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#isRight Right}'. + * + * + * @return the meta object for the attribute 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.DecimalUpperBound#isRight() + * @see #getDecimalUpperBound() + * @generated + */ + EAttribute getDecimalUpperBound_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.VariableLowerBound Variable Lower Bound}'. + * + * + * @return the meta object for class 'Variable Lower Bound'. + * @see fr.irit.fiacre.xtext.fiacre.VariableLowerBound + * @generated + */ + EClass getVariableLowerBound(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.VariableLowerBound#getVariable Variable}'. + * + * + * @return the meta object for the reference 'Variable'. + * @see fr.irit.fiacre.xtext.fiacre.VariableLowerBound#getVariable() + * @see #getVariableLowerBound() + * @generated + */ + EReference getVariableLowerBound_Variable(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound Variable Upper Bound}'. + * + * + * @return the meta object for class 'Variable Upper Bound'. + * @see fr.irit.fiacre.xtext.fiacre.VariableUpperBound + * @generated + */ + EClass getVariableUpperBound(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound#getVariable Variable}'. + * + * + * @return the meta object for the reference 'Variable'. + * @see fr.irit.fiacre.xtext.fiacre.VariableUpperBound#getVariable() + * @see #getVariableUpperBound() + * @generated + */ + EReference getVariableUpperBound_Variable(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound#isLeft Left}'. + * + * + * @return the meta object for the attribute 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.VariableUpperBound#isLeft() + * @see #getVariableUpperBound() + * @generated + */ + EAttribute getVariableUpperBound_Left(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound#isRight Right}'. + * + * + * @return the meta object for the attribute 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.VariableUpperBound#isRight() + * @see #getVariableUpperBound() + * @generated + */ + EAttribute getVariableUpperBound_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound Infinite Upper Bound}'. + * + * + * @return the meta object for class 'Infinite Upper Bound'. + * @see fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound + * @generated + */ + EClass getInfiniteUpperBound(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Requirement Requirement}'. + * + * + * @return the meta object for class 'Requirement'. + * @see fr.irit.fiacre.xtext.fiacre.Requirement + * @generated + */ + EClass getRequirement(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.Requirement#getProperty Property}'. + * + * + * @return the meta object for the reference 'Property'. + * @see fr.irit.fiacre.xtext.fiacre.Requirement#getProperty() + * @see #getRequirement() + * @generated + */ + EReference getRequirement_Property(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.Requirement#getPositive Positive}'. + * + * + * @return the meta object for the attribute 'Positive'. + * @see fr.irit.fiacre.xtext.fiacre.Requirement#getPositive() + * @see #getRequirement() + * @generated + */ + EAttribute getRequirement_Positive(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.Requirement#getNegative Negative}'. + * + * + * @return the meta object for the attribute 'Negative'. + * @see fr.irit.fiacre.xtext.fiacre.Requirement#getNegative() + * @see #getRequirement() + * @generated + */ + EAttribute getRequirement_Negative(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PropertyDeclaration Property Declaration}'. + * + * + * @return the meta object for class 'Property Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyDeclaration + * @generated + */ + EClass getPropertyDeclaration(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PropertyDeclaration#getProperty Property}'. + * + * + * @return the meta object for the containment reference 'Property'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyDeclaration#getProperty() + * @see #getPropertyDeclaration() + * @generated + */ + EReference getPropertyDeclaration_Property(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Property Property}'. + * + * + * @return the meta object for class 'Property'. + * @see fr.irit.fiacre.xtext.fiacre.Property + * @generated + */ + EClass getProperty(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PatternProperty Pattern Property}'. + * + * + * @return the meta object for class 'Pattern Property'. + * @see fr.irit.fiacre.xtext.fiacre.PatternProperty + * @generated + */ + EClass getPatternProperty(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLPattern LTL Pattern}'. + * + * + * @return the meta object for class 'LTL Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.LTLPattern + * @generated + */ + EClass getLTLPattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLPattern#getProperty Property}'. + * + * + * @return the meta object for the containment reference 'Property'. + * @see fr.irit.fiacre.xtext.fiacre.LTLPattern#getProperty() + * @see #getLTLPattern() + * @generated + */ + EReference getLTLPattern_Property(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern Deadlock Free Pattern}'. + * + * + * @return the meta object for class 'Deadlock Free Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern + * @generated + */ + EClass getDeadlockFreePattern(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern Infinitely Often Pattern}'. + * + * + * @return the meta object for class 'Infinitely Often Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern + * @generated + */ + EClass getInfinitelyOftenPattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern#getSubject Subject}'. + * + * + * @return the meta object for the containment reference 'Subject'. + * @see fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern#getSubject() + * @see #getInfinitelyOftenPattern() + * @generated + */ + EReference getInfinitelyOftenPattern_Subject(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.MortalPattern Mortal Pattern}'. + * + * + * @return the meta object for class 'Mortal Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.MortalPattern + * @generated + */ + EClass getMortalPattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.MortalPattern#getSubject Subject}'. + * + * + * @return the meta object for the containment reference 'Subject'. + * @see fr.irit.fiacre.xtext.fiacre.MortalPattern#getSubject() + * @see #getMortalPattern() + * @generated + */ + EReference getMortalPattern_Subject(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern Presence Pattern}'. + * + * + * @return the meta object for class 'Presence Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.PresencePattern + * @generated + */ + EClass getPresencePattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getSubject Subject}'. + * + * + * @return the meta object for the containment reference 'Subject'. + * @see fr.irit.fiacre.xtext.fiacre.PresencePattern#getSubject() + * @see #getPresencePattern() + * @generated + */ + EReference getPresencePattern_Subject(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getLasting Lasting}'. + * + * + * @return the meta object for the attribute 'Lasting'. + * @see fr.irit.fiacre.xtext.fiacre.PresencePattern#getLasting() + * @see #getPresencePattern() + * @generated + */ + EAttribute getPresencePattern_Lasting(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getAfter After}'. + * + * + * @return the meta object for the containment reference 'After'. + * @see fr.irit.fiacre.xtext.fiacre.PresencePattern#getAfter() + * @see #getPresencePattern() + * @generated + */ + EReference getPresencePattern_After(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getLower Lower}'. + * + * + * @return the meta object for the containment reference 'Lower'. + * @see fr.irit.fiacre.xtext.fiacre.PresencePattern#getLower() + * @see #getPresencePattern() + * @generated + */ + EReference getPresencePattern_Lower(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getUpper Upper}'. + * + * + * @return the meta object for the containment reference 'Upper'. + * @see fr.irit.fiacre.xtext.fiacre.PresencePattern#getUpper() + * @see #getPresencePattern() + * @generated + */ + EReference getPresencePattern_Upper(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getUntil Until}'. + * + * + * @return the meta object for the containment reference 'Until'. + * @see fr.irit.fiacre.xtext.fiacre.PresencePattern#getUntil() + * @see #getPresencePattern() + * @generated + */ + EReference getPresencePattern_Until(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getBefore Before}'. + * + * + * @return the meta object for the containment reference 'Before'. + * @see fr.irit.fiacre.xtext.fiacre.PresencePattern#getBefore() + * @see #getPresencePattern() + * @generated + */ + EReference getPresencePattern_Before(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getMin Min}'. + * + * + * @return the meta object for the containment reference 'Min'. + * @see fr.irit.fiacre.xtext.fiacre.PresencePattern#getMin() + * @see #getPresencePattern() + * @generated + */ + EReference getPresencePattern_Min(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getMax Max}'. + * + * + * @return the meta object for the containment reference 'Max'. + * @see fr.irit.fiacre.xtext.fiacre.PresencePattern#getMax() + * @see #getPresencePattern() + * @generated + */ + EReference getPresencePattern_Max(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern Absence Pattern}'. + * + * + * @return the meta object for class 'Absence Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.AbsencePattern + * @generated + */ + EClass getAbsencePattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getSubject Subject}'. + * + * + * @return the meta object for the containment reference 'Subject'. + * @see fr.irit.fiacre.xtext.fiacre.AbsencePattern#getSubject() + * @see #getAbsencePattern() + * @generated + */ + EReference getAbsencePattern_Subject(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getAfter After}'. + * + * + * @return the meta object for the containment reference 'After'. + * @see fr.irit.fiacre.xtext.fiacre.AbsencePattern#getAfter() + * @see #getAbsencePattern() + * @generated + */ + EReference getAbsencePattern_After(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getLower Lower}'. + * + * + * @return the meta object for the containment reference 'Lower'. + * @see fr.irit.fiacre.xtext.fiacre.AbsencePattern#getLower() + * @see #getAbsencePattern() + * @generated + */ + EReference getAbsencePattern_Lower(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getUpper Upper}'. + * + * + * @return the meta object for the containment reference 'Upper'. + * @see fr.irit.fiacre.xtext.fiacre.AbsencePattern#getUpper() + * @see #getAbsencePattern() + * @generated + */ + EReference getAbsencePattern_Upper(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getUntil Until}'. + * + * + * @return the meta object for the containment reference 'Until'. + * @see fr.irit.fiacre.xtext.fiacre.AbsencePattern#getUntil() + * @see #getAbsencePattern() + * @generated + */ + EReference getAbsencePattern_Until(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getBefore Before}'. + * + * + * @return the meta object for the containment reference 'Before'. + * @see fr.irit.fiacre.xtext.fiacre.AbsencePattern#getBefore() + * @see #getAbsencePattern() + * @generated + */ + EReference getAbsencePattern_Before(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getMin Min}'. + * + * + * @return the meta object for the containment reference 'Min'. + * @see fr.irit.fiacre.xtext.fiacre.AbsencePattern#getMin() + * @see #getAbsencePattern() + * @generated + */ + EReference getAbsencePattern_Min(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern#getMax Max}'. + * + * + * @return the meta object for the containment reference 'Max'. + * @see fr.irit.fiacre.xtext.fiacre.AbsencePattern#getMax() + * @see #getAbsencePattern() + * @generated + */ + EReference getAbsencePattern_Max(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern Always Pattern}'. + * + * + * @return the meta object for class 'Always Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.AlwaysPattern + * @generated + */ + EClass getAlwaysPattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getSubject Subject}'. + * + * + * @return the meta object for the containment reference 'Subject'. + * @see fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getSubject() + * @see #getAlwaysPattern() + * @generated + */ + EReference getAlwaysPattern_Subject(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getBefore Before}'. + * + * + * @return the meta object for the containment reference 'Before'. + * @see fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getBefore() + * @see #getAlwaysPattern() + * @generated + */ + EReference getAlwaysPattern_Before(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getAfter After}'. + * + * + * @return the meta object for the containment reference 'After'. + * @see fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getAfter() + * @see #getAlwaysPattern() + * @generated + */ + EReference getAlwaysPattern_After(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getUntil Until}'. + * + * + * @return the meta object for the containment reference 'Until'. + * @see fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getUntil() + * @see #getAlwaysPattern() + * @generated + */ + EReference getAlwaysPattern_Until(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getMin Min}'. + * + * + * @return the meta object for the containment reference 'Min'. + * @see fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getMin() + * @see #getAlwaysPattern() + * @generated + */ + EReference getAlwaysPattern_Min(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getMax Max}'. + * + * + * @return the meta object for the containment reference 'Max'. + * @see fr.irit.fiacre.xtext.fiacre.AlwaysPattern#getMax() + * @see #getAlwaysPattern() + * @generated + */ + EReference getAlwaysPattern_Max(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.SequencePattern Sequence Pattern}'. + * + * + * @return the meta object for class 'Sequence Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.SequencePattern + * @generated + */ + EClass getSequencePattern(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLProperty LTL Property}'. + * + * + * @return the meta object for class 'LTL Property'. + * @see fr.irit.fiacre.xtext.fiacre.LTLProperty + * @generated + */ + EClass getLTLProperty(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.StateEvent State Event}'. + * + * + * @return the meta object for class 'State Event'. + * @see fr.irit.fiacre.xtext.fiacre.StateEvent + * @generated + */ + EClass getStateEvent(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.StateEvent#getSubject Subject}'. + * + * + * @return the meta object for the containment reference 'Subject'. + * @see fr.irit.fiacre.xtext.fiacre.StateEvent#getSubject() + * @see #getStateEvent() + * @generated + */ + EReference getStateEvent_Subject(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.EnterStateEvent Enter State Event}'. + * + * + * @return the meta object for class 'Enter State Event'. + * @see fr.irit.fiacre.xtext.fiacre.EnterStateEvent + * @generated + */ + EClass getEnterStateEvent(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LeaveStateEvent Leave State Event}'. + * + * + * @return the meta object for class 'Leave State Event'. + * @see fr.irit.fiacre.xtext.fiacre.LeaveStateEvent + * @generated + */ + EClass getLeaveStateEvent(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Observable Observable}'. + * + * + * @return the meta object for class 'Observable'. + * @see fr.irit.fiacre.xtext.fiacre.Observable + * @generated + */ + EClass getObservable(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ObservableEvent Observable Event}'. + * + * + * @return the meta object for class 'Observable Event'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableEvent + * @generated + */ + EClass getObservableEvent(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PathEvent Path Event}'. + * + * + * @return the meta object for class 'Path Event'. + * @see fr.irit.fiacre.xtext.fiacre.PathEvent + * @generated + */ + EClass getPathEvent(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PathEvent#getPath Path}'. + * + * + * @return the meta object for the containment reference 'Path'. + * @see fr.irit.fiacre.xtext.fiacre.PathEvent#getPath() + * @see #getPathEvent() + * @generated + */ + EReference getPathEvent_Path(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PathEvent#getItem Item}'. + * + * + * @return the meta object for the containment reference 'Item'. + * @see fr.irit.fiacre.xtext.fiacre.PathEvent#getItem() + * @see #getPathEvent() + * @generated + */ + EReference getPathEvent_Item(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Path Path}'. + * + * + * @return the meta object for class 'Path'. + * @see fr.irit.fiacre.xtext.fiacre.Path + * @generated + */ + EClass getPath(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.Path#getItems Items}'. + * + * + * @return the meta object for the containment reference list 'Items'. + * @see fr.irit.fiacre.xtext.fiacre.Path#getItems() + * @see #getPath() + * @generated + */ + EReference getPath_Items(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PathItem Path Item}'. + * + * + * @return the meta object for class 'Path Item'. + * @see fr.irit.fiacre.xtext.fiacre.PathItem + * @generated + */ + EClass getPathItem(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.NaturalItem Natural Item}'. + * + * + * @return the meta object for class 'Natural Item'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalItem + * @generated + */ + EClass getNaturalItem(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.NaturalItem#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalItem#getValue() + * @see #getNaturalItem() + * @generated + */ + EAttribute getNaturalItem_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.NamedItem Named Item}'. + * + * + * @return the meta object for class 'Named Item'. + * @see fr.irit.fiacre.xtext.fiacre.NamedItem + * @generated + */ + EClass getNamedItem(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.NamedItem#getDeclaration Declaration}'. + * + * + * @return the meta object for the reference 'Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.NamedItem#getDeclaration() + * @see #getNamedItem() + * @generated + */ + EReference getNamedItem_Declaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Subject Subject}'. + * + * + * @return the meta object for class 'Subject'. + * @see fr.irit.fiacre.xtext.fiacre.Subject + * @generated + */ + EClass getSubject(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.StateSubject State Subject}'. + * + * + * @return the meta object for class 'State Subject'. + * @see fr.irit.fiacre.xtext.fiacre.StateSubject + * @generated + */ + EClass getStateSubject(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.StateSubject#getState State}'. + * + * + * @return the meta object for the reference 'State'. + * @see fr.irit.fiacre.xtext.fiacre.StateSubject#getState() + * @see #getStateSubject() + * @generated + */ + EReference getStateSubject_State(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ValueSubject Value Subject}'. + * + * + * @return the meta object for class 'Value Subject'. + * @see fr.irit.fiacre.xtext.fiacre.ValueSubject + * @generated + */ + EClass getValueSubject(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ValueSubject#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see fr.irit.fiacre.xtext.fiacre.ValueSubject#getValue() + * @see #getValueSubject() + * @generated + */ + EReference getValueSubject_Value(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.TagSubject Tag Subject}'. + * + * + * @return the meta object for class 'Tag Subject'. + * @see fr.irit.fiacre.xtext.fiacre.TagSubject + * @generated + */ + EClass getTagSubject(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.TagSubject#getTag Tag}'. + * + * + * @return the meta object for the reference 'Tag'. + * @see fr.irit.fiacre.xtext.fiacre.TagSubject#getTag() + * @see #getTagSubject() + * @generated + */ + EReference getTagSubject_Tag(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.EventSubject Event Subject}'. + * + * + * @return the meta object for class 'Event Subject'. + * @see fr.irit.fiacre.xtext.fiacre.EventSubject + * @generated + */ + EClass getEventSubject(); + + /** + * Returns the meta object for the attribute '{@link fr.irit.fiacre.xtext.fiacre.EventSubject#getEvent Event}'. + * + * + * @return the meta object for the attribute 'Event'. + * @see fr.irit.fiacre.xtext.fiacre.EventSubject#getEvent() + * @see #getEventSubject() + * @generated + */ + EAttribute getEventSubject_Event(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.TupleType Tuple Type}'. + * + * + * @return the meta object for class 'Tuple Type'. + * @see fr.irit.fiacre.xtext.fiacre.TupleType + * @generated + */ + EClass getTupleType(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.TupleType#getTypes Types}'. + * + * + * @return the meta object for the containment reference list 'Types'. + * @see fr.irit.fiacre.xtext.fiacre.TupleType#getTypes() + * @see #getTupleType() + * @generated + */ + EReference getTupleType_Types(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.NaturalType Natural Type}'. + * + * + * @return the meta object for class 'Natural Type'. + * @see fr.irit.fiacre.xtext.fiacre.NaturalType + * @generated + */ + EClass getNaturalType(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.IntegerType Integer Type}'. + * + * + * @return the meta object for class 'Integer Type'. + * @see fr.irit.fiacre.xtext.fiacre.IntegerType + * @generated + */ + EClass getIntegerType(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.BooleanType Boolean Type}'. + * + * + * @return the meta object for class 'Boolean Type'. + * @see fr.irit.fiacre.xtext.fiacre.BooleanType + * @generated + */ + EClass getBooleanType(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnlessStatement Unless Statement}'. + * + * + * @return the meta object for class 'Unless Statement'. + * @see fr.irit.fiacre.xtext.fiacre.UnlessStatement + * @generated + */ + EClass getUnlessStatement(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.UnlessStatement#getFollowers Followers}'. + * + * + * @return the meta object for the containment reference list 'Followers'. + * @see fr.irit.fiacre.xtext.fiacre.UnlessStatement#getFollowers() + * @see #getUnlessStatement() + * @generated + */ + EReference getUnlessStatement_Followers(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.StatementChoice Statement Choice}'. + * + * + * @return the meta object for class 'Statement Choice'. + * @see fr.irit.fiacre.xtext.fiacre.StatementChoice + * @generated + */ + EClass getStatementChoice(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.StatementChoice#getChoices Choices}'. + * + * + * @return the meta object for the containment reference list 'Choices'. + * @see fr.irit.fiacre.xtext.fiacre.StatementChoice#getChoices() + * @see #getStatementChoice() + * @generated + */ + EReference getStatementChoice_Choices(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.StatementSequence Statement Sequence}'. + * + * + * @return the meta object for class 'Statement Sequence'. + * @see fr.irit.fiacre.xtext.fiacre.StatementSequence + * @generated + */ + EClass getStatementSequence(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.StatementSequence#getStatements Statements}'. + * + * + * @return the meta object for the containment reference list 'Statements'. + * @see fr.irit.fiacre.xtext.fiacre.StatementSequence#getStatements() + * @see #getStatementSequence() + * @generated + */ + EReference getStatementSequence_Statements(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.AssignStatement Assign Statement}'. + * + * + * @return the meta object for class 'Assign Statement'. + * @see fr.irit.fiacre.xtext.fiacre.AssignStatement + * @generated + */ + EClass getAssignStatement(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.AssignStatement#getPatterns Patterns}'. + * + * + * @return the meta object for the containment reference list 'Patterns'. + * @see fr.irit.fiacre.xtext.fiacre.AssignStatement#getPatterns() + * @see #getAssignStatement() + * @generated + */ + EReference getAssignStatement_Patterns(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.AssignStatement#getValues Values}'. + * + * + * @return the meta object for the containment reference list 'Values'. + * @see fr.irit.fiacre.xtext.fiacre.AssignStatement#getValues() + * @see #getAssignStatement() + * @generated + */ + EReference getAssignStatement_Values(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement Assign Any Statement}'. + * + * + * @return the meta object for class 'Assign Any Statement'. + * @see fr.irit.fiacre.xtext.fiacre.AssignAnyStatement + * @generated + */ + EClass getAssignAnyStatement(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement#getPatterns Patterns}'. + * + * + * @return the meta object for the containment reference list 'Patterns'. + * @see fr.irit.fiacre.xtext.fiacre.AssignAnyStatement#getPatterns() + * @see #getAssignAnyStatement() + * @generated + */ + EReference getAssignAnyStatement_Patterns(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement#getExp Exp}'. + * + * + * @return the meta object for the containment reference 'Exp'. + * @see fr.irit.fiacre.xtext.fiacre.AssignAnyStatement#getExp() + * @see #getAssignAnyStatement() + * @generated + */ + EReference getAssignAnyStatement_Exp(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.SendStatement Send Statement}'. + * + * + * @return the meta object for class 'Send Statement'. + * @see fr.irit.fiacre.xtext.fiacre.SendStatement + * @generated + */ + EClass getSendStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.SendStatement#getPort Port}'. + * + * + * @return the meta object for the containment reference 'Port'. + * @see fr.irit.fiacre.xtext.fiacre.SendStatement#getPort() + * @see #getSendStatement() + * @generated + */ + EReference getSendStatement_Port(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.SendStatement#getValues Values}'. + * + * + * @return the meta object for the containment reference list 'Values'. + * @see fr.irit.fiacre.xtext.fiacre.SendStatement#getValues() + * @see #getSendStatement() + * @generated + */ + EReference getSendStatement_Values(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement Receive Statement}'. + * + * + * @return the meta object for class 'Receive Statement'. + * @see fr.irit.fiacre.xtext.fiacre.ReceiveStatement + * @generated + */ + EClass getReceiveStatement(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getPort Port}'. + * + * + * @return the meta object for the containment reference 'Port'. + * @see fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getPort() + * @see #getReceiveStatement() + * @generated + */ + EReference getReceiveStatement_Port(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getPatterns Patterns}'. + * + * + * @return the meta object for the containment reference list 'Patterns'. + * @see fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getPatterns() + * @see #getReceiveStatement() + * @generated + */ + EReference getReceiveStatement_Patterns(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getExp Exp}'. + * + * + * @return the meta object for the containment reference 'Exp'. + * @see fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getExp() + * @see #getReceiveStatement() + * @generated + */ + EReference getReceiveStatement_Exp(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ConstructorPattern Constructor Pattern}'. + * + * + * @return the meta object for class 'Constructor Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.ConstructorPattern + * @generated + */ + EClass getConstructorPattern(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ConstructorPattern#getParameters Parameters}'. + * + * + * @return the meta object for the containment reference list 'Parameters'. + * @see fr.irit.fiacre.xtext.fiacre.ConstructorPattern#getParameters() + * @see #getConstructorPattern() + * @generated + */ + EReference getConstructorPattern_Parameters(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern Array Access Pattern}'. + * + * + * @return the meta object for class 'Array Access Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern + * @generated + */ + EClass getArrayAccessPattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern#getSource Source}'. + * + * + * @return the meta object for the containment reference 'Source'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern#getSource() + * @see #getArrayAccessPattern() + * @generated + */ + EReference getArrayAccessPattern_Source(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern#getIndex Index}'. + * + * + * @return the meta object for the containment reference 'Index'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern#getIndex() + * @see #getArrayAccessPattern() + * @generated + */ + EReference getArrayAccessPattern_Index(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern Record Access Pattern}'. + * + * + * @return the meta object for class 'Record Access Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.RecordAccessPattern + * @generated + */ + EClass getRecordAccessPattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern#getSource Source}'. + * + * + * @return the meta object for the containment reference 'Source'. + * @see fr.irit.fiacre.xtext.fiacre.RecordAccessPattern#getSource() + * @see #getRecordAccessPattern() + * @generated + */ + EReference getRecordAccessPattern_Source(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern#getField Field}'. + * + * + * @return the meta object for the reference 'Field'. + * @see fr.irit.fiacre.xtext.fiacre.RecordAccessPattern#getField() + * @see #getRecordAccessPattern() + * @generated + */ + EReference getRecordAccessPattern_Field(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.AllExpression All Expression}'. + * + * + * @return the meta object for class 'All Expression'. + * @see fr.irit.fiacre.xtext.fiacre.AllExpression + * @generated + */ + EClass getAllExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AllExpression#getIndex Index}'. + * + * + * @return the meta object for the containment reference 'Index'. + * @see fr.irit.fiacre.xtext.fiacre.AllExpression#getIndex() + * @see #getAllExpression() + * @generated + */ + EReference getAllExpression_Index(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AllExpression#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.AllExpression#getType() + * @see #getAllExpression() + * @generated + */ + EReference getAllExpression_Type(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AllExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.AllExpression#getChild() + * @see #getAllExpression() + * @generated + */ + EReference getAllExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ExistsExpression Exists Expression}'. + * + * + * @return the meta object for class 'Exists Expression'. + * @see fr.irit.fiacre.xtext.fiacre.ExistsExpression + * @generated + */ + EClass getExistsExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ExistsExpression#getIndex Index}'. + * + * + * @return the meta object for the containment reference 'Index'. + * @see fr.irit.fiacre.xtext.fiacre.ExistsExpression#getIndex() + * @see #getExistsExpression() + * @generated + */ + EReference getExistsExpression_Index(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ExistsExpression#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.ExistsExpression#getType() + * @see #getExistsExpression() + * @generated + */ + EReference getExistsExpression_Type(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ExistsExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.ExistsExpression#getChild() + * @see #getExistsExpression() + * @generated + */ + EReference getExistsExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Conditional Conditional}'. + * + * + * @return the meta object for class 'Conditional'. + * @see fr.irit.fiacre.xtext.fiacre.Conditional + * @generated + */ + EClass getConditional(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Conditional#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see fr.irit.fiacre.xtext.fiacre.Conditional#getCondition() + * @see #getConditional() + * @generated + */ + EReference getConditional_Condition(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Conditional#getThen Then}'. + * + * + * @return the meta object for the containment reference 'Then'. + * @see fr.irit.fiacre.xtext.fiacre.Conditional#getThen() + * @see #getConditional() + * @generated + */ + EReference getConditional_Then(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Conditional#getElse Else}'. + * + * + * @return the meta object for the containment reference 'Else'. + * @see fr.irit.fiacre.xtext.fiacre.Conditional#getElse() + * @see #getConditional() + * @generated + */ + EReference getConditional_Else(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Disjunction Disjunction}'. + * + * + * @return the meta object for class 'Disjunction'. + * @see fr.irit.fiacre.xtext.fiacre.Disjunction + * @generated + */ + EClass getDisjunction(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Disjunction#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.Disjunction#getLeft() + * @see #getDisjunction() + * @generated + */ + EReference getDisjunction_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Disjunction#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.Disjunction#getRight() + * @see #getDisjunction() + * @generated + */ + EReference getDisjunction_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Implication Implication}'. + * + * + * @return the meta object for class 'Implication'. + * @see fr.irit.fiacre.xtext.fiacre.Implication + * @generated + */ + EClass getImplication(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Implication#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.Implication#getLeft() + * @see #getImplication() + * @generated + */ + EReference getImplication_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Implication#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.Implication#getRight() + * @see #getImplication() + * @generated + */ + EReference getImplication_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Conjunction Conjunction}'. + * + * + * @return the meta object for class 'Conjunction'. + * @see fr.irit.fiacre.xtext.fiacre.Conjunction + * @generated + */ + EClass getConjunction(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Conjunction#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.Conjunction#getLeft() + * @see #getConjunction() + * @generated + */ + EReference getConjunction_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Conjunction#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.Conjunction#getRight() + * @see #getConjunction() + * @generated + */ + EReference getConjunction_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual Comparison Equal}'. + * + * + * @return the meta object for class 'Comparison Equal'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonEqual + * @generated + */ + EClass getComparisonEqual(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonEqual#getLeft() + * @see #getComparisonEqual() + * @generated + */ + EReference getComparisonEqual_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonEqual#getRight() + * @see #getComparisonEqual() + * @generated + */ + EReference getComparisonEqual_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual Comparison Not Equal}'. + * + * + * @return the meta object for class 'Comparison Not Equal'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual + * @generated + */ + EClass getComparisonNotEqual(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual#getLeft() + * @see #getComparisonNotEqual() + * @generated + */ + EReference getComparisonNotEqual_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual#getRight() + * @see #getComparisonNotEqual() + * @generated + */ + EReference getComparisonNotEqual_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser Comparison Lesser}'. + * + * + * @return the meta object for class 'Comparison Lesser'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonLesser + * @generated + */ + EClass getComparisonLesser(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonLesser#getLeft() + * @see #getComparisonLesser() + * @generated + */ + EReference getComparisonLesser_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonLesser#getRight() + * @see #getComparisonLesser() + * @generated + */ + EReference getComparisonLesser_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual Comparison Lesser Equal}'. + * + * + * @return the meta object for class 'Comparison Lesser Equal'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual + * @generated + */ + EClass getComparisonLesserEqual(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual#getLeft() + * @see #getComparisonLesserEqual() + * @generated + */ + EReference getComparisonLesserEqual_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual#getRight() + * @see #getComparisonLesserEqual() + * @generated + */ + EReference getComparisonLesserEqual_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater Comparison Greater}'. + * + * + * @return the meta object for class 'Comparison Greater'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonGreater + * @generated + */ + EClass getComparisonGreater(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonGreater#getLeft() + * @see #getComparisonGreater() + * @generated + */ + EReference getComparisonGreater_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonGreater#getRight() + * @see #getComparisonGreater() + * @generated + */ + EReference getComparisonGreater_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual Comparison Greater Equal}'. + * + * + * @return the meta object for class 'Comparison Greater Equal'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual + * @generated + */ + EClass getComparisonGreaterEqual(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual#getLeft() + * @see #getComparisonGreaterEqual() + * @generated + */ + EReference getComparisonGreaterEqual_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual#getRight() + * @see #getComparisonGreaterEqual() + * @generated + */ + EReference getComparisonGreaterEqual_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Addition Addition}'. + * + * + * @return the meta object for class 'Addition'. + * @see fr.irit.fiacre.xtext.fiacre.Addition + * @generated + */ + EClass getAddition(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Addition#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.Addition#getLeft() + * @see #getAddition() + * @generated + */ + EReference getAddition_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Addition#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.Addition#getRight() + * @see #getAddition() + * @generated + */ + EReference getAddition_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Substraction Substraction}'. + * + * + * @return the meta object for class 'Substraction'. + * @see fr.irit.fiacre.xtext.fiacre.Substraction + * @generated + */ + EClass getSubstraction(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Substraction#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.Substraction#getLeft() + * @see #getSubstraction() + * @generated + */ + EReference getSubstraction_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Substraction#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.Substraction#getRight() + * @see #getSubstraction() + * @generated + */ + EReference getSubstraction_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Multiplication Multiplication}'. + * + * + * @return the meta object for class 'Multiplication'. + * @see fr.irit.fiacre.xtext.fiacre.Multiplication + * @generated + */ + EClass getMultiplication(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Multiplication#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.Multiplication#getLeft() + * @see #getMultiplication() + * @generated + */ + EReference getMultiplication_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Multiplication#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.Multiplication#getRight() + * @see #getMultiplication() + * @generated + */ + EReference getMultiplication_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Division Division}'. + * + * + * @return the meta object for class 'Division'. + * @see fr.irit.fiacre.xtext.fiacre.Division + * @generated + */ + EClass getDivision(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Division#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.Division#getLeft() + * @see #getDivision() + * @generated + */ + EReference getDivision_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Division#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.Division#getRight() + * @see #getDivision() + * @generated + */ + EReference getDivision_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Modulo Modulo}'. + * + * + * @return the meta object for class 'Modulo'. + * @see fr.irit.fiacre.xtext.fiacre.Modulo + * @generated + */ + EClass getModulo(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Modulo#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.Modulo#getLeft() + * @see #getModulo() + * @generated + */ + EReference getModulo_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Modulo#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.Modulo#getRight() + * @see #getModulo() + * @generated + */ + EReference getModulo_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression Unary Plus Expression}'. + * + * + * @return the meta object for class 'Unary Plus Expression'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression + * @generated + */ + EClass getUnaryPlusExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression#getChild() + * @see #getUnaryPlusExpression() + * @generated + */ + EReference getUnaryPlusExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression Unary Minus Expression}'. + * + * + * @return the meta object for class 'Unary Minus Expression'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression + * @generated + */ + EClass getUnaryMinusExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression#getChild() + * @see #getUnaryMinusExpression() + * @generated + */ + EReference getUnaryMinusExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression Unary Negation Expression}'. + * + * + * @return the meta object for class 'Unary Negation Expression'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression + * @generated + */ + EClass getUnaryNegationExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression#getChild() + * @see #getUnaryNegationExpression() + * @generated + */ + EReference getUnaryNegationExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression Unary First Expression}'. + * + * + * @return the meta object for class 'Unary First Expression'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression + * @generated + */ + EClass getUnaryFirstExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression#getChild() + * @see #getUnaryFirstExpression() + * @generated + */ + EReference getUnaryFirstExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression Unary Length Expression}'. + * + * + * @return the meta object for class 'Unary Length Expression'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression + * @generated + */ + EClass getUnaryLengthExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression#getChild() + * @see #getUnaryLengthExpression() + * @generated + */ + EReference getUnaryLengthExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression Unary Coerce Expression}'. + * + * + * @return the meta object for class 'Unary Coerce Expression'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression + * @generated + */ + EClass getUnaryCoerceExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression#getChild() + * @see #getUnaryCoerceExpression() + * @generated + */ + EReference getUnaryCoerceExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnaryFullExpression Unary Full Expression}'. + * + * + * @return the meta object for class 'Unary Full Expression'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryFullExpression + * @generated + */ + EClass getUnaryFullExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.UnaryFullExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryFullExpression#getChild() + * @see #getUnaryFullExpression() + * @generated + */ + EReference getUnaryFullExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression Unary De Queue Expression}'. + * + * + * @return the meta object for class 'Unary De Queue Expression'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression + * @generated + */ + EClass getUnaryDeQueueExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression#getChild() + * @see #getUnaryDeQueueExpression() + * @generated + */ + EReference getUnaryDeQueueExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression Unary Empty Expression}'. + * + * + * @return the meta object for class 'Unary Empty Expression'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression + * @generated + */ + EClass getUnaryEmptyExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression#getChild() + * @see #getUnaryEmptyExpression() + * @generated + */ + EReference getUnaryEmptyExpression_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.Projection Projection}'. + * + * + * @return the meta object for class 'Projection'. + * @see fr.irit.fiacre.xtext.fiacre.Projection + * @generated + */ + EClass getProjection(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Projection#getChannel Channel}'. + * + * + * @return the meta object for the containment reference 'Channel'. + * @see fr.irit.fiacre.xtext.fiacre.Projection#getChannel() + * @see #getProjection() + * @generated + */ + EReference getProjection_Channel(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.Projection#getField Field}'. + * + * + * @return the meta object for the containment reference 'Field'. + * @see fr.irit.fiacre.xtext.fiacre.Projection#getField() + * @see #getProjection() + * @generated + */ + EReference getProjection_Field(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ConstructionExpression Construction Expression}'. + * + * + * @return the meta object for class 'Construction Expression'. + * @see fr.irit.fiacre.xtext.fiacre.ConstructionExpression + * @generated + */ + EClass getConstructionExpression(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ConstructionExpression#getParameters Parameters}'. + * + * + * @return the meta object for the containment reference list 'Parameters'. + * @see fr.irit.fiacre.xtext.fiacre.ConstructionExpression#getParameters() + * @see #getConstructionExpression() + * @generated + */ + EReference getConstructionExpression_Parameters(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression Array Access Expression}'. + * + * + * @return the meta object for class 'Array Access Expression'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression + * @generated + */ + EClass getArrayAccessExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression#getChild() + * @see #getArrayAccessExpression() + * @generated + */ + EReference getArrayAccessExpression_Child(); + + /** + * Returns the meta object for the containment reference list '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression#getIndexes Indexes}'. + * + * + * @return the meta object for the containment reference list 'Indexes'. + * @see fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression#getIndexes() + * @see #getArrayAccessExpression() + * @generated + */ + EReference getArrayAccessExpression_Indexes(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression Record Access Expression}'. + * + * + * @return the meta object for class 'Record Access Expression'. + * @see fr.irit.fiacre.xtext.fiacre.RecordAccessExpression + * @generated + */ + EClass getRecordAccessExpression(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.RecordAccessExpression#getChild() + * @see #getRecordAccessExpression() + * @generated + */ + EReference getRecordAccessExpression_Child(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression#getField Field}'. + * + * + * @return the meta object for the reference 'Field'. + * @see fr.irit.fiacre.xtext.fiacre.RecordAccessExpression#getField() + * @see #getRecordAccessExpression() + * @generated + */ + EReference getRecordAccessExpression_Field(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.TrueLiteral True Literal}'. + * + * + * @return the meta object for class 'True Literal'. + * @see fr.irit.fiacre.xtext.fiacre.TrueLiteral + * @generated + */ + EClass getTrueLiteral(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.FalseLiteral False Literal}'. + * + * + * @return the meta object for class 'False Literal'. + * @see fr.irit.fiacre.xtext.fiacre.FalseLiteral + * @generated + */ + EClass getFalseLiteral(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.AllProperty All Property}'. + * + * + * @return the meta object for class 'All Property'. + * @see fr.irit.fiacre.xtext.fiacre.AllProperty + * @generated + */ + EClass getAllProperty(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AllProperty#getVariable Variable}'. + * + * + * @return the meta object for the containment reference 'Variable'. + * @see fr.irit.fiacre.xtext.fiacre.AllProperty#getVariable() + * @see #getAllProperty() + * @generated + */ + EReference getAllProperty_Variable(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AllProperty#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.AllProperty#getType() + * @see #getAllProperty() + * @generated + */ + EReference getAllProperty_Type(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.AllProperty#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.AllProperty#getChild() + * @see #getAllProperty() + * @generated + */ + EReference getAllProperty_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ExistsProperty Exists Property}'. + * + * + * @return the meta object for class 'Exists Property'. + * @see fr.irit.fiacre.xtext.fiacre.ExistsProperty + * @generated + */ + EClass getExistsProperty(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ExistsProperty#getVariable Variable}'. + * + * + * @return the meta object for the containment reference 'Variable'. + * @see fr.irit.fiacre.xtext.fiacre.ExistsProperty#getVariable() + * @see #getExistsProperty() + * @generated + */ + EReference getExistsProperty_Variable(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ExistsProperty#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.ExistsProperty#getType() + * @see #getExistsProperty() + * @generated + */ + EReference getExistsProperty_Type(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ExistsProperty#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.ExistsProperty#getChild() + * @see #getExistsProperty() + * @generated + */ + EReference getExistsProperty_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction Property Disjunction}'. + * + * + * @return the meta object for class 'Property Disjunction'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyDisjunction + * @generated + */ + EClass getPropertyDisjunction(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyDisjunction#getLeft() + * @see #getPropertyDisjunction() + * @generated + */ + EReference getPropertyDisjunction_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyDisjunction#getRight() + * @see #getPropertyDisjunction() + * @generated + */ + EReference getPropertyDisjunction_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PropertyImplication Property Implication}'. + * + * + * @return the meta object for class 'Property Implication'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyImplication + * @generated + */ + EClass getPropertyImplication(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PropertyImplication#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyImplication#getLeft() + * @see #getPropertyImplication() + * @generated + */ + EReference getPropertyImplication_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PropertyImplication#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyImplication#getRight() + * @see #getPropertyImplication() + * @generated + */ + EReference getPropertyImplication_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction Property Conjunction}'. + * + * + * @return the meta object for class 'Property Conjunction'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyConjunction + * @generated + */ + EClass getPropertyConjunction(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyConjunction#getLeft() + * @see #getPropertyConjunction() + * @generated + */ + EReference getPropertyConjunction_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyConjunction#getRight() + * @see #getPropertyConjunction() + * @generated + */ + EReference getPropertyConjunction_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PropertyNegation Property Negation}'. + * + * + * @return the meta object for class 'Property Negation'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyNegation + * @generated + */ + EClass getPropertyNegation(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PropertyNegation#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.PropertyNegation#getChild() + * @see #getPropertyNegation() + * @generated + */ + EReference getPropertyNegation_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern Leads To Pattern}'. + * + * + * @return the meta object for class 'Leads To Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.LeadsToPattern + * @generated + */ + EClass getLeadsToPattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getSubject Subject}'. + * + * + * @return the meta object for the containment reference 'Subject'. + * @see fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getSubject() + * @see #getLeadsToPattern() + * @generated + */ + EReference getLeadsToPattern_Subject(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getFollower Follower}'. + * + * + * @return the meta object for the containment reference 'Follower'. + * @see fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getFollower() + * @see #getLeadsToPattern() + * @generated + */ + EReference getLeadsToPattern_Follower(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getBefore Before}'. + * + * + * @return the meta object for the containment reference 'Before'. + * @see fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getBefore() + * @see #getLeadsToPattern() + * @generated + */ + EReference getLeadsToPattern_Before(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getLower Lower}'. + * + * + * @return the meta object for the containment reference 'Lower'. + * @see fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getLower() + * @see #getLeadsToPattern() + * @generated + */ + EReference getLeadsToPattern_Lower(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getUpper Upper}'. + * + * + * @return the meta object for the containment reference 'Upper'. + * @see fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getUpper() + * @see #getLeadsToPattern() + * @generated + */ + EReference getLeadsToPattern_Upper(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getAfter After}'. + * + * + * @return the meta object for the containment reference 'After'. + * @see fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getAfter() + * @see #getLeadsToPattern() + * @generated + */ + EReference getLeadsToPattern_After(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getUntil Until}'. + * + * + * @return the meta object for the containment reference 'Until'. + * @see fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getUntil() + * @see #getLeadsToPattern() + * @generated + */ + EReference getLeadsToPattern_Until(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getMin Min}'. + * + * + * @return the meta object for the containment reference 'Min'. + * @see fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getMin() + * @see #getLeadsToPattern() + * @generated + */ + EReference getLeadsToPattern_Min(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getMax Max}'. + * + * + * @return the meta object for the containment reference 'Max'. + * @see fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getMax() + * @see #getLeadsToPattern() + * @generated + */ + EReference getLeadsToPattern_Max(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern Precedes Pattern}'. + * + * + * @return the meta object for class 'Precedes Pattern'. + * @see fr.irit.fiacre.xtext.fiacre.PrecedesPattern + * @generated + */ + EClass getPrecedesPattern(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getSubject Subject}'. + * + * + * @return the meta object for the containment reference 'Subject'. + * @see fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getSubject() + * @see #getPrecedesPattern() + * @generated + */ + EReference getPrecedesPattern_Subject(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getFollower Follower}'. + * + * + * @return the meta object for the containment reference 'Follower'. + * @see fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getFollower() + * @see #getPrecedesPattern() + * @generated + */ + EReference getPrecedesPattern_Follower(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getBefore Before}'. + * + * + * @return the meta object for the containment reference 'Before'. + * @see fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getBefore() + * @see #getPrecedesPattern() + * @generated + */ + EReference getPrecedesPattern_Before(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getAfter After}'. + * + * + * @return the meta object for the containment reference 'After'. + * @see fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getAfter() + * @see #getPrecedesPattern() + * @generated + */ + EReference getPrecedesPattern_After(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getUntil Until}'. + * + * + * @return the meta object for the containment reference 'Until'. + * @see fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getUntil() + * @see #getPrecedesPattern() + * @generated + */ + EReference getPrecedesPattern_Until(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getMin Min}'. + * + * + * @return the meta object for the containment reference 'Min'. + * @see fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getMin() + * @see #getPrecedesPattern() + * @generated + */ + EReference getPrecedesPattern_Min(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getMax Max}'. + * + * + * @return the meta object for the containment reference 'Max'. + * @see fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getMax() + * @see #getPrecedesPattern() + * @generated + */ + EReference getPrecedesPattern_Max(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLAll LTL All}'. + * + * + * @return the meta object for class 'LTL All'. + * @see fr.irit.fiacre.xtext.fiacre.LTLAll + * @generated + */ + EClass getLTLAll(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLAll#getIndex Index}'. + * + * + * @return the meta object for the containment reference 'Index'. + * @see fr.irit.fiacre.xtext.fiacre.LTLAll#getIndex() + * @see #getLTLAll() + * @generated + */ + EReference getLTLAll_Index(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLAll#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.LTLAll#getType() + * @see #getLTLAll() + * @generated + */ + EReference getLTLAll_Type(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLAll#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.LTLAll#getChild() + * @see #getLTLAll() + * @generated + */ + EReference getLTLAll_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLExists LTL Exists}'. + * + * + * @return the meta object for class 'LTL Exists'. + * @see fr.irit.fiacre.xtext.fiacre.LTLExists + * @generated + */ + EClass getLTLExists(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLExists#getIndex Index}'. + * + * + * @return the meta object for the containment reference 'Index'. + * @see fr.irit.fiacre.xtext.fiacre.LTLExists#getIndex() + * @see #getLTLExists() + * @generated + */ + EReference getLTLExists_Index(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLExists#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see fr.irit.fiacre.xtext.fiacre.LTLExists#getType() + * @see #getLTLExists() + * @generated + */ + EReference getLTLExists_Type(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLExists#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.LTLExists#getChild() + * @see #getLTLExists() + * @generated + */ + EReference getLTLExists_Child(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction LTL Disjunction}'. + * + * + * @return the meta object for class 'LTL Disjunction'. + * @see fr.irit.fiacre.xtext.fiacre.LTLDisjunction + * @generated + */ + EClass getLTLDisjunction(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.LTLDisjunction#getLeft() + * @see #getLTLDisjunction() + * @generated + */ + EReference getLTLDisjunction_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.LTLDisjunction#getRight() + * @see #getLTLDisjunction() + * @generated + */ + EReference getLTLDisjunction_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLImplication LTL Implication}'. + * + * + * @return the meta object for class 'LTL Implication'. + * @see fr.irit.fiacre.xtext.fiacre.LTLImplication + * @generated + */ + EClass getLTLImplication(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLImplication#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.LTLImplication#getLeft() + * @see #getLTLImplication() + * @generated + */ + EReference getLTLImplication_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLImplication#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.LTLImplication#getRight() + * @see #getLTLImplication() + * @generated + */ + EReference getLTLImplication_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLConjunction LTL Conjunction}'. + * + * + * @return the meta object for class 'LTL Conjunction'. + * @see fr.irit.fiacre.xtext.fiacre.LTLConjunction + * @generated + */ + EClass getLTLConjunction(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLConjunction#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.LTLConjunction#getLeft() + * @see #getLTLConjunction() + * @generated + */ + EReference getLTLConjunction_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLConjunction#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.LTLConjunction#getRight() + * @see #getLTLConjunction() + * @generated + */ + EReference getLTLConjunction_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLUntil LTL Until}'. + * + * + * @return the meta object for class 'LTL Until'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUntil + * @generated + */ + EClass getLTLUntil(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLUntil#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUntil#getLeft() + * @see #getLTLUntil() + * @generated + */ + EReference getLTLUntil_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLUntil#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUntil#getRight() + * @see #getLTLUntil() + * @generated + */ + EReference getLTLUntil_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLRelease LTL Release}'. + * + * + * @return the meta object for class 'LTL Release'. + * @see fr.irit.fiacre.xtext.fiacre.LTLRelease + * @generated + */ + EClass getLTLRelease(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLRelease#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.LTLRelease#getLeft() + * @see #getLTLRelease() + * @generated + */ + EReference getLTLRelease_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLRelease#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.LTLRelease#getRight() + * @see #getLTLRelease() + * @generated + */ + EReference getLTLRelease_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation LTL Unary Negation}'. + * + * + * @return the meta object for class 'LTL Unary Negation'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation + * @generated + */ + EClass getLTLUnaryNegation(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation#getOperand() + * @see #getLTLUnaryNegation() + * @generated + */ + EReference getLTLUnaryNegation_Operand(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNext LTL Unary Next}'. + * + * + * @return the meta object for class 'LTL Unary Next'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUnaryNext + * @generated + */ + EClass getLTLUnaryNext(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNext#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUnaryNext#getOperand() + * @see #getLTLUnaryNext() + * @generated + */ + EReference getLTLUnaryNext_Operand(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways LTL Unary Always}'. + * + * + * @return the meta object for class 'LTL Unary Always'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways + * @generated + */ + EClass getLTLUnaryAlways(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways#getOperand() + * @see #getLTLUnaryAlways() + * @generated + */ + EReference getLTLUnaryAlways_Operand(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually LTL Unary Eventually}'. + * + * + * @return the meta object for class 'LTL Unary Eventually'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually + * @generated + */ + EClass getLTLUnaryEventually(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually#getOperand() + * @see #getLTLUnaryEventually() + * @generated + */ + EReference getLTLUnaryEventually_Operand(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.LTLVariable LTL Variable}'. + * + * + * @return the meta object for class 'LTL Variable'. + * @see fr.irit.fiacre.xtext.fiacre.LTLVariable + * @generated + */ + EClass getLTLVariable(); + + /** + * Returns the meta object for the reference '{@link fr.irit.fiacre.xtext.fiacre.LTLVariable#getDeclaration Declaration}'. + * + * + * @return the meta object for the reference 'Declaration'. + * @see fr.irit.fiacre.xtext.fiacre.LTLVariable#getDeclaration() + * @see #getLTLVariable() + * @generated + */ + EReference getLTLVariable_Declaration(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction Observable Disjunction}'. + * + * + * @return the meta object for class 'Observable Disjunction'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableDisjunction + * @generated + */ + EClass getObservableDisjunction(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableDisjunction#getLeft() + * @see #getObservableDisjunction() + * @generated + */ + EReference getObservableDisjunction_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableDisjunction#getRight() + * @see #getObservableDisjunction() + * @generated + */ + EReference getObservableDisjunction_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ObservableImplication Observable Implication}'. + * + * + * @return the meta object for class 'Observable Implication'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableImplication + * @generated + */ + EClass getObservableImplication(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ObservableImplication#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableImplication#getLeft() + * @see #getObservableImplication() + * @generated + */ + EReference getObservableImplication_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ObservableImplication#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableImplication#getRight() + * @see #getObservableImplication() + * @generated + */ + EReference getObservableImplication_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction Observable Conjunction}'. + * + * + * @return the meta object for class 'Observable Conjunction'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableConjunction + * @generated + */ + EClass getObservableConjunction(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableConjunction#getLeft() + * @see #getObservableConjunction() + * @generated + */ + EReference getObservableConjunction_Left(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableConjunction#getRight() + * @see #getObservableConjunction() + * @generated + */ + EReference getObservableConjunction_Right(); + + /** + * Returns the meta object for class '{@link fr.irit.fiacre.xtext.fiacre.ObservableNegation Observable Negation}'. + * + * + * @return the meta object for class 'Observable Negation'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableNegation + * @generated + */ + EClass getObservableNegation(); + + /** + * Returns the meta object for the containment reference '{@link fr.irit.fiacre.xtext.fiacre.ObservableNegation#getChild Child}'. + * + * + * @return the meta object for the containment reference 'Child'. + * @see fr.irit.fiacre.xtext.fiacre.ObservableNegation#getChild() + * @see #getObservableNegation() + * @generated + */ + EReference getObservableNegation_Child(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + FiacreFactory getFiacreFactory(); + +} //FiacrePackage diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FieldExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FieldExpression.java new file mode 100644 index 0000000..08ff8ae --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FieldExpression.java @@ -0,0 +1,89 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Field Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.FieldExpression#getField Field}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.FieldExpression#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getFieldExpression() + * @model + * @generated + */ +public interface FieldExpression extends EObject +{ + /** + * Returns the value of the 'Field' reference. + * + *

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

    + * + * @return the value of the 'Field' reference. + * @see #setField(RecordFieldDeclarationUse) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getFieldExpression_Field() + * @model + * @generated + */ + RecordFieldDeclarationUse getField(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.FieldExpression#getField Field}' reference. + * + * + * @param value the new value of the 'Field' reference. + * @see #getField() + * @generated + */ + void setField(RecordFieldDeclarationUse value); + + /** + * 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 fr.irit.fiacre.xtext.fiacre.FiacrePackage#getFieldExpression_Value() + * @model containment="true" + * @generated + */ + Expression getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.FieldExpression#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(Expression value); + +} // FieldExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ForeachStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ForeachStatement.java new file mode 100644 index 0000000..e8e111e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ForeachStatement.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Foreach Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ForeachStatement#getVariable Variable}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ForeachStatement#getBody Body}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getForeachStatement() + * @model + * @generated + */ +public interface ForeachStatement extends Statement +{ + /** + * 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(VariableDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getForeachStatement_Variable() + * @model containment="true" + * @generated + */ + VariableDeclaration getVariable(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ForeachStatement#getVariable Variable}' containment reference. + * + * + * @param value the new value of the 'Variable' containment reference. + * @see #getVariable() + * @generated + */ + void setVariable(VariableDeclaration 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(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getForeachStatement_Body() + * @model containment="true" + * @generated + */ + Statement getBody(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ForeachStatement#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Statement value); + +} // ForeachStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FunctionDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FunctionDeclaration.java new file mode 100644 index 0000000..8d8b55c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/FunctionDeclaration.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Function Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration#getStatement Statement}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getFunctionDeclaration() + * @model + * @generated + */ +public interface FunctionDeclaration extends ExpressionDeclarationUse, ParameterizedDeclaration +{ + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(Type) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getFunctionDeclaration_Type() + * @model containment="true" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(Type value); + + /** + * Returns the value of the 'Statement' containment reference. + * + *

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

    + * + * @return the value of the 'Statement' containment reference. + * @see #setStatement(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getFunctionDeclaration_Statement() + * @model containment="true" + * @generated + */ + Statement getStatement(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration#getStatement Statement}' containment reference. + * + * + * @param value the new value of the 'Statement' containment reference. + * @see #getStatement() + * @generated + */ + void setStatement(Statement value); + +} // FunctionDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IdentifierExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IdentifierExpression.java new file mode 100644 index 0000000..4f5d045 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IdentifierExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Identifier Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.IdentifierExpression#getDeclaration Declaration}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getIdentifierExpression() + * @model + * @generated + */ +public interface IdentifierExpression extends ValueExpression, Expression +{ + /** + * Returns the value of the 'Declaration' reference. + * + *

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

    + * + * @return the value of the 'Declaration' reference. + * @see #setDeclaration(ExpressionDeclarationUse) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getIdentifierExpression_Declaration() + * @model + * @generated + */ + ExpressionDeclarationUse getDeclaration(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.IdentifierExpression#getDeclaration Declaration}' reference. + * + * + * @param value the new value of the 'Declaration' reference. + * @see #getDeclaration() + * @generated + */ + void setDeclaration(ExpressionDeclarationUse value); + +} // IdentifierExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IdentifierPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IdentifierPattern.java new file mode 100644 index 0000000..6102a2c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IdentifierPattern.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Identifier Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.IdentifierPattern#getDeclaration Declaration}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getIdentifierPattern() + * @model + * @generated + */ +public interface IdentifierPattern extends Pattern +{ + /** + * Returns the value of the 'Declaration' reference. + * + *

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

    + * + * @return the value of the 'Declaration' reference. + * @see #setDeclaration(PatternDeclarationUse) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getIdentifierPattern_Declaration() + * @model + * @generated + */ + PatternDeclarationUse getDeclaration(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.IdentifierPattern#getDeclaration Declaration}' reference. + * + * + * @param value the new value of the 'Declaration' reference. + * @see #getDeclaration() + * @generated + */ + void setDeclaration(PatternDeclarationUse value); + +} // IdentifierPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Implication.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Implication.java new file mode 100644 index 0000000..e044121 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Implication.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Implication'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Implication#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Implication#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getImplication() + * @model + * @generated + */ +public interface Implication extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getImplication_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Implication#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getImplication_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Implication#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Implication diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ImportDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ImportDeclaration.java new file mode 100644 index 0000000..95f52a8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ImportDeclaration.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Import Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration#getImportURI Import URI}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getImportDeclaration() + * @model + * @generated + */ +public interface ImportDeclaration extends EObject +{ + /** + * Returns the value of the 'Import URI' attribute. + * + *

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

    + * + * @return the value of the 'Import URI' attribute. + * @see #setImportURI(String) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getImportDeclaration_ImportURI() + * @model + * @generated + */ + String getImportURI(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration#getImportURI Import URI}' attribute. + * + * + * @param value the new value of the 'Import URI' attribute. + * @see #getImportURI() + * @generated + */ + void setImportURI(String value); + +} // ImportDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InfiniteUpperBound.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InfiniteUpperBound.java new file mode 100644 index 0000000..859b7ff --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InfiniteUpperBound.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Infinite Upper Bound'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getInfiniteUpperBound() + * @model + * @generated + */ +public interface InfiniteUpperBound extends UpperBound +{ +} // InfiniteUpperBound diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InfinitelyOftenPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InfinitelyOftenPattern.java new file mode 100644 index 0000000..b836e1f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InfinitelyOftenPattern.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Infinitely Often Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern#getSubject Subject}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getInfinitelyOftenPattern() + * @model + * @generated + */ +public interface InfinitelyOftenPattern extends PatternProperty +{ + /** + * Returns the value of the 'Subject' containment reference. + * + *

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

    + * + * @return the value of the 'Subject' containment reference. + * @see #setSubject(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getInfinitelyOftenPattern_Subject() + * @model containment="true" + * @generated + */ + Observable getSubject(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern#getSubject Subject}' containment reference. + * + * + * @param value the new value of the 'Subject' containment reference. + * @see #getSubject() + * @generated + */ + void setSubject(Observable value); + +} // InfinitelyOftenPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InstanceDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InstanceDeclaration.java new file mode 100644 index 0000000..3596e49 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/InstanceDeclaration.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Instance Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.InstanceDeclaration#getInstance Instance}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getInstanceDeclaration() + * @model + * @generated + */ +public interface InstanceDeclaration extends PathDeclarationUse, Block +{ + /** + * Returns the value of the 'Instance' containment reference. + * + *

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

    + * + * @return the value of the 'Instance' containment reference. + * @see #setInstance(ComponentInstance) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getInstanceDeclaration_Instance() + * @model containment="true" + * @generated + */ + ComponentInstance getInstance(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.InstanceDeclaration#getInstance Instance}' containment reference. + * + * + * @param value the new value of the 'Instance' containment reference. + * @see #getInstance() + * @generated + */ + void setInstance(ComponentInstance value); + +} // InstanceDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IntegerPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IntegerPattern.java new file mode 100644 index 0000000..0e1f9b0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IntegerPattern.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Integer Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.IntegerPattern#isNegative Negative}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.IntegerPattern#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getIntegerPattern() + * @model + * @generated + */ +public interface IntegerPattern extends Pattern +{ + /** + * Returns the value of the 'Negative' attribute. + * + *

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

    + * + * @return the value of the 'Negative' attribute. + * @see #setNegative(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getIntegerPattern_Negative() + * @model + * @generated + */ + boolean isNegative(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.IntegerPattern#isNegative Negative}' attribute. + * + * + * @param value the new value of the 'Negative' attribute. + * @see #isNegative() + * @generated + */ + void setNegative(boolean value); + + /** + * Returns the value of the 'Value' attribute. + * + *

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

    + * + * @return the value of the 'Value' attribute. + * @see #setValue(int) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getIntegerPattern_Value() + * @model + * @generated + */ + int getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.IntegerPattern#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(int value); + +} // IntegerPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IntegerType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IntegerType.java new file mode 100644 index 0000000..6dedf67 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/IntegerType.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Integer Type'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getIntegerType() + * @model + * @generated + */ +public interface IntegerType extends BasicType +{ +} // IntegerType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLAll.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLAll.java new file mode 100644 index 0000000..b84ec17 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLAll.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL All'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLAll#getIndex Index}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLAll#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLAll#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLAll() + * @model + * @generated + */ +public interface LTLAll extends LTLProperty +{ + /** + * Returns the value of the 'Index' containment reference. + * + *

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

    + * + * @return the value of the 'Index' containment reference. + * @see #setIndex(VariableDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLAll_Index() + * @model containment="true" + * @generated + */ + VariableDeclaration getIndex(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLAll#getIndex Index}' containment reference. + * + * + * @param value the new value of the 'Index' containment reference. + * @see #getIndex() + * @generated + */ + void setIndex(VariableDeclaration value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(RangeType) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLAll_Type() + * @model containment="true" + * @generated + */ + RangeType getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLAll#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(RangeType value); + + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLAll_Child() + * @model containment="true" + * @generated + */ + LTLProperty getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLAll#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(LTLProperty value); + +} // LTLAll diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLConjunction.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLConjunction.java new file mode 100644 index 0000000..8bb7ea9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLConjunction.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Conjunction'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLConjunction#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLConjunction#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLConjunction() + * @model + * @generated + */ +public interface LTLConjunction extends LTLProperty +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLConjunction_Left() + * @model containment="true" + * @generated + */ + LTLProperty getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLConjunction#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(LTLProperty value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLConjunction_Right() + * @model containment="true" + * @generated + */ + LTLProperty getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLConjunction#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(LTLProperty value); + +} // LTLConjunction diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLDisjunction.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLDisjunction.java new file mode 100644 index 0000000..887ba2f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLDisjunction.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Disjunction'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLDisjunction() + * @model + * @generated + */ +public interface LTLDisjunction extends LTLProperty +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLDisjunction_Left() + * @model containment="true" + * @generated + */ + LTLProperty getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(LTLProperty value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLDisjunction_Right() + * @model containment="true" + * @generated + */ + LTLProperty getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(LTLProperty value); + +} // LTLDisjunction diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLExists.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLExists.java new file mode 100644 index 0000000..f3efbb7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLExists.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Exists'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLExists#getIndex Index}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLExists#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLExists#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLExists() + * @model + * @generated + */ +public interface LTLExists extends LTLProperty +{ + /** + * Returns the value of the 'Index' containment reference. + * + *

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

    + * + * @return the value of the 'Index' containment reference. + * @see #setIndex(VariableDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLExists_Index() + * @model containment="true" + * @generated + */ + VariableDeclaration getIndex(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLExists#getIndex Index}' containment reference. + * + * + * @param value the new value of the 'Index' containment reference. + * @see #getIndex() + * @generated + */ + void setIndex(VariableDeclaration value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(RangeType) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLExists_Type() + * @model containment="true" + * @generated + */ + RangeType getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLExists#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(RangeType value); + + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLExists_Child() + * @model containment="true" + * @generated + */ + LTLProperty getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLExists#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(LTLProperty value); + +} // LTLExists diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLImplication.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLImplication.java new file mode 100644 index 0000000..cc5a8f9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLImplication.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Implication'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLImplication#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLImplication#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLImplication() + * @model + * @generated + */ +public interface LTLImplication extends LTLProperty +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLImplication_Left() + * @model containment="true" + * @generated + */ + LTLProperty getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLImplication#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(LTLProperty value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLImplication_Right() + * @model containment="true" + * @generated + */ + LTLProperty getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLImplication#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(LTLProperty value); + +} // LTLImplication diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLPattern.java new file mode 100644 index 0000000..f6b25d1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLPattern.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLPattern#getProperty Property}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLPattern() + * @model + * @generated + */ +public interface LTLPattern extends PatternProperty +{ + /** + * Returns the value of the 'Property' containment reference. + * + *

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

    + * + * @return the value of the 'Property' containment reference. + * @see #setProperty(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLPattern_Property() + * @model containment="true" + * @generated + */ + LTLProperty getProperty(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLPattern#getProperty Property}' containment reference. + * + * + * @param value the new value of the 'Property' containment reference. + * @see #getProperty() + * @generated + */ + void setProperty(LTLProperty value); + +} // LTLPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLProperty.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLProperty.java new file mode 100644 index 0000000..3ed7c32 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLProperty.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'LTL Property'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLProperty() + * @model + * @generated + */ +public interface LTLProperty extends EObject +{ +} // LTLProperty diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLRelease.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLRelease.java new file mode 100644 index 0000000..50d6a33 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLRelease.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Release'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLRelease#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLRelease#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLRelease() + * @model + * @generated + */ +public interface LTLRelease extends LTLProperty +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLRelease_Left() + * @model containment="true" + * @generated + */ + LTLProperty getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLRelease#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(LTLProperty value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLRelease_Right() + * @model containment="true" + * @generated + */ + LTLProperty getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLRelease#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(LTLProperty value); + +} // LTLRelease diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryAlways.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryAlways.java new file mode 100644 index 0000000..7a8513d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryAlways.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Unary Always'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways#getOperand Operand}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUnaryAlways() + * @model + * @generated + */ +public interface LTLUnaryAlways extends LTLProperty +{ + /** + * Returns the value of the 'Operand' containment reference. + * + *

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

    + * + * @return the value of the 'Operand' containment reference. + * @see #setOperand(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUnaryAlways_Operand() + * @model containment="true" + * @generated + */ + LTLProperty getOperand(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(LTLProperty value); + +} // LTLUnaryAlways diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryEventually.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryEventually.java new file mode 100644 index 0000000..445d78f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryEventually.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Unary Eventually'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually#getOperand Operand}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUnaryEventually() + * @model + * @generated + */ +public interface LTLUnaryEventually extends LTLProperty +{ + /** + * Returns the value of the 'Operand' containment reference. + * + *

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

    + * + * @return the value of the 'Operand' containment reference. + * @see #setOperand(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUnaryEventually_Operand() + * @model containment="true" + * @generated + */ + LTLProperty getOperand(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(LTLProperty value); + +} // LTLUnaryEventually diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryNegation.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryNegation.java new file mode 100644 index 0000000..82b2fa0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryNegation.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Unary Negation'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation#getOperand Operand}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUnaryNegation() + * @model + * @generated + */ +public interface LTLUnaryNegation extends LTLProperty +{ + /** + * Returns the value of the 'Operand' containment reference. + * + *

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

    + * + * @return the value of the 'Operand' containment reference. + * @see #setOperand(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUnaryNegation_Operand() + * @model containment="true" + * @generated + */ + LTLProperty getOperand(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(LTLProperty value); + +} // LTLUnaryNegation diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryNext.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryNext.java new file mode 100644 index 0000000..7797251 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUnaryNext.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Unary Next'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNext#getOperand Operand}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUnaryNext() + * @model + * @generated + */ +public interface LTLUnaryNext extends LTLProperty +{ + /** + * Returns the value of the 'Operand' containment reference. + * + *

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

    + * + * @return the value of the 'Operand' containment reference. + * @see #setOperand(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUnaryNext_Operand() + * @model containment="true" + * @generated + */ + LTLProperty getOperand(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNext#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(LTLProperty value); + +} // LTLUnaryNext diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUntil.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUntil.java new file mode 100644 index 0000000..1c223c0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLUntil.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Until'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLUntil#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLUntil#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUntil() + * @model + * @generated + */ +public interface LTLUntil extends LTLProperty +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUntil_Left() + * @model containment="true" + * @generated + */ + LTLProperty getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLUntil#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(LTLProperty value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(LTLProperty) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLUntil_Right() + * @model containment="true" + * @generated + */ + LTLProperty getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLUntil#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(LTLProperty value); + +} // LTLUntil diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLVariable.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLVariable.java new file mode 100644 index 0000000..cf6fa30 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LTLVariable.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'LTL Variable'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LTLVariable#getDeclaration Declaration}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLVariable() + * @model + * @generated + */ +public interface LTLVariable extends LTLProperty +{ + /** + * Returns the value of the 'Declaration' reference. + * + *

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

    + * + * @return the value of the 'Declaration' reference. + * @see #setDeclaration(PropertyDeclarationUse) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLTLVariable_Declaration() + * @model + * @generated + */ + PropertyDeclarationUse getDeclaration(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LTLVariable#getDeclaration Declaration}' reference. + * + * + * @param value the new value of the 'Declaration' reference. + * @see #getDeclaration() + * @generated + */ + void setDeclaration(PropertyDeclarationUse value); + +} // LTLVariable diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LeadsToPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LeadsToPattern.java new file mode 100644 index 0000000..0fd141f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LeadsToPattern.java @@ -0,0 +1,277 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Leads To Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getSubject Subject}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getFollower Follower}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getBefore Before}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getLower Lower}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getUpper Upper}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getAfter After}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getUntil Until}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getMin Min}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getMax Max}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeadsToPattern() + * @model + * @generated + */ +public interface LeadsToPattern extends SequencePattern +{ + /** + * Returns the value of the 'Subject' containment reference. + * + *

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

    + * + * @return the value of the 'Subject' containment reference. + * @see #setSubject(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeadsToPattern_Subject() + * @model containment="true" + * @generated + */ + Observable getSubject(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getSubject Subject}' containment reference. + * + * + * @param value the new value of the 'Subject' containment reference. + * @see #getSubject() + * @generated + */ + void setSubject(Observable value); + + /** + * Returns the value of the 'Follower' containment reference. + * + *

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

    + * + * @return the value of the 'Follower' containment reference. + * @see #setFollower(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeadsToPattern_Follower() + * @model containment="true" + * @generated + */ + Observable getFollower(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getFollower Follower}' containment reference. + * + * + * @param value the new value of the 'Follower' containment reference. + * @see #getFollower() + * @generated + */ + void setFollower(Observable value); + + /** + * Returns the value of the 'Before' containment reference. + * + *

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

    + * + * @return the value of the 'Before' containment reference. + * @see #setBefore(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeadsToPattern_Before() + * @model containment="true" + * @generated + */ + Observable getBefore(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getBefore Before}' containment reference. + * + * + * @param value the new value of the 'Before' containment reference. + * @see #getBefore() + * @generated + */ + void setBefore(Observable value); + + /** + * Returns the value of the 'Lower' containment reference. + * + *

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

    + * + * @return the value of the 'Lower' containment reference. + * @see #setLower(LowerBound) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeadsToPattern_Lower() + * @model containment="true" + * @generated + */ + LowerBound getLower(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getLower Lower}' containment reference. + * + * + * @param value the new value of the 'Lower' containment reference. + * @see #getLower() + * @generated + */ + void setLower(LowerBound value); + + /** + * Returns the value of the 'Upper' containment reference. + * + *

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

    + * + * @return the value of the 'Upper' containment reference. + * @see #setUpper(UpperBound) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeadsToPattern_Upper() + * @model containment="true" + * @generated + */ + UpperBound getUpper(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getUpper Upper}' containment reference. + * + * + * @param value the new value of the 'Upper' containment reference. + * @see #getUpper() + * @generated + */ + void setUpper(UpperBound value); + + /** + * Returns the value of the 'After' containment reference. + * + *

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

    + * + * @return the value of the 'After' containment reference. + * @see #setAfter(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeadsToPattern_After() + * @model containment="true" + * @generated + */ + Observable getAfter(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getAfter After}' containment reference. + * + * + * @param value the new value of the 'After' containment reference. + * @see #getAfter() + * @generated + */ + void setAfter(Observable value); + + /** + * Returns the value of the 'Until' containment reference. + * + *

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

    + * + * @return the value of the 'Until' containment reference. + * @see #setUntil(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeadsToPattern_Until() + * @model containment="true" + * @generated + */ + Observable getUntil(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getUntil Until}' containment reference. + * + * + * @param value the new value of the 'Until' containment reference. + * @see #getUntil() + * @generated + */ + void setUntil(Observable value); + + /** + * Returns the value of the 'Min' containment reference. + * + *

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

    + * + * @return the value of the 'Min' containment reference. + * @see #setMin(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeadsToPattern_Min() + * @model containment="true" + * @generated + */ + Observable getMin(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getMin Min}' containment reference. + * + * + * @param value the new value of the 'Min' containment reference. + * @see #getMin() + * @generated + */ + void setMin(Observable value); + + /** + * Returns the value of the 'Max' containment reference. + * + *

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

    + * + * @return the value of the 'Max' containment reference. + * @see #setMax(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeadsToPattern_Max() + * @model containment="true" + * @generated + */ + Observable getMax(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern#getMax Max}' containment reference. + * + * + * @param value the new value of the 'Max' containment reference. + * @see #getMax() + * @generated + */ + void setMax(Observable value); + +} // LeadsToPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LeaveStateEvent.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LeaveStateEvent.java new file mode 100644 index 0000000..6e2ed90 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LeaveStateEvent.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Leave State Event'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLeaveStateEvent() + * @model + * @generated + */ +public interface LeaveStateEvent extends StateEvent +{ +} // LeaveStateEvent diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LiteralExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LiteralExpression.java new file mode 100644 index 0000000..890601b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LiteralExpression.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Literal Expression'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLiteralExpression() + * @model + * @generated + */ +public interface LiteralExpression extends ValueExpression, Expression +{ +} // LiteralExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LocalPortsDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LocalPortsDeclaration.java new file mode 100644 index 0000000..c8e25da --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LocalPortsDeclaration.java @@ -0,0 +1,135 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Local Ports Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getPorts Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLocalPortsDeclaration() + * @model + * @generated + */ +public interface LocalPortsDeclaration extends EObject +{ + /** + * Returns the value of the 'Ports' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.PortDeclaration}. + * + *

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

    + * + * @return the value of the 'Ports' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLocalPortsDeclaration_Ports() + * @model containment="true" + * @generated + */ + EList getPorts(); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(ChannelType) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLocalPortsDeclaration_Type() + * @model containment="true" + * @generated + */ + ChannelType getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(ChannelType value); + + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(LowerBound) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLocalPortsDeclaration_Left() + * @model containment="true" + * @generated + */ + LowerBound getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(LowerBound value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(UpperBound) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLocalPortsDeclaration_Right() + * @model containment="true" + * @generated + */ + UpperBound getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(UpperBound value); + +} // LocalPortsDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LoopStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LoopStatement.java new file mode 100644 index 0000000..24ba3ce --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LoopStatement.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Loop Statement'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLoopStatement() + * @model + * @generated + */ +public interface LoopStatement extends Statement +{ +} // LoopStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LowerBound.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LowerBound.java new file mode 100644 index 0000000..81fc53a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/LowerBound.java @@ -0,0 +1,89 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Lower Bound'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.LowerBound#isLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.LowerBound#isRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLowerBound() + * @model + * @generated + */ +public interface LowerBound extends EObject +{ + /** + * Returns the value of the 'Left' attribute. + * + *

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

    + * + * @return the value of the 'Left' attribute. + * @see #setLeft(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLowerBound_Left() + * @model + * @generated + */ + boolean isLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LowerBound#isLeft Left}' attribute. + * + * + * @param value the new value of the 'Left' attribute. + * @see #isLeft() + * @generated + */ + void setLeft(boolean value); + + /** + * Returns the value of the 'Right' attribute. + * + *

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

    + * + * @return the value of the 'Right' attribute. + * @see #setRight(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getLowerBound_Right() + * @model + * @generated + */ + boolean isRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.LowerBound#isRight Right}' attribute. + * + * + * @param value the new value of the 'Right' attribute. + * @see #isRight() + * @generated + */ + void setRight(boolean value); + +} // LowerBound diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Model.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Model.java new file mode 100644 index 0000000..f38611f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Model.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Model'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Model#getImports Imports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Model#getDeclarations Declarations}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Model#getRequirements Requirements}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Model#getRoot Root}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getModel() + * @model + * @generated + */ +public interface Model extends EObject +{ + /** + * Returns the value of the 'Imports' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration}. + * + *

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

    + * + * @return the value of the 'Imports' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getModel_Imports() + * @model containment="true" + * @generated + */ + EList getImports(); + + /** + * Returns the value of the 'Declarations' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Declaration}. + * + *

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

    + * + * @return the value of the 'Declarations' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getModel_Declarations() + * @model containment="true" + * @generated + */ + EList getDeclarations(); + + /** + * Returns the value of the 'Requirements' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Requirement}. + * + *

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

    + * + * @return the value of the 'Requirements' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getModel_Requirements() + * @model containment="true" + * @generated + */ + EList getRequirements(); + + /** + * Returns the value of the 'Root' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Root}. + * + *

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

    + * + * @return the value of the 'Root' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getModel_Root() + * @model containment="true" + * @generated + */ + EList getRoot(); + +} // Model diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Modulo.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Modulo.java new file mode 100644 index 0000000..ef8deb5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Modulo.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Modulo'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Modulo#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Modulo#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getModulo() + * @model + * @generated + */ +public interface Modulo extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getModulo_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Modulo#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getModulo_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Modulo#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Modulo diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/MortalPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/MortalPattern.java new file mode 100644 index 0000000..34d4381 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/MortalPattern.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Mortal Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.MortalPattern#getSubject Subject}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getMortalPattern() + * @model + * @generated + */ +public interface MortalPattern extends PatternProperty +{ + /** + * Returns the value of the 'Subject' containment reference. + * + *

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

    + * + * @return the value of the 'Subject' containment reference. + * @see #setSubject(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getMortalPattern_Subject() + * @model containment="true" + * @generated + */ + Observable getSubject(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.MortalPattern#getSubject Subject}' containment reference. + * + * + * @param value the new value of the 'Subject' containment reference. + * @see #getSubject() + * @generated + */ + void setSubject(Observable value); + +} // MortalPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Multiplication.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Multiplication.java new file mode 100644 index 0000000..b94f0c8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Multiplication.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Multiplication'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Multiplication#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Multiplication#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getMultiplication() + * @model + * @generated + */ +public interface Multiplication extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getMultiplication_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Multiplication#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getMultiplication_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Multiplication#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Multiplication diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NamedElement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NamedElement.java new file mode 100644 index 0000000..fcb9db9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NamedElement.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Named Element'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.NamedElement#getName Name}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNamedElement() + * @model + * @generated + */ +public interface NamedElement extends EObject +{ + /** + * Returns the value of the 'Name' attribute. + * + *

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

    + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNamedElement_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.NamedElement#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // NamedElement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NamedItem.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NamedItem.java new file mode 100644 index 0000000..be844af --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NamedItem.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Named Item'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.NamedItem#getDeclaration Declaration}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNamedItem() + * @model + * @generated + */ +public interface NamedItem extends PathItem +{ + /** + * Returns the value of the 'Declaration' reference. + * + *

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

    + * + * @return the value of the 'Declaration' reference. + * @see #setDeclaration(PathDeclarationUse) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNamedItem_Declaration() + * @model + * @generated + */ + PathDeclarationUse getDeclaration(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.NamedItem#getDeclaration Declaration}' reference. + * + * + * @param value the new value of the 'Declaration' reference. + * @see #getDeclaration() + * @generated + */ + void setDeclaration(PathDeclarationUse value); + +} // NamedItem diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalItem.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalItem.java new file mode 100644 index 0000000..331ec82 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalItem.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Natural Item'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.NaturalItem#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalItem() + * @model + * @generated + */ +public interface NaturalItem extends PathItem +{ + /** + * Returns the value of the 'Value' attribute. + * + *

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

    + * + * @return the value of the 'Value' attribute. + * @see #setValue(int) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalItem_Value() + * @model + * @generated + */ + int getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.NaturalItem#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(int value); + +} // NaturalItem diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalLiteral.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalLiteral.java new file mode 100644 index 0000000..f6c103a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalLiteral.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Natural Literal'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.NaturalLiteral#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalLiteral() + * @model + * @generated + */ +public interface NaturalLiteral extends LiteralExpression +{ + /** + * Returns the value of the 'Value' attribute. + * + *

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

    + * + * @return the value of the 'Value' attribute. + * @see #setValue(int) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalLiteral_Value() + * @model + * @generated + */ + int getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.NaturalLiteral#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(int value); + +} // NaturalLiteral diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalLowerBound.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalLowerBound.java new file mode 100644 index 0000000..2a054aa --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalLowerBound.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Natural Lower Bound'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.NaturalLowerBound#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalLowerBound() + * @model + * @generated + */ +public interface NaturalLowerBound extends LowerBound +{ + /** + * Returns the value of the 'Value' attribute. + * + *

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

    + * + * @return the value of the 'Value' attribute. + * @see #setValue(int) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalLowerBound_Value() + * @model + * @generated + */ + int getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.NaturalLowerBound#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(int value); + +} // NaturalLowerBound diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalType.java new file mode 100644 index 0000000..c2a81a6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalType.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Natural Type'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalType() + * @model + * @generated + */ +public interface NaturalType extends BasicType +{ +} // NaturalType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalUpperBound.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalUpperBound.java new file mode 100644 index 0000000..276c39d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NaturalUpperBound.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Natural Upper Bound'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#getValue Value}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#isLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#isRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalUpperBound() + * @model + * @generated + */ +public interface NaturalUpperBound extends UpperBound +{ + /** + * Returns the value of the 'Value' attribute. + * + *

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

    + * + * @return the value of the 'Value' attribute. + * @see #setValue(int) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalUpperBound_Value() + * @model + * @generated + */ + int getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(int value); + + /** + * Returns the value of the 'Left' attribute. + * + *

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

    + * + * @return the value of the 'Left' attribute. + * @see #setLeft(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalUpperBound_Left() + * @model + * @generated + */ + boolean isLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#isLeft Left}' attribute. + * + * + * @param value the new value of the 'Left' attribute. + * @see #isLeft() + * @generated + */ + void setLeft(boolean value); + + /** + * Returns the value of the 'Right' attribute. + * + *

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

    + * + * @return the value of the 'Right' attribute. + * @see #setRight(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNaturalUpperBound_Right() + * @model + * @generated + */ + boolean isRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound#isRight Right}' attribute. + * + * + * @param value the new value of the 'Right' attribute. + * @see #isRight() + * @generated + */ + void setRight(boolean value); + +} // NaturalUpperBound diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NullStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NullStatement.java new file mode 100644 index 0000000..12d3165 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/NullStatement.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Null Statement'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getNullStatement() + * @model + * @generated + */ +public interface NullStatement extends Statement +{ +} // NullStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Observable.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Observable.java new file mode 100644 index 0000000..d3b7541 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Observable.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Observable'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservable() + * @model + * @generated + */ +public interface Observable extends SequencePattern +{ +} // Observable diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableConjunction.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableConjunction.java new file mode 100644 index 0000000..bbf5266 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableConjunction.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Observable Conjunction'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableConjunction() + * @model + * @generated + */ +public interface ObservableConjunction extends Observable +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableConjunction_Left() + * @model containment="true" + * @generated + */ + Observable getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Observable value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableConjunction_Right() + * @model containment="true" + * @generated + */ + Observable getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Observable value); + +} // ObservableConjunction diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableDisjunction.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableDisjunction.java new file mode 100644 index 0000000..70223de --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableDisjunction.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Observable Disjunction'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableDisjunction() + * @model + * @generated + */ +public interface ObservableDisjunction extends Observable +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableDisjunction_Left() + * @model containment="true" + * @generated + */ + Observable getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Observable value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableDisjunction_Right() + * @model containment="true" + * @generated + */ + Observable getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Observable value); + +} // ObservableDisjunction diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableEvent.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableEvent.java new file mode 100644 index 0000000..5e15ad7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableEvent.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Observable Event'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableEvent() + * @model + * @generated + */ +public interface ObservableEvent extends LTLProperty, Observable +{ +} // ObservableEvent diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableImplication.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableImplication.java new file mode 100644 index 0000000..aa9f690 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableImplication.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Observable Implication'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ObservableImplication#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ObservableImplication#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableImplication() + * @model + * @generated + */ +public interface ObservableImplication extends Observable +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableImplication_Left() + * @model containment="true" + * @generated + */ + Observable getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ObservableImplication#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Observable value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableImplication_Right() + * @model containment="true" + * @generated + */ + Observable getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ObservableImplication#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Observable value); + +} // ObservableImplication diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableNegation.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableNegation.java new file mode 100644 index 0000000..357f72a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ObservableNegation.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Observable Negation'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ObservableNegation#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableNegation() + * @model + * @generated + */ +public interface ObservableNegation extends Observable +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getObservableNegation_Child() + * @model containment="true" + * @generated + */ + Observable getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ObservableNegation#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Observable value); + +} // ObservableNegation diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/OnStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/OnStatement.java new file mode 100644 index 0000000..58d92cf --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/OnStatement.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'On Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.OnStatement#getCondition Condition}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getOnStatement() + * @model + * @generated + */ +public interface OnStatement extends Statement +{ + /** + * Returns the value of the 'Condition' containment reference. + * + *

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

    + * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getOnStatement_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.OnStatement#getCondition Condition}' containment reference. + * + * + * @param value the new value of the 'Condition' containment reference. + * @see #getCondition() + * @generated + */ + void setCondition(Expression value); + +} // OnStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParameterDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParameterDeclaration.java new file mode 100644 index 0000000..17bf1a8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParameterDeclaration.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Parameter Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#isReference Reference}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#isArray Array}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#getSize Size}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParameterDeclaration() + * @model + * @generated + */ +public interface ParameterDeclaration extends NamedElement, ExpressionDeclarationUse, ReferenceDeclarationUse, PatternDeclarationUse +{ + /** + * Returns the value of the 'Reference' attribute. + * + *

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

    + * + * @return the value of the 'Reference' attribute. + * @see #setReference(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParameterDeclaration_Reference() + * @model + * @generated + */ + boolean isReference(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#isReference Reference}' attribute. + * + * + * @param value the new value of the 'Reference' attribute. + * @see #isReference() + * @generated + */ + void setReference(boolean value); + + /** + * Returns the value of the 'Array' attribute. + * + *

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

    + * + * @return the value of the 'Array' attribute. + * @see #setArray(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParameterDeclaration_Array() + * @model + * @generated + */ + boolean isArray(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#isArray Array}' attribute. + * + * + * @param value the new value of the 'Array' attribute. + * @see #isArray() + * @generated + */ + void setArray(boolean value); + + /** + * Returns the value of the 'Size' containment reference. + * + *

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

    + * + * @return the value of the 'Size' containment reference. + * @see #setSize(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParameterDeclaration_Size() + * @model containment="true" + * @generated + */ + Expression getSize(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration#getSize Size}' containment reference. + * + * + * @param value the new value of the 'Size' containment reference. + * @see #getSize() + * @generated + */ + void setSize(Expression value); + +} // ParameterDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParameterizedDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParameterizedDeclaration.java new file mode 100644 index 0000000..efd7a67 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParameterizedDeclaration.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Parameterized Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration#getParameters Parameters}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration#getVariables Variables}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParameterizedDeclaration() + * @model + * @generated + */ +public interface ParameterizedDeclaration extends Declaration +{ + /** + * Returns the value of the 'Parameters' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration}. + * + *

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

    + * + * @return the value of the 'Parameters' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParameterizedDeclaration_Parameters() + * @model containment="true" + * @generated + */ + EList getParameters(); + + /** + * Returns the value of the 'Variables' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration}. + * + *

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

    + * + * @return the value of the 'Variables' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParameterizedDeclaration_Variables() + * @model containment="true" + * @generated + */ + EList getVariables(); + +} // ParameterizedDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParametersDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParametersDeclaration.java new file mode 100644 index 0000000..5bb2eb0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ParametersDeclaration.java @@ -0,0 +1,135 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Parameters Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#getParameters Parameters}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#isRead Read}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#isWrite Write}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#getType Type}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParametersDeclaration() + * @model + * @generated + */ +public interface ParametersDeclaration extends EObject +{ + /** + * Returns the value of the 'Parameters' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration}. + * + *

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

    + * + * @return the value of the 'Parameters' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParametersDeclaration_Parameters() + * @model containment="true" + * @generated + */ + EList getParameters(); + + /** + * Returns the value of the 'Read' attribute. + * + *

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

    + * + * @return the value of the 'Read' attribute. + * @see #setRead(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParametersDeclaration_Read() + * @model + * @generated + */ + boolean isRead(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#isRead Read}' attribute. + * + * + * @param value the new value of the 'Read' attribute. + * @see #isRead() + * @generated + */ + void setRead(boolean value); + + /** + * Returns the value of the 'Write' attribute. + * + *

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

    + * + * @return the value of the 'Write' attribute. + * @see #setWrite(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParametersDeclaration_Write() + * @model + * @generated + */ + boolean isWrite(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#isWrite Write}' attribute. + * + * + * @param value the new value of the 'Write' attribute. + * @see #isWrite() + * @generated + */ + void setWrite(boolean value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(Type) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getParametersDeclaration_Type() + * @model containment="true" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(Type value); + +} // ParametersDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Path.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Path.java new file mode 100644 index 0000000..1d08257 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Path.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Path'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Path#getItems Items}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPath() + * @model + * @generated + */ +public interface Path extends EObject +{ + /** + * Returns the value of the 'Items' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.PathItem}. + * + *

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

    + * + * @return the value of the 'Items' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPath_Items() + * @model containment="true" + * @generated + */ + EList getItems(); + +} // Path diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathDeclarationUse.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathDeclarationUse.java new file mode 100644 index 0000000..e757ecd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathDeclarationUse.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Path Declaration Use'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPathDeclarationUse() + * @model + * @generated + */ +public interface PathDeclarationUse extends EObject +{ +} // PathDeclarationUse diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathEvent.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathEvent.java new file mode 100644 index 0000000..6def5da --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathEvent.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Path Event'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PathEvent#getPath Path}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PathEvent#getItem Item}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPathEvent() + * @model + * @generated + */ +public interface PathEvent extends ObservableEvent +{ + /** + * Returns the value of the 'Path' containment reference. + * + *

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

    + * + * @return the value of the 'Path' containment reference. + * @see #setPath(Path) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPathEvent_Path() + * @model containment="true" + * @generated + */ + Path getPath(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PathEvent#getPath Path}' containment reference. + * + * + * @param value the new value of the 'Path' containment reference. + * @see #getPath() + * @generated + */ + void setPath(Path value); + + /** + * Returns the value of the 'Item' containment reference. + * + *

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

    + * + * @return the value of the 'Item' containment reference. + * @see #setItem(Subject) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPathEvent_Item() + * @model containment="true" + * @generated + */ + Subject getItem(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PathEvent#getItem Item}' containment reference. + * + * + * @param value the new value of the 'Item' containment reference. + * @see #getItem() + * @generated + */ + void setItem(Subject value); + +} // PathEvent diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathItem.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathItem.java new file mode 100644 index 0000000..bb9ffc2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PathItem.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Path Item'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPathItem() + * @model + * @generated + */ +public interface PathItem extends EObject +{ +} // PathItem diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Pattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Pattern.java new file mode 100644 index 0000000..04dfb22 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Pattern.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Pattern'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPattern() + * @model + * @generated + */ +public interface Pattern extends PatternStatement +{ +} // Pattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternDeclarationUse.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternDeclarationUse.java new file mode 100644 index 0000000..094161f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternDeclarationUse.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Pattern Declaration Use'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPatternDeclarationUse() + * @model + * @generated + */ +public interface PatternDeclarationUse extends EObject +{ +} // PatternDeclarationUse diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternProperty.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternProperty.java new file mode 100644 index 0000000..b952adb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternProperty.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Pattern Property'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPatternProperty() + * @model + * @generated + */ +public interface PatternProperty extends Property +{ +} // PatternProperty diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternStatement.java new file mode 100644 index 0000000..9a1b93b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PatternStatement.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Pattern Statement'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPatternStatement() + * @model + * @generated + */ +public interface PatternStatement extends Statement +{ +} // PatternStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortDeclaration.java new file mode 100644 index 0000000..7a508c7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortDeclaration.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Port Declaration'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPortDeclaration() + * @model + * @generated + */ +public interface PortDeclaration extends NamedElement, ExpressionDeclarationUse, PatternDeclarationUse +{ +} // PortDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortSet.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortSet.java new file mode 100644 index 0000000..432cb47 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortSet.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Port Set'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PortSet#isAllPorts All Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PortSet#getPorts Ports}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPortSet() + * @model + * @generated + */ +public interface PortSet extends EObject +{ + /** + * Returns the value of the 'All Ports' attribute. + * + *

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

    + * + * @return the value of the 'All Ports' attribute. + * @see #setAllPorts(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPortSet_AllPorts() + * @model + * @generated + */ + boolean isAllPorts(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PortSet#isAllPorts All Ports}' attribute. + * + * + * @param value the new value of the 'All Ports' attribute. + * @see #isAllPorts() + * @generated + */ + void setAllPorts(boolean value); + + /** + * Returns the value of the 'Ports' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Expression}. + * + *

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

    + * + * @return the value of the 'Ports' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPortSet_Ports() + * @model containment="true" + * @generated + */ + EList getPorts(); + +} // PortSet diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortsDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortsDeclaration.java new file mode 100644 index 0000000..51c3dc6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PortsDeclaration.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Ports Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration#getPorts Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration#getType Type}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPortsDeclaration() + * @model + * @generated + */ +public interface PortsDeclaration extends EObject +{ + /** + * Returns the value of the 'Ports' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.PortDeclaration}. + * + *

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

    + * + * @return the value of the 'Ports' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPortsDeclaration_Ports() + * @model containment="true" + * @generated + */ + EList getPorts(); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(ChannelType) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPortsDeclaration_Type() + * @model containment="true" + * @generated + */ + ChannelType getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(ChannelType value); + +} // PortsDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PrecedesPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PrecedesPattern.java new file mode 100644 index 0000000..79b7e3c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PrecedesPattern.java @@ -0,0 +1,223 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Precedes Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getSubject Subject}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getFollower Follower}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getBefore Before}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getAfter After}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getUntil Until}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getMin Min}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getMax Max}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPrecedesPattern() + * @model + * @generated + */ +public interface PrecedesPattern extends SequencePattern +{ + /** + * Returns the value of the 'Subject' containment reference. + * + *

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

    + * + * @return the value of the 'Subject' containment reference. + * @see #setSubject(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPrecedesPattern_Subject() + * @model containment="true" + * @generated + */ + Observable getSubject(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getSubject Subject}' containment reference. + * + * + * @param value the new value of the 'Subject' containment reference. + * @see #getSubject() + * @generated + */ + void setSubject(Observable value); + + /** + * Returns the value of the 'Follower' containment reference. + * + *

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

    + * + * @return the value of the 'Follower' containment reference. + * @see #setFollower(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPrecedesPattern_Follower() + * @model containment="true" + * @generated + */ + Observable getFollower(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getFollower Follower}' containment reference. + * + * + * @param value the new value of the 'Follower' containment reference. + * @see #getFollower() + * @generated + */ + void setFollower(Observable value); + + /** + * Returns the value of the 'Before' containment reference. + * + *

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

    + * + * @return the value of the 'Before' containment reference. + * @see #setBefore(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPrecedesPattern_Before() + * @model containment="true" + * @generated + */ + Observable getBefore(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getBefore Before}' containment reference. + * + * + * @param value the new value of the 'Before' containment reference. + * @see #getBefore() + * @generated + */ + void setBefore(Observable value); + + /** + * Returns the value of the 'After' containment reference. + * + *

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

    + * + * @return the value of the 'After' containment reference. + * @see #setAfter(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPrecedesPattern_After() + * @model containment="true" + * @generated + */ + Observable getAfter(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getAfter After}' containment reference. + * + * + * @param value the new value of the 'After' containment reference. + * @see #getAfter() + * @generated + */ + void setAfter(Observable value); + + /** + * Returns the value of the 'Until' containment reference. + * + *

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

    + * + * @return the value of the 'Until' containment reference. + * @see #setUntil(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPrecedesPattern_Until() + * @model containment="true" + * @generated + */ + Observable getUntil(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getUntil Until}' containment reference. + * + * + * @param value the new value of the 'Until' containment reference. + * @see #getUntil() + * @generated + */ + void setUntil(Observable value); + + /** + * Returns the value of the 'Min' containment reference. + * + *

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

    + * + * @return the value of the 'Min' containment reference. + * @see #setMin(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPrecedesPattern_Min() + * @model containment="true" + * @generated + */ + Observable getMin(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getMin Min}' containment reference. + * + * + * @param value the new value of the 'Min' containment reference. + * @see #getMin() + * @generated + */ + void setMin(Observable value); + + /** + * Returns the value of the 'Max' containment reference. + * + *

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

    + * + * @return the value of the 'Max' containment reference. + * @see #setMax(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPrecedesPattern_Max() + * @model containment="true" + * @generated + */ + Observable getMax(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern#getMax Max}' containment reference. + * + * + * @param value the new value of the 'Max' containment reference. + * @see #getMax() + * @generated + */ + void setMax(Observable value); + +} // PrecedesPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PresencePattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PresencePattern.java new file mode 100644 index 0000000..f147683 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PresencePattern.java @@ -0,0 +1,277 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Presence Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getSubject Subject}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getLasting Lasting}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getAfter After}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getLower Lower}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getUpper Upper}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getUntil Until}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getBefore Before}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getMin Min}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getMax Max}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPresencePattern() + * @model + * @generated + */ +public interface PresencePattern extends PatternProperty +{ + /** + * Returns the value of the 'Subject' containment reference. + * + *

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

    + * + * @return the value of the 'Subject' containment reference. + * @see #setSubject(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPresencePattern_Subject() + * @model containment="true" + * @generated + */ + Observable getSubject(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getSubject Subject}' containment reference. + * + * + * @param value the new value of the 'Subject' containment reference. + * @see #getSubject() + * @generated + */ + void setSubject(Observable value); + + /** + * Returns the value of the 'Lasting' attribute. + * + *

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

    + * + * @return the value of the 'Lasting' attribute. + * @see #setLasting(int) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPresencePattern_Lasting() + * @model + * @generated + */ + int getLasting(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getLasting Lasting}' attribute. + * + * + * @param value the new value of the 'Lasting' attribute. + * @see #getLasting() + * @generated + */ + void setLasting(int value); + + /** + * Returns the value of the 'After' containment reference. + * + *

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

    + * + * @return the value of the 'After' containment reference. + * @see #setAfter(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPresencePattern_After() + * @model containment="true" + * @generated + */ + Observable getAfter(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getAfter After}' containment reference. + * + * + * @param value the new value of the 'After' containment reference. + * @see #getAfter() + * @generated + */ + void setAfter(Observable value); + + /** + * Returns the value of the 'Lower' containment reference. + * + *

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

    + * + * @return the value of the 'Lower' containment reference. + * @see #setLower(LowerBound) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPresencePattern_Lower() + * @model containment="true" + * @generated + */ + LowerBound getLower(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getLower Lower}' containment reference. + * + * + * @param value the new value of the 'Lower' containment reference. + * @see #getLower() + * @generated + */ + void setLower(LowerBound value); + + /** + * Returns the value of the 'Upper' containment reference. + * + *

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

    + * + * @return the value of the 'Upper' containment reference. + * @see #setUpper(UpperBound) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPresencePattern_Upper() + * @model containment="true" + * @generated + */ + UpperBound getUpper(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getUpper Upper}' containment reference. + * + * + * @param value the new value of the 'Upper' containment reference. + * @see #getUpper() + * @generated + */ + void setUpper(UpperBound value); + + /** + * Returns the value of the 'Until' containment reference. + * + *

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

    + * + * @return the value of the 'Until' containment reference. + * @see #setUntil(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPresencePattern_Until() + * @model containment="true" + * @generated + */ + Observable getUntil(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getUntil Until}' containment reference. + * + * + * @param value the new value of the 'Until' containment reference. + * @see #getUntil() + * @generated + */ + void setUntil(Observable value); + + /** + * Returns the value of the 'Before' containment reference. + * + *

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

    + * + * @return the value of the 'Before' containment reference. + * @see #setBefore(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPresencePattern_Before() + * @model containment="true" + * @generated + */ + Observable getBefore(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getBefore Before}' containment reference. + * + * + * @param value the new value of the 'Before' containment reference. + * @see #getBefore() + * @generated + */ + void setBefore(Observable value); + + /** + * Returns the value of the 'Min' containment reference. + * + *

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

    + * + * @return the value of the 'Min' containment reference. + * @see #setMin(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPresencePattern_Min() + * @model containment="true" + * @generated + */ + Observable getMin(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getMin Min}' containment reference. + * + * + * @param value the new value of the 'Min' containment reference. + * @see #getMin() + * @generated + */ + void setMin(Observable value); + + /** + * Returns the value of the 'Max' containment reference. + * + *

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

    + * + * @return the value of the 'Max' containment reference. + * @see #setMax(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPresencePattern_Max() + * @model containment="true" + * @generated + */ + Observable getMax(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern#getMax Max}' containment reference. + * + * + * @param value the new value of the 'Max' containment reference. + * @see #getMax() + * @generated + */ + void setMax(Observable value); + +} // PresencePattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PriorityDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PriorityDeclaration.java new file mode 100644 index 0000000..6086118 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PriorityDeclaration.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Priority Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration#getGroups Groups}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPriorityDeclaration() + * @model + * @generated + */ +public interface PriorityDeclaration extends EObject +{ + /** + * Returns the value of the 'Groups' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.PriorityGroup}. + * + *

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

    + * + * @return the value of the 'Groups' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPriorityDeclaration_Groups() + * @model containment="true" + * @generated + */ + EList getGroups(); + +} // PriorityDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PriorityGroup.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PriorityGroup.java new file mode 100644 index 0000000..67b449d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PriorityGroup.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Priority Group'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PriorityGroup#getPorts Ports}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPriorityGroup() + * @model + * @generated + */ +public interface PriorityGroup extends EObject +{ + /** + * Returns the value of the 'Ports' reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.PortDeclaration}. + * + *

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

    + * + * @return the value of the 'Ports' reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPriorityGroup_Ports() + * @model + * @generated + */ + EList getPorts(); + +} // PriorityGroup diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ProcessDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ProcessDeclaration.java new file mode 100644 index 0000000..32a0380 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ProcessDeclaration.java @@ -0,0 +1,147 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Process Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getPorts Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getLocalPorts Local Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getPriorities Priorities}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getStates States}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getPrelude Prelude}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getTransitions Transitions}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProcessDeclaration() + * @model + * @generated + */ +public interface ProcessDeclaration extends RootDeclaration, PathDeclarationUse, ParameterizedDeclaration +{ + /** + * Returns the value of the 'Ports' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration}. + * + *

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

    + * + * @return the value of the 'Ports' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProcessDeclaration_Ports() + * @model containment="true" + * @generated + */ + EList getPorts(); + + /** + * Returns the value of the 'Local Ports' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration}. + * + *

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

    + * + * @return the value of the 'Local Ports' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProcessDeclaration_LocalPorts() + * @model containment="true" + * @generated + */ + EList getLocalPorts(); + + /** + * Returns the value of the 'Priorities' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration}. + * + *

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

    + * + * @return the value of the 'Priorities' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProcessDeclaration_Priorities() + * @model containment="true" + * @generated + */ + EList getPriorities(); + + /** + * Returns the value of the 'States' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.StateDeclaration}. + * + *

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

    + * + * @return the value of the 'States' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProcessDeclaration_States() + * @model containment="true" + * @generated + */ + EList getStates(); + + /** + * Returns the value of the 'Prelude' containment reference. + * + *

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

    + * + * @return the value of the 'Prelude' containment reference. + * @see #setPrelude(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProcessDeclaration_Prelude() + * @model containment="true" + * @generated + */ + Statement getPrelude(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration#getPrelude Prelude}' containment reference. + * + * + * @param value the new value of the 'Prelude' containment reference. + * @see #getPrelude() + * @generated + */ + void setPrelude(Statement value); + + /** + * Returns the value of the 'Transitions' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Transition}. + * + *

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

    + * + * @return the value of the 'Transitions' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProcessDeclaration_Transitions() + * @model containment="true" + * @generated + */ + EList getTransitions(); + +} // ProcessDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Projection.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Projection.java new file mode 100644 index 0000000..01a0de7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Projection.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Projection'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Projection#getChannel Channel}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Projection#getField Field}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProjection() + * @model + * @generated + */ +public interface Projection extends Expression +{ + /** + * Returns the value of the 'Channel' containment reference. + * + *

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

    + * + * @return the value of the 'Channel' containment reference. + * @see #setChannel(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProjection_Channel() + * @model containment="true" + * @generated + */ + Expression getChannel(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Projection#getChannel Channel}' containment reference. + * + * + * @param value the new value of the 'Channel' containment reference. + * @see #getChannel() + * @generated + */ + void setChannel(Expression value); + + /** + * Returns the value of the 'Field' containment reference. + * + *

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

    + * + * @return the value of the 'Field' containment reference. + * @see #setField(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProjection_Field() + * @model containment="true" + * @generated + */ + Expression getField(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Projection#getField Field}' containment reference. + * + * + * @param value the new value of the 'Field' containment reference. + * @see #getField() + * @generated + */ + void setField(Expression value); + +} // Projection diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Property.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Property.java new file mode 100644 index 0000000..b96088a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Property.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Property'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getProperty() + * @model + * @generated + */ +public interface Property extends EObject +{ +} // Property diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyConjunction.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyConjunction.java new file mode 100644 index 0000000..6e6ad95 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyConjunction.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Property Conjunction'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyConjunction() + * @model + * @generated + */ +public interface PropertyConjunction extends Property +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Property) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyConjunction_Left() + * @model containment="true" + * @generated + */ + Property getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Property value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Property) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyConjunction_Right() + * @model containment="true" + * @generated + */ + Property getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Property value); + +} // PropertyConjunction diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDeclaration.java new file mode 100644 index 0000000..a9abd32 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDeclaration.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Property Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PropertyDeclaration#getProperty Property}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyDeclaration() + * @model + * @generated + */ +public interface PropertyDeclaration extends PropertyDeclarationUse, Declaration +{ + /** + * Returns the value of the 'Property' containment reference. + * + *

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

    + * + * @return the value of the 'Property' containment reference. + * @see #setProperty(Property) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyDeclaration_Property() + * @model containment="true" + * @generated + */ + Property getProperty(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PropertyDeclaration#getProperty Property}' containment reference. + * + * + * @param value the new value of the 'Property' containment reference. + * @see #getProperty() + * @generated + */ + void setProperty(Property value); + +} // PropertyDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDeclarationUse.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDeclarationUse.java new file mode 100644 index 0000000..5f29e40 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDeclarationUse.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Property Declaration Use'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyDeclarationUse() + * @model + * @generated + */ +public interface PropertyDeclarationUse extends EObject +{ +} // PropertyDeclarationUse diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDisjunction.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDisjunction.java new file mode 100644 index 0000000..d234e58 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyDisjunction.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Property Disjunction'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyDisjunction() + * @model + * @generated + */ +public interface PropertyDisjunction extends Property +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Property) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyDisjunction_Left() + * @model containment="true" + * @generated + */ + Property getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Property value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Property) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyDisjunction_Right() + * @model containment="true" + * @generated + */ + Property getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Property value); + +} // PropertyDisjunction diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyImplication.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyImplication.java new file mode 100644 index 0000000..dcd10e0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyImplication.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Property Implication'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PropertyImplication#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.PropertyImplication#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyImplication() + * @model + * @generated + */ +public interface PropertyImplication extends Property +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Property) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyImplication_Left() + * @model containment="true" + * @generated + */ + Property getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PropertyImplication#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Property value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Property) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyImplication_Right() + * @model containment="true" + * @generated + */ + Property getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PropertyImplication#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Property value); + +} // PropertyImplication diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyNegation.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyNegation.java new file mode 100644 index 0000000..63a6ed2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/PropertyNegation.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Property Negation'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.PropertyNegation#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyNegation() + * @model + * @generated + */ +public interface PropertyNegation extends Property +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Property) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getPropertyNegation_Child() + * @model containment="true" + * @generated + */ + Property getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.PropertyNegation#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Property value); + +} // PropertyNegation diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/QueueExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/QueueExpression.java new file mode 100644 index 0000000..02253c4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/QueueExpression.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Queue Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.QueueExpression#getValues Values}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getQueueExpression() + * @model + * @generated + */ +public interface QueueExpression extends ValueExpression, Expression +{ + /** + * Returns the value of the 'Values' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Expression}. + * + *

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

    + * + * @return the value of the 'Values' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getQueueExpression_Values() + * @model containment="true" + * @generated + */ + EList getValues(); + +} // QueueExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/QueueType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/QueueType.java new file mode 100644 index 0000000..546326b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/QueueType.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Queue Type'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.QueueType#getSize Size}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.QueueType#getType Type}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getQueueType() + * @model + * @generated + */ +public interface QueueType extends Type +{ + /** + * Returns the value of the 'Size' containment reference. + * + *

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

    + * + * @return the value of the 'Size' containment reference. + * @see #setSize(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getQueueType_Size() + * @model containment="true" + * @generated + */ + Expression getSize(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.QueueType#getSize Size}' containment reference. + * + * + * @param value the new value of the 'Size' containment reference. + * @see #getSize() + * @generated + */ + void setSize(Expression value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(Type) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getQueueType_Type() + * @model containment="true" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.QueueType#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(Type value); + +} // QueueType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RangeType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RangeType.java new file mode 100644 index 0000000..bdd1b4b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RangeType.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Range Type'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.RangeType#getMinimum Minimum}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.RangeType#getMaximum Maximum}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRangeType() + * @model + * @generated + */ +public interface RangeType extends Type +{ + /** + * Returns the value of the 'Minimum' containment reference. + * + *

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

    + * + * @return the value of the 'Minimum' containment reference. + * @see #setMinimum(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRangeType_Minimum() + * @model containment="true" + * @generated + */ + Expression getMinimum(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.RangeType#getMinimum Minimum}' containment reference. + * + * + * @param value the new value of the 'Minimum' containment reference. + * @see #getMinimum() + * @generated + */ + void setMinimum(Expression value); + + /** + * Returns the value of the 'Maximum' containment reference. + * + *

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

    + * + * @return the value of the 'Maximum' containment reference. + * @see #setMaximum(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRangeType_Maximum() + * @model containment="true" + * @generated + */ + Expression getMaximum(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.RangeType#getMaximum Maximum}' containment reference. + * + * + * @param value the new value of the 'Maximum' containment reference. + * @see #getMaximum() + * @generated + */ + void setMaximum(Expression value); + +} // RangeType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReceiveStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReceiveStatement.java new file mode 100644 index 0000000..c3bc2c6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReceiveStatement.java @@ -0,0 +1,106 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Receive Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getPort Port}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getPatterns Patterns}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getExp Exp}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReceiveStatement() + * @model + * @generated + */ +public interface ReceiveStatement extends PatternStatement +{ + /** + * Returns the value of the 'Port' containment reference. + * + *

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

    + * + * @return the value of the 'Port' containment reference. + * @see #setPort(Pattern) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReceiveStatement_Port() + * @model containment="true" + * @generated + */ + Pattern getPort(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getPort Port}' containment reference. + * + * + * @param value the new value of the 'Port' containment reference. + * @see #getPort() + * @generated + */ + void setPort(Pattern value); + + /** + * Returns the value of the 'Patterns' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Pattern}. + * + *

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

    + * + * @return the value of the 'Patterns' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReceiveStatement_Patterns() + * @model containment="true" + * @generated + */ + EList getPatterns(); + + /** + * Returns the value of the 'Exp' containment reference. + * + *

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

    + * + * @return the value of the 'Exp' containment reference. + * @see #setExp(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReceiveStatement_Exp() + * @model containment="true" + * @generated + */ + Expression getExp(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement#getExp Exp}' containment reference. + * + * + * @param value the new value of the 'Exp' containment reference. + * @see #getExp() + * @generated + */ + void setExp(Expression value); + +} // ReceiveStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordAccessExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordAccessExpression.java new file mode 100644 index 0000000..573bee3 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordAccessExpression.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Record Access Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression#getChild Child}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression#getField Field}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordAccessExpression() + * @model + * @generated + */ +public interface RecordAccessExpression extends IdentifierExpression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(IdentifierExpression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordAccessExpression_Child() + * @model containment="true" + * @generated + */ + IdentifierExpression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(IdentifierExpression value); + + /** + * Returns the value of the 'Field' reference. + * + *

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

    + * + * @return the value of the 'Field' reference. + * @see #setField(RecordFieldDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordAccessExpression_Field() + * @model + * @generated + */ + RecordFieldDeclaration getField(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression#getField Field}' reference. + * + * + * @param value the new value of the 'Field' reference. + * @see #getField() + * @generated + */ + void setField(RecordFieldDeclaration value); + +} // RecordAccessExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordAccessPattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordAccessPattern.java new file mode 100644 index 0000000..fd36d0b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordAccessPattern.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Record Access Pattern'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern#getSource Source}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern#getField Field}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordAccessPattern() + * @model + * @generated + */ +public interface RecordAccessPattern extends IdentifierPattern +{ + /** + * Returns the value of the 'Source' containment reference. + * + *

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

    + * + * @return the value of the 'Source' containment reference. + * @see #setSource(IdentifierPattern) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordAccessPattern_Source() + * @model containment="true" + * @generated + */ + IdentifierPattern getSource(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern#getSource Source}' containment reference. + * + * + * @param value the new value of the 'Source' containment reference. + * @see #getSource() + * @generated + */ + void setSource(IdentifierPattern value); + + /** + * Returns the value of the 'Field' reference. + * + *

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

    + * + * @return the value of the 'Field' reference. + * @see #setField(RecordFieldDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordAccessPattern_Field() + * @model + * @generated + */ + RecordFieldDeclaration getField(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern#getField Field}' reference. + * + * + * @param value the new value of the 'Field' reference. + * @see #getField() + * @generated + */ + void setField(RecordFieldDeclaration value); + +} // RecordAccessPattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordExpression.java new file mode 100644 index 0000000..2998ec8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordExpression.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Record Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.RecordExpression#getFields Fields}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordExpression() + * @model + * @generated + */ +public interface RecordExpression extends ValueExpression, Expression +{ + /** + * Returns the value of the 'Fields' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.FieldExpression}. + * + *

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

    + * + * @return the value of the 'Fields' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordExpression_Fields() + * @model containment="true" + * @generated + */ + EList getFields(); + +} // RecordExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFieldDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFieldDeclaration.java new file mode 100644 index 0000000..82aae6b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFieldDeclaration.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Record Field Declaration'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordFieldDeclaration() + * @model + * @generated + */ +public interface RecordFieldDeclaration extends NamedElement, RecordFieldDeclarationUse +{ +} // RecordFieldDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFieldDeclarationUse.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFieldDeclarationUse.java new file mode 100644 index 0000000..40d746b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFieldDeclarationUse.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Record Field Declaration Use'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordFieldDeclarationUse() + * @model + * @generated + */ +public interface RecordFieldDeclarationUse extends EObject +{ +} // RecordFieldDeclarationUse diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFields.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFields.java new file mode 100644 index 0000000..f5c9f41 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordFields.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Record Fields'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.RecordFields#getFields Fields}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.RecordFields#getType Type}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordFields() + * @model + * @generated + */ +public interface RecordFields extends EObject +{ + /** + * Returns the value of the 'Fields' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration}. + * + *

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

    + * + * @return the value of the 'Fields' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordFields_Fields() + * @model containment="true" + * @generated + */ + EList getFields(); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(Type) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordFields_Type() + * @model containment="true" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.RecordFields#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(Type value); + +} // RecordFields diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordType.java new file mode 100644 index 0000000..79dc4c2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RecordType.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Record Type'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.RecordType#getFields Fields}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordType() + * @model + * @generated + */ +public interface RecordType extends Type +{ + /** + * Returns the value of the 'Fields' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.RecordFields}. + * + *

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

    + * + * @return the value of the 'Fields' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRecordType_Fields() + * @model containment="true" + * @generated + */ + EList getFields(); + +} // RecordType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferenceDeclarationUse.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferenceDeclarationUse.java new file mode 100644 index 0000000..14be63d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferenceDeclarationUse.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Reference Declaration Use'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReferenceDeclarationUse() + * @model + * @generated + */ +public interface ReferenceDeclarationUse extends EObject +{ +} // ReferenceDeclarationUse diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferenceExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferenceExpression.java new file mode 100644 index 0000000..5435eba --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferenceExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Reference Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ReferenceExpression#getDeclaration Declaration}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReferenceExpression() + * @model + * @generated + */ +public interface ReferenceExpression extends Expression +{ + /** + * Returns the value of the 'Declaration' reference. + * + *

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

    + * + * @return the value of the 'Declaration' reference. + * @see #setDeclaration(ReferenceDeclarationUse) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReferenceExpression_Declaration() + * @model + * @generated + */ + ReferenceDeclarationUse getDeclaration(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ReferenceExpression#getDeclaration Declaration}' reference. + * + * + * @param value the new value of the 'Declaration' reference. + * @see #getDeclaration() + * @generated + */ + void setDeclaration(ReferenceDeclarationUse value); + +} // ReferenceExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferencedType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferencedType.java new file mode 100644 index 0000000..93b67ee --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReferencedType.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Referenced Type'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ReferencedType#getType Type}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReferencedType() + * @model + * @generated + */ +public interface ReferencedType extends Type +{ + /** + * Returns the value of the 'Type' reference. + * + *

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

    + * + * @return the value of the 'Type' reference. + * @see #setType(TypeDeclarationUse) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReferencedType_Type() + * @model + * @generated + */ + TypeDeclarationUse getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ReferencedType#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(TypeDeclarationUse value); + +} // ReferencedType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Requirement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Requirement.java new file mode 100644 index 0000000..79886ef --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Requirement.java @@ -0,0 +1,116 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Requirement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Requirement#getProperty Property}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Requirement#getPositive Positive}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Requirement#getNegative Negative}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRequirement() + * @model + * @generated + */ +public interface Requirement extends EObject +{ + /** + * Returns the value of the 'Property' reference. + * + *

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

    + * + * @return the value of the 'Property' reference. + * @see #setProperty(PropertyDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRequirement_Property() + * @model + * @generated + */ + PropertyDeclaration getProperty(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Requirement#getProperty Property}' reference. + * + * + * @param value the new value of the 'Property' reference. + * @see #getProperty() + * @generated + */ + void setProperty(PropertyDeclaration value); + + /** + * Returns the value of the 'Positive' attribute. + * + *

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

    + * + * @return the value of the 'Positive' attribute. + * @see #setPositive(String) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRequirement_Positive() + * @model + * @generated + */ + String getPositive(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Requirement#getPositive Positive}' attribute. + * + * + * @param value the new value of the 'Positive' attribute. + * @see #getPositive() + * @generated + */ + void setPositive(String value); + + /** + * Returns the value of the 'Negative' attribute. + * + *

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

    + * + * @return the value of the 'Negative' attribute. + * @see #setNegative(String) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRequirement_Negative() + * @model + * @generated + */ + String getNegative(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Requirement#getNegative Negative}' attribute. + * + * + * @param value the new value of the 'Negative' attribute. + * @see #getNegative() + * @generated + */ + void setNegative(String value); + +} // Requirement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReturnStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReturnStatement.java new file mode 100644 index 0000000..958a0fb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ReturnStatement.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Return Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ReturnStatement#getExpression Expression}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReturnStatement() + * @model + * @generated + */ +public interface ReturnStatement extends Statement +{ + /** + * Returns the value of the 'Expression' containment reference. + * + *

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

    + * + * @return the value of the 'Expression' containment reference. + * @see #setExpression(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getReturnStatement_Expression() + * @model containment="true" + * @generated + */ + Expression getExpression(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ReturnStatement#getExpression Expression}' containment reference. + * + * + * @param value the new value of the 'Expression' containment reference. + * @see #getExpression() + * @generated + */ + void setExpression(Expression value); + +} // ReturnStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Root.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Root.java new file mode 100644 index 0000000..747b42b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Root.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Root'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Root#getDeclaration Declaration}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Root#getObserved Observed}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRoot() + * @model + * @generated + */ +public interface Root extends EObject +{ + /** + * Returns the value of the 'Declaration' reference. + * + *

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

    + * + * @return the value of the 'Declaration' reference. + * @see #setDeclaration(RootDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRoot_Declaration() + * @model + * @generated + */ + RootDeclaration getDeclaration(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Root#getDeclaration Declaration}' reference. + * + * + * @param value the new value of the 'Declaration' reference. + * @see #getDeclaration() + * @generated + */ + void setDeclaration(RootDeclaration value); + + /** + * Returns the value of the 'Observed' reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.RootDeclaration}. + * + *

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

    + * + * @return the value of the 'Observed' reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRoot_Observed() + * @model + * @generated + */ + EList getObserved(); + +} // Root diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RootDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RootDeclaration.java new file mode 100644 index 0000000..55cc92d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/RootDeclaration.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Root Declaration'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getRootDeclaration() + * @model + * @generated + */ +public interface RootDeclaration extends EObject +{ +} // RootDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SelectStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SelectStatement.java new file mode 100644 index 0000000..9ebfc02 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SelectStatement.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Select Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.SelectStatement#getBody Body}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.SelectStatement#getIndex Index}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.SelectStatement#getType Type}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSelectStatement() + * @model + * @generated + */ +public interface SelectStatement extends Statement +{ + /** + * 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(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSelectStatement_Body() + * @model containment="true" + * @generated + */ + Statement getBody(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.SelectStatement#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Statement value); + + /** + * Returns the value of the 'Index' containment reference. + * + *

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

    + * + * @return the value of the 'Index' containment reference. + * @see #setIndex(VariableDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSelectStatement_Index() + * @model containment="true" + * @generated + */ + VariableDeclaration getIndex(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.SelectStatement#getIndex Index}' containment reference. + * + * + * @param value the new value of the 'Index' containment reference. + * @see #getIndex() + * @generated + */ + void setIndex(VariableDeclaration value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(RangeType) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSelectStatement_Type() + * @model containment="true" + * @generated + */ + RangeType getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.SelectStatement#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(RangeType value); + +} // SelectStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SendStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SendStatement.java new file mode 100644 index 0000000..bd96176 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SendStatement.java @@ -0,0 +1,79 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Send Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.SendStatement#getPort Port}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.SendStatement#getValues Values}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSendStatement() + * @model + * @generated + */ +public interface SendStatement extends PatternStatement +{ + /** + * Returns the value of the 'Port' containment reference. + * + *

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

    + * + * @return the value of the 'Port' containment reference. + * @see #setPort(Pattern) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSendStatement_Port() + * @model containment="true" + * @generated + */ + Pattern getPort(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.SendStatement#getPort Port}' containment reference. + * + * + * @param value the new value of the 'Port' containment reference. + * @see #getPort() + * @generated + */ + void setPort(Pattern value); + + /** + * Returns the value of the 'Values' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Expression}. + * + *

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

    + * + * @return the value of the 'Values' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSendStatement_Values() + * @model containment="true" + * @generated + */ + EList getValues(); + +} // SendStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SequencePattern.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SequencePattern.java new file mode 100644 index 0000000..f09092b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/SequencePattern.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Sequence Pattern'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSequencePattern() + * @model + * @generated + */ +public interface SequencePattern extends PatternProperty +{ +} // SequencePattern diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateDeclaration.java new file mode 100644 index 0000000..3a0f672 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateDeclaration.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'State Declaration'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getStateDeclaration() + * @model + * @generated + */ +public interface StateDeclaration extends NamedElement +{ +} // StateDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateEvent.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateEvent.java new file mode 100644 index 0000000..a427ca2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateEvent.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'State Event'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.StateEvent#getSubject Subject}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getStateEvent() + * @model + * @generated + */ +public interface StateEvent extends ObservableEvent +{ + /** + * Returns the value of the 'Subject' containment reference. + * + *

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

    + * + * @return the value of the 'Subject' containment reference. + * @see #setSubject(Observable) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getStateEvent_Subject() + * @model containment="true" + * @generated + */ + Observable getSubject(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.StateEvent#getSubject Subject}' containment reference. + * + * + * @param value the new value of the 'Subject' containment reference. + * @see #getSubject() + * @generated + */ + void setSubject(Observable value); + +} // StateEvent diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateSubject.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateSubject.java new file mode 100644 index 0000000..4df7bdd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StateSubject.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'State Subject'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.StateSubject#getState State}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getStateSubject() + * @model + * @generated + */ +public interface StateSubject extends Subject +{ + /** + * Returns the value of the 'State' reference. + * + *

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

    + * + * @return the value of the 'State' reference. + * @see #setState(StateDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getStateSubject_State() + * @model + * @generated + */ + StateDeclaration getState(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.StateSubject#getState State}' reference. + * + * + * @param value the new value of the 'State' reference. + * @see #getState() + * @generated + */ + void setState(StateDeclaration value); + +} // StateSubject diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Statement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Statement.java new file mode 100644 index 0000000..22b58d8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Statement.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Statement'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getStatement() + * @model + * @generated + */ +public interface Statement extends EObject +{ +} // Statement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StatementChoice.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StatementChoice.java new file mode 100644 index 0000000..2480b94 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StatementChoice.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Statement Choice'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.StatementChoice#getChoices Choices}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getStatementChoice() + * @model + * @generated + */ +public interface StatementChoice extends Statement +{ + /** + * Returns the value of the 'Choices' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Statement}. + * + *

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

    + * + * @return the value of the 'Choices' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getStatementChoice_Choices() + * @model containment="true" + * @generated + */ + EList getChoices(); + +} // StatementChoice diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StatementSequence.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StatementSequence.java new file mode 100644 index 0000000..67aa9c0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/StatementSequence.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Statement Sequence'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.StatementSequence#getStatements Statements}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getStatementSequence() + * @model + * @generated + */ +public interface StatementSequence extends Statement +{ + /** + * Returns the value of the 'Statements' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Statement}. + * + *

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

    + * + * @return the value of the 'Statements' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getStatementSequence_Statements() + * @model containment="true" + * @generated + */ + EList getStatements(); + +} // StatementSequence diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Subject.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Subject.java new file mode 100644 index 0000000..88a5c9e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Subject.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Subject'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSubject() + * @model + * @generated + */ +public interface Subject extends EObject +{ +} // Subject diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Substraction.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Substraction.java new file mode 100644 index 0000000..9e525fa --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Substraction.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Substraction'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Substraction#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Substraction#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSubstraction() + * @model + * @generated + */ +public interface Substraction extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSubstraction_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Substraction#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getSubstraction_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Substraction#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Substraction diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TagSubject.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TagSubject.java new file mode 100644 index 0000000..39f7679 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TagSubject.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Tag Subject'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.TagSubject#getTag Tag}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTagSubject() + * @model + * @generated + */ +public interface TagSubject extends Subject +{ + /** + * Returns the value of the 'Tag' reference. + * + *

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

    + * + * @return the value of the 'Tag' reference. + * @see #setTag(TaggedStatement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTagSubject_Tag() + * @model + * @generated + */ + TaggedStatement getTag(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.TagSubject#getTag Tag}' reference. + * + * + * @param value the new value of the 'Tag' reference. + * @see #getTag() + * @generated + */ + void setTag(TaggedStatement value); + +} // TagSubject diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TaggedStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TaggedStatement.java new file mode 100644 index 0000000..1ef035b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TaggedStatement.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Tagged Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.TaggedStatement#getName Name}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTaggedStatement() + * @model + * @generated + */ +public interface TaggedStatement extends Statement +{ + /** + * Returns the value of the 'Name' attribute. + * + *

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

    + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTaggedStatement_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.TaggedStatement#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // TaggedStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ToStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ToStatement.java new file mode 100644 index 0000000..805045a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ToStatement.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'To Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ToStatement#getState State}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getToStatement() + * @model + * @generated + */ +public interface ToStatement extends Statement +{ + /** + * Returns the value of the 'State' reference. + * + *

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

    + * + * @return the value of the 'State' reference. + * @see #setState(StateDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getToStatement_State() + * @model + * @generated + */ + StateDeclaration getState(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ToStatement#getState State}' reference. + * + * + * @param value the new value of the 'State' reference. + * @see #getState() + * @generated + */ + void setState(StateDeclaration value); + +} // ToStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Transition.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Transition.java new file mode 100644 index 0000000..f16aae2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Transition.java @@ -0,0 +1,89 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Transition'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.Transition#getSource Source}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.Transition#getAction Action}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTransition() + * @model + * @generated + */ +public interface Transition extends EObject +{ + /** + * Returns the value of the 'Source' containment reference. + * + *

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

    + * + * @return the value of the 'Source' containment reference. + * @see #setSource(TransitionSource) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTransition_Source() + * @model containment="true" + * @generated + */ + TransitionSource getSource(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Transition#getSource Source}' containment reference. + * + * + * @param value the new value of the 'Source' containment reference. + * @see #getSource() + * @generated + */ + void setSource(TransitionSource value); + + /** + * Returns the value of the 'Action' containment reference. + * + *

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

    + * + * @return the value of the 'Action' containment reference. + * @see #setAction(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTransition_Action() + * @model containment="true" + * @generated + */ + Statement getAction(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.Transition#getAction Action}' containment reference. + * + * + * @param value the new value of the 'Action' containment reference. + * @see #getAction() + * @generated + */ + void setAction(Statement value); + +} // Transition diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TransitionSource.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TransitionSource.java new file mode 100644 index 0000000..ceb4173 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TransitionSource.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Transition Source'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.TransitionSource#getOrigin Origin}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTransitionSource() + * @model + * @generated + */ +public interface TransitionSource extends EObject +{ + /** + * Returns the value of the 'Origin' reference. + * + *

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

    + * + * @return the value of the 'Origin' reference. + * @see #setOrigin(StateDeclaration) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTransitionSource_Origin() + * @model + * @generated + */ + StateDeclaration getOrigin(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.TransitionSource#getOrigin Origin}' reference. + * + * + * @param value the new value of the 'Origin' reference. + * @see #getOrigin() + * @generated + */ + void setOrigin(StateDeclaration value); + +} // TransitionSource diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TrueLiteral.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TrueLiteral.java new file mode 100644 index 0000000..b59cba4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TrueLiteral.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'True Literal'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTrueLiteral() + * @model + * @generated + */ +public interface TrueLiteral extends BooleanLiteral +{ +} // TrueLiteral diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TupleType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TupleType.java new file mode 100644 index 0000000..092fff7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TupleType.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Tuple Type'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.TupleType#getTypes Types}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTupleType() + * @model + * @generated + */ +public interface TupleType extends Type +{ + /** + * Returns the value of the 'Types' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Type}. + * + *

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

    + * + * @return the value of the 'Types' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTupleType_Types() + * @model containment="true" + * @generated + */ + EList getTypes(); + +} // TupleType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Type.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Type.java new file mode 100644 index 0000000..cfc2024 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/Type.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Type'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getType() + * @model + * @generated + */ +public interface Type extends EObject +{ +} // Type diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TypeDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TypeDeclaration.java new file mode 100644 index 0000000..929f83f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TypeDeclaration.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Type Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.TypeDeclaration#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTypeDeclaration() + * @model + * @generated + */ +public interface TypeDeclaration extends TypeDeclarationUse, Declaration +{ + /** + * 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(Type) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTypeDeclaration_Value() + * @model containment="true" + * @generated + */ + Type getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.TypeDeclaration#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(Type value); + +} // TypeDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TypeDeclarationUse.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TypeDeclarationUse.java new file mode 100644 index 0000000..30f1c08 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/TypeDeclarationUse.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Type Declaration Use'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getTypeDeclarationUse() + * @model + * @generated + */ +public interface TypeDeclarationUse extends EObject +{ +} // TypeDeclarationUse diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryCoerceExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryCoerceExpression.java new file mode 100644 index 0000000..88e0259 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryCoerceExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Unary Coerce Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryCoerceExpression() + * @model + * @generated + */ +public interface UnaryCoerceExpression extends Expression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryCoerceExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // UnaryCoerceExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryDeQueueExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryDeQueueExpression.java new file mode 100644 index 0000000..bb31a2b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryDeQueueExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Unary De Queue Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryDeQueueExpression() + * @model + * @generated + */ +public interface UnaryDeQueueExpression extends Expression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryDeQueueExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // UnaryDeQueueExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryEmptyExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryEmptyExpression.java new file mode 100644 index 0000000..0bd9b17 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryEmptyExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Unary Empty Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryEmptyExpression() + * @model + * @generated + */ +public interface UnaryEmptyExpression extends Expression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryEmptyExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // UnaryEmptyExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryFirstExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryFirstExpression.java new file mode 100644 index 0000000..9043caa --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryFirstExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Unary First Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryFirstExpression() + * @model + * @generated + */ +public interface UnaryFirstExpression extends Expression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryFirstExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // UnaryFirstExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryFullExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryFullExpression.java new file mode 100644 index 0000000..e85fe58 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryFullExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Unary Full Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnaryFullExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryFullExpression() + * @model + * @generated + */ +public interface UnaryFullExpression extends Expression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryFullExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.UnaryFullExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // UnaryFullExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryLengthExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryLengthExpression.java new file mode 100644 index 0000000..7f28da6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryLengthExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Unary Length Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryLengthExpression() + * @model + * @generated + */ +public interface UnaryLengthExpression extends Expression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryLengthExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // UnaryLengthExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryMinusExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryMinusExpression.java new file mode 100644 index 0000000..6ef7a04 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryMinusExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Unary Minus Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryMinusExpression() + * @model + * @generated + */ +public interface UnaryMinusExpression extends Expression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryMinusExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // UnaryMinusExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryNegationExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryNegationExpression.java new file mode 100644 index 0000000..5c6bebf --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryNegationExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Unary Negation Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryNegationExpression() + * @model + * @generated + */ +public interface UnaryNegationExpression extends Expression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryNegationExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // UnaryNegationExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryPlusExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryPlusExpression.java new file mode 100644 index 0000000..eb3c989 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnaryPlusExpression.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Unary Plus Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression#getChild Child}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryPlusExpression() + * @model + * @generated + */ +public interface UnaryPlusExpression extends Expression +{ + /** + * Returns the value of the 'Child' containment reference. + * + *

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

    + * + * @return the value of the 'Child' containment reference. + * @see #setChild(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnaryPlusExpression_Child() + * @model containment="true" + * @generated + */ + Expression getChild(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression#getChild Child}' containment reference. + * + * + * @param value the new value of the 'Child' containment reference. + * @see #getChild() + * @generated + */ + void setChild(Expression value); + +} // UnaryPlusExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTagDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTagDeclaration.java new file mode 100644 index 0000000..dc3d1eb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTagDeclaration.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Union Tag Declaration'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnionTagDeclaration() + * @model + * @generated + */ +public interface UnionTagDeclaration extends NamedElement, ExpressionDeclarationUse, UnionTagDeclarationUse, PatternDeclarationUse +{ +} // UnionTagDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTagDeclarationUse.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTagDeclarationUse.java new file mode 100644 index 0000000..1973024 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTagDeclarationUse.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Union Tag Declaration Use'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnionTagDeclarationUse() + * @model + * @generated + */ +public interface UnionTagDeclarationUse extends EObject +{ +} // UnionTagDeclarationUse diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTags.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTags.java new file mode 100644 index 0000000..e4dcc76 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionTags.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Union Tags'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnionTags#getTags Tags}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnionTags#getType Type}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnionTags() + * @model + * @generated + */ +public interface UnionTags extends EObject +{ + /** + * Returns the value of the 'Tags' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration}. + * + *

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

    + * + * @return the value of the 'Tags' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnionTags_Tags() + * @model containment="true" + * @generated + */ + EList getTags(); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(Type) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnionTags_Type() + * @model containment="true" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.UnionTags#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(Type value); + +} // UnionTags diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionType.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionType.java new file mode 100644 index 0000000..af359fd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnionType.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Union Type'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnionType#getTags Tags}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnionType() + * @model + * @generated + */ +public interface UnionType extends Type +{ + /** + * Returns the value of the 'Tags' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.UnionTags}. + * + *

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

    + * + * @return the value of the 'Tags' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnionType_Tags() + * @model containment="true" + * @generated + */ + EList getTags(); + +} // UnionType diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnlessStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnlessStatement.java new file mode 100644 index 0000000..63e027f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UnlessStatement.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Unless Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.UnlessStatement#getFollowers Followers}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnlessStatement() + * @model + * @generated + */ +public interface UnlessStatement extends Statement +{ + /** + * Returns the value of the 'Followers' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.Statement}. + * + *

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

    + * + * @return the value of the 'Followers' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUnlessStatement_Followers() + * @model containment="true" + * @generated + */ + EList getFollowers(); + +} // UnlessStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UpperBound.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UpperBound.java new file mode 100644 index 0000000..344548d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/UpperBound.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Upper Bound'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getUpperBound() + * @model + * @generated + */ +public interface UpperBound extends EObject +{ +} // UpperBound diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ValueExpression.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ValueExpression.java new file mode 100644 index 0000000..76bebff --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ValueExpression.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Value Expression'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getValueExpression() + * @model + * @generated + */ +public interface ValueExpression extends EObject +{ +} // ValueExpression diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ValueSubject.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ValueSubject.java new file mode 100644 index 0000000..b7f7005 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/ValueSubject.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Value Subject'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.ValueSubject#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getValueSubject() + * @model + * @generated + */ +public interface ValueSubject extends Subject +{ + /** + * 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 fr.irit.fiacre.xtext.fiacre.FiacrePackage#getValueSubject_Value() + * @model containment="true" + * @generated + */ + Expression getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.ValueSubject#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(Expression value); + +} // ValueSubject diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableDeclaration.java new file mode 100644 index 0000000..4e31101 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableDeclaration.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Variable Declaration'. + * + * + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariableDeclaration() + * @model + * @generated + */ +public interface VariableDeclaration extends NamedElement, ExpressionDeclarationUse, ReferenceDeclarationUse, PatternDeclarationUse, BoundDeclarationUse, PropertyDeclarationUse +{ +} // VariableDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableLowerBound.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableLowerBound.java new file mode 100644 index 0000000..263532a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableLowerBound.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Variable Lower Bound'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.VariableLowerBound#getVariable Variable}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariableLowerBound() + * @model + * @generated + */ +public interface VariableLowerBound extends LowerBound +{ + /** + * Returns the value of the 'Variable' reference. + * + *

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

    + * + * @return the value of the 'Variable' reference. + * @see #setVariable(BoundDeclarationUse) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariableLowerBound_Variable() + * @model + * @generated + */ + BoundDeclarationUse getVariable(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.VariableLowerBound#getVariable Variable}' reference. + * + * + * @param value the new value of the 'Variable' reference. + * @see #getVariable() + * @generated + */ + void setVariable(BoundDeclarationUse value); + +} // VariableLowerBound diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableUpperBound.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableUpperBound.java new file mode 100644 index 0000000..5b8248f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariableUpperBound.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Variable Upper Bound'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound#getVariable Variable}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound#isLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound#isRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariableUpperBound() + * @model + * @generated + */ +public interface VariableUpperBound extends UpperBound +{ + /** + * Returns the value of the 'Variable' reference. + * + *

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

    + * + * @return the value of the 'Variable' reference. + * @see #setVariable(BoundDeclarationUse) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariableUpperBound_Variable() + * @model + * @generated + */ + BoundDeclarationUse getVariable(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound#getVariable Variable}' reference. + * + * + * @param value the new value of the 'Variable' reference. + * @see #getVariable() + * @generated + */ + void setVariable(BoundDeclarationUse value); + + /** + * Returns the value of the 'Left' attribute. + * + *

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

    + * + * @return the value of the 'Left' attribute. + * @see #setLeft(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariableUpperBound_Left() + * @model + * @generated + */ + boolean isLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound#isLeft Left}' attribute. + * + * + * @param value the new value of the 'Left' attribute. + * @see #isLeft() + * @generated + */ + void setLeft(boolean value); + + /** + * Returns the value of the 'Right' attribute. + * + *

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

    + * + * @return the value of the 'Right' attribute. + * @see #setRight(boolean) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariableUpperBound_Right() + * @model + * @generated + */ + boolean isRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound#isRight Right}' attribute. + * + * + * @param value the new value of the 'Right' attribute. + * @see #isRight() + * @generated + */ + void setRight(boolean value); + +} // VariableUpperBound diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariablesDeclaration.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariablesDeclaration.java new file mode 100644 index 0000000..45593ed --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/VariablesDeclaration.java @@ -0,0 +1,108 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Variables Declaration'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getVariables Variables}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getValue Value}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariablesDeclaration() + * @model + * @generated + */ +public interface VariablesDeclaration extends EObject +{ + /** + * Returns the value of the 'Variables' containment reference list. + * The list contents are of type {@link fr.irit.fiacre.xtext.fiacre.VariableDeclaration}. + * + *

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

    + * + * @return the value of the 'Variables' containment reference list. + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariablesDeclaration_Variables() + * @model containment="true" + * @generated + */ + EList getVariables(); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

    + * + * @return the value of the 'Type' containment reference. + * @see #setType(Type) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariablesDeclaration_Type() + * @model containment="true" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(Type value); + + /** + * 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 fr.irit.fiacre.xtext.fiacre.FiacrePackage#getVariablesDeclaration_Value() + * @model containment="true" + * @generated + */ + Expression getValue(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(Expression value); + +} // VariablesDeclaration diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/WaitStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/WaitStatement.java new file mode 100644 index 0000000..3fff63e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/WaitStatement.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'Wait Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.WaitStatement#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.WaitStatement#getRight Right}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getWaitStatement() + * @model + * @generated + */ +public interface WaitStatement extends Statement +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

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

    + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(LowerBound) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getWaitStatement_Left() + * @model containment="true" + * @generated + */ + LowerBound getLeft(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.WaitStatement#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(LowerBound value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

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

    + * + * @return the value of the 'Right' containment reference. + * @see #setRight(UpperBound) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getWaitStatement_Right() + * @model containment="true" + * @generated + */ + UpperBound getRight(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.WaitStatement#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(UpperBound value); + +} // WaitStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/WhileStatement.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/WhileStatement.java new file mode 100644 index 0000000..a34a341 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/WhileStatement.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre; + + +/** + * + * A representation of the model object 'While Statement'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.WhileStatement#getCondition Condition}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.WhileStatement#getBody Body}
    • + *
    + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getWhileStatement() + * @model + * @generated + */ +public interface WhileStatement extends Statement +{ + /** + * Returns the value of the 'Condition' containment reference. + * + *

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

    + * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getWhileStatement_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.WhileStatement#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 '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(Statement) + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage#getWhileStatement_Body() + * @model containment="true" + * @generated + */ + Statement getBody(); + + /** + * Sets the value of the '{@link fr.irit.fiacre.xtext.fiacre.WhileStatement#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Statement value); + +} // WhileStatement diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AbsencePatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AbsencePatternImpl.java new file mode 100644 index 0000000..6f4a36b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AbsencePatternImpl.java @@ -0,0 +1,703 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.AbsencePattern; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LowerBound; +import fr.irit.fiacre.xtext.fiacre.Observable; +import fr.irit.fiacre.xtext.fiacre.UpperBound; + +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; + +/** + * + * An implementation of the model object 'Absence Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AbsencePatternImpl#getSubject Subject}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AbsencePatternImpl#getAfter After}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AbsencePatternImpl#getLower Lower}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AbsencePatternImpl#getUpper Upper}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AbsencePatternImpl#getUntil Until}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AbsencePatternImpl#getBefore Before}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AbsencePatternImpl#getMin Min}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AbsencePatternImpl#getMax Max}
    • + *
    + * + * @generated + */ +public class AbsencePatternImpl extends PatternPropertyImpl implements AbsencePattern +{ + /** + * The cached value of the '{@link #getSubject() Subject}' containment reference. + * + * + * @see #getSubject() + * @generated + * @ordered + */ + protected Observable subject; + + /** + * The cached value of the '{@link #getAfter() After}' containment reference. + * + * + * @see #getAfter() + * @generated + * @ordered + */ + protected Observable after; + + /** + * The cached value of the '{@link #getLower() Lower}' containment reference. + * + * + * @see #getLower() + * @generated + * @ordered + */ + protected LowerBound lower; + + /** + * The cached value of the '{@link #getUpper() Upper}' containment reference. + * + * + * @see #getUpper() + * @generated + * @ordered + */ + protected UpperBound upper; + + /** + * The cached value of the '{@link #getUntil() Until}' containment reference. + * + * + * @see #getUntil() + * @generated + * @ordered + */ + protected Observable until; + + /** + * The cached value of the '{@link #getBefore() Before}' containment reference. + * + * + * @see #getBefore() + * @generated + * @ordered + */ + protected Observable before; + + /** + * The cached value of the '{@link #getMin() Min}' containment reference. + * + * + * @see #getMin() + * @generated + * @ordered + */ + protected Observable min; + + /** + * The cached value of the '{@link #getMax() Max}' containment reference. + * + * + * @see #getMax() + * @generated + * @ordered + */ + protected Observable max; + + /** + * + * + * @generated + */ + protected AbsencePatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getAbsencePattern(); + } + + /** + * + * + * @generated + */ + public Observable getSubject() + { + return subject; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSubject(Observable newSubject, NotificationChain msgs) + { + Observable oldSubject = subject; + subject = newSubject; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__SUBJECT, oldSubject, newSubject); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSubject(Observable newSubject) + { + if (newSubject != subject) + { + NotificationChain msgs = null; + if (subject != null) + msgs = ((InternalEObject)subject).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__SUBJECT, null, msgs); + if (newSubject != null) + msgs = ((InternalEObject)newSubject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__SUBJECT, null, msgs); + msgs = basicSetSubject(newSubject, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__SUBJECT, newSubject, newSubject)); + } + + /** + * + * + * @generated + */ + public Observable getAfter() + { + return after; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAfter(Observable newAfter, NotificationChain msgs) + { + Observable oldAfter = after; + after = newAfter; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__AFTER, oldAfter, newAfter); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setAfter(Observable newAfter) + { + if (newAfter != after) + { + NotificationChain msgs = null; + if (after != null) + msgs = ((InternalEObject)after).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__AFTER, null, msgs); + if (newAfter != null) + msgs = ((InternalEObject)newAfter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__AFTER, null, msgs); + msgs = basicSetAfter(newAfter, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__AFTER, newAfter, newAfter)); + } + + /** + * + * + * @generated + */ + public LowerBound getLower() + { + return lower; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLower(LowerBound newLower, NotificationChain msgs) + { + LowerBound oldLower = lower; + lower = newLower; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__LOWER, oldLower, newLower); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLower(LowerBound newLower) + { + if (newLower != lower) + { + NotificationChain msgs = null; + if (lower != null) + msgs = ((InternalEObject)lower).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__LOWER, null, msgs); + if (newLower != null) + msgs = ((InternalEObject)newLower).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__LOWER, null, msgs); + msgs = basicSetLower(newLower, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__LOWER, newLower, newLower)); + } + + /** + * + * + * @generated + */ + public UpperBound getUpper() + { + return upper; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUpper(UpperBound newUpper, NotificationChain msgs) + { + UpperBound oldUpper = upper; + upper = newUpper; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__UPPER, oldUpper, newUpper); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setUpper(UpperBound newUpper) + { + if (newUpper != upper) + { + NotificationChain msgs = null; + if (upper != null) + msgs = ((InternalEObject)upper).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__UPPER, null, msgs); + if (newUpper != null) + msgs = ((InternalEObject)newUpper).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__UPPER, null, msgs); + msgs = basicSetUpper(newUpper, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__UPPER, newUpper, newUpper)); + } + + /** + * + * + * @generated + */ + public Observable getUntil() + { + return until; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUntil(Observable newUntil, NotificationChain msgs) + { + Observable oldUntil = until; + until = newUntil; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__UNTIL, oldUntil, newUntil); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setUntil(Observable newUntil) + { + if (newUntil != until) + { + NotificationChain msgs = null; + if (until != null) + msgs = ((InternalEObject)until).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__UNTIL, null, msgs); + if (newUntil != null) + msgs = ((InternalEObject)newUntil).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__UNTIL, null, msgs); + msgs = basicSetUntil(newUntil, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__UNTIL, newUntil, newUntil)); + } + + /** + * + * + * @generated + */ + public Observable getBefore() + { + return before; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBefore(Observable newBefore, NotificationChain msgs) + { + Observable oldBefore = before; + before = newBefore; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__BEFORE, oldBefore, newBefore); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setBefore(Observable newBefore) + { + if (newBefore != before) + { + NotificationChain msgs = null; + if (before != null) + msgs = ((InternalEObject)before).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__BEFORE, null, msgs); + if (newBefore != null) + msgs = ((InternalEObject)newBefore).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__BEFORE, null, msgs); + msgs = basicSetBefore(newBefore, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__BEFORE, newBefore, newBefore)); + } + + /** + * + * + * @generated + */ + public Observable getMin() + { + return min; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMin(Observable newMin, NotificationChain msgs) + { + Observable oldMin = min; + min = newMin; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__MIN, oldMin, newMin); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMin(Observable newMin) + { + if (newMin != min) + { + NotificationChain msgs = null; + if (min != null) + msgs = ((InternalEObject)min).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__MIN, null, msgs); + if (newMin != null) + msgs = ((InternalEObject)newMin).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__MIN, null, msgs); + msgs = basicSetMin(newMin, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__MIN, newMin, newMin)); + } + + /** + * + * + * @generated + */ + public Observable getMax() + { + return max; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMax(Observable newMax, NotificationChain msgs) + { + Observable oldMax = max; + max = newMax; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__MAX, oldMax, newMax); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMax(Observable newMax) + { + if (newMax != max) + { + NotificationChain msgs = null; + if (max != null) + msgs = ((InternalEObject)max).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__MAX, null, msgs); + if (newMax != null) + msgs = ((InternalEObject)newMax).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ABSENCE_PATTERN__MAX, null, msgs); + msgs = basicSetMax(newMax, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ABSENCE_PATTERN__MAX, newMax, newMax)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ABSENCE_PATTERN__SUBJECT: + return basicSetSubject(null, msgs); + case FiacrePackage.ABSENCE_PATTERN__AFTER: + return basicSetAfter(null, msgs); + case FiacrePackage.ABSENCE_PATTERN__LOWER: + return basicSetLower(null, msgs); + case FiacrePackage.ABSENCE_PATTERN__UPPER: + return basicSetUpper(null, msgs); + case FiacrePackage.ABSENCE_PATTERN__UNTIL: + return basicSetUntil(null, msgs); + case FiacrePackage.ABSENCE_PATTERN__BEFORE: + return basicSetBefore(null, msgs); + case FiacrePackage.ABSENCE_PATTERN__MIN: + return basicSetMin(null, msgs); + case FiacrePackage.ABSENCE_PATTERN__MAX: + return basicSetMax(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ABSENCE_PATTERN__SUBJECT: + return getSubject(); + case FiacrePackage.ABSENCE_PATTERN__AFTER: + return getAfter(); + case FiacrePackage.ABSENCE_PATTERN__LOWER: + return getLower(); + case FiacrePackage.ABSENCE_PATTERN__UPPER: + return getUpper(); + case FiacrePackage.ABSENCE_PATTERN__UNTIL: + return getUntil(); + case FiacrePackage.ABSENCE_PATTERN__BEFORE: + return getBefore(); + case FiacrePackage.ABSENCE_PATTERN__MIN: + return getMin(); + case FiacrePackage.ABSENCE_PATTERN__MAX: + return getMax(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ABSENCE_PATTERN__SUBJECT: + setSubject((Observable)newValue); + return; + case FiacrePackage.ABSENCE_PATTERN__AFTER: + setAfter((Observable)newValue); + return; + case FiacrePackage.ABSENCE_PATTERN__LOWER: + setLower((LowerBound)newValue); + return; + case FiacrePackage.ABSENCE_PATTERN__UPPER: + setUpper((UpperBound)newValue); + return; + case FiacrePackage.ABSENCE_PATTERN__UNTIL: + setUntil((Observable)newValue); + return; + case FiacrePackage.ABSENCE_PATTERN__BEFORE: + setBefore((Observable)newValue); + return; + case FiacrePackage.ABSENCE_PATTERN__MIN: + setMin((Observable)newValue); + return; + case FiacrePackage.ABSENCE_PATTERN__MAX: + setMax((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ABSENCE_PATTERN__SUBJECT: + setSubject((Observable)null); + return; + case FiacrePackage.ABSENCE_PATTERN__AFTER: + setAfter((Observable)null); + return; + case FiacrePackage.ABSENCE_PATTERN__LOWER: + setLower((LowerBound)null); + return; + case FiacrePackage.ABSENCE_PATTERN__UPPER: + setUpper((UpperBound)null); + return; + case FiacrePackage.ABSENCE_PATTERN__UNTIL: + setUntil((Observable)null); + return; + case FiacrePackage.ABSENCE_PATTERN__BEFORE: + setBefore((Observable)null); + return; + case FiacrePackage.ABSENCE_PATTERN__MIN: + setMin((Observable)null); + return; + case FiacrePackage.ABSENCE_PATTERN__MAX: + setMax((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ABSENCE_PATTERN__SUBJECT: + return subject != null; + case FiacrePackage.ABSENCE_PATTERN__AFTER: + return after != null; + case FiacrePackage.ABSENCE_PATTERN__LOWER: + return lower != null; + case FiacrePackage.ABSENCE_PATTERN__UPPER: + return upper != null; + case FiacrePackage.ABSENCE_PATTERN__UNTIL: + return until != null; + case FiacrePackage.ABSENCE_PATTERN__BEFORE: + return before != null; + case FiacrePackage.ABSENCE_PATTERN__MIN: + return min != null; + case FiacrePackage.ABSENCE_PATTERN__MAX: + return max != null; + } + return super.eIsSet(featureID); + } + +} //AbsencePatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AdditionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AdditionImpl.java new file mode 100644 index 0000000..4d80e5b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AdditionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Addition; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Addition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AdditionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AdditionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class AdditionImpl extends ExpressionImpl implements Addition +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected AdditionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getAddition(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ADDITION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ADDITION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ADDITION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ADDITION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ADDITION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ADDITION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ADDITION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ADDITION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ADDITION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.ADDITION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ADDITION__LEFT: + return getLeft(); + case FiacrePackage.ADDITION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ADDITION__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.ADDITION__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ADDITION__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.ADDITION__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ADDITION__LEFT: + return left != null; + case FiacrePackage.ADDITION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //AdditionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AllExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AllExpressionImpl.java new file mode 100644 index 0000000..a382f74f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AllExpressionImpl.java @@ -0,0 +1,348 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.AllExpression; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RangeType; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +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; + +/** + * + * An implementation of the model object 'All Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AllExpressionImpl#getIndex Index}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AllExpressionImpl#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AllExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class AllExpressionImpl extends ExpressionImpl implements AllExpression +{ + /** + * The cached value of the '{@link #getIndex() Index}' containment reference. + * + * + * @see #getIndex() + * @generated + * @ordered + */ + protected VariableDeclaration index; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected RangeType type; + + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected AllExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getAllExpression(); + } + + /** + * + * + * @generated + */ + public VariableDeclaration getIndex() + { + return index; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetIndex(VariableDeclaration newIndex, NotificationChain msgs) + { + VariableDeclaration oldIndex = index; + index = newIndex; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_EXPRESSION__INDEX, oldIndex, newIndex); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setIndex(VariableDeclaration newIndex) + { + if (newIndex != index) + { + NotificationChain msgs = null; + if (index != null) + msgs = ((InternalEObject)index).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_EXPRESSION__INDEX, null, msgs); + if (newIndex != null) + msgs = ((InternalEObject)newIndex).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_EXPRESSION__INDEX, null, msgs); + msgs = basicSetIndex(newIndex, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_EXPRESSION__INDEX, newIndex, newIndex)); + } + + /** + * + * + * @generated + */ + public RangeType getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(RangeType newType, NotificationChain msgs) + { + RangeType oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_EXPRESSION__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(RangeType newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_EXPRESSION__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_EXPRESSION__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_EXPRESSION__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ALL_EXPRESSION__INDEX: + return basicSetIndex(null, msgs); + case FiacrePackage.ALL_EXPRESSION__TYPE: + return basicSetType(null, msgs); + case FiacrePackage.ALL_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ALL_EXPRESSION__INDEX: + return getIndex(); + case FiacrePackage.ALL_EXPRESSION__TYPE: + return getType(); + case FiacrePackage.ALL_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ALL_EXPRESSION__INDEX: + setIndex((VariableDeclaration)newValue); + return; + case FiacrePackage.ALL_EXPRESSION__TYPE: + setType((RangeType)newValue); + return; + case FiacrePackage.ALL_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ALL_EXPRESSION__INDEX: + setIndex((VariableDeclaration)null); + return; + case FiacrePackage.ALL_EXPRESSION__TYPE: + setType((RangeType)null); + return; + case FiacrePackage.ALL_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ALL_EXPRESSION__INDEX: + return index != null; + case FiacrePackage.ALL_EXPRESSION__TYPE: + return type != null; + case FiacrePackage.ALL_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //AllExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AllPropertyImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AllPropertyImpl.java new file mode 100644 index 0000000..af5ee16 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AllPropertyImpl.java @@ -0,0 +1,348 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.AllProperty; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Property; +import fr.irit.fiacre.xtext.fiacre.RangeType; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +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; + +/** + * + * An implementation of the model object 'All Property'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AllPropertyImpl#getVariable Variable}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AllPropertyImpl#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AllPropertyImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class AllPropertyImpl extends PropertyImpl implements AllProperty +{ + /** + * The cached value of the '{@link #getVariable() Variable}' containment reference. + * + * + * @see #getVariable() + * @generated + * @ordered + */ + protected VariableDeclaration variable; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected RangeType type; + + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Property child; + + /** + * + * + * @generated + */ + protected AllPropertyImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getAllProperty(); + } + + /** + * + * + * @generated + */ + public VariableDeclaration getVariable() + { + return variable; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetVariable(VariableDeclaration newVariable, NotificationChain msgs) + { + VariableDeclaration oldVariable = variable; + variable = newVariable; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_PROPERTY__VARIABLE, oldVariable, newVariable); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setVariable(VariableDeclaration newVariable) + { + if (newVariable != variable) + { + NotificationChain msgs = null; + if (variable != null) + msgs = ((InternalEObject)variable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_PROPERTY__VARIABLE, null, msgs); + if (newVariable != null) + msgs = ((InternalEObject)newVariable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_PROPERTY__VARIABLE, null, msgs); + msgs = basicSetVariable(newVariable, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_PROPERTY__VARIABLE, newVariable, newVariable)); + } + + /** + * + * + * @generated + */ + public RangeType getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(RangeType newType, NotificationChain msgs) + { + RangeType oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_PROPERTY__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(RangeType newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_PROPERTY__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_PROPERTY__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_PROPERTY__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + public Property getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Property newChild, NotificationChain msgs) + { + Property oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_PROPERTY__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Property newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_PROPERTY__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALL_PROPERTY__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALL_PROPERTY__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ALL_PROPERTY__VARIABLE: + return basicSetVariable(null, msgs); + case FiacrePackage.ALL_PROPERTY__TYPE: + return basicSetType(null, msgs); + case FiacrePackage.ALL_PROPERTY__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ALL_PROPERTY__VARIABLE: + return getVariable(); + case FiacrePackage.ALL_PROPERTY__TYPE: + return getType(); + case FiacrePackage.ALL_PROPERTY__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ALL_PROPERTY__VARIABLE: + setVariable((VariableDeclaration)newValue); + return; + case FiacrePackage.ALL_PROPERTY__TYPE: + setType((RangeType)newValue); + return; + case FiacrePackage.ALL_PROPERTY__CHILD: + setChild((Property)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ALL_PROPERTY__VARIABLE: + setVariable((VariableDeclaration)null); + return; + case FiacrePackage.ALL_PROPERTY__TYPE: + setType((RangeType)null); + return; + case FiacrePackage.ALL_PROPERTY__CHILD: + setChild((Property)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ALL_PROPERTY__VARIABLE: + return variable != null; + case FiacrePackage.ALL_PROPERTY__TYPE: + return type != null; + case FiacrePackage.ALL_PROPERTY__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //AllPropertyImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AlwaysPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AlwaysPatternImpl.java new file mode 100644 index 0000000..a7ee9f0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AlwaysPatternImpl.java @@ -0,0 +1,559 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.AlwaysPattern; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Observable; + +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; + +/** + * + * An implementation of the model object 'Always Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AlwaysPatternImpl#getSubject Subject}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AlwaysPatternImpl#getBefore Before}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AlwaysPatternImpl#getAfter After}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AlwaysPatternImpl#getUntil Until}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AlwaysPatternImpl#getMin Min}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AlwaysPatternImpl#getMax Max}
    • + *
    + * + * @generated + */ +public class AlwaysPatternImpl extends PatternPropertyImpl implements AlwaysPattern +{ + /** + * The cached value of the '{@link #getSubject() Subject}' containment reference. + * + * + * @see #getSubject() + * @generated + * @ordered + */ + protected Observable subject; + + /** + * The cached value of the '{@link #getBefore() Before}' containment reference. + * + * + * @see #getBefore() + * @generated + * @ordered + */ + protected Observable before; + + /** + * The cached value of the '{@link #getAfter() After}' containment reference. + * + * + * @see #getAfter() + * @generated + * @ordered + */ + protected Observable after; + + /** + * The cached value of the '{@link #getUntil() Until}' containment reference. + * + * + * @see #getUntil() + * @generated + * @ordered + */ + protected Observable until; + + /** + * The cached value of the '{@link #getMin() Min}' containment reference. + * + * + * @see #getMin() + * @generated + * @ordered + */ + protected Observable min; + + /** + * The cached value of the '{@link #getMax() Max}' containment reference. + * + * + * @see #getMax() + * @generated + * @ordered + */ + protected Observable max; + + /** + * + * + * @generated + */ + protected AlwaysPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getAlwaysPattern(); + } + + /** + * + * + * @generated + */ + public Observable getSubject() + { + return subject; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSubject(Observable newSubject, NotificationChain msgs) + { + Observable oldSubject = subject; + subject = newSubject; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__SUBJECT, oldSubject, newSubject); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSubject(Observable newSubject) + { + if (newSubject != subject) + { + NotificationChain msgs = null; + if (subject != null) + msgs = ((InternalEObject)subject).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__SUBJECT, null, msgs); + if (newSubject != null) + msgs = ((InternalEObject)newSubject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__SUBJECT, null, msgs); + msgs = basicSetSubject(newSubject, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__SUBJECT, newSubject, newSubject)); + } + + /** + * + * + * @generated + */ + public Observable getBefore() + { + return before; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBefore(Observable newBefore, NotificationChain msgs) + { + Observable oldBefore = before; + before = newBefore; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__BEFORE, oldBefore, newBefore); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setBefore(Observable newBefore) + { + if (newBefore != before) + { + NotificationChain msgs = null; + if (before != null) + msgs = ((InternalEObject)before).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__BEFORE, null, msgs); + if (newBefore != null) + msgs = ((InternalEObject)newBefore).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__BEFORE, null, msgs); + msgs = basicSetBefore(newBefore, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__BEFORE, newBefore, newBefore)); + } + + /** + * + * + * @generated + */ + public Observable getAfter() + { + return after; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAfter(Observable newAfter, NotificationChain msgs) + { + Observable oldAfter = after; + after = newAfter; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__AFTER, oldAfter, newAfter); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setAfter(Observable newAfter) + { + if (newAfter != after) + { + NotificationChain msgs = null; + if (after != null) + msgs = ((InternalEObject)after).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__AFTER, null, msgs); + if (newAfter != null) + msgs = ((InternalEObject)newAfter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__AFTER, null, msgs); + msgs = basicSetAfter(newAfter, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__AFTER, newAfter, newAfter)); + } + + /** + * + * + * @generated + */ + public Observable getUntil() + { + return until; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUntil(Observable newUntil, NotificationChain msgs) + { + Observable oldUntil = until; + until = newUntil; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__UNTIL, oldUntil, newUntil); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setUntil(Observable newUntil) + { + if (newUntil != until) + { + NotificationChain msgs = null; + if (until != null) + msgs = ((InternalEObject)until).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__UNTIL, null, msgs); + if (newUntil != null) + msgs = ((InternalEObject)newUntil).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__UNTIL, null, msgs); + msgs = basicSetUntil(newUntil, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__UNTIL, newUntil, newUntil)); + } + + /** + * + * + * @generated + */ + public Observable getMin() + { + return min; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMin(Observable newMin, NotificationChain msgs) + { + Observable oldMin = min; + min = newMin; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__MIN, oldMin, newMin); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMin(Observable newMin) + { + if (newMin != min) + { + NotificationChain msgs = null; + if (min != null) + msgs = ((InternalEObject)min).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__MIN, null, msgs); + if (newMin != null) + msgs = ((InternalEObject)newMin).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__MIN, null, msgs); + msgs = basicSetMin(newMin, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__MIN, newMin, newMin)); + } + + /** + * + * + * @generated + */ + public Observable getMax() + { + return max; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMax(Observable newMax, NotificationChain msgs) + { + Observable oldMax = max; + max = newMax; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__MAX, oldMax, newMax); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMax(Observable newMax) + { + if (newMax != max) + { + NotificationChain msgs = null; + if (max != null) + msgs = ((InternalEObject)max).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__MAX, null, msgs); + if (newMax != null) + msgs = ((InternalEObject)newMax).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ALWAYS_PATTERN__MAX, null, msgs); + msgs = basicSetMax(newMax, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ALWAYS_PATTERN__MAX, newMax, newMax)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ALWAYS_PATTERN__SUBJECT: + return basicSetSubject(null, msgs); + case FiacrePackage.ALWAYS_PATTERN__BEFORE: + return basicSetBefore(null, msgs); + case FiacrePackage.ALWAYS_PATTERN__AFTER: + return basicSetAfter(null, msgs); + case FiacrePackage.ALWAYS_PATTERN__UNTIL: + return basicSetUntil(null, msgs); + case FiacrePackage.ALWAYS_PATTERN__MIN: + return basicSetMin(null, msgs); + case FiacrePackage.ALWAYS_PATTERN__MAX: + return basicSetMax(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ALWAYS_PATTERN__SUBJECT: + return getSubject(); + case FiacrePackage.ALWAYS_PATTERN__BEFORE: + return getBefore(); + case FiacrePackage.ALWAYS_PATTERN__AFTER: + return getAfter(); + case FiacrePackage.ALWAYS_PATTERN__UNTIL: + return getUntil(); + case FiacrePackage.ALWAYS_PATTERN__MIN: + return getMin(); + case FiacrePackage.ALWAYS_PATTERN__MAX: + return getMax(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ALWAYS_PATTERN__SUBJECT: + setSubject((Observable)newValue); + return; + case FiacrePackage.ALWAYS_PATTERN__BEFORE: + setBefore((Observable)newValue); + return; + case FiacrePackage.ALWAYS_PATTERN__AFTER: + setAfter((Observable)newValue); + return; + case FiacrePackage.ALWAYS_PATTERN__UNTIL: + setUntil((Observable)newValue); + return; + case FiacrePackage.ALWAYS_PATTERN__MIN: + setMin((Observable)newValue); + return; + case FiacrePackage.ALWAYS_PATTERN__MAX: + setMax((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ALWAYS_PATTERN__SUBJECT: + setSubject((Observable)null); + return; + case FiacrePackage.ALWAYS_PATTERN__BEFORE: + setBefore((Observable)null); + return; + case FiacrePackage.ALWAYS_PATTERN__AFTER: + setAfter((Observable)null); + return; + case FiacrePackage.ALWAYS_PATTERN__UNTIL: + setUntil((Observable)null); + return; + case FiacrePackage.ALWAYS_PATTERN__MIN: + setMin((Observable)null); + return; + case FiacrePackage.ALWAYS_PATTERN__MAX: + setMax((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ALWAYS_PATTERN__SUBJECT: + return subject != null; + case FiacrePackage.ALWAYS_PATTERN__BEFORE: + return before != null; + case FiacrePackage.ALWAYS_PATTERN__AFTER: + return after != null; + case FiacrePackage.ALWAYS_PATTERN__UNTIL: + return until != null; + case FiacrePackage.ALWAYS_PATTERN__MIN: + return min != null; + case FiacrePackage.ALWAYS_PATTERN__MAX: + return max != null; + } + return super.eIsSet(featureID); + } + +} //AlwaysPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AnyPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AnyPatternImpl.java new file mode 100644 index 0000000..efdebbd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AnyPatternImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.AnyPattern; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Any Pattern'. + * + * + * @generated + */ +public class AnyPatternImpl extends PatternImpl implements AnyPattern +{ + /** + * + * + * @generated + */ + protected AnyPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getAnyPattern(); + } + +} //AnyPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AppendExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AppendExpressionImpl.java new file mode 100644 index 0000000..e3b9aa7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AppendExpressionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.AppendExpression; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Append Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AppendExpressionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AppendExpressionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class AppendExpressionImpl extends ExpressionImpl implements AppendExpression +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected AppendExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getAppendExpression(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.APPEND_EXPRESSION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.APPEND_EXPRESSION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.APPEND_EXPRESSION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.APPEND_EXPRESSION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.APPEND_EXPRESSION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.APPEND_EXPRESSION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.APPEND_EXPRESSION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.APPEND_EXPRESSION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.APPEND_EXPRESSION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.APPEND_EXPRESSION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.APPEND_EXPRESSION__LEFT: + return getLeft(); + case FiacrePackage.APPEND_EXPRESSION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.APPEND_EXPRESSION__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.APPEND_EXPRESSION__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.APPEND_EXPRESSION__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.APPEND_EXPRESSION__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.APPEND_EXPRESSION__LEFT: + return left != null; + case FiacrePackage.APPEND_EXPRESSION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //AppendExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayAccessExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayAccessExpressionImpl.java new file mode 100644 index 0000000..b66a220 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayAccessExpressionImpl.java @@ -0,0 +1,251 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.IdentifierExpression; + +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; + +/** + * + * An implementation of the model object 'Array Access Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ArrayAccessExpressionImpl#getChild Child}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ArrayAccessExpressionImpl#getIndexes Indexes}
    • + *
    + * + * @generated + */ +public class ArrayAccessExpressionImpl extends IdentifierExpressionImpl implements ArrayAccessExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected IdentifierExpression child; + + /** + * The cached value of the '{@link #getIndexes() Indexes}' containment reference list. + * + * + * @see #getIndexes() + * @generated + * @ordered + */ + protected EList indexes; + + /** + * + * + * @generated + */ + protected ArrayAccessExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getArrayAccessExpression(); + } + + /** + * + * + * @generated + */ + public IdentifierExpression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(IdentifierExpression newChild, NotificationChain msgs) + { + IdentifierExpression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ARRAY_ACCESS_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(IdentifierExpression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ARRAY_ACCESS_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ARRAY_ACCESS_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ARRAY_ACCESS_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + public EList getIndexes() + { + if (indexes == null) + { + indexes = new EObjectContainmentEList(Expression.class, this, FiacrePackage.ARRAY_ACCESS_EXPRESSION__INDEXES); + } + return indexes; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__INDEXES: + return ((InternalEList)getIndexes()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__CHILD: + return getChild(); + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__INDEXES: + return getIndexes(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__CHILD: + setChild((IdentifierExpression)newValue); + return; + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__INDEXES: + getIndexes().clear(); + getIndexes().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__CHILD: + setChild((IdentifierExpression)null); + return; + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__INDEXES: + getIndexes().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__CHILD: + return child != null; + case FiacrePackage.ARRAY_ACCESS_EXPRESSION__INDEXES: + return indexes != null && !indexes.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ArrayAccessExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayAccessPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayAccessPatternImpl.java new file mode 100644 index 0000000..055d569 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayAccessPatternImpl.java @@ -0,0 +1,276 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.IdentifierPattern; + +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; + +/** + * + * An implementation of the model object 'Array Access Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ArrayAccessPatternImpl#getSource Source}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ArrayAccessPatternImpl#getIndex Index}
    • + *
    + * + * @generated + */ +public class ArrayAccessPatternImpl extends IdentifierPatternImpl implements ArrayAccessPattern +{ + /** + * The cached value of the '{@link #getSource() Source}' containment reference. + * + * + * @see #getSource() + * @generated + * @ordered + */ + protected IdentifierPattern source; + + /** + * The cached value of the '{@link #getIndex() Index}' containment reference. + * + * + * @see #getIndex() + * @generated + * @ordered + */ + protected Expression index; + + /** + * + * + * @generated + */ + protected ArrayAccessPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getArrayAccessPattern(); + } + + /** + * + * + * @generated + */ + public IdentifierPattern getSource() + { + return source; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSource(IdentifierPattern newSource, NotificationChain msgs) + { + IdentifierPattern oldSource = source; + source = newSource; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ARRAY_ACCESS_PATTERN__SOURCE, oldSource, newSource); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSource(IdentifierPattern newSource) + { + if (newSource != source) + { + NotificationChain msgs = null; + if (source != null) + msgs = ((InternalEObject)source).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ARRAY_ACCESS_PATTERN__SOURCE, null, msgs); + if (newSource != null) + msgs = ((InternalEObject)newSource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ARRAY_ACCESS_PATTERN__SOURCE, null, msgs); + msgs = basicSetSource(newSource, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ARRAY_ACCESS_PATTERN__SOURCE, newSource, newSource)); + } + + /** + * + * + * @generated + */ + public Expression getIndex() + { + return index; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetIndex(Expression newIndex, NotificationChain msgs) + { + Expression oldIndex = index; + index = newIndex; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ARRAY_ACCESS_PATTERN__INDEX, oldIndex, newIndex); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setIndex(Expression newIndex) + { + if (newIndex != index) + { + NotificationChain msgs = null; + if (index != null) + msgs = ((InternalEObject)index).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ARRAY_ACCESS_PATTERN__INDEX, null, msgs); + if (newIndex != null) + msgs = ((InternalEObject)newIndex).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ARRAY_ACCESS_PATTERN__INDEX, null, msgs); + msgs = basicSetIndex(newIndex, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ARRAY_ACCESS_PATTERN__INDEX, newIndex, newIndex)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ARRAY_ACCESS_PATTERN__SOURCE: + return basicSetSource(null, msgs); + case FiacrePackage.ARRAY_ACCESS_PATTERN__INDEX: + return basicSetIndex(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ARRAY_ACCESS_PATTERN__SOURCE: + return getSource(); + case FiacrePackage.ARRAY_ACCESS_PATTERN__INDEX: + return getIndex(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ARRAY_ACCESS_PATTERN__SOURCE: + setSource((IdentifierPattern)newValue); + return; + case FiacrePackage.ARRAY_ACCESS_PATTERN__INDEX: + setIndex((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ARRAY_ACCESS_PATTERN__SOURCE: + setSource((IdentifierPattern)null); + return; + case FiacrePackage.ARRAY_ACCESS_PATTERN__INDEX: + setIndex((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ARRAY_ACCESS_PATTERN__SOURCE: + return source != null; + case FiacrePackage.ARRAY_ACCESS_PATTERN__INDEX: + return index != null; + } + return super.eIsSet(featureID); + } + +} //ArrayAccessPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayExpressionImpl.java new file mode 100644 index 0000000..b3014a6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayExpressionImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ArrayExpression; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Array Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ArrayExpressionImpl#getValues Values}
    • + *
    + * + * @generated + */ +public class ArrayExpressionImpl extends ValueExpressionImpl implements ArrayExpression +{ + /** + * The cached value of the '{@link #getValues() Values}' containment reference list. + * + * + * @see #getValues() + * @generated + * @ordered + */ + protected EList values; + + /** + * + * + * @generated + */ + protected ArrayExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getArrayExpression(); + } + + /** + * + * + * @generated + */ + public EList getValues() + { + if (values == null) + { + values = new EObjectContainmentEList(Expression.class, this, FiacrePackage.ARRAY_EXPRESSION__VALUES); + } + return values; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ARRAY_EXPRESSION__VALUES: + return ((InternalEList)getValues()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ARRAY_EXPRESSION__VALUES: + return getValues(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ARRAY_EXPRESSION__VALUES: + getValues().clear(); + getValues().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ARRAY_EXPRESSION__VALUES: + getValues().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ARRAY_EXPRESSION__VALUES: + return values != null && !values.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ArrayExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayTypeImpl.java new file mode 100644 index 0000000..d64953a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ArrayTypeImpl.java @@ -0,0 +1,276 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ArrayType; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Type; + +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; + +/** + * + * An implementation of the model object 'Array Type'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ArrayTypeImpl#getSize Size}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ArrayTypeImpl#getType Type}
    • + *
    + * + * @generated + */ +public class ArrayTypeImpl extends TypeImpl implements ArrayType +{ + /** + * The cached value of the '{@link #getSize() Size}' containment reference. + * + * + * @see #getSize() + * @generated + * @ordered + */ + protected Expression size; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected Type type; + + /** + * + * + * @generated + */ + protected ArrayTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getArrayType(); + } + + /** + * + * + * @generated + */ + public Expression getSize() + { + return size; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSize(Expression newSize, NotificationChain msgs) + { + Expression oldSize = size; + size = newSize; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ARRAY_TYPE__SIZE, oldSize, newSize); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSize(Expression newSize) + { + if (newSize != size) + { + NotificationChain msgs = null; + if (size != null) + msgs = ((InternalEObject)size).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ARRAY_TYPE__SIZE, null, msgs); + if (newSize != null) + msgs = ((InternalEObject)newSize).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ARRAY_TYPE__SIZE, null, msgs); + msgs = basicSetSize(newSize, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ARRAY_TYPE__SIZE, newSize, newSize)); + } + + /** + * + * + * @generated + */ + public Type getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(Type newType, NotificationChain msgs) + { + Type oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ARRAY_TYPE__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(Type newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ARRAY_TYPE__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ARRAY_TYPE__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ARRAY_TYPE__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ARRAY_TYPE__SIZE: + return basicSetSize(null, msgs); + case FiacrePackage.ARRAY_TYPE__TYPE: + return basicSetType(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ARRAY_TYPE__SIZE: + return getSize(); + case FiacrePackage.ARRAY_TYPE__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ARRAY_TYPE__SIZE: + setSize((Expression)newValue); + return; + case FiacrePackage.ARRAY_TYPE__TYPE: + setType((Type)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ARRAY_TYPE__SIZE: + setSize((Expression)null); + return; + case FiacrePackage.ARRAY_TYPE__TYPE: + setType((Type)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ARRAY_TYPE__SIZE: + return size != null; + case FiacrePackage.ARRAY_TYPE__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //ArrayTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AssignAnyStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AssignAnyStatementImpl.java new file mode 100644 index 0000000..417fafd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AssignAnyStatementImpl.java @@ -0,0 +1,251 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.AssignAnyStatement; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Pattern; + +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; + +/** + * + * An implementation of the model object 'Assign Any Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AssignAnyStatementImpl#getPatterns Patterns}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AssignAnyStatementImpl#getExp Exp}
    • + *
    + * + * @generated + */ +public class AssignAnyStatementImpl extends PatternStatementImpl implements AssignAnyStatement +{ + /** + * The cached value of the '{@link #getPatterns() Patterns}' containment reference list. + * + * + * @see #getPatterns() + * @generated + * @ordered + */ + protected EList patterns; + + /** + * The cached value of the '{@link #getExp() Exp}' containment reference. + * + * + * @see #getExp() + * @generated + * @ordered + */ + protected Expression exp; + + /** + * + * + * @generated + */ + protected AssignAnyStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getAssignAnyStatement(); + } + + /** + * + * + * @generated + */ + public EList getPatterns() + { + if (patterns == null) + { + patterns = new EObjectContainmentEList(Pattern.class, this, FiacrePackage.ASSIGN_ANY_STATEMENT__PATTERNS); + } + return patterns; + } + + /** + * + * + * @generated + */ + public Expression getExp() + { + return exp; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExp(Expression newExp, NotificationChain msgs) + { + Expression oldExp = exp; + exp = newExp; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ASSIGN_ANY_STATEMENT__EXP, oldExp, newExp); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setExp(Expression newExp) + { + if (newExp != exp) + { + NotificationChain msgs = null; + if (exp != null) + msgs = ((InternalEObject)exp).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ASSIGN_ANY_STATEMENT__EXP, null, msgs); + if (newExp != null) + msgs = ((InternalEObject)newExp).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ASSIGN_ANY_STATEMENT__EXP, null, msgs); + msgs = basicSetExp(newExp, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ASSIGN_ANY_STATEMENT__EXP, newExp, newExp)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ASSIGN_ANY_STATEMENT__PATTERNS: + return ((InternalEList)getPatterns()).basicRemove(otherEnd, msgs); + case FiacrePackage.ASSIGN_ANY_STATEMENT__EXP: + return basicSetExp(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ASSIGN_ANY_STATEMENT__PATTERNS: + return getPatterns(); + case FiacrePackage.ASSIGN_ANY_STATEMENT__EXP: + return getExp(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ASSIGN_ANY_STATEMENT__PATTERNS: + getPatterns().clear(); + getPatterns().addAll((Collection)newValue); + return; + case FiacrePackage.ASSIGN_ANY_STATEMENT__EXP: + setExp((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ASSIGN_ANY_STATEMENT__PATTERNS: + getPatterns().clear(); + return; + case FiacrePackage.ASSIGN_ANY_STATEMENT__EXP: + setExp((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ASSIGN_ANY_STATEMENT__PATTERNS: + return patterns != null && !patterns.isEmpty(); + case FiacrePackage.ASSIGN_ANY_STATEMENT__EXP: + return exp != null; + } + return super.eIsSet(featureID); + } + +} //AssignAnyStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AssignStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AssignStatementImpl.java new file mode 100644 index 0000000..6e28a10 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/AssignStatementImpl.java @@ -0,0 +1,215 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.AssignStatement; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Pattern; + +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; + +/** + * + * An implementation of the model object 'Assign Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AssignStatementImpl#getPatterns Patterns}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.AssignStatementImpl#getValues Values}
    • + *
    + * + * @generated + */ +public class AssignStatementImpl extends PatternStatementImpl implements AssignStatement +{ + /** + * The cached value of the '{@link #getPatterns() Patterns}' containment reference list. + * + * + * @see #getPatterns() + * @generated + * @ordered + */ + protected EList patterns; + + /** + * The cached value of the '{@link #getValues() Values}' containment reference list. + * + * + * @see #getValues() + * @generated + * @ordered + */ + protected EList values; + + /** + * + * + * @generated + */ + protected AssignStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getAssignStatement(); + } + + /** + * + * + * @generated + */ + public EList getPatterns() + { + if (patterns == null) + { + patterns = new EObjectContainmentEList(Pattern.class, this, FiacrePackage.ASSIGN_STATEMENT__PATTERNS); + } + return patterns; + } + + /** + * + * + * @generated + */ + public EList getValues() + { + if (values == null) + { + values = new EObjectContainmentEList(Expression.class, this, FiacrePackage.ASSIGN_STATEMENT__VALUES); + } + return values; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ASSIGN_STATEMENT__PATTERNS: + return ((InternalEList)getPatterns()).basicRemove(otherEnd, msgs); + case FiacrePackage.ASSIGN_STATEMENT__VALUES: + return ((InternalEList)getValues()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ASSIGN_STATEMENT__PATTERNS: + return getPatterns(); + case FiacrePackage.ASSIGN_STATEMENT__VALUES: + return getValues(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ASSIGN_STATEMENT__PATTERNS: + getPatterns().clear(); + getPatterns().addAll((Collection)newValue); + return; + case FiacrePackage.ASSIGN_STATEMENT__VALUES: + getValues().clear(); + getValues().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ASSIGN_STATEMENT__PATTERNS: + getPatterns().clear(); + return; + case FiacrePackage.ASSIGN_STATEMENT__VALUES: + getValues().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ASSIGN_STATEMENT__PATTERNS: + return patterns != null && !patterns.isEmpty(); + case FiacrePackage.ASSIGN_STATEMENT__VALUES: + return values != null && !values.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //AssignStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BasicTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BasicTypeImpl.java new file mode 100644 index 0000000..89312b6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BasicTypeImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.BasicType; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Basic Type'. + * + * + * @generated + */ +public class BasicTypeImpl extends TypeImpl implements BasicType +{ + /** + * + * + * @generated + */ + protected BasicTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getBasicType(); + } + +} //BasicTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BlockImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BlockImpl.java new file mode 100644 index 0000000..66ae0cc --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BlockImpl.java @@ -0,0 +1,205 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Block; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PortSet; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Block'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.BlockImpl#getLocal Local}
    • + *
    + * + * @generated + */ +public class BlockImpl extends MinimalEObjectImpl.Container implements Block +{ + /** + * The cached value of the '{@link #getLocal() Local}' containment reference. + * + * + * @see #getLocal() + * @generated + * @ordered + */ + protected PortSet local; + + /** + * + * + * @generated + */ + protected BlockImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getBlock(); + } + + /** + * + * + * @generated + */ + public PortSet getLocal() + { + return local; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLocal(PortSet newLocal, NotificationChain msgs) + { + PortSet oldLocal = local; + local = newLocal; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.BLOCK__LOCAL, oldLocal, newLocal); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLocal(PortSet newLocal) + { + if (newLocal != local) + { + NotificationChain msgs = null; + if (local != null) + msgs = ((InternalEObject)local).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.BLOCK__LOCAL, null, msgs); + if (newLocal != null) + msgs = ((InternalEObject)newLocal).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.BLOCK__LOCAL, null, msgs); + msgs = basicSetLocal(newLocal, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.BLOCK__LOCAL, newLocal, newLocal)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.BLOCK__LOCAL: + return basicSetLocal(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.BLOCK__LOCAL: + return getLocal(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.BLOCK__LOCAL: + setLocal((PortSet)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.BLOCK__LOCAL: + setLocal((PortSet)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.BLOCK__LOCAL: + return local != null; + } + return super.eIsSet(featureID); + } + +} //BlockImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BlockStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BlockStatementImpl.java new file mode 100644 index 0000000..12cb490 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BlockStatementImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.BlockStatement; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Statement; + +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; + +/** + * + * An implementation of the model object 'Block Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.BlockStatementImpl#getBody Body}
    • + *
    + * + * @generated + */ +public class BlockStatementImpl extends StatementImpl implements BlockStatement +{ + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Statement body; + + /** + * + * + * @generated + */ + protected BlockStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getBlockStatement(); + } + + /** + * + * + * @generated + */ + public Statement getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Statement newBody, NotificationChain msgs) + { + Statement oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.BLOCK_STATEMENT__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setBody(Statement newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.BLOCK_STATEMENT__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.BLOCK_STATEMENT__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.BLOCK_STATEMENT__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.BLOCK_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 FiacrePackage.BLOCK_STATEMENT__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.BLOCK_STATEMENT__BODY: + setBody((Statement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.BLOCK_STATEMENT__BODY: + setBody((Statement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.BLOCK_STATEMENT__BODY: + return body != null; + } + return super.eIsSet(featureID); + } + +} //BlockStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BooleanLiteralImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BooleanLiteralImpl.java new file mode 100644 index 0000000..cab497a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BooleanLiteralImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.BooleanLiteral; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Boolean Literal'. + * + * + * @generated + */ +public class BooleanLiteralImpl extends LiteralExpressionImpl implements BooleanLiteral +{ + /** + * + * + * @generated + */ + protected BooleanLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getBooleanLiteral(); + } + +} //BooleanLiteralImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BooleanTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BooleanTypeImpl.java new file mode 100644 index 0000000..48533ef --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BooleanTypeImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.BooleanType; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Boolean Type'. + * + * + * @generated + */ +public class BooleanTypeImpl extends BasicTypeImpl implements BooleanType +{ + /** + * + * + * @generated + */ + protected BooleanTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getBooleanType(); + } + +} //BooleanTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BoundDeclarationUseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BoundDeclarationUseImpl.java new file mode 100644 index 0000000..eb7aa36 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/BoundDeclarationUseImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Bound Declaration Use'. + * + * + * @generated + */ +public class BoundDeclarationUseImpl extends MinimalEObjectImpl.Container implements BoundDeclarationUse +{ + /** + * + * + * @generated + */ + protected BoundDeclarationUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getBoundDeclarationUse(); + } + +} //BoundDeclarationUseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CaseStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CaseStatementImpl.java new file mode 100644 index 0000000..8068b25 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CaseStatementImpl.java @@ -0,0 +1,290 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.CaseStatement; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Pattern; +import fr.irit.fiacre.xtext.fiacre.Statement; + +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; + +/** + * + * An implementation of the model object 'Case Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.CaseStatementImpl#getValue Value}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.CaseStatementImpl#getPattern Pattern}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.CaseStatementImpl#getBody Body}
    • + *
    + * + * @generated + */ +public class CaseStatementImpl extends StatementImpl implements CaseStatement +{ + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected Expression value; + + /** + * The cached value of the '{@link #getPattern() Pattern}' containment reference list. + * + * + * @see #getPattern() + * @generated + * @ordered + */ + protected EList pattern; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference list. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected EList body; + + /** + * + * + * @generated + */ + protected CaseStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getCaseStatement(); + } + + /** + * + * + * @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, FiacrePackage.CASE_STATEMENT__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 - FiacrePackage.CASE_STATEMENT__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CASE_STATEMENT__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CASE_STATEMENT__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + public EList getPattern() + { + if (pattern == null) + { + pattern = new EObjectContainmentEList(Pattern.class, this, FiacrePackage.CASE_STATEMENT__PATTERN); + } + return pattern; + } + + /** + * + * + * @generated + */ + public EList getBody() + { + if (body == null) + { + body = new EObjectContainmentEList(Statement.class, this, FiacrePackage.CASE_STATEMENT__BODY); + } + return body; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.CASE_STATEMENT__VALUE: + return basicSetValue(null, msgs); + case FiacrePackage.CASE_STATEMENT__PATTERN: + return ((InternalEList)getPattern()).basicRemove(otherEnd, msgs); + case FiacrePackage.CASE_STATEMENT__BODY: + return ((InternalEList)getBody()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.CASE_STATEMENT__VALUE: + return getValue(); + case FiacrePackage.CASE_STATEMENT__PATTERN: + return getPattern(); + case FiacrePackage.CASE_STATEMENT__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.CASE_STATEMENT__VALUE: + setValue((Expression)newValue); + return; + case FiacrePackage.CASE_STATEMENT__PATTERN: + getPattern().clear(); + getPattern().addAll((Collection)newValue); + return; + case FiacrePackage.CASE_STATEMENT__BODY: + getBody().clear(); + getBody().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.CASE_STATEMENT__VALUE: + setValue((Expression)null); + return; + case FiacrePackage.CASE_STATEMENT__PATTERN: + getPattern().clear(); + return; + case FiacrePackage.CASE_STATEMENT__BODY: + getBody().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.CASE_STATEMENT__VALUE: + return value != null; + case FiacrePackage.CASE_STATEMENT__PATTERN: + return pattern != null && !pattern.isEmpty(); + case FiacrePackage.CASE_STATEMENT__BODY: + return body != null && !body.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //CaseStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ChannelDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ChannelDeclarationImpl.java new file mode 100644 index 0000000..9657f44 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ChannelDeclarationImpl.java @@ -0,0 +1,329 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ChannelDeclaration; +import fr.irit.fiacre.xtext.fiacre.ChannelType; +import fr.irit.fiacre.xtext.fiacre.Declaration; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NamedElement; + +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; + +/** + * + * An implementation of the model object 'Channel Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ChannelDeclarationImpl#getName Name}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ChannelDeclarationImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class ChannelDeclarationImpl extends TypeDeclarationUseImpl implements ChannelDeclaration +{ + /** + * 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; + + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected ChannelType value; + + /** + * + * + * @generated + */ + protected ChannelDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getChannelDeclaration(); + } + + /** + * + * + * @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, FiacrePackage.CHANNEL_DECLARATION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public ChannelType getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(ChannelType newValue, NotificationChain msgs) + { + ChannelType oldValue = value; + value = newValue; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CHANNEL_DECLARATION__VALUE, oldValue, newValue); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(ChannelType newValue) + { + if (newValue != value) + { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CHANNEL_DECLARATION__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CHANNEL_DECLARATION__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CHANNEL_DECLARATION__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.CHANNEL_DECLARATION__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 FiacrePackage.CHANNEL_DECLARATION__NAME: + return getName(); + case FiacrePackage.CHANNEL_DECLARATION__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.CHANNEL_DECLARATION__NAME: + setName((String)newValue); + return; + case FiacrePackage.CHANNEL_DECLARATION__VALUE: + setValue((ChannelType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.CHANNEL_DECLARATION__NAME: + setName(NAME_EDEFAULT); + return; + case FiacrePackage.CHANNEL_DECLARATION__VALUE: + setValue((ChannelType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.CHANNEL_DECLARATION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case FiacrePackage.CHANNEL_DECLARATION__VALUE: + return value != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) + { + if (baseClass == NamedElement.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.CHANNEL_DECLARATION__NAME: return FiacrePackage.NAMED_ELEMENT__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) + { + if (baseClass == NamedElement.class) + { + switch (baseFeatureID) + { + case FiacrePackage.NAMED_ELEMENT__NAME: return FiacrePackage.CHANNEL_DECLARATION__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @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(); + } + +} //ChannelDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ChannelTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ChannelTypeImpl.java new file mode 100644 index 0000000..72c5120 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ChannelTypeImpl.java @@ -0,0 +1,404 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ChannelType; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Type; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Channel Type'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ChannelTypeImpl#getSize Size}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ChannelTypeImpl#isIn In}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ChannelTypeImpl#isOut Out}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ChannelTypeImpl#getType Type}
    • + *
    + * + * @generated + */ +public class ChannelTypeImpl extends MinimalEObjectImpl.Container implements ChannelType +{ + /** + * The cached value of the '{@link #getSize() Size}' containment reference. + * + * + * @see #getSize() + * @generated + * @ordered + */ + protected Expression size; + + /** + * The default value of the '{@link #isIn() In}' attribute. + * + * + * @see #isIn() + * @generated + * @ordered + */ + protected static final boolean IN_EDEFAULT = false; + + /** + * The cached value of the '{@link #isIn() In}' attribute. + * + * + * @see #isIn() + * @generated + * @ordered + */ + protected boolean in = IN_EDEFAULT; + + /** + * The default value of the '{@link #isOut() Out}' attribute. + * + * + * @see #isOut() + * @generated + * @ordered + */ + protected static final boolean OUT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isOut() Out}' attribute. + * + * + * @see #isOut() + * @generated + * @ordered + */ + protected boolean out = OUT_EDEFAULT; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected Type type; + + /** + * + * + * @generated + */ + protected ChannelTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getChannelType(); + } + + /** + * + * + * @generated + */ + public Expression getSize() + { + return size; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSize(Expression newSize, NotificationChain msgs) + { + Expression oldSize = size; + size = newSize; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CHANNEL_TYPE__SIZE, oldSize, newSize); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSize(Expression newSize) + { + if (newSize != size) + { + NotificationChain msgs = null; + if (size != null) + msgs = ((InternalEObject)size).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CHANNEL_TYPE__SIZE, null, msgs); + if (newSize != null) + msgs = ((InternalEObject)newSize).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CHANNEL_TYPE__SIZE, null, msgs); + msgs = basicSetSize(newSize, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CHANNEL_TYPE__SIZE, newSize, newSize)); + } + + /** + * + * + * @generated + */ + public boolean isIn() + { + return in; + } + + /** + * + * + * @generated + */ + public void setIn(boolean newIn) + { + boolean oldIn = in; + in = newIn; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CHANNEL_TYPE__IN, oldIn, in)); + } + + /** + * + * + * @generated + */ + public boolean isOut() + { + return out; + } + + /** + * + * + * @generated + */ + public void setOut(boolean newOut) + { + boolean oldOut = out; + out = newOut; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CHANNEL_TYPE__OUT, oldOut, out)); + } + + /** + * + * + * @generated + */ + public Type getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(Type newType, NotificationChain msgs) + { + Type oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CHANNEL_TYPE__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(Type newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CHANNEL_TYPE__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CHANNEL_TYPE__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CHANNEL_TYPE__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.CHANNEL_TYPE__SIZE: + return basicSetSize(null, msgs); + case FiacrePackage.CHANNEL_TYPE__TYPE: + return basicSetType(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.CHANNEL_TYPE__SIZE: + return getSize(); + case FiacrePackage.CHANNEL_TYPE__IN: + return isIn(); + case FiacrePackage.CHANNEL_TYPE__OUT: + return isOut(); + case FiacrePackage.CHANNEL_TYPE__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.CHANNEL_TYPE__SIZE: + setSize((Expression)newValue); + return; + case FiacrePackage.CHANNEL_TYPE__IN: + setIn((Boolean)newValue); + return; + case FiacrePackage.CHANNEL_TYPE__OUT: + setOut((Boolean)newValue); + return; + case FiacrePackage.CHANNEL_TYPE__TYPE: + setType((Type)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.CHANNEL_TYPE__SIZE: + setSize((Expression)null); + return; + case FiacrePackage.CHANNEL_TYPE__IN: + setIn(IN_EDEFAULT); + return; + case FiacrePackage.CHANNEL_TYPE__OUT: + setOut(OUT_EDEFAULT); + return; + case FiacrePackage.CHANNEL_TYPE__TYPE: + setType((Type)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.CHANNEL_TYPE__SIZE: + return size != null; + case FiacrePackage.CHANNEL_TYPE__IN: + return in != IN_EDEFAULT; + case FiacrePackage.CHANNEL_TYPE__OUT: + return out != OUT_EDEFAULT; + case FiacrePackage.CHANNEL_TYPE__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (in: "); + result.append(in); + result.append(", out: "); + result.append(out); + result.append(')'); + return result.toString(); + } + +} //ChannelTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonEqualImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonEqualImpl.java new file mode 100644 index 0000000..7362bb8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonEqualImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ComparisonEqual; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Comparison Equal'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonEqualImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonEqualImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ComparisonEqualImpl extends ExpressionImpl implements ComparisonEqual +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected ComparisonEqualImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getComparisonEqual(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_EQUAL__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_EQUAL__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_EQUAL__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_EQUAL__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_EQUAL__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_EQUAL__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_EQUAL__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_EQUAL__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_EQUAL__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.COMPARISON_EQUAL__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_EQUAL__LEFT: + return getLeft(); + case FiacrePackage.COMPARISON_EQUAL__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_EQUAL__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.COMPARISON_EQUAL__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_EQUAL__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.COMPARISON_EQUAL__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_EQUAL__LEFT: + return left != null; + case FiacrePackage.COMPARISON_EQUAL__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ComparisonEqualImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonGreaterEqualImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonGreaterEqualImpl.java new file mode 100644 index 0000000..e098ba7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonGreaterEqualImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Comparison Greater Equal'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonGreaterEqualImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonGreaterEqualImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ComparisonGreaterEqualImpl extends ExpressionImpl implements ComparisonGreaterEqual +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected ComparisonGreaterEqualImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getComparisonGreaterEqual(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_GREATER_EQUAL__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_GREATER_EQUAL__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_GREATER_EQUAL__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_GREATER_EQUAL__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_GREATER_EQUAL__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_GREATER_EQUAL__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_GREATER_EQUAL__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_GREATER_EQUAL__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_GREATER_EQUAL__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.COMPARISON_GREATER_EQUAL__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_GREATER_EQUAL__LEFT: + return getLeft(); + case FiacrePackage.COMPARISON_GREATER_EQUAL__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_GREATER_EQUAL__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.COMPARISON_GREATER_EQUAL__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_GREATER_EQUAL__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.COMPARISON_GREATER_EQUAL__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_GREATER_EQUAL__LEFT: + return left != null; + case FiacrePackage.COMPARISON_GREATER_EQUAL__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ComparisonGreaterEqualImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonGreaterImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonGreaterImpl.java new file mode 100644 index 0000000..4edc2fd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonGreaterImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ComparisonGreater; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Comparison Greater'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonGreaterImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonGreaterImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ComparisonGreaterImpl extends ExpressionImpl implements ComparisonGreater +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected ComparisonGreaterImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getComparisonGreater(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_GREATER__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_GREATER__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_GREATER__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_GREATER__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_GREATER__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_GREATER__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_GREATER__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_GREATER__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_GREATER__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.COMPARISON_GREATER__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_GREATER__LEFT: + return getLeft(); + case FiacrePackage.COMPARISON_GREATER__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_GREATER__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.COMPARISON_GREATER__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_GREATER__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.COMPARISON_GREATER__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_GREATER__LEFT: + return left != null; + case FiacrePackage.COMPARISON_GREATER__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ComparisonGreaterImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonLesserEqualImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonLesserEqualImpl.java new file mode 100644 index 0000000..20067a2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonLesserEqualImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Comparison Lesser Equal'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonLesserEqualImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonLesserEqualImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ComparisonLesserEqualImpl extends ExpressionImpl implements ComparisonLesserEqual +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected ComparisonLesserEqualImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getComparisonLesserEqual(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_LESSER_EQUAL__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_LESSER_EQUAL__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_LESSER_EQUAL__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_LESSER_EQUAL__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_LESSER_EQUAL__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_LESSER_EQUAL__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_LESSER_EQUAL__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_LESSER_EQUAL__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_LESSER_EQUAL__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.COMPARISON_LESSER_EQUAL__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_LESSER_EQUAL__LEFT: + return getLeft(); + case FiacrePackage.COMPARISON_LESSER_EQUAL__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_LESSER_EQUAL__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.COMPARISON_LESSER_EQUAL__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_LESSER_EQUAL__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.COMPARISON_LESSER_EQUAL__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_LESSER_EQUAL__LEFT: + return left != null; + case FiacrePackage.COMPARISON_LESSER_EQUAL__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ComparisonLesserEqualImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonLesserImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonLesserImpl.java new file mode 100644 index 0000000..c6ab37c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonLesserImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ComparisonLesser; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Comparison Lesser'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonLesserImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonLesserImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ComparisonLesserImpl extends ExpressionImpl implements ComparisonLesser +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected ComparisonLesserImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getComparisonLesser(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_LESSER__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_LESSER__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_LESSER__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_LESSER__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_LESSER__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_LESSER__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_LESSER__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_LESSER__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_LESSER__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.COMPARISON_LESSER__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_LESSER__LEFT: + return getLeft(); + case FiacrePackage.COMPARISON_LESSER__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_LESSER__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.COMPARISON_LESSER__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_LESSER__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.COMPARISON_LESSER__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_LESSER__LEFT: + return left != null; + case FiacrePackage.COMPARISON_LESSER__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ComparisonLesserImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonNotEqualImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonNotEqualImpl.java new file mode 100644 index 0000000..b8e245f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComparisonNotEqualImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Comparison Not Equal'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonNotEqualImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComparisonNotEqualImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ComparisonNotEqualImpl extends ExpressionImpl implements ComparisonNotEqual +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected ComparisonNotEqualImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getComparisonNotEqual(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_NOT_EQUAL__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_NOT_EQUAL__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_NOT_EQUAL__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_NOT_EQUAL__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_NOT_EQUAL__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_NOT_EQUAL__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPARISON_NOT_EQUAL__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPARISON_NOT_EQUAL__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_NOT_EQUAL__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.COMPARISON_NOT_EQUAL__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_NOT_EQUAL__LEFT: + return getLeft(); + case FiacrePackage.COMPARISON_NOT_EQUAL__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_NOT_EQUAL__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.COMPARISON_NOT_EQUAL__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_NOT_EQUAL__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.COMPARISON_NOT_EQUAL__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPARISON_NOT_EQUAL__LEFT: + return left != null; + case FiacrePackage.COMPARISON_NOT_EQUAL__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ComparisonNotEqualImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComponentDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComponentDeclarationImpl.java new file mode 100644 index 0000000..234d600 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComponentDeclarationImpl.java @@ -0,0 +1,638 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ComponentDeclaration; +import fr.irit.fiacre.xtext.fiacre.Composition; +import fr.irit.fiacre.xtext.fiacre.Declaration; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration; +import fr.irit.fiacre.xtext.fiacre.NamedElement; +import fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration; +import fr.irit.fiacre.xtext.fiacre.ParametersDeclaration; +import fr.irit.fiacre.xtext.fiacre.PathDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.PortsDeclaration; +import fr.irit.fiacre.xtext.fiacre.PriorityDeclaration; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.VariablesDeclaration; + +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; + +/** + * + * An implementation of the model object 'Component Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentDeclarationImpl#getName Name}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentDeclarationImpl#getParameters Parameters}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentDeclarationImpl#getVariables Variables}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentDeclarationImpl#getPorts Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentDeclarationImpl#getLocalPorts Local Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentDeclarationImpl#getPriorities Priorities}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentDeclarationImpl#getPrelude Prelude}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentDeclarationImpl#getBody Body}
    • + *
    + * + * @generated + */ +public class ComponentDeclarationImpl extends RootDeclarationImpl implements ComponentDeclaration +{ + /** + * 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; + + /** + * The cached value of the '{@link #getParameters() Parameters}' containment reference list. + * + * + * @see #getParameters() + * @generated + * @ordered + */ + protected EList parameters; + + /** + * The cached value of the '{@link #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * The cached value of the '{@link #getPorts() Ports}' containment reference list. + * + * + * @see #getPorts() + * @generated + * @ordered + */ + protected EList ports; + + /** + * The cached value of the '{@link #getLocalPorts() Local Ports}' containment reference list. + * + * + * @see #getLocalPorts() + * @generated + * @ordered + */ + protected EList localPorts; + + /** + * The cached value of the '{@link #getPriorities() Priorities}' containment reference list. + * + * + * @see #getPriorities() + * @generated + * @ordered + */ + protected EList priorities; + + /** + * The cached value of the '{@link #getPrelude() Prelude}' containment reference. + * + * + * @see #getPrelude() + * @generated + * @ordered + */ + protected Statement prelude; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Composition body; + + /** + * + * + * @generated + */ + protected ComponentDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getComponentDeclaration(); + } + + /** + * + * + * @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, FiacrePackage.COMPONENT_DECLARATION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public EList getParameters() + { + if (parameters == null) + { + parameters = new EObjectContainmentEList(ParametersDeclaration.class, this, FiacrePackage.COMPONENT_DECLARATION__PARAMETERS); + } + return parameters; + } + + /** + * + * + * @generated + */ + public EList getVariables() + { + if (variables == null) + { + variables = new EObjectContainmentEList(VariablesDeclaration.class, this, FiacrePackage.COMPONENT_DECLARATION__VARIABLES); + } + return variables; + } + + /** + * + * + * @generated + */ + public EList getPorts() + { + if (ports == null) + { + ports = new EObjectContainmentEList(PortsDeclaration.class, this, FiacrePackage.COMPONENT_DECLARATION__PORTS); + } + return ports; + } + + /** + * + * + * @generated + */ + public EList getLocalPorts() + { + if (localPorts == null) + { + localPorts = new EObjectContainmentEList(LocalPortsDeclaration.class, this, FiacrePackage.COMPONENT_DECLARATION__LOCAL_PORTS); + } + return localPorts; + } + + /** + * + * + * @generated + */ + public EList getPriorities() + { + if (priorities == null) + { + priorities = new EObjectContainmentEList(PriorityDeclaration.class, this, FiacrePackage.COMPONENT_DECLARATION__PRIORITIES); + } + return priorities; + } + + /** + * + * + * @generated + */ + public Statement getPrelude() + { + return prelude; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetPrelude(Statement newPrelude, NotificationChain msgs) + { + Statement oldPrelude = prelude; + prelude = newPrelude; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPONENT_DECLARATION__PRELUDE, oldPrelude, newPrelude); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setPrelude(Statement newPrelude) + { + if (newPrelude != prelude) + { + NotificationChain msgs = null; + if (prelude != null) + msgs = ((InternalEObject)prelude).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPONENT_DECLARATION__PRELUDE, null, msgs); + if (newPrelude != null) + msgs = ((InternalEObject)newPrelude).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPONENT_DECLARATION__PRELUDE, null, msgs); + msgs = basicSetPrelude(newPrelude, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPONENT_DECLARATION__PRELUDE, newPrelude, newPrelude)); + } + + /** + * + * + * @generated + */ + public Composition getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Composition newBody, NotificationChain msgs) + { + Composition oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPONENT_DECLARATION__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setBody(Composition newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPONENT_DECLARATION__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPONENT_DECLARATION__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPONENT_DECLARATION__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.COMPONENT_DECLARATION__PARAMETERS: + return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); + case FiacrePackage.COMPONENT_DECLARATION__VARIABLES: + return ((InternalEList)getVariables()).basicRemove(otherEnd, msgs); + case FiacrePackage.COMPONENT_DECLARATION__PORTS: + return ((InternalEList)getPorts()).basicRemove(otherEnd, msgs); + case FiacrePackage.COMPONENT_DECLARATION__LOCAL_PORTS: + return ((InternalEList)getLocalPorts()).basicRemove(otherEnd, msgs); + case FiacrePackage.COMPONENT_DECLARATION__PRIORITIES: + return ((InternalEList)getPriorities()).basicRemove(otherEnd, msgs); + case FiacrePackage.COMPONENT_DECLARATION__PRELUDE: + return basicSetPrelude(null, msgs); + case FiacrePackage.COMPONENT_DECLARATION__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 FiacrePackage.COMPONENT_DECLARATION__NAME: + return getName(); + case FiacrePackage.COMPONENT_DECLARATION__PARAMETERS: + return getParameters(); + case FiacrePackage.COMPONENT_DECLARATION__VARIABLES: + return getVariables(); + case FiacrePackage.COMPONENT_DECLARATION__PORTS: + return getPorts(); + case FiacrePackage.COMPONENT_DECLARATION__LOCAL_PORTS: + return getLocalPorts(); + case FiacrePackage.COMPONENT_DECLARATION__PRIORITIES: + return getPriorities(); + case FiacrePackage.COMPONENT_DECLARATION__PRELUDE: + return getPrelude(); + case FiacrePackage.COMPONENT_DECLARATION__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.COMPONENT_DECLARATION__NAME: + setName((String)newValue); + return; + case FiacrePackage.COMPONENT_DECLARATION__PARAMETERS: + getParameters().clear(); + getParameters().addAll((Collection)newValue); + return; + case FiacrePackage.COMPONENT_DECLARATION__VARIABLES: + getVariables().clear(); + getVariables().addAll((Collection)newValue); + return; + case FiacrePackage.COMPONENT_DECLARATION__PORTS: + getPorts().clear(); + getPorts().addAll((Collection)newValue); + return; + case FiacrePackage.COMPONENT_DECLARATION__LOCAL_PORTS: + getLocalPorts().clear(); + getLocalPorts().addAll((Collection)newValue); + return; + case FiacrePackage.COMPONENT_DECLARATION__PRIORITIES: + getPriorities().clear(); + getPriorities().addAll((Collection)newValue); + return; + case FiacrePackage.COMPONENT_DECLARATION__PRELUDE: + setPrelude((Statement)newValue); + return; + case FiacrePackage.COMPONENT_DECLARATION__BODY: + setBody((Composition)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPONENT_DECLARATION__NAME: + setName(NAME_EDEFAULT); + return; + case FiacrePackage.COMPONENT_DECLARATION__PARAMETERS: + getParameters().clear(); + return; + case FiacrePackage.COMPONENT_DECLARATION__VARIABLES: + getVariables().clear(); + return; + case FiacrePackage.COMPONENT_DECLARATION__PORTS: + getPorts().clear(); + return; + case FiacrePackage.COMPONENT_DECLARATION__LOCAL_PORTS: + getLocalPorts().clear(); + return; + case FiacrePackage.COMPONENT_DECLARATION__PRIORITIES: + getPriorities().clear(); + return; + case FiacrePackage.COMPONENT_DECLARATION__PRELUDE: + setPrelude((Statement)null); + return; + case FiacrePackage.COMPONENT_DECLARATION__BODY: + setBody((Composition)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPONENT_DECLARATION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case FiacrePackage.COMPONENT_DECLARATION__PARAMETERS: + return parameters != null && !parameters.isEmpty(); + case FiacrePackage.COMPONENT_DECLARATION__VARIABLES: + return variables != null && !variables.isEmpty(); + case FiacrePackage.COMPONENT_DECLARATION__PORTS: + return ports != null && !ports.isEmpty(); + case FiacrePackage.COMPONENT_DECLARATION__LOCAL_PORTS: + return localPorts != null && !localPorts.isEmpty(); + case FiacrePackage.COMPONENT_DECLARATION__PRIORITIES: + return priorities != null && !priorities.isEmpty(); + case FiacrePackage.COMPONENT_DECLARATION__PRELUDE: + return prelude != null; + case FiacrePackage.COMPONENT_DECLARATION__BODY: + return body != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) + { + if (baseClass == PathDeclarationUse.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + if (baseClass == NamedElement.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.COMPONENT_DECLARATION__NAME: return FiacrePackage.NAMED_ELEMENT__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + if (baseClass == ParameterizedDeclaration.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.COMPONENT_DECLARATION__PARAMETERS: return FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS; + case FiacrePackage.COMPONENT_DECLARATION__VARIABLES: return FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) + { + if (baseClass == PathDeclarationUse.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + if (baseClass == NamedElement.class) + { + switch (baseFeatureID) + { + case FiacrePackage.NAMED_ELEMENT__NAME: return FiacrePackage.COMPONENT_DECLARATION__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + if (baseClass == ParameterizedDeclaration.class) + { + switch (baseFeatureID) + { + case FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS: return FiacrePackage.COMPONENT_DECLARATION__PARAMETERS; + case FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES: return FiacrePackage.COMPONENT_DECLARATION__VARIABLES; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @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(); + } + +} //ComponentDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComponentInstanceImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComponentInstanceImpl.java new file mode 100644 index 0000000..43e6930 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ComponentInstanceImpl.java @@ -0,0 +1,284 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ComponentInstance; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration; + +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; + +/** + * + * An implementation of the model object 'Component Instance'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentInstanceImpl#getComponent Component}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentInstanceImpl#getPorts Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ComponentInstanceImpl#getParameters Parameters}
    • + *
    + * + * @generated + */ +public class ComponentInstanceImpl extends MinimalEObjectImpl.Container implements ComponentInstance +{ + /** + * The cached value of the '{@link #getComponent() Component}' reference. + * + * + * @see #getComponent() + * @generated + * @ordered + */ + protected ParameterizedDeclaration component; + + /** + * The cached value of the '{@link #getPorts() Ports}' containment reference list. + * + * + * @see #getPorts() + * @generated + * @ordered + */ + protected EList ports; + + /** + * The cached value of the '{@link #getParameters() Parameters}' containment reference list. + * + * + * @see #getParameters() + * @generated + * @ordered + */ + protected EList parameters; + + /** + * + * + * @generated + */ + protected ComponentInstanceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getComponentInstance(); + } + + /** + * + * + * @generated + */ + public ParameterizedDeclaration getComponent() + { + if (component != null && component.eIsProxy()) + { + InternalEObject oldComponent = (InternalEObject)component; + component = (ParameterizedDeclaration)eResolveProxy(oldComponent); + if (component != oldComponent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.COMPONENT_INSTANCE__COMPONENT, oldComponent, component)); + } + } + return component; + } + + /** + * + * + * @generated + */ + public ParameterizedDeclaration basicGetComponent() + { + return component; + } + + /** + * + * + * @generated + */ + public void setComponent(ParameterizedDeclaration newComponent) + { + ParameterizedDeclaration oldComponent = component; + component = newComponent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPONENT_INSTANCE__COMPONENT, oldComponent, component)); + } + + /** + * + * + * @generated + */ + public EList getPorts() + { + if (ports == null) + { + ports = new EObjectContainmentEList(Expression.class, this, FiacrePackage.COMPONENT_INSTANCE__PORTS); + } + return ports; + } + + /** + * + * + * @generated + */ + public EList getParameters() + { + if (parameters == null) + { + parameters = new EObjectContainmentEList(Expression.class, this, FiacrePackage.COMPONENT_INSTANCE__PARAMETERS); + } + return parameters; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.COMPONENT_INSTANCE__PORTS: + return ((InternalEList)getPorts()).basicRemove(otherEnd, msgs); + case FiacrePackage.COMPONENT_INSTANCE__PARAMETERS: + return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.COMPONENT_INSTANCE__COMPONENT: + if (resolve) return getComponent(); + return basicGetComponent(); + case FiacrePackage.COMPONENT_INSTANCE__PORTS: + return getPorts(); + case FiacrePackage.COMPONENT_INSTANCE__PARAMETERS: + return getParameters(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.COMPONENT_INSTANCE__COMPONENT: + setComponent((ParameterizedDeclaration)newValue); + return; + case FiacrePackage.COMPONENT_INSTANCE__PORTS: + getPorts().clear(); + getPorts().addAll((Collection)newValue); + return; + case FiacrePackage.COMPONENT_INSTANCE__PARAMETERS: + getParameters().clear(); + getParameters().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPONENT_INSTANCE__COMPONENT: + setComponent((ParameterizedDeclaration)null); + return; + case FiacrePackage.COMPONENT_INSTANCE__PORTS: + getPorts().clear(); + return; + case FiacrePackage.COMPONENT_INSTANCE__PARAMETERS: + getParameters().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPONENT_INSTANCE__COMPONENT: + return component != null; + case FiacrePackage.COMPONENT_INSTANCE__PORTS: + return ports != null && !ports.isEmpty(); + case FiacrePackage.COMPONENT_INSTANCE__PARAMETERS: + return parameters != null && !parameters.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ComponentInstanceImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CompositeBlockImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CompositeBlockImpl.java new file mode 100644 index 0000000..b788ad6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CompositeBlockImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.CompositeBlock; +import fr.irit.fiacre.xtext.fiacre.Composition; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Composite Block'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.CompositeBlockImpl#getComposition Composition}
    • + *
    + * + * @generated + */ +public class CompositeBlockImpl extends BlockImpl implements CompositeBlock +{ + /** + * The cached value of the '{@link #getComposition() Composition}' containment reference. + * + * + * @see #getComposition() + * @generated + * @ordered + */ + protected Composition composition; + + /** + * + * + * @generated + */ + protected CompositeBlockImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getCompositeBlock(); + } + + /** + * + * + * @generated + */ + public Composition getComposition() + { + return composition; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetComposition(Composition newComposition, NotificationChain msgs) + { + Composition oldComposition = composition; + composition = newComposition; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPOSITE_BLOCK__COMPOSITION, oldComposition, newComposition); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setComposition(Composition newComposition) + { + if (newComposition != composition) + { + NotificationChain msgs = null; + if (composition != null) + msgs = ((InternalEObject)composition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPOSITE_BLOCK__COMPOSITION, null, msgs); + if (newComposition != null) + msgs = ((InternalEObject)newComposition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPOSITE_BLOCK__COMPOSITION, null, msgs); + msgs = basicSetComposition(newComposition, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPOSITE_BLOCK__COMPOSITION, newComposition, newComposition)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.COMPOSITE_BLOCK__COMPOSITION: + return basicSetComposition(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.COMPOSITE_BLOCK__COMPOSITION: + return getComposition(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.COMPOSITE_BLOCK__COMPOSITION: + setComposition((Composition)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPOSITE_BLOCK__COMPOSITION: + setComposition((Composition)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPOSITE_BLOCK__COMPOSITION: + return composition != null; + } + return super.eIsSet(featureID); + } + +} //CompositeBlockImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CompositionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CompositionImpl.java new file mode 100644 index 0000000..5a4aec7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/CompositionImpl.java @@ -0,0 +1,252 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Block; +import fr.irit.fiacre.xtext.fiacre.Composition; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PortSet; + +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; + +/** + * + * An implementation of the model object 'Composition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.CompositionImpl#getGlobal Global}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.CompositionImpl#getBlocks Blocks}
    • + *
    + * + * @generated + */ +public class CompositionImpl extends MinimalEObjectImpl.Container implements Composition +{ + /** + * The cached value of the '{@link #getGlobal() Global}' containment reference. + * + * + * @see #getGlobal() + * @generated + * @ordered + */ + protected PortSet global; + + /** + * The cached value of the '{@link #getBlocks() Blocks}' containment reference list. + * + * + * @see #getBlocks() + * @generated + * @ordered + */ + protected EList blocks; + + /** + * + * + * @generated + */ + protected CompositionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getComposition(); + } + + /** + * + * + * @generated + */ + public PortSet getGlobal() + { + return global; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetGlobal(PortSet newGlobal, NotificationChain msgs) + { + PortSet oldGlobal = global; + global = newGlobal; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPOSITION__GLOBAL, oldGlobal, newGlobal); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setGlobal(PortSet newGlobal) + { + if (newGlobal != global) + { + NotificationChain msgs = null; + if (global != null) + msgs = ((InternalEObject)global).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPOSITION__GLOBAL, null, msgs); + if (newGlobal != null) + msgs = ((InternalEObject)newGlobal).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.COMPOSITION__GLOBAL, null, msgs); + msgs = basicSetGlobal(newGlobal, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.COMPOSITION__GLOBAL, newGlobal, newGlobal)); + } + + /** + * + * + * @generated + */ + public EList getBlocks() + { + if (blocks == null) + { + blocks = new EObjectContainmentEList(Block.class, this, FiacrePackage.COMPOSITION__BLOCKS); + } + return blocks; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.COMPOSITION__GLOBAL: + return basicSetGlobal(null, msgs); + case FiacrePackage.COMPOSITION__BLOCKS: + return ((InternalEList)getBlocks()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.COMPOSITION__GLOBAL: + return getGlobal(); + case FiacrePackage.COMPOSITION__BLOCKS: + return getBlocks(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.COMPOSITION__GLOBAL: + setGlobal((PortSet)newValue); + return; + case FiacrePackage.COMPOSITION__BLOCKS: + getBlocks().clear(); + getBlocks().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPOSITION__GLOBAL: + setGlobal((PortSet)null); + return; + case FiacrePackage.COMPOSITION__BLOCKS: + getBlocks().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.COMPOSITION__GLOBAL: + return global != null; + case FiacrePackage.COMPOSITION__BLOCKS: + return blocks != null && !blocks.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //CompositionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConditionalImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConditionalImpl.java new file mode 100644 index 0000000..e90d99a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConditionalImpl.java @@ -0,0 +1,346 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Conditional; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Conditional'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConditionalImpl#getCondition Condition}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConditionalImpl#getThen Then}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConditionalImpl#getElse Else}
    • + *
    + * + * @generated + */ +public class ConditionalImpl extends ExpressionImpl implements Conditional +{ + /** + * The cached value of the '{@link #getCondition() Condition}' containment reference. + * + * + * @see #getCondition() + * @generated + * @ordered + */ + protected Expression condition; + + /** + * The cached value of the '{@link #getThen() Then}' containment reference. + * + * + * @see #getThen() + * @generated + * @ordered + */ + protected Expression then; + + /** + * The cached value of the '{@link #getElse() Else}' containment reference. + * + * + * @see #getElse() + * @generated + * @ordered + */ + protected Expression else_; + + /** + * + * + * @generated + */ + protected ConditionalImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getConditional(); + } + + /** + * + * + * @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, FiacrePackage.CONDITIONAL__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 - FiacrePackage.CONDITIONAL__CONDITION, null, msgs); + if (newCondition != null) + msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONDITIONAL__CONDITION, null, msgs); + msgs = basicSetCondition(newCondition, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONDITIONAL__CONDITION, newCondition, newCondition)); + } + + /** + * + * + * @generated + */ + public Expression getThen() + { + return then; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetThen(Expression newThen, NotificationChain msgs) + { + Expression oldThen = then; + then = newThen; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CONDITIONAL__THEN, oldThen, newThen); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setThen(Expression newThen) + { + if (newThen != then) + { + NotificationChain msgs = null; + if (then != null) + msgs = ((InternalEObject)then).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONDITIONAL__THEN, null, msgs); + if (newThen != null) + msgs = ((InternalEObject)newThen).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONDITIONAL__THEN, null, msgs); + msgs = basicSetThen(newThen, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONDITIONAL__THEN, newThen, newThen)); + } + + /** + * + * + * @generated + */ + public Expression getElse() + { + return else_; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetElse(Expression newElse, NotificationChain msgs) + { + Expression oldElse = else_; + else_ = newElse; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CONDITIONAL__ELSE, oldElse, newElse); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setElse(Expression newElse) + { + if (newElse != else_) + { + NotificationChain msgs = null; + if (else_ != null) + msgs = ((InternalEObject)else_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONDITIONAL__ELSE, null, msgs); + if (newElse != null) + msgs = ((InternalEObject)newElse).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONDITIONAL__ELSE, null, msgs); + msgs = basicSetElse(newElse, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONDITIONAL__ELSE, newElse, newElse)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.CONDITIONAL__CONDITION: + return basicSetCondition(null, msgs); + case FiacrePackage.CONDITIONAL__THEN: + return basicSetThen(null, msgs); + case FiacrePackage.CONDITIONAL__ELSE: + return basicSetElse(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.CONDITIONAL__CONDITION: + return getCondition(); + case FiacrePackage.CONDITIONAL__THEN: + return getThen(); + case FiacrePackage.CONDITIONAL__ELSE: + return getElse(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.CONDITIONAL__CONDITION: + setCondition((Expression)newValue); + return; + case FiacrePackage.CONDITIONAL__THEN: + setThen((Expression)newValue); + return; + case FiacrePackage.CONDITIONAL__ELSE: + setElse((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONDITIONAL__CONDITION: + setCondition((Expression)null); + return; + case FiacrePackage.CONDITIONAL__THEN: + setThen((Expression)null); + return; + case FiacrePackage.CONDITIONAL__ELSE: + setElse((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONDITIONAL__CONDITION: + return condition != null; + case FiacrePackage.CONDITIONAL__THEN: + return then != null; + case FiacrePackage.CONDITIONAL__ELSE: + return else_ != null; + } + return super.eIsSet(featureID); + } + +} //ConditionalImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConditionalStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConditionalStatementImpl.java new file mode 100644 index 0000000..7aea23a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConditionalStatementImpl.java @@ -0,0 +1,394 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ConditionalStatement; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Statement; + +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; + +/** + * + * An implementation of the model object 'Conditional Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConditionalStatementImpl#getCondition Condition}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConditionalStatementImpl#getThen Then}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConditionalStatementImpl#getElseif Elseif}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConditionalStatementImpl#getElse Else}
    • + *
    + * + * @generated + */ +public class ConditionalStatementImpl extends StatementImpl implements ConditionalStatement +{ + /** + * The cached value of the '{@link #getCondition() Condition}' containment reference. + * + * + * @see #getCondition() + * @generated + * @ordered + */ + protected Expression condition; + + /** + * The cached value of the '{@link #getThen() Then}' containment reference. + * + * + * @see #getThen() + * @generated + * @ordered + */ + protected Statement then; + + /** + * The cached value of the '{@link #getElseif() Elseif}' containment reference list. + * + * + * @see #getElseif() + * @generated + * @ordered + */ + protected EList elseif; + + /** + * The cached value of the '{@link #getElse() Else}' containment reference. + * + * + * @see #getElse() + * @generated + * @ordered + */ + protected Statement else_; + + /** + * + * + * @generated + */ + protected ConditionalStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getConditionalStatement(); + } + + /** + * + * + * @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, FiacrePackage.CONDITIONAL_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 - FiacrePackage.CONDITIONAL_STATEMENT__CONDITION, null, msgs); + if (newCondition != null) + msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONDITIONAL_STATEMENT__CONDITION, null, msgs); + msgs = basicSetCondition(newCondition, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONDITIONAL_STATEMENT__CONDITION, newCondition, newCondition)); + } + + /** + * + * + * @generated + */ + public Statement getThen() + { + return then; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetThen(Statement newThen, NotificationChain msgs) + { + Statement oldThen = then; + then = newThen; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CONDITIONAL_STATEMENT__THEN, oldThen, newThen); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setThen(Statement newThen) + { + if (newThen != then) + { + NotificationChain msgs = null; + if (then != null) + msgs = ((InternalEObject)then).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONDITIONAL_STATEMENT__THEN, null, msgs); + if (newThen != null) + msgs = ((InternalEObject)newThen).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONDITIONAL_STATEMENT__THEN, null, msgs); + msgs = basicSetThen(newThen, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONDITIONAL_STATEMENT__THEN, newThen, newThen)); + } + + /** + * + * + * @generated + */ + public EList getElseif() + { + if (elseif == null) + { + elseif = new EObjectContainmentEList(ExtendedConditionalStatement.class, this, FiacrePackage.CONDITIONAL_STATEMENT__ELSEIF); + } + return elseif; + } + + /** + * + * + * @generated + */ + public Statement getElse() + { + return else_; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetElse(Statement newElse, NotificationChain msgs) + { + Statement oldElse = else_; + else_ = newElse; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CONDITIONAL_STATEMENT__ELSE, oldElse, newElse); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setElse(Statement newElse) + { + if (newElse != else_) + { + NotificationChain msgs = null; + if (else_ != null) + msgs = ((InternalEObject)else_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONDITIONAL_STATEMENT__ELSE, null, msgs); + if (newElse != null) + msgs = ((InternalEObject)newElse).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONDITIONAL_STATEMENT__ELSE, null, msgs); + msgs = basicSetElse(newElse, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONDITIONAL_STATEMENT__ELSE, newElse, newElse)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.CONDITIONAL_STATEMENT__CONDITION: + return basicSetCondition(null, msgs); + case FiacrePackage.CONDITIONAL_STATEMENT__THEN: + return basicSetThen(null, msgs); + case FiacrePackage.CONDITIONAL_STATEMENT__ELSEIF: + return ((InternalEList)getElseif()).basicRemove(otherEnd, msgs); + case FiacrePackage.CONDITIONAL_STATEMENT__ELSE: + return basicSetElse(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.CONDITIONAL_STATEMENT__CONDITION: + return getCondition(); + case FiacrePackage.CONDITIONAL_STATEMENT__THEN: + return getThen(); + case FiacrePackage.CONDITIONAL_STATEMENT__ELSEIF: + return getElseif(); + case FiacrePackage.CONDITIONAL_STATEMENT__ELSE: + return getElse(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.CONDITIONAL_STATEMENT__CONDITION: + setCondition((Expression)newValue); + return; + case FiacrePackage.CONDITIONAL_STATEMENT__THEN: + setThen((Statement)newValue); + return; + case FiacrePackage.CONDITIONAL_STATEMENT__ELSEIF: + getElseif().clear(); + getElseif().addAll((Collection)newValue); + return; + case FiacrePackage.CONDITIONAL_STATEMENT__ELSE: + setElse((Statement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONDITIONAL_STATEMENT__CONDITION: + setCondition((Expression)null); + return; + case FiacrePackage.CONDITIONAL_STATEMENT__THEN: + setThen((Statement)null); + return; + case FiacrePackage.CONDITIONAL_STATEMENT__ELSEIF: + getElseif().clear(); + return; + case FiacrePackage.CONDITIONAL_STATEMENT__ELSE: + setElse((Statement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONDITIONAL_STATEMENT__CONDITION: + return condition != null; + case FiacrePackage.CONDITIONAL_STATEMENT__THEN: + return then != null; + case FiacrePackage.CONDITIONAL_STATEMENT__ELSEIF: + return elseif != null && !elseif.isEmpty(); + case FiacrePackage.CONDITIONAL_STATEMENT__ELSE: + return else_ != null; + } + return super.eIsSet(featureID); + } + +} //ConditionalStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConjunctionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConjunctionImpl.java new file mode 100644 index 0000000..8162f74 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConjunctionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Conjunction; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Conjunction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConjunctionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConjunctionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ConjunctionImpl extends ExpressionImpl implements Conjunction +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected ConjunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getConjunction(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CONJUNCTION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONJUNCTION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONJUNCTION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONJUNCTION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CONJUNCTION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONJUNCTION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONJUNCTION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONJUNCTION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.CONJUNCTION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.CONJUNCTION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.CONJUNCTION__LEFT: + return getLeft(); + case FiacrePackage.CONJUNCTION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.CONJUNCTION__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.CONJUNCTION__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONJUNCTION__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.CONJUNCTION__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONJUNCTION__LEFT: + return left != null; + case FiacrePackage.CONJUNCTION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ConjunctionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantDeclarationImpl.java new file mode 100644 index 0000000..a7f4410 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantDeclarationImpl.java @@ -0,0 +1,431 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.ConstantDeclaration; +import fr.irit.fiacre.xtext.fiacre.Declaration; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NamedElement; +import fr.irit.fiacre.xtext.fiacre.Type; + +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; + +/** + * + * An implementation of the model object 'Constant Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConstantDeclarationImpl#getName Name}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConstantDeclarationImpl#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConstantDeclarationImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class ConstantDeclarationImpl extends ConstantDeclarationUseImpl implements ConstantDeclaration +{ + /** + * 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; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected Type type; + + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected Expression value; + + /** + * + * + * @generated + */ + protected ConstantDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getConstantDeclaration(); + } + + /** + * + * + * @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, FiacrePackage.CONSTANT_DECLARATION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public Type getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(Type newType, NotificationChain msgs) + { + Type oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CONSTANT_DECLARATION__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(Type newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONSTANT_DECLARATION__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONSTANT_DECLARATION__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONSTANT_DECLARATION__TYPE, newType, newType)); + } + + /** + * + * + * @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, FiacrePackage.CONSTANT_DECLARATION__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 - FiacrePackage.CONSTANT_DECLARATION__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONSTANT_DECLARATION__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONSTANT_DECLARATION__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.CONSTANT_DECLARATION__TYPE: + return basicSetType(null, msgs); + case FiacrePackage.CONSTANT_DECLARATION__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 FiacrePackage.CONSTANT_DECLARATION__NAME: + return getName(); + case FiacrePackage.CONSTANT_DECLARATION__TYPE: + return getType(); + case FiacrePackage.CONSTANT_DECLARATION__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.CONSTANT_DECLARATION__NAME: + setName((String)newValue); + return; + case FiacrePackage.CONSTANT_DECLARATION__TYPE: + setType((Type)newValue); + return; + case FiacrePackage.CONSTANT_DECLARATION__VALUE: + setValue((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONSTANT_DECLARATION__NAME: + setName(NAME_EDEFAULT); + return; + case FiacrePackage.CONSTANT_DECLARATION__TYPE: + setType((Type)null); + return; + case FiacrePackage.CONSTANT_DECLARATION__VALUE: + setValue((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONSTANT_DECLARATION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case FiacrePackage.CONSTANT_DECLARATION__TYPE: + return type != null; + case FiacrePackage.CONSTANT_DECLARATION__VALUE: + return value != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) + { + if (baseClass == ExpressionDeclarationUse.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + if (baseClass == BoundDeclarationUse.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + if (baseClass == NamedElement.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.CONSTANT_DECLARATION__NAME: return FiacrePackage.NAMED_ELEMENT__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) + { + if (baseClass == ExpressionDeclarationUse.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + if (baseClass == BoundDeclarationUse.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + if (baseClass == NamedElement.class) + { + switch (baseFeatureID) + { + case FiacrePackage.NAMED_ELEMENT__NAME: return FiacrePackage.CONSTANT_DECLARATION__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @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(); + } + +} //ConstantDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantDeclarationUseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantDeclarationUseImpl.java new file mode 100644 index 0000000..9635c94 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantDeclarationUseImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ConstantDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Constant Declaration Use'. + * + * + * @generated + */ +public class ConstantDeclarationUseImpl extends MinimalEObjectImpl.Container implements ConstantDeclarationUse +{ + /** + * + * + * @generated + */ + protected ConstantDeclarationUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getConstantDeclarationUse(); + } + +} //ConstantDeclarationUseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantPatternImpl.java new file mode 100644 index 0000000..bf7675c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstantPatternImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ConstantPattern; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LiteralExpression; + +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; + +/** + * + * An implementation of the model object 'Constant Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConstantPatternImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class ConstantPatternImpl extends PatternImpl implements ConstantPattern +{ + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected LiteralExpression value; + + /** + * + * + * @generated + */ + protected ConstantPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getConstantPattern(); + } + + /** + * + * + * @generated + */ + public LiteralExpression getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(LiteralExpression newValue, NotificationChain msgs) + { + LiteralExpression oldValue = value; + value = newValue; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.CONSTANT_PATTERN__VALUE, oldValue, newValue); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(LiteralExpression newValue) + { + if (newValue != value) + { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONSTANT_PATTERN__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.CONSTANT_PATTERN__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.CONSTANT_PATTERN__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.CONSTANT_PATTERN__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 FiacrePackage.CONSTANT_PATTERN__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.CONSTANT_PATTERN__VALUE: + setValue((LiteralExpression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONSTANT_PATTERN__VALUE: + setValue((LiteralExpression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONSTANT_PATTERN__VALUE: + return value != null; + } + return super.eIsSet(featureID); + } + +} //ConstantPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstructionExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstructionExpressionImpl.java new file mode 100644 index 0000000..b68fdf8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstructionExpressionImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ConstructionExpression; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Construction Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConstructionExpressionImpl#getParameters Parameters}
    • + *
    + * + * @generated + */ +public class ConstructionExpressionImpl extends IdentifierExpressionImpl implements ConstructionExpression +{ + /** + * The cached value of the '{@link #getParameters() Parameters}' containment reference list. + * + * + * @see #getParameters() + * @generated + * @ordered + */ + protected EList parameters; + + /** + * + * + * @generated + */ + protected ConstructionExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getConstructionExpression(); + } + + /** + * + * + * @generated + */ + public EList getParameters() + { + if (parameters == null) + { + parameters = new EObjectContainmentEList(Expression.class, this, FiacrePackage.CONSTRUCTION_EXPRESSION__PARAMETERS); + } + return parameters; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.CONSTRUCTION_EXPRESSION__PARAMETERS: + return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.CONSTRUCTION_EXPRESSION__PARAMETERS: + return getParameters(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.CONSTRUCTION_EXPRESSION__PARAMETERS: + getParameters().clear(); + getParameters().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONSTRUCTION_EXPRESSION__PARAMETERS: + getParameters().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONSTRUCTION_EXPRESSION__PARAMETERS: + return parameters != null && !parameters.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ConstructionExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstructorPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstructorPatternImpl.java new file mode 100644 index 0000000..0061a36 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ConstructorPatternImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ConstructorPattern; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Pattern; + +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; + +/** + * + * An implementation of the model object 'Constructor Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ConstructorPatternImpl#getParameters Parameters}
    • + *
    + * + * @generated + */ +public class ConstructorPatternImpl extends IdentifierPatternImpl implements ConstructorPattern +{ + /** + * The cached value of the '{@link #getParameters() Parameters}' containment reference list. + * + * + * @see #getParameters() + * @generated + * @ordered + */ + protected EList parameters; + + /** + * + * + * @generated + */ + protected ConstructorPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getConstructorPattern(); + } + + /** + * + * + * @generated + */ + public EList getParameters() + { + if (parameters == null) + { + parameters = new EObjectContainmentEList(Pattern.class, this, FiacrePackage.CONSTRUCTOR_PATTERN__PARAMETERS); + } + return parameters; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.CONSTRUCTOR_PATTERN__PARAMETERS: + return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.CONSTRUCTOR_PATTERN__PARAMETERS: + return getParameters(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.CONSTRUCTOR_PATTERN__PARAMETERS: + getParameters().clear(); + getParameters().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONSTRUCTOR_PATTERN__PARAMETERS: + getParameters().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.CONSTRUCTOR_PATTERN__PARAMETERS: + return parameters != null && !parameters.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ConstructorPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DeadlockFreePatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DeadlockFreePatternImpl.java new file mode 100644 index 0000000..38c2323 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DeadlockFreePatternImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Deadlock Free Pattern'. + * + * + * @generated + */ +public class DeadlockFreePatternImpl extends PatternPropertyImpl implements DeadlockFreePattern +{ + /** + * + * + * @generated + */ + protected DeadlockFreePatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getDeadlockFreePattern(); + } + +} //DeadlockFreePatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DecimalLowerBoundImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DecimalLowerBoundImpl.java new file mode 100644 index 0000000..e04f464 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DecimalLowerBoundImpl.java @@ -0,0 +1,187 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.DecimalLowerBound; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Decimal Lower Bound'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.DecimalLowerBoundImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class DecimalLowerBoundImpl extends LowerBoundImpl implements DecimalLowerBound +{ + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final float VALUE_EDEFAULT = 0.0F; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected float value = VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected DecimalLowerBoundImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getDecimalLowerBound(); + } + + /** + * + * + * @generated + */ + public float getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public void setValue(float newValue) + { + float oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.DECIMAL_LOWER_BOUND__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.DECIMAL_LOWER_BOUND__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.DECIMAL_LOWER_BOUND__VALUE: + setValue((Float)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.DECIMAL_LOWER_BOUND__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.DECIMAL_LOWER_BOUND__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @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(); + } + +} //DecimalLowerBoundImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DecimalUpperBoundImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DecimalUpperBoundImpl.java new file mode 100644 index 0000000..3a2c448 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DecimalUpperBoundImpl.java @@ -0,0 +1,299 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.DecimalUpperBound; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Decimal Upper Bound'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.DecimalUpperBoundImpl#getValue Value}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.DecimalUpperBoundImpl#isLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.DecimalUpperBoundImpl#isRight Right}
    • + *
    + * + * @generated + */ +public class DecimalUpperBoundImpl extends UpperBoundImpl implements DecimalUpperBound +{ + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final float VALUE_EDEFAULT = 0.0F; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected float value = VALUE_EDEFAULT; + + /** + * The default value of the '{@link #isLeft() Left}' attribute. + * + * + * @see #isLeft() + * @generated + * @ordered + */ + protected static final boolean LEFT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isLeft() Left}' attribute. + * + * + * @see #isLeft() + * @generated + * @ordered + */ + protected boolean left = LEFT_EDEFAULT; + + /** + * The default value of the '{@link #isRight() Right}' attribute. + * + * + * @see #isRight() + * @generated + * @ordered + */ + protected static final boolean RIGHT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isRight() Right}' attribute. + * + * + * @see #isRight() + * @generated + * @ordered + */ + protected boolean right = RIGHT_EDEFAULT; + + /** + * + * + * @generated + */ + protected DecimalUpperBoundImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getDecimalUpperBound(); + } + + /** + * + * + * @generated + */ + public float getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public void setValue(float newValue) + { + float oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.DECIMAL_UPPER_BOUND__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + public boolean isLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public void setLeft(boolean newLeft) + { + boolean oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.DECIMAL_UPPER_BOUND__LEFT, oldLeft, left)); + } + + /** + * + * + * @generated + */ + public boolean isRight() + { + return right; + } + + /** + * + * + * @generated + */ + public void setRight(boolean newRight) + { + boolean oldRight = right; + right = newRight; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.DECIMAL_UPPER_BOUND__RIGHT, oldRight, right)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.DECIMAL_UPPER_BOUND__VALUE: + return getValue(); + case FiacrePackage.DECIMAL_UPPER_BOUND__LEFT: + return isLeft(); + case FiacrePackage.DECIMAL_UPPER_BOUND__RIGHT: + return isRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.DECIMAL_UPPER_BOUND__VALUE: + setValue((Float)newValue); + return; + case FiacrePackage.DECIMAL_UPPER_BOUND__LEFT: + setLeft((Boolean)newValue); + return; + case FiacrePackage.DECIMAL_UPPER_BOUND__RIGHT: + setRight((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.DECIMAL_UPPER_BOUND__VALUE: + setValue(VALUE_EDEFAULT); + return; + case FiacrePackage.DECIMAL_UPPER_BOUND__LEFT: + setLeft(LEFT_EDEFAULT); + return; + case FiacrePackage.DECIMAL_UPPER_BOUND__RIGHT: + setRight(RIGHT_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.DECIMAL_UPPER_BOUND__VALUE: + return value != VALUE_EDEFAULT; + case FiacrePackage.DECIMAL_UPPER_BOUND__LEFT: + return left != LEFT_EDEFAULT; + case FiacrePackage.DECIMAL_UPPER_BOUND__RIGHT: + return right != RIGHT_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(", left: "); + result.append(left); + result.append(", right: "); + result.append(right); + result.append(')'); + return result.toString(); + } + +} //DecimalUpperBoundImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DeclarationImpl.java new file mode 100644 index 0000000..f1e8214 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DeclarationImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Declaration; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Declaration'. + * + * + * @generated + */ +public class DeclarationImpl extends NamedElementImpl implements Declaration +{ + /** + * + * + * @generated + */ + protected DeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getDeclaration(); + } + +} //DeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DisjunctionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DisjunctionImpl.java new file mode 100644 index 0000000..4ce4c5b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DisjunctionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Disjunction; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Disjunction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.DisjunctionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.DisjunctionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class DisjunctionImpl extends ExpressionImpl implements Disjunction +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected DisjunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getDisjunction(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.DISJUNCTION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.DISJUNCTION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.DISJUNCTION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.DISJUNCTION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.DISJUNCTION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.DISJUNCTION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.DISJUNCTION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.DISJUNCTION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.DISJUNCTION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.DISJUNCTION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.DISJUNCTION__LEFT: + return getLeft(); + case FiacrePackage.DISJUNCTION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.DISJUNCTION__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.DISJUNCTION__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.DISJUNCTION__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.DISJUNCTION__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.DISJUNCTION__LEFT: + return left != null; + case FiacrePackage.DISJUNCTION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //DisjunctionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DivisionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DivisionImpl.java new file mode 100644 index 0000000..c6852fb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/DivisionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Division; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Division'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.DivisionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.DivisionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class DivisionImpl extends ExpressionImpl implements Division +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected DivisionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getDivision(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.DIVISION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.DIVISION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.DIVISION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.DIVISION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.DIVISION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.DIVISION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.DIVISION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.DIVISION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.DIVISION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.DIVISION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.DIVISION__LEFT: + return getLeft(); + case FiacrePackage.DIVISION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.DIVISION__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.DIVISION__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.DIVISION__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.DIVISION__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.DIVISION__LEFT: + return left != null; + case FiacrePackage.DIVISION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //DivisionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EnqueueExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EnqueueExpressionImpl.java new file mode 100644 index 0000000..e514d33 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EnqueueExpressionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.EnqueueExpression; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +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; + +/** + * + * An implementation of the model object 'Enqueue Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.EnqueueExpressionImpl#getElement Element}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.EnqueueExpressionImpl#getQueue Queue}
    • + *
    + * + * @generated + */ +public class EnqueueExpressionImpl extends ExpressionImpl implements EnqueueExpression +{ + /** + * The cached value of the '{@link #getElement() Element}' containment reference. + * + * + * @see #getElement() + * @generated + * @ordered + */ + protected Expression element; + + /** + * The cached value of the '{@link #getQueue() Queue}' containment reference. + * + * + * @see #getQueue() + * @generated + * @ordered + */ + protected Expression queue; + + /** + * + * + * @generated + */ + protected EnqueueExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getEnqueueExpression(); + } + + /** + * + * + * @generated + */ + public Expression getElement() + { + return element; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetElement(Expression newElement, NotificationChain msgs) + { + Expression oldElement = element; + element = newElement; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ENQUEUE_EXPRESSION__ELEMENT, oldElement, newElement); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setElement(Expression newElement) + { + if (newElement != element) + { + NotificationChain msgs = null; + if (element != null) + msgs = ((InternalEObject)element).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ENQUEUE_EXPRESSION__ELEMENT, null, msgs); + if (newElement != null) + msgs = ((InternalEObject)newElement).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ENQUEUE_EXPRESSION__ELEMENT, null, msgs); + msgs = basicSetElement(newElement, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ENQUEUE_EXPRESSION__ELEMENT, newElement, newElement)); + } + + /** + * + * + * @generated + */ + public Expression getQueue() + { + return queue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetQueue(Expression newQueue, NotificationChain msgs) + { + Expression oldQueue = queue; + queue = newQueue; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.ENQUEUE_EXPRESSION__QUEUE, oldQueue, newQueue); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setQueue(Expression newQueue) + { + if (newQueue != queue) + { + NotificationChain msgs = null; + if (queue != null) + msgs = ((InternalEObject)queue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ENQUEUE_EXPRESSION__QUEUE, null, msgs); + if (newQueue != null) + msgs = ((InternalEObject)newQueue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ENQUEUE_EXPRESSION__QUEUE, null, msgs); + msgs = basicSetQueue(newQueue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ENQUEUE_EXPRESSION__QUEUE, newQueue, newQueue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ENQUEUE_EXPRESSION__ELEMENT: + return basicSetElement(null, msgs); + case FiacrePackage.ENQUEUE_EXPRESSION__QUEUE: + return basicSetQueue(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ENQUEUE_EXPRESSION__ELEMENT: + return getElement(); + case FiacrePackage.ENQUEUE_EXPRESSION__QUEUE: + return getQueue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ENQUEUE_EXPRESSION__ELEMENT: + setElement((Expression)newValue); + return; + case FiacrePackage.ENQUEUE_EXPRESSION__QUEUE: + setQueue((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ENQUEUE_EXPRESSION__ELEMENT: + setElement((Expression)null); + return; + case FiacrePackage.ENQUEUE_EXPRESSION__QUEUE: + setQueue((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ENQUEUE_EXPRESSION__ELEMENT: + return element != null; + case FiacrePackage.ENQUEUE_EXPRESSION__QUEUE: + return queue != null; + } + return super.eIsSet(featureID); + } + +} //EnqueueExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EnterStateEventImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EnterStateEventImpl.java new file mode 100644 index 0000000..5e57bf2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EnterStateEventImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.EnterStateEvent; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Enter State Event'. + * + * + * @generated + */ +public class EnterStateEventImpl extends StateEventImpl implements EnterStateEvent +{ + /** + * + * + * @generated + */ + protected EnterStateEventImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getEnterStateEvent(); + } + +} //EnterStateEventImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EventSubjectImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EventSubjectImpl.java new file mode 100644 index 0000000..80e8234 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/EventSubjectImpl.java @@ -0,0 +1,187 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.EventSubject; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Event Subject'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.EventSubjectImpl#getEvent Event}
    • + *
    + * + * @generated + */ +public class EventSubjectImpl extends SubjectImpl implements EventSubject +{ + /** + * The default value of the '{@link #getEvent() Event}' attribute. + * + * + * @see #getEvent() + * @generated + * @ordered + */ + protected static final String EVENT_EDEFAULT = null; + + /** + * The cached value of the '{@link #getEvent() Event}' attribute. + * + * + * @see #getEvent() + * @generated + * @ordered + */ + protected String event = EVENT_EDEFAULT; + + /** + * + * + * @generated + */ + protected EventSubjectImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getEventSubject(); + } + + /** + * + * + * @generated + */ + public String getEvent() + { + return event; + } + + /** + * + * + * @generated + */ + public void setEvent(String newEvent) + { + String oldEvent = event; + event = newEvent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.EVENT_SUBJECT__EVENT, oldEvent, event)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.EVENT_SUBJECT__EVENT: + return getEvent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.EVENT_SUBJECT__EVENT: + setEvent((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.EVENT_SUBJECT__EVENT: + setEvent(EVENT_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.EVENT_SUBJECT__EVENT: + return EVENT_EDEFAULT == null ? event != null : !EVENT_EDEFAULT.equals(event); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (event: "); + result.append(event); + result.append(')'); + return result.toString(); + } + +} //EventSubjectImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExistsExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExistsExpressionImpl.java new file mode 100644 index 0000000..ce78a70 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExistsExpressionImpl.java @@ -0,0 +1,348 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ExistsExpression; +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RangeType; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +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; + +/** + * + * An implementation of the model object 'Exists Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ExistsExpressionImpl#getIndex Index}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ExistsExpressionImpl#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ExistsExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class ExistsExpressionImpl extends ExpressionImpl implements ExistsExpression +{ + /** + * The cached value of the '{@link #getIndex() Index}' containment reference. + * + * + * @see #getIndex() + * @generated + * @ordered + */ + protected VariableDeclaration index; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected RangeType type; + + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected ExistsExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getExistsExpression(); + } + + /** + * + * + * @generated + */ + public VariableDeclaration getIndex() + { + return index; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetIndex(VariableDeclaration newIndex, NotificationChain msgs) + { + VariableDeclaration oldIndex = index; + index = newIndex; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_EXPRESSION__INDEX, oldIndex, newIndex); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setIndex(VariableDeclaration newIndex) + { + if (newIndex != index) + { + NotificationChain msgs = null; + if (index != null) + msgs = ((InternalEObject)index).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_EXPRESSION__INDEX, null, msgs); + if (newIndex != null) + msgs = ((InternalEObject)newIndex).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_EXPRESSION__INDEX, null, msgs); + msgs = basicSetIndex(newIndex, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_EXPRESSION__INDEX, newIndex, newIndex)); + } + + /** + * + * + * @generated + */ + public RangeType getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(RangeType newType, NotificationChain msgs) + { + RangeType oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_EXPRESSION__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(RangeType newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_EXPRESSION__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_EXPRESSION__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_EXPRESSION__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.EXISTS_EXPRESSION__INDEX: + return basicSetIndex(null, msgs); + case FiacrePackage.EXISTS_EXPRESSION__TYPE: + return basicSetType(null, msgs); + case FiacrePackage.EXISTS_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.EXISTS_EXPRESSION__INDEX: + return getIndex(); + case FiacrePackage.EXISTS_EXPRESSION__TYPE: + return getType(); + case FiacrePackage.EXISTS_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.EXISTS_EXPRESSION__INDEX: + setIndex((VariableDeclaration)newValue); + return; + case FiacrePackage.EXISTS_EXPRESSION__TYPE: + setType((RangeType)newValue); + return; + case FiacrePackage.EXISTS_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.EXISTS_EXPRESSION__INDEX: + setIndex((VariableDeclaration)null); + return; + case FiacrePackage.EXISTS_EXPRESSION__TYPE: + setType((RangeType)null); + return; + case FiacrePackage.EXISTS_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.EXISTS_EXPRESSION__INDEX: + return index != null; + case FiacrePackage.EXISTS_EXPRESSION__TYPE: + return type != null; + case FiacrePackage.EXISTS_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //ExistsExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExistsPropertyImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExistsPropertyImpl.java new file mode 100644 index 0000000..1df06b3 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExistsPropertyImpl.java @@ -0,0 +1,348 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ExistsProperty; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Property; +import fr.irit.fiacre.xtext.fiacre.RangeType; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +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; + +/** + * + * An implementation of the model object 'Exists Property'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ExistsPropertyImpl#getVariable Variable}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ExistsPropertyImpl#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ExistsPropertyImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class ExistsPropertyImpl extends PropertyImpl implements ExistsProperty +{ + /** + * The cached value of the '{@link #getVariable() Variable}' containment reference. + * + * + * @see #getVariable() + * @generated + * @ordered + */ + protected VariableDeclaration variable; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected RangeType type; + + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Property child; + + /** + * + * + * @generated + */ + protected ExistsPropertyImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getExistsProperty(); + } + + /** + * + * + * @generated + */ + public VariableDeclaration getVariable() + { + return variable; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetVariable(VariableDeclaration newVariable, NotificationChain msgs) + { + VariableDeclaration oldVariable = variable; + variable = newVariable; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_PROPERTY__VARIABLE, oldVariable, newVariable); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setVariable(VariableDeclaration newVariable) + { + if (newVariable != variable) + { + NotificationChain msgs = null; + if (variable != null) + msgs = ((InternalEObject)variable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_PROPERTY__VARIABLE, null, msgs); + if (newVariable != null) + msgs = ((InternalEObject)newVariable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_PROPERTY__VARIABLE, null, msgs); + msgs = basicSetVariable(newVariable, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_PROPERTY__VARIABLE, newVariable, newVariable)); + } + + /** + * + * + * @generated + */ + public RangeType getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(RangeType newType, NotificationChain msgs) + { + RangeType oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_PROPERTY__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(RangeType newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_PROPERTY__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_PROPERTY__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_PROPERTY__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + public Property getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Property newChild, NotificationChain msgs) + { + Property oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_PROPERTY__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Property newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_PROPERTY__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXISTS_PROPERTY__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.EXISTS_PROPERTY__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.EXISTS_PROPERTY__VARIABLE: + return basicSetVariable(null, msgs); + case FiacrePackage.EXISTS_PROPERTY__TYPE: + return basicSetType(null, msgs); + case FiacrePackage.EXISTS_PROPERTY__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.EXISTS_PROPERTY__VARIABLE: + return getVariable(); + case FiacrePackage.EXISTS_PROPERTY__TYPE: + return getType(); + case FiacrePackage.EXISTS_PROPERTY__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.EXISTS_PROPERTY__VARIABLE: + setVariable((VariableDeclaration)newValue); + return; + case FiacrePackage.EXISTS_PROPERTY__TYPE: + setType((RangeType)newValue); + return; + case FiacrePackage.EXISTS_PROPERTY__CHILD: + setChild((Property)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.EXISTS_PROPERTY__VARIABLE: + setVariable((VariableDeclaration)null); + return; + case FiacrePackage.EXISTS_PROPERTY__TYPE: + setType((RangeType)null); + return; + case FiacrePackage.EXISTS_PROPERTY__CHILD: + setChild((Property)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.EXISTS_PROPERTY__VARIABLE: + return variable != null; + case FiacrePackage.EXISTS_PROPERTY__TYPE: + return type != null; + case FiacrePackage.EXISTS_PROPERTY__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //ExistsPropertyImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExpressionDeclarationUseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExpressionDeclarationUseImpl.java new file mode 100644 index 0000000..cca75e7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExpressionDeclarationUseImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Expression Declaration Use'. + * + * + * @generated + */ +public class ExpressionDeclarationUseImpl extends MinimalEObjectImpl.Container implements ExpressionDeclarationUse +{ + /** + * + * + * @generated + */ + protected ExpressionDeclarationUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getExpressionDeclarationUse(); + } + +} //ExpressionDeclarationUseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExpressionImpl.java new file mode 100644 index 0000000..8b6efb1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExpressionImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Expression'. + * + * + * @generated + */ +public class ExpressionImpl extends MinimalEObjectImpl.Container implements Expression +{ + /** + * + * + * @generated + */ + protected ExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getExpression(); + } + +} //ExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExtendedConditionalStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExtendedConditionalStatementImpl.java new file mode 100644 index 0000000..1d5d222 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ExtendedConditionalStatementImpl.java @@ -0,0 +1,277 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Statement; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Extended Conditional Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ExtendedConditionalStatementImpl#getCondition Condition}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ExtendedConditionalStatementImpl#getThen Then}
    • + *
    + * + * @generated + */ +public class ExtendedConditionalStatementImpl extends MinimalEObjectImpl.Container implements ExtendedConditionalStatement +{ + /** + * The cached value of the '{@link #getCondition() Condition}' containment reference. + * + * + * @see #getCondition() + * @generated + * @ordered + */ + protected Expression condition; + + /** + * The cached value of the '{@link #getThen() Then}' containment reference. + * + * + * @see #getThen() + * @generated + * @ordered + */ + protected Statement then; + + /** + * + * + * @generated + */ + protected ExtendedConditionalStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getExtendedConditionalStatement(); + } + + /** + * + * + * @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, FiacrePackage.EXTENDED_CONDITIONAL_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 - FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__CONDITION, null, msgs); + if (newCondition != null) + msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__CONDITION, null, msgs); + msgs = basicSetCondition(newCondition, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__CONDITION, newCondition, newCondition)); + } + + /** + * + * + * @generated + */ + public Statement getThen() + { + return then; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetThen(Statement newThen, NotificationChain msgs) + { + Statement oldThen = then; + then = newThen; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__THEN, oldThen, newThen); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setThen(Statement newThen) + { + if (newThen != then) + { + NotificationChain msgs = null; + if (then != null) + msgs = ((InternalEObject)then).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__THEN, null, msgs); + if (newThen != null) + msgs = ((InternalEObject)newThen).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__THEN, null, msgs); + msgs = basicSetThen(newThen, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__THEN, newThen, newThen)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__CONDITION: + return basicSetCondition(null, msgs); + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__THEN: + return basicSetThen(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__CONDITION: + return getCondition(); + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__THEN: + return getThen(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__CONDITION: + setCondition((Expression)newValue); + return; + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__THEN: + setThen((Statement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__CONDITION: + setCondition((Expression)null); + return; + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__THEN: + setThen((Statement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__CONDITION: + return condition != null; + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT__THEN: + return then != null; + } + return super.eIsSet(featureID); + } + +} //ExtendedConditionalStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FalseLiteralImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FalseLiteralImpl.java new file mode 100644 index 0000000..b50a915 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FalseLiteralImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FalseLiteral; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'False Literal'. + * + * + * @generated + */ +public class FalseLiteralImpl extends BooleanLiteralImpl implements FalseLiteral +{ + /** + * + * + * @generated + */ + protected FalseLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getFalseLiteral(); + } + +} //FalseLiteralImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FiacreFactoryImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FiacreFactoryImpl.java new file mode 100644 index 0000000..37364c8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FiacreFactoryImpl.java @@ -0,0 +1,2445 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.*; + +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; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class FiacreFactoryImpl extends EFactoryImpl implements FiacreFactory +{ + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static FiacreFactory init() + { + try + { + FiacreFactory theFiacreFactory = (FiacreFactory)EPackage.Registry.INSTANCE.getEFactory(FiacrePackage.eNS_URI); + if (theFiacreFactory != null) + { + return theFiacreFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new FiacreFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public FiacreFactoryImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case FiacrePackage.MODEL: return createModel(); + case FiacrePackage.ROOT_DECLARATION: return createRootDeclaration(); + case FiacrePackage.ROOT: return createRoot(); + case FiacrePackage.NAMED_ELEMENT: return createNamedElement(); + case FiacrePackage.TYPE_DECLARATION_USE: return createTypeDeclarationUse(); + case FiacrePackage.CONSTANT_DECLARATION_USE: return createConstantDeclarationUse(); + case FiacrePackage.EXPRESSION_DECLARATION_USE: return createExpressionDeclarationUse(); + case FiacrePackage.REFERENCE_DECLARATION_USE: return createReferenceDeclarationUse(); + case FiacrePackage.UNION_TAG_DECLARATION_USE: return createUnionTagDeclarationUse(); + case FiacrePackage.RECORD_FIELD_DECLARATION_USE: return createRecordFieldDeclarationUse(); + case FiacrePackage.PATTERN_DECLARATION_USE: return createPatternDeclarationUse(); + case FiacrePackage.BOUND_DECLARATION_USE: return createBoundDeclarationUse(); + case FiacrePackage.PATH_DECLARATION_USE: return createPathDeclarationUse(); + case FiacrePackage.PROPERTY_DECLARATION_USE: return createPropertyDeclarationUse(); + case FiacrePackage.IMPORT_DECLARATION: return createImportDeclaration(); + case FiacrePackage.DECLARATION: return createDeclaration(); + case FiacrePackage.PARAMETERIZED_DECLARATION: return createParameterizedDeclaration(); + case FiacrePackage.FUNCTION_DECLARATION: return createFunctionDeclaration(); + case FiacrePackage.TYPE_DECLARATION: return createTypeDeclaration(); + case FiacrePackage.CHANNEL_DECLARATION: return createChannelDeclaration(); + case FiacrePackage.CHANNEL_TYPE: return createChannelType(); + case FiacrePackage.TYPE: return createType(); + case FiacrePackage.BASIC_TYPE: return createBasicType(); + case FiacrePackage.RANGE_TYPE: return createRangeType(); + case FiacrePackage.UNION_TYPE: return createUnionType(); + case FiacrePackage.UNION_TAGS: return createUnionTags(); + case FiacrePackage.UNION_TAG_DECLARATION: return createUnionTagDeclaration(); + case FiacrePackage.RECORD_TYPE: return createRecordType(); + case FiacrePackage.RECORD_FIELDS: return createRecordFields(); + case FiacrePackage.RECORD_FIELD_DECLARATION: return createRecordFieldDeclaration(); + case FiacrePackage.QUEUE_TYPE: return createQueueType(); + case FiacrePackage.ARRAY_TYPE: return createArrayType(); + case FiacrePackage.REFERENCED_TYPE: return createReferencedType(); + case FiacrePackage.CONSTANT_DECLARATION: return createConstantDeclaration(); + case FiacrePackage.PROCESS_DECLARATION: return createProcessDeclaration(); + case FiacrePackage.STATE_DECLARATION: return createStateDeclaration(); + case FiacrePackage.TRANSITION_SOURCE: return createTransitionSource(); + case FiacrePackage.TRANSITION: return createTransition(); + case FiacrePackage.COMPONENT_DECLARATION: return createComponentDeclaration(); + case FiacrePackage.PORTS_DECLARATION: return createPortsDeclaration(); + case FiacrePackage.PORT_DECLARATION: return createPortDeclaration(); + case FiacrePackage.LOCAL_PORTS_DECLARATION: return createLocalPortsDeclaration(); + case FiacrePackage.PARAMETERS_DECLARATION: return createParametersDeclaration(); + case FiacrePackage.PARAMETER_DECLARATION: return createParameterDeclaration(); + case FiacrePackage.VARIABLES_DECLARATION: return createVariablesDeclaration(); + case FiacrePackage.VARIABLE_DECLARATION: return createVariableDeclaration(); + case FiacrePackage.PRIORITY_DECLARATION: return createPriorityDeclaration(); + case FiacrePackage.PRIORITY_GROUP: return createPriorityGroup(); + case FiacrePackage.STATEMENT: return createStatement(); + case FiacrePackage.BLOCK_STATEMENT: return createBlockStatement(); + case FiacrePackage.RETURN_STATEMENT: return createReturnStatement(); + case FiacrePackage.NULL_STATEMENT: return createNullStatement(); + case FiacrePackage.TAGGED_STATEMENT: return createTaggedStatement(); + case FiacrePackage.PATTERN_STATEMENT: return createPatternStatement(); + case FiacrePackage.PATTERN: return createPattern(); + case FiacrePackage.ANY_PATTERN: return createAnyPattern(); + case FiacrePackage.CONSTANT_PATTERN: return createConstantPattern(); + case FiacrePackage.INTEGER_PATTERN: return createIntegerPattern(); + case FiacrePackage.IDENTIFIER_PATTERN: return createIdentifierPattern(); + case FiacrePackage.CONDITIONAL_STATEMENT: return createConditionalStatement(); + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT: return createExtendedConditionalStatement(); + case FiacrePackage.SELECT_STATEMENT: return createSelectStatement(); + case FiacrePackage.WHILE_STATEMENT: return createWhileStatement(); + case FiacrePackage.FOREACH_STATEMENT: return createForeachStatement(); + case FiacrePackage.TO_STATEMENT: return createToStatement(); + case FiacrePackage.CASE_STATEMENT: return createCaseStatement(); + case FiacrePackage.LOOP_STATEMENT: return createLoopStatement(); + case FiacrePackage.ON_STATEMENT: return createOnStatement(); + case FiacrePackage.WAIT_STATEMENT: return createWaitStatement(); + case FiacrePackage.COMPOSITION: return createComposition(); + case FiacrePackage.BLOCK: return createBlock(); + case FiacrePackage.COMPOSITE_BLOCK: return createCompositeBlock(); + case FiacrePackage.INSTANCE_DECLARATION: return createInstanceDeclaration(); + case FiacrePackage.PORT_SET: return createPortSet(); + case FiacrePackage.COMPONENT_INSTANCE: return createComponentInstance(); + case FiacrePackage.EXPRESSION: return createExpression(); + case FiacrePackage.VALUE_EXPRESSION: return createValueExpression(); + case FiacrePackage.REFERENCE_EXPRESSION: return createReferenceExpression(); + case FiacrePackage.IDENTIFIER_EXPRESSION: return createIdentifierExpression(); + case FiacrePackage.RECORD_EXPRESSION: return createRecordExpression(); + case FiacrePackage.FIELD_EXPRESSION: return createFieldExpression(); + case FiacrePackage.ARRAY_EXPRESSION: return createArrayExpression(); + case FiacrePackage.QUEUE_EXPRESSION: return createQueueExpression(); + case FiacrePackage.ENQUEUE_EXPRESSION: return createEnqueueExpression(); + case FiacrePackage.APPEND_EXPRESSION: return createAppendExpression(); + case FiacrePackage.LITERAL_EXPRESSION: return createLiteralExpression(); + case FiacrePackage.BOOLEAN_LITERAL: return createBooleanLiteral(); + case FiacrePackage.NATURAL_LITERAL: return createNaturalLiteral(); + case FiacrePackage.LOWER_BOUND: return createLowerBound(); + case FiacrePackage.UPPER_BOUND: return createUpperBound(); + case FiacrePackage.NATURAL_LOWER_BOUND: return createNaturalLowerBound(); + case FiacrePackage.NATURAL_UPPER_BOUND: return createNaturalUpperBound(); + case FiacrePackage.DECIMAL_LOWER_BOUND: return createDecimalLowerBound(); + case FiacrePackage.DECIMAL_UPPER_BOUND: return createDecimalUpperBound(); + case FiacrePackage.VARIABLE_LOWER_BOUND: return createVariableLowerBound(); + case FiacrePackage.VARIABLE_UPPER_BOUND: return createVariableUpperBound(); + case FiacrePackage.INFINITE_UPPER_BOUND: return createInfiniteUpperBound(); + case FiacrePackage.REQUIREMENT: return createRequirement(); + case FiacrePackage.PROPERTY_DECLARATION: return createPropertyDeclaration(); + case FiacrePackage.PROPERTY: return createProperty(); + case FiacrePackage.PATTERN_PROPERTY: return createPatternProperty(); + case FiacrePackage.LTL_PATTERN: return createLTLPattern(); + case FiacrePackage.DEADLOCK_FREE_PATTERN: return createDeadlockFreePattern(); + case FiacrePackage.INFINITELY_OFTEN_PATTERN: return createInfinitelyOftenPattern(); + case FiacrePackage.MORTAL_PATTERN: return createMortalPattern(); + case FiacrePackage.PRESENCE_PATTERN: return createPresencePattern(); + case FiacrePackage.ABSENCE_PATTERN: return createAbsencePattern(); + case FiacrePackage.ALWAYS_PATTERN: return createAlwaysPattern(); + case FiacrePackage.SEQUENCE_PATTERN: return createSequencePattern(); + case FiacrePackage.LTL_PROPERTY: return createLTLProperty(); + case FiacrePackage.STATE_EVENT: return createStateEvent(); + case FiacrePackage.ENTER_STATE_EVENT: return createEnterStateEvent(); + case FiacrePackage.LEAVE_STATE_EVENT: return createLeaveStateEvent(); + case FiacrePackage.OBSERVABLE: return createObservable(); + case FiacrePackage.OBSERVABLE_EVENT: return createObservableEvent(); + case FiacrePackage.PATH_EVENT: return createPathEvent(); + case FiacrePackage.PATH: return createPath(); + case FiacrePackage.PATH_ITEM: return createPathItem(); + case FiacrePackage.NATURAL_ITEM: return createNaturalItem(); + case FiacrePackage.NAMED_ITEM: return createNamedItem(); + case FiacrePackage.SUBJECT: return createSubject(); + case FiacrePackage.STATE_SUBJECT: return createStateSubject(); + case FiacrePackage.VALUE_SUBJECT: return createValueSubject(); + case FiacrePackage.TAG_SUBJECT: return createTagSubject(); + case FiacrePackage.EVENT_SUBJECT: return createEventSubject(); + case FiacrePackage.TUPLE_TYPE: return createTupleType(); + case FiacrePackage.NATURAL_TYPE: return createNaturalType(); + case FiacrePackage.INTEGER_TYPE: return createIntegerType(); + case FiacrePackage.BOOLEAN_TYPE: return createBooleanType(); + case FiacrePackage.UNLESS_STATEMENT: return createUnlessStatement(); + case FiacrePackage.STATEMENT_CHOICE: return createStatementChoice(); + case FiacrePackage.STATEMENT_SEQUENCE: return createStatementSequence(); + case FiacrePackage.ASSIGN_STATEMENT: return createAssignStatement(); + case FiacrePackage.ASSIGN_ANY_STATEMENT: return createAssignAnyStatement(); + case FiacrePackage.SEND_STATEMENT: return createSendStatement(); + case FiacrePackage.RECEIVE_STATEMENT: return createReceiveStatement(); + case FiacrePackage.CONSTRUCTOR_PATTERN: return createConstructorPattern(); + case FiacrePackage.ARRAY_ACCESS_PATTERN: return createArrayAccessPattern(); + case FiacrePackage.RECORD_ACCESS_PATTERN: return createRecordAccessPattern(); + case FiacrePackage.ALL_EXPRESSION: return createAllExpression(); + case FiacrePackage.EXISTS_EXPRESSION: return createExistsExpression(); + case FiacrePackage.CONDITIONAL: return createConditional(); + case FiacrePackage.DISJUNCTION: return createDisjunction(); + case FiacrePackage.IMPLICATION: return createImplication(); + case FiacrePackage.CONJUNCTION: return createConjunction(); + case FiacrePackage.COMPARISON_EQUAL: return createComparisonEqual(); + case FiacrePackage.COMPARISON_NOT_EQUAL: return createComparisonNotEqual(); + case FiacrePackage.COMPARISON_LESSER: return createComparisonLesser(); + case FiacrePackage.COMPARISON_LESSER_EQUAL: return createComparisonLesserEqual(); + case FiacrePackage.COMPARISON_GREATER: return createComparisonGreater(); + case FiacrePackage.COMPARISON_GREATER_EQUAL: return createComparisonGreaterEqual(); + case FiacrePackage.ADDITION: return createAddition(); + case FiacrePackage.SUBSTRACTION: return createSubstraction(); + case FiacrePackage.MULTIPLICATION: return createMultiplication(); + case FiacrePackage.DIVISION: return createDivision(); + case FiacrePackage.MODULO: return createModulo(); + case FiacrePackage.UNARY_PLUS_EXPRESSION: return createUnaryPlusExpression(); + case FiacrePackage.UNARY_MINUS_EXPRESSION: return createUnaryMinusExpression(); + case FiacrePackage.UNARY_NEGATION_EXPRESSION: return createUnaryNegationExpression(); + case FiacrePackage.UNARY_FIRST_EXPRESSION: return createUnaryFirstExpression(); + case FiacrePackage.UNARY_LENGTH_EXPRESSION: return createUnaryLengthExpression(); + case FiacrePackage.UNARY_COERCE_EXPRESSION: return createUnaryCoerceExpression(); + case FiacrePackage.UNARY_FULL_EXPRESSION: return createUnaryFullExpression(); + case FiacrePackage.UNARY_DE_QUEUE_EXPRESSION: return createUnaryDeQueueExpression(); + case FiacrePackage.UNARY_EMPTY_EXPRESSION: return createUnaryEmptyExpression(); + case FiacrePackage.PROJECTION: return createProjection(); + case FiacrePackage.CONSTRUCTION_EXPRESSION: return createConstructionExpression(); + case FiacrePackage.ARRAY_ACCESS_EXPRESSION: return createArrayAccessExpression(); + case FiacrePackage.RECORD_ACCESS_EXPRESSION: return createRecordAccessExpression(); + case FiacrePackage.TRUE_LITERAL: return createTrueLiteral(); + case FiacrePackage.FALSE_LITERAL: return createFalseLiteral(); + case FiacrePackage.ALL_PROPERTY: return createAllProperty(); + case FiacrePackage.EXISTS_PROPERTY: return createExistsProperty(); + case FiacrePackage.PROPERTY_DISJUNCTION: return createPropertyDisjunction(); + case FiacrePackage.PROPERTY_IMPLICATION: return createPropertyImplication(); + case FiacrePackage.PROPERTY_CONJUNCTION: return createPropertyConjunction(); + case FiacrePackage.PROPERTY_NEGATION: return createPropertyNegation(); + case FiacrePackage.LEADS_TO_PATTERN: return createLeadsToPattern(); + case FiacrePackage.PRECEDES_PATTERN: return createPrecedesPattern(); + case FiacrePackage.LTL_ALL: return createLTLAll(); + case FiacrePackage.LTL_EXISTS: return createLTLExists(); + case FiacrePackage.LTL_DISJUNCTION: return createLTLDisjunction(); + case FiacrePackage.LTL_IMPLICATION: return createLTLImplication(); + case FiacrePackage.LTL_CONJUNCTION: return createLTLConjunction(); + case FiacrePackage.LTL_UNTIL: return createLTLUntil(); + case FiacrePackage.LTL_RELEASE: return createLTLRelease(); + case FiacrePackage.LTL_UNARY_NEGATION: return createLTLUnaryNegation(); + case FiacrePackage.LTL_UNARY_NEXT: return createLTLUnaryNext(); + case FiacrePackage.LTL_UNARY_ALWAYS: return createLTLUnaryAlways(); + case FiacrePackage.LTL_UNARY_EVENTUALLY: return createLTLUnaryEventually(); + case FiacrePackage.LTL_VARIABLE: return createLTLVariable(); + case FiacrePackage.OBSERVABLE_DISJUNCTION: return createObservableDisjunction(); + case FiacrePackage.OBSERVABLE_IMPLICATION: return createObservableImplication(); + case FiacrePackage.OBSERVABLE_CONJUNCTION: return createObservableConjunction(); + case FiacrePackage.OBSERVABLE_NEGATION: return createObservableNegation(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + public Model createModel() + { + ModelImpl model = new ModelImpl(); + return model; + } + + /** + * + * + * @generated + */ + public RootDeclaration createRootDeclaration() + { + RootDeclarationImpl rootDeclaration = new RootDeclarationImpl(); + return rootDeclaration; + } + + /** + * + * + * @generated + */ + public Root createRoot() + { + RootImpl root = new RootImpl(); + return root; + } + + /** + * + * + * @generated + */ + public NamedElement createNamedElement() + { + NamedElementImpl namedElement = new NamedElementImpl(); + return namedElement; + } + + /** + * + * + * @generated + */ + public TypeDeclarationUse createTypeDeclarationUse() + { + TypeDeclarationUseImpl typeDeclarationUse = new TypeDeclarationUseImpl(); + return typeDeclarationUse; + } + + /** + * + * + * @generated + */ + public ConstantDeclarationUse createConstantDeclarationUse() + { + ConstantDeclarationUseImpl constantDeclarationUse = new ConstantDeclarationUseImpl(); + return constantDeclarationUse; + } + + /** + * + * + * @generated + */ + public ExpressionDeclarationUse createExpressionDeclarationUse() + { + ExpressionDeclarationUseImpl expressionDeclarationUse = new ExpressionDeclarationUseImpl(); + return expressionDeclarationUse; + } + + /** + * + * + * @generated + */ + public ReferenceDeclarationUse createReferenceDeclarationUse() + { + ReferenceDeclarationUseImpl referenceDeclarationUse = new ReferenceDeclarationUseImpl(); + return referenceDeclarationUse; + } + + /** + * + * + * @generated + */ + public UnionTagDeclarationUse createUnionTagDeclarationUse() + { + UnionTagDeclarationUseImpl unionTagDeclarationUse = new UnionTagDeclarationUseImpl(); + return unionTagDeclarationUse; + } + + /** + * + * + * @generated + */ + public RecordFieldDeclarationUse createRecordFieldDeclarationUse() + { + RecordFieldDeclarationUseImpl recordFieldDeclarationUse = new RecordFieldDeclarationUseImpl(); + return recordFieldDeclarationUse; + } + + /** + * + * + * @generated + */ + public PatternDeclarationUse createPatternDeclarationUse() + { + PatternDeclarationUseImpl patternDeclarationUse = new PatternDeclarationUseImpl(); + return patternDeclarationUse; + } + + /** + * + * + * @generated + */ + public BoundDeclarationUse createBoundDeclarationUse() + { + BoundDeclarationUseImpl boundDeclarationUse = new BoundDeclarationUseImpl(); + return boundDeclarationUse; + } + + /** + * + * + * @generated + */ + public PathDeclarationUse createPathDeclarationUse() + { + PathDeclarationUseImpl pathDeclarationUse = new PathDeclarationUseImpl(); + return pathDeclarationUse; + } + + /** + * + * + * @generated + */ + public PropertyDeclarationUse createPropertyDeclarationUse() + { + PropertyDeclarationUseImpl propertyDeclarationUse = new PropertyDeclarationUseImpl(); + return propertyDeclarationUse; + } + + /** + * + * + * @generated + */ + public ImportDeclaration createImportDeclaration() + { + ImportDeclarationImpl importDeclaration = new ImportDeclarationImpl(); + return importDeclaration; + } + + /** + * + * + * @generated + */ + public Declaration createDeclaration() + { + DeclarationImpl declaration = new DeclarationImpl(); + return declaration; + } + + /** + * + * + * @generated + */ + public ParameterizedDeclaration createParameterizedDeclaration() + { + ParameterizedDeclarationImpl parameterizedDeclaration = new ParameterizedDeclarationImpl(); + return parameterizedDeclaration; + } + + /** + * + * + * @generated + */ + public FunctionDeclaration createFunctionDeclaration() + { + FunctionDeclarationImpl functionDeclaration = new FunctionDeclarationImpl(); + return functionDeclaration; + } + + /** + * + * + * @generated + */ + public TypeDeclaration createTypeDeclaration() + { + TypeDeclarationImpl typeDeclaration = new TypeDeclarationImpl(); + return typeDeclaration; + } + + /** + * + * + * @generated + */ + public ChannelDeclaration createChannelDeclaration() + { + ChannelDeclarationImpl channelDeclaration = new ChannelDeclarationImpl(); + return channelDeclaration; + } + + /** + * + * + * @generated + */ + public ChannelType createChannelType() + { + ChannelTypeImpl channelType = new ChannelTypeImpl(); + return channelType; + } + + /** + * + * + * @generated + */ + public Type createType() + { + TypeImpl type = new TypeImpl(); + return type; + } + + /** + * + * + * @generated + */ + public BasicType createBasicType() + { + BasicTypeImpl basicType = new BasicTypeImpl(); + return basicType; + } + + /** + * + * + * @generated + */ + public RangeType createRangeType() + { + RangeTypeImpl rangeType = new RangeTypeImpl(); + return rangeType; + } + + /** + * + * + * @generated + */ + public UnionType createUnionType() + { + UnionTypeImpl unionType = new UnionTypeImpl(); + return unionType; + } + + /** + * + * + * @generated + */ + public UnionTags createUnionTags() + { + UnionTagsImpl unionTags = new UnionTagsImpl(); + return unionTags; + } + + /** + * + * + * @generated + */ + public UnionTagDeclaration createUnionTagDeclaration() + { + UnionTagDeclarationImpl unionTagDeclaration = new UnionTagDeclarationImpl(); + return unionTagDeclaration; + } + + /** + * + * + * @generated + */ + public RecordType createRecordType() + { + RecordTypeImpl recordType = new RecordTypeImpl(); + return recordType; + } + + /** + * + * + * @generated + */ + public RecordFields createRecordFields() + { + RecordFieldsImpl recordFields = new RecordFieldsImpl(); + return recordFields; + } + + /** + * + * + * @generated + */ + public RecordFieldDeclaration createRecordFieldDeclaration() + { + RecordFieldDeclarationImpl recordFieldDeclaration = new RecordFieldDeclarationImpl(); + return recordFieldDeclaration; + } + + /** + * + * + * @generated + */ + public QueueType createQueueType() + { + QueueTypeImpl queueType = new QueueTypeImpl(); + return queueType; + } + + /** + * + * + * @generated + */ + public ArrayType createArrayType() + { + ArrayTypeImpl arrayType = new ArrayTypeImpl(); + return arrayType; + } + + /** + * + * + * @generated + */ + public ReferencedType createReferencedType() + { + ReferencedTypeImpl referencedType = new ReferencedTypeImpl(); + return referencedType; + } + + /** + * + * + * @generated + */ + public ConstantDeclaration createConstantDeclaration() + { + ConstantDeclarationImpl constantDeclaration = new ConstantDeclarationImpl(); + return constantDeclaration; + } + + /** + * + * + * @generated + */ + public ProcessDeclaration createProcessDeclaration() + { + ProcessDeclarationImpl processDeclaration = new ProcessDeclarationImpl(); + return processDeclaration; + } + + /** + * + * + * @generated + */ + public StateDeclaration createStateDeclaration() + { + StateDeclarationImpl stateDeclaration = new StateDeclarationImpl(); + return stateDeclaration; + } + + /** + * + * + * @generated + */ + public TransitionSource createTransitionSource() + { + TransitionSourceImpl transitionSource = new TransitionSourceImpl(); + return transitionSource; + } + + /** + * + * + * @generated + */ + public Transition createTransition() + { + TransitionImpl transition = new TransitionImpl(); + return transition; + } + + /** + * + * + * @generated + */ + public ComponentDeclaration createComponentDeclaration() + { + ComponentDeclarationImpl componentDeclaration = new ComponentDeclarationImpl(); + return componentDeclaration; + } + + /** + * + * + * @generated + */ + public PortsDeclaration createPortsDeclaration() + { + PortsDeclarationImpl portsDeclaration = new PortsDeclarationImpl(); + return portsDeclaration; + } + + /** + * + * + * @generated + */ + public PortDeclaration createPortDeclaration() + { + PortDeclarationImpl portDeclaration = new PortDeclarationImpl(); + return portDeclaration; + } + + /** + * + * + * @generated + */ + public LocalPortsDeclaration createLocalPortsDeclaration() + { + LocalPortsDeclarationImpl localPortsDeclaration = new LocalPortsDeclarationImpl(); + return localPortsDeclaration; + } + + /** + * + * + * @generated + */ + public ParametersDeclaration createParametersDeclaration() + { + ParametersDeclarationImpl parametersDeclaration = new ParametersDeclarationImpl(); + return parametersDeclaration; + } + + /** + * + * + * @generated + */ + public ParameterDeclaration createParameterDeclaration() + { + ParameterDeclarationImpl parameterDeclaration = new ParameterDeclarationImpl(); + return parameterDeclaration; + } + + /** + * + * + * @generated + */ + public VariablesDeclaration createVariablesDeclaration() + { + VariablesDeclarationImpl variablesDeclaration = new VariablesDeclarationImpl(); + return variablesDeclaration; + } + + /** + * + * + * @generated + */ + public VariableDeclaration createVariableDeclaration() + { + VariableDeclarationImpl variableDeclaration = new VariableDeclarationImpl(); + return variableDeclaration; + } + + /** + * + * + * @generated + */ + public PriorityDeclaration createPriorityDeclaration() + { + PriorityDeclarationImpl priorityDeclaration = new PriorityDeclarationImpl(); + return priorityDeclaration; + } + + /** + * + * + * @generated + */ + public PriorityGroup createPriorityGroup() + { + PriorityGroupImpl priorityGroup = new PriorityGroupImpl(); + return priorityGroup; + } + + /** + * + * + * @generated + */ + public Statement createStatement() + { + StatementImpl statement = new StatementImpl(); + return statement; + } + + /** + * + * + * @generated + */ + public BlockStatement createBlockStatement() + { + BlockStatementImpl blockStatement = new BlockStatementImpl(); + return blockStatement; + } + + /** + * + * + * @generated + */ + public ReturnStatement createReturnStatement() + { + ReturnStatementImpl returnStatement = new ReturnStatementImpl(); + return returnStatement; + } + + /** + * + * + * @generated + */ + public NullStatement createNullStatement() + { + NullStatementImpl nullStatement = new NullStatementImpl(); + return nullStatement; + } + + /** + * + * + * @generated + */ + public TaggedStatement createTaggedStatement() + { + TaggedStatementImpl taggedStatement = new TaggedStatementImpl(); + return taggedStatement; + } + + /** + * + * + * @generated + */ + public PatternStatement createPatternStatement() + { + PatternStatementImpl patternStatement = new PatternStatementImpl(); + return patternStatement; + } + + /** + * + * + * @generated + */ + public Pattern createPattern() + { + PatternImpl pattern = new PatternImpl(); + return pattern; + } + + /** + * + * + * @generated + */ + public AnyPattern createAnyPattern() + { + AnyPatternImpl anyPattern = new AnyPatternImpl(); + return anyPattern; + } + + /** + * + * + * @generated + */ + public ConstantPattern createConstantPattern() + { + ConstantPatternImpl constantPattern = new ConstantPatternImpl(); + return constantPattern; + } + + /** + * + * + * @generated + */ + public IntegerPattern createIntegerPattern() + { + IntegerPatternImpl integerPattern = new IntegerPatternImpl(); + return integerPattern; + } + + /** + * + * + * @generated + */ + public IdentifierPattern createIdentifierPattern() + { + IdentifierPatternImpl identifierPattern = new IdentifierPatternImpl(); + return identifierPattern; + } + + /** + * + * + * @generated + */ + public ConditionalStatement createConditionalStatement() + { + ConditionalStatementImpl conditionalStatement = new ConditionalStatementImpl(); + return conditionalStatement; + } + + /** + * + * + * @generated + */ + public ExtendedConditionalStatement createExtendedConditionalStatement() + { + ExtendedConditionalStatementImpl extendedConditionalStatement = new ExtendedConditionalStatementImpl(); + return extendedConditionalStatement; + } + + /** + * + * + * @generated + */ + public SelectStatement createSelectStatement() + { + SelectStatementImpl selectStatement = new SelectStatementImpl(); + return selectStatement; + } + + /** + * + * + * @generated + */ + public WhileStatement createWhileStatement() + { + WhileStatementImpl whileStatement = new WhileStatementImpl(); + return whileStatement; + } + + /** + * + * + * @generated + */ + public ForeachStatement createForeachStatement() + { + ForeachStatementImpl foreachStatement = new ForeachStatementImpl(); + return foreachStatement; + } + + /** + * + * + * @generated + */ + public ToStatement createToStatement() + { + ToStatementImpl toStatement = new ToStatementImpl(); + return toStatement; + } + + /** + * + * + * @generated + */ + public CaseStatement createCaseStatement() + { + CaseStatementImpl caseStatement = new CaseStatementImpl(); + return caseStatement; + } + + /** + * + * + * @generated + */ + public LoopStatement createLoopStatement() + { + LoopStatementImpl loopStatement = new LoopStatementImpl(); + return loopStatement; + } + + /** + * + * + * @generated + */ + public OnStatement createOnStatement() + { + OnStatementImpl onStatement = new OnStatementImpl(); + return onStatement; + } + + /** + * + * + * @generated + */ + public WaitStatement createWaitStatement() + { + WaitStatementImpl waitStatement = new WaitStatementImpl(); + return waitStatement; + } + + /** + * + * + * @generated + */ + public Composition createComposition() + { + CompositionImpl composition = new CompositionImpl(); + return composition; + } + + /** + * + * + * @generated + */ + public Block createBlock() + { + BlockImpl block = new BlockImpl(); + return block; + } + + /** + * + * + * @generated + */ + public CompositeBlock createCompositeBlock() + { + CompositeBlockImpl compositeBlock = new CompositeBlockImpl(); + return compositeBlock; + } + + /** + * + * + * @generated + */ + public InstanceDeclaration createInstanceDeclaration() + { + InstanceDeclarationImpl instanceDeclaration = new InstanceDeclarationImpl(); + return instanceDeclaration; + } + + /** + * + * + * @generated + */ + public PortSet createPortSet() + { + PortSetImpl portSet = new PortSetImpl(); + return portSet; + } + + /** + * + * + * @generated + */ + public ComponentInstance createComponentInstance() + { + ComponentInstanceImpl componentInstance = new ComponentInstanceImpl(); + return componentInstance; + } + + /** + * + * + * @generated + */ + public Expression createExpression() + { + ExpressionImpl expression = new ExpressionImpl(); + return expression; + } + + /** + * + * + * @generated + */ + public ValueExpression createValueExpression() + { + ValueExpressionImpl valueExpression = new ValueExpressionImpl(); + return valueExpression; + } + + /** + * + * + * @generated + */ + public ReferenceExpression createReferenceExpression() + { + ReferenceExpressionImpl referenceExpression = new ReferenceExpressionImpl(); + return referenceExpression; + } + + /** + * + * + * @generated + */ + public IdentifierExpression createIdentifierExpression() + { + IdentifierExpressionImpl identifierExpression = new IdentifierExpressionImpl(); + return identifierExpression; + } + + /** + * + * + * @generated + */ + public RecordExpression createRecordExpression() + { + RecordExpressionImpl recordExpression = new RecordExpressionImpl(); + return recordExpression; + } + + /** + * + * + * @generated + */ + public FieldExpression createFieldExpression() + { + FieldExpressionImpl fieldExpression = new FieldExpressionImpl(); + return fieldExpression; + } + + /** + * + * + * @generated + */ + public ArrayExpression createArrayExpression() + { + ArrayExpressionImpl arrayExpression = new ArrayExpressionImpl(); + return arrayExpression; + } + + /** + * + * + * @generated + */ + public QueueExpression createQueueExpression() + { + QueueExpressionImpl queueExpression = new QueueExpressionImpl(); + return queueExpression; + } + + /** + * + * + * @generated + */ + public EnqueueExpression createEnqueueExpression() + { + EnqueueExpressionImpl enqueueExpression = new EnqueueExpressionImpl(); + return enqueueExpression; + } + + /** + * + * + * @generated + */ + public AppendExpression createAppendExpression() + { + AppendExpressionImpl appendExpression = new AppendExpressionImpl(); + return appendExpression; + } + + /** + * + * + * @generated + */ + public LiteralExpression createLiteralExpression() + { + LiteralExpressionImpl literalExpression = new LiteralExpressionImpl(); + return literalExpression; + } + + /** + * + * + * @generated + */ + public BooleanLiteral createBooleanLiteral() + { + BooleanLiteralImpl booleanLiteral = new BooleanLiteralImpl(); + return booleanLiteral; + } + + /** + * + * + * @generated + */ + public NaturalLiteral createNaturalLiteral() + { + NaturalLiteralImpl naturalLiteral = new NaturalLiteralImpl(); + return naturalLiteral; + } + + /** + * + * + * @generated + */ + public LowerBound createLowerBound() + { + LowerBoundImpl lowerBound = new LowerBoundImpl(); + return lowerBound; + } + + /** + * + * + * @generated + */ + public UpperBound createUpperBound() + { + UpperBoundImpl upperBound = new UpperBoundImpl(); + return upperBound; + } + + /** + * + * + * @generated + */ + public NaturalLowerBound createNaturalLowerBound() + { + NaturalLowerBoundImpl naturalLowerBound = new NaturalLowerBoundImpl(); + return naturalLowerBound; + } + + /** + * + * + * @generated + */ + public NaturalUpperBound createNaturalUpperBound() + { + NaturalUpperBoundImpl naturalUpperBound = new NaturalUpperBoundImpl(); + return naturalUpperBound; + } + + /** + * + * + * @generated + */ + public DecimalLowerBound createDecimalLowerBound() + { + DecimalLowerBoundImpl decimalLowerBound = new DecimalLowerBoundImpl(); + return decimalLowerBound; + } + + /** + * + * + * @generated + */ + public DecimalUpperBound createDecimalUpperBound() + { + DecimalUpperBoundImpl decimalUpperBound = new DecimalUpperBoundImpl(); + return decimalUpperBound; + } + + /** + * + * + * @generated + */ + public VariableLowerBound createVariableLowerBound() + { + VariableLowerBoundImpl variableLowerBound = new VariableLowerBoundImpl(); + return variableLowerBound; + } + + /** + * + * + * @generated + */ + public VariableUpperBound createVariableUpperBound() + { + VariableUpperBoundImpl variableUpperBound = new VariableUpperBoundImpl(); + return variableUpperBound; + } + + /** + * + * + * @generated + */ + public InfiniteUpperBound createInfiniteUpperBound() + { + InfiniteUpperBoundImpl infiniteUpperBound = new InfiniteUpperBoundImpl(); + return infiniteUpperBound; + } + + /** + * + * + * @generated + */ + public Requirement createRequirement() + { + RequirementImpl requirement = new RequirementImpl(); + return requirement; + } + + /** + * + * + * @generated + */ + public PropertyDeclaration createPropertyDeclaration() + { + PropertyDeclarationImpl propertyDeclaration = new PropertyDeclarationImpl(); + return propertyDeclaration; + } + + /** + * + * + * @generated + */ + public Property createProperty() + { + PropertyImpl property = new PropertyImpl(); + return property; + } + + /** + * + * + * @generated + */ + public PatternProperty createPatternProperty() + { + PatternPropertyImpl patternProperty = new PatternPropertyImpl(); + return patternProperty; + } + + /** + * + * + * @generated + */ + public LTLPattern createLTLPattern() + { + LTLPatternImpl ltlPattern = new LTLPatternImpl(); + return ltlPattern; + } + + /** + * + * + * @generated + */ + public DeadlockFreePattern createDeadlockFreePattern() + { + DeadlockFreePatternImpl deadlockFreePattern = new DeadlockFreePatternImpl(); + return deadlockFreePattern; + } + + /** + * + * + * @generated + */ + public InfinitelyOftenPattern createInfinitelyOftenPattern() + { + InfinitelyOftenPatternImpl infinitelyOftenPattern = new InfinitelyOftenPatternImpl(); + return infinitelyOftenPattern; + } + + /** + * + * + * @generated + */ + public MortalPattern createMortalPattern() + { + MortalPatternImpl mortalPattern = new MortalPatternImpl(); + return mortalPattern; + } + + /** + * + * + * @generated + */ + public PresencePattern createPresencePattern() + { + PresencePatternImpl presencePattern = new PresencePatternImpl(); + return presencePattern; + } + + /** + * + * + * @generated + */ + public AbsencePattern createAbsencePattern() + { + AbsencePatternImpl absencePattern = new AbsencePatternImpl(); + return absencePattern; + } + + /** + * + * + * @generated + */ + public AlwaysPattern createAlwaysPattern() + { + AlwaysPatternImpl alwaysPattern = new AlwaysPatternImpl(); + return alwaysPattern; + } + + /** + * + * + * @generated + */ + public SequencePattern createSequencePattern() + { + SequencePatternImpl sequencePattern = new SequencePatternImpl(); + return sequencePattern; + } + + /** + * + * + * @generated + */ + public LTLProperty createLTLProperty() + { + LTLPropertyImpl ltlProperty = new LTLPropertyImpl(); + return ltlProperty; + } + + /** + * + * + * @generated + */ + public StateEvent createStateEvent() + { + StateEventImpl stateEvent = new StateEventImpl(); + return stateEvent; + } + + /** + * + * + * @generated + */ + public EnterStateEvent createEnterStateEvent() + { + EnterStateEventImpl enterStateEvent = new EnterStateEventImpl(); + return enterStateEvent; + } + + /** + * + * + * @generated + */ + public LeaveStateEvent createLeaveStateEvent() + { + LeaveStateEventImpl leaveStateEvent = new LeaveStateEventImpl(); + return leaveStateEvent; + } + + /** + * + * + * @generated + */ + public Observable createObservable() + { + ObservableImpl observable = new ObservableImpl(); + return observable; + } + + /** + * + * + * @generated + */ + public ObservableEvent createObservableEvent() + { + ObservableEventImpl observableEvent = new ObservableEventImpl(); + return observableEvent; + } + + /** + * + * + * @generated + */ + public PathEvent createPathEvent() + { + PathEventImpl pathEvent = new PathEventImpl(); + return pathEvent; + } + + /** + * + * + * @generated + */ + public Path createPath() + { + PathImpl path = new PathImpl(); + return path; + } + + /** + * + * + * @generated + */ + public PathItem createPathItem() + { + PathItemImpl pathItem = new PathItemImpl(); + return pathItem; + } + + /** + * + * + * @generated + */ + public NaturalItem createNaturalItem() + { + NaturalItemImpl naturalItem = new NaturalItemImpl(); + return naturalItem; + } + + /** + * + * + * @generated + */ + public NamedItem createNamedItem() + { + NamedItemImpl namedItem = new NamedItemImpl(); + return namedItem; + } + + /** + * + * + * @generated + */ + public Subject createSubject() + { + SubjectImpl subject = new SubjectImpl(); + return subject; + } + + /** + * + * + * @generated + */ + public StateSubject createStateSubject() + { + StateSubjectImpl stateSubject = new StateSubjectImpl(); + return stateSubject; + } + + /** + * + * + * @generated + */ + public ValueSubject createValueSubject() + { + ValueSubjectImpl valueSubject = new ValueSubjectImpl(); + return valueSubject; + } + + /** + * + * + * @generated + */ + public TagSubject createTagSubject() + { + TagSubjectImpl tagSubject = new TagSubjectImpl(); + return tagSubject; + } + + /** + * + * + * @generated + */ + public EventSubject createEventSubject() + { + EventSubjectImpl eventSubject = new EventSubjectImpl(); + return eventSubject; + } + + /** + * + * + * @generated + */ + public TupleType createTupleType() + { + TupleTypeImpl tupleType = new TupleTypeImpl(); + return tupleType; + } + + /** + * + * + * @generated + */ + public NaturalType createNaturalType() + { + NaturalTypeImpl naturalType = new NaturalTypeImpl(); + return naturalType; + } + + /** + * + * + * @generated + */ + public IntegerType createIntegerType() + { + IntegerTypeImpl integerType = new IntegerTypeImpl(); + return integerType; + } + + /** + * + * + * @generated + */ + public BooleanType createBooleanType() + { + BooleanTypeImpl booleanType = new BooleanTypeImpl(); + return booleanType; + } + + /** + * + * + * @generated + */ + public UnlessStatement createUnlessStatement() + { + UnlessStatementImpl unlessStatement = new UnlessStatementImpl(); + return unlessStatement; + } + + /** + * + * + * @generated + */ + public StatementChoice createStatementChoice() + { + StatementChoiceImpl statementChoice = new StatementChoiceImpl(); + return statementChoice; + } + + /** + * + * + * @generated + */ + public StatementSequence createStatementSequence() + { + StatementSequenceImpl statementSequence = new StatementSequenceImpl(); + return statementSequence; + } + + /** + * + * + * @generated + */ + public AssignStatement createAssignStatement() + { + AssignStatementImpl assignStatement = new AssignStatementImpl(); + return assignStatement; + } + + /** + * + * + * @generated + */ + public AssignAnyStatement createAssignAnyStatement() + { + AssignAnyStatementImpl assignAnyStatement = new AssignAnyStatementImpl(); + return assignAnyStatement; + } + + /** + * + * + * @generated + */ + public SendStatement createSendStatement() + { + SendStatementImpl sendStatement = new SendStatementImpl(); + return sendStatement; + } + + /** + * + * + * @generated + */ + public ReceiveStatement createReceiveStatement() + { + ReceiveStatementImpl receiveStatement = new ReceiveStatementImpl(); + return receiveStatement; + } + + /** + * + * + * @generated + */ + public ConstructorPattern createConstructorPattern() + { + ConstructorPatternImpl constructorPattern = new ConstructorPatternImpl(); + return constructorPattern; + } + + /** + * + * + * @generated + */ + public ArrayAccessPattern createArrayAccessPattern() + { + ArrayAccessPatternImpl arrayAccessPattern = new ArrayAccessPatternImpl(); + return arrayAccessPattern; + } + + /** + * + * + * @generated + */ + public RecordAccessPattern createRecordAccessPattern() + { + RecordAccessPatternImpl recordAccessPattern = new RecordAccessPatternImpl(); + return recordAccessPattern; + } + + /** + * + * + * @generated + */ + public AllExpression createAllExpression() + { + AllExpressionImpl allExpression = new AllExpressionImpl(); + return allExpression; + } + + /** + * + * + * @generated + */ + public ExistsExpression createExistsExpression() + { + ExistsExpressionImpl existsExpression = new ExistsExpressionImpl(); + return existsExpression; + } + + /** + * + * + * @generated + */ + public Conditional createConditional() + { + ConditionalImpl conditional = new ConditionalImpl(); + return conditional; + } + + /** + * + * + * @generated + */ + public Disjunction createDisjunction() + { + DisjunctionImpl disjunction = new DisjunctionImpl(); + return disjunction; + } + + /** + * + * + * @generated + */ + public Implication createImplication() + { + ImplicationImpl implication = new ImplicationImpl(); + return implication; + } + + /** + * + * + * @generated + */ + public Conjunction createConjunction() + { + ConjunctionImpl conjunction = new ConjunctionImpl(); + return conjunction; + } + + /** + * + * + * @generated + */ + public ComparisonEqual createComparisonEqual() + { + ComparisonEqualImpl comparisonEqual = new ComparisonEqualImpl(); + return comparisonEqual; + } + + /** + * + * + * @generated + */ + public ComparisonNotEqual createComparisonNotEqual() + { + ComparisonNotEqualImpl comparisonNotEqual = new ComparisonNotEqualImpl(); + return comparisonNotEqual; + } + + /** + * + * + * @generated + */ + public ComparisonLesser createComparisonLesser() + { + ComparisonLesserImpl comparisonLesser = new ComparisonLesserImpl(); + return comparisonLesser; + } + + /** + * + * + * @generated + */ + public ComparisonLesserEqual createComparisonLesserEqual() + { + ComparisonLesserEqualImpl comparisonLesserEqual = new ComparisonLesserEqualImpl(); + return comparisonLesserEqual; + } + + /** + * + * + * @generated + */ + public ComparisonGreater createComparisonGreater() + { + ComparisonGreaterImpl comparisonGreater = new ComparisonGreaterImpl(); + return comparisonGreater; + } + + /** + * + * + * @generated + */ + public ComparisonGreaterEqual createComparisonGreaterEqual() + { + ComparisonGreaterEqualImpl comparisonGreaterEqual = new ComparisonGreaterEqualImpl(); + return comparisonGreaterEqual; + } + + /** + * + * + * @generated + */ + public Addition createAddition() + { + AdditionImpl addition = new AdditionImpl(); + return addition; + } + + /** + * + * + * @generated + */ + public Substraction createSubstraction() + { + SubstractionImpl substraction = new SubstractionImpl(); + return substraction; + } + + /** + * + * + * @generated + */ + public Multiplication createMultiplication() + { + MultiplicationImpl multiplication = new MultiplicationImpl(); + return multiplication; + } + + /** + * + * + * @generated + */ + public Division createDivision() + { + DivisionImpl division = new DivisionImpl(); + return division; + } + + /** + * + * + * @generated + */ + public Modulo createModulo() + { + ModuloImpl modulo = new ModuloImpl(); + return modulo; + } + + /** + * + * + * @generated + */ + public UnaryPlusExpression createUnaryPlusExpression() + { + UnaryPlusExpressionImpl unaryPlusExpression = new UnaryPlusExpressionImpl(); + return unaryPlusExpression; + } + + /** + * + * + * @generated + */ + public UnaryMinusExpression createUnaryMinusExpression() + { + UnaryMinusExpressionImpl unaryMinusExpression = new UnaryMinusExpressionImpl(); + return unaryMinusExpression; + } + + /** + * + * + * @generated + */ + public UnaryNegationExpression createUnaryNegationExpression() + { + UnaryNegationExpressionImpl unaryNegationExpression = new UnaryNegationExpressionImpl(); + return unaryNegationExpression; + } + + /** + * + * + * @generated + */ + public UnaryFirstExpression createUnaryFirstExpression() + { + UnaryFirstExpressionImpl unaryFirstExpression = new UnaryFirstExpressionImpl(); + return unaryFirstExpression; + } + + /** + * + * + * @generated + */ + public UnaryLengthExpression createUnaryLengthExpression() + { + UnaryLengthExpressionImpl unaryLengthExpression = new UnaryLengthExpressionImpl(); + return unaryLengthExpression; + } + + /** + * + * + * @generated + */ + public UnaryCoerceExpression createUnaryCoerceExpression() + { + UnaryCoerceExpressionImpl unaryCoerceExpression = new UnaryCoerceExpressionImpl(); + return unaryCoerceExpression; + } + + /** + * + * + * @generated + */ + public UnaryFullExpression createUnaryFullExpression() + { + UnaryFullExpressionImpl unaryFullExpression = new UnaryFullExpressionImpl(); + return unaryFullExpression; + } + + /** + * + * + * @generated + */ + public UnaryDeQueueExpression createUnaryDeQueueExpression() + { + UnaryDeQueueExpressionImpl unaryDeQueueExpression = new UnaryDeQueueExpressionImpl(); + return unaryDeQueueExpression; + } + + /** + * + * + * @generated + */ + public UnaryEmptyExpression createUnaryEmptyExpression() + { + UnaryEmptyExpressionImpl unaryEmptyExpression = new UnaryEmptyExpressionImpl(); + return unaryEmptyExpression; + } + + /** + * + * + * @generated + */ + public Projection createProjection() + { + ProjectionImpl projection = new ProjectionImpl(); + return projection; + } + + /** + * + * + * @generated + */ + public ConstructionExpression createConstructionExpression() + { + ConstructionExpressionImpl constructionExpression = new ConstructionExpressionImpl(); + return constructionExpression; + } + + /** + * + * + * @generated + */ + public ArrayAccessExpression createArrayAccessExpression() + { + ArrayAccessExpressionImpl arrayAccessExpression = new ArrayAccessExpressionImpl(); + return arrayAccessExpression; + } + + /** + * + * + * @generated + */ + public RecordAccessExpression createRecordAccessExpression() + { + RecordAccessExpressionImpl recordAccessExpression = new RecordAccessExpressionImpl(); + return recordAccessExpression; + } + + /** + * + * + * @generated + */ + public TrueLiteral createTrueLiteral() + { + TrueLiteralImpl trueLiteral = new TrueLiteralImpl(); + return trueLiteral; + } + + /** + * + * + * @generated + */ + public FalseLiteral createFalseLiteral() + { + FalseLiteralImpl falseLiteral = new FalseLiteralImpl(); + return falseLiteral; + } + + /** + * + * + * @generated + */ + public AllProperty createAllProperty() + { + AllPropertyImpl allProperty = new AllPropertyImpl(); + return allProperty; + } + + /** + * + * + * @generated + */ + public ExistsProperty createExistsProperty() + { + ExistsPropertyImpl existsProperty = new ExistsPropertyImpl(); + return existsProperty; + } + + /** + * + * + * @generated + */ + public PropertyDisjunction createPropertyDisjunction() + { + PropertyDisjunctionImpl propertyDisjunction = new PropertyDisjunctionImpl(); + return propertyDisjunction; + } + + /** + * + * + * @generated + */ + public PropertyImplication createPropertyImplication() + { + PropertyImplicationImpl propertyImplication = new PropertyImplicationImpl(); + return propertyImplication; + } + + /** + * + * + * @generated + */ + public PropertyConjunction createPropertyConjunction() + { + PropertyConjunctionImpl propertyConjunction = new PropertyConjunctionImpl(); + return propertyConjunction; + } + + /** + * + * + * @generated + */ + public PropertyNegation createPropertyNegation() + { + PropertyNegationImpl propertyNegation = new PropertyNegationImpl(); + return propertyNegation; + } + + /** + * + * + * @generated + */ + public LeadsToPattern createLeadsToPattern() + { + LeadsToPatternImpl leadsToPattern = new LeadsToPatternImpl(); + return leadsToPattern; + } + + /** + * + * + * @generated + */ + public PrecedesPattern createPrecedesPattern() + { + PrecedesPatternImpl precedesPattern = new PrecedesPatternImpl(); + return precedesPattern; + } + + /** + * + * + * @generated + */ + public LTLAll createLTLAll() + { + LTLAllImpl ltlAll = new LTLAllImpl(); + return ltlAll; + } + + /** + * + * + * @generated + */ + public LTLExists createLTLExists() + { + LTLExistsImpl ltlExists = new LTLExistsImpl(); + return ltlExists; + } + + /** + * + * + * @generated + */ + public LTLDisjunction createLTLDisjunction() + { + LTLDisjunctionImpl ltlDisjunction = new LTLDisjunctionImpl(); + return ltlDisjunction; + } + + /** + * + * + * @generated + */ + public LTLImplication createLTLImplication() + { + LTLImplicationImpl ltlImplication = new LTLImplicationImpl(); + return ltlImplication; + } + + /** + * + * + * @generated + */ + public LTLConjunction createLTLConjunction() + { + LTLConjunctionImpl ltlConjunction = new LTLConjunctionImpl(); + return ltlConjunction; + } + + /** + * + * + * @generated + */ + public LTLUntil createLTLUntil() + { + LTLUntilImpl ltlUntil = new LTLUntilImpl(); + return ltlUntil; + } + + /** + * + * + * @generated + */ + public LTLRelease createLTLRelease() + { + LTLReleaseImpl ltlRelease = new LTLReleaseImpl(); + return ltlRelease; + } + + /** + * + * + * @generated + */ + public LTLUnaryNegation createLTLUnaryNegation() + { + LTLUnaryNegationImpl ltlUnaryNegation = new LTLUnaryNegationImpl(); + return ltlUnaryNegation; + } + + /** + * + * + * @generated + */ + public LTLUnaryNext createLTLUnaryNext() + { + LTLUnaryNextImpl ltlUnaryNext = new LTLUnaryNextImpl(); + return ltlUnaryNext; + } + + /** + * + * + * @generated + */ + public LTLUnaryAlways createLTLUnaryAlways() + { + LTLUnaryAlwaysImpl ltlUnaryAlways = new LTLUnaryAlwaysImpl(); + return ltlUnaryAlways; + } + + /** + * + * + * @generated + */ + public LTLUnaryEventually createLTLUnaryEventually() + { + LTLUnaryEventuallyImpl ltlUnaryEventually = new LTLUnaryEventuallyImpl(); + return ltlUnaryEventually; + } + + /** + * + * + * @generated + */ + public LTLVariable createLTLVariable() + { + LTLVariableImpl ltlVariable = new LTLVariableImpl(); + return ltlVariable; + } + + /** + * + * + * @generated + */ + public ObservableDisjunction createObservableDisjunction() + { + ObservableDisjunctionImpl observableDisjunction = new ObservableDisjunctionImpl(); + return observableDisjunction; + } + + /** + * + * + * @generated + */ + public ObservableImplication createObservableImplication() + { + ObservableImplicationImpl observableImplication = new ObservableImplicationImpl(); + return observableImplication; + } + + /** + * + * + * @generated + */ + public ObservableConjunction createObservableConjunction() + { + ObservableConjunctionImpl observableConjunction = new ObservableConjunctionImpl(); + return observableConjunction; + } + + /** + * + * + * @generated + */ + public ObservableNegation createObservableNegation() + { + ObservableNegationImpl observableNegation = new ObservableNegationImpl(); + return observableNegation; + } + + /** + * + * + * @generated + */ + public FiacrePackage getFiacrePackage() + { + return (FiacrePackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static FiacrePackage getPackage() + { + return FiacrePackage.eINSTANCE; + } + +} //FiacreFactoryImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FiacrePackageImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FiacrePackageImpl.java new file mode 100644 index 0000000..18e30ed --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FiacrePackageImpl.java @@ -0,0 +1,7253 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacreFactory; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; + +import java.io.IOException; + +import java.net.URL; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +import org.eclipse.emf.ecore.resource.Resource; + +import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class FiacrePackageImpl extends EPackageImpl implements FiacrePackage +{ + /** + * + * + * @generated + */ + protected String packageFilename = "fiacre.loadinitialization_ecore"; + + /** + * + * + * @generated + */ + private EClass modelEClass = null; + + /** + * + * + * @generated + */ + private EClass rootDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass rootEClass = null; + + /** + * + * + * @generated + */ + private EClass namedElementEClass = null; + + /** + * + * + * @generated + */ + private EClass typeDeclarationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass constantDeclarationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass expressionDeclarationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass referenceDeclarationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass unionTagDeclarationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass recordFieldDeclarationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass patternDeclarationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass boundDeclarationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass pathDeclarationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass propertyDeclarationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass importDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass declarationEClass = null; + + /** + * + * + * @generated + */ + private EClass parameterizedDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass functionDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass typeDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass channelDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass channelTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass typeEClass = null; + + /** + * + * + * @generated + */ + private EClass basicTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass rangeTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass unionTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass unionTagsEClass = null; + + /** + * + * + * @generated + */ + private EClass unionTagDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass recordTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass recordFieldsEClass = null; + + /** + * + * + * @generated + */ + private EClass recordFieldDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass queueTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass arrayTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass referencedTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass constantDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass processDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass stateDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass transitionSourceEClass = null; + + /** + * + * + * @generated + */ + private EClass transitionEClass = null; + + /** + * + * + * @generated + */ + private EClass componentDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass portsDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass portDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass localPortsDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass parametersDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass parameterDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass variablesDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass variableDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass priorityDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass priorityGroupEClass = null; + + /** + * + * + * @generated + */ + private EClass statementEClass = null; + + /** + * + * + * @generated + */ + private EClass blockStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass returnStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass nullStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass taggedStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass patternStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass patternEClass = null; + + /** + * + * + * @generated + */ + private EClass anyPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass constantPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass integerPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass identifierPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass conditionalStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass extendedConditionalStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass selectStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass whileStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass foreachStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass toStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass caseStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass loopStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass onStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass waitStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass compositionEClass = null; + + /** + * + * + * @generated + */ + private EClass blockEClass = null; + + /** + * + * + * @generated + */ + private EClass compositeBlockEClass = null; + + /** + * + * + * @generated + */ + private EClass instanceDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass portSetEClass = null; + + /** + * + * + * @generated + */ + private EClass componentInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass expressionEClass = null; + + /** + * + * + * @generated + */ + private EClass valueExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass referenceExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass identifierExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass recordExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass fieldExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass arrayExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass queueExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass enqueueExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass appendExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass literalExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass booleanLiteralEClass = null; + + /** + * + * + * @generated + */ + private EClass naturalLiteralEClass = null; + + /** + * + * + * @generated + */ + private EClass lowerBoundEClass = null; + + /** + * + * + * @generated + */ + private EClass upperBoundEClass = null; + + /** + * + * + * @generated + */ + private EClass naturalLowerBoundEClass = null; + + /** + * + * + * @generated + */ + private EClass naturalUpperBoundEClass = null; + + /** + * + * + * @generated + */ + private EClass decimalLowerBoundEClass = null; + + /** + * + * + * @generated + */ + private EClass decimalUpperBoundEClass = null; + + /** + * + * + * @generated + */ + private EClass variableLowerBoundEClass = null; + + /** + * + * + * @generated + */ + private EClass variableUpperBoundEClass = null; + + /** + * + * + * @generated + */ + private EClass infiniteUpperBoundEClass = null; + + /** + * + * + * @generated + */ + private EClass requirementEClass = null; + + /** + * + * + * @generated + */ + private EClass propertyDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass propertyEClass = null; + + /** + * + * + * @generated + */ + private EClass patternPropertyEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass deadlockFreePatternEClass = null; + + /** + * + * + * @generated + */ + private EClass infinitelyOftenPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass mortalPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass presencePatternEClass = null; + + /** + * + * + * @generated + */ + private EClass absencePatternEClass = null; + + /** + * + * + * @generated + */ + private EClass alwaysPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass sequencePatternEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlPropertyEClass = null; + + /** + * + * + * @generated + */ + private EClass stateEventEClass = null; + + /** + * + * + * @generated + */ + private EClass enterStateEventEClass = null; + + /** + * + * + * @generated + */ + private EClass leaveStateEventEClass = null; + + /** + * + * + * @generated + */ + private EClass observableEClass = null; + + /** + * + * + * @generated + */ + private EClass observableEventEClass = null; + + /** + * + * + * @generated + */ + private EClass pathEventEClass = null; + + /** + * + * + * @generated + */ + private EClass pathEClass = null; + + /** + * + * + * @generated + */ + private EClass pathItemEClass = null; + + /** + * + * + * @generated + */ + private EClass naturalItemEClass = null; + + /** + * + * + * @generated + */ + private EClass namedItemEClass = null; + + /** + * + * + * @generated + */ + private EClass subjectEClass = null; + + /** + * + * + * @generated + */ + private EClass stateSubjectEClass = null; + + /** + * + * + * @generated + */ + private EClass valueSubjectEClass = null; + + /** + * + * + * @generated + */ + private EClass tagSubjectEClass = null; + + /** + * + * + * @generated + */ + private EClass eventSubjectEClass = null; + + /** + * + * + * @generated + */ + private EClass tupleTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass naturalTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass integerTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass booleanTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass unlessStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass statementChoiceEClass = null; + + /** + * + * + * @generated + */ + private EClass statementSequenceEClass = null; + + /** + * + * + * @generated + */ + private EClass assignStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass assignAnyStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass sendStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass receiveStatementEClass = null; + + /** + * + * + * @generated + */ + private EClass constructorPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass arrayAccessPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass recordAccessPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass allExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass existsExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass conditionalEClass = null; + + /** + * + * + * @generated + */ + private EClass disjunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass implicationEClass = null; + + /** + * + * + * @generated + */ + private EClass conjunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass comparisonEqualEClass = null; + + /** + * + * + * @generated + */ + private EClass comparisonNotEqualEClass = null; + + /** + * + * + * @generated + */ + private EClass comparisonLesserEClass = null; + + /** + * + * + * @generated + */ + private EClass comparisonLesserEqualEClass = null; + + /** + * + * + * @generated + */ + private EClass comparisonGreaterEClass = null; + + /** + * + * + * @generated + */ + private EClass comparisonGreaterEqualEClass = null; + + /** + * + * + * @generated + */ + private EClass additionEClass = null; + + /** + * + * + * @generated + */ + private EClass substractionEClass = null; + + /** + * + * + * @generated + */ + private EClass multiplicationEClass = null; + + /** + * + * + * @generated + */ + private EClass divisionEClass = null; + + /** + * + * + * @generated + */ + private EClass moduloEClass = null; + + /** + * + * + * @generated + */ + private EClass unaryPlusExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass unaryMinusExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass unaryNegationExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass unaryFirstExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass unaryLengthExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass unaryCoerceExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass unaryFullExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass unaryDeQueueExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass unaryEmptyExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass projectionEClass = null; + + /** + * + * + * @generated + */ + private EClass constructionExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass arrayAccessExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass recordAccessExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass trueLiteralEClass = null; + + /** + * + * + * @generated + */ + private EClass falseLiteralEClass = null; + + /** + * + * + * @generated + */ + private EClass allPropertyEClass = null; + + /** + * + * + * @generated + */ + private EClass existsPropertyEClass = null; + + /** + * + * + * @generated + */ + private EClass propertyDisjunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass propertyImplicationEClass = null; + + /** + * + * + * @generated + */ + private EClass propertyConjunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass propertyNegationEClass = null; + + /** + * + * + * @generated + */ + private EClass leadsToPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass precedesPatternEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlAllEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlExistsEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlDisjunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlImplicationEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlConjunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlUntilEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlReleaseEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlUnaryNegationEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlUnaryNextEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlUnaryAlwaysEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlUnaryEventuallyEClass = null; + + /** + * + * + * @generated + */ + private EClass ltlVariableEClass = null; + + /** + * + * + * @generated + */ + private EClass observableDisjunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass observableImplicationEClass = null; + + /** + * + * + * @generated + */ + private EClass observableConjunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass observableNegationEClass = 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 fr.irit.fiacre.xtext.fiacre.FiacrePackage#eNS_URI + * @see #init() + * @generated + */ + private FiacrePackageImpl() + { + super(eNS_URI, FiacreFactory.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 FiacrePackage#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 + * @generated + */ + public static FiacrePackage init() + { + if (isInited) return (FiacrePackage)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI); + + // Obtain or create and register package + FiacrePackageImpl theFiacrePackage = (FiacrePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FiacrePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FiacrePackageImpl()); + + isInited = true; + + // Load packages + theFiacrePackage.loadPackage(); + + // Fix loaded packages + theFiacrePackage.fixPackageContents(); + + // Mark meta-data to indicate it can't be changed + theFiacrePackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(FiacrePackage.eNS_URI, theFiacrePackage); + return theFiacrePackage; + } + + /** + * + * + * @generated + */ + public EClass getModel() + { + if (modelEClass == null) + { + modelEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(0); + } + return modelEClass; + } + + /** + * + * + * @generated + */ + public EReference getModel_Imports() + { + return (EReference)getModel().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getModel_Declarations() + { + return (EReference)getModel().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getModel_Requirements() + { + return (EReference)getModel().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getModel_Root() + { + return (EReference)getModel().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getRootDeclaration() + { + if (rootDeclarationEClass == null) + { + rootDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(1); + } + return rootDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EClass getRoot() + { + if (rootEClass == null) + { + rootEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(2); + } + return rootEClass; + } + + /** + * + * + * @generated + */ + public EReference getRoot_Declaration() + { + return (EReference)getRoot().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getRoot_Observed() + { + return (EReference)getRoot().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getNamedElement() + { + if (namedElementEClass == null) + { + namedElementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(3); + } + return namedElementEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getNamedElement_Name() + { + return (EAttribute)getNamedElement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getTypeDeclarationUse() + { + if (typeDeclarationUseEClass == null) + { + typeDeclarationUseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(4); + } + return typeDeclarationUseEClass; + } + + /** + * + * + * @generated + */ + public EClass getConstantDeclarationUse() + { + if (constantDeclarationUseEClass == null) + { + constantDeclarationUseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(5); + } + return constantDeclarationUseEClass; + } + + /** + * + * + * @generated + */ + public EClass getExpressionDeclarationUse() + { + if (expressionDeclarationUseEClass == null) + { + expressionDeclarationUseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(6); + } + return expressionDeclarationUseEClass; + } + + /** + * + * + * @generated + */ + public EClass getReferenceDeclarationUse() + { + if (referenceDeclarationUseEClass == null) + { + referenceDeclarationUseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(7); + } + return referenceDeclarationUseEClass; + } + + /** + * + * + * @generated + */ + public EClass getUnionTagDeclarationUse() + { + if (unionTagDeclarationUseEClass == null) + { + unionTagDeclarationUseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(8); + } + return unionTagDeclarationUseEClass; + } + + /** + * + * + * @generated + */ + public EClass getRecordFieldDeclarationUse() + { + if (recordFieldDeclarationUseEClass == null) + { + recordFieldDeclarationUseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(9); + } + return recordFieldDeclarationUseEClass; + } + + /** + * + * + * @generated + */ + public EClass getPatternDeclarationUse() + { + if (patternDeclarationUseEClass == null) + { + patternDeclarationUseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(10); + } + return patternDeclarationUseEClass; + } + + /** + * + * + * @generated + */ + public EClass getBoundDeclarationUse() + { + if (boundDeclarationUseEClass == null) + { + boundDeclarationUseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(11); + } + return boundDeclarationUseEClass; + } + + /** + * + * + * @generated + */ + public EClass getPathDeclarationUse() + { + if (pathDeclarationUseEClass == null) + { + pathDeclarationUseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(12); + } + return pathDeclarationUseEClass; + } + + /** + * + * + * @generated + */ + public EClass getPropertyDeclarationUse() + { + if (propertyDeclarationUseEClass == null) + { + propertyDeclarationUseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(13); + } + return propertyDeclarationUseEClass; + } + + /** + * + * + * @generated + */ + public EClass getImportDeclaration() + { + if (importDeclarationEClass == null) + { + importDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(14); + } + return importDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getImportDeclaration_ImportURI() + { + return (EAttribute)getImportDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getDeclaration() + { + if (declarationEClass == null) + { + declarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(15); + } + return declarationEClass; + } + + /** + * + * + * @generated + */ + public EClass getParameterizedDeclaration() + { + if (parameterizedDeclarationEClass == null) + { + parameterizedDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(16); + } + return parameterizedDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getParameterizedDeclaration_Parameters() + { + return (EReference)getParameterizedDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getParameterizedDeclaration_Variables() + { + return (EReference)getParameterizedDeclaration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getFunctionDeclaration() + { + if (functionDeclarationEClass == null) + { + functionDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(17); + } + return functionDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getFunctionDeclaration_Type() + { + return (EReference)getFunctionDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getFunctionDeclaration_Statement() + { + return (EReference)getFunctionDeclaration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getTypeDeclaration() + { + if (typeDeclarationEClass == null) + { + typeDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(18); + } + return typeDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getTypeDeclaration_Value() + { + return (EReference)getTypeDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getChannelDeclaration() + { + if (channelDeclarationEClass == null) + { + channelDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(19); + } + return channelDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getChannelDeclaration_Value() + { + return (EReference)getChannelDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getChannelType() + { + if (channelTypeEClass == null) + { + channelTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(20); + } + return channelTypeEClass; + } + + /** + * + * + * @generated + */ + public EReference getChannelType_Size() + { + return (EReference)getChannelType().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getChannelType_In() + { + return (EAttribute)getChannelType().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getChannelType_Out() + { + return (EAttribute)getChannelType().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getChannelType_Type() + { + return (EReference)getChannelType().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getType() + { + if (typeEClass == null) + { + typeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(21); + } + return typeEClass; + } + + /** + * + * + * @generated + */ + public EClass getBasicType() + { + if (basicTypeEClass == null) + { + basicTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(22); + } + return basicTypeEClass; + } + + /** + * + * + * @generated + */ + public EClass getRangeType() + { + if (rangeTypeEClass == null) + { + rangeTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(23); + } + return rangeTypeEClass; + } + + /** + * + * + * @generated + */ + public EReference getRangeType_Minimum() + { + return (EReference)getRangeType().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getRangeType_Maximum() + { + return (EReference)getRangeType().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getUnionType() + { + if (unionTypeEClass == null) + { + unionTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(24); + } + return unionTypeEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnionType_Tags() + { + return (EReference)getUnionType().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getUnionTags() + { + if (unionTagsEClass == null) + { + unionTagsEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(25); + } + return unionTagsEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnionTags_Tags() + { + return (EReference)getUnionTags().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getUnionTags_Type() + { + return (EReference)getUnionTags().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getUnionTagDeclaration() + { + if (unionTagDeclarationEClass == null) + { + unionTagDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(26); + } + return unionTagDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EClass getRecordType() + { + if (recordTypeEClass == null) + { + recordTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(27); + } + return recordTypeEClass; + } + + /** + * + * + * @generated + */ + public EReference getRecordType_Fields() + { + return (EReference)getRecordType().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getRecordFields() + { + if (recordFieldsEClass == null) + { + recordFieldsEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(28); + } + return recordFieldsEClass; + } + + /** + * + * + * @generated + */ + public EReference getRecordFields_Fields() + { + return (EReference)getRecordFields().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getRecordFields_Type() + { + return (EReference)getRecordFields().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getRecordFieldDeclaration() + { + if (recordFieldDeclarationEClass == null) + { + recordFieldDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(29); + } + return recordFieldDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EClass getQueueType() + { + if (queueTypeEClass == null) + { + queueTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(30); + } + return queueTypeEClass; + } + + /** + * + * + * @generated + */ + public EReference getQueueType_Size() + { + return (EReference)getQueueType().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getQueueType_Type() + { + return (EReference)getQueueType().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getArrayType() + { + if (arrayTypeEClass == null) + { + arrayTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(31); + } + return arrayTypeEClass; + } + + /** + * + * + * @generated + */ + public EReference getArrayType_Size() + { + return (EReference)getArrayType().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getArrayType_Type() + { + return (EReference)getArrayType().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getReferencedType() + { + if (referencedTypeEClass == null) + { + referencedTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(32); + } + return referencedTypeEClass; + } + + /** + * + * + * @generated + */ + public EReference getReferencedType_Type() + { + return (EReference)getReferencedType().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getConstantDeclaration() + { + if (constantDeclarationEClass == null) + { + constantDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(33); + } + return constantDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getConstantDeclaration_Type() + { + return (EReference)getConstantDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getConstantDeclaration_Value() + { + return (EReference)getConstantDeclaration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getProcessDeclaration() + { + if (processDeclarationEClass == null) + { + processDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(34); + } + return processDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getProcessDeclaration_Ports() + { + return (EReference)getProcessDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getProcessDeclaration_LocalPorts() + { + return (EReference)getProcessDeclaration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getProcessDeclaration_Priorities() + { + return (EReference)getProcessDeclaration().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getProcessDeclaration_States() + { + return (EReference)getProcessDeclaration().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getProcessDeclaration_Prelude() + { + return (EReference)getProcessDeclaration().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getProcessDeclaration_Transitions() + { + return (EReference)getProcessDeclaration().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getStateDeclaration() + { + if (stateDeclarationEClass == null) + { + stateDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(35); + } + return stateDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EClass getTransitionSource() + { + if (transitionSourceEClass == null) + { + transitionSourceEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(36); + } + return transitionSourceEClass; + } + + /** + * + * + * @generated + */ + public EReference getTransitionSource_Origin() + { + return (EReference)getTransitionSource().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getTransition() + { + if (transitionEClass == null) + { + transitionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(37); + } + return transitionEClass; + } + + /** + * + * + * @generated + */ + public EReference getTransition_Source() + { + return (EReference)getTransition().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getTransition_Action() + { + return (EReference)getTransition().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getComponentDeclaration() + { + if (componentDeclarationEClass == null) + { + componentDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(38); + } + return componentDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getComponentDeclaration_Ports() + { + return (EReference)getComponentDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComponentDeclaration_LocalPorts() + { + return (EReference)getComponentDeclaration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getComponentDeclaration_Priorities() + { + return (EReference)getComponentDeclaration().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getComponentDeclaration_Prelude() + { + return (EReference)getComponentDeclaration().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getComponentDeclaration_Body() + { + return (EReference)getComponentDeclaration().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getPortsDeclaration() + { + if (portsDeclarationEClass == null) + { + portsDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(39); + } + return portsDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getPortsDeclaration_Ports() + { + return (EReference)getPortsDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPortsDeclaration_Type() + { + return (EReference)getPortsDeclaration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getPortDeclaration() + { + if (portDeclarationEClass == null) + { + portDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(40); + } + return portDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EClass getLocalPortsDeclaration() + { + if (localPortsDeclarationEClass == null) + { + localPortsDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(41); + } + return localPortsDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getLocalPortsDeclaration_Ports() + { + return (EReference)getLocalPortsDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLocalPortsDeclaration_Type() + { + return (EReference)getLocalPortsDeclaration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getLocalPortsDeclaration_Left() + { + return (EReference)getLocalPortsDeclaration().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getLocalPortsDeclaration_Right() + { + return (EReference)getLocalPortsDeclaration().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getParametersDeclaration() + { + if (parametersDeclarationEClass == null) + { + parametersDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(42); + } + return parametersDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getParametersDeclaration_Parameters() + { + return (EReference)getParametersDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getParametersDeclaration_Read() + { + return (EAttribute)getParametersDeclaration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getParametersDeclaration_Write() + { + return (EAttribute)getParametersDeclaration().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getParametersDeclaration_Type() + { + return (EReference)getParametersDeclaration().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getParameterDeclaration() + { + if (parameterDeclarationEClass == null) + { + parameterDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(43); + } + return parameterDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getParameterDeclaration_Reference() + { + return (EAttribute)getParameterDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getParameterDeclaration_Array() + { + return (EAttribute)getParameterDeclaration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getParameterDeclaration_Size() + { + return (EReference)getParameterDeclaration().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getVariablesDeclaration() + { + if (variablesDeclarationEClass == null) + { + variablesDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(44); + } + return variablesDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getVariablesDeclaration_Variables() + { + return (EReference)getVariablesDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVariablesDeclaration_Type() + { + return (EReference)getVariablesDeclaration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getVariablesDeclaration_Value() + { + return (EReference)getVariablesDeclaration().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getVariableDeclaration() + { + if (variableDeclarationEClass == null) + { + variableDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(45); + } + return variableDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EClass getPriorityDeclaration() + { + if (priorityDeclarationEClass == null) + { + priorityDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(46); + } + return priorityDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getPriorityDeclaration_Groups() + { + return (EReference)getPriorityDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getPriorityGroup() + { + if (priorityGroupEClass == null) + { + priorityGroupEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(47); + } + return priorityGroupEClass; + } + + /** + * + * + * @generated + */ + public EReference getPriorityGroup_Ports() + { + return (EReference)getPriorityGroup().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getStatement() + { + if (statementEClass == null) + { + statementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(48); + } + return statementEClass; + } + + /** + * + * + * @generated + */ + public EClass getBlockStatement() + { + if (blockStatementEClass == null) + { + blockStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(49); + } + return blockStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getBlockStatement_Body() + { + return (EReference)getBlockStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getReturnStatement() + { + if (returnStatementEClass == null) + { + returnStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(50); + } + return returnStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getReturnStatement_Expression() + { + return (EReference)getReturnStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getNullStatement() + { + if (nullStatementEClass == null) + { + nullStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(51); + } + return nullStatementEClass; + } + + /** + * + * + * @generated + */ + public EClass getTaggedStatement() + { + if (taggedStatementEClass == null) + { + taggedStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(52); + } + return taggedStatementEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getTaggedStatement_Name() + { + return (EAttribute)getTaggedStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getPatternStatement() + { + if (patternStatementEClass == null) + { + patternStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(53); + } + return patternStatementEClass; + } + + /** + * + * + * @generated + */ + public EClass getPattern() + { + if (patternEClass == null) + { + patternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(54); + } + return patternEClass; + } + + /** + * + * + * @generated + */ + public EClass getAnyPattern() + { + if (anyPatternEClass == null) + { + anyPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(55); + } + return anyPatternEClass; + } + + /** + * + * + * @generated + */ + public EClass getConstantPattern() + { + if (constantPatternEClass == null) + { + constantPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(56); + } + return constantPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getConstantPattern_Value() + { + return (EReference)getConstantPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getIntegerPattern() + { + if (integerPatternEClass == null) + { + integerPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(57); + } + return integerPatternEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getIntegerPattern_Negative() + { + return (EAttribute)getIntegerPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getIntegerPattern_Value() + { + return (EAttribute)getIntegerPattern().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getIdentifierPattern() + { + if (identifierPatternEClass == null) + { + identifierPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(58); + } + return identifierPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getIdentifierPattern_Declaration() + { + return (EReference)getIdentifierPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getConditionalStatement() + { + if (conditionalStatementEClass == null) + { + conditionalStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(59); + } + return conditionalStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getConditionalStatement_Condition() + { + return (EReference)getConditionalStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getConditionalStatement_Then() + { + return (EReference)getConditionalStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getConditionalStatement_Elseif() + { + return (EReference)getConditionalStatement().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getConditionalStatement_Else() + { + return (EReference)getConditionalStatement().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getExtendedConditionalStatement() + { + if (extendedConditionalStatementEClass == null) + { + extendedConditionalStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(60); + } + return extendedConditionalStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getExtendedConditionalStatement_Condition() + { + return (EReference)getExtendedConditionalStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getExtendedConditionalStatement_Then() + { + return (EReference)getExtendedConditionalStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getSelectStatement() + { + if (selectStatementEClass == null) + { + selectStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(61); + } + return selectStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getSelectStatement_Body() + { + return (EReference)getSelectStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getSelectStatement_Index() + { + return (EReference)getSelectStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getSelectStatement_Type() + { + return (EReference)getSelectStatement().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getWhileStatement() + { + if (whileStatementEClass == null) + { + whileStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(62); + } + return whileStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getWhileStatement_Condition() + { + return (EReference)getWhileStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getWhileStatement_Body() + { + return (EReference)getWhileStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getForeachStatement() + { + if (foreachStatementEClass == null) + { + foreachStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(63); + } + return foreachStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getForeachStatement_Variable() + { + return (EReference)getForeachStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getForeachStatement_Body() + { + return (EReference)getForeachStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getToStatement() + { + if (toStatementEClass == null) + { + toStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(64); + } + return toStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getToStatement_State() + { + return (EReference)getToStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getCaseStatement() + { + if (caseStatementEClass == null) + { + caseStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(65); + } + return caseStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getCaseStatement_Value() + { + return (EReference)getCaseStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getCaseStatement_Pattern() + { + return (EReference)getCaseStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getCaseStatement_Body() + { + return (EReference)getCaseStatement().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getLoopStatement() + { + if (loopStatementEClass == null) + { + loopStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(66); + } + return loopStatementEClass; + } + + /** + * + * + * @generated + */ + public EClass getOnStatement() + { + if (onStatementEClass == null) + { + onStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(67); + } + return onStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getOnStatement_Condition() + { + return (EReference)getOnStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getWaitStatement() + { + if (waitStatementEClass == null) + { + waitStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(68); + } + return waitStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getWaitStatement_Left() + { + return (EReference)getWaitStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getWaitStatement_Right() + { + return (EReference)getWaitStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getComposition() + { + if (compositionEClass == null) + { + compositionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(69); + } + return compositionEClass; + } + + /** + * + * + * @generated + */ + public EReference getComposition_Global() + { + return (EReference)getComposition().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComposition_Blocks() + { + return (EReference)getComposition().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getBlock() + { + if (blockEClass == null) + { + blockEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(70); + } + return blockEClass; + } + + /** + * + * + * @generated + */ + public EReference getBlock_Local() + { + return (EReference)getBlock().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getCompositeBlock() + { + if (compositeBlockEClass == null) + { + compositeBlockEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(71); + } + return compositeBlockEClass; + } + + /** + * + * + * @generated + */ + public EReference getCompositeBlock_Composition() + { + return (EReference)getCompositeBlock().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getInstanceDeclaration() + { + if (instanceDeclarationEClass == null) + { + instanceDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(72); + } + return instanceDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getInstanceDeclaration_Instance() + { + return (EReference)getInstanceDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getPortSet() + { + if (portSetEClass == null) + { + portSetEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(73); + } + return portSetEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getPortSet_AllPorts() + { + return (EAttribute)getPortSet().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPortSet_Ports() + { + return (EReference)getPortSet().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getComponentInstance() + { + if (componentInstanceEClass == null) + { + componentInstanceEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(74); + } + return componentInstanceEClass; + } + + /** + * + * + * @generated + */ + public EReference getComponentInstance_Component() + { + return (EReference)getComponentInstance().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComponentInstance_Ports() + { + return (EReference)getComponentInstance().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getComponentInstance_Parameters() + { + return (EReference)getComponentInstance().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getExpression() + { + if (expressionEClass == null) + { + expressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(75); + } + return expressionEClass; + } + + /** + * + * + * @generated + */ + public EClass getValueExpression() + { + if (valueExpressionEClass == null) + { + valueExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(76); + } + return valueExpressionEClass; + } + + /** + * + * + * @generated + */ + public EClass getReferenceExpression() + { + if (referenceExpressionEClass == null) + { + referenceExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(77); + } + return referenceExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getReferenceExpression_Declaration() + { + return (EReference)getReferenceExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getIdentifierExpression() + { + if (identifierExpressionEClass == null) + { + identifierExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(78); + } + return identifierExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getIdentifierExpression_Declaration() + { + return (EReference)getIdentifierExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getRecordExpression() + { + if (recordExpressionEClass == null) + { + recordExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(79); + } + return recordExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getRecordExpression_Fields() + { + return (EReference)getRecordExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getFieldExpression() + { + if (fieldExpressionEClass == null) + { + fieldExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(80); + } + return fieldExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getFieldExpression_Field() + { + return (EReference)getFieldExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getFieldExpression_Value() + { + return (EReference)getFieldExpression().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getArrayExpression() + { + if (arrayExpressionEClass == null) + { + arrayExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(81); + } + return arrayExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getArrayExpression_Values() + { + return (EReference)getArrayExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getQueueExpression() + { + if (queueExpressionEClass == null) + { + queueExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(82); + } + return queueExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getQueueExpression_Values() + { + return (EReference)getQueueExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getEnqueueExpression() + { + if (enqueueExpressionEClass == null) + { + enqueueExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(83); + } + return enqueueExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getEnqueueExpression_Element() + { + return (EReference)getEnqueueExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getEnqueueExpression_Queue() + { + return (EReference)getEnqueueExpression().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getAppendExpression() + { + if (appendExpressionEClass == null) + { + appendExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(84); + } + return appendExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getAppendExpression_Left() + { + return (EReference)getAppendExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAppendExpression_Right() + { + return (EReference)getAppendExpression().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getLiteralExpression() + { + if (literalExpressionEClass == null) + { + literalExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(85); + } + return literalExpressionEClass; + } + + /** + * + * + * @generated + */ + public EClass getBooleanLiteral() + { + if (booleanLiteralEClass == null) + { + booleanLiteralEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(86); + } + return booleanLiteralEClass; + } + + /** + * + * + * @generated + */ + public EClass getNaturalLiteral() + { + if (naturalLiteralEClass == null) + { + naturalLiteralEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(87); + } + return naturalLiteralEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getNaturalLiteral_Value() + { + return (EAttribute)getNaturalLiteral().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLowerBound() + { + if (lowerBoundEClass == null) + { + lowerBoundEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(88); + } + return lowerBoundEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getLowerBound_Left() + { + return (EAttribute)getLowerBound().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getLowerBound_Right() + { + return (EAttribute)getLowerBound().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getUpperBound() + { + if (upperBoundEClass == null) + { + upperBoundEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(89); + } + return upperBoundEClass; + } + + /** + * + * + * @generated + */ + public EClass getNaturalLowerBound() + { + if (naturalLowerBoundEClass == null) + { + naturalLowerBoundEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(90); + } + return naturalLowerBoundEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getNaturalLowerBound_Value() + { + return (EAttribute)getNaturalLowerBound().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getNaturalUpperBound() + { + if (naturalUpperBoundEClass == null) + { + naturalUpperBoundEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(91); + } + return naturalUpperBoundEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getNaturalUpperBound_Value() + { + return (EAttribute)getNaturalUpperBound().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getNaturalUpperBound_Left() + { + return (EAttribute)getNaturalUpperBound().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getNaturalUpperBound_Right() + { + return (EAttribute)getNaturalUpperBound().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getDecimalLowerBound() + { + if (decimalLowerBoundEClass == null) + { + decimalLowerBoundEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(92); + } + return decimalLowerBoundEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getDecimalLowerBound_Value() + { + return (EAttribute)getDecimalLowerBound().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getDecimalUpperBound() + { + if (decimalUpperBoundEClass == null) + { + decimalUpperBoundEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(93); + } + return decimalUpperBoundEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getDecimalUpperBound_Value() + { + return (EAttribute)getDecimalUpperBound().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getDecimalUpperBound_Left() + { + return (EAttribute)getDecimalUpperBound().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getDecimalUpperBound_Right() + { + return (EAttribute)getDecimalUpperBound().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getVariableLowerBound() + { + if (variableLowerBoundEClass == null) + { + variableLowerBoundEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(94); + } + return variableLowerBoundEClass; + } + + /** + * + * + * @generated + */ + public EReference getVariableLowerBound_Variable() + { + return (EReference)getVariableLowerBound().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getVariableUpperBound() + { + if (variableUpperBoundEClass == null) + { + variableUpperBoundEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(95); + } + return variableUpperBoundEClass; + } + + /** + * + * + * @generated + */ + public EReference getVariableUpperBound_Variable() + { + return (EReference)getVariableUpperBound().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getVariableUpperBound_Left() + { + return (EAttribute)getVariableUpperBound().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getVariableUpperBound_Right() + { + return (EAttribute)getVariableUpperBound().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getInfiniteUpperBound() + { + if (infiniteUpperBoundEClass == null) + { + infiniteUpperBoundEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(96); + } + return infiniteUpperBoundEClass; + } + + /** + * + * + * @generated + */ + public EClass getRequirement() + { + if (requirementEClass == null) + { + requirementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(97); + } + return requirementEClass; + } + + /** + * + * + * @generated + */ + public EReference getRequirement_Property() + { + return (EReference)getRequirement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getRequirement_Positive() + { + return (EAttribute)getRequirement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getRequirement_Negative() + { + return (EAttribute)getRequirement().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getPropertyDeclaration() + { + if (propertyDeclarationEClass == null) + { + propertyDeclarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(98); + } + return propertyDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getPropertyDeclaration_Property() + { + return (EReference)getPropertyDeclaration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getProperty() + { + if (propertyEClass == null) + { + propertyEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(99); + } + return propertyEClass; + } + + /** + * + * + * @generated + */ + public EClass getPatternProperty() + { + if (patternPropertyEClass == null) + { + patternPropertyEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(100); + } + return patternPropertyEClass; + } + + /** + * + * + * @generated + */ + public EClass getLTLPattern() + { + if (ltlPatternEClass == null) + { + ltlPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(101); + } + return ltlPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLPattern_Property() + { + return (EReference)getLTLPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getDeadlockFreePattern() + { + if (deadlockFreePatternEClass == null) + { + deadlockFreePatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(102); + } + return deadlockFreePatternEClass; + } + + /** + * + * + * @generated + */ + public EClass getInfinitelyOftenPattern() + { + if (infinitelyOftenPatternEClass == null) + { + infinitelyOftenPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(103); + } + return infinitelyOftenPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getInfinitelyOftenPattern_Subject() + { + return (EReference)getInfinitelyOftenPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getMortalPattern() + { + if (mortalPatternEClass == null) + { + mortalPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(104); + } + return mortalPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getMortalPattern_Subject() + { + return (EReference)getMortalPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getPresencePattern() + { + if (presencePatternEClass == null) + { + presencePatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(105); + } + return presencePatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getPresencePattern_Subject() + { + return (EReference)getPresencePattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getPresencePattern_Lasting() + { + return (EAttribute)getPresencePattern().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getPresencePattern_After() + { + return (EReference)getPresencePattern().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getPresencePattern_Lower() + { + return (EReference)getPresencePattern().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getPresencePattern_Upper() + { + return (EReference)getPresencePattern().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getPresencePattern_Until() + { + return (EReference)getPresencePattern().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getPresencePattern_Before() + { + return (EReference)getPresencePattern().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getPresencePattern_Min() + { + return (EReference)getPresencePattern().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EReference getPresencePattern_Max() + { + return (EReference)getPresencePattern().getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + public EClass getAbsencePattern() + { + if (absencePatternEClass == null) + { + absencePatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(106); + } + return absencePatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getAbsencePattern_Subject() + { + return (EReference)getAbsencePattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAbsencePattern_After() + { + return (EReference)getAbsencePattern().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getAbsencePattern_Lower() + { + return (EReference)getAbsencePattern().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getAbsencePattern_Upper() + { + return (EReference)getAbsencePattern().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getAbsencePattern_Until() + { + return (EReference)getAbsencePattern().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getAbsencePattern_Before() + { + return (EReference)getAbsencePattern().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getAbsencePattern_Min() + { + return (EReference)getAbsencePattern().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getAbsencePattern_Max() + { + return (EReference)getAbsencePattern().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EClass getAlwaysPattern() + { + if (alwaysPatternEClass == null) + { + alwaysPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(107); + } + return alwaysPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getAlwaysPattern_Subject() + { + return (EReference)getAlwaysPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAlwaysPattern_Before() + { + return (EReference)getAlwaysPattern().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getAlwaysPattern_After() + { + return (EReference)getAlwaysPattern().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getAlwaysPattern_Until() + { + return (EReference)getAlwaysPattern().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getAlwaysPattern_Min() + { + return (EReference)getAlwaysPattern().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getAlwaysPattern_Max() + { + return (EReference)getAlwaysPattern().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getSequencePattern() + { + if (sequencePatternEClass == null) + { + sequencePatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(108); + } + return sequencePatternEClass; + } + + /** + * + * + * @generated + */ + public EClass getLTLProperty() + { + if (ltlPropertyEClass == null) + { + ltlPropertyEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(109); + } + return ltlPropertyEClass; + } + + /** + * + * + * @generated + */ + public EClass getStateEvent() + { + if (stateEventEClass == null) + { + stateEventEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(110); + } + return stateEventEClass; + } + + /** + * + * + * @generated + */ + public EReference getStateEvent_Subject() + { + return (EReference)getStateEvent().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getEnterStateEvent() + { + if (enterStateEventEClass == null) + { + enterStateEventEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(111); + } + return enterStateEventEClass; + } + + /** + * + * + * @generated + */ + public EClass getLeaveStateEvent() + { + if (leaveStateEventEClass == null) + { + leaveStateEventEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(112); + } + return leaveStateEventEClass; + } + + /** + * + * + * @generated + */ + public EClass getObservable() + { + if (observableEClass == null) + { + observableEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(113); + } + return observableEClass; + } + + /** + * + * + * @generated + */ + public EClass getObservableEvent() + { + if (observableEventEClass == null) + { + observableEventEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(114); + } + return observableEventEClass; + } + + /** + * + * + * @generated + */ + public EClass getPathEvent() + { + if (pathEventEClass == null) + { + pathEventEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(115); + } + return pathEventEClass; + } + + /** + * + * + * @generated + */ + public EReference getPathEvent_Path() + { + return (EReference)getPathEvent().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPathEvent_Item() + { + return (EReference)getPathEvent().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getPath() + { + if (pathEClass == null) + { + pathEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(116); + } + return pathEClass; + } + + /** + * + * + * @generated + */ + public EReference getPath_Items() + { + return (EReference)getPath().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getPathItem() + { + if (pathItemEClass == null) + { + pathItemEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(117); + } + return pathItemEClass; + } + + /** + * + * + * @generated + */ + public EClass getNaturalItem() + { + if (naturalItemEClass == null) + { + naturalItemEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(118); + } + return naturalItemEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getNaturalItem_Value() + { + return (EAttribute)getNaturalItem().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getNamedItem() + { + if (namedItemEClass == null) + { + namedItemEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(119); + } + return namedItemEClass; + } + + /** + * + * + * @generated + */ + public EReference getNamedItem_Declaration() + { + return (EReference)getNamedItem().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getSubject() + { + if (subjectEClass == null) + { + subjectEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(120); + } + return subjectEClass; + } + + /** + * + * + * @generated + */ + public EClass getStateSubject() + { + if (stateSubjectEClass == null) + { + stateSubjectEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(121); + } + return stateSubjectEClass; + } + + /** + * + * + * @generated + */ + public EReference getStateSubject_State() + { + return (EReference)getStateSubject().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getValueSubject() + { + if (valueSubjectEClass == null) + { + valueSubjectEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(122); + } + return valueSubjectEClass; + } + + /** + * + * + * @generated + */ + public EReference getValueSubject_Value() + { + return (EReference)getValueSubject().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getTagSubject() + { + if (tagSubjectEClass == null) + { + tagSubjectEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(123); + } + return tagSubjectEClass; + } + + /** + * + * + * @generated + */ + public EReference getTagSubject_Tag() + { + return (EReference)getTagSubject().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getEventSubject() + { + if (eventSubjectEClass == null) + { + eventSubjectEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(124); + } + return eventSubjectEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getEventSubject_Event() + { + return (EAttribute)getEventSubject().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getTupleType() + { + if (tupleTypeEClass == null) + { + tupleTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(125); + } + return tupleTypeEClass; + } + + /** + * + * + * @generated + */ + public EReference getTupleType_Types() + { + return (EReference)getTupleType().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getNaturalType() + { + if (naturalTypeEClass == null) + { + naturalTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(126); + } + return naturalTypeEClass; + } + + /** + * + * + * @generated + */ + public EClass getIntegerType() + { + if (integerTypeEClass == null) + { + integerTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(127); + } + return integerTypeEClass; + } + + /** + * + * + * @generated + */ + public EClass getBooleanType() + { + if (booleanTypeEClass == null) + { + booleanTypeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(128); + } + return booleanTypeEClass; + } + + /** + * + * + * @generated + */ + public EClass getUnlessStatement() + { + if (unlessStatementEClass == null) + { + unlessStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(129); + } + return unlessStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnlessStatement_Followers() + { + return (EReference)getUnlessStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getStatementChoice() + { + if (statementChoiceEClass == null) + { + statementChoiceEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(130); + } + return statementChoiceEClass; + } + + /** + * + * + * @generated + */ + public EReference getStatementChoice_Choices() + { + return (EReference)getStatementChoice().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getStatementSequence() + { + if (statementSequenceEClass == null) + { + statementSequenceEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(131); + } + return statementSequenceEClass; + } + + /** + * + * + * @generated + */ + public EReference getStatementSequence_Statements() + { + return (EReference)getStatementSequence().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getAssignStatement() + { + if (assignStatementEClass == null) + { + assignStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(132); + } + return assignStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getAssignStatement_Patterns() + { + return (EReference)getAssignStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAssignStatement_Values() + { + return (EReference)getAssignStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getAssignAnyStatement() + { + if (assignAnyStatementEClass == null) + { + assignAnyStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(133); + } + return assignAnyStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getAssignAnyStatement_Patterns() + { + return (EReference)getAssignAnyStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAssignAnyStatement_Exp() + { + return (EReference)getAssignAnyStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getSendStatement() + { + if (sendStatementEClass == null) + { + sendStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(134); + } + return sendStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getSendStatement_Port() + { + return (EReference)getSendStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getSendStatement_Values() + { + return (EReference)getSendStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getReceiveStatement() + { + if (receiveStatementEClass == null) + { + receiveStatementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(135); + } + return receiveStatementEClass; + } + + /** + * + * + * @generated + */ + public EReference getReceiveStatement_Port() + { + return (EReference)getReceiveStatement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getReceiveStatement_Patterns() + { + return (EReference)getReceiveStatement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getReceiveStatement_Exp() + { + return (EReference)getReceiveStatement().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getConstructorPattern() + { + if (constructorPatternEClass == null) + { + constructorPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(136); + } + return constructorPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getConstructorPattern_Parameters() + { + return (EReference)getConstructorPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getArrayAccessPattern() + { + if (arrayAccessPatternEClass == null) + { + arrayAccessPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(137); + } + return arrayAccessPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getArrayAccessPattern_Source() + { + return (EReference)getArrayAccessPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getArrayAccessPattern_Index() + { + return (EReference)getArrayAccessPattern().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getRecordAccessPattern() + { + if (recordAccessPatternEClass == null) + { + recordAccessPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(138); + } + return recordAccessPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getRecordAccessPattern_Source() + { + return (EReference)getRecordAccessPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getRecordAccessPattern_Field() + { + return (EReference)getRecordAccessPattern().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getAllExpression() + { + if (allExpressionEClass == null) + { + allExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(139); + } + return allExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getAllExpression_Index() + { + return (EReference)getAllExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAllExpression_Type() + { + return (EReference)getAllExpression().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getAllExpression_Child() + { + return (EReference)getAllExpression().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getExistsExpression() + { + if (existsExpressionEClass == null) + { + existsExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(140); + } + return existsExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getExistsExpression_Index() + { + return (EReference)getExistsExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getExistsExpression_Type() + { + return (EReference)getExistsExpression().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getExistsExpression_Child() + { + return (EReference)getExistsExpression().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getConditional() + { + if (conditionalEClass == null) + { + conditionalEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(141); + } + return conditionalEClass; + } + + /** + * + * + * @generated + */ + public EReference getConditional_Condition() + { + return (EReference)getConditional().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getConditional_Then() + { + return (EReference)getConditional().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getConditional_Else() + { + return (EReference)getConditional().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getDisjunction() + { + if (disjunctionEClass == null) + { + disjunctionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(142); + } + return disjunctionEClass; + } + + /** + * + * + * @generated + */ + public EReference getDisjunction_Left() + { + return (EReference)getDisjunction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getDisjunction_Right() + { + return (EReference)getDisjunction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getImplication() + { + if (implicationEClass == null) + { + implicationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(143); + } + return implicationEClass; + } + + /** + * + * + * @generated + */ + public EReference getImplication_Left() + { + return (EReference)getImplication().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getImplication_Right() + { + return (EReference)getImplication().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getConjunction() + { + if (conjunctionEClass == null) + { + conjunctionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(144); + } + return conjunctionEClass; + } + + /** + * + * + * @generated + */ + public EReference getConjunction_Left() + { + return (EReference)getConjunction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getConjunction_Right() + { + return (EReference)getConjunction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getComparisonEqual() + { + if (comparisonEqualEClass == null) + { + comparisonEqualEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(145); + } + return comparisonEqualEClass; + } + + /** + * + * + * @generated + */ + public EReference getComparisonEqual_Left() + { + return (EReference)getComparisonEqual().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComparisonEqual_Right() + { + return (EReference)getComparisonEqual().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getComparisonNotEqual() + { + if (comparisonNotEqualEClass == null) + { + comparisonNotEqualEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(146); + } + return comparisonNotEqualEClass; + } + + /** + * + * + * @generated + */ + public EReference getComparisonNotEqual_Left() + { + return (EReference)getComparisonNotEqual().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComparisonNotEqual_Right() + { + return (EReference)getComparisonNotEqual().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getComparisonLesser() + { + if (comparisonLesserEClass == null) + { + comparisonLesserEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(147); + } + return comparisonLesserEClass; + } + + /** + * + * + * @generated + */ + public EReference getComparisonLesser_Left() + { + return (EReference)getComparisonLesser().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComparisonLesser_Right() + { + return (EReference)getComparisonLesser().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getComparisonLesserEqual() + { + if (comparisonLesserEqualEClass == null) + { + comparisonLesserEqualEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(148); + } + return comparisonLesserEqualEClass; + } + + /** + * + * + * @generated + */ + public EReference getComparisonLesserEqual_Left() + { + return (EReference)getComparisonLesserEqual().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComparisonLesserEqual_Right() + { + return (EReference)getComparisonLesserEqual().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getComparisonGreater() + { + if (comparisonGreaterEClass == null) + { + comparisonGreaterEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(149); + } + return comparisonGreaterEClass; + } + + /** + * + * + * @generated + */ + public EReference getComparisonGreater_Left() + { + return (EReference)getComparisonGreater().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComparisonGreater_Right() + { + return (EReference)getComparisonGreater().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getComparisonGreaterEqual() + { + if (comparisonGreaterEqualEClass == null) + { + comparisonGreaterEqualEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(150); + } + return comparisonGreaterEqualEClass; + } + + /** + * + * + * @generated + */ + public EReference getComparisonGreaterEqual_Left() + { + return (EReference)getComparisonGreaterEqual().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComparisonGreaterEqual_Right() + { + return (EReference)getComparisonGreaterEqual().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getAddition() + { + if (additionEClass == null) + { + additionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(151); + } + return additionEClass; + } + + /** + * + * + * @generated + */ + public EReference getAddition_Left() + { + return (EReference)getAddition().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAddition_Right() + { + return (EReference)getAddition().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getSubstraction() + { + if (substractionEClass == null) + { + substractionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(152); + } + return substractionEClass; + } + + /** + * + * + * @generated + */ + public EReference getSubstraction_Left() + { + return (EReference)getSubstraction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getSubstraction_Right() + { + return (EReference)getSubstraction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getMultiplication() + { + if (multiplicationEClass == null) + { + multiplicationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(153); + } + return multiplicationEClass; + } + + /** + * + * + * @generated + */ + public EReference getMultiplication_Left() + { + return (EReference)getMultiplication().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getMultiplication_Right() + { + return (EReference)getMultiplication().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getDivision() + { + if (divisionEClass == null) + { + divisionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(154); + } + return divisionEClass; + } + + /** + * + * + * @generated + */ + public EReference getDivision_Left() + { + return (EReference)getDivision().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getDivision_Right() + { + return (EReference)getDivision().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getModulo() + { + if (moduloEClass == null) + { + moduloEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(155); + } + return moduloEClass; + } + + /** + * + * + * @generated + */ + public EReference getModulo_Left() + { + return (EReference)getModulo().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getModulo_Right() + { + return (EReference)getModulo().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getUnaryPlusExpression() + { + if (unaryPlusExpressionEClass == null) + { + unaryPlusExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(156); + } + return unaryPlusExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnaryPlusExpression_Child() + { + return (EReference)getUnaryPlusExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getUnaryMinusExpression() + { + if (unaryMinusExpressionEClass == null) + { + unaryMinusExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(157); + } + return unaryMinusExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnaryMinusExpression_Child() + { + return (EReference)getUnaryMinusExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getUnaryNegationExpression() + { + if (unaryNegationExpressionEClass == null) + { + unaryNegationExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(158); + } + return unaryNegationExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnaryNegationExpression_Child() + { + return (EReference)getUnaryNegationExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getUnaryFirstExpression() + { + if (unaryFirstExpressionEClass == null) + { + unaryFirstExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(159); + } + return unaryFirstExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnaryFirstExpression_Child() + { + return (EReference)getUnaryFirstExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getUnaryLengthExpression() + { + if (unaryLengthExpressionEClass == null) + { + unaryLengthExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(160); + } + return unaryLengthExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnaryLengthExpression_Child() + { + return (EReference)getUnaryLengthExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getUnaryCoerceExpression() + { + if (unaryCoerceExpressionEClass == null) + { + unaryCoerceExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(161); + } + return unaryCoerceExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnaryCoerceExpression_Child() + { + return (EReference)getUnaryCoerceExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getUnaryFullExpression() + { + if (unaryFullExpressionEClass == null) + { + unaryFullExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(162); + } + return unaryFullExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnaryFullExpression_Child() + { + return (EReference)getUnaryFullExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getUnaryDeQueueExpression() + { + if (unaryDeQueueExpressionEClass == null) + { + unaryDeQueueExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(163); + } + return unaryDeQueueExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnaryDeQueueExpression_Child() + { + return (EReference)getUnaryDeQueueExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getUnaryEmptyExpression() + { + if (unaryEmptyExpressionEClass == null) + { + unaryEmptyExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(164); + } + return unaryEmptyExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnaryEmptyExpression_Child() + { + return (EReference)getUnaryEmptyExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getProjection() + { + if (projectionEClass == null) + { + projectionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(165); + } + return projectionEClass; + } + + /** + * + * + * @generated + */ + public EReference getProjection_Channel() + { + return (EReference)getProjection().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getProjection_Field() + { + return (EReference)getProjection().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getConstructionExpression() + { + if (constructionExpressionEClass == null) + { + constructionExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(166); + } + return constructionExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getConstructionExpression_Parameters() + { + return (EReference)getConstructionExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getArrayAccessExpression() + { + if (arrayAccessExpressionEClass == null) + { + arrayAccessExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(167); + } + return arrayAccessExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getArrayAccessExpression_Child() + { + return (EReference)getArrayAccessExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getArrayAccessExpression_Indexes() + { + return (EReference)getArrayAccessExpression().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getRecordAccessExpression() + { + if (recordAccessExpressionEClass == null) + { + recordAccessExpressionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(168); + } + return recordAccessExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getRecordAccessExpression_Child() + { + return (EReference)getRecordAccessExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getRecordAccessExpression_Field() + { + return (EReference)getRecordAccessExpression().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getTrueLiteral() + { + if (trueLiteralEClass == null) + { + trueLiteralEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(169); + } + return trueLiteralEClass; + } + + /** + * + * + * @generated + */ + public EClass getFalseLiteral() + { + if (falseLiteralEClass == null) + { + falseLiteralEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(170); + } + return falseLiteralEClass; + } + + /** + * + * + * @generated + */ + public EClass getAllProperty() + { + if (allPropertyEClass == null) + { + allPropertyEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(171); + } + return allPropertyEClass; + } + + /** + * + * + * @generated + */ + public EReference getAllProperty_Variable() + { + return (EReference)getAllProperty().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAllProperty_Type() + { + return (EReference)getAllProperty().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getAllProperty_Child() + { + return (EReference)getAllProperty().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getExistsProperty() + { + if (existsPropertyEClass == null) + { + existsPropertyEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(172); + } + return existsPropertyEClass; + } + + /** + * + * + * @generated + */ + public EReference getExistsProperty_Variable() + { + return (EReference)getExistsProperty().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getExistsProperty_Type() + { + return (EReference)getExistsProperty().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getExistsProperty_Child() + { + return (EReference)getExistsProperty().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getPropertyDisjunction() + { + if (propertyDisjunctionEClass == null) + { + propertyDisjunctionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(173); + } + return propertyDisjunctionEClass; + } + + /** + * + * + * @generated + */ + public EReference getPropertyDisjunction_Left() + { + return (EReference)getPropertyDisjunction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPropertyDisjunction_Right() + { + return (EReference)getPropertyDisjunction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getPropertyImplication() + { + if (propertyImplicationEClass == null) + { + propertyImplicationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(174); + } + return propertyImplicationEClass; + } + + /** + * + * + * @generated + */ + public EReference getPropertyImplication_Left() + { + return (EReference)getPropertyImplication().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPropertyImplication_Right() + { + return (EReference)getPropertyImplication().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getPropertyConjunction() + { + if (propertyConjunctionEClass == null) + { + propertyConjunctionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(175); + } + return propertyConjunctionEClass; + } + + /** + * + * + * @generated + */ + public EReference getPropertyConjunction_Left() + { + return (EReference)getPropertyConjunction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPropertyConjunction_Right() + { + return (EReference)getPropertyConjunction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getPropertyNegation() + { + if (propertyNegationEClass == null) + { + propertyNegationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(176); + } + return propertyNegationEClass; + } + + /** + * + * + * @generated + */ + public EReference getPropertyNegation_Child() + { + return (EReference)getPropertyNegation().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLeadsToPattern() + { + if (leadsToPatternEClass == null) + { + leadsToPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(177); + } + return leadsToPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getLeadsToPattern_Subject() + { + return (EReference)getLeadsToPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLeadsToPattern_Follower() + { + return (EReference)getLeadsToPattern().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getLeadsToPattern_Before() + { + return (EReference)getLeadsToPattern().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getLeadsToPattern_Lower() + { + return (EReference)getLeadsToPattern().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getLeadsToPattern_Upper() + { + return (EReference)getLeadsToPattern().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getLeadsToPattern_After() + { + return (EReference)getLeadsToPattern().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getLeadsToPattern_Until() + { + return (EReference)getLeadsToPattern().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getLeadsToPattern_Min() + { + return (EReference)getLeadsToPattern().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EReference getLeadsToPattern_Max() + { + return (EReference)getLeadsToPattern().getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + public EClass getPrecedesPattern() + { + if (precedesPatternEClass == null) + { + precedesPatternEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(178); + } + return precedesPatternEClass; + } + + /** + * + * + * @generated + */ + public EReference getPrecedesPattern_Subject() + { + return (EReference)getPrecedesPattern().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPrecedesPattern_Follower() + { + return (EReference)getPrecedesPattern().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getPrecedesPattern_Before() + { + return (EReference)getPrecedesPattern().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getPrecedesPattern_After() + { + return (EReference)getPrecedesPattern().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getPrecedesPattern_Until() + { + return (EReference)getPrecedesPattern().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getPrecedesPattern_Min() + { + return (EReference)getPrecedesPattern().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getPrecedesPattern_Max() + { + return (EReference)getPrecedesPattern().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EClass getLTLAll() + { + if (ltlAllEClass == null) + { + ltlAllEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(179); + } + return ltlAllEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLAll_Index() + { + return (EReference)getLTLAll().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLTLAll_Type() + { + return (EReference)getLTLAll().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getLTLAll_Child() + { + return (EReference)getLTLAll().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getLTLExists() + { + if (ltlExistsEClass == null) + { + ltlExistsEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(180); + } + return ltlExistsEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLExists_Index() + { + return (EReference)getLTLExists().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLTLExists_Type() + { + return (EReference)getLTLExists().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getLTLExists_Child() + { + return (EReference)getLTLExists().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getLTLDisjunction() + { + if (ltlDisjunctionEClass == null) + { + ltlDisjunctionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(181); + } + return ltlDisjunctionEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLDisjunction_Left() + { + return (EReference)getLTLDisjunction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLTLDisjunction_Right() + { + return (EReference)getLTLDisjunction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getLTLImplication() + { + if (ltlImplicationEClass == null) + { + ltlImplicationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(182); + } + return ltlImplicationEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLImplication_Left() + { + return (EReference)getLTLImplication().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLTLImplication_Right() + { + return (EReference)getLTLImplication().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getLTLConjunction() + { + if (ltlConjunctionEClass == null) + { + ltlConjunctionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(183); + } + return ltlConjunctionEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLConjunction_Left() + { + return (EReference)getLTLConjunction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLTLConjunction_Right() + { + return (EReference)getLTLConjunction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getLTLUntil() + { + if (ltlUntilEClass == null) + { + ltlUntilEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(184); + } + return ltlUntilEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLUntil_Left() + { + return (EReference)getLTLUntil().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLTLUntil_Right() + { + return (EReference)getLTLUntil().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getLTLRelease() + { + if (ltlReleaseEClass == null) + { + ltlReleaseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(185); + } + return ltlReleaseEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLRelease_Left() + { + return (EReference)getLTLRelease().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLTLRelease_Right() + { + return (EReference)getLTLRelease().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getLTLUnaryNegation() + { + if (ltlUnaryNegationEClass == null) + { + ltlUnaryNegationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(186); + } + return ltlUnaryNegationEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLUnaryNegation_Operand() + { + return (EReference)getLTLUnaryNegation().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLTLUnaryNext() + { + if (ltlUnaryNextEClass == null) + { + ltlUnaryNextEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(187); + } + return ltlUnaryNextEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLUnaryNext_Operand() + { + return (EReference)getLTLUnaryNext().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLTLUnaryAlways() + { + if (ltlUnaryAlwaysEClass == null) + { + ltlUnaryAlwaysEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(188); + } + return ltlUnaryAlwaysEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLUnaryAlways_Operand() + { + return (EReference)getLTLUnaryAlways().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLTLUnaryEventually() + { + if (ltlUnaryEventuallyEClass == null) + { + ltlUnaryEventuallyEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(189); + } + return ltlUnaryEventuallyEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLUnaryEventually_Operand() + { + return (EReference)getLTLUnaryEventually().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLTLVariable() + { + if (ltlVariableEClass == null) + { + ltlVariableEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(190); + } + return ltlVariableEClass; + } + + /** + * + * + * @generated + */ + public EReference getLTLVariable_Declaration() + { + return (EReference)getLTLVariable().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getObservableDisjunction() + { + if (observableDisjunctionEClass == null) + { + observableDisjunctionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(191); + } + return observableDisjunctionEClass; + } + + /** + * + * + * @generated + */ + public EReference getObservableDisjunction_Left() + { + return (EReference)getObservableDisjunction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getObservableDisjunction_Right() + { + return (EReference)getObservableDisjunction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getObservableImplication() + { + if (observableImplicationEClass == null) + { + observableImplicationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(192); + } + return observableImplicationEClass; + } + + /** + * + * + * @generated + */ + public EReference getObservableImplication_Left() + { + return (EReference)getObservableImplication().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getObservableImplication_Right() + { + return (EReference)getObservableImplication().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getObservableConjunction() + { + if (observableConjunctionEClass == null) + { + observableConjunctionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(193); + } + return observableConjunctionEClass; + } + + /** + * + * + * @generated + */ + public EReference getObservableConjunction_Left() + { + return (EReference)getObservableConjunction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getObservableConjunction_Right() + { + return (EReference)getObservableConjunction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getObservableNegation() + { + if (observableNegationEClass == null) + { + observableNegationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(FiacrePackage.eNS_URI).getEClassifiers().get(194); + } + return observableNegationEClass; + } + + /** + * + * + * @generated + */ + public EReference getObservableNegation_Child() + { + return (EReference)getObservableNegation().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public FiacreFactory getFiacreFactory() + { + return (FiacreFactory)getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isLoaded = false; + + /** + * Laods the package and any sub-packages from their serialized form. + * + * + * @generated + */ + public void loadPackage() + { + if (isLoaded) return; + isLoaded = true; + + URL url = getClass().getResource(packageFilename); + if (url == null) + { + throw new RuntimeException("Missing serialized package: " + packageFilename); + } + URI uri = URI.createURI(url.toString()); + Resource resource = new EcoreResourceFactoryImpl().createResource(uri); + try + { + resource.load(null); + } + catch (IOException exception) + { + throw new WrappedException(exception); + } + initializeFromLoadedEPackage(this, (EPackage)resource.getContents().get(0)); + createResource(eNS_URI); + } + + + /** + * + * + * @generated + */ + private boolean isFixed = false; + + /** + * Fixes up the loaded package, to make it appear as if it had been programmatically built. + * + * + * @generated + */ + public void fixPackageContents() + { + if (isFixed) return; + isFixed = true; + fixEClassifiers(); + } + + /** + * Sets the instance class on the given classifier. + * + * + * @generated + */ + @Override + protected void fixInstanceClass(EClassifier eClassifier) + { + if (eClassifier.getInstanceClassName() == null) + { + eClassifier.setInstanceClassName("fr.irit.fiacre.xtext.fiacre." + eClassifier.getName()); + setGeneratedClassName(eClassifier); + } + } + +} //FiacrePackageImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FieldExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FieldExpressionImpl.java new file mode 100644 index 0000000..ec8c819 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FieldExpressionImpl.java @@ -0,0 +1,271 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.FieldExpression; +import fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Field Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.FieldExpressionImpl#getField Field}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.FieldExpressionImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class FieldExpressionImpl extends MinimalEObjectImpl.Container implements FieldExpression +{ + /** + * The cached value of the '{@link #getField() Field}' reference. + * + * + * @see #getField() + * @generated + * @ordered + */ + protected RecordFieldDeclarationUse field; + + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected Expression value; + + /** + * + * + * @generated + */ + protected FieldExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getFieldExpression(); + } + + /** + * + * + * @generated + */ + public RecordFieldDeclarationUse getField() + { + if (field != null && field.eIsProxy()) + { + InternalEObject oldField = (InternalEObject)field; + field = (RecordFieldDeclarationUse)eResolveProxy(oldField); + if (field != oldField) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.FIELD_EXPRESSION__FIELD, oldField, field)); + } + } + return field; + } + + /** + * + * + * @generated + */ + public RecordFieldDeclarationUse basicGetField() + { + return field; + } + + /** + * + * + * @generated + */ + public void setField(RecordFieldDeclarationUse newField) + { + RecordFieldDeclarationUse oldField = field; + field = newField; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.FIELD_EXPRESSION__FIELD, oldField, field)); + } + + /** + * + * + * @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, FiacrePackage.FIELD_EXPRESSION__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 - FiacrePackage.FIELD_EXPRESSION__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.FIELD_EXPRESSION__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.FIELD_EXPRESSION__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.FIELD_EXPRESSION__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 FiacrePackage.FIELD_EXPRESSION__FIELD: + if (resolve) return getField(); + return basicGetField(); + case FiacrePackage.FIELD_EXPRESSION__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.FIELD_EXPRESSION__FIELD: + setField((RecordFieldDeclarationUse)newValue); + return; + case FiacrePackage.FIELD_EXPRESSION__VALUE: + setValue((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.FIELD_EXPRESSION__FIELD: + setField((RecordFieldDeclarationUse)null); + return; + case FiacrePackage.FIELD_EXPRESSION__VALUE: + setValue((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.FIELD_EXPRESSION__FIELD: + return field != null; + case FiacrePackage.FIELD_EXPRESSION__VALUE: + return value != null; + } + return super.eIsSet(featureID); + } + +} //FieldExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ForeachStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ForeachStatementImpl.java new file mode 100644 index 0000000..6b5b8d3 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ForeachStatementImpl.java @@ -0,0 +1,276 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ForeachStatement; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +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; + +/** + * + * An implementation of the model object 'Foreach Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ForeachStatementImpl#getVariable Variable}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ForeachStatementImpl#getBody Body}
    • + *
    + * + * @generated + */ +public class ForeachStatementImpl extends StatementImpl implements ForeachStatement +{ + /** + * The cached value of the '{@link #getVariable() Variable}' containment reference. + * + * + * @see #getVariable() + * @generated + * @ordered + */ + protected VariableDeclaration variable; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Statement body; + + /** + * + * + * @generated + */ + protected ForeachStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getForeachStatement(); + } + + /** + * + * + * @generated + */ + public VariableDeclaration getVariable() + { + return variable; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetVariable(VariableDeclaration newVariable, NotificationChain msgs) + { + VariableDeclaration oldVariable = variable; + variable = newVariable; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.FOREACH_STATEMENT__VARIABLE, oldVariable, newVariable); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setVariable(VariableDeclaration newVariable) + { + if (newVariable != variable) + { + NotificationChain msgs = null; + if (variable != null) + msgs = ((InternalEObject)variable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.FOREACH_STATEMENT__VARIABLE, null, msgs); + if (newVariable != null) + msgs = ((InternalEObject)newVariable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.FOREACH_STATEMENT__VARIABLE, null, msgs); + msgs = basicSetVariable(newVariable, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.FOREACH_STATEMENT__VARIABLE, newVariable, newVariable)); + } + + /** + * + * + * @generated + */ + public Statement getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Statement newBody, NotificationChain msgs) + { + Statement oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.FOREACH_STATEMENT__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setBody(Statement newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.FOREACH_STATEMENT__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.FOREACH_STATEMENT__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.FOREACH_STATEMENT__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.FOREACH_STATEMENT__VARIABLE: + return basicSetVariable(null, msgs); + case FiacrePackage.FOREACH_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 FiacrePackage.FOREACH_STATEMENT__VARIABLE: + return getVariable(); + case FiacrePackage.FOREACH_STATEMENT__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.FOREACH_STATEMENT__VARIABLE: + setVariable((VariableDeclaration)newValue); + return; + case FiacrePackage.FOREACH_STATEMENT__BODY: + setBody((Statement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.FOREACH_STATEMENT__VARIABLE: + setVariable((VariableDeclaration)null); + return; + case FiacrePackage.FOREACH_STATEMENT__BODY: + setBody((Statement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.FOREACH_STATEMENT__VARIABLE: + return variable != null; + case FiacrePackage.FOREACH_STATEMENT__BODY: + return body != null; + } + return super.eIsSet(featureID); + } + +} //ForeachStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FunctionDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FunctionDeclarationImpl.java new file mode 100644 index 0000000..e552cfd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/FunctionDeclarationImpl.java @@ -0,0 +1,506 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Declaration; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.FunctionDeclaration; +import fr.irit.fiacre.xtext.fiacre.NamedElement; +import fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration; +import fr.irit.fiacre.xtext.fiacre.ParametersDeclaration; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.Type; +import fr.irit.fiacre.xtext.fiacre.VariablesDeclaration; + +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; + +/** + * + * An implementation of the model object 'Function Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.FunctionDeclarationImpl#getName Name}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.FunctionDeclarationImpl#getParameters Parameters}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.FunctionDeclarationImpl#getVariables Variables}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.FunctionDeclarationImpl#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.FunctionDeclarationImpl#getStatement Statement}
    • + *
    + * + * @generated + */ +public class FunctionDeclarationImpl extends ExpressionDeclarationUseImpl implements FunctionDeclaration +{ + /** + * 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; + + /** + * The cached value of the '{@link #getParameters() Parameters}' containment reference list. + * + * + * @see #getParameters() + * @generated + * @ordered + */ + protected EList parameters; + + /** + * The cached value of the '{@link #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected Type type; + + /** + * The cached value of the '{@link #getStatement() Statement}' containment reference. + * + * + * @see #getStatement() + * @generated + * @ordered + */ + protected Statement statement; + + /** + * + * + * @generated + */ + protected FunctionDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getFunctionDeclaration(); + } + + /** + * + * + * @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, FiacrePackage.FUNCTION_DECLARATION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public EList getParameters() + { + if (parameters == null) + { + parameters = new EObjectContainmentEList(ParametersDeclaration.class, this, FiacrePackage.FUNCTION_DECLARATION__PARAMETERS); + } + return parameters; + } + + /** + * + * + * @generated + */ + public EList getVariables() + { + if (variables == null) + { + variables = new EObjectContainmentEList(VariablesDeclaration.class, this, FiacrePackage.FUNCTION_DECLARATION__VARIABLES); + } + return variables; + } + + /** + * + * + * @generated + */ + public Type getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(Type newType, NotificationChain msgs) + { + Type oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.FUNCTION_DECLARATION__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(Type newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.FUNCTION_DECLARATION__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.FUNCTION_DECLARATION__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.FUNCTION_DECLARATION__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + public Statement getStatement() + { + return statement; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetStatement(Statement newStatement, NotificationChain msgs) + { + Statement oldStatement = statement; + statement = newStatement; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.FUNCTION_DECLARATION__STATEMENT, oldStatement, newStatement); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setStatement(Statement newStatement) + { + if (newStatement != statement) + { + NotificationChain msgs = null; + if (statement != null) + msgs = ((InternalEObject)statement).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.FUNCTION_DECLARATION__STATEMENT, null, msgs); + if (newStatement != null) + msgs = ((InternalEObject)newStatement).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.FUNCTION_DECLARATION__STATEMENT, null, msgs); + msgs = basicSetStatement(newStatement, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.FUNCTION_DECLARATION__STATEMENT, newStatement, newStatement)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.FUNCTION_DECLARATION__PARAMETERS: + return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); + case FiacrePackage.FUNCTION_DECLARATION__VARIABLES: + return ((InternalEList)getVariables()).basicRemove(otherEnd, msgs); + case FiacrePackage.FUNCTION_DECLARATION__TYPE: + return basicSetType(null, msgs); + case FiacrePackage.FUNCTION_DECLARATION__STATEMENT: + return basicSetStatement(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.FUNCTION_DECLARATION__NAME: + return getName(); + case FiacrePackage.FUNCTION_DECLARATION__PARAMETERS: + return getParameters(); + case FiacrePackage.FUNCTION_DECLARATION__VARIABLES: + return getVariables(); + case FiacrePackage.FUNCTION_DECLARATION__TYPE: + return getType(); + case FiacrePackage.FUNCTION_DECLARATION__STATEMENT: + return getStatement(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.FUNCTION_DECLARATION__NAME: + setName((String)newValue); + return; + case FiacrePackage.FUNCTION_DECLARATION__PARAMETERS: + getParameters().clear(); + getParameters().addAll((Collection)newValue); + return; + case FiacrePackage.FUNCTION_DECLARATION__VARIABLES: + getVariables().clear(); + getVariables().addAll((Collection)newValue); + return; + case FiacrePackage.FUNCTION_DECLARATION__TYPE: + setType((Type)newValue); + return; + case FiacrePackage.FUNCTION_DECLARATION__STATEMENT: + setStatement((Statement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.FUNCTION_DECLARATION__NAME: + setName(NAME_EDEFAULT); + return; + case FiacrePackage.FUNCTION_DECLARATION__PARAMETERS: + getParameters().clear(); + return; + case FiacrePackage.FUNCTION_DECLARATION__VARIABLES: + getVariables().clear(); + return; + case FiacrePackage.FUNCTION_DECLARATION__TYPE: + setType((Type)null); + return; + case FiacrePackage.FUNCTION_DECLARATION__STATEMENT: + setStatement((Statement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.FUNCTION_DECLARATION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case FiacrePackage.FUNCTION_DECLARATION__PARAMETERS: + return parameters != null && !parameters.isEmpty(); + case FiacrePackage.FUNCTION_DECLARATION__VARIABLES: + return variables != null && !variables.isEmpty(); + case FiacrePackage.FUNCTION_DECLARATION__TYPE: + return type != null; + case FiacrePackage.FUNCTION_DECLARATION__STATEMENT: + return statement != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) + { + if (baseClass == NamedElement.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.FUNCTION_DECLARATION__NAME: return FiacrePackage.NAMED_ELEMENT__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + if (baseClass == ParameterizedDeclaration.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.FUNCTION_DECLARATION__PARAMETERS: return FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS; + case FiacrePackage.FUNCTION_DECLARATION__VARIABLES: return FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) + { + if (baseClass == NamedElement.class) + { + switch (baseFeatureID) + { + case FiacrePackage.NAMED_ELEMENT__NAME: return FiacrePackage.FUNCTION_DECLARATION__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + if (baseClass == ParameterizedDeclaration.class) + { + switch (baseFeatureID) + { + case FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS: return FiacrePackage.FUNCTION_DECLARATION__PARAMETERS; + case FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES: return FiacrePackage.FUNCTION_DECLARATION__VARIABLES; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @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(); + } + +} //FunctionDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IdentifierExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IdentifierExpressionImpl.java new file mode 100644 index 0000000..2a39f10 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IdentifierExpressionImpl.java @@ -0,0 +1,183 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.IdentifierExpression; + +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; + +/** + * + * An implementation of the model object 'Identifier Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.IdentifierExpressionImpl#getDeclaration Declaration}
    • + *
    + * + * @generated + */ +public class IdentifierExpressionImpl extends ValueExpressionImpl implements IdentifierExpression +{ + /** + * The cached value of the '{@link #getDeclaration() Declaration}' reference. + * + * + * @see #getDeclaration() + * @generated + * @ordered + */ + protected ExpressionDeclarationUse declaration; + + /** + * + * + * @generated + */ + protected IdentifierExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getIdentifierExpression(); + } + + /** + * + * + * @generated + */ + public ExpressionDeclarationUse getDeclaration() + { + if (declaration != null && declaration.eIsProxy()) + { + InternalEObject oldDeclaration = (InternalEObject)declaration; + declaration = (ExpressionDeclarationUse)eResolveProxy(oldDeclaration); + if (declaration != oldDeclaration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.IDENTIFIER_EXPRESSION__DECLARATION, oldDeclaration, declaration)); + } + } + return declaration; + } + + /** + * + * + * @generated + */ + public ExpressionDeclarationUse basicGetDeclaration() + { + return declaration; + } + + /** + * + * + * @generated + */ + public void setDeclaration(ExpressionDeclarationUse newDeclaration) + { + ExpressionDeclarationUse oldDeclaration = declaration; + declaration = newDeclaration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.IDENTIFIER_EXPRESSION__DECLARATION, oldDeclaration, declaration)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.IDENTIFIER_EXPRESSION__DECLARATION: + if (resolve) return getDeclaration(); + return basicGetDeclaration(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.IDENTIFIER_EXPRESSION__DECLARATION: + setDeclaration((ExpressionDeclarationUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.IDENTIFIER_EXPRESSION__DECLARATION: + setDeclaration((ExpressionDeclarationUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.IDENTIFIER_EXPRESSION__DECLARATION: + return declaration != null; + } + return super.eIsSet(featureID); + } + +} //IdentifierExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IdentifierPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IdentifierPatternImpl.java new file mode 100644 index 0000000..ec14e49 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IdentifierPatternImpl.java @@ -0,0 +1,183 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.IdentifierPattern; +import fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse; + +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; + +/** + * + * An implementation of the model object 'Identifier Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.IdentifierPatternImpl#getDeclaration Declaration}
    • + *
    + * + * @generated + */ +public class IdentifierPatternImpl extends PatternImpl implements IdentifierPattern +{ + /** + * The cached value of the '{@link #getDeclaration() Declaration}' reference. + * + * + * @see #getDeclaration() + * @generated + * @ordered + */ + protected PatternDeclarationUse declaration; + + /** + * + * + * @generated + */ + protected IdentifierPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getIdentifierPattern(); + } + + /** + * + * + * @generated + */ + public PatternDeclarationUse getDeclaration() + { + if (declaration != null && declaration.eIsProxy()) + { + InternalEObject oldDeclaration = (InternalEObject)declaration; + declaration = (PatternDeclarationUse)eResolveProxy(oldDeclaration); + if (declaration != oldDeclaration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.IDENTIFIER_PATTERN__DECLARATION, oldDeclaration, declaration)); + } + } + return declaration; + } + + /** + * + * + * @generated + */ + public PatternDeclarationUse basicGetDeclaration() + { + return declaration; + } + + /** + * + * + * @generated + */ + public void setDeclaration(PatternDeclarationUse newDeclaration) + { + PatternDeclarationUse oldDeclaration = declaration; + declaration = newDeclaration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.IDENTIFIER_PATTERN__DECLARATION, oldDeclaration, declaration)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.IDENTIFIER_PATTERN__DECLARATION: + if (resolve) return getDeclaration(); + return basicGetDeclaration(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.IDENTIFIER_PATTERN__DECLARATION: + setDeclaration((PatternDeclarationUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.IDENTIFIER_PATTERN__DECLARATION: + setDeclaration((PatternDeclarationUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.IDENTIFIER_PATTERN__DECLARATION: + return declaration != null; + } + return super.eIsSet(featureID); + } + +} //IdentifierPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ImplicationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ImplicationImpl.java new file mode 100644 index 0000000..1994b84 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ImplicationImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Implication; + +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; + +/** + * + * An implementation of the model object 'Implication'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ImplicationImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ImplicationImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ImplicationImpl extends ExpressionImpl implements Implication +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected ImplicationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getImplication(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.IMPLICATION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.IMPLICATION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.IMPLICATION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.IMPLICATION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.IMPLICATION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.IMPLICATION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.IMPLICATION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.IMPLICATION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.IMPLICATION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.IMPLICATION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.IMPLICATION__LEFT: + return getLeft(); + case FiacrePackage.IMPLICATION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.IMPLICATION__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.IMPLICATION__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.IMPLICATION__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.IMPLICATION__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.IMPLICATION__LEFT: + return left != null; + case FiacrePackage.IMPLICATION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ImplicationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ImportDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ImportDeclarationImpl.java new file mode 100644 index 0000000..145829a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ImportDeclarationImpl.java @@ -0,0 +1,188 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ImportDeclaration; + +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; + +/** + * + * An implementation of the model object 'Import Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ImportDeclarationImpl#getImportURI Import URI}
    • + *
    + * + * @generated + */ +public class ImportDeclarationImpl extends MinimalEObjectImpl.Container implements ImportDeclaration +{ + /** + * The default value of the '{@link #getImportURI() Import URI}' attribute. + * + * + * @see #getImportURI() + * @generated + * @ordered + */ + protected static final String IMPORT_URI_EDEFAULT = null; + + /** + * The cached value of the '{@link #getImportURI() Import URI}' attribute. + * + * + * @see #getImportURI() + * @generated + * @ordered + */ + protected String importURI = IMPORT_URI_EDEFAULT; + + /** + * + * + * @generated + */ + protected ImportDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getImportDeclaration(); + } + + /** + * + * + * @generated + */ + public String getImportURI() + { + return importURI; + } + + /** + * + * + * @generated + */ + public void setImportURI(String newImportURI) + { + String oldImportURI = importURI; + importURI = newImportURI; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.IMPORT_DECLARATION__IMPORT_URI, oldImportURI, importURI)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.IMPORT_DECLARATION__IMPORT_URI: + return getImportURI(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.IMPORT_DECLARATION__IMPORT_URI: + setImportURI((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.IMPORT_DECLARATION__IMPORT_URI: + setImportURI(IMPORT_URI_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.IMPORT_DECLARATION__IMPORT_URI: + return IMPORT_URI_EDEFAULT == null ? importURI != null : !IMPORT_URI_EDEFAULT.equals(importURI); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (importURI: "); + result.append(importURI); + result.append(')'); + return result.toString(); + } + +} //ImportDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InfiniteUpperBoundImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InfiniteUpperBoundImpl.java new file mode 100644 index 0000000..1958ff2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InfiniteUpperBoundImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Infinite Upper Bound'. + * + * + * @generated + */ +public class InfiniteUpperBoundImpl extends UpperBoundImpl implements InfiniteUpperBound +{ + /** + * + * + * @generated + */ + protected InfiniteUpperBoundImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getInfiniteUpperBound(); + } + +} //InfiniteUpperBoundImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InfinitelyOftenPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InfinitelyOftenPatternImpl.java new file mode 100644 index 0000000..8e6a35e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InfinitelyOftenPatternImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern; +import fr.irit.fiacre.xtext.fiacre.Observable; + +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; + +/** + * + * An implementation of the model object 'Infinitely Often Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.InfinitelyOftenPatternImpl#getSubject Subject}
    • + *
    + * + * @generated + */ +public class InfinitelyOftenPatternImpl extends PatternPropertyImpl implements InfinitelyOftenPattern +{ + /** + * The cached value of the '{@link #getSubject() Subject}' containment reference. + * + * + * @see #getSubject() + * @generated + * @ordered + */ + protected Observable subject; + + /** + * + * + * @generated + */ + protected InfinitelyOftenPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getInfinitelyOftenPattern(); + } + + /** + * + * + * @generated + */ + public Observable getSubject() + { + return subject; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSubject(Observable newSubject, NotificationChain msgs) + { + Observable oldSubject = subject; + subject = newSubject; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.INFINITELY_OFTEN_PATTERN__SUBJECT, oldSubject, newSubject); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSubject(Observable newSubject) + { + if (newSubject != subject) + { + NotificationChain msgs = null; + if (subject != null) + msgs = ((InternalEObject)subject).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.INFINITELY_OFTEN_PATTERN__SUBJECT, null, msgs); + if (newSubject != null) + msgs = ((InternalEObject)newSubject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.INFINITELY_OFTEN_PATTERN__SUBJECT, null, msgs); + msgs = basicSetSubject(newSubject, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.INFINITELY_OFTEN_PATTERN__SUBJECT, newSubject, newSubject)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.INFINITELY_OFTEN_PATTERN__SUBJECT: + return basicSetSubject(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.INFINITELY_OFTEN_PATTERN__SUBJECT: + return getSubject(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.INFINITELY_OFTEN_PATTERN__SUBJECT: + setSubject((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.INFINITELY_OFTEN_PATTERN__SUBJECT: + setSubject((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.INFINITELY_OFTEN_PATTERN__SUBJECT: + return subject != null; + } + return super.eIsSet(featureID); + } + +} //InfinitelyOftenPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InstanceDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InstanceDeclarationImpl.java new file mode 100644 index 0000000..3467c0a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/InstanceDeclarationImpl.java @@ -0,0 +1,315 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Block; +import fr.irit.fiacre.xtext.fiacre.ComponentInstance; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.InstanceDeclaration; +import fr.irit.fiacre.xtext.fiacre.PortSet; + +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; + +/** + * + * An implementation of the model object 'Instance Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.InstanceDeclarationImpl#getLocal Local}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.InstanceDeclarationImpl#getInstance Instance}
    • + *
    + * + * @generated + */ +public class InstanceDeclarationImpl extends PathDeclarationUseImpl implements InstanceDeclaration +{ + /** + * The cached value of the '{@link #getLocal() Local}' containment reference. + * + * + * @see #getLocal() + * @generated + * @ordered + */ + protected PortSet local; + + /** + * The cached value of the '{@link #getInstance() Instance}' containment reference. + * + * + * @see #getInstance() + * @generated + * @ordered + */ + protected ComponentInstance instance; + + /** + * + * + * @generated + */ + protected InstanceDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getInstanceDeclaration(); + } + + /** + * + * + * @generated + */ + public PortSet getLocal() + { + return local; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLocal(PortSet newLocal, NotificationChain msgs) + { + PortSet oldLocal = local; + local = newLocal; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.INSTANCE_DECLARATION__LOCAL, oldLocal, newLocal); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLocal(PortSet newLocal) + { + if (newLocal != local) + { + NotificationChain msgs = null; + if (local != null) + msgs = ((InternalEObject)local).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.INSTANCE_DECLARATION__LOCAL, null, msgs); + if (newLocal != null) + msgs = ((InternalEObject)newLocal).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.INSTANCE_DECLARATION__LOCAL, null, msgs); + msgs = basicSetLocal(newLocal, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.INSTANCE_DECLARATION__LOCAL, newLocal, newLocal)); + } + + /** + * + * + * @generated + */ + public ComponentInstance getInstance() + { + return instance; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetInstance(ComponentInstance newInstance, NotificationChain msgs) + { + ComponentInstance oldInstance = instance; + instance = newInstance; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.INSTANCE_DECLARATION__INSTANCE, oldInstance, newInstance); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setInstance(ComponentInstance newInstance) + { + if (newInstance != instance) + { + NotificationChain msgs = null; + if (instance != null) + msgs = ((InternalEObject)instance).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.INSTANCE_DECLARATION__INSTANCE, null, msgs); + if (newInstance != null) + msgs = ((InternalEObject)newInstance).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.INSTANCE_DECLARATION__INSTANCE, null, msgs); + msgs = basicSetInstance(newInstance, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.INSTANCE_DECLARATION__INSTANCE, newInstance, newInstance)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.INSTANCE_DECLARATION__LOCAL: + return basicSetLocal(null, msgs); + case FiacrePackage.INSTANCE_DECLARATION__INSTANCE: + return basicSetInstance(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.INSTANCE_DECLARATION__LOCAL: + return getLocal(); + case FiacrePackage.INSTANCE_DECLARATION__INSTANCE: + return getInstance(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.INSTANCE_DECLARATION__LOCAL: + setLocal((PortSet)newValue); + return; + case FiacrePackage.INSTANCE_DECLARATION__INSTANCE: + setInstance((ComponentInstance)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.INSTANCE_DECLARATION__LOCAL: + setLocal((PortSet)null); + return; + case FiacrePackage.INSTANCE_DECLARATION__INSTANCE: + setInstance((ComponentInstance)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.INSTANCE_DECLARATION__LOCAL: + return local != null; + case FiacrePackage.INSTANCE_DECLARATION__INSTANCE: + return instance != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) + { + if (baseClass == Block.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.INSTANCE_DECLARATION__LOCAL: return FiacrePackage.BLOCK__LOCAL; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) + { + if (baseClass == Block.class) + { + switch (baseFeatureID) + { + case FiacrePackage.BLOCK__LOCAL: return FiacrePackage.INSTANCE_DECLARATION__LOCAL; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //InstanceDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IntegerPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IntegerPatternImpl.java new file mode 100644 index 0000000..56e3551 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IntegerPatternImpl.java @@ -0,0 +1,243 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.IntegerPattern; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Integer Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.IntegerPatternImpl#isNegative Negative}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.IntegerPatternImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class IntegerPatternImpl extends PatternImpl implements IntegerPattern +{ + /** + * The default value of the '{@link #isNegative() Negative}' attribute. + * + * + * @see #isNegative() + * @generated + * @ordered + */ + protected static final boolean NEGATIVE_EDEFAULT = false; + + /** + * The cached value of the '{@link #isNegative() Negative}' attribute. + * + * + * @see #isNegative() + * @generated + * @ordered + */ + protected boolean negative = NEGATIVE_EDEFAULT; + + /** + * 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 IntegerPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getIntegerPattern(); + } + + /** + * + * + * @generated + */ + public boolean isNegative() + { + return negative; + } + + /** + * + * + * @generated + */ + public void setNegative(boolean newNegative) + { + boolean oldNegative = negative; + negative = newNegative; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.INTEGER_PATTERN__NEGATIVE, oldNegative, negative)); + } + + /** + * + * + * @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, FiacrePackage.INTEGER_PATTERN__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.INTEGER_PATTERN__NEGATIVE: + return isNegative(); + case FiacrePackage.INTEGER_PATTERN__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.INTEGER_PATTERN__NEGATIVE: + setNegative((Boolean)newValue); + return; + case FiacrePackage.INTEGER_PATTERN__VALUE: + setValue((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.INTEGER_PATTERN__NEGATIVE: + setNegative(NEGATIVE_EDEFAULT); + return; + case FiacrePackage.INTEGER_PATTERN__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.INTEGER_PATTERN__NEGATIVE: + return negative != NEGATIVE_EDEFAULT; + case FiacrePackage.INTEGER_PATTERN__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (negative: "); + result.append(negative); + result.append(", value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //IntegerPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IntegerTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IntegerTypeImpl.java new file mode 100644 index 0000000..391981e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/IntegerTypeImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.IntegerType; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Integer Type'. + * + * + * @generated + */ +public class IntegerTypeImpl extends BasicTypeImpl implements IntegerType +{ + /** + * + * + * @generated + */ + protected IntegerTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getIntegerType(); + } + +} //IntegerTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLAllImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLAllImpl.java new file mode 100644 index 0000000..79c8e56 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLAllImpl.java @@ -0,0 +1,348 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLAll; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; +import fr.irit.fiacre.xtext.fiacre.RangeType; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +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; + +/** + * + * An implementation of the model object 'LTL All'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLAllImpl#getIndex Index}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLAllImpl#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLAllImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class LTLAllImpl extends LTLPropertyImpl implements LTLAll +{ + /** + * The cached value of the '{@link #getIndex() Index}' containment reference. + * + * + * @see #getIndex() + * @generated + * @ordered + */ + protected VariableDeclaration index; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected RangeType type; + + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected LTLProperty child; + + /** + * + * + * @generated + */ + protected LTLAllImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLAll(); + } + + /** + * + * + * @generated + */ + public VariableDeclaration getIndex() + { + return index; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetIndex(VariableDeclaration newIndex, NotificationChain msgs) + { + VariableDeclaration oldIndex = index; + index = newIndex; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_ALL__INDEX, oldIndex, newIndex); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setIndex(VariableDeclaration newIndex) + { + if (newIndex != index) + { + NotificationChain msgs = null; + if (index != null) + msgs = ((InternalEObject)index).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_ALL__INDEX, null, msgs); + if (newIndex != null) + msgs = ((InternalEObject)newIndex).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_ALL__INDEX, null, msgs); + msgs = basicSetIndex(newIndex, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_ALL__INDEX, newIndex, newIndex)); + } + + /** + * + * + * @generated + */ + public RangeType getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(RangeType newType, NotificationChain msgs) + { + RangeType oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_ALL__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(RangeType newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_ALL__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_ALL__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_ALL__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + public LTLProperty getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(LTLProperty newChild, NotificationChain msgs) + { + LTLProperty oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_ALL__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(LTLProperty newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_ALL__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_ALL__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_ALL__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_ALL__INDEX: + return basicSetIndex(null, msgs); + case FiacrePackage.LTL_ALL__TYPE: + return basicSetType(null, msgs); + case FiacrePackage.LTL_ALL__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_ALL__INDEX: + return getIndex(); + case FiacrePackage.LTL_ALL__TYPE: + return getType(); + case FiacrePackage.LTL_ALL__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_ALL__INDEX: + setIndex((VariableDeclaration)newValue); + return; + case FiacrePackage.LTL_ALL__TYPE: + setType((RangeType)newValue); + return; + case FiacrePackage.LTL_ALL__CHILD: + setChild((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_ALL__INDEX: + setIndex((VariableDeclaration)null); + return; + case FiacrePackage.LTL_ALL__TYPE: + setType((RangeType)null); + return; + case FiacrePackage.LTL_ALL__CHILD: + setChild((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_ALL__INDEX: + return index != null; + case FiacrePackage.LTL_ALL__TYPE: + return type != null; + case FiacrePackage.LTL_ALL__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //LTLAllImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLConjunctionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLConjunctionImpl.java new file mode 100644 index 0000000..3521b98 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLConjunctionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLConjunction; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; + +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; + +/** + * + * An implementation of the model object 'LTL Conjunction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLConjunctionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLConjunctionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class LTLConjunctionImpl extends LTLPropertyImpl implements LTLConjunction +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected LTLProperty left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected LTLProperty right; + + /** + * + * + * @generated + */ + protected LTLConjunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLConjunction(); + } + + /** + * + * + * @generated + */ + public LTLProperty getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(LTLProperty newLeft, NotificationChain msgs) + { + LTLProperty oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_CONJUNCTION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(LTLProperty newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_CONJUNCTION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_CONJUNCTION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_CONJUNCTION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public LTLProperty getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(LTLProperty newRight, NotificationChain msgs) + { + LTLProperty oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_CONJUNCTION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(LTLProperty newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_CONJUNCTION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_CONJUNCTION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_CONJUNCTION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_CONJUNCTION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.LTL_CONJUNCTION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_CONJUNCTION__LEFT: + return getLeft(); + case FiacrePackage.LTL_CONJUNCTION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_CONJUNCTION__LEFT: + setLeft((LTLProperty)newValue); + return; + case FiacrePackage.LTL_CONJUNCTION__RIGHT: + setRight((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_CONJUNCTION__LEFT: + setLeft((LTLProperty)null); + return; + case FiacrePackage.LTL_CONJUNCTION__RIGHT: + setRight((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_CONJUNCTION__LEFT: + return left != null; + case FiacrePackage.LTL_CONJUNCTION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //LTLConjunctionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLDisjunctionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLDisjunctionImpl.java new file mode 100644 index 0000000..bb1cba6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLDisjunctionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLDisjunction; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; + +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; + +/** + * + * An implementation of the model object 'LTL Disjunction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLDisjunctionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLDisjunctionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class LTLDisjunctionImpl extends LTLPropertyImpl implements LTLDisjunction +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected LTLProperty left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected LTLProperty right; + + /** + * + * + * @generated + */ + protected LTLDisjunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLDisjunction(); + } + + /** + * + * + * @generated + */ + public LTLProperty getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(LTLProperty newLeft, NotificationChain msgs) + { + LTLProperty oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_DISJUNCTION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(LTLProperty newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_DISJUNCTION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_DISJUNCTION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_DISJUNCTION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public LTLProperty getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(LTLProperty newRight, NotificationChain msgs) + { + LTLProperty oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_DISJUNCTION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(LTLProperty newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_DISJUNCTION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_DISJUNCTION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_DISJUNCTION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_DISJUNCTION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.LTL_DISJUNCTION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_DISJUNCTION__LEFT: + return getLeft(); + case FiacrePackage.LTL_DISJUNCTION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_DISJUNCTION__LEFT: + setLeft((LTLProperty)newValue); + return; + case FiacrePackage.LTL_DISJUNCTION__RIGHT: + setRight((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_DISJUNCTION__LEFT: + setLeft((LTLProperty)null); + return; + case FiacrePackage.LTL_DISJUNCTION__RIGHT: + setRight((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_DISJUNCTION__LEFT: + return left != null; + case FiacrePackage.LTL_DISJUNCTION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //LTLDisjunctionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLExistsImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLExistsImpl.java new file mode 100644 index 0000000..96091bb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLExistsImpl.java @@ -0,0 +1,348 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLExists; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; +import fr.irit.fiacre.xtext.fiacre.RangeType; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +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; + +/** + * + * An implementation of the model object 'LTL Exists'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLExistsImpl#getIndex Index}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLExistsImpl#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLExistsImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class LTLExistsImpl extends LTLPropertyImpl implements LTLExists +{ + /** + * The cached value of the '{@link #getIndex() Index}' containment reference. + * + * + * @see #getIndex() + * @generated + * @ordered + */ + protected VariableDeclaration index; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected RangeType type; + + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected LTLProperty child; + + /** + * + * + * @generated + */ + protected LTLExistsImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLExists(); + } + + /** + * + * + * @generated + */ + public VariableDeclaration getIndex() + { + return index; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetIndex(VariableDeclaration newIndex, NotificationChain msgs) + { + VariableDeclaration oldIndex = index; + index = newIndex; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_EXISTS__INDEX, oldIndex, newIndex); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setIndex(VariableDeclaration newIndex) + { + if (newIndex != index) + { + NotificationChain msgs = null; + if (index != null) + msgs = ((InternalEObject)index).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_EXISTS__INDEX, null, msgs); + if (newIndex != null) + msgs = ((InternalEObject)newIndex).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_EXISTS__INDEX, null, msgs); + msgs = basicSetIndex(newIndex, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_EXISTS__INDEX, newIndex, newIndex)); + } + + /** + * + * + * @generated + */ + public RangeType getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(RangeType newType, NotificationChain msgs) + { + RangeType oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_EXISTS__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(RangeType newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_EXISTS__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_EXISTS__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_EXISTS__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + public LTLProperty getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(LTLProperty newChild, NotificationChain msgs) + { + LTLProperty oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_EXISTS__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(LTLProperty newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_EXISTS__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_EXISTS__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_EXISTS__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_EXISTS__INDEX: + return basicSetIndex(null, msgs); + case FiacrePackage.LTL_EXISTS__TYPE: + return basicSetType(null, msgs); + case FiacrePackage.LTL_EXISTS__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_EXISTS__INDEX: + return getIndex(); + case FiacrePackage.LTL_EXISTS__TYPE: + return getType(); + case FiacrePackage.LTL_EXISTS__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_EXISTS__INDEX: + setIndex((VariableDeclaration)newValue); + return; + case FiacrePackage.LTL_EXISTS__TYPE: + setType((RangeType)newValue); + return; + case FiacrePackage.LTL_EXISTS__CHILD: + setChild((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_EXISTS__INDEX: + setIndex((VariableDeclaration)null); + return; + case FiacrePackage.LTL_EXISTS__TYPE: + setType((RangeType)null); + return; + case FiacrePackage.LTL_EXISTS__CHILD: + setChild((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_EXISTS__INDEX: + return index != null; + case FiacrePackage.LTL_EXISTS__TYPE: + return type != null; + case FiacrePackage.LTL_EXISTS__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //LTLExistsImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLImplicationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLImplicationImpl.java new file mode 100644 index 0000000..0930ded --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLImplicationImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLImplication; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; + +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; + +/** + * + * An implementation of the model object 'LTL Implication'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLImplicationImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLImplicationImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class LTLImplicationImpl extends LTLPropertyImpl implements LTLImplication +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected LTLProperty left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected LTLProperty right; + + /** + * + * + * @generated + */ + protected LTLImplicationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLImplication(); + } + + /** + * + * + * @generated + */ + public LTLProperty getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(LTLProperty newLeft, NotificationChain msgs) + { + LTLProperty oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_IMPLICATION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(LTLProperty newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_IMPLICATION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_IMPLICATION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_IMPLICATION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public LTLProperty getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(LTLProperty newRight, NotificationChain msgs) + { + LTLProperty oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_IMPLICATION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(LTLProperty newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_IMPLICATION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_IMPLICATION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_IMPLICATION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_IMPLICATION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.LTL_IMPLICATION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_IMPLICATION__LEFT: + return getLeft(); + case FiacrePackage.LTL_IMPLICATION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_IMPLICATION__LEFT: + setLeft((LTLProperty)newValue); + return; + case FiacrePackage.LTL_IMPLICATION__RIGHT: + setRight((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_IMPLICATION__LEFT: + setLeft((LTLProperty)null); + return; + case FiacrePackage.LTL_IMPLICATION__RIGHT: + setRight((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_IMPLICATION__LEFT: + return left != null; + case FiacrePackage.LTL_IMPLICATION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //LTLImplicationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLPatternImpl.java new file mode 100644 index 0000000..a1eb2db --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLPatternImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLPattern; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; + +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; + +/** + * + * An implementation of the model object 'LTL Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLPatternImpl#getProperty Property}
    • + *
    + * + * @generated + */ +public class LTLPatternImpl extends PatternPropertyImpl implements LTLPattern +{ + /** + * The cached value of the '{@link #getProperty() Property}' containment reference. + * + * + * @see #getProperty() + * @generated + * @ordered + */ + protected LTLProperty property; + + /** + * + * + * @generated + */ + protected LTLPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLPattern(); + } + + /** + * + * + * @generated + */ + public LTLProperty getProperty() + { + return property; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetProperty(LTLProperty newProperty, NotificationChain msgs) + { + LTLProperty oldProperty = property; + property = newProperty; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_PATTERN__PROPERTY, oldProperty, newProperty); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setProperty(LTLProperty newProperty) + { + if (newProperty != property) + { + NotificationChain msgs = null; + if (property != null) + msgs = ((InternalEObject)property).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_PATTERN__PROPERTY, null, msgs); + if (newProperty != null) + msgs = ((InternalEObject)newProperty).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_PATTERN__PROPERTY, null, msgs); + msgs = basicSetProperty(newProperty, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_PATTERN__PROPERTY, newProperty, newProperty)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_PATTERN__PROPERTY: + return basicSetProperty(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_PATTERN__PROPERTY: + return getProperty(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_PATTERN__PROPERTY: + setProperty((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_PATTERN__PROPERTY: + setProperty((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_PATTERN__PROPERTY: + return property != null; + } + return super.eIsSet(featureID); + } + +} //LTLPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLPropertyImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLPropertyImpl.java new file mode 100644 index 0000000..c256343 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLPropertyImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'LTL Property'. + * + * + * @generated + */ +public class LTLPropertyImpl extends MinimalEObjectImpl.Container implements LTLProperty +{ + /** + * + * + * @generated + */ + protected LTLPropertyImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLProperty(); + } + +} //LTLPropertyImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLReleaseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLReleaseImpl.java new file mode 100644 index 0000000..0a755e4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLReleaseImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; +import fr.irit.fiacre.xtext.fiacre.LTLRelease; + +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; + +/** + * + * An implementation of the model object 'LTL Release'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLReleaseImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLReleaseImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class LTLReleaseImpl extends LTLPropertyImpl implements LTLRelease +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected LTLProperty left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected LTLProperty right; + + /** + * + * + * @generated + */ + protected LTLReleaseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLRelease(); + } + + /** + * + * + * @generated + */ + public LTLProperty getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(LTLProperty newLeft, NotificationChain msgs) + { + LTLProperty oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_RELEASE__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(LTLProperty newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_RELEASE__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_RELEASE__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_RELEASE__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public LTLProperty getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(LTLProperty newRight, NotificationChain msgs) + { + LTLProperty oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_RELEASE__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(LTLProperty newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_RELEASE__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_RELEASE__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_RELEASE__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_RELEASE__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.LTL_RELEASE__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_RELEASE__LEFT: + return getLeft(); + case FiacrePackage.LTL_RELEASE__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_RELEASE__LEFT: + setLeft((LTLProperty)newValue); + return; + case FiacrePackage.LTL_RELEASE__RIGHT: + setRight((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_RELEASE__LEFT: + setLeft((LTLProperty)null); + return; + case FiacrePackage.LTL_RELEASE__RIGHT: + setRight((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_RELEASE__LEFT: + return left != null; + case FiacrePackage.LTL_RELEASE__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //LTLReleaseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryAlwaysImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryAlwaysImpl.java new file mode 100644 index 0000000..36b5df9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryAlwaysImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways; + +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; + +/** + * + * An implementation of the model object 'LTL Unary Always'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryAlwaysImpl#getOperand Operand}
    • + *
    + * + * @generated + */ +public class LTLUnaryAlwaysImpl extends LTLPropertyImpl implements LTLUnaryAlways +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected LTLProperty operand; + + /** + * + * + * @generated + */ + protected LTLUnaryAlwaysImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLUnaryAlways(); + } + + /** + * + * + * @generated + */ + public LTLProperty getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(LTLProperty newOperand, NotificationChain msgs) + { + LTLProperty oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNARY_ALWAYS__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(LTLProperty newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNARY_ALWAYS__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNARY_ALWAYS__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNARY_ALWAYS__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_ALWAYS__OPERAND: + return basicSetOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_ALWAYS__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_ALWAYS__OPERAND: + setOperand((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_ALWAYS__OPERAND: + setOperand((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_ALWAYS__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //LTLUnaryAlwaysImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryEventuallyImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryEventuallyImpl.java new file mode 100644 index 0000000..107f67c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryEventuallyImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually; + +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; + +/** + * + * An implementation of the model object 'LTL Unary Eventually'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryEventuallyImpl#getOperand Operand}
    • + *
    + * + * @generated + */ +public class LTLUnaryEventuallyImpl extends LTLPropertyImpl implements LTLUnaryEventually +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected LTLProperty operand; + + /** + * + * + * @generated + */ + protected LTLUnaryEventuallyImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLUnaryEventually(); + } + + /** + * + * + * @generated + */ + public LTLProperty getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(LTLProperty newOperand, NotificationChain msgs) + { + LTLProperty oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNARY_EVENTUALLY__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(LTLProperty newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNARY_EVENTUALLY__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNARY_EVENTUALLY__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNARY_EVENTUALLY__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_EVENTUALLY__OPERAND: + return basicSetOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_EVENTUALLY__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_EVENTUALLY__OPERAND: + setOperand((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_EVENTUALLY__OPERAND: + setOperand((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_EVENTUALLY__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //LTLUnaryEventuallyImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryNegationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryNegationImpl.java new file mode 100644 index 0000000..b1dd1a2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryNegationImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation; + +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; + +/** + * + * An implementation of the model object 'LTL Unary Negation'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryNegationImpl#getOperand Operand}
    • + *
    + * + * @generated + */ +public class LTLUnaryNegationImpl extends LTLPropertyImpl implements LTLUnaryNegation +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected LTLProperty operand; + + /** + * + * + * @generated + */ + protected LTLUnaryNegationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLUnaryNegation(); + } + + /** + * + * + * @generated + */ + public LTLProperty getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(LTLProperty newOperand, NotificationChain msgs) + { + LTLProperty oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNARY_NEGATION__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(LTLProperty newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNARY_NEGATION__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNARY_NEGATION__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNARY_NEGATION__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_NEGATION__OPERAND: + return basicSetOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_NEGATION__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_NEGATION__OPERAND: + setOperand((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_NEGATION__OPERAND: + setOperand((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_NEGATION__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //LTLUnaryNegationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryNextImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryNextImpl.java new file mode 100644 index 0000000..df41f0f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUnaryNextImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryNext; + +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; + +/** + * + * An implementation of the model object 'LTL Unary Next'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLUnaryNextImpl#getOperand Operand}
    • + *
    + * + * @generated + */ +public class LTLUnaryNextImpl extends LTLPropertyImpl implements LTLUnaryNext +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected LTLProperty operand; + + /** + * + * + * @generated + */ + protected LTLUnaryNextImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLUnaryNext(); + } + + /** + * + * + * @generated + */ + public LTLProperty getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(LTLProperty newOperand, NotificationChain msgs) + { + LTLProperty oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNARY_NEXT__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(LTLProperty newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNARY_NEXT__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNARY_NEXT__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNARY_NEXT__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_NEXT__OPERAND: + return basicSetOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_NEXT__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_NEXT__OPERAND: + setOperand((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_NEXT__OPERAND: + setOperand((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_UNARY_NEXT__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //LTLUnaryNextImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUntilImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUntilImpl.java new file mode 100644 index 0000000..20544b5 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLUntilImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLProperty; +import fr.irit.fiacre.xtext.fiacre.LTLUntil; + +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; + +/** + * + * An implementation of the model object 'LTL Until'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLUntilImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLUntilImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class LTLUntilImpl extends LTLPropertyImpl implements LTLUntil +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected LTLProperty left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected LTLProperty right; + + /** + * + * + * @generated + */ + protected LTLUntilImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLUntil(); + } + + /** + * + * + * @generated + */ + public LTLProperty getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(LTLProperty newLeft, NotificationChain msgs) + { + LTLProperty oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNTIL__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(LTLProperty newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNTIL__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNTIL__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNTIL__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public LTLProperty getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(LTLProperty newRight, NotificationChain msgs) + { + LTLProperty oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNTIL__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(LTLProperty newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNTIL__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LTL_UNTIL__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_UNTIL__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LTL_UNTIL__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.LTL_UNTIL__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_UNTIL__LEFT: + return getLeft(); + case FiacrePackage.LTL_UNTIL__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_UNTIL__LEFT: + setLeft((LTLProperty)newValue); + return; + case FiacrePackage.LTL_UNTIL__RIGHT: + setRight((LTLProperty)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_UNTIL__LEFT: + setLeft((LTLProperty)null); + return; + case FiacrePackage.LTL_UNTIL__RIGHT: + setRight((LTLProperty)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_UNTIL__LEFT: + return left != null; + case FiacrePackage.LTL_UNTIL__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //LTLUntilImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLVariableImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLVariableImpl.java new file mode 100644 index 0000000..64834b1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LTLVariableImpl.java @@ -0,0 +1,183 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LTLVariable; +import fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse; + +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; + +/** + * + * An implementation of the model object 'LTL Variable'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LTLVariableImpl#getDeclaration Declaration}
    • + *
    + * + * @generated + */ +public class LTLVariableImpl extends LTLPropertyImpl implements LTLVariable +{ + /** + * The cached value of the '{@link #getDeclaration() Declaration}' reference. + * + * + * @see #getDeclaration() + * @generated + * @ordered + */ + protected PropertyDeclarationUse declaration; + + /** + * + * + * @generated + */ + protected LTLVariableImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLTLVariable(); + } + + /** + * + * + * @generated + */ + public PropertyDeclarationUse getDeclaration() + { + if (declaration != null && declaration.eIsProxy()) + { + InternalEObject oldDeclaration = (InternalEObject)declaration; + declaration = (PropertyDeclarationUse)eResolveProxy(oldDeclaration); + if (declaration != oldDeclaration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.LTL_VARIABLE__DECLARATION, oldDeclaration, declaration)); + } + } + return declaration; + } + + /** + * + * + * @generated + */ + public PropertyDeclarationUse basicGetDeclaration() + { + return declaration; + } + + /** + * + * + * @generated + */ + public void setDeclaration(PropertyDeclarationUse newDeclaration) + { + PropertyDeclarationUse oldDeclaration = declaration; + declaration = newDeclaration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LTL_VARIABLE__DECLARATION, oldDeclaration, declaration)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LTL_VARIABLE__DECLARATION: + if (resolve) return getDeclaration(); + return basicGetDeclaration(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LTL_VARIABLE__DECLARATION: + setDeclaration((PropertyDeclarationUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_VARIABLE__DECLARATION: + setDeclaration((PropertyDeclarationUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LTL_VARIABLE__DECLARATION: + return declaration != null; + } + return super.eIsSet(featureID); + } + +} //LTLVariableImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LeadsToPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LeadsToPatternImpl.java new file mode 100644 index 0000000..9d84de8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LeadsToPatternImpl.java @@ -0,0 +1,774 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LeadsToPattern; +import fr.irit.fiacre.xtext.fiacre.LowerBound; +import fr.irit.fiacre.xtext.fiacre.Observable; +import fr.irit.fiacre.xtext.fiacre.UpperBound; + +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; + +/** + * + * An implementation of the model object 'Leads To Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl#getSubject Subject}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl#getFollower Follower}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl#getBefore Before}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl#getLower Lower}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl#getUpper Upper}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl#getAfter After}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl#getUntil Until}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl#getMin Min}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LeadsToPatternImpl#getMax Max}
    • + *
    + * + * @generated + */ +public class LeadsToPatternImpl extends SequencePatternImpl implements LeadsToPattern +{ + /** + * The cached value of the '{@link #getSubject() Subject}' containment reference. + * + * + * @see #getSubject() + * @generated + * @ordered + */ + protected Observable subject; + + /** + * The cached value of the '{@link #getFollower() Follower}' containment reference. + * + * + * @see #getFollower() + * @generated + * @ordered + */ + protected Observable follower; + + /** + * The cached value of the '{@link #getBefore() Before}' containment reference. + * + * + * @see #getBefore() + * @generated + * @ordered + */ + protected Observable before; + + /** + * The cached value of the '{@link #getLower() Lower}' containment reference. + * + * + * @see #getLower() + * @generated + * @ordered + */ + protected LowerBound lower; + + /** + * The cached value of the '{@link #getUpper() Upper}' containment reference. + * + * + * @see #getUpper() + * @generated + * @ordered + */ + protected UpperBound upper; + + /** + * The cached value of the '{@link #getAfter() After}' containment reference. + * + * + * @see #getAfter() + * @generated + * @ordered + */ + protected Observable after; + + /** + * The cached value of the '{@link #getUntil() Until}' containment reference. + * + * + * @see #getUntil() + * @generated + * @ordered + */ + protected Observable until; + + /** + * The cached value of the '{@link #getMin() Min}' containment reference. + * + * + * @see #getMin() + * @generated + * @ordered + */ + protected Observable min; + + /** + * The cached value of the '{@link #getMax() Max}' containment reference. + * + * + * @see #getMax() + * @generated + * @ordered + */ + protected Observable max; + + /** + * + * + * @generated + */ + protected LeadsToPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLeadsToPattern(); + } + + /** + * + * + * @generated + */ + public Observable getSubject() + { + return subject; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSubject(Observable newSubject, NotificationChain msgs) + { + Observable oldSubject = subject; + subject = newSubject; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__SUBJECT, oldSubject, newSubject); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSubject(Observable newSubject) + { + if (newSubject != subject) + { + NotificationChain msgs = null; + if (subject != null) + msgs = ((InternalEObject)subject).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__SUBJECT, null, msgs); + if (newSubject != null) + msgs = ((InternalEObject)newSubject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__SUBJECT, null, msgs); + msgs = basicSetSubject(newSubject, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__SUBJECT, newSubject, newSubject)); + } + + /** + * + * + * @generated + */ + public Observable getFollower() + { + return follower; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetFollower(Observable newFollower, NotificationChain msgs) + { + Observable oldFollower = follower; + follower = newFollower; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__FOLLOWER, oldFollower, newFollower); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setFollower(Observable newFollower) + { + if (newFollower != follower) + { + NotificationChain msgs = null; + if (follower != null) + msgs = ((InternalEObject)follower).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__FOLLOWER, null, msgs); + if (newFollower != null) + msgs = ((InternalEObject)newFollower).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__FOLLOWER, null, msgs); + msgs = basicSetFollower(newFollower, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__FOLLOWER, newFollower, newFollower)); + } + + /** + * + * + * @generated + */ + public Observable getBefore() + { + return before; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBefore(Observable newBefore, NotificationChain msgs) + { + Observable oldBefore = before; + before = newBefore; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__BEFORE, oldBefore, newBefore); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setBefore(Observable newBefore) + { + if (newBefore != before) + { + NotificationChain msgs = null; + if (before != null) + msgs = ((InternalEObject)before).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__BEFORE, null, msgs); + if (newBefore != null) + msgs = ((InternalEObject)newBefore).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__BEFORE, null, msgs); + msgs = basicSetBefore(newBefore, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__BEFORE, newBefore, newBefore)); + } + + /** + * + * + * @generated + */ + public LowerBound getLower() + { + return lower; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLower(LowerBound newLower, NotificationChain msgs) + { + LowerBound oldLower = lower; + lower = newLower; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__LOWER, oldLower, newLower); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLower(LowerBound newLower) + { + if (newLower != lower) + { + NotificationChain msgs = null; + if (lower != null) + msgs = ((InternalEObject)lower).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__LOWER, null, msgs); + if (newLower != null) + msgs = ((InternalEObject)newLower).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__LOWER, null, msgs); + msgs = basicSetLower(newLower, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__LOWER, newLower, newLower)); + } + + /** + * + * + * @generated + */ + public UpperBound getUpper() + { + return upper; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUpper(UpperBound newUpper, NotificationChain msgs) + { + UpperBound oldUpper = upper; + upper = newUpper; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__UPPER, oldUpper, newUpper); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setUpper(UpperBound newUpper) + { + if (newUpper != upper) + { + NotificationChain msgs = null; + if (upper != null) + msgs = ((InternalEObject)upper).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__UPPER, null, msgs); + if (newUpper != null) + msgs = ((InternalEObject)newUpper).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__UPPER, null, msgs); + msgs = basicSetUpper(newUpper, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__UPPER, newUpper, newUpper)); + } + + /** + * + * + * @generated + */ + public Observable getAfter() + { + return after; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAfter(Observable newAfter, NotificationChain msgs) + { + Observable oldAfter = after; + after = newAfter; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__AFTER, oldAfter, newAfter); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setAfter(Observable newAfter) + { + if (newAfter != after) + { + NotificationChain msgs = null; + if (after != null) + msgs = ((InternalEObject)after).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__AFTER, null, msgs); + if (newAfter != null) + msgs = ((InternalEObject)newAfter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__AFTER, null, msgs); + msgs = basicSetAfter(newAfter, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__AFTER, newAfter, newAfter)); + } + + /** + * + * + * @generated + */ + public Observable getUntil() + { + return until; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUntil(Observable newUntil, NotificationChain msgs) + { + Observable oldUntil = until; + until = newUntil; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__UNTIL, oldUntil, newUntil); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setUntil(Observable newUntil) + { + if (newUntil != until) + { + NotificationChain msgs = null; + if (until != null) + msgs = ((InternalEObject)until).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__UNTIL, null, msgs); + if (newUntil != null) + msgs = ((InternalEObject)newUntil).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__UNTIL, null, msgs); + msgs = basicSetUntil(newUntil, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__UNTIL, newUntil, newUntil)); + } + + /** + * + * + * @generated + */ + public Observable getMin() + { + return min; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMin(Observable newMin, NotificationChain msgs) + { + Observable oldMin = min; + min = newMin; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__MIN, oldMin, newMin); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMin(Observable newMin) + { + if (newMin != min) + { + NotificationChain msgs = null; + if (min != null) + msgs = ((InternalEObject)min).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__MIN, null, msgs); + if (newMin != null) + msgs = ((InternalEObject)newMin).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__MIN, null, msgs); + msgs = basicSetMin(newMin, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__MIN, newMin, newMin)); + } + + /** + * + * + * @generated + */ + public Observable getMax() + { + return max; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMax(Observable newMax, NotificationChain msgs) + { + Observable oldMax = max; + max = newMax; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__MAX, oldMax, newMax); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMax(Observable newMax) + { + if (newMax != max) + { + NotificationChain msgs = null; + if (max != null) + msgs = ((InternalEObject)max).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__MAX, null, msgs); + if (newMax != null) + msgs = ((InternalEObject)newMax).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LEADS_TO_PATTERN__MAX, null, msgs); + msgs = basicSetMax(newMax, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LEADS_TO_PATTERN__MAX, newMax, newMax)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LEADS_TO_PATTERN__SUBJECT: + return basicSetSubject(null, msgs); + case FiacrePackage.LEADS_TO_PATTERN__FOLLOWER: + return basicSetFollower(null, msgs); + case FiacrePackage.LEADS_TO_PATTERN__BEFORE: + return basicSetBefore(null, msgs); + case FiacrePackage.LEADS_TO_PATTERN__LOWER: + return basicSetLower(null, msgs); + case FiacrePackage.LEADS_TO_PATTERN__UPPER: + return basicSetUpper(null, msgs); + case FiacrePackage.LEADS_TO_PATTERN__AFTER: + return basicSetAfter(null, msgs); + case FiacrePackage.LEADS_TO_PATTERN__UNTIL: + return basicSetUntil(null, msgs); + case FiacrePackage.LEADS_TO_PATTERN__MIN: + return basicSetMin(null, msgs); + case FiacrePackage.LEADS_TO_PATTERN__MAX: + return basicSetMax(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LEADS_TO_PATTERN__SUBJECT: + return getSubject(); + case FiacrePackage.LEADS_TO_PATTERN__FOLLOWER: + return getFollower(); + case FiacrePackage.LEADS_TO_PATTERN__BEFORE: + return getBefore(); + case FiacrePackage.LEADS_TO_PATTERN__LOWER: + return getLower(); + case FiacrePackage.LEADS_TO_PATTERN__UPPER: + return getUpper(); + case FiacrePackage.LEADS_TO_PATTERN__AFTER: + return getAfter(); + case FiacrePackage.LEADS_TO_PATTERN__UNTIL: + return getUntil(); + case FiacrePackage.LEADS_TO_PATTERN__MIN: + return getMin(); + case FiacrePackage.LEADS_TO_PATTERN__MAX: + return getMax(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LEADS_TO_PATTERN__SUBJECT: + setSubject((Observable)newValue); + return; + case FiacrePackage.LEADS_TO_PATTERN__FOLLOWER: + setFollower((Observable)newValue); + return; + case FiacrePackage.LEADS_TO_PATTERN__BEFORE: + setBefore((Observable)newValue); + return; + case FiacrePackage.LEADS_TO_PATTERN__LOWER: + setLower((LowerBound)newValue); + return; + case FiacrePackage.LEADS_TO_PATTERN__UPPER: + setUpper((UpperBound)newValue); + return; + case FiacrePackage.LEADS_TO_PATTERN__AFTER: + setAfter((Observable)newValue); + return; + case FiacrePackage.LEADS_TO_PATTERN__UNTIL: + setUntil((Observable)newValue); + return; + case FiacrePackage.LEADS_TO_PATTERN__MIN: + setMin((Observable)newValue); + return; + case FiacrePackage.LEADS_TO_PATTERN__MAX: + setMax((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LEADS_TO_PATTERN__SUBJECT: + setSubject((Observable)null); + return; + case FiacrePackage.LEADS_TO_PATTERN__FOLLOWER: + setFollower((Observable)null); + return; + case FiacrePackage.LEADS_TO_PATTERN__BEFORE: + setBefore((Observable)null); + return; + case FiacrePackage.LEADS_TO_PATTERN__LOWER: + setLower((LowerBound)null); + return; + case FiacrePackage.LEADS_TO_PATTERN__UPPER: + setUpper((UpperBound)null); + return; + case FiacrePackage.LEADS_TO_PATTERN__AFTER: + setAfter((Observable)null); + return; + case FiacrePackage.LEADS_TO_PATTERN__UNTIL: + setUntil((Observable)null); + return; + case FiacrePackage.LEADS_TO_PATTERN__MIN: + setMin((Observable)null); + return; + case FiacrePackage.LEADS_TO_PATTERN__MAX: + setMax((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LEADS_TO_PATTERN__SUBJECT: + return subject != null; + case FiacrePackage.LEADS_TO_PATTERN__FOLLOWER: + return follower != null; + case FiacrePackage.LEADS_TO_PATTERN__BEFORE: + return before != null; + case FiacrePackage.LEADS_TO_PATTERN__LOWER: + return lower != null; + case FiacrePackage.LEADS_TO_PATTERN__UPPER: + return upper != null; + case FiacrePackage.LEADS_TO_PATTERN__AFTER: + return after != null; + case FiacrePackage.LEADS_TO_PATTERN__UNTIL: + return until != null; + case FiacrePackage.LEADS_TO_PATTERN__MIN: + return min != null; + case FiacrePackage.LEADS_TO_PATTERN__MAX: + return max != null; + } + return super.eIsSet(featureID); + } + +} //LeadsToPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LeaveStateEventImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LeaveStateEventImpl.java new file mode 100644 index 0000000..a1b9e55 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LeaveStateEventImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LeaveStateEvent; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Leave State Event'. + * + * + * @generated + */ +public class LeaveStateEventImpl extends StateEventImpl implements LeaveStateEvent +{ + /** + * + * + * @generated + */ + protected LeaveStateEventImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLeaveStateEvent(); + } + +} //LeaveStateEventImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LiteralExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LiteralExpressionImpl.java new file mode 100644 index 0000000..c9e3db9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LiteralExpressionImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LiteralExpression; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Literal Expression'. + * + * + * @generated + */ +public class LiteralExpressionImpl extends ValueExpressionImpl implements LiteralExpression +{ + /** + * + * + * @generated + */ + protected LiteralExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLiteralExpression(); + } + +} //LiteralExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LocalPortsDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LocalPortsDeclarationImpl.java new file mode 100644 index 0000000..28f1bc8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LocalPortsDeclarationImpl.java @@ -0,0 +1,396 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ChannelType; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration; +import fr.irit.fiacre.xtext.fiacre.LowerBound; +import fr.irit.fiacre.xtext.fiacre.PortDeclaration; +import fr.irit.fiacre.xtext.fiacre.UpperBound; + +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; + +/** + * + * An implementation of the model object 'Local Ports Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LocalPortsDeclarationImpl#getPorts Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LocalPortsDeclarationImpl#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LocalPortsDeclarationImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LocalPortsDeclarationImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class LocalPortsDeclarationImpl extends MinimalEObjectImpl.Container implements LocalPortsDeclaration +{ + /** + * The cached value of the '{@link #getPorts() Ports}' containment reference list. + * + * + * @see #getPorts() + * @generated + * @ordered + */ + protected EList ports; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected ChannelType type; + + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected LowerBound left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected UpperBound right; + + /** + * + * + * @generated + */ + protected LocalPortsDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLocalPortsDeclaration(); + } + + /** + * + * + * @generated + */ + public EList getPorts() + { + if (ports == null) + { + ports = new EObjectContainmentEList(PortDeclaration.class, this, FiacrePackage.LOCAL_PORTS_DECLARATION__PORTS); + } + return ports; + } + + /** + * + * + * @generated + */ + public ChannelType getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(ChannelType newType, NotificationChain msgs) + { + ChannelType oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LOCAL_PORTS_DECLARATION__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(ChannelType newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LOCAL_PORTS_DECLARATION__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LOCAL_PORTS_DECLARATION__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LOCAL_PORTS_DECLARATION__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + public LowerBound getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(LowerBound newLeft, NotificationChain msgs) + { + LowerBound oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LOCAL_PORTS_DECLARATION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(LowerBound newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LOCAL_PORTS_DECLARATION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LOCAL_PORTS_DECLARATION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LOCAL_PORTS_DECLARATION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public UpperBound getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(UpperBound newRight, NotificationChain msgs) + { + UpperBound oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.LOCAL_PORTS_DECLARATION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(UpperBound newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LOCAL_PORTS_DECLARATION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.LOCAL_PORTS_DECLARATION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LOCAL_PORTS_DECLARATION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.LOCAL_PORTS_DECLARATION__PORTS: + return ((InternalEList)getPorts()).basicRemove(otherEnd, msgs); + case FiacrePackage.LOCAL_PORTS_DECLARATION__TYPE: + return basicSetType(null, msgs); + case FiacrePackage.LOCAL_PORTS_DECLARATION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.LOCAL_PORTS_DECLARATION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LOCAL_PORTS_DECLARATION__PORTS: + return getPorts(); + case FiacrePackage.LOCAL_PORTS_DECLARATION__TYPE: + return getType(); + case FiacrePackage.LOCAL_PORTS_DECLARATION__LEFT: + return getLeft(); + case FiacrePackage.LOCAL_PORTS_DECLARATION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LOCAL_PORTS_DECLARATION__PORTS: + getPorts().clear(); + getPorts().addAll((Collection)newValue); + return; + case FiacrePackage.LOCAL_PORTS_DECLARATION__TYPE: + setType((ChannelType)newValue); + return; + case FiacrePackage.LOCAL_PORTS_DECLARATION__LEFT: + setLeft((LowerBound)newValue); + return; + case FiacrePackage.LOCAL_PORTS_DECLARATION__RIGHT: + setRight((UpperBound)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LOCAL_PORTS_DECLARATION__PORTS: + getPorts().clear(); + return; + case FiacrePackage.LOCAL_PORTS_DECLARATION__TYPE: + setType((ChannelType)null); + return; + case FiacrePackage.LOCAL_PORTS_DECLARATION__LEFT: + setLeft((LowerBound)null); + return; + case FiacrePackage.LOCAL_PORTS_DECLARATION__RIGHT: + setRight((UpperBound)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LOCAL_PORTS_DECLARATION__PORTS: + return ports != null && !ports.isEmpty(); + case FiacrePackage.LOCAL_PORTS_DECLARATION__TYPE: + return type != null; + case FiacrePackage.LOCAL_PORTS_DECLARATION__LEFT: + return left != null; + case FiacrePackage.LOCAL_PORTS_DECLARATION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //LocalPortsDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LoopStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LoopStatementImpl.java new file mode 100644 index 0000000..cb7f306 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LoopStatementImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LoopStatement; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Loop Statement'. + * + * + * @generated + */ +public class LoopStatementImpl extends StatementImpl implements LoopStatement +{ + /** + * + * + * @generated + */ + protected LoopStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLoopStatement(); + } + +} //LoopStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LowerBoundImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LowerBoundImpl.java new file mode 100644 index 0000000..c79f5a0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/LowerBoundImpl.java @@ -0,0 +1,244 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LowerBound; + +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; + +/** + * + * An implementation of the model object 'Lower Bound'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LowerBoundImpl#isLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.LowerBoundImpl#isRight Right}
    • + *
    + * + * @generated + */ +public class LowerBoundImpl extends MinimalEObjectImpl.Container implements LowerBound +{ + /** + * The default value of the '{@link #isLeft() Left}' attribute. + * + * + * @see #isLeft() + * @generated + * @ordered + */ + protected static final boolean LEFT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isLeft() Left}' attribute. + * + * + * @see #isLeft() + * @generated + * @ordered + */ + protected boolean left = LEFT_EDEFAULT; + + /** + * The default value of the '{@link #isRight() Right}' attribute. + * + * + * @see #isRight() + * @generated + * @ordered + */ + protected static final boolean RIGHT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isRight() Right}' attribute. + * + * + * @see #isRight() + * @generated + * @ordered + */ + protected boolean right = RIGHT_EDEFAULT; + + /** + * + * + * @generated + */ + protected LowerBoundImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getLowerBound(); + } + + /** + * + * + * @generated + */ + public boolean isLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public void setLeft(boolean newLeft) + { + boolean oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LOWER_BOUND__LEFT, oldLeft, left)); + } + + /** + * + * + * @generated + */ + public boolean isRight() + { + return right; + } + + /** + * + * + * @generated + */ + public void setRight(boolean newRight) + { + boolean oldRight = right; + right = newRight; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.LOWER_BOUND__RIGHT, oldRight, right)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.LOWER_BOUND__LEFT: + return isLeft(); + case FiacrePackage.LOWER_BOUND__RIGHT: + return isRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.LOWER_BOUND__LEFT: + setLeft((Boolean)newValue); + return; + case FiacrePackage.LOWER_BOUND__RIGHT: + setRight((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.LOWER_BOUND__LEFT: + setLeft(LEFT_EDEFAULT); + return; + case FiacrePackage.LOWER_BOUND__RIGHT: + setRight(RIGHT_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.LOWER_BOUND__LEFT: + return left != LEFT_EDEFAULT; + case FiacrePackage.LOWER_BOUND__RIGHT: + return right != RIGHT_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (left: "); + result.append(left); + result.append(", right: "); + result.append(right); + result.append(')'); + return result.toString(); + } + +} //LowerBoundImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ModelImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ModelImpl.java new file mode 100644 index 0000000..fcf9e83 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ModelImpl.java @@ -0,0 +1,295 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Declaration; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ImportDeclaration; +import fr.irit.fiacre.xtext.fiacre.Model; +import fr.irit.fiacre.xtext.fiacre.Requirement; +import fr.irit.fiacre.xtext.fiacre.Root; + +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; + +/** + * + * An implementation of the model object 'Model'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ModelImpl#getImports Imports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ModelImpl#getDeclarations Declarations}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ModelImpl#getRequirements Requirements}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ModelImpl#getRoot Root}
    • + *
    + * + * @generated + */ +public class ModelImpl extends MinimalEObjectImpl.Container implements Model +{ + /** + * The cached value of the '{@link #getImports() Imports}' containment reference list. + * + * + * @see #getImports() + * @generated + * @ordered + */ + protected EList imports; + + /** + * The cached value of the '{@link #getDeclarations() Declarations}' containment reference list. + * + * + * @see #getDeclarations() + * @generated + * @ordered + */ + protected EList declarations; + + /** + * The cached value of the '{@link #getRequirements() Requirements}' containment reference list. + * + * + * @see #getRequirements() + * @generated + * @ordered + */ + protected EList requirements; + + /** + * The cached value of the '{@link #getRoot() Root}' containment reference list. + * + * + * @see #getRoot() + * @generated + * @ordered + */ + protected EList root; + + /** + * + * + * @generated + */ + protected ModelImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getModel(); + } + + /** + * + * + * @generated + */ + public EList getImports() + { + if (imports == null) + { + imports = new EObjectContainmentEList(ImportDeclaration.class, this, FiacrePackage.MODEL__IMPORTS); + } + return imports; + } + + /** + * + * + * @generated + */ + public EList getDeclarations() + { + if (declarations == null) + { + declarations = new EObjectContainmentEList(Declaration.class, this, FiacrePackage.MODEL__DECLARATIONS); + } + return declarations; + } + + /** + * + * + * @generated + */ + public EList getRequirements() + { + if (requirements == null) + { + requirements = new EObjectContainmentEList(Requirement.class, this, FiacrePackage.MODEL__REQUIREMENTS); + } + return requirements; + } + + /** + * + * + * @generated + */ + public EList getRoot() + { + if (root == null) + { + root = new EObjectContainmentEList(Root.class, this, FiacrePackage.MODEL__ROOT); + } + return root; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.MODEL__IMPORTS: + return ((InternalEList)getImports()).basicRemove(otherEnd, msgs); + case FiacrePackage.MODEL__DECLARATIONS: + return ((InternalEList)getDeclarations()).basicRemove(otherEnd, msgs); + case FiacrePackage.MODEL__REQUIREMENTS: + return ((InternalEList)getRequirements()).basicRemove(otherEnd, msgs); + case FiacrePackage.MODEL__ROOT: + return ((InternalEList)getRoot()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.MODEL__IMPORTS: + return getImports(); + case FiacrePackage.MODEL__DECLARATIONS: + return getDeclarations(); + case FiacrePackage.MODEL__REQUIREMENTS: + return getRequirements(); + case FiacrePackage.MODEL__ROOT: + return getRoot(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.MODEL__IMPORTS: + getImports().clear(); + getImports().addAll((Collection)newValue); + return; + case FiacrePackage.MODEL__DECLARATIONS: + getDeclarations().clear(); + getDeclarations().addAll((Collection)newValue); + return; + case FiacrePackage.MODEL__REQUIREMENTS: + getRequirements().clear(); + getRequirements().addAll((Collection)newValue); + return; + case FiacrePackage.MODEL__ROOT: + getRoot().clear(); + getRoot().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.MODEL__IMPORTS: + getImports().clear(); + return; + case FiacrePackage.MODEL__DECLARATIONS: + getDeclarations().clear(); + return; + case FiacrePackage.MODEL__REQUIREMENTS: + getRequirements().clear(); + return; + case FiacrePackage.MODEL__ROOT: + getRoot().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.MODEL__IMPORTS: + return imports != null && !imports.isEmpty(); + case FiacrePackage.MODEL__DECLARATIONS: + return declarations != null && !declarations.isEmpty(); + case FiacrePackage.MODEL__REQUIREMENTS: + return requirements != null && !requirements.isEmpty(); + case FiacrePackage.MODEL__ROOT: + return root != null && !root.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ModelImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ModuloImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ModuloImpl.java new file mode 100644 index 0000000..3246235 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ModuloImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Modulo; + +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; + +/** + * + * An implementation of the model object 'Modulo'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ModuloImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ModuloImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ModuloImpl extends ExpressionImpl implements Modulo +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected ModuloImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getModulo(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.MODULO__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.MODULO__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.MODULO__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.MODULO__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.MODULO__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.MODULO__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.MODULO__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.MODULO__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.MODULO__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.MODULO__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.MODULO__LEFT: + return getLeft(); + case FiacrePackage.MODULO__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.MODULO__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.MODULO__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.MODULO__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.MODULO__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.MODULO__LEFT: + return left != null; + case FiacrePackage.MODULO__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ModuloImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/MortalPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/MortalPatternImpl.java new file mode 100644 index 0000000..f0bb202 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/MortalPatternImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.MortalPattern; +import fr.irit.fiacre.xtext.fiacre.Observable; + +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; + +/** + * + * An implementation of the model object 'Mortal Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.MortalPatternImpl#getSubject Subject}
    • + *
    + * + * @generated + */ +public class MortalPatternImpl extends PatternPropertyImpl implements MortalPattern +{ + /** + * The cached value of the '{@link #getSubject() Subject}' containment reference. + * + * + * @see #getSubject() + * @generated + * @ordered + */ + protected Observable subject; + + /** + * + * + * @generated + */ + protected MortalPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getMortalPattern(); + } + + /** + * + * + * @generated + */ + public Observable getSubject() + { + return subject; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSubject(Observable newSubject, NotificationChain msgs) + { + Observable oldSubject = subject; + subject = newSubject; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.MORTAL_PATTERN__SUBJECT, oldSubject, newSubject); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSubject(Observable newSubject) + { + if (newSubject != subject) + { + NotificationChain msgs = null; + if (subject != null) + msgs = ((InternalEObject)subject).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.MORTAL_PATTERN__SUBJECT, null, msgs); + if (newSubject != null) + msgs = ((InternalEObject)newSubject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.MORTAL_PATTERN__SUBJECT, null, msgs); + msgs = basicSetSubject(newSubject, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.MORTAL_PATTERN__SUBJECT, newSubject, newSubject)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.MORTAL_PATTERN__SUBJECT: + return basicSetSubject(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.MORTAL_PATTERN__SUBJECT: + return getSubject(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.MORTAL_PATTERN__SUBJECT: + setSubject((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.MORTAL_PATTERN__SUBJECT: + setSubject((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.MORTAL_PATTERN__SUBJECT: + return subject != null; + } + return super.eIsSet(featureID); + } + +} //MortalPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/MultiplicationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/MultiplicationImpl.java new file mode 100644 index 0000000..198e6e9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/MultiplicationImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Multiplication; + +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; + +/** + * + * An implementation of the model object 'Multiplication'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.MultiplicationImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.MultiplicationImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class MultiplicationImpl extends ExpressionImpl implements Multiplication +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected MultiplicationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getMultiplication(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.MULTIPLICATION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.MULTIPLICATION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.MULTIPLICATION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.MULTIPLICATION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.MULTIPLICATION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.MULTIPLICATION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.MULTIPLICATION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.MULTIPLICATION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.MULTIPLICATION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.MULTIPLICATION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.MULTIPLICATION__LEFT: + return getLeft(); + case FiacrePackage.MULTIPLICATION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.MULTIPLICATION__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.MULTIPLICATION__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.MULTIPLICATION__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.MULTIPLICATION__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.MULTIPLICATION__LEFT: + return left != null; + case FiacrePackage.MULTIPLICATION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //MultiplicationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NamedElementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NamedElementImpl.java new file mode 100644 index 0000000..1e19919 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NamedElementImpl.java @@ -0,0 +1,188 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NamedElement; + +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; + +/** + * + * An implementation of the model object 'Named Element'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.NamedElementImpl#getName Name}
    • + *
    + * + * @generated + */ +public class NamedElementImpl extends MinimalEObjectImpl.Container 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 FiacrePackage.eINSTANCE.getNamedElement(); + } + + /** + * + * + * @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, FiacrePackage.NAMED_ELEMENT__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.NAMED_ELEMENT__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.NAMED_ELEMENT__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.NAMED_ELEMENT__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.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/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NamedItemImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NamedItemImpl.java new file mode 100644 index 0000000..e6fef53 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NamedItemImpl.java @@ -0,0 +1,183 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NamedItem; +import fr.irit.fiacre.xtext.fiacre.PathDeclarationUse; + +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; + +/** + * + * An implementation of the model object 'Named Item'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.NamedItemImpl#getDeclaration Declaration}
    • + *
    + * + * @generated + */ +public class NamedItemImpl extends PathItemImpl implements NamedItem +{ + /** + * The cached value of the '{@link #getDeclaration() Declaration}' reference. + * + * + * @see #getDeclaration() + * @generated + * @ordered + */ + protected PathDeclarationUse declaration; + + /** + * + * + * @generated + */ + protected NamedItemImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getNamedItem(); + } + + /** + * + * + * @generated + */ + public PathDeclarationUse getDeclaration() + { + if (declaration != null && declaration.eIsProxy()) + { + InternalEObject oldDeclaration = (InternalEObject)declaration; + declaration = (PathDeclarationUse)eResolveProxy(oldDeclaration); + if (declaration != oldDeclaration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.NAMED_ITEM__DECLARATION, oldDeclaration, declaration)); + } + } + return declaration; + } + + /** + * + * + * @generated + */ + public PathDeclarationUse basicGetDeclaration() + { + return declaration; + } + + /** + * + * + * @generated + */ + public void setDeclaration(PathDeclarationUse newDeclaration) + { + PathDeclarationUse oldDeclaration = declaration; + declaration = newDeclaration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.NAMED_ITEM__DECLARATION, oldDeclaration, declaration)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.NAMED_ITEM__DECLARATION: + if (resolve) return getDeclaration(); + return basicGetDeclaration(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.NAMED_ITEM__DECLARATION: + setDeclaration((PathDeclarationUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.NAMED_ITEM__DECLARATION: + setDeclaration((PathDeclarationUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.NAMED_ITEM__DECLARATION: + return declaration != null; + } + return super.eIsSet(featureID); + } + +} //NamedItemImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalItemImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalItemImpl.java new file mode 100644 index 0000000..a132b0f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalItemImpl.java @@ -0,0 +1,187 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NaturalItem; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Natural Item'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.NaturalItemImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class NaturalItemImpl extends PathItemImpl implements NaturalItem +{ + /** + * 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 NaturalItemImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getNaturalItem(); + } + + /** + * + * + * @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, FiacrePackage.NATURAL_ITEM__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.NATURAL_ITEM__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.NATURAL_ITEM__VALUE: + setValue((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.NATURAL_ITEM__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.NATURAL_ITEM__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @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(); + } + +} //NaturalItemImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalLiteralImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalLiteralImpl.java new file mode 100644 index 0000000..389c22b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalLiteralImpl.java @@ -0,0 +1,187 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NaturalLiteral; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Natural Literal'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.NaturalLiteralImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class NaturalLiteralImpl extends LiteralExpressionImpl implements NaturalLiteral +{ + /** + * 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 NaturalLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getNaturalLiteral(); + } + + /** + * + * + * @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, FiacrePackage.NATURAL_LITERAL__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.NATURAL_LITERAL__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.NATURAL_LITERAL__VALUE: + setValue((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.NATURAL_LITERAL__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.NATURAL_LITERAL__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @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(); + } + +} //NaturalLiteralImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalLowerBoundImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalLowerBoundImpl.java new file mode 100644 index 0000000..ac3afdf --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalLowerBoundImpl.java @@ -0,0 +1,187 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NaturalLowerBound; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Natural Lower Bound'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.NaturalLowerBoundImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class NaturalLowerBoundImpl extends LowerBoundImpl implements NaturalLowerBound +{ + /** + * 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 NaturalLowerBoundImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getNaturalLowerBound(); + } + + /** + * + * + * @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, FiacrePackage.NATURAL_LOWER_BOUND__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.NATURAL_LOWER_BOUND__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.NATURAL_LOWER_BOUND__VALUE: + setValue((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.NATURAL_LOWER_BOUND__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.NATURAL_LOWER_BOUND__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @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(); + } + +} //NaturalLowerBoundImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalTypeImpl.java new file mode 100644 index 0000000..e4bb8ab --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalTypeImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NaturalType; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Natural Type'. + * + * + * @generated + */ +public class NaturalTypeImpl extends BasicTypeImpl implements NaturalType +{ + /** + * + * + * @generated + */ + protected NaturalTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getNaturalType(); + } + +} //NaturalTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalUpperBoundImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalUpperBoundImpl.java new file mode 100644 index 0000000..bf5e73e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NaturalUpperBoundImpl.java @@ -0,0 +1,299 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NaturalUpperBound; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Natural Upper Bound'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.NaturalUpperBoundImpl#getValue Value}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.NaturalUpperBoundImpl#isLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.NaturalUpperBoundImpl#isRight Right}
    • + *
    + * + * @generated + */ +public class NaturalUpperBoundImpl extends UpperBoundImpl implements NaturalUpperBound +{ + /** + * 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; + + /** + * The default value of the '{@link #isLeft() Left}' attribute. + * + * + * @see #isLeft() + * @generated + * @ordered + */ + protected static final boolean LEFT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isLeft() Left}' attribute. + * + * + * @see #isLeft() + * @generated + * @ordered + */ + protected boolean left = LEFT_EDEFAULT; + + /** + * The default value of the '{@link #isRight() Right}' attribute. + * + * + * @see #isRight() + * @generated + * @ordered + */ + protected static final boolean RIGHT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isRight() Right}' attribute. + * + * + * @see #isRight() + * @generated + * @ordered + */ + protected boolean right = RIGHT_EDEFAULT; + + /** + * + * + * @generated + */ + protected NaturalUpperBoundImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getNaturalUpperBound(); + } + + /** + * + * + * @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, FiacrePackage.NATURAL_UPPER_BOUND__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + public boolean isLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public void setLeft(boolean newLeft) + { + boolean oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.NATURAL_UPPER_BOUND__LEFT, oldLeft, left)); + } + + /** + * + * + * @generated + */ + public boolean isRight() + { + return right; + } + + /** + * + * + * @generated + */ + public void setRight(boolean newRight) + { + boolean oldRight = right; + right = newRight; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.NATURAL_UPPER_BOUND__RIGHT, oldRight, right)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.NATURAL_UPPER_BOUND__VALUE: + return getValue(); + case FiacrePackage.NATURAL_UPPER_BOUND__LEFT: + return isLeft(); + case FiacrePackage.NATURAL_UPPER_BOUND__RIGHT: + return isRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.NATURAL_UPPER_BOUND__VALUE: + setValue((Integer)newValue); + return; + case FiacrePackage.NATURAL_UPPER_BOUND__LEFT: + setLeft((Boolean)newValue); + return; + case FiacrePackage.NATURAL_UPPER_BOUND__RIGHT: + setRight((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.NATURAL_UPPER_BOUND__VALUE: + setValue(VALUE_EDEFAULT); + return; + case FiacrePackage.NATURAL_UPPER_BOUND__LEFT: + setLeft(LEFT_EDEFAULT); + return; + case FiacrePackage.NATURAL_UPPER_BOUND__RIGHT: + setRight(RIGHT_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.NATURAL_UPPER_BOUND__VALUE: + return value != VALUE_EDEFAULT; + case FiacrePackage.NATURAL_UPPER_BOUND__LEFT: + return left != LEFT_EDEFAULT; + case FiacrePackage.NATURAL_UPPER_BOUND__RIGHT: + return right != RIGHT_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(", left: "); + result.append(left); + result.append(", right: "); + result.append(right); + result.append(')'); + return result.toString(); + } + +} //NaturalUpperBoundImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NullStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NullStatementImpl.java new file mode 100644 index 0000000..e522ee2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/NullStatementImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NullStatement; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Null Statement'. + * + * + * @generated + */ +public class NullStatementImpl extends StatementImpl implements NullStatement +{ + /** + * + * + * @generated + */ + protected NullStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getNullStatement(); + } + +} //NullStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableConjunctionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableConjunctionImpl.java new file mode 100644 index 0000000..466c98e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableConjunctionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Observable; +import fr.irit.fiacre.xtext.fiacre.ObservableConjunction; + +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; + +/** + * + * An implementation of the model object 'Observable Conjunction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ObservableConjunctionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ObservableConjunctionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ObservableConjunctionImpl extends ObservableImpl implements ObservableConjunction +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Observable left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Observable right; + + /** + * + * + * @generated + */ + protected ObservableConjunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getObservableConjunction(); + } + + /** + * + * + * @generated + */ + public Observable getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Observable newLeft, NotificationChain msgs) + { + Observable oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_CONJUNCTION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Observable newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_CONJUNCTION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_CONJUNCTION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_CONJUNCTION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Observable getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Observable newRight, NotificationChain msgs) + { + Observable oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_CONJUNCTION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Observable newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_CONJUNCTION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_CONJUNCTION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_CONJUNCTION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_CONJUNCTION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.OBSERVABLE_CONJUNCTION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_CONJUNCTION__LEFT: + return getLeft(); + case FiacrePackage.OBSERVABLE_CONJUNCTION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_CONJUNCTION__LEFT: + setLeft((Observable)newValue); + return; + case FiacrePackage.OBSERVABLE_CONJUNCTION__RIGHT: + setRight((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_CONJUNCTION__LEFT: + setLeft((Observable)null); + return; + case FiacrePackage.OBSERVABLE_CONJUNCTION__RIGHT: + setRight((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_CONJUNCTION__LEFT: + return left != null; + case FiacrePackage.OBSERVABLE_CONJUNCTION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ObservableConjunctionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableDisjunctionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableDisjunctionImpl.java new file mode 100644 index 0000000..ec7c982 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableDisjunctionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Observable; +import fr.irit.fiacre.xtext.fiacre.ObservableDisjunction; + +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; + +/** + * + * An implementation of the model object 'Observable Disjunction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ObservableDisjunctionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ObservableDisjunctionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ObservableDisjunctionImpl extends ObservableImpl implements ObservableDisjunction +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Observable left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Observable right; + + /** + * + * + * @generated + */ + protected ObservableDisjunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getObservableDisjunction(); + } + + /** + * + * + * @generated + */ + public Observable getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Observable newLeft, NotificationChain msgs) + { + Observable oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_DISJUNCTION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Observable newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_DISJUNCTION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_DISJUNCTION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_DISJUNCTION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Observable getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Observable newRight, NotificationChain msgs) + { + Observable oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_DISJUNCTION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Observable newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_DISJUNCTION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_DISJUNCTION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_DISJUNCTION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_DISJUNCTION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.OBSERVABLE_DISJUNCTION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_DISJUNCTION__LEFT: + return getLeft(); + case FiacrePackage.OBSERVABLE_DISJUNCTION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_DISJUNCTION__LEFT: + setLeft((Observable)newValue); + return; + case FiacrePackage.OBSERVABLE_DISJUNCTION__RIGHT: + setRight((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_DISJUNCTION__LEFT: + setLeft((Observable)null); + return; + case FiacrePackage.OBSERVABLE_DISJUNCTION__RIGHT: + setRight((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_DISJUNCTION__LEFT: + return left != null; + case FiacrePackage.OBSERVABLE_DISJUNCTION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ObservableDisjunctionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableEventImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableEventImpl.java new file mode 100644 index 0000000..b212e86 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableEventImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ObservableEvent; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Observable Event'. + * + * + * @generated + */ +public class ObservableEventImpl extends LTLPropertyImpl implements ObservableEvent +{ + /** + * + * + * @generated + */ + protected ObservableEventImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getObservableEvent(); + } + +} //ObservableEventImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableImpl.java new file mode 100644 index 0000000..9dfd765 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Observable; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Observable'. + * + * + * @generated + */ +public class ObservableImpl extends SequencePatternImpl implements Observable +{ + /** + * + * + * @generated + */ + protected ObservableImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getObservable(); + } + +} //ObservableImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableImplicationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableImplicationImpl.java new file mode 100644 index 0000000..e69aff9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableImplicationImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Observable; +import fr.irit.fiacre.xtext.fiacre.ObservableImplication; + +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; + +/** + * + * An implementation of the model object 'Observable Implication'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ObservableImplicationImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ObservableImplicationImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ObservableImplicationImpl extends ObservableImpl implements ObservableImplication +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Observable left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Observable right; + + /** + * + * + * @generated + */ + protected ObservableImplicationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getObservableImplication(); + } + + /** + * + * + * @generated + */ + public Observable getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Observable newLeft, NotificationChain msgs) + { + Observable oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_IMPLICATION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Observable newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_IMPLICATION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_IMPLICATION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_IMPLICATION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Observable getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Observable newRight, NotificationChain msgs) + { + Observable oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_IMPLICATION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Observable newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_IMPLICATION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_IMPLICATION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_IMPLICATION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_IMPLICATION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.OBSERVABLE_IMPLICATION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_IMPLICATION__LEFT: + return getLeft(); + case FiacrePackage.OBSERVABLE_IMPLICATION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_IMPLICATION__LEFT: + setLeft((Observable)newValue); + return; + case FiacrePackage.OBSERVABLE_IMPLICATION__RIGHT: + setRight((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_IMPLICATION__LEFT: + setLeft((Observable)null); + return; + case FiacrePackage.OBSERVABLE_IMPLICATION__RIGHT: + setRight((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_IMPLICATION__LEFT: + return left != null; + case FiacrePackage.OBSERVABLE_IMPLICATION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //ObservableImplicationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableNegationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableNegationImpl.java new file mode 100644 index 0000000..bfc2ad4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ObservableNegationImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Observable; +import fr.irit.fiacre.xtext.fiacre.ObservableNegation; + +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; + +/** + * + * An implementation of the model object 'Observable Negation'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ObservableNegationImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class ObservableNegationImpl extends ObservableImpl implements ObservableNegation +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Observable child; + + /** + * + * + * @generated + */ + protected ObservableNegationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getObservableNegation(); + } + + /** + * + * + * @generated + */ + public Observable getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Observable newChild, NotificationChain msgs) + { + Observable oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_NEGATION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Observable newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_NEGATION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.OBSERVABLE_NEGATION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.OBSERVABLE_NEGATION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_NEGATION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_NEGATION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_NEGATION__CHILD: + setChild((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_NEGATION__CHILD: + setChild((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.OBSERVABLE_NEGATION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //ObservableNegationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/OnStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/OnStatementImpl.java new file mode 100644 index 0000000..5fd3431 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/OnStatementImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.OnStatement; + +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; + +/** + * + * An implementation of the model object 'On Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.OnStatementImpl#getCondition Condition}
    • + *
    + * + * @generated + */ +public class OnStatementImpl extends StatementImpl implements OnStatement +{ + /** + * The cached value of the '{@link #getCondition() Condition}' containment reference. + * + * + * @see #getCondition() + * @generated + * @ordered + */ + protected Expression condition; + + /** + * + * + * @generated + */ + protected OnStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getOnStatement(); + } + + /** + * + * + * @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, FiacrePackage.ON_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 - FiacrePackage.ON_STATEMENT__CONDITION, null, msgs); + if (newCondition != null) + msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.ON_STATEMENT__CONDITION, null, msgs); + msgs = basicSetCondition(newCondition, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ON_STATEMENT__CONDITION, newCondition, newCondition)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.ON_STATEMENT__CONDITION: + return basicSetCondition(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ON_STATEMENT__CONDITION: + return getCondition(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ON_STATEMENT__CONDITION: + setCondition((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ON_STATEMENT__CONDITION: + setCondition((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ON_STATEMENT__CONDITION: + return condition != null; + } + return super.eIsSet(featureID); + } + +} //OnStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParameterDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParameterDeclarationImpl.java new file mode 100644 index 0000000..6ef700a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParameterDeclarationImpl.java @@ -0,0 +1,331 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ParameterDeclaration; + +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; + +/** + * + * An implementation of the model object 'Parameter Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ParameterDeclarationImpl#isReference Reference}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ParameterDeclarationImpl#isArray Array}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ParameterDeclarationImpl#getSize Size}
    • + *
    + * + * @generated + */ +public class ParameterDeclarationImpl extends NamedElementImpl implements ParameterDeclaration +{ + /** + * The default value of the '{@link #isReference() Reference}' attribute. + * + * + * @see #isReference() + * @generated + * @ordered + */ + protected static final boolean REFERENCE_EDEFAULT = false; + + /** + * The cached value of the '{@link #isReference() Reference}' attribute. + * + * + * @see #isReference() + * @generated + * @ordered + */ + protected boolean reference = REFERENCE_EDEFAULT; + + /** + * The default value of the '{@link #isArray() Array}' attribute. + * + * + * @see #isArray() + * @generated + * @ordered + */ + protected static final boolean ARRAY_EDEFAULT = false; + + /** + * The cached value of the '{@link #isArray() Array}' attribute. + * + * + * @see #isArray() + * @generated + * @ordered + */ + protected boolean array = ARRAY_EDEFAULT; + + /** + * The cached value of the '{@link #getSize() Size}' containment reference. + * + * + * @see #getSize() + * @generated + * @ordered + */ + protected Expression size; + + /** + * + * + * @generated + */ + protected ParameterDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getParameterDeclaration(); + } + + /** + * + * + * @generated + */ + public boolean isReference() + { + return reference; + } + + /** + * + * + * @generated + */ + public void setReference(boolean newReference) + { + boolean oldReference = reference; + reference = newReference; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PARAMETER_DECLARATION__REFERENCE, oldReference, reference)); + } + + /** + * + * + * @generated + */ + public boolean isArray() + { + return array; + } + + /** + * + * + * @generated + */ + public void setArray(boolean newArray) + { + boolean oldArray = array; + array = newArray; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PARAMETER_DECLARATION__ARRAY, oldArray, array)); + } + + /** + * + * + * @generated + */ + public Expression getSize() + { + return size; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSize(Expression newSize, NotificationChain msgs) + { + Expression oldSize = size; + size = newSize; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PARAMETER_DECLARATION__SIZE, oldSize, newSize); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSize(Expression newSize) + { + if (newSize != size) + { + NotificationChain msgs = null; + if (size != null) + msgs = ((InternalEObject)size).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PARAMETER_DECLARATION__SIZE, null, msgs); + if (newSize != null) + msgs = ((InternalEObject)newSize).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PARAMETER_DECLARATION__SIZE, null, msgs); + msgs = basicSetSize(newSize, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PARAMETER_DECLARATION__SIZE, newSize, newSize)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PARAMETER_DECLARATION__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 FiacrePackage.PARAMETER_DECLARATION__REFERENCE: + return isReference(); + case FiacrePackage.PARAMETER_DECLARATION__ARRAY: + return isArray(); + case FiacrePackage.PARAMETER_DECLARATION__SIZE: + return getSize(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PARAMETER_DECLARATION__REFERENCE: + setReference((Boolean)newValue); + return; + case FiacrePackage.PARAMETER_DECLARATION__ARRAY: + setArray((Boolean)newValue); + return; + case FiacrePackage.PARAMETER_DECLARATION__SIZE: + setSize((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PARAMETER_DECLARATION__REFERENCE: + setReference(REFERENCE_EDEFAULT); + return; + case FiacrePackage.PARAMETER_DECLARATION__ARRAY: + setArray(ARRAY_EDEFAULT); + return; + case FiacrePackage.PARAMETER_DECLARATION__SIZE: + setSize((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PARAMETER_DECLARATION__REFERENCE: + return reference != REFERENCE_EDEFAULT; + case FiacrePackage.PARAMETER_DECLARATION__ARRAY: + return array != ARRAY_EDEFAULT; + case FiacrePackage.PARAMETER_DECLARATION__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(" (reference: "); + result.append(reference); + result.append(", array: "); + result.append(array); + result.append(')'); + return result.toString(); + } + +} //ParameterDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParameterizedDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParameterizedDeclarationImpl.java new file mode 100644 index 0000000..32ec2d4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParameterizedDeclarationImpl.java @@ -0,0 +1,215 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration; +import fr.irit.fiacre.xtext.fiacre.ParametersDeclaration; +import fr.irit.fiacre.xtext.fiacre.VariablesDeclaration; + +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; + +/** + * + * An implementation of the model object 'Parameterized Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ParameterizedDeclarationImpl#getParameters Parameters}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ParameterizedDeclarationImpl#getVariables Variables}
    • + *
    + * + * @generated + */ +public class ParameterizedDeclarationImpl extends DeclarationImpl implements ParameterizedDeclaration +{ + /** + * The cached value of the '{@link #getParameters() Parameters}' containment reference list. + * + * + * @see #getParameters() + * @generated + * @ordered + */ + protected EList parameters; + + /** + * The cached value of the '{@link #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * + * + * @generated + */ + protected ParameterizedDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getParameterizedDeclaration(); + } + + /** + * + * + * @generated + */ + public EList getParameters() + { + if (parameters == null) + { + parameters = new EObjectContainmentEList(ParametersDeclaration.class, this, FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS); + } + return parameters; + } + + /** + * + * + * @generated + */ + public EList getVariables() + { + if (variables == null) + { + variables = new EObjectContainmentEList(VariablesDeclaration.class, this, FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES); + } + return variables; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS: + return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); + case FiacrePackage.PARAMETERIZED_DECLARATION__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 FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS: + return getParameters(); + case FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES: + return getVariables(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS: + getParameters().clear(); + getParameters().addAll((Collection)newValue); + return; + case FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES: + getVariables().clear(); + getVariables().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS: + getParameters().clear(); + return; + case FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES: + getVariables().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS: + return parameters != null && !parameters.isEmpty(); + case FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES: + return variables != null && !variables.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ParameterizedDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParametersDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParametersDeclarationImpl.java new file mode 100644 index 0000000..ccc4b90 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ParametersDeclarationImpl.java @@ -0,0 +1,379 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ParameterDeclaration; +import fr.irit.fiacre.xtext.fiacre.ParametersDeclaration; +import fr.irit.fiacre.xtext.fiacre.Type; + +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; + +/** + * + * An implementation of the model object 'Parameters Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ParametersDeclarationImpl#getParameters Parameters}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ParametersDeclarationImpl#isRead Read}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ParametersDeclarationImpl#isWrite Write}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ParametersDeclarationImpl#getType Type}
    • + *
    + * + * @generated + */ +public class ParametersDeclarationImpl extends MinimalEObjectImpl.Container implements ParametersDeclaration +{ + /** + * The cached value of the '{@link #getParameters() Parameters}' containment reference list. + * + * + * @see #getParameters() + * @generated + * @ordered + */ + protected EList parameters; + + /** + * The default value of the '{@link #isRead() Read}' attribute. + * + * + * @see #isRead() + * @generated + * @ordered + */ + protected static final boolean READ_EDEFAULT = false; + + /** + * The cached value of the '{@link #isRead() Read}' attribute. + * + * + * @see #isRead() + * @generated + * @ordered + */ + protected boolean read = READ_EDEFAULT; + + /** + * The default value of the '{@link #isWrite() Write}' attribute. + * + * + * @see #isWrite() + * @generated + * @ordered + */ + protected static final boolean WRITE_EDEFAULT = false; + + /** + * The cached value of the '{@link #isWrite() Write}' attribute. + * + * + * @see #isWrite() + * @generated + * @ordered + */ + protected boolean write = WRITE_EDEFAULT; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected Type type; + + /** + * + * + * @generated + */ + protected ParametersDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getParametersDeclaration(); + } + + /** + * + * + * @generated + */ + public EList getParameters() + { + if (parameters == null) + { + parameters = new EObjectContainmentEList(ParameterDeclaration.class, this, FiacrePackage.PARAMETERS_DECLARATION__PARAMETERS); + } + return parameters; + } + + /** + * + * + * @generated + */ + public boolean isRead() + { + return read; + } + + /** + * + * + * @generated + */ + public void setRead(boolean newRead) + { + boolean oldRead = read; + read = newRead; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PARAMETERS_DECLARATION__READ, oldRead, read)); + } + + /** + * + * + * @generated + */ + public boolean isWrite() + { + return write; + } + + /** + * + * + * @generated + */ + public void setWrite(boolean newWrite) + { + boolean oldWrite = write; + write = newWrite; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PARAMETERS_DECLARATION__WRITE, oldWrite, write)); + } + + /** + * + * + * @generated + */ + public Type getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(Type newType, NotificationChain msgs) + { + Type oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PARAMETERS_DECLARATION__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(Type newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PARAMETERS_DECLARATION__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PARAMETERS_DECLARATION__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PARAMETERS_DECLARATION__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PARAMETERS_DECLARATION__PARAMETERS: + return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); + case FiacrePackage.PARAMETERS_DECLARATION__TYPE: + return basicSetType(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PARAMETERS_DECLARATION__PARAMETERS: + return getParameters(); + case FiacrePackage.PARAMETERS_DECLARATION__READ: + return isRead(); + case FiacrePackage.PARAMETERS_DECLARATION__WRITE: + return isWrite(); + case FiacrePackage.PARAMETERS_DECLARATION__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PARAMETERS_DECLARATION__PARAMETERS: + getParameters().clear(); + getParameters().addAll((Collection)newValue); + return; + case FiacrePackage.PARAMETERS_DECLARATION__READ: + setRead((Boolean)newValue); + return; + case FiacrePackage.PARAMETERS_DECLARATION__WRITE: + setWrite((Boolean)newValue); + return; + case FiacrePackage.PARAMETERS_DECLARATION__TYPE: + setType((Type)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PARAMETERS_DECLARATION__PARAMETERS: + getParameters().clear(); + return; + case FiacrePackage.PARAMETERS_DECLARATION__READ: + setRead(READ_EDEFAULT); + return; + case FiacrePackage.PARAMETERS_DECLARATION__WRITE: + setWrite(WRITE_EDEFAULT); + return; + case FiacrePackage.PARAMETERS_DECLARATION__TYPE: + setType((Type)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PARAMETERS_DECLARATION__PARAMETERS: + return parameters != null && !parameters.isEmpty(); + case FiacrePackage.PARAMETERS_DECLARATION__READ: + return read != READ_EDEFAULT; + case FiacrePackage.PARAMETERS_DECLARATION__WRITE: + return write != WRITE_EDEFAULT; + case FiacrePackage.PARAMETERS_DECLARATION__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (read: "); + result.append(read); + result.append(", write: "); + result.append(write); + result.append(')'); + return result.toString(); + } + +} //ParametersDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathDeclarationUseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathDeclarationUseImpl.java new file mode 100644 index 0000000..aca6a4d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathDeclarationUseImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PathDeclarationUse; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Path Declaration Use'. + * + * + * @generated + */ +public class PathDeclarationUseImpl extends MinimalEObjectImpl.Container implements PathDeclarationUse +{ + /** + * + * + * @generated + */ + protected PathDeclarationUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPathDeclarationUse(); + } + +} //PathDeclarationUseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathEventImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathEventImpl.java new file mode 100644 index 0000000..90ebae9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathEventImpl.java @@ -0,0 +1,276 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Path; +import fr.irit.fiacre.xtext.fiacre.PathEvent; +import fr.irit.fiacre.xtext.fiacre.Subject; + +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; + +/** + * + * An implementation of the model object 'Path Event'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PathEventImpl#getPath Path}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PathEventImpl#getItem Item}
    • + *
    + * + * @generated + */ +public class PathEventImpl extends ObservableEventImpl implements PathEvent +{ + /** + * The cached value of the '{@link #getPath() Path}' containment reference. + * + * + * @see #getPath() + * @generated + * @ordered + */ + protected Path path; + + /** + * The cached value of the '{@link #getItem() Item}' containment reference. + * + * + * @see #getItem() + * @generated + * @ordered + */ + protected Subject item; + + /** + * + * + * @generated + */ + protected PathEventImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPathEvent(); + } + + /** + * + * + * @generated + */ + public Path getPath() + { + return path; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetPath(Path newPath, NotificationChain msgs) + { + Path oldPath = path; + path = newPath; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PATH_EVENT__PATH, oldPath, newPath); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setPath(Path newPath) + { + if (newPath != path) + { + NotificationChain msgs = null; + if (path != null) + msgs = ((InternalEObject)path).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PATH_EVENT__PATH, null, msgs); + if (newPath != null) + msgs = ((InternalEObject)newPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PATH_EVENT__PATH, null, msgs); + msgs = basicSetPath(newPath, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PATH_EVENT__PATH, newPath, newPath)); + } + + /** + * + * + * @generated + */ + public Subject getItem() + { + return item; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetItem(Subject newItem, NotificationChain msgs) + { + Subject oldItem = item; + item = newItem; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PATH_EVENT__ITEM, oldItem, newItem); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setItem(Subject newItem) + { + if (newItem != item) + { + NotificationChain msgs = null; + if (item != null) + msgs = ((InternalEObject)item).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PATH_EVENT__ITEM, null, msgs); + if (newItem != null) + msgs = ((InternalEObject)newItem).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PATH_EVENT__ITEM, null, msgs); + msgs = basicSetItem(newItem, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PATH_EVENT__ITEM, newItem, newItem)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PATH_EVENT__PATH: + return basicSetPath(null, msgs); + case FiacrePackage.PATH_EVENT__ITEM: + return basicSetItem(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PATH_EVENT__PATH: + return getPath(); + case FiacrePackage.PATH_EVENT__ITEM: + return getItem(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PATH_EVENT__PATH: + setPath((Path)newValue); + return; + case FiacrePackage.PATH_EVENT__ITEM: + setItem((Subject)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PATH_EVENT__PATH: + setPath((Path)null); + return; + case FiacrePackage.PATH_EVENT__ITEM: + setItem((Subject)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PATH_EVENT__PATH: + return path != null; + case FiacrePackage.PATH_EVENT__ITEM: + return item != null; + } + return super.eIsSet(featureID); + } + +} //PathEventImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathImpl.java new file mode 100644 index 0000000..32dfd6e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathImpl.java @@ -0,0 +1,178 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Path; +import fr.irit.fiacre.xtext.fiacre.PathItem; + +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; + +/** + * + * An implementation of the model object 'Path'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PathImpl#getItems Items}
    • + *
    + * + * @generated + */ +public class PathImpl extends MinimalEObjectImpl.Container implements Path +{ + /** + * The cached value of the '{@link #getItems() Items}' containment reference list. + * + * + * @see #getItems() + * @generated + * @ordered + */ + protected EList items; + + /** + * + * + * @generated + */ + protected PathImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPath(); + } + + /** + * + * + * @generated + */ + public EList getItems() + { + if (items == null) + { + items = new EObjectContainmentEList(PathItem.class, this, FiacrePackage.PATH__ITEMS); + } + return items; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PATH__ITEMS: + return ((InternalEList)getItems()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PATH__ITEMS: + return getItems(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PATH__ITEMS: + getItems().clear(); + getItems().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PATH__ITEMS: + getItems().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PATH__ITEMS: + return items != null && !items.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //PathImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathItemImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathItemImpl.java new file mode 100644 index 0000000..30096ce --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PathItemImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PathItem; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Path Item'. + * + * + * @generated + */ +public class PathItemImpl extends MinimalEObjectImpl.Container implements PathItem +{ + /** + * + * + * @generated + */ + protected PathItemImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPathItem(); + } + +} //PathItemImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternDeclarationUseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternDeclarationUseImpl.java new file mode 100644 index 0000000..95684c2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternDeclarationUseImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Pattern Declaration Use'. + * + * + * @generated + */ +public class PatternDeclarationUseImpl extends MinimalEObjectImpl.Container implements PatternDeclarationUse +{ + /** + * + * + * @generated + */ + protected PatternDeclarationUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPatternDeclarationUse(); + } + +} //PatternDeclarationUseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternImpl.java new file mode 100644 index 0000000..16b58fd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Pattern; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Pattern'. + * + * + * @generated + */ +public class PatternImpl extends PatternStatementImpl implements Pattern +{ + /** + * + * + * @generated + */ + protected PatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPattern(); + } + +} //PatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternPropertyImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternPropertyImpl.java new file mode 100644 index 0000000..c9ca86a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternPropertyImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PatternProperty; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Pattern Property'. + * + * + * @generated + */ +public class PatternPropertyImpl extends PropertyImpl implements PatternProperty +{ + /** + * + * + * @generated + */ + protected PatternPropertyImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPatternProperty(); + } + +} //PatternPropertyImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternStatementImpl.java new file mode 100644 index 0000000..e31eae1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PatternStatementImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PatternStatement; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Pattern Statement'. + * + * + * @generated + */ +public class PatternStatementImpl extends StatementImpl implements PatternStatement +{ + /** + * + * + * @generated + */ + protected PatternStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPatternStatement(); + } + +} //PatternStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortDeclarationImpl.java new file mode 100644 index 0000000..6059cb1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortDeclarationImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PortDeclaration; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Port Declaration'. + * + * + * @generated + */ +public class PortDeclarationImpl extends NamedElementImpl implements PortDeclaration +{ + /** + * + * + * @generated + */ + protected PortDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPortDeclaration(); + } + +} //PortDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortSetImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortSetImpl.java new file mode 100644 index 0000000..39e0a34 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortSetImpl.java @@ -0,0 +1,251 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PortSet; + +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; + +/** + * + * An implementation of the model object 'Port Set'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PortSetImpl#isAllPorts All Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PortSetImpl#getPorts Ports}
    • + *
    + * + * @generated + */ +public class PortSetImpl extends MinimalEObjectImpl.Container implements PortSet +{ + /** + * The default value of the '{@link #isAllPorts() All Ports}' attribute. + * + * + * @see #isAllPorts() + * @generated + * @ordered + */ + protected static final boolean ALL_PORTS_EDEFAULT = false; + + /** + * The cached value of the '{@link #isAllPorts() All Ports}' attribute. + * + * + * @see #isAllPorts() + * @generated + * @ordered + */ + protected boolean allPorts = ALL_PORTS_EDEFAULT; + + /** + * The cached value of the '{@link #getPorts() Ports}' containment reference list. + * + * + * @see #getPorts() + * @generated + * @ordered + */ + protected EList ports; + + /** + * + * + * @generated + */ + protected PortSetImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPortSet(); + } + + /** + * + * + * @generated + */ + public boolean isAllPorts() + { + return allPorts; + } + + /** + * + * + * @generated + */ + public void setAllPorts(boolean newAllPorts) + { + boolean oldAllPorts = allPorts; + allPorts = newAllPorts; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PORT_SET__ALL_PORTS, oldAllPorts, allPorts)); + } + + /** + * + * + * @generated + */ + public EList getPorts() + { + if (ports == null) + { + ports = new EObjectContainmentEList(Expression.class, this, FiacrePackage.PORT_SET__PORTS); + } + return ports; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PORT_SET__PORTS: + return ((InternalEList)getPorts()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PORT_SET__ALL_PORTS: + return isAllPorts(); + case FiacrePackage.PORT_SET__PORTS: + return getPorts(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PORT_SET__ALL_PORTS: + setAllPorts((Boolean)newValue); + return; + case FiacrePackage.PORT_SET__PORTS: + getPorts().clear(); + getPorts().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PORT_SET__ALL_PORTS: + setAllPorts(ALL_PORTS_EDEFAULT); + return; + case FiacrePackage.PORT_SET__PORTS: + getPorts().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PORT_SET__ALL_PORTS: + return allPorts != ALL_PORTS_EDEFAULT; + case FiacrePackage.PORT_SET__PORTS: + return ports != null && !ports.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (allPorts: "); + result.append(allPorts); + result.append(')'); + return result.toString(); + } + +} //PortSetImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortsDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortsDeclarationImpl.java new file mode 100644 index 0000000..da027ba --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PortsDeclarationImpl.java @@ -0,0 +1,252 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.ChannelType; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PortDeclaration; +import fr.irit.fiacre.xtext.fiacre.PortsDeclaration; + +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; + +/** + * + * An implementation of the model object 'Ports Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PortsDeclarationImpl#getPorts Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PortsDeclarationImpl#getType Type}
    • + *
    + * + * @generated + */ +public class PortsDeclarationImpl extends MinimalEObjectImpl.Container implements PortsDeclaration +{ + /** + * The cached value of the '{@link #getPorts() Ports}' containment reference list. + * + * + * @see #getPorts() + * @generated + * @ordered + */ + protected EList ports; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected ChannelType type; + + /** + * + * + * @generated + */ + protected PortsDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPortsDeclaration(); + } + + /** + * + * + * @generated + */ + public EList getPorts() + { + if (ports == null) + { + ports = new EObjectContainmentEList(PortDeclaration.class, this, FiacrePackage.PORTS_DECLARATION__PORTS); + } + return ports; + } + + /** + * + * + * @generated + */ + public ChannelType getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(ChannelType newType, NotificationChain msgs) + { + ChannelType oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PORTS_DECLARATION__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(ChannelType newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PORTS_DECLARATION__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PORTS_DECLARATION__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PORTS_DECLARATION__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PORTS_DECLARATION__PORTS: + return ((InternalEList)getPorts()).basicRemove(otherEnd, msgs); + case FiacrePackage.PORTS_DECLARATION__TYPE: + return basicSetType(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PORTS_DECLARATION__PORTS: + return getPorts(); + case FiacrePackage.PORTS_DECLARATION__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PORTS_DECLARATION__PORTS: + getPorts().clear(); + getPorts().addAll((Collection)newValue); + return; + case FiacrePackage.PORTS_DECLARATION__TYPE: + setType((ChannelType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PORTS_DECLARATION__PORTS: + getPorts().clear(); + return; + case FiacrePackage.PORTS_DECLARATION__TYPE: + setType((ChannelType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PORTS_DECLARATION__PORTS: + return ports != null && !ports.isEmpty(); + case FiacrePackage.PORTS_DECLARATION__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //PortsDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PrecedesPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PrecedesPatternImpl.java new file mode 100644 index 0000000..1c280eb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PrecedesPatternImpl.java @@ -0,0 +1,630 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Observable; +import fr.irit.fiacre.xtext.fiacre.PrecedesPattern; + +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; + +/** + * + * An implementation of the model object 'Precedes Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PrecedesPatternImpl#getSubject Subject}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PrecedesPatternImpl#getFollower Follower}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PrecedesPatternImpl#getBefore Before}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PrecedesPatternImpl#getAfter After}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PrecedesPatternImpl#getUntil Until}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PrecedesPatternImpl#getMin Min}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PrecedesPatternImpl#getMax Max}
    • + *
    + * + * @generated + */ +public class PrecedesPatternImpl extends SequencePatternImpl implements PrecedesPattern +{ + /** + * The cached value of the '{@link #getSubject() Subject}' containment reference. + * + * + * @see #getSubject() + * @generated + * @ordered + */ + protected Observable subject; + + /** + * The cached value of the '{@link #getFollower() Follower}' containment reference. + * + * + * @see #getFollower() + * @generated + * @ordered + */ + protected Observable follower; + + /** + * The cached value of the '{@link #getBefore() Before}' containment reference. + * + * + * @see #getBefore() + * @generated + * @ordered + */ + protected Observable before; + + /** + * The cached value of the '{@link #getAfter() After}' containment reference. + * + * + * @see #getAfter() + * @generated + * @ordered + */ + protected Observable after; + + /** + * The cached value of the '{@link #getUntil() Until}' containment reference. + * + * + * @see #getUntil() + * @generated + * @ordered + */ + protected Observable until; + + /** + * The cached value of the '{@link #getMin() Min}' containment reference. + * + * + * @see #getMin() + * @generated + * @ordered + */ + protected Observable min; + + /** + * The cached value of the '{@link #getMax() Max}' containment reference. + * + * + * @see #getMax() + * @generated + * @ordered + */ + protected Observable max; + + /** + * + * + * @generated + */ + protected PrecedesPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPrecedesPattern(); + } + + /** + * + * + * @generated + */ + public Observable getSubject() + { + return subject; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSubject(Observable newSubject, NotificationChain msgs) + { + Observable oldSubject = subject; + subject = newSubject; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__SUBJECT, oldSubject, newSubject); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSubject(Observable newSubject) + { + if (newSubject != subject) + { + NotificationChain msgs = null; + if (subject != null) + msgs = ((InternalEObject)subject).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__SUBJECT, null, msgs); + if (newSubject != null) + msgs = ((InternalEObject)newSubject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__SUBJECT, null, msgs); + msgs = basicSetSubject(newSubject, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__SUBJECT, newSubject, newSubject)); + } + + /** + * + * + * @generated + */ + public Observable getFollower() + { + return follower; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetFollower(Observable newFollower, NotificationChain msgs) + { + Observable oldFollower = follower; + follower = newFollower; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__FOLLOWER, oldFollower, newFollower); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setFollower(Observable newFollower) + { + if (newFollower != follower) + { + NotificationChain msgs = null; + if (follower != null) + msgs = ((InternalEObject)follower).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__FOLLOWER, null, msgs); + if (newFollower != null) + msgs = ((InternalEObject)newFollower).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__FOLLOWER, null, msgs); + msgs = basicSetFollower(newFollower, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__FOLLOWER, newFollower, newFollower)); + } + + /** + * + * + * @generated + */ + public Observable getBefore() + { + return before; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBefore(Observable newBefore, NotificationChain msgs) + { + Observable oldBefore = before; + before = newBefore; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__BEFORE, oldBefore, newBefore); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setBefore(Observable newBefore) + { + if (newBefore != before) + { + NotificationChain msgs = null; + if (before != null) + msgs = ((InternalEObject)before).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__BEFORE, null, msgs); + if (newBefore != null) + msgs = ((InternalEObject)newBefore).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__BEFORE, null, msgs); + msgs = basicSetBefore(newBefore, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__BEFORE, newBefore, newBefore)); + } + + /** + * + * + * @generated + */ + public Observable getAfter() + { + return after; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAfter(Observable newAfter, NotificationChain msgs) + { + Observable oldAfter = after; + after = newAfter; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__AFTER, oldAfter, newAfter); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setAfter(Observable newAfter) + { + if (newAfter != after) + { + NotificationChain msgs = null; + if (after != null) + msgs = ((InternalEObject)after).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__AFTER, null, msgs); + if (newAfter != null) + msgs = ((InternalEObject)newAfter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__AFTER, null, msgs); + msgs = basicSetAfter(newAfter, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__AFTER, newAfter, newAfter)); + } + + /** + * + * + * @generated + */ + public Observable getUntil() + { + return until; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUntil(Observable newUntil, NotificationChain msgs) + { + Observable oldUntil = until; + until = newUntil; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__UNTIL, oldUntil, newUntil); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setUntil(Observable newUntil) + { + if (newUntil != until) + { + NotificationChain msgs = null; + if (until != null) + msgs = ((InternalEObject)until).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__UNTIL, null, msgs); + if (newUntil != null) + msgs = ((InternalEObject)newUntil).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__UNTIL, null, msgs); + msgs = basicSetUntil(newUntil, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__UNTIL, newUntil, newUntil)); + } + + /** + * + * + * @generated + */ + public Observable getMin() + { + return min; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMin(Observable newMin, NotificationChain msgs) + { + Observable oldMin = min; + min = newMin; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__MIN, oldMin, newMin); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMin(Observable newMin) + { + if (newMin != min) + { + NotificationChain msgs = null; + if (min != null) + msgs = ((InternalEObject)min).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__MIN, null, msgs); + if (newMin != null) + msgs = ((InternalEObject)newMin).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__MIN, null, msgs); + msgs = basicSetMin(newMin, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__MIN, newMin, newMin)); + } + + /** + * + * + * @generated + */ + public Observable getMax() + { + return max; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMax(Observable newMax, NotificationChain msgs) + { + Observable oldMax = max; + max = newMax; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__MAX, oldMax, newMax); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMax(Observable newMax) + { + if (newMax != max) + { + NotificationChain msgs = null; + if (max != null) + msgs = ((InternalEObject)max).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__MAX, null, msgs); + if (newMax != null) + msgs = ((InternalEObject)newMax).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRECEDES_PATTERN__MAX, null, msgs); + msgs = basicSetMax(newMax, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRECEDES_PATTERN__MAX, newMax, newMax)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PRECEDES_PATTERN__SUBJECT: + return basicSetSubject(null, msgs); + case FiacrePackage.PRECEDES_PATTERN__FOLLOWER: + return basicSetFollower(null, msgs); + case FiacrePackage.PRECEDES_PATTERN__BEFORE: + return basicSetBefore(null, msgs); + case FiacrePackage.PRECEDES_PATTERN__AFTER: + return basicSetAfter(null, msgs); + case FiacrePackage.PRECEDES_PATTERN__UNTIL: + return basicSetUntil(null, msgs); + case FiacrePackage.PRECEDES_PATTERN__MIN: + return basicSetMin(null, msgs); + case FiacrePackage.PRECEDES_PATTERN__MAX: + return basicSetMax(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PRECEDES_PATTERN__SUBJECT: + return getSubject(); + case FiacrePackage.PRECEDES_PATTERN__FOLLOWER: + return getFollower(); + case FiacrePackage.PRECEDES_PATTERN__BEFORE: + return getBefore(); + case FiacrePackage.PRECEDES_PATTERN__AFTER: + return getAfter(); + case FiacrePackage.PRECEDES_PATTERN__UNTIL: + return getUntil(); + case FiacrePackage.PRECEDES_PATTERN__MIN: + return getMin(); + case FiacrePackage.PRECEDES_PATTERN__MAX: + return getMax(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PRECEDES_PATTERN__SUBJECT: + setSubject((Observable)newValue); + return; + case FiacrePackage.PRECEDES_PATTERN__FOLLOWER: + setFollower((Observable)newValue); + return; + case FiacrePackage.PRECEDES_PATTERN__BEFORE: + setBefore((Observable)newValue); + return; + case FiacrePackage.PRECEDES_PATTERN__AFTER: + setAfter((Observable)newValue); + return; + case FiacrePackage.PRECEDES_PATTERN__UNTIL: + setUntil((Observable)newValue); + return; + case FiacrePackage.PRECEDES_PATTERN__MIN: + setMin((Observable)newValue); + return; + case FiacrePackage.PRECEDES_PATTERN__MAX: + setMax((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PRECEDES_PATTERN__SUBJECT: + setSubject((Observable)null); + return; + case FiacrePackage.PRECEDES_PATTERN__FOLLOWER: + setFollower((Observable)null); + return; + case FiacrePackage.PRECEDES_PATTERN__BEFORE: + setBefore((Observable)null); + return; + case FiacrePackage.PRECEDES_PATTERN__AFTER: + setAfter((Observable)null); + return; + case FiacrePackage.PRECEDES_PATTERN__UNTIL: + setUntil((Observable)null); + return; + case FiacrePackage.PRECEDES_PATTERN__MIN: + setMin((Observable)null); + return; + case FiacrePackage.PRECEDES_PATTERN__MAX: + setMax((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PRECEDES_PATTERN__SUBJECT: + return subject != null; + case FiacrePackage.PRECEDES_PATTERN__FOLLOWER: + return follower != null; + case FiacrePackage.PRECEDES_PATTERN__BEFORE: + return before != null; + case FiacrePackage.PRECEDES_PATTERN__AFTER: + return after != null; + case FiacrePackage.PRECEDES_PATTERN__UNTIL: + return until != null; + case FiacrePackage.PRECEDES_PATTERN__MIN: + return min != null; + case FiacrePackage.PRECEDES_PATTERN__MAX: + return max != null; + } + return super.eIsSet(featureID); + } + +} //PrecedesPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PresencePatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PresencePatternImpl.java new file mode 100644 index 0000000..c7b689d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PresencePatternImpl.java @@ -0,0 +1,774 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LowerBound; +import fr.irit.fiacre.xtext.fiacre.Observable; +import fr.irit.fiacre.xtext.fiacre.PresencePattern; +import fr.irit.fiacre.xtext.fiacre.UpperBound; + +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; + +/** + * + * An implementation of the model object 'Presence Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl#getSubject Subject}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl#getLasting Lasting}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl#getAfter After}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl#getLower Lower}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl#getUpper Upper}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl#getUntil Until}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl#getBefore Before}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl#getMin Min}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PresencePatternImpl#getMax Max}
    • + *
    + * + * @generated + */ +public class PresencePatternImpl extends PatternPropertyImpl implements PresencePattern +{ + /** + * The cached value of the '{@link #getSubject() Subject}' containment reference. + * + * + * @see #getSubject() + * @generated + * @ordered + */ + protected Observable subject; + + /** + * The default value of the '{@link #getLasting() Lasting}' attribute. + * + * + * @see #getLasting() + * @generated + * @ordered + */ + protected static final int LASTING_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getLasting() Lasting}' attribute. + * + * + * @see #getLasting() + * @generated + * @ordered + */ + protected int lasting = LASTING_EDEFAULT; + + /** + * The cached value of the '{@link #getAfter() After}' containment reference. + * + * + * @see #getAfter() + * @generated + * @ordered + */ + protected Observable after; + + /** + * The cached value of the '{@link #getLower() Lower}' containment reference. + * + * + * @see #getLower() + * @generated + * @ordered + */ + protected LowerBound lower; + + /** + * The cached value of the '{@link #getUpper() Upper}' containment reference. + * + * + * @see #getUpper() + * @generated + * @ordered + */ + protected UpperBound upper; + + /** + * The cached value of the '{@link #getUntil() Until}' containment reference. + * + * + * @see #getUntil() + * @generated + * @ordered + */ + protected Observable until; + + /** + * The cached value of the '{@link #getBefore() Before}' containment reference. + * + * + * @see #getBefore() + * @generated + * @ordered + */ + protected Observable before; + + /** + * The cached value of the '{@link #getMin() Min}' containment reference. + * + * + * @see #getMin() + * @generated + * @ordered + */ + protected Observable min; + + /** + * The cached value of the '{@link #getMax() Max}' containment reference. + * + * + * @see #getMax() + * @generated + * @ordered + */ + protected Observable max; + + /** + * + * + * @generated + */ + protected PresencePatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPresencePattern(); + } + + /** + * + * + * @generated + */ + public Observable getSubject() + { + return subject; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSubject(Observable newSubject, NotificationChain msgs) + { + Observable oldSubject = subject; + subject = newSubject; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__SUBJECT, oldSubject, newSubject); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSubject(Observable newSubject) + { + if (newSubject != subject) + { + NotificationChain msgs = null; + if (subject != null) + msgs = ((InternalEObject)subject).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__SUBJECT, null, msgs); + if (newSubject != null) + msgs = ((InternalEObject)newSubject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__SUBJECT, null, msgs); + msgs = basicSetSubject(newSubject, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__SUBJECT, newSubject, newSubject)); + } + + /** + * + * + * @generated + */ + public int getLasting() + { + return lasting; + } + + /** + * + * + * @generated + */ + public void setLasting(int newLasting) + { + int oldLasting = lasting; + lasting = newLasting; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__LASTING, oldLasting, lasting)); + } + + /** + * + * + * @generated + */ + public Observable getAfter() + { + return after; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAfter(Observable newAfter, NotificationChain msgs) + { + Observable oldAfter = after; + after = newAfter; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__AFTER, oldAfter, newAfter); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setAfter(Observable newAfter) + { + if (newAfter != after) + { + NotificationChain msgs = null; + if (after != null) + msgs = ((InternalEObject)after).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__AFTER, null, msgs); + if (newAfter != null) + msgs = ((InternalEObject)newAfter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__AFTER, null, msgs); + msgs = basicSetAfter(newAfter, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__AFTER, newAfter, newAfter)); + } + + /** + * + * + * @generated + */ + public LowerBound getLower() + { + return lower; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLower(LowerBound newLower, NotificationChain msgs) + { + LowerBound oldLower = lower; + lower = newLower; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__LOWER, oldLower, newLower); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLower(LowerBound newLower) + { + if (newLower != lower) + { + NotificationChain msgs = null; + if (lower != null) + msgs = ((InternalEObject)lower).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__LOWER, null, msgs); + if (newLower != null) + msgs = ((InternalEObject)newLower).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__LOWER, null, msgs); + msgs = basicSetLower(newLower, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__LOWER, newLower, newLower)); + } + + /** + * + * + * @generated + */ + public UpperBound getUpper() + { + return upper; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUpper(UpperBound newUpper, NotificationChain msgs) + { + UpperBound oldUpper = upper; + upper = newUpper; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__UPPER, oldUpper, newUpper); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setUpper(UpperBound newUpper) + { + if (newUpper != upper) + { + NotificationChain msgs = null; + if (upper != null) + msgs = ((InternalEObject)upper).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__UPPER, null, msgs); + if (newUpper != null) + msgs = ((InternalEObject)newUpper).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__UPPER, null, msgs); + msgs = basicSetUpper(newUpper, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__UPPER, newUpper, newUpper)); + } + + /** + * + * + * @generated + */ + public Observable getUntil() + { + return until; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUntil(Observable newUntil, NotificationChain msgs) + { + Observable oldUntil = until; + until = newUntil; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__UNTIL, oldUntil, newUntil); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setUntil(Observable newUntil) + { + if (newUntil != until) + { + NotificationChain msgs = null; + if (until != null) + msgs = ((InternalEObject)until).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__UNTIL, null, msgs); + if (newUntil != null) + msgs = ((InternalEObject)newUntil).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__UNTIL, null, msgs); + msgs = basicSetUntil(newUntil, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__UNTIL, newUntil, newUntil)); + } + + /** + * + * + * @generated + */ + public Observable getBefore() + { + return before; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBefore(Observable newBefore, NotificationChain msgs) + { + Observable oldBefore = before; + before = newBefore; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__BEFORE, oldBefore, newBefore); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setBefore(Observable newBefore) + { + if (newBefore != before) + { + NotificationChain msgs = null; + if (before != null) + msgs = ((InternalEObject)before).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__BEFORE, null, msgs); + if (newBefore != null) + msgs = ((InternalEObject)newBefore).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__BEFORE, null, msgs); + msgs = basicSetBefore(newBefore, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__BEFORE, newBefore, newBefore)); + } + + /** + * + * + * @generated + */ + public Observable getMin() + { + return min; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMin(Observable newMin, NotificationChain msgs) + { + Observable oldMin = min; + min = newMin; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__MIN, oldMin, newMin); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMin(Observable newMin) + { + if (newMin != min) + { + NotificationChain msgs = null; + if (min != null) + msgs = ((InternalEObject)min).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__MIN, null, msgs); + if (newMin != null) + msgs = ((InternalEObject)newMin).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__MIN, null, msgs); + msgs = basicSetMin(newMin, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__MIN, newMin, newMin)); + } + + /** + * + * + * @generated + */ + public Observable getMax() + { + return max; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMax(Observable newMax, NotificationChain msgs) + { + Observable oldMax = max; + max = newMax; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__MAX, oldMax, newMax); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMax(Observable newMax) + { + if (newMax != max) + { + NotificationChain msgs = null; + if (max != null) + msgs = ((InternalEObject)max).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__MAX, null, msgs); + if (newMax != null) + msgs = ((InternalEObject)newMax).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PRESENCE_PATTERN__MAX, null, msgs); + msgs = basicSetMax(newMax, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PRESENCE_PATTERN__MAX, newMax, newMax)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PRESENCE_PATTERN__SUBJECT: + return basicSetSubject(null, msgs); + case FiacrePackage.PRESENCE_PATTERN__AFTER: + return basicSetAfter(null, msgs); + case FiacrePackage.PRESENCE_PATTERN__LOWER: + return basicSetLower(null, msgs); + case FiacrePackage.PRESENCE_PATTERN__UPPER: + return basicSetUpper(null, msgs); + case FiacrePackage.PRESENCE_PATTERN__UNTIL: + return basicSetUntil(null, msgs); + case FiacrePackage.PRESENCE_PATTERN__BEFORE: + return basicSetBefore(null, msgs); + case FiacrePackage.PRESENCE_PATTERN__MIN: + return basicSetMin(null, msgs); + case FiacrePackage.PRESENCE_PATTERN__MAX: + return basicSetMax(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PRESENCE_PATTERN__SUBJECT: + return getSubject(); + case FiacrePackage.PRESENCE_PATTERN__LASTING: + return getLasting(); + case FiacrePackage.PRESENCE_PATTERN__AFTER: + return getAfter(); + case FiacrePackage.PRESENCE_PATTERN__LOWER: + return getLower(); + case FiacrePackage.PRESENCE_PATTERN__UPPER: + return getUpper(); + case FiacrePackage.PRESENCE_PATTERN__UNTIL: + return getUntil(); + case FiacrePackage.PRESENCE_PATTERN__BEFORE: + return getBefore(); + case FiacrePackage.PRESENCE_PATTERN__MIN: + return getMin(); + case FiacrePackage.PRESENCE_PATTERN__MAX: + return getMax(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PRESENCE_PATTERN__SUBJECT: + setSubject((Observable)newValue); + return; + case FiacrePackage.PRESENCE_PATTERN__LASTING: + setLasting((Integer)newValue); + return; + case FiacrePackage.PRESENCE_PATTERN__AFTER: + setAfter((Observable)newValue); + return; + case FiacrePackage.PRESENCE_PATTERN__LOWER: + setLower((LowerBound)newValue); + return; + case FiacrePackage.PRESENCE_PATTERN__UPPER: + setUpper((UpperBound)newValue); + return; + case FiacrePackage.PRESENCE_PATTERN__UNTIL: + setUntil((Observable)newValue); + return; + case FiacrePackage.PRESENCE_PATTERN__BEFORE: + setBefore((Observable)newValue); + return; + case FiacrePackage.PRESENCE_PATTERN__MIN: + setMin((Observable)newValue); + return; + case FiacrePackage.PRESENCE_PATTERN__MAX: + setMax((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PRESENCE_PATTERN__SUBJECT: + setSubject((Observable)null); + return; + case FiacrePackage.PRESENCE_PATTERN__LASTING: + setLasting(LASTING_EDEFAULT); + return; + case FiacrePackage.PRESENCE_PATTERN__AFTER: + setAfter((Observable)null); + return; + case FiacrePackage.PRESENCE_PATTERN__LOWER: + setLower((LowerBound)null); + return; + case FiacrePackage.PRESENCE_PATTERN__UPPER: + setUpper((UpperBound)null); + return; + case FiacrePackage.PRESENCE_PATTERN__UNTIL: + setUntil((Observable)null); + return; + case FiacrePackage.PRESENCE_PATTERN__BEFORE: + setBefore((Observable)null); + return; + case FiacrePackage.PRESENCE_PATTERN__MIN: + setMin((Observable)null); + return; + case FiacrePackage.PRESENCE_PATTERN__MAX: + setMax((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PRESENCE_PATTERN__SUBJECT: + return subject != null; + case FiacrePackage.PRESENCE_PATTERN__LASTING: + return lasting != LASTING_EDEFAULT; + case FiacrePackage.PRESENCE_PATTERN__AFTER: + return after != null; + case FiacrePackage.PRESENCE_PATTERN__LOWER: + return lower != null; + case FiacrePackage.PRESENCE_PATTERN__UPPER: + return upper != null; + case FiacrePackage.PRESENCE_PATTERN__UNTIL: + return until != null; + case FiacrePackage.PRESENCE_PATTERN__BEFORE: + return before != null; + case FiacrePackage.PRESENCE_PATTERN__MIN: + return min != null; + case FiacrePackage.PRESENCE_PATTERN__MAX: + return max != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (lasting: "); + result.append(lasting); + result.append(')'); + return result.toString(); + } + +} //PresencePatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PriorityDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PriorityDeclarationImpl.java new file mode 100644 index 0000000..f2649bc --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PriorityDeclarationImpl.java @@ -0,0 +1,178 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PriorityDeclaration; +import fr.irit.fiacre.xtext.fiacre.PriorityGroup; + +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; + +/** + * + * An implementation of the model object 'Priority Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PriorityDeclarationImpl#getGroups Groups}
    • + *
    + * + * @generated + */ +public class PriorityDeclarationImpl extends MinimalEObjectImpl.Container implements PriorityDeclaration +{ + /** + * The cached value of the '{@link #getGroups() Groups}' containment reference list. + * + * + * @see #getGroups() + * @generated + * @ordered + */ + protected EList groups; + + /** + * + * + * @generated + */ + protected PriorityDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPriorityDeclaration(); + } + + /** + * + * + * @generated + */ + public EList getGroups() + { + if (groups == null) + { + groups = new EObjectContainmentEList(PriorityGroup.class, this, FiacrePackage.PRIORITY_DECLARATION__GROUPS); + } + return groups; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PRIORITY_DECLARATION__GROUPS: + return ((InternalEList)getGroups()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PRIORITY_DECLARATION__GROUPS: + return getGroups(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PRIORITY_DECLARATION__GROUPS: + getGroups().clear(); + getGroups().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PRIORITY_DECLARATION__GROUPS: + getGroups().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PRIORITY_DECLARATION__GROUPS: + return groups != null && !groups.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //PriorityDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PriorityGroupImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PriorityGroupImpl.java new file mode 100644 index 0000000..c948010 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PriorityGroupImpl.java @@ -0,0 +1,158 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PortDeclaration; +import fr.irit.fiacre.xtext.fiacre.PriorityGroup; + +import java.util.Collection; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +/** + * + * An implementation of the model object 'Priority Group'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PriorityGroupImpl#getPorts Ports}
    • + *
    + * + * @generated + */ +public class PriorityGroupImpl extends MinimalEObjectImpl.Container implements PriorityGroup +{ + /** + * The cached value of the '{@link #getPorts() Ports}' reference list. + * + * + * @see #getPorts() + * @generated + * @ordered + */ + protected EList ports; + + /** + * + * + * @generated + */ + protected PriorityGroupImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPriorityGroup(); + } + + /** + * + * + * @generated + */ + public EList getPorts() + { + if (ports == null) + { + ports = new EObjectResolvingEList(PortDeclaration.class, this, FiacrePackage.PRIORITY_GROUP__PORTS); + } + return ports; + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PRIORITY_GROUP__PORTS: + return getPorts(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PRIORITY_GROUP__PORTS: + getPorts().clear(); + getPorts().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PRIORITY_GROUP__PORTS: + getPorts().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PRIORITY_GROUP__PORTS: + return ports != null && !ports.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //PriorityGroupImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ProcessDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ProcessDeclarationImpl.java new file mode 100644 index 0000000..be6072d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ProcessDeclarationImpl.java @@ -0,0 +1,643 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Declaration; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NamedElement; +import fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration; +import fr.irit.fiacre.xtext.fiacre.ParametersDeclaration; +import fr.irit.fiacre.xtext.fiacre.PathDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.PortsDeclaration; +import fr.irit.fiacre.xtext.fiacre.PriorityDeclaration; +import fr.irit.fiacre.xtext.fiacre.ProcessDeclaration; +import fr.irit.fiacre.xtext.fiacre.StateDeclaration; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.Transition; +import fr.irit.fiacre.xtext.fiacre.VariablesDeclaration; + +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; + +/** + * + * An implementation of the model object 'Process Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl#getName Name}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl#getParameters Parameters}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl#getVariables Variables}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl#getPorts Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl#getLocalPorts Local Ports}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl#getPriorities Priorities}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl#getStates States}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl#getPrelude Prelude}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProcessDeclarationImpl#getTransitions Transitions}
    • + *
    + * + * @generated + */ +public class ProcessDeclarationImpl extends RootDeclarationImpl implements ProcessDeclaration +{ + /** + * 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; + + /** + * The cached value of the '{@link #getParameters() Parameters}' containment reference list. + * + * + * @see #getParameters() + * @generated + * @ordered + */ + protected EList parameters; + + /** + * The cached value of the '{@link #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * The cached value of the '{@link #getPorts() Ports}' containment reference list. + * + * + * @see #getPorts() + * @generated + * @ordered + */ + protected EList ports; + + /** + * The cached value of the '{@link #getLocalPorts() Local Ports}' containment reference list. + * + * + * @see #getLocalPorts() + * @generated + * @ordered + */ + protected EList localPorts; + + /** + * The cached value of the '{@link #getPriorities() Priorities}' containment reference list. + * + * + * @see #getPriorities() + * @generated + * @ordered + */ + protected EList priorities; + + /** + * The cached value of the '{@link #getStates() States}' containment reference list. + * + * + * @see #getStates() + * @generated + * @ordered + */ + protected EList states; + + /** + * The cached value of the '{@link #getPrelude() Prelude}' containment reference. + * + * + * @see #getPrelude() + * @generated + * @ordered + */ + protected Statement prelude; + + /** + * The cached value of the '{@link #getTransitions() Transitions}' containment reference list. + * + * + * @see #getTransitions() + * @generated + * @ordered + */ + protected EList transitions; + + /** + * + * + * @generated + */ + protected ProcessDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getProcessDeclaration(); + } + + /** + * + * + * @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, FiacrePackage.PROCESS_DECLARATION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public EList getParameters() + { + if (parameters == null) + { + parameters = new EObjectContainmentEList(ParametersDeclaration.class, this, FiacrePackage.PROCESS_DECLARATION__PARAMETERS); + } + return parameters; + } + + /** + * + * + * @generated + */ + public EList getVariables() + { + if (variables == null) + { + variables = new EObjectContainmentEList(VariablesDeclaration.class, this, FiacrePackage.PROCESS_DECLARATION__VARIABLES); + } + return variables; + } + + /** + * + * + * @generated + */ + public EList getPorts() + { + if (ports == null) + { + ports = new EObjectContainmentEList(PortsDeclaration.class, this, FiacrePackage.PROCESS_DECLARATION__PORTS); + } + return ports; + } + + /** + * + * + * @generated + */ + public EList getLocalPorts() + { + if (localPorts == null) + { + localPorts = new EObjectContainmentEList(PortsDeclaration.class, this, FiacrePackage.PROCESS_DECLARATION__LOCAL_PORTS); + } + return localPorts; + } + + /** + * + * + * @generated + */ + public EList getPriorities() + { + if (priorities == null) + { + priorities = new EObjectContainmentEList(PriorityDeclaration.class, this, FiacrePackage.PROCESS_DECLARATION__PRIORITIES); + } + return priorities; + } + + /** + * + * + * @generated + */ + public EList getStates() + { + if (states == null) + { + states = new EObjectContainmentEList(StateDeclaration.class, this, FiacrePackage.PROCESS_DECLARATION__STATES); + } + return states; + } + + /** + * + * + * @generated + */ + public Statement getPrelude() + { + return prelude; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetPrelude(Statement newPrelude, NotificationChain msgs) + { + Statement oldPrelude = prelude; + prelude = newPrelude; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROCESS_DECLARATION__PRELUDE, oldPrelude, newPrelude); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setPrelude(Statement newPrelude) + { + if (newPrelude != prelude) + { + NotificationChain msgs = null; + if (prelude != null) + msgs = ((InternalEObject)prelude).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROCESS_DECLARATION__PRELUDE, null, msgs); + if (newPrelude != null) + msgs = ((InternalEObject)newPrelude).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROCESS_DECLARATION__PRELUDE, null, msgs); + msgs = basicSetPrelude(newPrelude, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROCESS_DECLARATION__PRELUDE, newPrelude, newPrelude)); + } + + /** + * + * + * @generated + */ + public EList getTransitions() + { + if (transitions == null) + { + transitions = new EObjectContainmentEList(Transition.class, this, FiacrePackage.PROCESS_DECLARATION__TRANSITIONS); + } + return transitions; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PROCESS_DECLARATION__PARAMETERS: + return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); + case FiacrePackage.PROCESS_DECLARATION__VARIABLES: + return ((InternalEList)getVariables()).basicRemove(otherEnd, msgs); + case FiacrePackage.PROCESS_DECLARATION__PORTS: + return ((InternalEList)getPorts()).basicRemove(otherEnd, msgs); + case FiacrePackage.PROCESS_DECLARATION__LOCAL_PORTS: + return ((InternalEList)getLocalPorts()).basicRemove(otherEnd, msgs); + case FiacrePackage.PROCESS_DECLARATION__PRIORITIES: + return ((InternalEList)getPriorities()).basicRemove(otherEnd, msgs); + case FiacrePackage.PROCESS_DECLARATION__STATES: + return ((InternalEList)getStates()).basicRemove(otherEnd, msgs); + case FiacrePackage.PROCESS_DECLARATION__PRELUDE: + return basicSetPrelude(null, msgs); + case FiacrePackage.PROCESS_DECLARATION__TRANSITIONS: + return ((InternalEList)getTransitions()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PROCESS_DECLARATION__NAME: + return getName(); + case FiacrePackage.PROCESS_DECLARATION__PARAMETERS: + return getParameters(); + case FiacrePackage.PROCESS_DECLARATION__VARIABLES: + return getVariables(); + case FiacrePackage.PROCESS_DECLARATION__PORTS: + return getPorts(); + case FiacrePackage.PROCESS_DECLARATION__LOCAL_PORTS: + return getLocalPorts(); + case FiacrePackage.PROCESS_DECLARATION__PRIORITIES: + return getPriorities(); + case FiacrePackage.PROCESS_DECLARATION__STATES: + return getStates(); + case FiacrePackage.PROCESS_DECLARATION__PRELUDE: + return getPrelude(); + case FiacrePackage.PROCESS_DECLARATION__TRANSITIONS: + return getTransitions(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PROCESS_DECLARATION__NAME: + setName((String)newValue); + return; + case FiacrePackage.PROCESS_DECLARATION__PARAMETERS: + getParameters().clear(); + getParameters().addAll((Collection)newValue); + return; + case FiacrePackage.PROCESS_DECLARATION__VARIABLES: + getVariables().clear(); + getVariables().addAll((Collection)newValue); + return; + case FiacrePackage.PROCESS_DECLARATION__PORTS: + getPorts().clear(); + getPorts().addAll((Collection)newValue); + return; + case FiacrePackage.PROCESS_DECLARATION__LOCAL_PORTS: + getLocalPorts().clear(); + getLocalPorts().addAll((Collection)newValue); + return; + case FiacrePackage.PROCESS_DECLARATION__PRIORITIES: + getPriorities().clear(); + getPriorities().addAll((Collection)newValue); + return; + case FiacrePackage.PROCESS_DECLARATION__STATES: + getStates().clear(); + getStates().addAll((Collection)newValue); + return; + case FiacrePackage.PROCESS_DECLARATION__PRELUDE: + setPrelude((Statement)newValue); + return; + case FiacrePackage.PROCESS_DECLARATION__TRANSITIONS: + getTransitions().clear(); + getTransitions().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROCESS_DECLARATION__NAME: + setName(NAME_EDEFAULT); + return; + case FiacrePackage.PROCESS_DECLARATION__PARAMETERS: + getParameters().clear(); + return; + case FiacrePackage.PROCESS_DECLARATION__VARIABLES: + getVariables().clear(); + return; + case FiacrePackage.PROCESS_DECLARATION__PORTS: + getPorts().clear(); + return; + case FiacrePackage.PROCESS_DECLARATION__LOCAL_PORTS: + getLocalPorts().clear(); + return; + case FiacrePackage.PROCESS_DECLARATION__PRIORITIES: + getPriorities().clear(); + return; + case FiacrePackage.PROCESS_DECLARATION__STATES: + getStates().clear(); + return; + case FiacrePackage.PROCESS_DECLARATION__PRELUDE: + setPrelude((Statement)null); + return; + case FiacrePackage.PROCESS_DECLARATION__TRANSITIONS: + getTransitions().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROCESS_DECLARATION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case FiacrePackage.PROCESS_DECLARATION__PARAMETERS: + return parameters != null && !parameters.isEmpty(); + case FiacrePackage.PROCESS_DECLARATION__VARIABLES: + return variables != null && !variables.isEmpty(); + case FiacrePackage.PROCESS_DECLARATION__PORTS: + return ports != null && !ports.isEmpty(); + case FiacrePackage.PROCESS_DECLARATION__LOCAL_PORTS: + return localPorts != null && !localPorts.isEmpty(); + case FiacrePackage.PROCESS_DECLARATION__PRIORITIES: + return priorities != null && !priorities.isEmpty(); + case FiacrePackage.PROCESS_DECLARATION__STATES: + return states != null && !states.isEmpty(); + case FiacrePackage.PROCESS_DECLARATION__PRELUDE: + return prelude != null; + case FiacrePackage.PROCESS_DECLARATION__TRANSITIONS: + return transitions != null && !transitions.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) + { + if (baseClass == PathDeclarationUse.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + if (baseClass == NamedElement.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.PROCESS_DECLARATION__NAME: return FiacrePackage.NAMED_ELEMENT__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + if (baseClass == ParameterizedDeclaration.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.PROCESS_DECLARATION__PARAMETERS: return FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS; + case FiacrePackage.PROCESS_DECLARATION__VARIABLES: return FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) + { + if (baseClass == PathDeclarationUse.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + if (baseClass == NamedElement.class) + { + switch (baseFeatureID) + { + case FiacrePackage.NAMED_ELEMENT__NAME: return FiacrePackage.PROCESS_DECLARATION__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + if (baseClass == ParameterizedDeclaration.class) + { + switch (baseFeatureID) + { + case FiacrePackage.PARAMETERIZED_DECLARATION__PARAMETERS: return FiacrePackage.PROCESS_DECLARATION__PARAMETERS; + case FiacrePackage.PARAMETERIZED_DECLARATION__VARIABLES: return FiacrePackage.PROCESS_DECLARATION__VARIABLES; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @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(); + } + +} //ProcessDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ProjectionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ProjectionImpl.java new file mode 100644 index 0000000..f979e24 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ProjectionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Projection; + +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; + +/** + * + * An implementation of the model object 'Projection'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProjectionImpl#getChannel Channel}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ProjectionImpl#getField Field}
    • + *
    + * + * @generated + */ +public class ProjectionImpl extends ExpressionImpl implements Projection +{ + /** + * The cached value of the '{@link #getChannel() Channel}' containment reference. + * + * + * @see #getChannel() + * @generated + * @ordered + */ + protected Expression channel; + + /** + * The cached value of the '{@link #getField() Field}' containment reference. + * + * + * @see #getField() + * @generated + * @ordered + */ + protected Expression field; + + /** + * + * + * @generated + */ + protected ProjectionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getProjection(); + } + + /** + * + * + * @generated + */ + public Expression getChannel() + { + return channel; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChannel(Expression newChannel, NotificationChain msgs) + { + Expression oldChannel = channel; + channel = newChannel; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROJECTION__CHANNEL, oldChannel, newChannel); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChannel(Expression newChannel) + { + if (newChannel != channel) + { + NotificationChain msgs = null; + if (channel != null) + msgs = ((InternalEObject)channel).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROJECTION__CHANNEL, null, msgs); + if (newChannel != null) + msgs = ((InternalEObject)newChannel).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROJECTION__CHANNEL, null, msgs); + msgs = basicSetChannel(newChannel, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROJECTION__CHANNEL, newChannel, newChannel)); + } + + /** + * + * + * @generated + */ + public Expression getField() + { + return field; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetField(Expression newField, NotificationChain msgs) + { + Expression oldField = field; + field = newField; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROJECTION__FIELD, oldField, newField); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setField(Expression newField) + { + if (newField != field) + { + NotificationChain msgs = null; + if (field != null) + msgs = ((InternalEObject)field).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROJECTION__FIELD, null, msgs); + if (newField != null) + msgs = ((InternalEObject)newField).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROJECTION__FIELD, null, msgs); + msgs = basicSetField(newField, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROJECTION__FIELD, newField, newField)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PROJECTION__CHANNEL: + return basicSetChannel(null, msgs); + case FiacrePackage.PROJECTION__FIELD: + return basicSetField(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PROJECTION__CHANNEL: + return getChannel(); + case FiacrePackage.PROJECTION__FIELD: + return getField(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PROJECTION__CHANNEL: + setChannel((Expression)newValue); + return; + case FiacrePackage.PROJECTION__FIELD: + setField((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROJECTION__CHANNEL: + setChannel((Expression)null); + return; + case FiacrePackage.PROJECTION__FIELD: + setField((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROJECTION__CHANNEL: + return channel != null; + case FiacrePackage.PROJECTION__FIELD: + return field != null; + } + return super.eIsSet(featureID); + } + +} //ProjectionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyConjunctionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyConjunctionImpl.java new file mode 100644 index 0000000..6be8104 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyConjunctionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Property; +import fr.irit.fiacre.xtext.fiacre.PropertyConjunction; + +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; + +/** + * + * An implementation of the model object 'Property Conjunction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PropertyConjunctionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PropertyConjunctionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class PropertyConjunctionImpl extends PropertyImpl implements PropertyConjunction +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Property left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Property right; + + /** + * + * + * @generated + */ + protected PropertyConjunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPropertyConjunction(); + } + + /** + * + * + * @generated + */ + public Property getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Property newLeft, NotificationChain msgs) + { + Property oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_CONJUNCTION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Property newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_CONJUNCTION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_CONJUNCTION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_CONJUNCTION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Property getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Property newRight, NotificationChain msgs) + { + Property oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_CONJUNCTION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Property newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_CONJUNCTION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_CONJUNCTION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_CONJUNCTION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_CONJUNCTION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.PROPERTY_CONJUNCTION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_CONJUNCTION__LEFT: + return getLeft(); + case FiacrePackage.PROPERTY_CONJUNCTION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_CONJUNCTION__LEFT: + setLeft((Property)newValue); + return; + case FiacrePackage.PROPERTY_CONJUNCTION__RIGHT: + setRight((Property)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_CONJUNCTION__LEFT: + setLeft((Property)null); + return; + case FiacrePackage.PROPERTY_CONJUNCTION__RIGHT: + setRight((Property)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_CONJUNCTION__LEFT: + return left != null; + case FiacrePackage.PROPERTY_CONJUNCTION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //PropertyConjunctionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDeclarationImpl.java new file mode 100644 index 0000000..cb0b939 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDeclarationImpl.java @@ -0,0 +1,329 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Declaration; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NamedElement; +import fr.irit.fiacre.xtext.fiacre.Property; +import fr.irit.fiacre.xtext.fiacre.PropertyDeclaration; + +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; + +/** + * + * An implementation of the model object 'Property Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PropertyDeclarationImpl#getName Name}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PropertyDeclarationImpl#getProperty Property}
    • + *
    + * + * @generated + */ +public class PropertyDeclarationImpl extends PropertyDeclarationUseImpl implements PropertyDeclaration +{ + /** + * 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; + + /** + * The cached value of the '{@link #getProperty() Property}' containment reference. + * + * + * @see #getProperty() + * @generated + * @ordered + */ + protected Property property; + + /** + * + * + * @generated + */ + protected PropertyDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPropertyDeclaration(); + } + + /** + * + * + * @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, FiacrePackage.PROPERTY_DECLARATION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public Property getProperty() + { + return property; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetProperty(Property newProperty, NotificationChain msgs) + { + Property oldProperty = property; + property = newProperty; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_DECLARATION__PROPERTY, oldProperty, newProperty); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setProperty(Property newProperty) + { + if (newProperty != property) + { + NotificationChain msgs = null; + if (property != null) + msgs = ((InternalEObject)property).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_DECLARATION__PROPERTY, null, msgs); + if (newProperty != null) + msgs = ((InternalEObject)newProperty).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_DECLARATION__PROPERTY, null, msgs); + msgs = basicSetProperty(newProperty, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_DECLARATION__PROPERTY, newProperty, newProperty)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_DECLARATION__PROPERTY: + return basicSetProperty(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_DECLARATION__NAME: + return getName(); + case FiacrePackage.PROPERTY_DECLARATION__PROPERTY: + return getProperty(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_DECLARATION__NAME: + setName((String)newValue); + return; + case FiacrePackage.PROPERTY_DECLARATION__PROPERTY: + setProperty((Property)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_DECLARATION__NAME: + setName(NAME_EDEFAULT); + return; + case FiacrePackage.PROPERTY_DECLARATION__PROPERTY: + setProperty((Property)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_DECLARATION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case FiacrePackage.PROPERTY_DECLARATION__PROPERTY: + return property != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) + { + if (baseClass == NamedElement.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.PROPERTY_DECLARATION__NAME: return FiacrePackage.NAMED_ELEMENT__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) + { + if (baseClass == NamedElement.class) + { + switch (baseFeatureID) + { + case FiacrePackage.NAMED_ELEMENT__NAME: return FiacrePackage.PROPERTY_DECLARATION__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @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(); + } + +} //PropertyDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDeclarationUseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDeclarationUseImpl.java new file mode 100644 index 0000000..22811ea --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDeclarationUseImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Property Declaration Use'. + * + * + * @generated + */ +public class PropertyDeclarationUseImpl extends MinimalEObjectImpl.Container implements PropertyDeclarationUse +{ + /** + * + * + * @generated + */ + protected PropertyDeclarationUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPropertyDeclarationUse(); + } + +} //PropertyDeclarationUseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDisjunctionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDisjunctionImpl.java new file mode 100644 index 0000000..55e0aa8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyDisjunctionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Property; +import fr.irit.fiacre.xtext.fiacre.PropertyDisjunction; + +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; + +/** + * + * An implementation of the model object 'Property Disjunction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PropertyDisjunctionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PropertyDisjunctionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class PropertyDisjunctionImpl extends PropertyImpl implements PropertyDisjunction +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Property left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Property right; + + /** + * + * + * @generated + */ + protected PropertyDisjunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPropertyDisjunction(); + } + + /** + * + * + * @generated + */ + public Property getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Property newLeft, NotificationChain msgs) + { + Property oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_DISJUNCTION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Property newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_DISJUNCTION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_DISJUNCTION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_DISJUNCTION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Property getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Property newRight, NotificationChain msgs) + { + Property oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_DISJUNCTION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Property newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_DISJUNCTION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_DISJUNCTION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_DISJUNCTION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_DISJUNCTION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.PROPERTY_DISJUNCTION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_DISJUNCTION__LEFT: + return getLeft(); + case FiacrePackage.PROPERTY_DISJUNCTION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_DISJUNCTION__LEFT: + setLeft((Property)newValue); + return; + case FiacrePackage.PROPERTY_DISJUNCTION__RIGHT: + setRight((Property)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_DISJUNCTION__LEFT: + setLeft((Property)null); + return; + case FiacrePackage.PROPERTY_DISJUNCTION__RIGHT: + setRight((Property)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_DISJUNCTION__LEFT: + return left != null; + case FiacrePackage.PROPERTY_DISJUNCTION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //PropertyDisjunctionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyImpl.java new file mode 100644 index 0000000..1285caa --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Property; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Property'. + * + * + * @generated + */ +public class PropertyImpl extends MinimalEObjectImpl.Container implements Property +{ + /** + * + * + * @generated + */ + protected PropertyImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getProperty(); + } + +} //PropertyImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyImplicationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyImplicationImpl.java new file mode 100644 index 0000000..6dbe818 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyImplicationImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Property; +import fr.irit.fiacre.xtext.fiacre.PropertyImplication; + +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; + +/** + * + * An implementation of the model object 'Property Implication'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PropertyImplicationImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PropertyImplicationImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class PropertyImplicationImpl extends PropertyImpl implements PropertyImplication +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Property left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Property right; + + /** + * + * + * @generated + */ + protected PropertyImplicationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPropertyImplication(); + } + + /** + * + * + * @generated + */ + public Property getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Property newLeft, NotificationChain msgs) + { + Property oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_IMPLICATION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Property newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_IMPLICATION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_IMPLICATION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_IMPLICATION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Property getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Property newRight, NotificationChain msgs) + { + Property oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_IMPLICATION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Property newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_IMPLICATION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_IMPLICATION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_IMPLICATION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_IMPLICATION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.PROPERTY_IMPLICATION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_IMPLICATION__LEFT: + return getLeft(); + case FiacrePackage.PROPERTY_IMPLICATION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_IMPLICATION__LEFT: + setLeft((Property)newValue); + return; + case FiacrePackage.PROPERTY_IMPLICATION__RIGHT: + setRight((Property)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_IMPLICATION__LEFT: + setLeft((Property)null); + return; + case FiacrePackage.PROPERTY_IMPLICATION__RIGHT: + setRight((Property)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_IMPLICATION__LEFT: + return left != null; + case FiacrePackage.PROPERTY_IMPLICATION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //PropertyImplicationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyNegationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyNegationImpl.java new file mode 100644 index 0000000..7323e14 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/PropertyNegationImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Property; +import fr.irit.fiacre.xtext.fiacre.PropertyNegation; + +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; + +/** + * + * An implementation of the model object 'Property Negation'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.PropertyNegationImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class PropertyNegationImpl extends PropertyImpl implements PropertyNegation +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Property child; + + /** + * + * + * @generated + */ + protected PropertyNegationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getPropertyNegation(); + } + + /** + * + * + * @generated + */ + public Property getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Property newChild, NotificationChain msgs) + { + Property oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_NEGATION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Property newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_NEGATION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.PROPERTY_NEGATION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.PROPERTY_NEGATION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_NEGATION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_NEGATION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_NEGATION__CHILD: + setChild((Property)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_NEGATION__CHILD: + setChild((Property)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.PROPERTY_NEGATION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //PropertyNegationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/QueueExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/QueueExpressionImpl.java new file mode 100644 index 0000000..bf1b939 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/QueueExpressionImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.QueueExpression; + +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; + +/** + * + * An implementation of the model object 'Queue Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.QueueExpressionImpl#getValues Values}
    • + *
    + * + * @generated + */ +public class QueueExpressionImpl extends ValueExpressionImpl implements QueueExpression +{ + /** + * The cached value of the '{@link #getValues() Values}' containment reference list. + * + * + * @see #getValues() + * @generated + * @ordered + */ + protected EList values; + + /** + * + * + * @generated + */ + protected QueueExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getQueueExpression(); + } + + /** + * + * + * @generated + */ + public EList getValues() + { + if (values == null) + { + values = new EObjectContainmentEList(Expression.class, this, FiacrePackage.QUEUE_EXPRESSION__VALUES); + } + return values; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.QUEUE_EXPRESSION__VALUES: + return ((InternalEList)getValues()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.QUEUE_EXPRESSION__VALUES: + return getValues(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.QUEUE_EXPRESSION__VALUES: + getValues().clear(); + getValues().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.QUEUE_EXPRESSION__VALUES: + getValues().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.QUEUE_EXPRESSION__VALUES: + return values != null && !values.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //QueueExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/QueueTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/QueueTypeImpl.java new file mode 100644 index 0000000..ab39460 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/QueueTypeImpl.java @@ -0,0 +1,276 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.QueueType; +import fr.irit.fiacre.xtext.fiacre.Type; + +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; + +/** + * + * An implementation of the model object 'Queue Type'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.QueueTypeImpl#getSize Size}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.QueueTypeImpl#getType Type}
    • + *
    + * + * @generated + */ +public class QueueTypeImpl extends TypeImpl implements QueueType +{ + /** + * The cached value of the '{@link #getSize() Size}' containment reference. + * + * + * @see #getSize() + * @generated + * @ordered + */ + protected Expression size; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected Type type; + + /** + * + * + * @generated + */ + protected QueueTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getQueueType(); + } + + /** + * + * + * @generated + */ + public Expression getSize() + { + return size; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSize(Expression newSize, NotificationChain msgs) + { + Expression oldSize = size; + size = newSize; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.QUEUE_TYPE__SIZE, oldSize, newSize); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSize(Expression newSize) + { + if (newSize != size) + { + NotificationChain msgs = null; + if (size != null) + msgs = ((InternalEObject)size).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.QUEUE_TYPE__SIZE, null, msgs); + if (newSize != null) + msgs = ((InternalEObject)newSize).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.QUEUE_TYPE__SIZE, null, msgs); + msgs = basicSetSize(newSize, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.QUEUE_TYPE__SIZE, newSize, newSize)); + } + + /** + * + * + * @generated + */ + public Type getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(Type newType, NotificationChain msgs) + { + Type oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.QUEUE_TYPE__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(Type newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.QUEUE_TYPE__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.QUEUE_TYPE__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.QUEUE_TYPE__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.QUEUE_TYPE__SIZE: + return basicSetSize(null, msgs); + case FiacrePackage.QUEUE_TYPE__TYPE: + return basicSetType(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.QUEUE_TYPE__SIZE: + return getSize(); + case FiacrePackage.QUEUE_TYPE__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.QUEUE_TYPE__SIZE: + setSize((Expression)newValue); + return; + case FiacrePackage.QUEUE_TYPE__TYPE: + setType((Type)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.QUEUE_TYPE__SIZE: + setSize((Expression)null); + return; + case FiacrePackage.QUEUE_TYPE__TYPE: + setType((Type)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.QUEUE_TYPE__SIZE: + return size != null; + case FiacrePackage.QUEUE_TYPE__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //QueueTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RangeTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RangeTypeImpl.java new file mode 100644 index 0000000..755c7d0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RangeTypeImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RangeType; + +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; + +/** + * + * An implementation of the model object 'Range Type'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RangeTypeImpl#getMinimum Minimum}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RangeTypeImpl#getMaximum Maximum}
    • + *
    + * + * @generated + */ +public class RangeTypeImpl extends TypeImpl implements RangeType +{ + /** + * The cached value of the '{@link #getMinimum() Minimum}' containment reference. + * + * + * @see #getMinimum() + * @generated + * @ordered + */ + protected Expression minimum; + + /** + * The cached value of the '{@link #getMaximum() Maximum}' containment reference. + * + * + * @see #getMaximum() + * @generated + * @ordered + */ + protected Expression maximum; + + /** + * + * + * @generated + */ + protected RangeTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRangeType(); + } + + /** + * + * + * @generated + */ + public Expression getMinimum() + { + return minimum; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMinimum(Expression newMinimum, NotificationChain msgs) + { + Expression oldMinimum = minimum; + minimum = newMinimum; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.RANGE_TYPE__MINIMUM, oldMinimum, newMinimum); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMinimum(Expression newMinimum) + { + if (newMinimum != minimum) + { + NotificationChain msgs = null; + if (minimum != null) + msgs = ((InternalEObject)minimum).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RANGE_TYPE__MINIMUM, null, msgs); + if (newMinimum != null) + msgs = ((InternalEObject)newMinimum).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RANGE_TYPE__MINIMUM, null, msgs); + msgs = basicSetMinimum(newMinimum, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.RANGE_TYPE__MINIMUM, newMinimum, newMinimum)); + } + + /** + * + * + * @generated + */ + public Expression getMaximum() + { + return maximum; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMaximum(Expression newMaximum, NotificationChain msgs) + { + Expression oldMaximum = maximum; + maximum = newMaximum; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.RANGE_TYPE__MAXIMUM, oldMaximum, newMaximum); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMaximum(Expression newMaximum) + { + if (newMaximum != maximum) + { + NotificationChain msgs = null; + if (maximum != null) + msgs = ((InternalEObject)maximum).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RANGE_TYPE__MAXIMUM, null, msgs); + if (newMaximum != null) + msgs = ((InternalEObject)newMaximum).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RANGE_TYPE__MAXIMUM, null, msgs); + msgs = basicSetMaximum(newMaximum, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.RANGE_TYPE__MAXIMUM, newMaximum, newMaximum)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.RANGE_TYPE__MINIMUM: + return basicSetMinimum(null, msgs); + case FiacrePackage.RANGE_TYPE__MAXIMUM: + return basicSetMaximum(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.RANGE_TYPE__MINIMUM: + return getMinimum(); + case FiacrePackage.RANGE_TYPE__MAXIMUM: + return getMaximum(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.RANGE_TYPE__MINIMUM: + setMinimum((Expression)newValue); + return; + case FiacrePackage.RANGE_TYPE__MAXIMUM: + setMaximum((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.RANGE_TYPE__MINIMUM: + setMinimum((Expression)null); + return; + case FiacrePackage.RANGE_TYPE__MAXIMUM: + setMaximum((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.RANGE_TYPE__MINIMUM: + return minimum != null; + case FiacrePackage.RANGE_TYPE__MAXIMUM: + return maximum != null; + } + return super.eIsSet(featureID); + } + +} //RangeTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReceiveStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReceiveStatementImpl.java new file mode 100644 index 0000000..d0e1dbb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReceiveStatementImpl.java @@ -0,0 +1,322 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Pattern; +import fr.irit.fiacre.xtext.fiacre.ReceiveStatement; + +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; + +/** + * + * An implementation of the model object 'Receive Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ReceiveStatementImpl#getPort Port}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ReceiveStatementImpl#getPatterns Patterns}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ReceiveStatementImpl#getExp Exp}
    • + *
    + * + * @generated + */ +public class ReceiveStatementImpl extends PatternStatementImpl implements ReceiveStatement +{ + /** + * The cached value of the '{@link #getPort() Port}' containment reference. + * + * + * @see #getPort() + * @generated + * @ordered + */ + protected Pattern port; + + /** + * The cached value of the '{@link #getPatterns() Patterns}' containment reference list. + * + * + * @see #getPatterns() + * @generated + * @ordered + */ + protected EList patterns; + + /** + * The cached value of the '{@link #getExp() Exp}' containment reference. + * + * + * @see #getExp() + * @generated + * @ordered + */ + protected Expression exp; + + /** + * + * + * @generated + */ + protected ReceiveStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getReceiveStatement(); + } + + /** + * + * + * @generated + */ + public Pattern getPort() + { + return port; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetPort(Pattern newPort, NotificationChain msgs) + { + Pattern oldPort = port; + port = newPort; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.RECEIVE_STATEMENT__PORT, oldPort, newPort); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setPort(Pattern newPort) + { + if (newPort != port) + { + NotificationChain msgs = null; + if (port != null) + msgs = ((InternalEObject)port).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RECEIVE_STATEMENT__PORT, null, msgs); + if (newPort != null) + msgs = ((InternalEObject)newPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RECEIVE_STATEMENT__PORT, null, msgs); + msgs = basicSetPort(newPort, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.RECEIVE_STATEMENT__PORT, newPort, newPort)); + } + + /** + * + * + * @generated + */ + public EList getPatterns() + { + if (patterns == null) + { + patterns = new EObjectContainmentEList(Pattern.class, this, FiacrePackage.RECEIVE_STATEMENT__PATTERNS); + } + return patterns; + } + + /** + * + * + * @generated + */ + public Expression getExp() + { + return exp; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExp(Expression newExp, NotificationChain msgs) + { + Expression oldExp = exp; + exp = newExp; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.RECEIVE_STATEMENT__EXP, oldExp, newExp); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setExp(Expression newExp) + { + if (newExp != exp) + { + NotificationChain msgs = null; + if (exp != null) + msgs = ((InternalEObject)exp).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RECEIVE_STATEMENT__EXP, null, msgs); + if (newExp != null) + msgs = ((InternalEObject)newExp).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RECEIVE_STATEMENT__EXP, null, msgs); + msgs = basicSetExp(newExp, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.RECEIVE_STATEMENT__EXP, newExp, newExp)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.RECEIVE_STATEMENT__PORT: + return basicSetPort(null, msgs); + case FiacrePackage.RECEIVE_STATEMENT__PATTERNS: + return ((InternalEList)getPatterns()).basicRemove(otherEnd, msgs); + case FiacrePackage.RECEIVE_STATEMENT__EXP: + return basicSetExp(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.RECEIVE_STATEMENT__PORT: + return getPort(); + case FiacrePackage.RECEIVE_STATEMENT__PATTERNS: + return getPatterns(); + case FiacrePackage.RECEIVE_STATEMENT__EXP: + return getExp(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.RECEIVE_STATEMENT__PORT: + setPort((Pattern)newValue); + return; + case FiacrePackage.RECEIVE_STATEMENT__PATTERNS: + getPatterns().clear(); + getPatterns().addAll((Collection)newValue); + return; + case FiacrePackage.RECEIVE_STATEMENT__EXP: + setExp((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECEIVE_STATEMENT__PORT: + setPort((Pattern)null); + return; + case FiacrePackage.RECEIVE_STATEMENT__PATTERNS: + getPatterns().clear(); + return; + case FiacrePackage.RECEIVE_STATEMENT__EXP: + setExp((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECEIVE_STATEMENT__PORT: + return port != null; + case FiacrePackage.RECEIVE_STATEMENT__PATTERNS: + return patterns != null && !patterns.isEmpty(); + case FiacrePackage.RECEIVE_STATEMENT__EXP: + return exp != null; + } + return super.eIsSet(featureID); + } + +} //ReceiveStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordAccessExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordAccessExpressionImpl.java new file mode 100644 index 0000000..141fdbb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordAccessExpressionImpl.java @@ -0,0 +1,270 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.IdentifierExpression; +import fr.irit.fiacre.xtext.fiacre.RecordAccessExpression; +import fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration; + +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; + +/** + * + * An implementation of the model object 'Record Access Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RecordAccessExpressionImpl#getChild Child}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RecordAccessExpressionImpl#getField Field}
    • + *
    + * + * @generated + */ +public class RecordAccessExpressionImpl extends IdentifierExpressionImpl implements RecordAccessExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected IdentifierExpression child; + + /** + * The cached value of the '{@link #getField() Field}' reference. + * + * + * @see #getField() + * @generated + * @ordered + */ + protected RecordFieldDeclaration field; + + /** + * + * + * @generated + */ + protected RecordAccessExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRecordAccessExpression(); + } + + /** + * + * + * @generated + */ + public IdentifierExpression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(IdentifierExpression newChild, NotificationChain msgs) + { + IdentifierExpression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.RECORD_ACCESS_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(IdentifierExpression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RECORD_ACCESS_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RECORD_ACCESS_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.RECORD_ACCESS_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + public RecordFieldDeclaration getField() + { + if (field != null && field.eIsProxy()) + { + InternalEObject oldField = (InternalEObject)field; + field = (RecordFieldDeclaration)eResolveProxy(oldField); + if (field != oldField) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.RECORD_ACCESS_EXPRESSION__FIELD, oldField, field)); + } + } + return field; + } + + /** + * + * + * @generated + */ + public RecordFieldDeclaration basicGetField() + { + return field; + } + + /** + * + * + * @generated + */ + public void setField(RecordFieldDeclaration newField) + { + RecordFieldDeclaration oldField = field; + field = newField; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.RECORD_ACCESS_EXPRESSION__FIELD, oldField, field)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.RECORD_ACCESS_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.RECORD_ACCESS_EXPRESSION__CHILD: + return getChild(); + case FiacrePackage.RECORD_ACCESS_EXPRESSION__FIELD: + if (resolve) return getField(); + return basicGetField(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.RECORD_ACCESS_EXPRESSION__CHILD: + setChild((IdentifierExpression)newValue); + return; + case FiacrePackage.RECORD_ACCESS_EXPRESSION__FIELD: + setField((RecordFieldDeclaration)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECORD_ACCESS_EXPRESSION__CHILD: + setChild((IdentifierExpression)null); + return; + case FiacrePackage.RECORD_ACCESS_EXPRESSION__FIELD: + setField((RecordFieldDeclaration)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECORD_ACCESS_EXPRESSION__CHILD: + return child != null; + case FiacrePackage.RECORD_ACCESS_EXPRESSION__FIELD: + return field != null; + } + return super.eIsSet(featureID); + } + +} //RecordAccessExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordAccessPatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordAccessPatternImpl.java new file mode 100644 index 0000000..f8cca69 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordAccessPatternImpl.java @@ -0,0 +1,270 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.IdentifierPattern; +import fr.irit.fiacre.xtext.fiacre.RecordAccessPattern; +import fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration; + +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; + +/** + * + * An implementation of the model object 'Record Access Pattern'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RecordAccessPatternImpl#getSource Source}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RecordAccessPatternImpl#getField Field}
    • + *
    + * + * @generated + */ +public class RecordAccessPatternImpl extends IdentifierPatternImpl implements RecordAccessPattern +{ + /** + * The cached value of the '{@link #getSource() Source}' containment reference. + * + * + * @see #getSource() + * @generated + * @ordered + */ + protected IdentifierPattern source; + + /** + * The cached value of the '{@link #getField() Field}' reference. + * + * + * @see #getField() + * @generated + * @ordered + */ + protected RecordFieldDeclaration field; + + /** + * + * + * @generated + */ + protected RecordAccessPatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRecordAccessPattern(); + } + + /** + * + * + * @generated + */ + public IdentifierPattern getSource() + { + return source; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSource(IdentifierPattern newSource, NotificationChain msgs) + { + IdentifierPattern oldSource = source; + source = newSource; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.RECORD_ACCESS_PATTERN__SOURCE, oldSource, newSource); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSource(IdentifierPattern newSource) + { + if (newSource != source) + { + NotificationChain msgs = null; + if (source != null) + msgs = ((InternalEObject)source).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RECORD_ACCESS_PATTERN__SOURCE, null, msgs); + if (newSource != null) + msgs = ((InternalEObject)newSource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RECORD_ACCESS_PATTERN__SOURCE, null, msgs); + msgs = basicSetSource(newSource, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.RECORD_ACCESS_PATTERN__SOURCE, newSource, newSource)); + } + + /** + * + * + * @generated + */ + public RecordFieldDeclaration getField() + { + if (field != null && field.eIsProxy()) + { + InternalEObject oldField = (InternalEObject)field; + field = (RecordFieldDeclaration)eResolveProxy(oldField); + if (field != oldField) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.RECORD_ACCESS_PATTERN__FIELD, oldField, field)); + } + } + return field; + } + + /** + * + * + * @generated + */ + public RecordFieldDeclaration basicGetField() + { + return field; + } + + /** + * + * + * @generated + */ + public void setField(RecordFieldDeclaration newField) + { + RecordFieldDeclaration oldField = field; + field = newField; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.RECORD_ACCESS_PATTERN__FIELD, oldField, field)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.RECORD_ACCESS_PATTERN__SOURCE: + return basicSetSource(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.RECORD_ACCESS_PATTERN__SOURCE: + return getSource(); + case FiacrePackage.RECORD_ACCESS_PATTERN__FIELD: + if (resolve) return getField(); + return basicGetField(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.RECORD_ACCESS_PATTERN__SOURCE: + setSource((IdentifierPattern)newValue); + return; + case FiacrePackage.RECORD_ACCESS_PATTERN__FIELD: + setField((RecordFieldDeclaration)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECORD_ACCESS_PATTERN__SOURCE: + setSource((IdentifierPattern)null); + return; + case FiacrePackage.RECORD_ACCESS_PATTERN__FIELD: + setField((RecordFieldDeclaration)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECORD_ACCESS_PATTERN__SOURCE: + return source != null; + case FiacrePackage.RECORD_ACCESS_PATTERN__FIELD: + return field != null; + } + return super.eIsSet(featureID); + } + +} //RecordAccessPatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordExpressionImpl.java new file mode 100644 index 0000000..bbfb821 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordExpressionImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.FieldExpression; +import fr.irit.fiacre.xtext.fiacre.RecordExpression; + +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; + +/** + * + * An implementation of the model object 'Record Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RecordExpressionImpl#getFields Fields}
    • + *
    + * + * @generated + */ +public class RecordExpressionImpl extends ValueExpressionImpl implements RecordExpression +{ + /** + * The cached value of the '{@link #getFields() Fields}' containment reference list. + * + * + * @see #getFields() + * @generated + * @ordered + */ + protected EList fields; + + /** + * + * + * @generated + */ + protected RecordExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRecordExpression(); + } + + /** + * + * + * @generated + */ + public EList getFields() + { + if (fields == null) + { + fields = new EObjectContainmentEList(FieldExpression.class, this, FiacrePackage.RECORD_EXPRESSION__FIELDS); + } + return fields; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.RECORD_EXPRESSION__FIELDS: + return ((InternalEList)getFields()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.RECORD_EXPRESSION__FIELDS: + return getFields(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.RECORD_EXPRESSION__FIELDS: + getFields().clear(); + getFields().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECORD_EXPRESSION__FIELDS: + getFields().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECORD_EXPRESSION__FIELDS: + return fields != null && !fields.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //RecordExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldDeclarationImpl.java new file mode 100644 index 0000000..1214f4e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldDeclarationImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Record Field Declaration'. + * + * + * @generated + */ +public class RecordFieldDeclarationImpl extends NamedElementImpl implements RecordFieldDeclaration +{ + /** + * + * + * @generated + */ + protected RecordFieldDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRecordFieldDeclaration(); + } + +} //RecordFieldDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldDeclarationUseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldDeclarationUseImpl.java new file mode 100644 index 0000000..96d2f1d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldDeclarationUseImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Record Field Declaration Use'. + * + * + * @generated + */ +public class RecordFieldDeclarationUseImpl extends MinimalEObjectImpl.Container implements RecordFieldDeclarationUse +{ + /** + * + * + * @generated + */ + protected RecordFieldDeclarationUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRecordFieldDeclarationUse(); + } + +} //RecordFieldDeclarationUseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldsImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldsImpl.java new file mode 100644 index 0000000..dbbdbfb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordFieldsImpl.java @@ -0,0 +1,252 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration; +import fr.irit.fiacre.xtext.fiacre.RecordFields; +import fr.irit.fiacre.xtext.fiacre.Type; + +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; + +/** + * + * An implementation of the model object 'Record Fields'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RecordFieldsImpl#getFields Fields}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RecordFieldsImpl#getType Type}
    • + *
    + * + * @generated + */ +public class RecordFieldsImpl extends MinimalEObjectImpl.Container implements RecordFields +{ + /** + * The cached value of the '{@link #getFields() Fields}' containment reference list. + * + * + * @see #getFields() + * @generated + * @ordered + */ + protected EList fields; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected Type type; + + /** + * + * + * @generated + */ + protected RecordFieldsImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRecordFields(); + } + + /** + * + * + * @generated + */ + public EList getFields() + { + if (fields == null) + { + fields = new EObjectContainmentEList(RecordFieldDeclaration.class, this, FiacrePackage.RECORD_FIELDS__FIELDS); + } + return fields; + } + + /** + * + * + * @generated + */ + public Type getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(Type newType, NotificationChain msgs) + { + Type oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.RECORD_FIELDS__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(Type newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RECORD_FIELDS__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RECORD_FIELDS__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.RECORD_FIELDS__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.RECORD_FIELDS__FIELDS: + return ((InternalEList)getFields()).basicRemove(otherEnd, msgs); + case FiacrePackage.RECORD_FIELDS__TYPE: + return basicSetType(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.RECORD_FIELDS__FIELDS: + return getFields(); + case FiacrePackage.RECORD_FIELDS__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.RECORD_FIELDS__FIELDS: + getFields().clear(); + getFields().addAll((Collection)newValue); + return; + case FiacrePackage.RECORD_FIELDS__TYPE: + setType((Type)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECORD_FIELDS__FIELDS: + getFields().clear(); + return; + case FiacrePackage.RECORD_FIELDS__TYPE: + setType((Type)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECORD_FIELDS__FIELDS: + return fields != null && !fields.isEmpty(); + case FiacrePackage.RECORD_FIELDS__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //RecordFieldsImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordTypeImpl.java new file mode 100644 index 0000000..1abb51e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RecordTypeImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RecordFields; +import fr.irit.fiacre.xtext.fiacre.RecordType; + +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; + +/** + * + * An implementation of the model object 'Record Type'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RecordTypeImpl#getFields Fields}
    • + *
    + * + * @generated + */ +public class RecordTypeImpl extends TypeImpl implements RecordType +{ + /** + * The cached value of the '{@link #getFields() Fields}' containment reference list. + * + * + * @see #getFields() + * @generated + * @ordered + */ + protected EList fields; + + /** + * + * + * @generated + */ + protected RecordTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRecordType(); + } + + /** + * + * + * @generated + */ + public EList getFields() + { + if (fields == null) + { + fields = new EObjectContainmentEList(RecordFields.class, this, FiacrePackage.RECORD_TYPE__FIELDS); + } + return fields; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.RECORD_TYPE__FIELDS: + return ((InternalEList)getFields()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.RECORD_TYPE__FIELDS: + return getFields(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.RECORD_TYPE__FIELDS: + getFields().clear(); + getFields().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECORD_TYPE__FIELDS: + getFields().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.RECORD_TYPE__FIELDS: + return fields != null && !fields.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //RecordTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferenceDeclarationUseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferenceDeclarationUseImpl.java new file mode 100644 index 0000000..9df3412 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferenceDeclarationUseImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Reference Declaration Use'. + * + * + * @generated + */ +public class ReferenceDeclarationUseImpl extends MinimalEObjectImpl.Container implements ReferenceDeclarationUse +{ + /** + * + * + * @generated + */ + protected ReferenceDeclarationUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getReferenceDeclarationUse(); + } + +} //ReferenceDeclarationUseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferenceExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferenceExpressionImpl.java new file mode 100644 index 0000000..9011c85 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferenceExpressionImpl.java @@ -0,0 +1,183 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.ReferenceExpression; + +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; + +/** + * + * An implementation of the model object 'Reference Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ReferenceExpressionImpl#getDeclaration Declaration}
    • + *
    + * + * @generated + */ +public class ReferenceExpressionImpl extends ExpressionImpl implements ReferenceExpression +{ + /** + * The cached value of the '{@link #getDeclaration() Declaration}' reference. + * + * + * @see #getDeclaration() + * @generated + * @ordered + */ + protected ReferenceDeclarationUse declaration; + + /** + * + * + * @generated + */ + protected ReferenceExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getReferenceExpression(); + } + + /** + * + * + * @generated + */ + public ReferenceDeclarationUse getDeclaration() + { + if (declaration != null && declaration.eIsProxy()) + { + InternalEObject oldDeclaration = (InternalEObject)declaration; + declaration = (ReferenceDeclarationUse)eResolveProxy(oldDeclaration); + if (declaration != oldDeclaration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.REFERENCE_EXPRESSION__DECLARATION, oldDeclaration, declaration)); + } + } + return declaration; + } + + /** + * + * + * @generated + */ + public ReferenceDeclarationUse basicGetDeclaration() + { + return declaration; + } + + /** + * + * + * @generated + */ + public void setDeclaration(ReferenceDeclarationUse newDeclaration) + { + ReferenceDeclarationUse oldDeclaration = declaration; + declaration = newDeclaration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.REFERENCE_EXPRESSION__DECLARATION, oldDeclaration, declaration)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.REFERENCE_EXPRESSION__DECLARATION: + if (resolve) return getDeclaration(); + return basicGetDeclaration(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.REFERENCE_EXPRESSION__DECLARATION: + setDeclaration((ReferenceDeclarationUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.REFERENCE_EXPRESSION__DECLARATION: + setDeclaration((ReferenceDeclarationUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.REFERENCE_EXPRESSION__DECLARATION: + return declaration != null; + } + return super.eIsSet(featureID); + } + +} //ReferenceExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferencedTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferencedTypeImpl.java new file mode 100644 index 0000000..5926f87 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReferencedTypeImpl.java @@ -0,0 +1,183 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ReferencedType; +import fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse; + +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; + +/** + * + * An implementation of the model object 'Referenced Type'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ReferencedTypeImpl#getType Type}
    • + *
    + * + * @generated + */ +public class ReferencedTypeImpl extends TypeImpl implements ReferencedType +{ + /** + * The cached value of the '{@link #getType() Type}' reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected TypeDeclarationUse type; + + /** + * + * + * @generated + */ + protected ReferencedTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getReferencedType(); + } + + /** + * + * + * @generated + */ + public TypeDeclarationUse getType() + { + if (type != null && type.eIsProxy()) + { + InternalEObject oldType = (InternalEObject)type; + type = (TypeDeclarationUse)eResolveProxy(oldType); + if (type != oldType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.REFERENCED_TYPE__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public TypeDeclarationUse basicGetType() + { + return type; + } + + /** + * + * + * @generated + */ + public void setType(TypeDeclarationUse newType) + { + TypeDeclarationUse oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.REFERENCED_TYPE__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.REFERENCED_TYPE__TYPE: + if (resolve) return getType(); + return basicGetType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.REFERENCED_TYPE__TYPE: + setType((TypeDeclarationUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.REFERENCED_TYPE__TYPE: + setType((TypeDeclarationUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.REFERENCED_TYPE__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //ReferencedTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RequirementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RequirementImpl.java new file mode 100644 index 0000000..f7d1d16 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RequirementImpl.java @@ -0,0 +1,311 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.PropertyDeclaration; +import fr.irit.fiacre.xtext.fiacre.Requirement; + +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 org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Requirement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RequirementImpl#getProperty Property}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RequirementImpl#getPositive Positive}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RequirementImpl#getNegative Negative}
    • + *
    + * + * @generated + */ +public class RequirementImpl extends MinimalEObjectImpl.Container implements Requirement +{ + /** + * The cached value of the '{@link #getProperty() Property}' reference. + * + * + * @see #getProperty() + * @generated + * @ordered + */ + protected PropertyDeclaration property; + + /** + * The default value of the '{@link #getPositive() Positive}' attribute. + * + * + * @see #getPositive() + * @generated + * @ordered + */ + protected static final String POSITIVE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getPositive() Positive}' attribute. + * + * + * @see #getPositive() + * @generated + * @ordered + */ + protected String positive = POSITIVE_EDEFAULT; + + /** + * The default value of the '{@link #getNegative() Negative}' attribute. + * + * + * @see #getNegative() + * @generated + * @ordered + */ + protected static final String NEGATIVE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getNegative() Negative}' attribute. + * + * + * @see #getNegative() + * @generated + * @ordered + */ + protected String negative = NEGATIVE_EDEFAULT; + + /** + * + * + * @generated + */ + protected RequirementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRequirement(); + } + + /** + * + * + * @generated + */ + public PropertyDeclaration getProperty() + { + if (property != null && property.eIsProxy()) + { + InternalEObject oldProperty = (InternalEObject)property; + property = (PropertyDeclaration)eResolveProxy(oldProperty); + if (property != oldProperty) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.REQUIREMENT__PROPERTY, oldProperty, property)); + } + } + return property; + } + + /** + * + * + * @generated + */ + public PropertyDeclaration basicGetProperty() + { + return property; + } + + /** + * + * + * @generated + */ + public void setProperty(PropertyDeclaration newProperty) + { + PropertyDeclaration oldProperty = property; + property = newProperty; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.REQUIREMENT__PROPERTY, oldProperty, property)); + } + + /** + * + * + * @generated + */ + public String getPositive() + { + return positive; + } + + /** + * + * + * @generated + */ + public void setPositive(String newPositive) + { + String oldPositive = positive; + positive = newPositive; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.REQUIREMENT__POSITIVE, oldPositive, positive)); + } + + /** + * + * + * @generated + */ + public String getNegative() + { + return negative; + } + + /** + * + * + * @generated + */ + public void setNegative(String newNegative) + { + String oldNegative = negative; + negative = newNegative; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.REQUIREMENT__NEGATIVE, oldNegative, negative)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.REQUIREMENT__PROPERTY: + if (resolve) return getProperty(); + return basicGetProperty(); + case FiacrePackage.REQUIREMENT__POSITIVE: + return getPositive(); + case FiacrePackage.REQUIREMENT__NEGATIVE: + return getNegative(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.REQUIREMENT__PROPERTY: + setProperty((PropertyDeclaration)newValue); + return; + case FiacrePackage.REQUIREMENT__POSITIVE: + setPositive((String)newValue); + return; + case FiacrePackage.REQUIREMENT__NEGATIVE: + setNegative((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.REQUIREMENT__PROPERTY: + setProperty((PropertyDeclaration)null); + return; + case FiacrePackage.REQUIREMENT__POSITIVE: + setPositive(POSITIVE_EDEFAULT); + return; + case FiacrePackage.REQUIREMENT__NEGATIVE: + setNegative(NEGATIVE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.REQUIREMENT__PROPERTY: + return property != null; + case FiacrePackage.REQUIREMENT__POSITIVE: + return POSITIVE_EDEFAULT == null ? positive != null : !POSITIVE_EDEFAULT.equals(positive); + case FiacrePackage.REQUIREMENT__NEGATIVE: + return NEGATIVE_EDEFAULT == null ? negative != null : !NEGATIVE_EDEFAULT.equals(negative); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (positive: "); + result.append(positive); + result.append(", negative: "); + result.append(negative); + result.append(')'); + return result.toString(); + } + +} //RequirementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReturnStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReturnStatementImpl.java new file mode 100644 index 0000000..99c88f4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ReturnStatementImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ReturnStatement; + +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; + +/** + * + * An implementation of the model object 'Return Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ReturnStatementImpl#getExpression Expression}
    • + *
    + * + * @generated + */ +public class ReturnStatementImpl extends StatementImpl implements ReturnStatement +{ + /** + * The cached value of the '{@link #getExpression() Expression}' containment reference. + * + * + * @see #getExpression() + * @generated + * @ordered + */ + protected Expression expression; + + /** + * + * + * @generated + */ + protected ReturnStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getReturnStatement(); + } + + /** + * + * + * @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, FiacrePackage.RETURN_STATEMENT__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 - FiacrePackage.RETURN_STATEMENT__EXPRESSION, null, msgs); + if (newExpression != null) + msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.RETURN_STATEMENT__EXPRESSION, null, msgs); + msgs = basicSetExpression(newExpression, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.RETURN_STATEMENT__EXPRESSION, newExpression, newExpression)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.RETURN_STATEMENT__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 FiacrePackage.RETURN_STATEMENT__EXPRESSION: + return getExpression(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.RETURN_STATEMENT__EXPRESSION: + setExpression((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.RETURN_STATEMENT__EXPRESSION: + setExpression((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.RETURN_STATEMENT__EXPRESSION: + return expression != null; + } + return super.eIsSet(featureID); + } + +} //ReturnStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RootDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RootDeclarationImpl.java new file mode 100644 index 0000000..93c3780 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RootDeclarationImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RootDeclaration; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Root Declaration'. + * + * + * @generated + */ +public class RootDeclarationImpl extends MinimalEObjectImpl.Container implements RootDeclaration +{ + /** + * + * + * @generated + */ + protected RootDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRootDeclaration(); + } + +} //RootDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RootImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RootImpl.java new file mode 100644 index 0000000..5bba650 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/RootImpl.java @@ -0,0 +1,227 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Root; +import fr.irit.fiacre.xtext.fiacre.RootDeclaration; + +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.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +/** + * + * An implementation of the model object 'Root'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RootImpl#getDeclaration Declaration}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.RootImpl#getObserved Observed}
    • + *
    + * + * @generated + */ +public class RootImpl extends MinimalEObjectImpl.Container implements Root +{ + /** + * The cached value of the '{@link #getDeclaration() Declaration}' reference. + * + * + * @see #getDeclaration() + * @generated + * @ordered + */ + protected RootDeclaration declaration; + + /** + * The cached value of the '{@link #getObserved() Observed}' reference list. + * + * + * @see #getObserved() + * @generated + * @ordered + */ + protected EList observed; + + /** + * + * + * @generated + */ + protected RootImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getRoot(); + } + + /** + * + * + * @generated + */ + public RootDeclaration getDeclaration() + { + if (declaration != null && declaration.eIsProxy()) + { + InternalEObject oldDeclaration = (InternalEObject)declaration; + declaration = (RootDeclaration)eResolveProxy(oldDeclaration); + if (declaration != oldDeclaration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.ROOT__DECLARATION, oldDeclaration, declaration)); + } + } + return declaration; + } + + /** + * + * + * @generated + */ + public RootDeclaration basicGetDeclaration() + { + return declaration; + } + + /** + * + * + * @generated + */ + public void setDeclaration(RootDeclaration newDeclaration) + { + RootDeclaration oldDeclaration = declaration; + declaration = newDeclaration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.ROOT__DECLARATION, oldDeclaration, declaration)); + } + + /** + * + * + * @generated + */ + public EList getObserved() + { + if (observed == null) + { + observed = new EObjectResolvingEList(RootDeclaration.class, this, FiacrePackage.ROOT__OBSERVED); + } + return observed; + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.ROOT__DECLARATION: + if (resolve) return getDeclaration(); + return basicGetDeclaration(); + case FiacrePackage.ROOT__OBSERVED: + return getObserved(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.ROOT__DECLARATION: + setDeclaration((RootDeclaration)newValue); + return; + case FiacrePackage.ROOT__OBSERVED: + getObserved().clear(); + getObserved().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.ROOT__DECLARATION: + setDeclaration((RootDeclaration)null); + return; + case FiacrePackage.ROOT__OBSERVED: + getObserved().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.ROOT__DECLARATION: + return declaration != null; + case FiacrePackage.ROOT__OBSERVED: + return observed != null && !observed.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //RootImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SelectStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SelectStatementImpl.java new file mode 100644 index 0000000..38a252b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SelectStatementImpl.java @@ -0,0 +1,348 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.RangeType; +import fr.irit.fiacre.xtext.fiacre.SelectStatement; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +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; + +/** + * + * An implementation of the model object 'Select Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.SelectStatementImpl#getBody Body}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.SelectStatementImpl#getIndex Index}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.SelectStatementImpl#getType Type}
    • + *
    + * + * @generated + */ +public class SelectStatementImpl extends StatementImpl implements SelectStatement +{ + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Statement body; + + /** + * The cached value of the '{@link #getIndex() Index}' containment reference. + * + * + * @see #getIndex() + * @generated + * @ordered + */ + protected VariableDeclaration index; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected RangeType type; + + /** + * + * + * @generated + */ + protected SelectStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getSelectStatement(); + } + + /** + * + * + * @generated + */ + public Statement getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Statement newBody, NotificationChain msgs) + { + Statement oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.SELECT_STATEMENT__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setBody(Statement newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SELECT_STATEMENT__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SELECT_STATEMENT__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.SELECT_STATEMENT__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + public VariableDeclaration getIndex() + { + return index; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetIndex(VariableDeclaration newIndex, NotificationChain msgs) + { + VariableDeclaration oldIndex = index; + index = newIndex; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.SELECT_STATEMENT__INDEX, oldIndex, newIndex); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setIndex(VariableDeclaration newIndex) + { + if (newIndex != index) + { + NotificationChain msgs = null; + if (index != null) + msgs = ((InternalEObject)index).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SELECT_STATEMENT__INDEX, null, msgs); + if (newIndex != null) + msgs = ((InternalEObject)newIndex).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SELECT_STATEMENT__INDEX, null, msgs); + msgs = basicSetIndex(newIndex, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.SELECT_STATEMENT__INDEX, newIndex, newIndex)); + } + + /** + * + * + * @generated + */ + public RangeType getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(RangeType newType, NotificationChain msgs) + { + RangeType oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.SELECT_STATEMENT__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(RangeType newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SELECT_STATEMENT__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SELECT_STATEMENT__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.SELECT_STATEMENT__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.SELECT_STATEMENT__BODY: + return basicSetBody(null, msgs); + case FiacrePackage.SELECT_STATEMENT__INDEX: + return basicSetIndex(null, msgs); + case FiacrePackage.SELECT_STATEMENT__TYPE: + return basicSetType(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.SELECT_STATEMENT__BODY: + return getBody(); + case FiacrePackage.SELECT_STATEMENT__INDEX: + return getIndex(); + case FiacrePackage.SELECT_STATEMENT__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.SELECT_STATEMENT__BODY: + setBody((Statement)newValue); + return; + case FiacrePackage.SELECT_STATEMENT__INDEX: + setIndex((VariableDeclaration)newValue); + return; + case FiacrePackage.SELECT_STATEMENT__TYPE: + setType((RangeType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.SELECT_STATEMENT__BODY: + setBody((Statement)null); + return; + case FiacrePackage.SELECT_STATEMENT__INDEX: + setIndex((VariableDeclaration)null); + return; + case FiacrePackage.SELECT_STATEMENT__TYPE: + setType((RangeType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.SELECT_STATEMENT__BODY: + return body != null; + case FiacrePackage.SELECT_STATEMENT__INDEX: + return index != null; + case FiacrePackage.SELECT_STATEMENT__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //SelectStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SendStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SendStatementImpl.java new file mode 100644 index 0000000..7fde85f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SendStatementImpl.java @@ -0,0 +1,251 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Pattern; +import fr.irit.fiacre.xtext.fiacre.SendStatement; + +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; + +/** + * + * An implementation of the model object 'Send Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.SendStatementImpl#getPort Port}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.SendStatementImpl#getValues Values}
    • + *
    + * + * @generated + */ +public class SendStatementImpl extends PatternStatementImpl implements SendStatement +{ + /** + * The cached value of the '{@link #getPort() Port}' containment reference. + * + * + * @see #getPort() + * @generated + * @ordered + */ + protected Pattern port; + + /** + * The cached value of the '{@link #getValues() Values}' containment reference list. + * + * + * @see #getValues() + * @generated + * @ordered + */ + protected EList values; + + /** + * + * + * @generated + */ + protected SendStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getSendStatement(); + } + + /** + * + * + * @generated + */ + public Pattern getPort() + { + return port; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetPort(Pattern newPort, NotificationChain msgs) + { + Pattern oldPort = port; + port = newPort; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.SEND_STATEMENT__PORT, oldPort, newPort); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setPort(Pattern newPort) + { + if (newPort != port) + { + NotificationChain msgs = null; + if (port != null) + msgs = ((InternalEObject)port).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SEND_STATEMENT__PORT, null, msgs); + if (newPort != null) + msgs = ((InternalEObject)newPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SEND_STATEMENT__PORT, null, msgs); + msgs = basicSetPort(newPort, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.SEND_STATEMENT__PORT, newPort, newPort)); + } + + /** + * + * + * @generated + */ + public EList getValues() + { + if (values == null) + { + values = new EObjectContainmentEList(Expression.class, this, FiacrePackage.SEND_STATEMENT__VALUES); + } + return values; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.SEND_STATEMENT__PORT: + return basicSetPort(null, msgs); + case FiacrePackage.SEND_STATEMENT__VALUES: + return ((InternalEList)getValues()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.SEND_STATEMENT__PORT: + return getPort(); + case FiacrePackage.SEND_STATEMENT__VALUES: + return getValues(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.SEND_STATEMENT__PORT: + setPort((Pattern)newValue); + return; + case FiacrePackage.SEND_STATEMENT__VALUES: + getValues().clear(); + getValues().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.SEND_STATEMENT__PORT: + setPort((Pattern)null); + return; + case FiacrePackage.SEND_STATEMENT__VALUES: + getValues().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.SEND_STATEMENT__PORT: + return port != null; + case FiacrePackage.SEND_STATEMENT__VALUES: + return values != null && !values.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //SendStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SequencePatternImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SequencePatternImpl.java new file mode 100644 index 0000000..3344e76 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SequencePatternImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.SequencePattern; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Sequence Pattern'. + * + * + * @generated + */ +public class SequencePatternImpl extends PatternPropertyImpl implements SequencePattern +{ + /** + * + * + * @generated + */ + protected SequencePatternImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getSequencePattern(); + } + +} //SequencePatternImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateDeclarationImpl.java new file mode 100644 index 0000000..cca164b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateDeclarationImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.StateDeclaration; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'State Declaration'. + * + * + * @generated + */ +public class StateDeclarationImpl extends NamedElementImpl implements StateDeclaration +{ + /** + * + * + * @generated + */ + protected StateDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getStateDeclaration(); + } + +} //StateDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateEventImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateEventImpl.java new file mode 100644 index 0000000..98e7a2c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateEventImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Observable; +import fr.irit.fiacre.xtext.fiacre.StateEvent; + +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; + +/** + * + * An implementation of the model object 'State Event'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.StateEventImpl#getSubject Subject}
    • + *
    + * + * @generated + */ +public class StateEventImpl extends ObservableEventImpl implements StateEvent +{ + /** + * The cached value of the '{@link #getSubject() Subject}' containment reference. + * + * + * @see #getSubject() + * @generated + * @ordered + */ + protected Observable subject; + + /** + * + * + * @generated + */ + protected StateEventImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getStateEvent(); + } + + /** + * + * + * @generated + */ + public Observable getSubject() + { + return subject; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSubject(Observable newSubject, NotificationChain msgs) + { + Observable oldSubject = subject; + subject = newSubject; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.STATE_EVENT__SUBJECT, oldSubject, newSubject); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSubject(Observable newSubject) + { + if (newSubject != subject) + { + NotificationChain msgs = null; + if (subject != null) + msgs = ((InternalEObject)subject).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.STATE_EVENT__SUBJECT, null, msgs); + if (newSubject != null) + msgs = ((InternalEObject)newSubject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.STATE_EVENT__SUBJECT, null, msgs); + msgs = basicSetSubject(newSubject, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.STATE_EVENT__SUBJECT, newSubject, newSubject)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.STATE_EVENT__SUBJECT: + return basicSetSubject(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.STATE_EVENT__SUBJECT: + return getSubject(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.STATE_EVENT__SUBJECT: + setSubject((Observable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.STATE_EVENT__SUBJECT: + setSubject((Observable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.STATE_EVENT__SUBJECT: + return subject != null; + } + return super.eIsSet(featureID); + } + +} //StateEventImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateSubjectImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateSubjectImpl.java new file mode 100644 index 0000000..830665d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StateSubjectImpl.java @@ -0,0 +1,183 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.StateDeclaration; +import fr.irit.fiacre.xtext.fiacre.StateSubject; + +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; + +/** + * + * An implementation of the model object 'State Subject'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.StateSubjectImpl#getState State}
    • + *
    + * + * @generated + */ +public class StateSubjectImpl extends SubjectImpl implements StateSubject +{ + /** + * The cached value of the '{@link #getState() State}' reference. + * + * + * @see #getState() + * @generated + * @ordered + */ + protected StateDeclaration state; + + /** + * + * + * @generated + */ + protected StateSubjectImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getStateSubject(); + } + + /** + * + * + * @generated + */ + public StateDeclaration getState() + { + if (state != null && state.eIsProxy()) + { + InternalEObject oldState = (InternalEObject)state; + state = (StateDeclaration)eResolveProxy(oldState); + if (state != oldState) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.STATE_SUBJECT__STATE, oldState, state)); + } + } + return state; + } + + /** + * + * + * @generated + */ + public StateDeclaration basicGetState() + { + return state; + } + + /** + * + * + * @generated + */ + public void setState(StateDeclaration newState) + { + StateDeclaration oldState = state; + state = newState; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.STATE_SUBJECT__STATE, oldState, state)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.STATE_SUBJECT__STATE: + if (resolve) return getState(); + return basicGetState(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.STATE_SUBJECT__STATE: + setState((StateDeclaration)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.STATE_SUBJECT__STATE: + setState((StateDeclaration)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.STATE_SUBJECT__STATE: + return state != null; + } + return super.eIsSet(featureID); + } + +} //StateSubjectImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementChoiceImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementChoiceImpl.java new file mode 100644 index 0000000..c57d700 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementChoiceImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.StatementChoice; + +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; + +/** + * + * An implementation of the model object 'Statement Choice'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.StatementChoiceImpl#getChoices Choices}
    • + *
    + * + * @generated + */ +public class StatementChoiceImpl extends StatementImpl implements StatementChoice +{ + /** + * The cached value of the '{@link #getChoices() Choices}' containment reference list. + * + * + * @see #getChoices() + * @generated + * @ordered + */ + protected EList choices; + + /** + * + * + * @generated + */ + protected StatementChoiceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getStatementChoice(); + } + + /** + * + * + * @generated + */ + public EList getChoices() + { + if (choices == null) + { + choices = new EObjectContainmentEList(Statement.class, this, FiacrePackage.STATEMENT_CHOICE__CHOICES); + } + return choices; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.STATEMENT_CHOICE__CHOICES: + return ((InternalEList)getChoices()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.STATEMENT_CHOICE__CHOICES: + return getChoices(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.STATEMENT_CHOICE__CHOICES: + getChoices().clear(); + getChoices().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.STATEMENT_CHOICE__CHOICES: + getChoices().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.STATEMENT_CHOICE__CHOICES: + return choices != null && !choices.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //StatementChoiceImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementImpl.java new file mode 100644 index 0000000..2b73536 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Statement; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Statement'. + * + * + * @generated + */ +public class StatementImpl extends MinimalEObjectImpl.Container implements Statement +{ + /** + * + * + * @generated + */ + protected StatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getStatement(); + } + +} //StatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementSequenceImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementSequenceImpl.java new file mode 100644 index 0000000..d2e16e9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/StatementSequenceImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.StatementSequence; + +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; + +/** + * + * An implementation of the model object 'Statement Sequence'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.StatementSequenceImpl#getStatements Statements}
    • + *
    + * + * @generated + */ +public class StatementSequenceImpl extends StatementImpl implements StatementSequence +{ + /** + * The cached value of the '{@link #getStatements() Statements}' containment reference list. + * + * + * @see #getStatements() + * @generated + * @ordered + */ + protected EList statements; + + /** + * + * + * @generated + */ + protected StatementSequenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getStatementSequence(); + } + + /** + * + * + * @generated + */ + public EList getStatements() + { + if (statements == null) + { + statements = new EObjectContainmentEList(Statement.class, this, FiacrePackage.STATEMENT_SEQUENCE__STATEMENTS); + } + return statements; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.STATEMENT_SEQUENCE__STATEMENTS: + return ((InternalEList)getStatements()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.STATEMENT_SEQUENCE__STATEMENTS: + return getStatements(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.STATEMENT_SEQUENCE__STATEMENTS: + getStatements().clear(); + getStatements().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.STATEMENT_SEQUENCE__STATEMENTS: + getStatements().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.STATEMENT_SEQUENCE__STATEMENTS: + return statements != null && !statements.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //StatementSequenceImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SubjectImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SubjectImpl.java new file mode 100644 index 0000000..dec8698 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SubjectImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Subject; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Subject'. + * + * + * @generated + */ +public class SubjectImpl extends MinimalEObjectImpl.Container implements Subject +{ + /** + * + * + * @generated + */ + protected SubjectImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getSubject(); + } + +} //SubjectImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SubstractionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SubstractionImpl.java new file mode 100644 index 0000000..07a81da --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/SubstractionImpl.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Substraction; + +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; + +/** + * + * An implementation of the model object 'Substraction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.SubstractionImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.SubstractionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class SubstractionImpl extends ExpressionImpl implements Substraction +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected SubstractionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getSubstraction(); + } + + /** + * + * + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.SUBSTRACTION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SUBSTRACTION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SUBSTRACTION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.SUBSTRACTION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.SUBSTRACTION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SUBSTRACTION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.SUBSTRACTION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.SUBSTRACTION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.SUBSTRACTION__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.SUBSTRACTION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.SUBSTRACTION__LEFT: + return getLeft(); + case FiacrePackage.SUBSTRACTION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.SUBSTRACTION__LEFT: + setLeft((Expression)newValue); + return; + case FiacrePackage.SUBSTRACTION__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.SUBSTRACTION__LEFT: + setLeft((Expression)null); + return; + case FiacrePackage.SUBSTRACTION__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.SUBSTRACTION__LEFT: + return left != null; + case FiacrePackage.SUBSTRACTION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //SubstractionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TagSubjectImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TagSubjectImpl.java new file mode 100644 index 0000000..c50f112 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TagSubjectImpl.java @@ -0,0 +1,183 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.TagSubject; +import fr.irit.fiacre.xtext.fiacre.TaggedStatement; + +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; + +/** + * + * An implementation of the model object 'Tag Subject'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.TagSubjectImpl#getTag Tag}
    • + *
    + * + * @generated + */ +public class TagSubjectImpl extends SubjectImpl implements TagSubject +{ + /** + * The cached value of the '{@link #getTag() Tag}' reference. + * + * + * @see #getTag() + * @generated + * @ordered + */ + protected TaggedStatement tag; + + /** + * + * + * @generated + */ + protected TagSubjectImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getTagSubject(); + } + + /** + * + * + * @generated + */ + public TaggedStatement getTag() + { + if (tag != null && tag.eIsProxy()) + { + InternalEObject oldTag = (InternalEObject)tag; + tag = (TaggedStatement)eResolveProxy(oldTag); + if (tag != oldTag) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.TAG_SUBJECT__TAG, oldTag, tag)); + } + } + return tag; + } + + /** + * + * + * @generated + */ + public TaggedStatement basicGetTag() + { + return tag; + } + + /** + * + * + * @generated + */ + public void setTag(TaggedStatement newTag) + { + TaggedStatement oldTag = tag; + tag = newTag; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.TAG_SUBJECT__TAG, oldTag, tag)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.TAG_SUBJECT__TAG: + if (resolve) return getTag(); + return basicGetTag(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.TAG_SUBJECT__TAG: + setTag((TaggedStatement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.TAG_SUBJECT__TAG: + setTag((TaggedStatement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.TAG_SUBJECT__TAG: + return tag != null; + } + return super.eIsSet(featureID); + } + +} //TagSubjectImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TaggedStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TaggedStatementImpl.java new file mode 100644 index 0000000..f5578e7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TaggedStatementImpl.java @@ -0,0 +1,187 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.TaggedStatement; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Tagged Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.TaggedStatementImpl#getName Name}
    • + *
    + * + * @generated + */ +public class TaggedStatementImpl extends StatementImpl implements TaggedStatement +{ + /** + * 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 TaggedStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getTaggedStatement(); + } + + /** + * + * + * @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, FiacrePackage.TAGGED_STATEMENT__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.TAGGED_STATEMENT__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.TAGGED_STATEMENT__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.TAGGED_STATEMENT__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.TAGGED_STATEMENT__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(); + } + +} //TaggedStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ToStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ToStatementImpl.java new file mode 100644 index 0000000..f7910bd --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ToStatementImpl.java @@ -0,0 +1,183 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.StateDeclaration; +import fr.irit.fiacre.xtext.fiacre.ToStatement; + +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; + +/** + * + * An implementation of the model object 'To Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ToStatementImpl#getState State}
    • + *
    + * + * @generated + */ +public class ToStatementImpl extends StatementImpl implements ToStatement +{ + /** + * The cached value of the '{@link #getState() State}' reference. + * + * + * @see #getState() + * @generated + * @ordered + */ + protected StateDeclaration state; + + /** + * + * + * @generated + */ + protected ToStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getToStatement(); + } + + /** + * + * + * @generated + */ + public StateDeclaration getState() + { + if (state != null && state.eIsProxy()) + { + InternalEObject oldState = (InternalEObject)state; + state = (StateDeclaration)eResolveProxy(oldState); + if (state != oldState) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.TO_STATEMENT__STATE, oldState, state)); + } + } + return state; + } + + /** + * + * + * @generated + */ + public StateDeclaration basicGetState() + { + return state; + } + + /** + * + * + * @generated + */ + public void setState(StateDeclaration newState) + { + StateDeclaration oldState = state; + state = newState; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.TO_STATEMENT__STATE, oldState, state)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.TO_STATEMENT__STATE: + if (resolve) return getState(); + return basicGetState(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.TO_STATEMENT__STATE: + setState((StateDeclaration)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.TO_STATEMENT__STATE: + setState((StateDeclaration)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.TO_STATEMENT__STATE: + return state != null; + } + return super.eIsSet(featureID); + } + +} //ToStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TransitionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TransitionImpl.java new file mode 100644 index 0000000..1bfe8b9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TransitionImpl.java @@ -0,0 +1,277 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.Transition; +import fr.irit.fiacre.xtext.fiacre.TransitionSource; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Transition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.TransitionImpl#getSource Source}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.TransitionImpl#getAction Action}
    • + *
    + * + * @generated + */ +public class TransitionImpl extends MinimalEObjectImpl.Container implements Transition +{ + /** + * The cached value of the '{@link #getSource() Source}' containment reference. + * + * + * @see #getSource() + * @generated + * @ordered + */ + protected TransitionSource source; + + /** + * The cached value of the '{@link #getAction() Action}' containment reference. + * + * + * @see #getAction() + * @generated + * @ordered + */ + protected Statement action; + + /** + * + * + * @generated + */ + protected TransitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getTransition(); + } + + /** + * + * + * @generated + */ + public TransitionSource getSource() + { + return source; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSource(TransitionSource newSource, NotificationChain msgs) + { + TransitionSource oldSource = source; + source = newSource; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.TRANSITION__SOURCE, oldSource, newSource); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSource(TransitionSource newSource) + { + if (newSource != source) + { + NotificationChain msgs = null; + if (source != null) + msgs = ((InternalEObject)source).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.TRANSITION__SOURCE, null, msgs); + if (newSource != null) + msgs = ((InternalEObject)newSource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.TRANSITION__SOURCE, null, msgs); + msgs = basicSetSource(newSource, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.TRANSITION__SOURCE, newSource, newSource)); + } + + /** + * + * + * @generated + */ + public Statement getAction() + { + return action; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAction(Statement newAction, NotificationChain msgs) + { + Statement oldAction = action; + action = newAction; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.TRANSITION__ACTION, oldAction, newAction); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setAction(Statement newAction) + { + if (newAction != action) + { + NotificationChain msgs = null; + if (action != null) + msgs = ((InternalEObject)action).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.TRANSITION__ACTION, null, msgs); + if (newAction != null) + msgs = ((InternalEObject)newAction).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.TRANSITION__ACTION, null, msgs); + msgs = basicSetAction(newAction, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.TRANSITION__ACTION, newAction, newAction)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.TRANSITION__SOURCE: + return basicSetSource(null, msgs); + case FiacrePackage.TRANSITION__ACTION: + return basicSetAction(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.TRANSITION__SOURCE: + return getSource(); + case FiacrePackage.TRANSITION__ACTION: + return getAction(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.TRANSITION__SOURCE: + setSource((TransitionSource)newValue); + return; + case FiacrePackage.TRANSITION__ACTION: + setAction((Statement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.TRANSITION__SOURCE: + setSource((TransitionSource)null); + return; + case FiacrePackage.TRANSITION__ACTION: + setAction((Statement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.TRANSITION__SOURCE: + return source != null; + case FiacrePackage.TRANSITION__ACTION: + return action != null; + } + return super.eIsSet(featureID); + } + +} //TransitionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TransitionSourceImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TransitionSourceImpl.java new file mode 100644 index 0000000..109f6d3 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TransitionSourceImpl.java @@ -0,0 +1,184 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.StateDeclaration; +import fr.irit.fiacre.xtext.fiacre.TransitionSource; + +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 org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Transition Source'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.TransitionSourceImpl#getOrigin Origin}
    • + *
    + * + * @generated + */ +public class TransitionSourceImpl extends MinimalEObjectImpl.Container implements TransitionSource +{ + /** + * The cached value of the '{@link #getOrigin() Origin}' reference. + * + * + * @see #getOrigin() + * @generated + * @ordered + */ + protected StateDeclaration origin; + + /** + * + * + * @generated + */ + protected TransitionSourceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getTransitionSource(); + } + + /** + * + * + * @generated + */ + public StateDeclaration getOrigin() + { + if (origin != null && origin.eIsProxy()) + { + InternalEObject oldOrigin = (InternalEObject)origin; + origin = (StateDeclaration)eResolveProxy(oldOrigin); + if (origin != oldOrigin) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.TRANSITION_SOURCE__ORIGIN, oldOrigin, origin)); + } + } + return origin; + } + + /** + * + * + * @generated + */ + public StateDeclaration basicGetOrigin() + { + return origin; + } + + /** + * + * + * @generated + */ + public void setOrigin(StateDeclaration newOrigin) + { + StateDeclaration oldOrigin = origin; + origin = newOrigin; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.TRANSITION_SOURCE__ORIGIN, oldOrigin, origin)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.TRANSITION_SOURCE__ORIGIN: + if (resolve) return getOrigin(); + return basicGetOrigin(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.TRANSITION_SOURCE__ORIGIN: + setOrigin((StateDeclaration)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.TRANSITION_SOURCE__ORIGIN: + setOrigin((StateDeclaration)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.TRANSITION_SOURCE__ORIGIN: + return origin != null; + } + return super.eIsSet(featureID); + } + +} //TransitionSourceImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TrueLiteralImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TrueLiteralImpl.java new file mode 100644 index 0000000..fb57192 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TrueLiteralImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.TrueLiteral; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'True Literal'. + * + * + * @generated + */ +public class TrueLiteralImpl extends BooleanLiteralImpl implements TrueLiteral +{ + /** + * + * + * @generated + */ + protected TrueLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getTrueLiteral(); + } + +} //TrueLiteralImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TupleTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TupleTypeImpl.java new file mode 100644 index 0000000..2cd2550 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TupleTypeImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.TupleType; +import fr.irit.fiacre.xtext.fiacre.Type; + +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; + +/** + * + * An implementation of the model object 'Tuple Type'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.TupleTypeImpl#getTypes Types}
    • + *
    + * + * @generated + */ +public class TupleTypeImpl extends TypeImpl implements TupleType +{ + /** + * The cached value of the '{@link #getTypes() Types}' containment reference list. + * + * + * @see #getTypes() + * @generated + * @ordered + */ + protected EList types; + + /** + * + * + * @generated + */ + protected TupleTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getTupleType(); + } + + /** + * + * + * @generated + */ + public EList getTypes() + { + if (types == null) + { + types = new EObjectContainmentEList(Type.class, this, FiacrePackage.TUPLE_TYPE__TYPES); + } + return types; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.TUPLE_TYPE__TYPES: + return ((InternalEList)getTypes()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.TUPLE_TYPE__TYPES: + return getTypes(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.TUPLE_TYPE__TYPES: + getTypes().clear(); + getTypes().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.TUPLE_TYPE__TYPES: + getTypes().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.TUPLE_TYPE__TYPES: + return types != null && !types.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //TupleTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeDeclarationImpl.java new file mode 100644 index 0000000..bcf52a0 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeDeclarationImpl.java @@ -0,0 +1,329 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Declaration; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.NamedElement; +import fr.irit.fiacre.xtext.fiacre.Type; +import fr.irit.fiacre.xtext.fiacre.TypeDeclaration; + +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; + +/** + * + * An implementation of the model object 'Type Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.TypeDeclarationImpl#getName Name}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.TypeDeclarationImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class TypeDeclarationImpl extends TypeDeclarationUseImpl implements TypeDeclaration +{ + /** + * 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; + + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected Type value; + + /** + * + * + * @generated + */ + protected TypeDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getTypeDeclaration(); + } + + /** + * + * + * @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, FiacrePackage.TYPE_DECLARATION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public Type getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(Type newValue, NotificationChain msgs) + { + Type oldValue = value; + value = newValue; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.TYPE_DECLARATION__VALUE, oldValue, newValue); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(Type newValue) + { + if (newValue != value) + { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.TYPE_DECLARATION__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.TYPE_DECLARATION__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.TYPE_DECLARATION__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.TYPE_DECLARATION__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 FiacrePackage.TYPE_DECLARATION__NAME: + return getName(); + case FiacrePackage.TYPE_DECLARATION__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.TYPE_DECLARATION__NAME: + setName((String)newValue); + return; + case FiacrePackage.TYPE_DECLARATION__VALUE: + setValue((Type)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.TYPE_DECLARATION__NAME: + setName(NAME_EDEFAULT); + return; + case FiacrePackage.TYPE_DECLARATION__VALUE: + setValue((Type)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.TYPE_DECLARATION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case FiacrePackage.TYPE_DECLARATION__VALUE: + return value != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) + { + if (baseClass == NamedElement.class) + { + switch (derivedFeatureID) + { + case FiacrePackage.TYPE_DECLARATION__NAME: return FiacrePackage.NAMED_ELEMENT__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (derivedFeatureID) + { + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) + { + if (baseClass == NamedElement.class) + { + switch (baseFeatureID) + { + case FiacrePackage.NAMED_ELEMENT__NAME: return FiacrePackage.TYPE_DECLARATION__NAME; + default: return -1; + } + } + if (baseClass == Declaration.class) + { + switch (baseFeatureID) + { + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @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(); + } + +} //TypeDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeDeclarationUseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeDeclarationUseImpl.java new file mode 100644 index 0000000..3c8ebd8 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeDeclarationUseImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Type Declaration Use'. + * + * + * @generated + */ +public class TypeDeclarationUseImpl extends MinimalEObjectImpl.Container implements TypeDeclarationUse +{ + /** + * + * + * @generated + */ + protected TypeDeclarationUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getTypeDeclarationUse(); + } + +} //TypeDeclarationUseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeImpl.java new file mode 100644 index 0000000..94f1be9 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/TypeImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Type; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Type'. + * + * + * @generated + */ +public class TypeImpl extends MinimalEObjectImpl.Container implements Type +{ + /** + * + * + * @generated + */ + protected TypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getType(); + } + +} //TypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryCoerceExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryCoerceExpressionImpl.java new file mode 100644 index 0000000..9f1c2d6 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryCoerceExpressionImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression; + +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; + +/** + * + * An implementation of the model object 'Unary Coerce Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnaryCoerceExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class UnaryCoerceExpressionImpl extends ExpressionImpl implements UnaryCoerceExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected UnaryCoerceExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnaryCoerceExpression(); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_COERCE_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_COERCE_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_COERCE_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_COERCE_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNARY_COERCE_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNARY_COERCE_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNARY_COERCE_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_COERCE_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_COERCE_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //UnaryCoerceExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryDeQueueExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryDeQueueExpressionImpl.java new file mode 100644 index 0000000..9d4ad12 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryDeQueueExpressionImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression; + +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; + +/** + * + * An implementation of the model object 'Unary De Queue Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnaryDeQueueExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class UnaryDeQueueExpressionImpl extends ExpressionImpl implements UnaryDeQueueExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected UnaryDeQueueExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnaryDeQueueExpression(); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_DE_QUEUE_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_DE_QUEUE_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_DE_QUEUE_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_DE_QUEUE_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNARY_DE_QUEUE_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNARY_DE_QUEUE_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNARY_DE_QUEUE_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_DE_QUEUE_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_DE_QUEUE_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //UnaryDeQueueExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryEmptyExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryEmptyExpressionImpl.java new file mode 100644 index 0000000..43d6ac1 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryEmptyExpressionImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression; + +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; + +/** + * + * An implementation of the model object 'Unary Empty Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnaryEmptyExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class UnaryEmptyExpressionImpl extends ExpressionImpl implements UnaryEmptyExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected UnaryEmptyExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnaryEmptyExpression(); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_EMPTY_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_EMPTY_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_EMPTY_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_EMPTY_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNARY_EMPTY_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNARY_EMPTY_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNARY_EMPTY_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_EMPTY_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_EMPTY_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //UnaryEmptyExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryFirstExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryFirstExpressionImpl.java new file mode 100644 index 0000000..4537f6d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryFirstExpressionImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression; + +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; + +/** + * + * An implementation of the model object 'Unary First Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnaryFirstExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class UnaryFirstExpressionImpl extends ExpressionImpl implements UnaryFirstExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected UnaryFirstExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnaryFirstExpression(); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_FIRST_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_FIRST_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_FIRST_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_FIRST_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNARY_FIRST_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNARY_FIRST_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNARY_FIRST_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_FIRST_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_FIRST_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //UnaryFirstExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryFullExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryFullExpressionImpl.java new file mode 100644 index 0000000..0f3cd71 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryFullExpressionImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryFullExpression; + +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; + +/** + * + * An implementation of the model object 'Unary Full Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnaryFullExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class UnaryFullExpressionImpl extends ExpressionImpl implements UnaryFullExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected UnaryFullExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnaryFullExpression(); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_FULL_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_FULL_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_FULL_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_FULL_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNARY_FULL_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNARY_FULL_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNARY_FULL_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_FULL_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_FULL_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //UnaryFullExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryLengthExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryLengthExpressionImpl.java new file mode 100644 index 0000000..c0c0095 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryLengthExpressionImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression; + +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; + +/** + * + * An implementation of the model object 'Unary Length Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnaryLengthExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class UnaryLengthExpressionImpl extends ExpressionImpl implements UnaryLengthExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected UnaryLengthExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnaryLengthExpression(); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_LENGTH_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_LENGTH_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_LENGTH_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_LENGTH_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNARY_LENGTH_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNARY_LENGTH_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNARY_LENGTH_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_LENGTH_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_LENGTH_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //UnaryLengthExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryMinusExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryMinusExpressionImpl.java new file mode 100644 index 0000000..b0ced5c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryMinusExpressionImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression; + +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; + +/** + * + * An implementation of the model object 'Unary Minus Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnaryMinusExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class UnaryMinusExpressionImpl extends ExpressionImpl implements UnaryMinusExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected UnaryMinusExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnaryMinusExpression(); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_MINUS_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_MINUS_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_MINUS_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_MINUS_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNARY_MINUS_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNARY_MINUS_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNARY_MINUS_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_MINUS_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_MINUS_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //UnaryMinusExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryNegationExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryNegationExpressionImpl.java new file mode 100644 index 0000000..ac3ce68 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryNegationExpressionImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression; + +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; + +/** + * + * An implementation of the model object 'Unary Negation Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnaryNegationExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class UnaryNegationExpressionImpl extends ExpressionImpl implements UnaryNegationExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected UnaryNegationExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnaryNegationExpression(); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_NEGATION_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_NEGATION_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_NEGATION_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_NEGATION_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNARY_NEGATION_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNARY_NEGATION_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNARY_NEGATION_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_NEGATION_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_NEGATION_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //UnaryNegationExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryPlusExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryPlusExpressionImpl.java new file mode 100644 index 0000000..eeb0e24 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnaryPlusExpressionImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression; + +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; + +/** + * + * An implementation of the model object 'Unary Plus Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnaryPlusExpressionImpl#getChild Child}
    • + *
    + * + * @generated + */ +public class UnaryPlusExpressionImpl extends ExpressionImpl implements UnaryPlusExpression +{ + /** + * The cached value of the '{@link #getChild() Child}' containment reference. + * + * + * @see #getChild() + * @generated + * @ordered + */ + protected Expression child; + + /** + * + * + * @generated + */ + protected UnaryPlusExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnaryPlusExpression(); + } + + /** + * + * + * @generated + */ + public Expression getChild() + { + return child; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChild(Expression newChild, NotificationChain msgs) + { + Expression oldChild = child; + child = newChild; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_PLUS_EXPRESSION__CHILD, oldChild, newChild); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setChild(Expression newChild) + { + if (newChild != child) + { + NotificationChain msgs = null; + if (child != null) + msgs = ((InternalEObject)child).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_PLUS_EXPRESSION__CHILD, null, msgs); + if (newChild != null) + msgs = ((InternalEObject)newChild).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNARY_PLUS_EXPRESSION__CHILD, null, msgs); + msgs = basicSetChild(newChild, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.UNARY_PLUS_EXPRESSION__CHILD, newChild, newChild)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNARY_PLUS_EXPRESSION__CHILD: + return basicSetChild(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNARY_PLUS_EXPRESSION__CHILD: + return getChild(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNARY_PLUS_EXPRESSION__CHILD: + setChild((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_PLUS_EXPRESSION__CHILD: + setChild((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNARY_PLUS_EXPRESSION__CHILD: + return child != null; + } + return super.eIsSet(featureID); + } + +} //UnaryPlusExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagDeclarationImpl.java new file mode 100644 index 0000000..d2ec973 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagDeclarationImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Union Tag Declaration'. + * + * + * @generated + */ +public class UnionTagDeclarationImpl extends NamedElementImpl implements UnionTagDeclaration +{ + /** + * + * + * @generated + */ + protected UnionTagDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnionTagDeclaration(); + } + +} //UnionTagDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagDeclarationUseImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagDeclarationUseImpl.java new file mode 100644 index 0000000..328acf3 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagDeclarationUseImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnionTagDeclarationUse; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Union Tag Declaration Use'. + * + * + * @generated + */ +public class UnionTagDeclarationUseImpl extends MinimalEObjectImpl.Container implements UnionTagDeclarationUse +{ + /** + * + * + * @generated + */ + protected UnionTagDeclarationUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnionTagDeclarationUse(); + } + +} //UnionTagDeclarationUseImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagsImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagsImpl.java new file mode 100644 index 0000000..11003d7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTagsImpl.java @@ -0,0 +1,252 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Type; +import fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration; +import fr.irit.fiacre.xtext.fiacre.UnionTags; + +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; + +/** + * + * An implementation of the model object 'Union Tags'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnionTagsImpl#getTags Tags}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnionTagsImpl#getType Type}
    • + *
    + * + * @generated + */ +public class UnionTagsImpl extends MinimalEObjectImpl.Container implements UnionTags +{ + /** + * The cached value of the '{@link #getTags() Tags}' containment reference list. + * + * + * @see #getTags() + * @generated + * @ordered + */ + protected EList tags; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected Type type; + + /** + * + * + * @generated + */ + protected UnionTagsImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnionTags(); + } + + /** + * + * + * @generated + */ + public EList getTags() + { + if (tags == null) + { + tags = new EObjectContainmentEList(UnionTagDeclaration.class, this, FiacrePackage.UNION_TAGS__TAGS); + } + return tags; + } + + /** + * + * + * @generated + */ + public Type getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(Type newType, NotificationChain msgs) + { + Type oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.UNION_TAGS__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(Type newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNION_TAGS__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.UNION_TAGS__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.UNION_TAGS__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNION_TAGS__TAGS: + return ((InternalEList)getTags()).basicRemove(otherEnd, msgs); + case FiacrePackage.UNION_TAGS__TYPE: + return basicSetType(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNION_TAGS__TAGS: + return getTags(); + case FiacrePackage.UNION_TAGS__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNION_TAGS__TAGS: + getTags().clear(); + getTags().addAll((Collection)newValue); + return; + case FiacrePackage.UNION_TAGS__TYPE: + setType((Type)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNION_TAGS__TAGS: + getTags().clear(); + return; + case FiacrePackage.UNION_TAGS__TYPE: + setType((Type)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNION_TAGS__TAGS: + return tags != null && !tags.isEmpty(); + case FiacrePackage.UNION_TAGS__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //UnionTagsImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTypeImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTypeImpl.java new file mode 100644 index 0000000..93a5b7d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnionTypeImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UnionTags; +import fr.irit.fiacre.xtext.fiacre.UnionType; + +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; + +/** + * + * An implementation of the model object 'Union Type'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnionTypeImpl#getTags Tags}
    • + *
    + * + * @generated + */ +public class UnionTypeImpl extends TypeImpl implements UnionType +{ + /** + * The cached value of the '{@link #getTags() Tags}' containment reference list. + * + * + * @see #getTags() + * @generated + * @ordered + */ + protected EList tags; + + /** + * + * + * @generated + */ + protected UnionTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnionType(); + } + + /** + * + * + * @generated + */ + public EList getTags() + { + if (tags == null) + { + tags = new EObjectContainmentEList(UnionTags.class, this, FiacrePackage.UNION_TYPE__TAGS); + } + return tags; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNION_TYPE__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 FiacrePackage.UNION_TYPE__TAGS: + return getTags(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNION_TYPE__TAGS: + getTags().clear(); + getTags().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNION_TYPE__TAGS: + getTags().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNION_TYPE__TAGS: + return tags != null && !tags.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //UnionTypeImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnlessStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnlessStatementImpl.java new file mode 100644 index 0000000..585ebbc --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UnlessStatementImpl.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.UnlessStatement; + +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; + +/** + * + * An implementation of the model object 'Unless Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.UnlessStatementImpl#getFollowers Followers}
    • + *
    + * + * @generated + */ +public class UnlessStatementImpl extends StatementImpl implements UnlessStatement +{ + /** + * The cached value of the '{@link #getFollowers() Followers}' containment reference list. + * + * + * @see #getFollowers() + * @generated + * @ordered + */ + protected EList followers; + + /** + * + * + * @generated + */ + protected UnlessStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUnlessStatement(); + } + + /** + * + * + * @generated + */ + public EList getFollowers() + { + if (followers == null) + { + followers = new EObjectContainmentEList(Statement.class, this, FiacrePackage.UNLESS_STATEMENT__FOLLOWERS); + } + return followers; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.UNLESS_STATEMENT__FOLLOWERS: + return ((InternalEList)getFollowers()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.UNLESS_STATEMENT__FOLLOWERS: + return getFollowers(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.UNLESS_STATEMENT__FOLLOWERS: + getFollowers().clear(); + getFollowers().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNLESS_STATEMENT__FOLLOWERS: + getFollowers().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.UNLESS_STATEMENT__FOLLOWERS: + return followers != null && !followers.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //UnlessStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UpperBoundImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UpperBoundImpl.java new file mode 100644 index 0000000..6e108d4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/UpperBoundImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.UpperBound; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Upper Bound'. + * + * + * @generated + */ +public class UpperBoundImpl extends MinimalEObjectImpl.Container implements UpperBound +{ + /** + * + * + * @generated + */ + protected UpperBoundImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getUpperBound(); + } + +} //UpperBoundImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ValueExpressionImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ValueExpressionImpl.java new file mode 100644 index 0000000..830ebb7 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ValueExpressionImpl.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ValueExpression; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Value Expression'. + * + * + * @generated + */ +public class ValueExpressionImpl extends MinimalEObjectImpl.Container implements ValueExpression +{ + /** + * + * + * @generated + */ + protected ValueExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getValueExpression(); + } + +} //ValueExpressionImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ValueSubjectImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ValueSubjectImpl.java new file mode 100644 index 0000000..6b2df74 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/ValueSubjectImpl.java @@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.ValueSubject; + +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; + +/** + * + * An implementation of the model object 'Value Subject'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.ValueSubjectImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class ValueSubjectImpl extends SubjectImpl implements ValueSubject +{ + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected Expression value; + + /** + * + * + * @generated + */ + protected ValueSubjectImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getValueSubject(); + } + + /** + * + * + * @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, FiacrePackage.VALUE_SUBJECT__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 - FiacrePackage.VALUE_SUBJECT__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.VALUE_SUBJECT__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.VALUE_SUBJECT__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.VALUE_SUBJECT__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 FiacrePackage.VALUE_SUBJECT__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.VALUE_SUBJECT__VALUE: + setValue((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.VALUE_SUBJECT__VALUE: + setValue((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.VALUE_SUBJECT__VALUE: + return value != null; + } + return super.eIsSet(featureID); + } + +} //ValueSubjectImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableDeclarationImpl.java new file mode 100644 index 0000000..a41a000 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableDeclarationImpl.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Variable Declaration'. + * + * + * @generated + */ +public class VariableDeclarationImpl extends NamedElementImpl implements VariableDeclaration +{ + /** + * + * + * @generated + */ + protected VariableDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getVariableDeclaration(); + } + +} //VariableDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableLowerBoundImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableLowerBoundImpl.java new file mode 100644 index 0000000..5b0ca2e --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableLowerBoundImpl.java @@ -0,0 +1,183 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.VariableLowerBound; + +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; + +/** + * + * An implementation of the model object 'Variable Lower Bound'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.VariableLowerBoundImpl#getVariable Variable}
    • + *
    + * + * @generated + */ +public class VariableLowerBoundImpl extends LowerBoundImpl implements VariableLowerBound +{ + /** + * The cached value of the '{@link #getVariable() Variable}' reference. + * + * + * @see #getVariable() + * @generated + * @ordered + */ + protected BoundDeclarationUse variable; + + /** + * + * + * @generated + */ + protected VariableLowerBoundImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getVariableLowerBound(); + } + + /** + * + * + * @generated + */ + public BoundDeclarationUse getVariable() + { + if (variable != null && variable.eIsProxy()) + { + InternalEObject oldVariable = (InternalEObject)variable; + variable = (BoundDeclarationUse)eResolveProxy(oldVariable); + if (variable != oldVariable) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.VARIABLE_LOWER_BOUND__VARIABLE, oldVariable, variable)); + } + } + return variable; + } + + /** + * + * + * @generated + */ + public BoundDeclarationUse basicGetVariable() + { + return variable; + } + + /** + * + * + * @generated + */ + public void setVariable(BoundDeclarationUse newVariable) + { + BoundDeclarationUse oldVariable = variable; + variable = newVariable; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.VARIABLE_LOWER_BOUND__VARIABLE, oldVariable, variable)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.VARIABLE_LOWER_BOUND__VARIABLE: + if (resolve) return getVariable(); + return basicGetVariable(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.VARIABLE_LOWER_BOUND__VARIABLE: + setVariable((BoundDeclarationUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.VARIABLE_LOWER_BOUND__VARIABLE: + setVariable((BoundDeclarationUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.VARIABLE_LOWER_BOUND__VARIABLE: + return variable != null; + } + return super.eIsSet(featureID); + } + +} //VariableLowerBoundImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableUpperBoundImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableUpperBoundImpl.java new file mode 100644 index 0000000..62f2f98 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariableUpperBoundImpl.java @@ -0,0 +1,310 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.VariableUpperBound; + +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; + +/** + * + * An implementation of the model object 'Variable Upper Bound'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.VariableUpperBoundImpl#getVariable Variable}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.VariableUpperBoundImpl#isLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.VariableUpperBoundImpl#isRight Right}
    • + *
    + * + * @generated + */ +public class VariableUpperBoundImpl extends UpperBoundImpl implements VariableUpperBound +{ + /** + * The cached value of the '{@link #getVariable() Variable}' reference. + * + * + * @see #getVariable() + * @generated + * @ordered + */ + protected BoundDeclarationUse variable; + + /** + * The default value of the '{@link #isLeft() Left}' attribute. + * + * + * @see #isLeft() + * @generated + * @ordered + */ + protected static final boolean LEFT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isLeft() Left}' attribute. + * + * + * @see #isLeft() + * @generated + * @ordered + */ + protected boolean left = LEFT_EDEFAULT; + + /** + * The default value of the '{@link #isRight() Right}' attribute. + * + * + * @see #isRight() + * @generated + * @ordered + */ + protected static final boolean RIGHT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isRight() Right}' attribute. + * + * + * @see #isRight() + * @generated + * @ordered + */ + protected boolean right = RIGHT_EDEFAULT; + + /** + * + * + * @generated + */ + protected VariableUpperBoundImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getVariableUpperBound(); + } + + /** + * + * + * @generated + */ + public BoundDeclarationUse getVariable() + { + if (variable != null && variable.eIsProxy()) + { + InternalEObject oldVariable = (InternalEObject)variable; + variable = (BoundDeclarationUse)eResolveProxy(oldVariable); + if (variable != oldVariable) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, FiacrePackage.VARIABLE_UPPER_BOUND__VARIABLE, oldVariable, variable)); + } + } + return variable; + } + + /** + * + * + * @generated + */ + public BoundDeclarationUse basicGetVariable() + { + return variable; + } + + /** + * + * + * @generated + */ + public void setVariable(BoundDeclarationUse newVariable) + { + BoundDeclarationUse oldVariable = variable; + variable = newVariable; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.VARIABLE_UPPER_BOUND__VARIABLE, oldVariable, variable)); + } + + /** + * + * + * @generated + */ + public boolean isLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public void setLeft(boolean newLeft) + { + boolean oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.VARIABLE_UPPER_BOUND__LEFT, oldLeft, left)); + } + + /** + * + * + * @generated + */ + public boolean isRight() + { + return right; + } + + /** + * + * + * @generated + */ + public void setRight(boolean newRight) + { + boolean oldRight = right; + right = newRight; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.VARIABLE_UPPER_BOUND__RIGHT, oldRight, right)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.VARIABLE_UPPER_BOUND__VARIABLE: + if (resolve) return getVariable(); + return basicGetVariable(); + case FiacrePackage.VARIABLE_UPPER_BOUND__LEFT: + return isLeft(); + case FiacrePackage.VARIABLE_UPPER_BOUND__RIGHT: + return isRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.VARIABLE_UPPER_BOUND__VARIABLE: + setVariable((BoundDeclarationUse)newValue); + return; + case FiacrePackage.VARIABLE_UPPER_BOUND__LEFT: + setLeft((Boolean)newValue); + return; + case FiacrePackage.VARIABLE_UPPER_BOUND__RIGHT: + setRight((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.VARIABLE_UPPER_BOUND__VARIABLE: + setVariable((BoundDeclarationUse)null); + return; + case FiacrePackage.VARIABLE_UPPER_BOUND__LEFT: + setLeft(LEFT_EDEFAULT); + return; + case FiacrePackage.VARIABLE_UPPER_BOUND__RIGHT: + setRight(RIGHT_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.VARIABLE_UPPER_BOUND__VARIABLE: + return variable != null; + case FiacrePackage.VARIABLE_UPPER_BOUND__LEFT: + return left != LEFT_EDEFAULT; + case FiacrePackage.VARIABLE_UPPER_BOUND__RIGHT: + return right != RIGHT_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (left: "); + result.append(left); + result.append(", right: "); + result.append(right); + result.append(')'); + return result.toString(); + } + +} //VariableUpperBoundImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariablesDeclarationImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariablesDeclarationImpl.java new file mode 100644 index 0000000..ffc48e4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/VariablesDeclarationImpl.java @@ -0,0 +1,324 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Type; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; +import fr.irit.fiacre.xtext.fiacre.VariablesDeclaration; + +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; + +/** + * + * An implementation of the model object 'Variables Declaration'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.VariablesDeclarationImpl#getVariables Variables}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.VariablesDeclarationImpl#getType Type}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.VariablesDeclarationImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class VariablesDeclarationImpl extends MinimalEObjectImpl.Container implements VariablesDeclaration +{ + /** + * The cached value of the '{@link #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected Type type; + + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected Expression value; + + /** + * + * + * @generated + */ + protected VariablesDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getVariablesDeclaration(); + } + + /** + * + * + * @generated + */ + public EList getVariables() + { + if (variables == null) + { + variables = new EObjectContainmentEList(VariableDeclaration.class, this, FiacrePackage.VARIABLES_DECLARATION__VARIABLES); + } + return variables; + } + + /** + * + * + * @generated + */ + public Type getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(Type newType, NotificationChain msgs) + { + Type oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.VARIABLES_DECLARATION__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(Type newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.VARIABLES_DECLARATION__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.VARIABLES_DECLARATION__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.VARIABLES_DECLARATION__TYPE, newType, newType)); + } + + /** + * + * + * @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, FiacrePackage.VARIABLES_DECLARATION__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 - FiacrePackage.VARIABLES_DECLARATION__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.VARIABLES_DECLARATION__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.VARIABLES_DECLARATION__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.VARIABLES_DECLARATION__VARIABLES: + return ((InternalEList)getVariables()).basicRemove(otherEnd, msgs); + case FiacrePackage.VARIABLES_DECLARATION__TYPE: + return basicSetType(null, msgs); + case FiacrePackage.VARIABLES_DECLARATION__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 FiacrePackage.VARIABLES_DECLARATION__VARIABLES: + return getVariables(); + case FiacrePackage.VARIABLES_DECLARATION__TYPE: + return getType(); + case FiacrePackage.VARIABLES_DECLARATION__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.VARIABLES_DECLARATION__VARIABLES: + getVariables().clear(); + getVariables().addAll((Collection)newValue); + return; + case FiacrePackage.VARIABLES_DECLARATION__TYPE: + setType((Type)newValue); + return; + case FiacrePackage.VARIABLES_DECLARATION__VALUE: + setValue((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.VARIABLES_DECLARATION__VARIABLES: + getVariables().clear(); + return; + case FiacrePackage.VARIABLES_DECLARATION__TYPE: + setType((Type)null); + return; + case FiacrePackage.VARIABLES_DECLARATION__VALUE: + setValue((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.VARIABLES_DECLARATION__VARIABLES: + return variables != null && !variables.isEmpty(); + case FiacrePackage.VARIABLES_DECLARATION__TYPE: + return type != null; + case FiacrePackage.VARIABLES_DECLARATION__VALUE: + return value != null; + } + return super.eIsSet(featureID); + } + +} //VariablesDeclarationImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/WaitStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/WaitStatementImpl.java new file mode 100644 index 0000000..ce54e9c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/WaitStatementImpl.java @@ -0,0 +1,276 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.LowerBound; +import fr.irit.fiacre.xtext.fiacre.UpperBound; +import fr.irit.fiacre.xtext.fiacre.WaitStatement; + +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; + +/** + * + * An implementation of the model object 'Wait Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.WaitStatementImpl#getLeft Left}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.WaitStatementImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class WaitStatementImpl extends StatementImpl implements WaitStatement +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected LowerBound left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected UpperBound right; + + /** + * + * + * @generated + */ + protected WaitStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getWaitStatement(); + } + + /** + * + * + * @generated + */ + public LowerBound getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(LowerBound newLeft, NotificationChain msgs) + { + LowerBound oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.WAIT_STATEMENT__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(LowerBound newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.WAIT_STATEMENT__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.WAIT_STATEMENT__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.WAIT_STATEMENT__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public UpperBound getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(UpperBound newRight, NotificationChain msgs) + { + UpperBound oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.WAIT_STATEMENT__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(UpperBound newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.WAIT_STATEMENT__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.WAIT_STATEMENT__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.WAIT_STATEMENT__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.WAIT_STATEMENT__LEFT: + return basicSetLeft(null, msgs); + case FiacrePackage.WAIT_STATEMENT__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case FiacrePackage.WAIT_STATEMENT__LEFT: + return getLeft(); + case FiacrePackage.WAIT_STATEMENT__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.WAIT_STATEMENT__LEFT: + setLeft((LowerBound)newValue); + return; + case FiacrePackage.WAIT_STATEMENT__RIGHT: + setRight((UpperBound)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.WAIT_STATEMENT__LEFT: + setLeft((LowerBound)null); + return; + case FiacrePackage.WAIT_STATEMENT__RIGHT: + setRight((UpperBound)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.WAIT_STATEMENT__LEFT: + return left != null; + case FiacrePackage.WAIT_STATEMENT__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //WaitStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/WhileStatementImpl.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/WhileStatementImpl.java new file mode 100644 index 0000000..73d53aa --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/WhileStatementImpl.java @@ -0,0 +1,276 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.impl; + +import fr.irit.fiacre.xtext.fiacre.Expression; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.Statement; +import fr.irit.fiacre.xtext.fiacre.WhileStatement; + +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; + +/** + * + * An implementation of the model object 'While Statement'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.WhileStatementImpl#getCondition Condition}
    • + *
    • {@link fr.irit.fiacre.xtext.fiacre.impl.WhileStatementImpl#getBody Body}
    • + *
    + * + * @generated + */ +public class WhileStatementImpl extends StatementImpl implements WhileStatement +{ + /** + * The cached value of the '{@link #getCondition() Condition}' containment reference. + * + * + * @see #getCondition() + * @generated + * @ordered + */ + protected Expression condition; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Statement body; + + /** + * + * + * @generated + */ + protected WhileStatementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return FiacrePackage.eINSTANCE.getWhileStatement(); + } + + /** + * + * + * @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, FiacrePackage.WHILE_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 - FiacrePackage.WHILE_STATEMENT__CONDITION, null, msgs); + if (newCondition != null) + msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.WHILE_STATEMENT__CONDITION, null, msgs); + msgs = basicSetCondition(newCondition, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.WHILE_STATEMENT__CONDITION, newCondition, newCondition)); + } + + /** + * + * + * @generated + */ + public Statement getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Statement newBody, NotificationChain msgs) + { + Statement oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FiacrePackage.WHILE_STATEMENT__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setBody(Statement newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.WHILE_STATEMENT__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FiacrePackage.WHILE_STATEMENT__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FiacrePackage.WHILE_STATEMENT__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case FiacrePackage.WHILE_STATEMENT__CONDITION: + return basicSetCondition(null, msgs); + case FiacrePackage.WHILE_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 FiacrePackage.WHILE_STATEMENT__CONDITION: + return getCondition(); + case FiacrePackage.WHILE_STATEMENT__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case FiacrePackage.WHILE_STATEMENT__CONDITION: + setCondition((Expression)newValue); + return; + case FiacrePackage.WHILE_STATEMENT__BODY: + setBody((Statement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case FiacrePackage.WHILE_STATEMENT__CONDITION: + setCondition((Expression)null); + return; + case FiacrePackage.WHILE_STATEMENT__BODY: + setBody((Statement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case FiacrePackage.WHILE_STATEMENT__CONDITION: + return condition != null; + case FiacrePackage.WHILE_STATEMENT__BODY: + return body != null; + } + return super.eIsSet(featureID); + } + +} //WhileStatementImpl diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/fiacre.loadinitialization_ecore b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/fiacre.loadinitialization_ecore new file mode 100644 index 0000000..fbbd71a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/impl/fiacre.loadinitialization_ecore @@ -0,0 +1,881 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/util/FiacreAdapterFactory.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/util/FiacreAdapterFactory.java new file mode 100644 index 0000000..38bb922 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/util/FiacreAdapterFactory.java @@ -0,0 +1,4023 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.util; + +import fr.irit.fiacre.xtext.fiacre.*; + +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; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see fr.irit.fiacre.xtext.fiacre.FiacrePackage + * @generated + */ +public class FiacreAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * + * + * @generated + */ + protected static FiacrePackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public FiacreAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = FiacrePackage.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 FiacreSwitch modelSwitch = + new FiacreSwitch() + { + @Override + public Adapter caseModel(Model object) + { + return createModelAdapter(); + } + @Override + public Adapter caseRootDeclaration(RootDeclaration object) + { + return createRootDeclarationAdapter(); + } + @Override + public Adapter caseRoot(Root object) + { + return createRootAdapter(); + } + @Override + public Adapter caseNamedElement(NamedElement object) + { + return createNamedElementAdapter(); + } + @Override + public Adapter caseTypeDeclarationUse(TypeDeclarationUse object) + { + return createTypeDeclarationUseAdapter(); + } + @Override + public Adapter caseConstantDeclarationUse(ConstantDeclarationUse object) + { + return createConstantDeclarationUseAdapter(); + } + @Override + public Adapter caseExpressionDeclarationUse(ExpressionDeclarationUse object) + { + return createExpressionDeclarationUseAdapter(); + } + @Override + public Adapter caseReferenceDeclarationUse(ReferenceDeclarationUse object) + { + return createReferenceDeclarationUseAdapter(); + } + @Override + public Adapter caseUnionTagDeclarationUse(UnionTagDeclarationUse object) + { + return createUnionTagDeclarationUseAdapter(); + } + @Override + public Adapter caseRecordFieldDeclarationUse(RecordFieldDeclarationUse object) + { + return createRecordFieldDeclarationUseAdapter(); + } + @Override + public Adapter casePatternDeclarationUse(PatternDeclarationUse object) + { + return createPatternDeclarationUseAdapter(); + } + @Override + public Adapter caseBoundDeclarationUse(BoundDeclarationUse object) + { + return createBoundDeclarationUseAdapter(); + } + @Override + public Adapter casePathDeclarationUse(PathDeclarationUse object) + { + return createPathDeclarationUseAdapter(); + } + @Override + public Adapter casePropertyDeclarationUse(PropertyDeclarationUse object) + { + return createPropertyDeclarationUseAdapter(); + } + @Override + public Adapter caseImportDeclaration(ImportDeclaration object) + { + return createImportDeclarationAdapter(); + } + @Override + public Adapter caseDeclaration(Declaration object) + { + return createDeclarationAdapter(); + } + @Override + public Adapter caseParameterizedDeclaration(ParameterizedDeclaration object) + { + return createParameterizedDeclarationAdapter(); + } + @Override + public Adapter caseFunctionDeclaration(FunctionDeclaration object) + { + return createFunctionDeclarationAdapter(); + } + @Override + public Adapter caseTypeDeclaration(TypeDeclaration object) + { + return createTypeDeclarationAdapter(); + } + @Override + public Adapter caseChannelDeclaration(ChannelDeclaration object) + { + return createChannelDeclarationAdapter(); + } + @Override + public Adapter caseChannelType(ChannelType object) + { + return createChannelTypeAdapter(); + } + @Override + public Adapter caseType(Type object) + { + return createTypeAdapter(); + } + @Override + public Adapter caseBasicType(BasicType object) + { + return createBasicTypeAdapter(); + } + @Override + public Adapter caseRangeType(RangeType object) + { + return createRangeTypeAdapter(); + } + @Override + public Adapter caseUnionType(UnionType object) + { + return createUnionTypeAdapter(); + } + @Override + public Adapter caseUnionTags(UnionTags object) + { + return createUnionTagsAdapter(); + } + @Override + public Adapter caseUnionTagDeclaration(UnionTagDeclaration object) + { + return createUnionTagDeclarationAdapter(); + } + @Override + public Adapter caseRecordType(RecordType object) + { + return createRecordTypeAdapter(); + } + @Override + public Adapter caseRecordFields(RecordFields object) + { + return createRecordFieldsAdapter(); + } + @Override + public Adapter caseRecordFieldDeclaration(RecordFieldDeclaration object) + { + return createRecordFieldDeclarationAdapter(); + } + @Override + public Adapter caseQueueType(QueueType object) + { + return createQueueTypeAdapter(); + } + @Override + public Adapter caseArrayType(ArrayType object) + { + return createArrayTypeAdapter(); + } + @Override + public Adapter caseReferencedType(ReferencedType object) + { + return createReferencedTypeAdapter(); + } + @Override + public Adapter caseConstantDeclaration(ConstantDeclaration object) + { + return createConstantDeclarationAdapter(); + } + @Override + public Adapter caseProcessDeclaration(ProcessDeclaration object) + { + return createProcessDeclarationAdapter(); + } + @Override + public Adapter caseStateDeclaration(StateDeclaration object) + { + return createStateDeclarationAdapter(); + } + @Override + public Adapter caseTransitionSource(TransitionSource object) + { + return createTransitionSourceAdapter(); + } + @Override + public Adapter caseTransition(Transition object) + { + return createTransitionAdapter(); + } + @Override + public Adapter caseComponentDeclaration(ComponentDeclaration object) + { + return createComponentDeclarationAdapter(); + } + @Override + public Adapter casePortsDeclaration(PortsDeclaration object) + { + return createPortsDeclarationAdapter(); + } + @Override + public Adapter casePortDeclaration(PortDeclaration object) + { + return createPortDeclarationAdapter(); + } + @Override + public Adapter caseLocalPortsDeclaration(LocalPortsDeclaration object) + { + return createLocalPortsDeclarationAdapter(); + } + @Override + public Adapter caseParametersDeclaration(ParametersDeclaration object) + { + return createParametersDeclarationAdapter(); + } + @Override + public Adapter caseParameterDeclaration(ParameterDeclaration object) + { + return createParameterDeclarationAdapter(); + } + @Override + public Adapter caseVariablesDeclaration(VariablesDeclaration object) + { + return createVariablesDeclarationAdapter(); + } + @Override + public Adapter caseVariableDeclaration(VariableDeclaration object) + { + return createVariableDeclarationAdapter(); + } + @Override + public Adapter casePriorityDeclaration(PriorityDeclaration object) + { + return createPriorityDeclarationAdapter(); + } + @Override + public Adapter casePriorityGroup(PriorityGroup object) + { + return createPriorityGroupAdapter(); + } + @Override + public Adapter caseStatement(Statement object) + { + return createStatementAdapter(); + } + @Override + public Adapter caseBlockStatement(BlockStatement object) + { + return createBlockStatementAdapter(); + } + @Override + public Adapter caseReturnStatement(ReturnStatement object) + { + return createReturnStatementAdapter(); + } + @Override + public Adapter caseNullStatement(NullStatement object) + { + return createNullStatementAdapter(); + } + @Override + public Adapter caseTaggedStatement(TaggedStatement object) + { + return createTaggedStatementAdapter(); + } + @Override + public Adapter casePatternStatement(PatternStatement object) + { + return createPatternStatementAdapter(); + } + @Override + public Adapter casePattern(Pattern object) + { + return createPatternAdapter(); + } + @Override + public Adapter caseAnyPattern(AnyPattern object) + { + return createAnyPatternAdapter(); + } + @Override + public Adapter caseConstantPattern(ConstantPattern object) + { + return createConstantPatternAdapter(); + } + @Override + public Adapter caseIntegerPattern(IntegerPattern object) + { + return createIntegerPatternAdapter(); + } + @Override + public Adapter caseIdentifierPattern(IdentifierPattern object) + { + return createIdentifierPatternAdapter(); + } + @Override + public Adapter caseConditionalStatement(ConditionalStatement object) + { + return createConditionalStatementAdapter(); + } + @Override + public Adapter caseExtendedConditionalStatement(ExtendedConditionalStatement object) + { + return createExtendedConditionalStatementAdapter(); + } + @Override + public Adapter caseSelectStatement(SelectStatement object) + { + return createSelectStatementAdapter(); + } + @Override + public Adapter caseWhileStatement(WhileStatement object) + { + return createWhileStatementAdapter(); + } + @Override + public Adapter caseForeachStatement(ForeachStatement object) + { + return createForeachStatementAdapter(); + } + @Override + public Adapter caseToStatement(ToStatement object) + { + return createToStatementAdapter(); + } + @Override + public Adapter caseCaseStatement(CaseStatement object) + { + return createCaseStatementAdapter(); + } + @Override + public Adapter caseLoopStatement(LoopStatement object) + { + return createLoopStatementAdapter(); + } + @Override + public Adapter caseOnStatement(OnStatement object) + { + return createOnStatementAdapter(); + } + @Override + public Adapter caseWaitStatement(WaitStatement object) + { + return createWaitStatementAdapter(); + } + @Override + public Adapter caseComposition(Composition object) + { + return createCompositionAdapter(); + } + @Override + public Adapter caseBlock(Block object) + { + return createBlockAdapter(); + } + @Override + public Adapter caseCompositeBlock(CompositeBlock object) + { + return createCompositeBlockAdapter(); + } + @Override + public Adapter caseInstanceDeclaration(InstanceDeclaration object) + { + return createInstanceDeclarationAdapter(); + } + @Override + public Adapter casePortSet(PortSet object) + { + return createPortSetAdapter(); + } + @Override + public Adapter caseComponentInstance(ComponentInstance object) + { + return createComponentInstanceAdapter(); + } + @Override + public Adapter caseExpression(Expression object) + { + return createExpressionAdapter(); + } + @Override + public Adapter caseValueExpression(ValueExpression object) + { + return createValueExpressionAdapter(); + } + @Override + public Adapter caseReferenceExpression(ReferenceExpression object) + { + return createReferenceExpressionAdapter(); + } + @Override + public Adapter caseIdentifierExpression(IdentifierExpression object) + { + return createIdentifierExpressionAdapter(); + } + @Override + public Adapter caseRecordExpression(RecordExpression object) + { + return createRecordExpressionAdapter(); + } + @Override + public Adapter caseFieldExpression(FieldExpression object) + { + return createFieldExpressionAdapter(); + } + @Override + public Adapter caseArrayExpression(ArrayExpression object) + { + return createArrayExpressionAdapter(); + } + @Override + public Adapter caseQueueExpression(QueueExpression object) + { + return createQueueExpressionAdapter(); + } + @Override + public Adapter caseEnqueueExpression(EnqueueExpression object) + { + return createEnqueueExpressionAdapter(); + } + @Override + public Adapter caseAppendExpression(AppendExpression object) + { + return createAppendExpressionAdapter(); + } + @Override + public Adapter caseLiteralExpression(LiteralExpression object) + { + return createLiteralExpressionAdapter(); + } + @Override + public Adapter caseBooleanLiteral(BooleanLiteral object) + { + return createBooleanLiteralAdapter(); + } + @Override + public Adapter caseNaturalLiteral(NaturalLiteral object) + { + return createNaturalLiteralAdapter(); + } + @Override + public Adapter caseLowerBound(LowerBound object) + { + return createLowerBoundAdapter(); + } + @Override + public Adapter caseUpperBound(UpperBound object) + { + return createUpperBoundAdapter(); + } + @Override + public Adapter caseNaturalLowerBound(NaturalLowerBound object) + { + return createNaturalLowerBoundAdapter(); + } + @Override + public Adapter caseNaturalUpperBound(NaturalUpperBound object) + { + return createNaturalUpperBoundAdapter(); + } + @Override + public Adapter caseDecimalLowerBound(DecimalLowerBound object) + { + return createDecimalLowerBoundAdapter(); + } + @Override + public Adapter caseDecimalUpperBound(DecimalUpperBound object) + { + return createDecimalUpperBoundAdapter(); + } + @Override + public Adapter caseVariableLowerBound(VariableLowerBound object) + { + return createVariableLowerBoundAdapter(); + } + @Override + public Adapter caseVariableUpperBound(VariableUpperBound object) + { + return createVariableUpperBoundAdapter(); + } + @Override + public Adapter caseInfiniteUpperBound(InfiniteUpperBound object) + { + return createInfiniteUpperBoundAdapter(); + } + @Override + public Adapter caseRequirement(Requirement object) + { + return createRequirementAdapter(); + } + @Override + public Adapter casePropertyDeclaration(PropertyDeclaration object) + { + return createPropertyDeclarationAdapter(); + } + @Override + public Adapter caseProperty(Property object) + { + return createPropertyAdapter(); + } + @Override + public Adapter casePatternProperty(PatternProperty object) + { + return createPatternPropertyAdapter(); + } + @Override + public Adapter caseLTLPattern(LTLPattern object) + { + return createLTLPatternAdapter(); + } + @Override + public Adapter caseDeadlockFreePattern(DeadlockFreePattern object) + { + return createDeadlockFreePatternAdapter(); + } + @Override + public Adapter caseInfinitelyOftenPattern(InfinitelyOftenPattern object) + { + return createInfinitelyOftenPatternAdapter(); + } + @Override + public Adapter caseMortalPattern(MortalPattern object) + { + return createMortalPatternAdapter(); + } + @Override + public Adapter casePresencePattern(PresencePattern object) + { + return createPresencePatternAdapter(); + } + @Override + public Adapter caseAbsencePattern(AbsencePattern object) + { + return createAbsencePatternAdapter(); + } + @Override + public Adapter caseAlwaysPattern(AlwaysPattern object) + { + return createAlwaysPatternAdapter(); + } + @Override + public Adapter caseSequencePattern(SequencePattern object) + { + return createSequencePatternAdapter(); + } + @Override + public Adapter caseLTLProperty(LTLProperty object) + { + return createLTLPropertyAdapter(); + } + @Override + public Adapter caseStateEvent(StateEvent object) + { + return createStateEventAdapter(); + } + @Override + public Adapter caseEnterStateEvent(EnterStateEvent object) + { + return createEnterStateEventAdapter(); + } + @Override + public Adapter caseLeaveStateEvent(LeaveStateEvent object) + { + return createLeaveStateEventAdapter(); + } + @Override + public Adapter caseObservable(Observable object) + { + return createObservableAdapter(); + } + @Override + public Adapter caseObservableEvent(ObservableEvent object) + { + return createObservableEventAdapter(); + } + @Override + public Adapter casePathEvent(PathEvent object) + { + return createPathEventAdapter(); + } + @Override + public Adapter casePath(Path object) + { + return createPathAdapter(); + } + @Override + public Adapter casePathItem(PathItem object) + { + return createPathItemAdapter(); + } + @Override + public Adapter caseNaturalItem(NaturalItem object) + { + return createNaturalItemAdapter(); + } + @Override + public Adapter caseNamedItem(NamedItem object) + { + return createNamedItemAdapter(); + } + @Override + public Adapter caseSubject(Subject object) + { + return createSubjectAdapter(); + } + @Override + public Adapter caseStateSubject(StateSubject object) + { + return createStateSubjectAdapter(); + } + @Override + public Adapter caseValueSubject(ValueSubject object) + { + return createValueSubjectAdapter(); + } + @Override + public Adapter caseTagSubject(TagSubject object) + { + return createTagSubjectAdapter(); + } + @Override + public Adapter caseEventSubject(EventSubject object) + { + return createEventSubjectAdapter(); + } + @Override + public Adapter caseTupleType(TupleType object) + { + return createTupleTypeAdapter(); + } + @Override + public Adapter caseNaturalType(NaturalType object) + { + return createNaturalTypeAdapter(); + } + @Override + public Adapter caseIntegerType(IntegerType object) + { + return createIntegerTypeAdapter(); + } + @Override + public Adapter caseBooleanType(BooleanType object) + { + return createBooleanTypeAdapter(); + } + @Override + public Adapter caseUnlessStatement(UnlessStatement object) + { + return createUnlessStatementAdapter(); + } + @Override + public Adapter caseStatementChoice(StatementChoice object) + { + return createStatementChoiceAdapter(); + } + @Override + public Adapter caseStatementSequence(StatementSequence object) + { + return createStatementSequenceAdapter(); + } + @Override + public Adapter caseAssignStatement(AssignStatement object) + { + return createAssignStatementAdapter(); + } + @Override + public Adapter caseAssignAnyStatement(AssignAnyStatement object) + { + return createAssignAnyStatementAdapter(); + } + @Override + public Adapter caseSendStatement(SendStatement object) + { + return createSendStatementAdapter(); + } + @Override + public Adapter caseReceiveStatement(ReceiveStatement object) + { + return createReceiveStatementAdapter(); + } + @Override + public Adapter caseConstructorPattern(ConstructorPattern object) + { + return createConstructorPatternAdapter(); + } + @Override + public Adapter caseArrayAccessPattern(ArrayAccessPattern object) + { + return createArrayAccessPatternAdapter(); + } + @Override + public Adapter caseRecordAccessPattern(RecordAccessPattern object) + { + return createRecordAccessPatternAdapter(); + } + @Override + public Adapter caseAllExpression(AllExpression object) + { + return createAllExpressionAdapter(); + } + @Override + public Adapter caseExistsExpression(ExistsExpression object) + { + return createExistsExpressionAdapter(); + } + @Override + public Adapter caseConditional(Conditional object) + { + return createConditionalAdapter(); + } + @Override + public Adapter caseDisjunction(Disjunction object) + { + return createDisjunctionAdapter(); + } + @Override + public Adapter caseImplication(Implication object) + { + return createImplicationAdapter(); + } + @Override + public Adapter caseConjunction(Conjunction object) + { + return createConjunctionAdapter(); + } + @Override + public Adapter caseComparisonEqual(ComparisonEqual object) + { + return createComparisonEqualAdapter(); + } + @Override + public Adapter caseComparisonNotEqual(ComparisonNotEqual object) + { + return createComparisonNotEqualAdapter(); + } + @Override + public Adapter caseComparisonLesser(ComparisonLesser object) + { + return createComparisonLesserAdapter(); + } + @Override + public Adapter caseComparisonLesserEqual(ComparisonLesserEqual object) + { + return createComparisonLesserEqualAdapter(); + } + @Override + public Adapter caseComparisonGreater(ComparisonGreater object) + { + return createComparisonGreaterAdapter(); + } + @Override + public Adapter caseComparisonGreaterEqual(ComparisonGreaterEqual object) + { + return createComparisonGreaterEqualAdapter(); + } + @Override + public Adapter caseAddition(Addition object) + { + return createAdditionAdapter(); + } + @Override + public Adapter caseSubstraction(Substraction object) + { + return createSubstractionAdapter(); + } + @Override + public Adapter caseMultiplication(Multiplication object) + { + return createMultiplicationAdapter(); + } + @Override + public Adapter caseDivision(Division object) + { + return createDivisionAdapter(); + } + @Override + public Adapter caseModulo(Modulo object) + { + return createModuloAdapter(); + } + @Override + public Adapter caseUnaryPlusExpression(UnaryPlusExpression object) + { + return createUnaryPlusExpressionAdapter(); + } + @Override + public Adapter caseUnaryMinusExpression(UnaryMinusExpression object) + { + return createUnaryMinusExpressionAdapter(); + } + @Override + public Adapter caseUnaryNegationExpression(UnaryNegationExpression object) + { + return createUnaryNegationExpressionAdapter(); + } + @Override + public Adapter caseUnaryFirstExpression(UnaryFirstExpression object) + { + return createUnaryFirstExpressionAdapter(); + } + @Override + public Adapter caseUnaryLengthExpression(UnaryLengthExpression object) + { + return createUnaryLengthExpressionAdapter(); + } + @Override + public Adapter caseUnaryCoerceExpression(UnaryCoerceExpression object) + { + return createUnaryCoerceExpressionAdapter(); + } + @Override + public Adapter caseUnaryFullExpression(UnaryFullExpression object) + { + return createUnaryFullExpressionAdapter(); + } + @Override + public Adapter caseUnaryDeQueueExpression(UnaryDeQueueExpression object) + { + return createUnaryDeQueueExpressionAdapter(); + } + @Override + public Adapter caseUnaryEmptyExpression(UnaryEmptyExpression object) + { + return createUnaryEmptyExpressionAdapter(); + } + @Override + public Adapter caseProjection(Projection object) + { + return createProjectionAdapter(); + } + @Override + public Adapter caseConstructionExpression(ConstructionExpression object) + { + return createConstructionExpressionAdapter(); + } + @Override + public Adapter caseArrayAccessExpression(ArrayAccessExpression object) + { + return createArrayAccessExpressionAdapter(); + } + @Override + public Adapter caseRecordAccessExpression(RecordAccessExpression object) + { + return createRecordAccessExpressionAdapter(); + } + @Override + public Adapter caseTrueLiteral(TrueLiteral object) + { + return createTrueLiteralAdapter(); + } + @Override + public Adapter caseFalseLiteral(FalseLiteral object) + { + return createFalseLiteralAdapter(); + } + @Override + public Adapter caseAllProperty(AllProperty object) + { + return createAllPropertyAdapter(); + } + @Override + public Adapter caseExistsProperty(ExistsProperty object) + { + return createExistsPropertyAdapter(); + } + @Override + public Adapter casePropertyDisjunction(PropertyDisjunction object) + { + return createPropertyDisjunctionAdapter(); + } + @Override + public Adapter casePropertyImplication(PropertyImplication object) + { + return createPropertyImplicationAdapter(); + } + @Override + public Adapter casePropertyConjunction(PropertyConjunction object) + { + return createPropertyConjunctionAdapter(); + } + @Override + public Adapter casePropertyNegation(PropertyNegation object) + { + return createPropertyNegationAdapter(); + } + @Override + public Adapter caseLeadsToPattern(LeadsToPattern object) + { + return createLeadsToPatternAdapter(); + } + @Override + public Adapter casePrecedesPattern(PrecedesPattern object) + { + return createPrecedesPatternAdapter(); + } + @Override + public Adapter caseLTLAll(LTLAll object) + { + return createLTLAllAdapter(); + } + @Override + public Adapter caseLTLExists(LTLExists object) + { + return createLTLExistsAdapter(); + } + @Override + public Adapter caseLTLDisjunction(LTLDisjunction object) + { + return createLTLDisjunctionAdapter(); + } + @Override + public Adapter caseLTLImplication(LTLImplication object) + { + return createLTLImplicationAdapter(); + } + @Override + public Adapter caseLTLConjunction(LTLConjunction object) + { + return createLTLConjunctionAdapter(); + } + @Override + public Adapter caseLTLUntil(LTLUntil object) + { + return createLTLUntilAdapter(); + } + @Override + public Adapter caseLTLRelease(LTLRelease object) + { + return createLTLReleaseAdapter(); + } + @Override + public Adapter caseLTLUnaryNegation(LTLUnaryNegation object) + { + return createLTLUnaryNegationAdapter(); + } + @Override + public Adapter caseLTLUnaryNext(LTLUnaryNext object) + { + return createLTLUnaryNextAdapter(); + } + @Override + public Adapter caseLTLUnaryAlways(LTLUnaryAlways object) + { + return createLTLUnaryAlwaysAdapter(); + } + @Override + public Adapter caseLTLUnaryEventually(LTLUnaryEventually object) + { + return createLTLUnaryEventuallyAdapter(); + } + @Override + public Adapter caseLTLVariable(LTLVariable object) + { + return createLTLVariableAdapter(); + } + @Override + public Adapter caseObservableDisjunction(ObservableDisjunction object) + { + return createObservableDisjunctionAdapter(); + } + @Override + public Adapter caseObservableImplication(ObservableImplication object) + { + return createObservableImplicationAdapter(); + } + @Override + public Adapter caseObservableConjunction(ObservableConjunction object) + { + return createObservableConjunctionAdapter(); + } + @Override + public Adapter caseObservableNegation(ObservableNegation object) + { + return createObservableNegationAdapter(); + } + @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 fr.irit.fiacre.xtext.fiacre.Model Model}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Model + * @generated + */ + public Adapter createModelAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.RootDeclaration Root Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.RootDeclaration + * @generated + */ + public Adapter createRootDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Root Root}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Root + * @generated + */ + public Adapter createRootAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.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 fr.irit.fiacre.xtext.fiacre.NamedElement + * @generated + */ + public Adapter createNamedElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse Type Declaration Use}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse + * @generated + */ + public Adapter createTypeDeclarationUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ConstantDeclarationUse Constant Declaration Use}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ConstantDeclarationUse + * @generated + */ + public Adapter createConstantDeclarationUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse Expression Declaration Use}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse + * @generated + */ + public Adapter createExpressionDeclarationUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse Reference Declaration Use}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse + * @generated + */ + public Adapter createReferenceDeclarationUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclarationUse Union Tag Declaration Use}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.UnionTagDeclarationUse + * @generated + */ + public Adapter createUnionTagDeclarationUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse Record Field Declaration Use}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse + * @generated + */ + public Adapter createRecordFieldDeclarationUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse Pattern Declaration Use}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse + * @generated + */ + public Adapter createPatternDeclarationUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse Bound Declaration Use}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse + * @generated + */ + public Adapter createBoundDeclarationUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PathDeclarationUse Path Declaration Use}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PathDeclarationUse + * @generated + */ + public Adapter createPathDeclarationUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse Property Declaration Use}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse + * @generated + */ + public Adapter createPropertyDeclarationUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration Import Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ImportDeclaration + * @generated + */ + public Adapter createImportDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Declaration Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Declaration + * @generated + */ + public Adapter createDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration Parameterized Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration + * @generated + */ + public Adapter createParameterizedDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration Function Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.FunctionDeclaration + * @generated + */ + public Adapter createFunctionDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.TypeDeclaration Type Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.TypeDeclaration + * @generated + */ + public Adapter createTypeDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ChannelDeclaration Channel Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ChannelDeclaration + * @generated + */ + public Adapter createChannelDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ChannelType Channel Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ChannelType + * @generated + */ + public Adapter createChannelTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Type Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Type + * @generated + */ + public Adapter createTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.BasicType Basic Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.BasicType + * @generated + */ + public Adapter createBasicTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.RangeType Range Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.RangeType + * @generated + */ + public Adapter createRangeTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnionType Union Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.UnionType + * @generated + */ + public Adapter createUnionTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnionTags Union Tags}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.UnionTags + * @generated + */ + public Adapter createUnionTagsAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration Union Tag Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration + * @generated + */ + public Adapter createUnionTagDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.RecordType Record Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.RecordType + * @generated + */ + public Adapter createRecordTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.RecordFields Record Fields}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.RecordFields + * @generated + */ + public Adapter createRecordFieldsAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration Record Field Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration + * @generated + */ + public Adapter createRecordFieldDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.QueueType Queue Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.QueueType + * @generated + */ + public Adapter createQueueTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ArrayType Array Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ArrayType + * @generated + */ + public Adapter createArrayTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ReferencedType Referenced Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ReferencedType + * @generated + */ + public Adapter createReferencedTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration Constant Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ConstantDeclaration + * @generated + */ + public Adapter createConstantDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration Process Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ProcessDeclaration + * @generated + */ + public Adapter createProcessDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.StateDeclaration State Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.StateDeclaration + * @generated + */ + public Adapter createStateDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.TransitionSource Transition Source}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.TransitionSource + * @generated + */ + public Adapter createTransitionSourceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Transition Transition}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Transition + * @generated + */ + public Adapter createTransitionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration Component Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ComponentDeclaration + * @generated + */ + public Adapter createComponentDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration Ports Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PortsDeclaration + * @generated + */ + public Adapter createPortsDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PortDeclaration Port Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PortDeclaration + * @generated + */ + public Adapter createPortDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration Local Ports Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration + * @generated + */ + public Adapter createLocalPortsDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration Parameters Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ParametersDeclaration + * @generated + */ + public Adapter createParametersDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration Parameter Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ParameterDeclaration + * @generated + */ + public Adapter createParameterDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration Variables Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.VariablesDeclaration + * @generated + */ + public Adapter createVariablesDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.VariableDeclaration Variable Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.VariableDeclaration + * @generated + */ + public Adapter createVariableDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration Priority Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PriorityDeclaration + * @generated + */ + public Adapter createPriorityDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PriorityGroup Priority Group}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PriorityGroup + * @generated + */ + public Adapter createPriorityGroupAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Statement 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 fr.irit.fiacre.xtext.fiacre.Statement + * @generated + */ + public Adapter createStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.BlockStatement Block 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 fr.irit.fiacre.xtext.fiacre.BlockStatement + * @generated + */ + public Adapter createBlockStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ReturnStatement Return 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 fr.irit.fiacre.xtext.fiacre.ReturnStatement + * @generated + */ + public Adapter createReturnStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.NullStatement Null 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 fr.irit.fiacre.xtext.fiacre.NullStatement + * @generated + */ + public Adapter createNullStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.TaggedStatement Tagged 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 fr.irit.fiacre.xtext.fiacre.TaggedStatement + * @generated + */ + public Adapter createTaggedStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PatternStatement Pattern 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 fr.irit.fiacre.xtext.fiacre.PatternStatement + * @generated + */ + public Adapter createPatternStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Pattern Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Pattern + * @generated + */ + public Adapter createPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.AnyPattern Any Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.AnyPattern + * @generated + */ + public Adapter createAnyPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ConstantPattern Constant Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ConstantPattern + * @generated + */ + public Adapter createConstantPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.IntegerPattern Integer Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.IntegerPattern + * @generated + */ + public Adapter createIntegerPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.IdentifierPattern Identifier Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.IdentifierPattern + * @generated + */ + public Adapter createIdentifierPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement Conditional 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 fr.irit.fiacre.xtext.fiacre.ConditionalStatement + * @generated + */ + public Adapter createConditionalStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement Extended Conditional 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 fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement + * @generated + */ + public Adapter createExtendedConditionalStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.SelectStatement Select 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 fr.irit.fiacre.xtext.fiacre.SelectStatement + * @generated + */ + public Adapter createSelectStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.WhileStatement While 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 fr.irit.fiacre.xtext.fiacre.WhileStatement + * @generated + */ + public Adapter createWhileStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ForeachStatement Foreach 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 fr.irit.fiacre.xtext.fiacre.ForeachStatement + * @generated + */ + public Adapter createForeachStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ToStatement To 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 fr.irit.fiacre.xtext.fiacre.ToStatement + * @generated + */ + public Adapter createToStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.CaseStatement Case 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 fr.irit.fiacre.xtext.fiacre.CaseStatement + * @generated + */ + public Adapter createCaseStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LoopStatement Loop 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 fr.irit.fiacre.xtext.fiacre.LoopStatement + * @generated + */ + public Adapter createLoopStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.OnStatement On 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 fr.irit.fiacre.xtext.fiacre.OnStatement + * @generated + */ + public Adapter createOnStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.WaitStatement Wait 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 fr.irit.fiacre.xtext.fiacre.WaitStatement + * @generated + */ + public Adapter createWaitStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Composition Composition}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Composition + * @generated + */ + public Adapter createCompositionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Block Block}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Block + * @generated + */ + public Adapter createBlockAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.CompositeBlock Composite Block}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.CompositeBlock + * @generated + */ + public Adapter createCompositeBlockAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.InstanceDeclaration Instance Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.InstanceDeclaration + * @generated + */ + public Adapter createInstanceDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PortSet Port 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 fr.irit.fiacre.xtext.fiacre.PortSet + * @generated + */ + public Adapter createPortSetAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ComponentInstance Component Instance}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ComponentInstance + * @generated + */ + public Adapter createComponentInstanceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.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 fr.irit.fiacre.xtext.fiacre.Expression + * @generated + */ + public Adapter createExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.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 fr.irit.fiacre.xtext.fiacre.ValueExpression + * @generated + */ + public Adapter createValueExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ReferenceExpression Reference 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 fr.irit.fiacre.xtext.fiacre.ReferenceExpression + * @generated + */ + public Adapter createReferenceExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.IdentifierExpression Identifier 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 fr.irit.fiacre.xtext.fiacre.IdentifierExpression + * @generated + */ + public Adapter createIdentifierExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.RecordExpression Record 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 fr.irit.fiacre.xtext.fiacre.RecordExpression + * @generated + */ + public Adapter createRecordExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.FieldExpression Field 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 fr.irit.fiacre.xtext.fiacre.FieldExpression + * @generated + */ + public Adapter createFieldExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ArrayExpression Array 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 fr.irit.fiacre.xtext.fiacre.ArrayExpression + * @generated + */ + public Adapter createArrayExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.QueueExpression Queue 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 fr.irit.fiacre.xtext.fiacre.QueueExpression + * @generated + */ + public Adapter createQueueExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression Enqueue 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 fr.irit.fiacre.xtext.fiacre.EnqueueExpression + * @generated + */ + public Adapter createEnqueueExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.AppendExpression Append 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 fr.irit.fiacre.xtext.fiacre.AppendExpression + * @generated + */ + public Adapter createAppendExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LiteralExpression Literal 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 fr.irit.fiacre.xtext.fiacre.LiteralExpression + * @generated + */ + public Adapter createLiteralExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.BooleanLiteral Boolean Literal}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.BooleanLiteral + * @generated + */ + public Adapter createBooleanLiteralAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.NaturalLiteral Natural Literal}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.NaturalLiteral + * @generated + */ + public Adapter createNaturalLiteralAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LowerBound Lower Bound}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LowerBound + * @generated + */ + public Adapter createLowerBoundAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UpperBound Upper Bound}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.UpperBound + * @generated + */ + public Adapter createUpperBoundAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.NaturalLowerBound Natural Lower Bound}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.NaturalLowerBound + * @generated + */ + public Adapter createNaturalLowerBoundAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound Natural Upper Bound}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.NaturalUpperBound + * @generated + */ + public Adapter createNaturalUpperBoundAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.DecimalLowerBound Decimal Lower Bound}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.DecimalLowerBound + * @generated + */ + public Adapter createDecimalLowerBoundAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound Decimal Upper Bound}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.DecimalUpperBound + * @generated + */ + public Adapter createDecimalUpperBoundAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.VariableLowerBound Variable Lower Bound}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.VariableLowerBound + * @generated + */ + public Adapter createVariableLowerBoundAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound Variable Upper Bound}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.VariableUpperBound + * @generated + */ + public Adapter createVariableUpperBoundAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound Infinite Upper Bound}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound + * @generated + */ + public Adapter createInfiniteUpperBoundAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Requirement Requirement}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Requirement + * @generated + */ + public Adapter createRequirementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PropertyDeclaration Property Declaration}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PropertyDeclaration + * @generated + */ + public Adapter createPropertyDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Property 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 fr.irit.fiacre.xtext.fiacre.Property + * @generated + */ + public Adapter createPropertyAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PatternProperty Pattern 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 fr.irit.fiacre.xtext.fiacre.PatternProperty + * @generated + */ + public Adapter createPatternPropertyAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLPattern LTL Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLPattern + * @generated + */ + public Adapter createLTLPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern Deadlock Free Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern + * @generated + */ + public Adapter createDeadlockFreePatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern Infinitely Often Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern + * @generated + */ + public Adapter createInfinitelyOftenPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.MortalPattern Mortal Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.MortalPattern + * @generated + */ + public Adapter createMortalPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PresencePattern Presence Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PresencePattern + * @generated + */ + public Adapter createPresencePatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.AbsencePattern Absence Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.AbsencePattern + * @generated + */ + public Adapter createAbsencePatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern Always Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.AlwaysPattern + * @generated + */ + public Adapter createAlwaysPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.SequencePattern Sequence Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.SequencePattern + * @generated + */ + public Adapter createSequencePatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLProperty LTL 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 fr.irit.fiacre.xtext.fiacre.LTLProperty + * @generated + */ + public Adapter createLTLPropertyAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.StateEvent State Event}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.StateEvent + * @generated + */ + public Adapter createStateEventAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.EnterStateEvent Enter State Event}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.EnterStateEvent + * @generated + */ + public Adapter createEnterStateEventAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LeaveStateEvent Leave State Event}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LeaveStateEvent + * @generated + */ + public Adapter createLeaveStateEventAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Observable Observable}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Observable + * @generated + */ + public Adapter createObservableAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ObservableEvent Observable Event}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ObservableEvent + * @generated + */ + public Adapter createObservableEventAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PathEvent Path Event}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PathEvent + * @generated + */ + public Adapter createPathEventAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Path Path}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Path + * @generated + */ + public Adapter createPathAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PathItem Path Item}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PathItem + * @generated + */ + public Adapter createPathItemAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.NaturalItem Natural Item}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.NaturalItem + * @generated + */ + public Adapter createNaturalItemAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.NamedItem Named Item}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.NamedItem + * @generated + */ + public Adapter createNamedItemAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Subject Subject}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Subject + * @generated + */ + public Adapter createSubjectAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.StateSubject State Subject}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.StateSubject + * @generated + */ + public Adapter createStateSubjectAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ValueSubject Value Subject}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ValueSubject + * @generated + */ + public Adapter createValueSubjectAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.TagSubject Tag Subject}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.TagSubject + * @generated + */ + public Adapter createTagSubjectAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.EventSubject Event Subject}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.EventSubject + * @generated + */ + public Adapter createEventSubjectAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.TupleType Tuple Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.TupleType + * @generated + */ + public Adapter createTupleTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.NaturalType Natural Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.NaturalType + * @generated + */ + public Adapter createNaturalTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.IntegerType Integer Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.IntegerType + * @generated + */ + public Adapter createIntegerTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.BooleanType Boolean Type}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.BooleanType + * @generated + */ + public Adapter createBooleanTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnlessStatement Unless 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 fr.irit.fiacre.xtext.fiacre.UnlessStatement + * @generated + */ + public Adapter createUnlessStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.StatementChoice Statement Choice}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.StatementChoice + * @generated + */ + public Adapter createStatementChoiceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.StatementSequence Statement Sequence}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.StatementSequence + * @generated + */ + public Adapter createStatementSequenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.AssignStatement Assign 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 fr.irit.fiacre.xtext.fiacre.AssignStatement + * @generated + */ + public Adapter createAssignStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement Assign Any 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 fr.irit.fiacre.xtext.fiacre.AssignAnyStatement + * @generated + */ + public Adapter createAssignAnyStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.SendStatement Send 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 fr.irit.fiacre.xtext.fiacre.SendStatement + * @generated + */ + public Adapter createSendStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement Receive 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 fr.irit.fiacre.xtext.fiacre.ReceiveStatement + * @generated + */ + public Adapter createReceiveStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ConstructorPattern Constructor Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ConstructorPattern + * @generated + */ + public Adapter createConstructorPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern Array Access Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern + * @generated + */ + public Adapter createArrayAccessPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern Record Access Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.RecordAccessPattern + * @generated + */ + public Adapter createRecordAccessPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.AllExpression All 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 fr.irit.fiacre.xtext.fiacre.AllExpression + * @generated + */ + public Adapter createAllExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ExistsExpression Exists 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 fr.irit.fiacre.xtext.fiacre.ExistsExpression + * @generated + */ + public Adapter createExistsExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Conditional Conditional}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Conditional + * @generated + */ + public Adapter createConditionalAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Disjunction Disjunction}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Disjunction + * @generated + */ + public Adapter createDisjunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Implication Implication}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Implication + * @generated + */ + public Adapter createImplicationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Conjunction Conjunction}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Conjunction + * @generated + */ + public Adapter createConjunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual Comparison Equal}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ComparisonEqual + * @generated + */ + public Adapter createComparisonEqualAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual Comparison Not Equal}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual + * @generated + */ + public Adapter createComparisonNotEqualAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser Comparison Lesser}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ComparisonLesser + * @generated + */ + public Adapter createComparisonLesserAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual Comparison Lesser Equal}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual + * @generated + */ + public Adapter createComparisonLesserEqualAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater Comparison Greater}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ComparisonGreater + * @generated + */ + public Adapter createComparisonGreaterAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual Comparison Greater Equal}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual + * @generated + */ + public Adapter createComparisonGreaterEqualAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Addition Addition}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Addition + * @generated + */ + public Adapter createAdditionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Substraction Substraction}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Substraction + * @generated + */ + public Adapter createSubstractionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Multiplication Multiplication}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Multiplication + * @generated + */ + public Adapter createMultiplicationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Division Division}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Division + * @generated + */ + public Adapter createDivisionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Modulo Modulo}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Modulo + * @generated + */ + public Adapter createModuloAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression Unary Plus 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 fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression + * @generated + */ + public Adapter createUnaryPlusExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression Unary Minus 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 fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression + * @generated + */ + public Adapter createUnaryMinusExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression Unary Negation 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 fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression + * @generated + */ + public Adapter createUnaryNegationExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression Unary First 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 fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression + * @generated + */ + public Adapter createUnaryFirstExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression Unary Length 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 fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression + * @generated + */ + public Adapter createUnaryLengthExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression Unary Coerce 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 fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression + * @generated + */ + public Adapter createUnaryCoerceExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnaryFullExpression Unary Full 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 fr.irit.fiacre.xtext.fiacre.UnaryFullExpression + * @generated + */ + public Adapter createUnaryFullExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression Unary De Queue 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 fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression + * @generated + */ + public Adapter createUnaryDeQueueExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression Unary Empty 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 fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression + * @generated + */ + public Adapter createUnaryEmptyExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.Projection Projection}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.Projection + * @generated + */ + public Adapter createProjectionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ConstructionExpression Construction 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 fr.irit.fiacre.xtext.fiacre.ConstructionExpression + * @generated + */ + public Adapter createConstructionExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression Array Access 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 fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression + * @generated + */ + public Adapter createArrayAccessExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression Record Access 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 fr.irit.fiacre.xtext.fiacre.RecordAccessExpression + * @generated + */ + public Adapter createRecordAccessExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.TrueLiteral True Literal}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.TrueLiteral + * @generated + */ + public Adapter createTrueLiteralAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.FalseLiteral False Literal}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.FalseLiteral + * @generated + */ + public Adapter createFalseLiteralAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.AllProperty All 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 fr.irit.fiacre.xtext.fiacre.AllProperty + * @generated + */ + public Adapter createAllPropertyAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ExistsProperty Exists 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 fr.irit.fiacre.xtext.fiacre.ExistsProperty + * @generated + */ + public Adapter createExistsPropertyAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction Property Disjunction}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PropertyDisjunction + * @generated + */ + public Adapter createPropertyDisjunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PropertyImplication Property Implication}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PropertyImplication + * @generated + */ + public Adapter createPropertyImplicationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction Property Conjunction}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PropertyConjunction + * @generated + */ + public Adapter createPropertyConjunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PropertyNegation Property Negation}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PropertyNegation + * @generated + */ + public Adapter createPropertyNegationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern Leads To Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LeadsToPattern + * @generated + */ + public Adapter createLeadsToPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern Precedes Pattern}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.PrecedesPattern + * @generated + */ + public Adapter createPrecedesPatternAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLAll LTL All}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLAll + * @generated + */ + public Adapter createLTLAllAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLExists LTL Exists}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLExists + * @generated + */ + public Adapter createLTLExistsAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction LTL Disjunction}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLDisjunction + * @generated + */ + public Adapter createLTLDisjunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLImplication LTL Implication}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLImplication + * @generated + */ + public Adapter createLTLImplicationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLConjunction LTL Conjunction}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLConjunction + * @generated + */ + public Adapter createLTLConjunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLUntil LTL Until}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLUntil + * @generated + */ + public Adapter createLTLUntilAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLRelease LTL Release}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLRelease + * @generated + */ + public Adapter createLTLReleaseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation LTL Unary Negation}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation + * @generated + */ + public Adapter createLTLUnaryNegationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNext LTL Unary Next}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLUnaryNext + * @generated + */ + public Adapter createLTLUnaryNextAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways LTL Unary Always}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways + * @generated + */ + public Adapter createLTLUnaryAlwaysAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually LTL Unary Eventually}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually + * @generated + */ + public Adapter createLTLUnaryEventuallyAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.LTLVariable LTL 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 fr.irit.fiacre.xtext.fiacre.LTLVariable + * @generated + */ + public Adapter createLTLVariableAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction Observable Disjunction}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ObservableDisjunction + * @generated + */ + public Adapter createObservableDisjunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ObservableImplication Observable Implication}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ObservableImplication + * @generated + */ + public Adapter createObservableImplicationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction Observable Conjunction}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ObservableConjunction + * @generated + */ + public Adapter createObservableConjunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link fr.irit.fiacre.xtext.fiacre.ObservableNegation Observable Negation}'. + * + * This default implementation 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 fr.irit.fiacre.xtext.fiacre.ObservableNegation + * @generated + */ + public Adapter createObservableNegationAdapter() + { + 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; + } + +} //FiacreAdapterFactory diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/util/FiacreSwitch.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/util/FiacreSwitch.java new file mode 100644 index 0000000..22616b2 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/fiacre/util/FiacreSwitch.java @@ -0,0 +1,4878 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.fiacre.util; + +import fr.irit.fiacre.xtext.fiacre.*; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +/** + * + * 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 fr.irit.fiacre.xtext.fiacre.FiacrePackage + * @generated + */ +public class FiacreSwitch extends Switch +{ + /** + * The cached model package + * + * + * @generated + */ + protected static FiacrePackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public FiacreSwitch() + { + if (modelPackage == null) + { + modelPackage = FiacrePackage.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 FiacrePackage.MODEL: + { + Model model = (Model)theEObject; + T result = caseModel(model); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ROOT_DECLARATION: + { + RootDeclaration rootDeclaration = (RootDeclaration)theEObject; + T result = caseRootDeclaration(rootDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ROOT: + { + Root root = (Root)theEObject; + T result = caseRoot(root); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.NAMED_ELEMENT: + { + NamedElement namedElement = (NamedElement)theEObject; + T result = caseNamedElement(namedElement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.TYPE_DECLARATION_USE: + { + TypeDeclarationUse typeDeclarationUse = (TypeDeclarationUse)theEObject; + T result = caseTypeDeclarationUse(typeDeclarationUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CONSTANT_DECLARATION_USE: + { + ConstantDeclarationUse constantDeclarationUse = (ConstantDeclarationUse)theEObject; + T result = caseConstantDeclarationUse(constantDeclarationUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.EXPRESSION_DECLARATION_USE: + { + ExpressionDeclarationUse expressionDeclarationUse = (ExpressionDeclarationUse)theEObject; + T result = caseExpressionDeclarationUse(expressionDeclarationUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.REFERENCE_DECLARATION_USE: + { + ReferenceDeclarationUse referenceDeclarationUse = (ReferenceDeclarationUse)theEObject; + T result = caseReferenceDeclarationUse(referenceDeclarationUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNION_TAG_DECLARATION_USE: + { + UnionTagDeclarationUse unionTagDeclarationUse = (UnionTagDeclarationUse)theEObject; + T result = caseUnionTagDeclarationUse(unionTagDeclarationUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.RECORD_FIELD_DECLARATION_USE: + { + RecordFieldDeclarationUse recordFieldDeclarationUse = (RecordFieldDeclarationUse)theEObject; + T result = caseRecordFieldDeclarationUse(recordFieldDeclarationUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PATTERN_DECLARATION_USE: + { + PatternDeclarationUse patternDeclarationUse = (PatternDeclarationUse)theEObject; + T result = casePatternDeclarationUse(patternDeclarationUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.BOUND_DECLARATION_USE: + { + BoundDeclarationUse boundDeclarationUse = (BoundDeclarationUse)theEObject; + T result = caseBoundDeclarationUse(boundDeclarationUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PATH_DECLARATION_USE: + { + PathDeclarationUse pathDeclarationUse = (PathDeclarationUse)theEObject; + T result = casePathDeclarationUse(pathDeclarationUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PROPERTY_DECLARATION_USE: + { + PropertyDeclarationUse propertyDeclarationUse = (PropertyDeclarationUse)theEObject; + T result = casePropertyDeclarationUse(propertyDeclarationUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.IMPORT_DECLARATION: + { + ImportDeclaration importDeclaration = (ImportDeclaration)theEObject; + T result = caseImportDeclaration(importDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.DECLARATION: + { + Declaration declaration = (Declaration)theEObject; + T result = caseDeclaration(declaration); + if (result == null) result = caseNamedElement(declaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PARAMETERIZED_DECLARATION: + { + ParameterizedDeclaration parameterizedDeclaration = (ParameterizedDeclaration)theEObject; + T result = caseParameterizedDeclaration(parameterizedDeclaration); + if (result == null) result = caseDeclaration(parameterizedDeclaration); + if (result == null) result = caseNamedElement(parameterizedDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.FUNCTION_DECLARATION: + { + FunctionDeclaration functionDeclaration = (FunctionDeclaration)theEObject; + T result = caseFunctionDeclaration(functionDeclaration); + if (result == null) result = caseExpressionDeclarationUse(functionDeclaration); + if (result == null) result = caseParameterizedDeclaration(functionDeclaration); + if (result == null) result = caseDeclaration(functionDeclaration); + if (result == null) result = caseNamedElement(functionDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.TYPE_DECLARATION: + { + TypeDeclaration typeDeclaration = (TypeDeclaration)theEObject; + T result = caseTypeDeclaration(typeDeclaration); + if (result == null) result = caseTypeDeclarationUse(typeDeclaration); + if (result == null) result = caseDeclaration(typeDeclaration); + if (result == null) result = caseNamedElement(typeDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CHANNEL_DECLARATION: + { + ChannelDeclaration channelDeclaration = (ChannelDeclaration)theEObject; + T result = caseChannelDeclaration(channelDeclaration); + if (result == null) result = caseTypeDeclarationUse(channelDeclaration); + if (result == null) result = caseDeclaration(channelDeclaration); + if (result == null) result = caseNamedElement(channelDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CHANNEL_TYPE: + { + ChannelType channelType = (ChannelType)theEObject; + T result = caseChannelType(channelType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.TYPE: + { + Type type = (Type)theEObject; + T result = caseType(type); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.BASIC_TYPE: + { + BasicType basicType = (BasicType)theEObject; + T result = caseBasicType(basicType); + if (result == null) result = caseType(basicType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.RANGE_TYPE: + { + RangeType rangeType = (RangeType)theEObject; + T result = caseRangeType(rangeType); + if (result == null) result = caseType(rangeType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNION_TYPE: + { + UnionType unionType = (UnionType)theEObject; + T result = caseUnionType(unionType); + if (result == null) result = caseType(unionType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNION_TAGS: + { + UnionTags unionTags = (UnionTags)theEObject; + T result = caseUnionTags(unionTags); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNION_TAG_DECLARATION: + { + UnionTagDeclaration unionTagDeclaration = (UnionTagDeclaration)theEObject; + T result = caseUnionTagDeclaration(unionTagDeclaration); + if (result == null) result = caseNamedElement(unionTagDeclaration); + if (result == null) result = caseExpressionDeclarationUse(unionTagDeclaration); + if (result == null) result = caseUnionTagDeclarationUse(unionTagDeclaration); + if (result == null) result = casePatternDeclarationUse(unionTagDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.RECORD_TYPE: + { + RecordType recordType = (RecordType)theEObject; + T result = caseRecordType(recordType); + if (result == null) result = caseType(recordType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.RECORD_FIELDS: + { + RecordFields recordFields = (RecordFields)theEObject; + T result = caseRecordFields(recordFields); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.RECORD_FIELD_DECLARATION: + { + RecordFieldDeclaration recordFieldDeclaration = (RecordFieldDeclaration)theEObject; + T result = caseRecordFieldDeclaration(recordFieldDeclaration); + if (result == null) result = caseNamedElement(recordFieldDeclaration); + if (result == null) result = caseRecordFieldDeclarationUse(recordFieldDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.QUEUE_TYPE: + { + QueueType queueType = (QueueType)theEObject; + T result = caseQueueType(queueType); + if (result == null) result = caseType(queueType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ARRAY_TYPE: + { + ArrayType arrayType = (ArrayType)theEObject; + T result = caseArrayType(arrayType); + if (result == null) result = caseType(arrayType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.REFERENCED_TYPE: + { + ReferencedType referencedType = (ReferencedType)theEObject; + T result = caseReferencedType(referencedType); + if (result == null) result = caseType(referencedType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CONSTANT_DECLARATION: + { + ConstantDeclaration constantDeclaration = (ConstantDeclaration)theEObject; + T result = caseConstantDeclaration(constantDeclaration); + if (result == null) result = caseConstantDeclarationUse(constantDeclaration); + if (result == null) result = caseExpressionDeclarationUse(constantDeclaration); + if (result == null) result = caseBoundDeclarationUse(constantDeclaration); + if (result == null) result = caseDeclaration(constantDeclaration); + if (result == null) result = caseNamedElement(constantDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PROCESS_DECLARATION: + { + ProcessDeclaration processDeclaration = (ProcessDeclaration)theEObject; + T result = caseProcessDeclaration(processDeclaration); + if (result == null) result = caseRootDeclaration(processDeclaration); + if (result == null) result = casePathDeclarationUse(processDeclaration); + if (result == null) result = caseParameterizedDeclaration(processDeclaration); + if (result == null) result = caseDeclaration(processDeclaration); + if (result == null) result = caseNamedElement(processDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.STATE_DECLARATION: + { + StateDeclaration stateDeclaration = (StateDeclaration)theEObject; + T result = caseStateDeclaration(stateDeclaration); + if (result == null) result = caseNamedElement(stateDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.TRANSITION_SOURCE: + { + TransitionSource transitionSource = (TransitionSource)theEObject; + T result = caseTransitionSource(transitionSource); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.TRANSITION: + { + Transition transition = (Transition)theEObject; + T result = caseTransition(transition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.COMPONENT_DECLARATION: + { + ComponentDeclaration componentDeclaration = (ComponentDeclaration)theEObject; + T result = caseComponentDeclaration(componentDeclaration); + if (result == null) result = caseRootDeclaration(componentDeclaration); + if (result == null) result = casePathDeclarationUse(componentDeclaration); + if (result == null) result = caseParameterizedDeclaration(componentDeclaration); + if (result == null) result = caseDeclaration(componentDeclaration); + if (result == null) result = caseNamedElement(componentDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PORTS_DECLARATION: + { + PortsDeclaration portsDeclaration = (PortsDeclaration)theEObject; + T result = casePortsDeclaration(portsDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PORT_DECLARATION: + { + PortDeclaration portDeclaration = (PortDeclaration)theEObject; + T result = casePortDeclaration(portDeclaration); + if (result == null) result = caseNamedElement(portDeclaration); + if (result == null) result = caseExpressionDeclarationUse(portDeclaration); + if (result == null) result = casePatternDeclarationUse(portDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LOCAL_PORTS_DECLARATION: + { + LocalPortsDeclaration localPortsDeclaration = (LocalPortsDeclaration)theEObject; + T result = caseLocalPortsDeclaration(localPortsDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PARAMETERS_DECLARATION: + { + ParametersDeclaration parametersDeclaration = (ParametersDeclaration)theEObject; + T result = caseParametersDeclaration(parametersDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PARAMETER_DECLARATION: + { + ParameterDeclaration parameterDeclaration = (ParameterDeclaration)theEObject; + T result = caseParameterDeclaration(parameterDeclaration); + if (result == null) result = caseNamedElement(parameterDeclaration); + if (result == null) result = caseExpressionDeclarationUse(parameterDeclaration); + if (result == null) result = caseReferenceDeclarationUse(parameterDeclaration); + if (result == null) result = casePatternDeclarationUse(parameterDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.VARIABLES_DECLARATION: + { + VariablesDeclaration variablesDeclaration = (VariablesDeclaration)theEObject; + T result = caseVariablesDeclaration(variablesDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.VARIABLE_DECLARATION: + { + VariableDeclaration variableDeclaration = (VariableDeclaration)theEObject; + T result = caseVariableDeclaration(variableDeclaration); + if (result == null) result = caseNamedElement(variableDeclaration); + if (result == null) result = caseExpressionDeclarationUse(variableDeclaration); + if (result == null) result = caseReferenceDeclarationUse(variableDeclaration); + if (result == null) result = casePatternDeclarationUse(variableDeclaration); + if (result == null) result = caseBoundDeclarationUse(variableDeclaration); + if (result == null) result = casePropertyDeclarationUse(variableDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PRIORITY_DECLARATION: + { + PriorityDeclaration priorityDeclaration = (PriorityDeclaration)theEObject; + T result = casePriorityDeclaration(priorityDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PRIORITY_GROUP: + { + PriorityGroup priorityGroup = (PriorityGroup)theEObject; + T result = casePriorityGroup(priorityGroup); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.STATEMENT: + { + Statement statement = (Statement)theEObject; + T result = caseStatement(statement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.BLOCK_STATEMENT: + { + BlockStatement blockStatement = (BlockStatement)theEObject; + T result = caseBlockStatement(blockStatement); + if (result == null) result = caseStatement(blockStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.RETURN_STATEMENT: + { + ReturnStatement returnStatement = (ReturnStatement)theEObject; + T result = caseReturnStatement(returnStatement); + if (result == null) result = caseStatement(returnStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.NULL_STATEMENT: + { + NullStatement nullStatement = (NullStatement)theEObject; + T result = caseNullStatement(nullStatement); + if (result == null) result = caseStatement(nullStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.TAGGED_STATEMENT: + { + TaggedStatement taggedStatement = (TaggedStatement)theEObject; + T result = caseTaggedStatement(taggedStatement); + if (result == null) result = caseStatement(taggedStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PATTERN_STATEMENT: + { + PatternStatement patternStatement = (PatternStatement)theEObject; + T result = casePatternStatement(patternStatement); + if (result == null) result = caseStatement(patternStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PATTERN: + { + Pattern pattern = (Pattern)theEObject; + T result = casePattern(pattern); + if (result == null) result = casePatternStatement(pattern); + if (result == null) result = caseStatement(pattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ANY_PATTERN: + { + AnyPattern anyPattern = (AnyPattern)theEObject; + T result = caseAnyPattern(anyPattern); + if (result == null) result = casePattern(anyPattern); + if (result == null) result = casePatternStatement(anyPattern); + if (result == null) result = caseStatement(anyPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CONSTANT_PATTERN: + { + ConstantPattern constantPattern = (ConstantPattern)theEObject; + T result = caseConstantPattern(constantPattern); + if (result == null) result = casePattern(constantPattern); + if (result == null) result = casePatternStatement(constantPattern); + if (result == null) result = caseStatement(constantPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.INTEGER_PATTERN: + { + IntegerPattern integerPattern = (IntegerPattern)theEObject; + T result = caseIntegerPattern(integerPattern); + if (result == null) result = casePattern(integerPattern); + if (result == null) result = casePatternStatement(integerPattern); + if (result == null) result = caseStatement(integerPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.IDENTIFIER_PATTERN: + { + IdentifierPattern identifierPattern = (IdentifierPattern)theEObject; + T result = caseIdentifierPattern(identifierPattern); + if (result == null) result = casePattern(identifierPattern); + if (result == null) result = casePatternStatement(identifierPattern); + if (result == null) result = caseStatement(identifierPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CONDITIONAL_STATEMENT: + { + ConditionalStatement conditionalStatement = (ConditionalStatement)theEObject; + T result = caseConditionalStatement(conditionalStatement); + if (result == null) result = caseStatement(conditionalStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT: + { + ExtendedConditionalStatement extendedConditionalStatement = (ExtendedConditionalStatement)theEObject; + T result = caseExtendedConditionalStatement(extendedConditionalStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.SELECT_STATEMENT: + { + SelectStatement selectStatement = (SelectStatement)theEObject; + T result = caseSelectStatement(selectStatement); + if (result == null) result = caseStatement(selectStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.WHILE_STATEMENT: + { + WhileStatement whileStatement = (WhileStatement)theEObject; + T result = caseWhileStatement(whileStatement); + if (result == null) result = caseStatement(whileStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.FOREACH_STATEMENT: + { + ForeachStatement foreachStatement = (ForeachStatement)theEObject; + T result = caseForeachStatement(foreachStatement); + if (result == null) result = caseStatement(foreachStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.TO_STATEMENT: + { + ToStatement toStatement = (ToStatement)theEObject; + T result = caseToStatement(toStatement); + if (result == null) result = caseStatement(toStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CASE_STATEMENT: + { + CaseStatement caseStatement = (CaseStatement)theEObject; + T result = caseCaseStatement(caseStatement); + if (result == null) result = caseStatement(caseStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LOOP_STATEMENT: + { + LoopStatement loopStatement = (LoopStatement)theEObject; + T result = caseLoopStatement(loopStatement); + if (result == null) result = caseStatement(loopStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ON_STATEMENT: + { + OnStatement onStatement = (OnStatement)theEObject; + T result = caseOnStatement(onStatement); + if (result == null) result = caseStatement(onStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.WAIT_STATEMENT: + { + WaitStatement waitStatement = (WaitStatement)theEObject; + T result = caseWaitStatement(waitStatement); + if (result == null) result = caseStatement(waitStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.COMPOSITION: + { + Composition composition = (Composition)theEObject; + T result = caseComposition(composition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.BLOCK: + { + Block block = (Block)theEObject; + T result = caseBlock(block); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.COMPOSITE_BLOCK: + { + CompositeBlock compositeBlock = (CompositeBlock)theEObject; + T result = caseCompositeBlock(compositeBlock); + if (result == null) result = caseBlock(compositeBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.INSTANCE_DECLARATION: + { + InstanceDeclaration instanceDeclaration = (InstanceDeclaration)theEObject; + T result = caseInstanceDeclaration(instanceDeclaration); + if (result == null) result = casePathDeclarationUse(instanceDeclaration); + if (result == null) result = caseBlock(instanceDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PORT_SET: + { + PortSet portSet = (PortSet)theEObject; + T result = casePortSet(portSet); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.COMPONENT_INSTANCE: + { + ComponentInstance componentInstance = (ComponentInstance)theEObject; + T result = caseComponentInstance(componentInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.EXPRESSION: + { + Expression expression = (Expression)theEObject; + T result = caseExpression(expression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.VALUE_EXPRESSION: + { + ValueExpression valueExpression = (ValueExpression)theEObject; + T result = caseValueExpression(valueExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.REFERENCE_EXPRESSION: + { + ReferenceExpression referenceExpression = (ReferenceExpression)theEObject; + T result = caseReferenceExpression(referenceExpression); + if (result == null) result = caseExpression(referenceExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.IDENTIFIER_EXPRESSION: + { + IdentifierExpression identifierExpression = (IdentifierExpression)theEObject; + T result = caseIdentifierExpression(identifierExpression); + if (result == null) result = caseValueExpression(identifierExpression); + if (result == null) result = caseExpression(identifierExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.RECORD_EXPRESSION: + { + RecordExpression recordExpression = (RecordExpression)theEObject; + T result = caseRecordExpression(recordExpression); + if (result == null) result = caseValueExpression(recordExpression); + if (result == null) result = caseExpression(recordExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.FIELD_EXPRESSION: + { + FieldExpression fieldExpression = (FieldExpression)theEObject; + T result = caseFieldExpression(fieldExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ARRAY_EXPRESSION: + { + ArrayExpression arrayExpression = (ArrayExpression)theEObject; + T result = caseArrayExpression(arrayExpression); + if (result == null) result = caseValueExpression(arrayExpression); + if (result == null) result = caseExpression(arrayExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.QUEUE_EXPRESSION: + { + QueueExpression queueExpression = (QueueExpression)theEObject; + T result = caseQueueExpression(queueExpression); + if (result == null) result = caseValueExpression(queueExpression); + if (result == null) result = caseExpression(queueExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ENQUEUE_EXPRESSION: + { + EnqueueExpression enqueueExpression = (EnqueueExpression)theEObject; + T result = caseEnqueueExpression(enqueueExpression); + if (result == null) result = caseExpression(enqueueExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.APPEND_EXPRESSION: + { + AppendExpression appendExpression = (AppendExpression)theEObject; + T result = caseAppendExpression(appendExpression); + if (result == null) result = caseExpression(appendExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LITERAL_EXPRESSION: + { + LiteralExpression literalExpression = (LiteralExpression)theEObject; + T result = caseLiteralExpression(literalExpression); + if (result == null) result = caseValueExpression(literalExpression); + if (result == null) result = caseExpression(literalExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.BOOLEAN_LITERAL: + { + BooleanLiteral booleanLiteral = (BooleanLiteral)theEObject; + T result = caseBooleanLiteral(booleanLiteral); + if (result == null) result = caseLiteralExpression(booleanLiteral); + if (result == null) result = caseValueExpression(booleanLiteral); + if (result == null) result = caseExpression(booleanLiteral); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.NATURAL_LITERAL: + { + NaturalLiteral naturalLiteral = (NaturalLiteral)theEObject; + T result = caseNaturalLiteral(naturalLiteral); + if (result == null) result = caseLiteralExpression(naturalLiteral); + if (result == null) result = caseValueExpression(naturalLiteral); + if (result == null) result = caseExpression(naturalLiteral); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LOWER_BOUND: + { + LowerBound lowerBound = (LowerBound)theEObject; + T result = caseLowerBound(lowerBound); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UPPER_BOUND: + { + UpperBound upperBound = (UpperBound)theEObject; + T result = caseUpperBound(upperBound); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.NATURAL_LOWER_BOUND: + { + NaturalLowerBound naturalLowerBound = (NaturalLowerBound)theEObject; + T result = caseNaturalLowerBound(naturalLowerBound); + if (result == null) result = caseLowerBound(naturalLowerBound); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.NATURAL_UPPER_BOUND: + { + NaturalUpperBound naturalUpperBound = (NaturalUpperBound)theEObject; + T result = caseNaturalUpperBound(naturalUpperBound); + if (result == null) result = caseUpperBound(naturalUpperBound); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.DECIMAL_LOWER_BOUND: + { + DecimalLowerBound decimalLowerBound = (DecimalLowerBound)theEObject; + T result = caseDecimalLowerBound(decimalLowerBound); + if (result == null) result = caseLowerBound(decimalLowerBound); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.DECIMAL_UPPER_BOUND: + { + DecimalUpperBound decimalUpperBound = (DecimalUpperBound)theEObject; + T result = caseDecimalUpperBound(decimalUpperBound); + if (result == null) result = caseUpperBound(decimalUpperBound); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.VARIABLE_LOWER_BOUND: + { + VariableLowerBound variableLowerBound = (VariableLowerBound)theEObject; + T result = caseVariableLowerBound(variableLowerBound); + if (result == null) result = caseLowerBound(variableLowerBound); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.VARIABLE_UPPER_BOUND: + { + VariableUpperBound variableUpperBound = (VariableUpperBound)theEObject; + T result = caseVariableUpperBound(variableUpperBound); + if (result == null) result = caseUpperBound(variableUpperBound); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.INFINITE_UPPER_BOUND: + { + InfiniteUpperBound infiniteUpperBound = (InfiniteUpperBound)theEObject; + T result = caseInfiniteUpperBound(infiniteUpperBound); + if (result == null) result = caseUpperBound(infiniteUpperBound); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.REQUIREMENT: + { + Requirement requirement = (Requirement)theEObject; + T result = caseRequirement(requirement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PROPERTY_DECLARATION: + { + PropertyDeclaration propertyDeclaration = (PropertyDeclaration)theEObject; + T result = casePropertyDeclaration(propertyDeclaration); + if (result == null) result = casePropertyDeclarationUse(propertyDeclaration); + if (result == null) result = caseDeclaration(propertyDeclaration); + if (result == null) result = caseNamedElement(propertyDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PROPERTY: + { + Property property = (Property)theEObject; + T result = caseProperty(property); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PATTERN_PROPERTY: + { + PatternProperty patternProperty = (PatternProperty)theEObject; + T result = casePatternProperty(patternProperty); + if (result == null) result = caseProperty(patternProperty); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_PATTERN: + { + LTLPattern ltlPattern = (LTLPattern)theEObject; + T result = caseLTLPattern(ltlPattern); + if (result == null) result = casePatternProperty(ltlPattern); + if (result == null) result = caseProperty(ltlPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.DEADLOCK_FREE_PATTERN: + { + DeadlockFreePattern deadlockFreePattern = (DeadlockFreePattern)theEObject; + T result = caseDeadlockFreePattern(deadlockFreePattern); + if (result == null) result = casePatternProperty(deadlockFreePattern); + if (result == null) result = caseProperty(deadlockFreePattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.INFINITELY_OFTEN_PATTERN: + { + InfinitelyOftenPattern infinitelyOftenPattern = (InfinitelyOftenPattern)theEObject; + T result = caseInfinitelyOftenPattern(infinitelyOftenPattern); + if (result == null) result = casePatternProperty(infinitelyOftenPattern); + if (result == null) result = caseProperty(infinitelyOftenPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.MORTAL_PATTERN: + { + MortalPattern mortalPattern = (MortalPattern)theEObject; + T result = caseMortalPattern(mortalPattern); + if (result == null) result = casePatternProperty(mortalPattern); + if (result == null) result = caseProperty(mortalPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PRESENCE_PATTERN: + { + PresencePattern presencePattern = (PresencePattern)theEObject; + T result = casePresencePattern(presencePattern); + if (result == null) result = casePatternProperty(presencePattern); + if (result == null) result = caseProperty(presencePattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ABSENCE_PATTERN: + { + AbsencePattern absencePattern = (AbsencePattern)theEObject; + T result = caseAbsencePattern(absencePattern); + if (result == null) result = casePatternProperty(absencePattern); + if (result == null) result = caseProperty(absencePattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ALWAYS_PATTERN: + { + AlwaysPattern alwaysPattern = (AlwaysPattern)theEObject; + T result = caseAlwaysPattern(alwaysPattern); + if (result == null) result = casePatternProperty(alwaysPattern); + if (result == null) result = caseProperty(alwaysPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.SEQUENCE_PATTERN: + { + SequencePattern sequencePattern = (SequencePattern)theEObject; + T result = caseSequencePattern(sequencePattern); + if (result == null) result = casePatternProperty(sequencePattern); + if (result == null) result = caseProperty(sequencePattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_PROPERTY: + { + LTLProperty ltlProperty = (LTLProperty)theEObject; + T result = caseLTLProperty(ltlProperty); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.STATE_EVENT: + { + StateEvent stateEvent = (StateEvent)theEObject; + T result = caseStateEvent(stateEvent); + if (result == null) result = caseObservableEvent(stateEvent); + if (result == null) result = caseLTLProperty(stateEvent); + if (result == null) result = caseObservable(stateEvent); + if (result == null) result = caseSequencePattern(stateEvent); + if (result == null) result = casePatternProperty(stateEvent); + if (result == null) result = caseProperty(stateEvent); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ENTER_STATE_EVENT: + { + EnterStateEvent enterStateEvent = (EnterStateEvent)theEObject; + T result = caseEnterStateEvent(enterStateEvent); + if (result == null) result = caseStateEvent(enterStateEvent); + if (result == null) result = caseObservableEvent(enterStateEvent); + if (result == null) result = caseLTLProperty(enterStateEvent); + if (result == null) result = caseObservable(enterStateEvent); + if (result == null) result = caseSequencePattern(enterStateEvent); + if (result == null) result = casePatternProperty(enterStateEvent); + if (result == null) result = caseProperty(enterStateEvent); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LEAVE_STATE_EVENT: + { + LeaveStateEvent leaveStateEvent = (LeaveStateEvent)theEObject; + T result = caseLeaveStateEvent(leaveStateEvent); + if (result == null) result = caseStateEvent(leaveStateEvent); + if (result == null) result = caseObservableEvent(leaveStateEvent); + if (result == null) result = caseLTLProperty(leaveStateEvent); + if (result == null) result = caseObservable(leaveStateEvent); + if (result == null) result = caseSequencePattern(leaveStateEvent); + if (result == null) result = casePatternProperty(leaveStateEvent); + if (result == null) result = caseProperty(leaveStateEvent); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.OBSERVABLE: + { + Observable observable = (Observable)theEObject; + T result = caseObservable(observable); + if (result == null) result = caseSequencePattern(observable); + if (result == null) result = casePatternProperty(observable); + if (result == null) result = caseProperty(observable); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.OBSERVABLE_EVENT: + { + ObservableEvent observableEvent = (ObservableEvent)theEObject; + T result = caseObservableEvent(observableEvent); + if (result == null) result = caseLTLProperty(observableEvent); + if (result == null) result = caseObservable(observableEvent); + if (result == null) result = caseSequencePattern(observableEvent); + if (result == null) result = casePatternProperty(observableEvent); + if (result == null) result = caseProperty(observableEvent); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PATH_EVENT: + { + PathEvent pathEvent = (PathEvent)theEObject; + T result = casePathEvent(pathEvent); + if (result == null) result = caseObservableEvent(pathEvent); + if (result == null) result = caseLTLProperty(pathEvent); + if (result == null) result = caseObservable(pathEvent); + if (result == null) result = caseSequencePattern(pathEvent); + if (result == null) result = casePatternProperty(pathEvent); + if (result == null) result = caseProperty(pathEvent); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PATH: + { + Path path = (Path)theEObject; + T result = casePath(path); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PATH_ITEM: + { + PathItem pathItem = (PathItem)theEObject; + T result = casePathItem(pathItem); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.NATURAL_ITEM: + { + NaturalItem naturalItem = (NaturalItem)theEObject; + T result = caseNaturalItem(naturalItem); + if (result == null) result = casePathItem(naturalItem); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.NAMED_ITEM: + { + NamedItem namedItem = (NamedItem)theEObject; + T result = caseNamedItem(namedItem); + if (result == null) result = casePathItem(namedItem); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.SUBJECT: + { + Subject subject = (Subject)theEObject; + T result = caseSubject(subject); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.STATE_SUBJECT: + { + StateSubject stateSubject = (StateSubject)theEObject; + T result = caseStateSubject(stateSubject); + if (result == null) result = caseSubject(stateSubject); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.VALUE_SUBJECT: + { + ValueSubject valueSubject = (ValueSubject)theEObject; + T result = caseValueSubject(valueSubject); + if (result == null) result = caseSubject(valueSubject); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.TAG_SUBJECT: + { + TagSubject tagSubject = (TagSubject)theEObject; + T result = caseTagSubject(tagSubject); + if (result == null) result = caseSubject(tagSubject); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.EVENT_SUBJECT: + { + EventSubject eventSubject = (EventSubject)theEObject; + T result = caseEventSubject(eventSubject); + if (result == null) result = caseSubject(eventSubject); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.TUPLE_TYPE: + { + TupleType tupleType = (TupleType)theEObject; + T result = caseTupleType(tupleType); + if (result == null) result = caseType(tupleType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.NATURAL_TYPE: + { + NaturalType naturalType = (NaturalType)theEObject; + T result = caseNaturalType(naturalType); + if (result == null) result = caseBasicType(naturalType); + if (result == null) result = caseType(naturalType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.INTEGER_TYPE: + { + IntegerType integerType = (IntegerType)theEObject; + T result = caseIntegerType(integerType); + if (result == null) result = caseBasicType(integerType); + if (result == null) result = caseType(integerType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.BOOLEAN_TYPE: + { + BooleanType booleanType = (BooleanType)theEObject; + T result = caseBooleanType(booleanType); + if (result == null) result = caseBasicType(booleanType); + if (result == null) result = caseType(booleanType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNLESS_STATEMENT: + { + UnlessStatement unlessStatement = (UnlessStatement)theEObject; + T result = caseUnlessStatement(unlessStatement); + if (result == null) result = caseStatement(unlessStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.STATEMENT_CHOICE: + { + StatementChoice statementChoice = (StatementChoice)theEObject; + T result = caseStatementChoice(statementChoice); + if (result == null) result = caseStatement(statementChoice); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.STATEMENT_SEQUENCE: + { + StatementSequence statementSequence = (StatementSequence)theEObject; + T result = caseStatementSequence(statementSequence); + if (result == null) result = caseStatement(statementSequence); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ASSIGN_STATEMENT: + { + AssignStatement assignStatement = (AssignStatement)theEObject; + T result = caseAssignStatement(assignStatement); + if (result == null) result = casePatternStatement(assignStatement); + if (result == null) result = caseStatement(assignStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ASSIGN_ANY_STATEMENT: + { + AssignAnyStatement assignAnyStatement = (AssignAnyStatement)theEObject; + T result = caseAssignAnyStatement(assignAnyStatement); + if (result == null) result = casePatternStatement(assignAnyStatement); + if (result == null) result = caseStatement(assignAnyStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.SEND_STATEMENT: + { + SendStatement sendStatement = (SendStatement)theEObject; + T result = caseSendStatement(sendStatement); + if (result == null) result = casePatternStatement(sendStatement); + if (result == null) result = caseStatement(sendStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.RECEIVE_STATEMENT: + { + ReceiveStatement receiveStatement = (ReceiveStatement)theEObject; + T result = caseReceiveStatement(receiveStatement); + if (result == null) result = casePatternStatement(receiveStatement); + if (result == null) result = caseStatement(receiveStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CONSTRUCTOR_PATTERN: + { + ConstructorPattern constructorPattern = (ConstructorPattern)theEObject; + T result = caseConstructorPattern(constructorPattern); + if (result == null) result = caseIdentifierPattern(constructorPattern); + if (result == null) result = casePattern(constructorPattern); + if (result == null) result = casePatternStatement(constructorPattern); + if (result == null) result = caseStatement(constructorPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ARRAY_ACCESS_PATTERN: + { + ArrayAccessPattern arrayAccessPattern = (ArrayAccessPattern)theEObject; + T result = caseArrayAccessPattern(arrayAccessPattern); + if (result == null) result = caseIdentifierPattern(arrayAccessPattern); + if (result == null) result = casePattern(arrayAccessPattern); + if (result == null) result = casePatternStatement(arrayAccessPattern); + if (result == null) result = caseStatement(arrayAccessPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.RECORD_ACCESS_PATTERN: + { + RecordAccessPattern recordAccessPattern = (RecordAccessPattern)theEObject; + T result = caseRecordAccessPattern(recordAccessPattern); + if (result == null) result = caseIdentifierPattern(recordAccessPattern); + if (result == null) result = casePattern(recordAccessPattern); + if (result == null) result = casePatternStatement(recordAccessPattern); + if (result == null) result = caseStatement(recordAccessPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ALL_EXPRESSION: + { + AllExpression allExpression = (AllExpression)theEObject; + T result = caseAllExpression(allExpression); + if (result == null) result = caseExpression(allExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.EXISTS_EXPRESSION: + { + ExistsExpression existsExpression = (ExistsExpression)theEObject; + T result = caseExistsExpression(existsExpression); + if (result == null) result = caseExpression(existsExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CONDITIONAL: + { + Conditional conditional = (Conditional)theEObject; + T result = caseConditional(conditional); + if (result == null) result = caseExpression(conditional); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.DISJUNCTION: + { + Disjunction disjunction = (Disjunction)theEObject; + T result = caseDisjunction(disjunction); + if (result == null) result = caseExpression(disjunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.IMPLICATION: + { + Implication implication = (Implication)theEObject; + T result = caseImplication(implication); + if (result == null) result = caseExpression(implication); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CONJUNCTION: + { + Conjunction conjunction = (Conjunction)theEObject; + T result = caseConjunction(conjunction); + if (result == null) result = caseExpression(conjunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.COMPARISON_EQUAL: + { + ComparisonEqual comparisonEqual = (ComparisonEqual)theEObject; + T result = caseComparisonEqual(comparisonEqual); + if (result == null) result = caseExpression(comparisonEqual); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.COMPARISON_NOT_EQUAL: + { + ComparisonNotEqual comparisonNotEqual = (ComparisonNotEqual)theEObject; + T result = caseComparisonNotEqual(comparisonNotEqual); + if (result == null) result = caseExpression(comparisonNotEqual); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.COMPARISON_LESSER: + { + ComparisonLesser comparisonLesser = (ComparisonLesser)theEObject; + T result = caseComparisonLesser(comparisonLesser); + if (result == null) result = caseExpression(comparisonLesser); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.COMPARISON_LESSER_EQUAL: + { + ComparisonLesserEqual comparisonLesserEqual = (ComparisonLesserEqual)theEObject; + T result = caseComparisonLesserEqual(comparisonLesserEqual); + if (result == null) result = caseExpression(comparisonLesserEqual); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.COMPARISON_GREATER: + { + ComparisonGreater comparisonGreater = (ComparisonGreater)theEObject; + T result = caseComparisonGreater(comparisonGreater); + if (result == null) result = caseExpression(comparisonGreater); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.COMPARISON_GREATER_EQUAL: + { + ComparisonGreaterEqual comparisonGreaterEqual = (ComparisonGreaterEqual)theEObject; + T result = caseComparisonGreaterEqual(comparisonGreaterEqual); + if (result == null) result = caseExpression(comparisonGreaterEqual); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ADDITION: + { + Addition addition = (Addition)theEObject; + T result = caseAddition(addition); + if (result == null) result = caseExpression(addition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.SUBSTRACTION: + { + Substraction substraction = (Substraction)theEObject; + T result = caseSubstraction(substraction); + if (result == null) result = caseExpression(substraction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.MULTIPLICATION: + { + Multiplication multiplication = (Multiplication)theEObject; + T result = caseMultiplication(multiplication); + if (result == null) result = caseExpression(multiplication); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.DIVISION: + { + Division division = (Division)theEObject; + T result = caseDivision(division); + if (result == null) result = caseExpression(division); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.MODULO: + { + Modulo modulo = (Modulo)theEObject; + T result = caseModulo(modulo); + if (result == null) result = caseExpression(modulo); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNARY_PLUS_EXPRESSION: + { + UnaryPlusExpression unaryPlusExpression = (UnaryPlusExpression)theEObject; + T result = caseUnaryPlusExpression(unaryPlusExpression); + if (result == null) result = caseExpression(unaryPlusExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNARY_MINUS_EXPRESSION: + { + UnaryMinusExpression unaryMinusExpression = (UnaryMinusExpression)theEObject; + T result = caseUnaryMinusExpression(unaryMinusExpression); + if (result == null) result = caseExpression(unaryMinusExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNARY_NEGATION_EXPRESSION: + { + UnaryNegationExpression unaryNegationExpression = (UnaryNegationExpression)theEObject; + T result = caseUnaryNegationExpression(unaryNegationExpression); + if (result == null) result = caseExpression(unaryNegationExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNARY_FIRST_EXPRESSION: + { + UnaryFirstExpression unaryFirstExpression = (UnaryFirstExpression)theEObject; + T result = caseUnaryFirstExpression(unaryFirstExpression); + if (result == null) result = caseExpression(unaryFirstExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNARY_LENGTH_EXPRESSION: + { + UnaryLengthExpression unaryLengthExpression = (UnaryLengthExpression)theEObject; + T result = caseUnaryLengthExpression(unaryLengthExpression); + if (result == null) result = caseExpression(unaryLengthExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNARY_COERCE_EXPRESSION: + { + UnaryCoerceExpression unaryCoerceExpression = (UnaryCoerceExpression)theEObject; + T result = caseUnaryCoerceExpression(unaryCoerceExpression); + if (result == null) result = caseExpression(unaryCoerceExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNARY_FULL_EXPRESSION: + { + UnaryFullExpression unaryFullExpression = (UnaryFullExpression)theEObject; + T result = caseUnaryFullExpression(unaryFullExpression); + if (result == null) result = caseExpression(unaryFullExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNARY_DE_QUEUE_EXPRESSION: + { + UnaryDeQueueExpression unaryDeQueueExpression = (UnaryDeQueueExpression)theEObject; + T result = caseUnaryDeQueueExpression(unaryDeQueueExpression); + if (result == null) result = caseExpression(unaryDeQueueExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.UNARY_EMPTY_EXPRESSION: + { + UnaryEmptyExpression unaryEmptyExpression = (UnaryEmptyExpression)theEObject; + T result = caseUnaryEmptyExpression(unaryEmptyExpression); + if (result == null) result = caseExpression(unaryEmptyExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PROJECTION: + { + Projection projection = (Projection)theEObject; + T result = caseProjection(projection); + if (result == null) result = caseExpression(projection); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.CONSTRUCTION_EXPRESSION: + { + ConstructionExpression constructionExpression = (ConstructionExpression)theEObject; + T result = caseConstructionExpression(constructionExpression); + if (result == null) result = caseIdentifierExpression(constructionExpression); + if (result == null) result = caseValueExpression(constructionExpression); + if (result == null) result = caseExpression(constructionExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ARRAY_ACCESS_EXPRESSION: + { + ArrayAccessExpression arrayAccessExpression = (ArrayAccessExpression)theEObject; + T result = caseArrayAccessExpression(arrayAccessExpression); + if (result == null) result = caseIdentifierExpression(arrayAccessExpression); + if (result == null) result = caseValueExpression(arrayAccessExpression); + if (result == null) result = caseExpression(arrayAccessExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.RECORD_ACCESS_EXPRESSION: + { + RecordAccessExpression recordAccessExpression = (RecordAccessExpression)theEObject; + T result = caseRecordAccessExpression(recordAccessExpression); + if (result == null) result = caseIdentifierExpression(recordAccessExpression); + if (result == null) result = caseValueExpression(recordAccessExpression); + if (result == null) result = caseExpression(recordAccessExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.TRUE_LITERAL: + { + TrueLiteral trueLiteral = (TrueLiteral)theEObject; + T result = caseTrueLiteral(trueLiteral); + if (result == null) result = caseBooleanLiteral(trueLiteral); + if (result == null) result = caseLiteralExpression(trueLiteral); + if (result == null) result = caseValueExpression(trueLiteral); + if (result == null) result = caseExpression(trueLiteral); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.FALSE_LITERAL: + { + FalseLiteral falseLiteral = (FalseLiteral)theEObject; + T result = caseFalseLiteral(falseLiteral); + if (result == null) result = caseBooleanLiteral(falseLiteral); + if (result == null) result = caseLiteralExpression(falseLiteral); + if (result == null) result = caseValueExpression(falseLiteral); + if (result == null) result = caseExpression(falseLiteral); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.ALL_PROPERTY: + { + AllProperty allProperty = (AllProperty)theEObject; + T result = caseAllProperty(allProperty); + if (result == null) result = caseProperty(allProperty); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.EXISTS_PROPERTY: + { + ExistsProperty existsProperty = (ExistsProperty)theEObject; + T result = caseExistsProperty(existsProperty); + if (result == null) result = caseProperty(existsProperty); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PROPERTY_DISJUNCTION: + { + PropertyDisjunction propertyDisjunction = (PropertyDisjunction)theEObject; + T result = casePropertyDisjunction(propertyDisjunction); + if (result == null) result = caseProperty(propertyDisjunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PROPERTY_IMPLICATION: + { + PropertyImplication propertyImplication = (PropertyImplication)theEObject; + T result = casePropertyImplication(propertyImplication); + if (result == null) result = caseProperty(propertyImplication); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PROPERTY_CONJUNCTION: + { + PropertyConjunction propertyConjunction = (PropertyConjunction)theEObject; + T result = casePropertyConjunction(propertyConjunction); + if (result == null) result = caseProperty(propertyConjunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PROPERTY_NEGATION: + { + PropertyNegation propertyNegation = (PropertyNegation)theEObject; + T result = casePropertyNegation(propertyNegation); + if (result == null) result = caseProperty(propertyNegation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LEADS_TO_PATTERN: + { + LeadsToPattern leadsToPattern = (LeadsToPattern)theEObject; + T result = caseLeadsToPattern(leadsToPattern); + if (result == null) result = caseSequencePattern(leadsToPattern); + if (result == null) result = casePatternProperty(leadsToPattern); + if (result == null) result = caseProperty(leadsToPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.PRECEDES_PATTERN: + { + PrecedesPattern precedesPattern = (PrecedesPattern)theEObject; + T result = casePrecedesPattern(precedesPattern); + if (result == null) result = caseSequencePattern(precedesPattern); + if (result == null) result = casePatternProperty(precedesPattern); + if (result == null) result = caseProperty(precedesPattern); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_ALL: + { + LTLAll ltlAll = (LTLAll)theEObject; + T result = caseLTLAll(ltlAll); + if (result == null) result = caseLTLProperty(ltlAll); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_EXISTS: + { + LTLExists ltlExists = (LTLExists)theEObject; + T result = caseLTLExists(ltlExists); + if (result == null) result = caseLTLProperty(ltlExists); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_DISJUNCTION: + { + LTLDisjunction ltlDisjunction = (LTLDisjunction)theEObject; + T result = caseLTLDisjunction(ltlDisjunction); + if (result == null) result = caseLTLProperty(ltlDisjunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_IMPLICATION: + { + LTLImplication ltlImplication = (LTLImplication)theEObject; + T result = caseLTLImplication(ltlImplication); + if (result == null) result = caseLTLProperty(ltlImplication); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_CONJUNCTION: + { + LTLConjunction ltlConjunction = (LTLConjunction)theEObject; + T result = caseLTLConjunction(ltlConjunction); + if (result == null) result = caseLTLProperty(ltlConjunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_UNTIL: + { + LTLUntil ltlUntil = (LTLUntil)theEObject; + T result = caseLTLUntil(ltlUntil); + if (result == null) result = caseLTLProperty(ltlUntil); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_RELEASE: + { + LTLRelease ltlRelease = (LTLRelease)theEObject; + T result = caseLTLRelease(ltlRelease); + if (result == null) result = caseLTLProperty(ltlRelease); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_UNARY_NEGATION: + { + LTLUnaryNegation ltlUnaryNegation = (LTLUnaryNegation)theEObject; + T result = caseLTLUnaryNegation(ltlUnaryNegation); + if (result == null) result = caseLTLProperty(ltlUnaryNegation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_UNARY_NEXT: + { + LTLUnaryNext ltlUnaryNext = (LTLUnaryNext)theEObject; + T result = caseLTLUnaryNext(ltlUnaryNext); + if (result == null) result = caseLTLProperty(ltlUnaryNext); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_UNARY_ALWAYS: + { + LTLUnaryAlways ltlUnaryAlways = (LTLUnaryAlways)theEObject; + T result = caseLTLUnaryAlways(ltlUnaryAlways); + if (result == null) result = caseLTLProperty(ltlUnaryAlways); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_UNARY_EVENTUALLY: + { + LTLUnaryEventually ltlUnaryEventually = (LTLUnaryEventually)theEObject; + T result = caseLTLUnaryEventually(ltlUnaryEventually); + if (result == null) result = caseLTLProperty(ltlUnaryEventually); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.LTL_VARIABLE: + { + LTLVariable ltlVariable = (LTLVariable)theEObject; + T result = caseLTLVariable(ltlVariable); + if (result == null) result = caseLTLProperty(ltlVariable); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.OBSERVABLE_DISJUNCTION: + { + ObservableDisjunction observableDisjunction = (ObservableDisjunction)theEObject; + T result = caseObservableDisjunction(observableDisjunction); + if (result == null) result = caseObservable(observableDisjunction); + if (result == null) result = caseSequencePattern(observableDisjunction); + if (result == null) result = casePatternProperty(observableDisjunction); + if (result == null) result = caseProperty(observableDisjunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.OBSERVABLE_IMPLICATION: + { + ObservableImplication observableImplication = (ObservableImplication)theEObject; + T result = caseObservableImplication(observableImplication); + if (result == null) result = caseObservable(observableImplication); + if (result == null) result = caseSequencePattern(observableImplication); + if (result == null) result = casePatternProperty(observableImplication); + if (result == null) result = caseProperty(observableImplication); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.OBSERVABLE_CONJUNCTION: + { + ObservableConjunction observableConjunction = (ObservableConjunction)theEObject; + T result = caseObservableConjunction(observableConjunction); + if (result == null) result = caseObservable(observableConjunction); + if (result == null) result = caseSequencePattern(observableConjunction); + if (result == null) result = casePatternProperty(observableConjunction); + if (result == null) result = caseProperty(observableConjunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FiacrePackage.OBSERVABLE_NEGATION: + { + ObservableNegation observableNegation = (ObservableNegation)theEObject; + T result = caseObservableNegation(observableNegation); + if (result == null) result = caseObservable(observableNegation); + if (result == null) result = caseSequencePattern(observableNegation); + if (result == null) result = casePatternProperty(observableNegation); + if (result == null) result = caseProperty(observableNegation); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'Model'. + * + * 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'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseModel(Model object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Root Declaration'. + * + * 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 'Root Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRootDeclaration(RootDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Root'. + * + * 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 'Root'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRoot(Root 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 'Type Declaration Use'. + * + * 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 'Type Declaration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTypeDeclarationUse(TypeDeclarationUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constant Declaration Use'. + * + * 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 'Constant Declaration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstantDeclarationUse(ConstantDeclarationUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Expression Declaration Use'. + * + * 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 Declaration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExpressionDeclarationUse(ExpressionDeclarationUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Reference Declaration Use'. + * + * 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 'Reference Declaration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReferenceDeclarationUse(ReferenceDeclarationUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Union Tag Declaration Use'. + * + * 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 'Union Tag Declaration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnionTagDeclarationUse(UnionTagDeclarationUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Record Field Declaration Use'. + * + * 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 'Record Field Declaration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRecordFieldDeclarationUse(RecordFieldDeclarationUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Pattern Declaration Use'. + * + * 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 'Pattern Declaration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePatternDeclarationUse(PatternDeclarationUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Bound Declaration Use'. + * + * 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 'Bound Declaration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBoundDeclarationUse(BoundDeclarationUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Path Declaration Use'. + * + * 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 'Path Declaration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePathDeclarationUse(PathDeclarationUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Property Declaration Use'. + * + * 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 Declaration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePropertyDeclarationUse(PropertyDeclarationUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Import Declaration'. + * + * 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 'Import Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseImportDeclaration(ImportDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Declaration'. + * + * 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 'Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDeclaration(Declaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Parameterized Declaration'. + * + * 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 'Parameterized Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseParameterizedDeclaration(ParameterizedDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Function Declaration'. + * + * 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 'Function Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFunctionDeclaration(FunctionDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Type Declaration'. + * + * 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 'Type Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTypeDeclaration(TypeDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Channel Declaration'. + * + * 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 'Channel Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseChannelDeclaration(ChannelDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Channel Type'. + * + * 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 'Channel Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseChannelType(ChannelType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Type'. + * + * 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 'Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseType(Type object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Basic Type'. + * + * 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 'Basic Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBasicType(BasicType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Range Type'. + * + * 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 'Range Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRangeType(RangeType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Union Type'. + * + * 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 'Union Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnionType(UnionType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Union Tags'. + * + * 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 'Union Tags'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnionTags(UnionTags object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Union Tag Declaration'. + * + * 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 'Union Tag Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnionTagDeclaration(UnionTagDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Record Type'. + * + * 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 'Record Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRecordType(RecordType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Record Fields'. + * + * 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 'Record Fields'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRecordFields(RecordFields object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Record Field Declaration'. + * + * 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 'Record Field Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRecordFieldDeclaration(RecordFieldDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Queue Type'. + * + * 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 'Queue Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseQueueType(QueueType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Array Type'. + * + * 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 'Array Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseArrayType(ArrayType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Referenced Type'. + * + * 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 'Referenced Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReferencedType(ReferencedType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constant Declaration'. + * + * 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 'Constant Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstantDeclaration(ConstantDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Process Declaration'. + * + * 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 'Process Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseProcessDeclaration(ProcessDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'State Declaration'. + * + * 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 Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStateDeclaration(StateDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Transition Source'. + * + * 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 'Transition Source'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTransitionSource(TransitionSource object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Transition'. + * + * 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 'Transition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTransition(Transition object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Component Declaration'. + * + * 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 'Component Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComponentDeclaration(ComponentDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Ports Declaration'. + * + * 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 'Ports Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePortsDeclaration(PortsDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Port Declaration'. + * + * 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 'Port Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePortDeclaration(PortDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Local Ports Declaration'. + * + * 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 'Local Ports Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLocalPortsDeclaration(LocalPortsDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Parameters Declaration'. + * + * 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 'Parameters Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseParametersDeclaration(ParametersDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Parameter Declaration'. + * + * 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 'Parameter Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseParameterDeclaration(ParameterDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variables Declaration'. + * + * 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 'Variables Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariablesDeclaration(VariablesDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variable Declaration'. + * + * 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 Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariableDeclaration(VariableDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Priority Declaration'. + * + * 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 'Priority Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePriorityDeclaration(PriorityDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Priority Group'. + * + * 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 'Priority Group'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePriorityGroup(PriorityGroup object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '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 'Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStatement(Statement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Block 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 'Block Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBlockStatement(BlockStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Return 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 'Return Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReturnStatement(ReturnStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Null 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 'Null Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNullStatement(NullStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Tagged 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 'Tagged Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTaggedStatement(TaggedStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Pattern 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 'Pattern Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePatternStatement(PatternStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Pattern'. + * + * 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 'Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePattern(Pattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Any Pattern'. + * + * 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 'Any Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAnyPattern(AnyPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constant Pattern'. + * + * 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 'Constant Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstantPattern(ConstantPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Integer Pattern'. + * + * 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 Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIntegerPattern(IntegerPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Identifier Pattern'. + * + * 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 'Identifier Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIdentifierPattern(IdentifierPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Conditional 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 'Conditional Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConditionalStatement(ConditionalStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Extended Conditional 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 'Extended Conditional Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExtendedConditionalStatement(ExtendedConditionalStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Select 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 'Select Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSelectStatement(SelectStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'While 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 'While Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseWhileStatement(WhileStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Foreach 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 'Foreach Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseForeachStatement(ForeachStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'To 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 'To Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseToStatement(ToStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Case 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 'Case Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCaseStatement(CaseStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Loop 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 'Loop Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLoopStatement(LoopStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'On 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 'On Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOnStatement(OnStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Wait 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 'Wait Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseWaitStatement(WaitStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Composition'. + * + * 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 'Composition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComposition(Composition object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Block'. + * + * 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 'Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBlock(Block object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Composite Block'. + * + * 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 Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCompositeBlock(CompositeBlock object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Instance Declaration'. + * + * 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 'Instance Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInstanceDeclaration(InstanceDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Port 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 'Port Set'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePortSet(PortSet object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Component Instance'. + * + * 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 'Component Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComponentInstance(ComponentInstance 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 '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 'Reference 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 'Reference Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReferenceExpression(ReferenceExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Identifier 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 'Identifier Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIdentifierExpression(IdentifierExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Record 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 'Record Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRecordExpression(RecordExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Field 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 'Field Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFieldExpression(FieldExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Array 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 'Array Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseArrayExpression(ArrayExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Queue 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 'Queue Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseQueueExpression(QueueExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Enqueue 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 'Enqueue Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEnqueueExpression(EnqueueExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Append 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 'Append Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAppendExpression(AppendExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal 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 'Literal Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteralExpression(LiteralExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Boolean Literal'. + * + * 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 'Boolean Literal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBooleanLiteral(BooleanLiteral object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Natural Literal'. + * + * 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 'Natural Literal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNaturalLiteral(NaturalLiteral object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Lower Bound'. + * + * 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 Bound'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLowerBound(LowerBound object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Upper Bound'. + * + * 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 'Upper Bound'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUpperBound(UpperBound object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Natural Lower Bound'. + * + * 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 'Natural Lower Bound'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNaturalLowerBound(NaturalLowerBound object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Natural Upper Bound'. + * + * 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 'Natural Upper Bound'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNaturalUpperBound(NaturalUpperBound object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Decimal Lower Bound'. + * + * 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 'Decimal Lower Bound'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDecimalLowerBound(DecimalLowerBound object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Decimal Upper Bound'. + * + * 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 'Decimal Upper Bound'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDecimalUpperBound(DecimalUpperBound object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variable Lower Bound'. + * + * 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 Lower Bound'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariableLowerBound(VariableLowerBound object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variable Upper Bound'. + * + * 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 Upper Bound'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariableUpperBound(VariableUpperBound object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Infinite Upper Bound'. + * + * 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 'Infinite Upper Bound'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInfiniteUpperBound(InfiniteUpperBound object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Requirement'. + * + * 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 'Requirement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRequirement(Requirement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Property Declaration'. + * + * 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 Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePropertyDeclaration(PropertyDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '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 'Property'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseProperty(Property object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Pattern 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 'Pattern Property'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePatternProperty(PatternProperty object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Pattern'. + * + * 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 'LTL Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLPattern(LTLPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Deadlock Free Pattern'. + * + * 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 'Deadlock Free Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDeadlockFreePattern(DeadlockFreePattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Infinitely Often Pattern'. + * + * 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 'Infinitely Often Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInfinitelyOftenPattern(InfinitelyOftenPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Mortal Pattern'. + * + * 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 'Mortal Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMortalPattern(MortalPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Presence Pattern'. + * + * 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 'Presence Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePresencePattern(PresencePattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Absence Pattern'. + * + * 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 'Absence Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAbsencePattern(AbsencePattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Always Pattern'. + * + * 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 'Always Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAlwaysPattern(AlwaysPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Sequence Pattern'. + * + * 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 'Sequence Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSequencePattern(SequencePattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL 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 'LTL Property'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLProperty(LTLProperty object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'State Event'. + * + * 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 Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStateEvent(StateEvent object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Enter State Event'. + * + * 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 'Enter State Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEnterStateEvent(EnterStateEvent object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Leave State Event'. + * + * 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 'Leave State Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLeaveStateEvent(LeaveStateEvent object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Observable'. + * + * 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 'Observable'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseObservable(Observable object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Observable Event'. + * + * 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 'Observable Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseObservableEvent(ObservableEvent object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Path Event'. + * + * 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 'Path Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePathEvent(PathEvent object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Path'. + * + * 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 'Path'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePath(Path object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Path Item'. + * + * 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 'Path Item'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePathItem(PathItem object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Natural Item'. + * + * 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 'Natural Item'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNaturalItem(NaturalItem object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Named Item'. + * + * 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 Item'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNamedItem(NamedItem object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Subject'. + * + * 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 'Subject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSubject(Subject object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'State Subject'. + * + * 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 Subject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStateSubject(StateSubject object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Value Subject'. + * + * 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 Subject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseValueSubject(ValueSubject object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Tag Subject'. + * + * 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 Subject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTagSubject(TagSubject object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event Subject'. + * + * 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 'Event Subject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEventSubject(EventSubject object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Tuple Type'. + * + * 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 'Tuple Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTupleType(TupleType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Natural Type'. + * + * 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 'Natural Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNaturalType(NaturalType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Integer Type'. + * + * 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 Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIntegerType(IntegerType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Boolean Type'. + * + * 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 'Boolean Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBooleanType(BooleanType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unless 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 'Unless Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnlessStatement(UnlessStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Statement Choice'. + * + * 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 'Statement Choice'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStatementChoice(StatementChoice object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Statement Sequence'. + * + * 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 'Statement Sequence'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStatementSequence(StatementSequence object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Assign 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 'Assign Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAssignStatement(AssignStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Assign Any 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 'Assign Any Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAssignAnyStatement(AssignAnyStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Send 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 'Send Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSendStatement(SendStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Receive 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 'Receive Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReceiveStatement(ReceiveStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constructor Pattern'. + * + * 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 'Constructor Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstructorPattern(ConstructorPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Array Access Pattern'. + * + * 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 'Array Access Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseArrayAccessPattern(ArrayAccessPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Record Access Pattern'. + * + * 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 'Record Access Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRecordAccessPattern(RecordAccessPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'All 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 'All Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAllExpression(AllExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Exists 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 'Exists Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExistsExpression(ExistsExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Conditional'. + * + * 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 'Conditional'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConditional(Conditional object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Disjunction'. + * + * 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 'Disjunction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDisjunction(Disjunction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Implication'. + * + * 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 'Implication'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseImplication(Implication object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Conjunction'. + * + * 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 'Conjunction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConjunction(Conjunction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Comparison Equal'. + * + * 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 Equal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComparisonEqual(ComparisonEqual object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Comparison Not Equal'. + * + * 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 Not Equal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComparisonNotEqual(ComparisonNotEqual object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Comparison Lesser'. + * + * 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 Lesser'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComparisonLesser(ComparisonLesser object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Comparison Lesser Equal'. + * + * 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 Lesser Equal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComparisonLesserEqual(ComparisonLesserEqual object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Comparison Greater'. + * + * 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 Greater'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComparisonGreater(ComparisonGreater object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Comparison Greater Equal'. + * + * 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 Greater Equal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComparisonGreaterEqual(ComparisonGreaterEqual object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Addition'. + * + * 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 'Addition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAddition(Addition object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Substraction'. + * + * 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 'Substraction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSubstraction(Substraction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Multiplication'. + * + * 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 'Multiplication'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMultiplication(Multiplication object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Division'. + * + * 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 'Division'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDivision(Division object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Modulo'. + * + * 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 'Modulo'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseModulo(Modulo object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unary Plus 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 'Unary Plus Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryPlusExpression(UnaryPlusExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unary Minus 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 'Unary Minus Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryMinusExpression(UnaryMinusExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unary Negation 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 'Unary Negation Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryNegationExpression(UnaryNegationExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unary First 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 'Unary First Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryFirstExpression(UnaryFirstExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unary Length 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 'Unary Length Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryLengthExpression(UnaryLengthExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unary Coerce 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 'Unary Coerce Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryCoerceExpression(UnaryCoerceExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unary Full 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 'Unary Full Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryFullExpression(UnaryFullExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unary De Queue 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 'Unary De Queue Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryDeQueueExpression(UnaryDeQueueExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unary Empty 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 'Unary Empty Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnaryEmptyExpression(UnaryEmptyExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Projection'. + * + * 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 'Projection'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseProjection(Projection object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Construction 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 'Construction Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstructionExpression(ConstructionExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Array Access 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 'Array Access Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseArrayAccessExpression(ArrayAccessExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Record Access 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 'Record Access Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRecordAccessExpression(RecordAccessExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'True Literal'. + * + * 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 'True Literal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTrueLiteral(TrueLiteral object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'False Literal'. + * + * 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 'False Literal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFalseLiteral(FalseLiteral object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'All 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 'All Property'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAllProperty(AllProperty object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Exists 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 'Exists Property'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExistsProperty(ExistsProperty object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Property Disjunction'. + * + * 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 Disjunction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePropertyDisjunction(PropertyDisjunction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Property Implication'. + * + * 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 Implication'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePropertyImplication(PropertyImplication object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Property Conjunction'. + * + * 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 Conjunction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePropertyConjunction(PropertyConjunction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Property Negation'. + * + * 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 Negation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePropertyNegation(PropertyNegation object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Leads To Pattern'. + * + * 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 'Leads To Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLeadsToPattern(LeadsToPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Precedes Pattern'. + * + * 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 'Precedes Pattern'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePrecedesPattern(PrecedesPattern object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL All'. + * + * 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 'LTL All'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLAll(LTLAll object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Exists'. + * + * 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 'LTL Exists'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLExists(LTLExists object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Disjunction'. + * + * 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 'LTL Disjunction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLDisjunction(LTLDisjunction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Implication'. + * + * 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 'LTL Implication'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLImplication(LTLImplication object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Conjunction'. + * + * 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 'LTL Conjunction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLConjunction(LTLConjunction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Until'. + * + * 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 'LTL Until'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLUntil(LTLUntil object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Release'. + * + * 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 'LTL Release'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLRelease(LTLRelease object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Unary Negation'. + * + * 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 'LTL Unary Negation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLUnaryNegation(LTLUnaryNegation object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Unary Next'. + * + * 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 'LTL Unary Next'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLUnaryNext(LTLUnaryNext object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Unary Always'. + * + * 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 'LTL Unary Always'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLUnaryAlways(LTLUnaryAlways object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL Unary Eventually'. + * + * 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 'LTL Unary Eventually'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLUnaryEventually(LTLUnaryEventually object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'LTL 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 'LTL Variable'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLTLVariable(LTLVariable object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Observable Disjunction'. + * + * 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 'Observable Disjunction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseObservableDisjunction(ObservableDisjunction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Observable Implication'. + * + * 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 'Observable Implication'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseObservableImplication(ObservableImplication object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Observable Conjunction'. + * + * 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 'Observable Conjunction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseObservableConjunction(ObservableConjunction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Observable Negation'. + * + * 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 'Observable Negation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseObservableNegation(ObservableNegation 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; + } + +} //FiacreSwitch diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/FiacreAntlrTokenFileProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/FiacreAntlrTokenFileProvider.java new file mode 100644 index 0000000..064ce21 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/FiacreAntlrTokenFileProvider.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.parser.antlr; + +import java.io.InputStream; +import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; + +public class FiacreAntlrTokenFileProvider implements IAntlrTokenFileProvider { + + @Override + public InputStream getAntlrTokenFile() { + ClassLoader classLoader = getClass().getClassLoader(); + return classLoader.getResourceAsStream("fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacre.tokens"); + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/FiacreParser.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/FiacreParser.java new file mode 100644 index 0000000..f335e22 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/FiacreParser.java @@ -0,0 +1,50 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.parser.antlr; + +import com.google.inject.Inject; +import fr.irit.fiacre.xtext.parser.antlr.internal.InternalFiacreParser; +import fr.irit.fiacre.xtext.services.FiacreGrammarAccess; +import org.eclipse.xtext.parser.antlr.AbstractAntlrParser; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; + +public class FiacreParser extends AbstractAntlrParser { + + @Inject + private FiacreGrammarAccess grammarAccess; + + @Override + protected void setInitialHiddenTokens(XtextTokenStream tokenStream) { + tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT"); + } + + + @Override + protected InternalFiacreParser createParser(XtextTokenStream stream) { + return new InternalFiacreParser(stream, getGrammarAccess()); + } + + @Override + protected String getDefaultRuleName() { + return "Model"; + } + + public FiacreGrammarAccess getGrammarAccess() { + return this.grammarAccess; + } + + public void setGrammarAccess(FiacreGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacre.g b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacre.g new file mode 100644 index 0000000..29b74ee --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacre.g @@ -0,0 +1,12643 @@ +/* + * generated by Xtext 2.10.0 + */ +grammar InternalFiacre; + +options { + superClass=AbstractInternalAntlrParser; + backtrack=true; +} + +@lexer::header { +package fr.irit.fiacre.xtext.parser.antlr.internal; + +// Hack: Use our own Lexer superclass by means of import. +// Currently there is no other way to specify the superclass for the lexer. +import org.eclipse.xtext.parser.antlr.Lexer; +} + +@parser::header { +package fr.irit.fiacre.xtext.parser.antlr.internal; + +import org.eclipse.xtext.*; +import org.eclipse.xtext.parser.*; +import org.eclipse.xtext.parser.impl.*; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; +import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; +import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken; +import fr.irit.fiacre.xtext.services.FiacreGrammarAccess; + +} + +@parser::members { + +/* + This grammar contains a lot of empty actions to work around a bug in ANTLR. + Otherwise the ANTLR tool will create synpreds that cannot be compiled in some rare cases. +*/ + + private FiacreGrammarAccess grammarAccess; + + public InternalFiacreParser(TokenStream input, FiacreGrammarAccess grammarAccess) { + this(input); + this.grammarAccess = grammarAccess; + registerRules(grammarAccess.getGrammar()); + } + + @Override + protected String getFirstRuleName() { + return "Model"; + } + + @Override + protected FiacreGrammarAccess getGrammarAccess() { + return grammarAccess; + } + +} + +@rulecatch { + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } +} + +// Entry rule entryRuleModel +entryRuleModel returns [EObject current=null]: + { newCompositeNode(grammarAccess.getModelRule()); } + iv_ruleModel=ruleModel + { $current=$iv_ruleModel.current; } + EOF; + +// Rule Model +ruleModel returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getModelAccess().getModelAction_0(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getModelAccess().getImportsImportDeclarationParserRuleCall_1_0()); + } + lv_imports_1_0=ruleImportDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getModelRule()); + } + add( + $current, + "imports", + lv_imports_1_0, + "fr.irit.fiacre.xtext.Fiacre.ImportDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + )* + ( + ( + ( + { + newCompositeNode(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_2_0_0()); + } + lv_declarations_2_0=ruleDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getModelRule()); + } + add( + $current, + "declarations", + lv_declarations_2_0, + "fr.irit.fiacre.xtext.Fiacre.Declaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + | + ( + ( + { + newCompositeNode(grammarAccess.getModelAccess().getRequirementsRequirementParserRuleCall_2_1_0()); + } + lv_requirements_3_0=ruleRequirement + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getModelRule()); + } + add( + $current, + "requirements", + lv_requirements_3_0, + "fr.irit.fiacre.xtext.Fiacre.Requirement"); + afterParserOrEnumRuleCall(); + } + ) + ) + | + ( + ( + { + newCompositeNode(grammarAccess.getModelAccess().getRootRootParserRuleCall_2_2_0()); + } + lv_root_4_0=ruleRoot + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getModelRule()); + } + add( + $current, + "root", + lv_root_4_0, + "fr.irit.fiacre.xtext.Fiacre.Root"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleRoot +entryRuleRoot returns [EObject current=null]: + { newCompositeNode(grammarAccess.getRootRule()); } + iv_ruleRoot=ruleRoot + { $current=$iv_ruleRoot.current; } + EOF; + +// Rule Root +ruleRoot returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getRootAccess().getRootAction_0(), + $current); + } + ) + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRootRule()); + } + } + otherlv_1=RULE_ID + { + newLeafNode(otherlv_1, grammarAccess.getRootAccess().getDeclarationRootDeclarationCrossReference_1_0()); + } + ) + ) + ( + otherlv_2='>' + { + newLeafNode(otherlv_2, grammarAccess.getRootAccess().getGreaterThanSignKeyword_2_0()); + } + ( + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRootRule()); + } + } + otherlv_3=RULE_ID + { + newLeafNode(otherlv_3, grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_0_0()); + } + ) + ) + ( + otherlv_4='|' + { + newLeafNode(otherlv_4, grammarAccess.getRootAccess().getVerticalLineKeyword_2_1_1_0()); + } + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRootRule()); + } + } + otherlv_5=RULE_ID + { + newLeafNode(otherlv_5, grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_1_1_0()); + } + ) + ) + )* + ) + )? + ) +; + +// Entry rule entryRuleImportDeclaration +entryRuleImportDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getImportDeclarationRule()); } + iv_ruleImportDeclaration=ruleImportDeclaration + { $current=$iv_ruleImportDeclaration.current; } + EOF; + +// Rule ImportDeclaration +ruleImportDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='#include' + { + newLeafNode(otherlv_0, grammarAccess.getImportDeclarationAccess().getIncludeKeyword_0()); + } + ( + ( + lv_importURI_1_0=RULE_STRING + { + newLeafNode(lv_importURI_1_0, grammarAccess.getImportDeclarationAccess().getImportURISTRINGTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getImportDeclarationRule()); + } + setWithLastConsumed( + $current, + "importURI", + lv_importURI_1_0, + "org.eclipse.xtext.common.Terminals.STRING"); + } + ) + ) + ) +; + +// Entry rule entryRuleDeclaration +entryRuleDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getDeclarationRule()); } + iv_ruleDeclaration=ruleDeclaration + { $current=$iv_ruleDeclaration.current; } + EOF; + +// Rule Declaration +ruleDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getDeclarationAccess().getTypeDeclarationParserRuleCall_0()); + } + this_TypeDeclaration_0=ruleTypeDeclaration + { + $current = $this_TypeDeclaration_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getDeclarationAccess().getChannelDeclarationParserRuleCall_1()); + } + this_ChannelDeclaration_1=ruleChannelDeclaration + { + $current = $this_ChannelDeclaration_1.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getDeclarationAccess().getConstantDeclarationParserRuleCall_2()); + } + this_ConstantDeclaration_2=ruleConstantDeclaration + { + $current = $this_ConstantDeclaration_2.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getDeclarationAccess().getParameterizedDeclarationParserRuleCall_3()); + } + this_ParameterizedDeclaration_3=ruleParameterizedDeclaration + { + $current = $this_ParameterizedDeclaration_3.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getDeclarationAccess().getPropertyDeclarationParserRuleCall_4()); + } + this_PropertyDeclaration_4=rulePropertyDeclaration + { + $current = $this_PropertyDeclaration_4.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleParameterizedDeclaration +entryRuleParameterizedDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getParameterizedDeclarationRule()); } + iv_ruleParameterizedDeclaration=ruleParameterizedDeclaration + { $current=$iv_ruleParameterizedDeclaration.current; } + EOF; + +// Rule ParameterizedDeclaration +ruleParameterizedDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getParameterizedDeclarationAccess().getProcessDeclarationParserRuleCall_0()); + } + this_ProcessDeclaration_0=ruleProcessDeclaration + { + $current = $this_ProcessDeclaration_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getParameterizedDeclarationAccess().getComponentDeclarationParserRuleCall_1()); + } + this_ComponentDeclaration_1=ruleComponentDeclaration + { + $current = $this_ComponentDeclaration_1.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getParameterizedDeclarationAccess().getFunctionDeclarationParserRuleCall_2()); + } + this_FunctionDeclaration_2=ruleFunctionDeclaration + { + $current = $this_FunctionDeclaration_2.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleFunctionDeclaration +entryRuleFunctionDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getFunctionDeclarationRule()); } + iv_ruleFunctionDeclaration=ruleFunctionDeclaration + { $current=$iv_ruleFunctionDeclaration.current; } + EOF; + +// Rule FunctionDeclaration +ruleFunctionDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='function' + { + newLeafNode(otherlv_0, grammarAccess.getFunctionDeclarationAccess().getFunctionKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getFunctionDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFunctionDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) + ( + otherlv_2='(' + { + newLeafNode(otherlv_2, grammarAccess.getFunctionDeclarationAccess().getLeftParenthesisKeyword_2_0()); + } + ( + ( + ( + { + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_0_0()); + } + lv_parameters_3_0=ruleParametersDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + add( + $current, + "parameters", + lv_parameters_3_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_4=',' + { + newLeafNode(otherlv_4, grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_2_1_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_1_1_0()); + } + lv_parameters_5_0=ruleParametersDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + add( + $current, + "parameters", + lv_parameters_5_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + otherlv_6=')' + { + newLeafNode(otherlv_6, grammarAccess.getFunctionDeclarationAccess().getRightParenthesisKeyword_2_2()); + } + ) + otherlv_7=':' + { + newLeafNode(otherlv_7, grammarAccess.getFunctionDeclarationAccess().getColonKeyword_3()); + } + ( + ( + { + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getTypeTypeParserRuleCall_4_0()); + } + lv_type_8_0=ruleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + set( + $current, + "type", + lv_type_8_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_9='is' + { + newLeafNode(otherlv_9, grammarAccess.getFunctionDeclarationAccess().getIsKeyword_5()); + } + ( + otherlv_10='var' + { + newLeafNode(otherlv_10, grammarAccess.getFunctionDeclarationAccess().getVarKeyword_6_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_1_0()); + } + lv_variables_11_0=ruleVariablesDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + add( + $current, + "variables", + lv_variables_11_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_12=',' + { + newLeafNode(otherlv_12, grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_6_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_2_1_0()); + } + lv_variables_13_0=ruleVariablesDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + add( + $current, + "variables", + lv_variables_13_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + ( + ( + { + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getStatementStatementParserRuleCall_7_0()); + } + lv_statement_14_0=ruleStatement + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + set( + $current, + "statement", + lv_statement_14_0, + "fr.irit.fiacre.xtext.Fiacre.Statement"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleTypeDeclaration +entryRuleTypeDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTypeDeclarationRule()); } + iv_ruleTypeDeclaration=ruleTypeDeclaration + { $current=$iv_ruleTypeDeclaration.current; } + EOF; + +// Rule TypeDeclaration +ruleTypeDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='type' + { + newLeafNode(otherlv_0, grammarAccess.getTypeDeclarationAccess().getTypeKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getTypeDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getTypeDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) + otherlv_2='is' + { + newLeafNode(otherlv_2, grammarAccess.getTypeDeclarationAccess().getIsKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getTypeDeclarationAccess().getValueTypeParserRuleCall_3_0()); + } + lv_value_3_0=ruleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getTypeDeclarationRule()); + } + set( + $current, + "value", + lv_value_3_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleChannelDeclaration +entryRuleChannelDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getChannelDeclarationRule()); } + iv_ruleChannelDeclaration=ruleChannelDeclaration + { $current=$iv_ruleChannelDeclaration.current; } + EOF; + +// Rule ChannelDeclaration +ruleChannelDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='channel' + { + newLeafNode(otherlv_0, grammarAccess.getChannelDeclarationAccess().getChannelKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getChannelDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getChannelDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) + otherlv_2='is' + { + newLeafNode(otherlv_2, grammarAccess.getChannelDeclarationAccess().getIsKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getChannelDeclarationAccess().getValueChannelTypeParserRuleCall_3_0()); + } + lv_value_3_0=ruleChannelType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getChannelDeclarationRule()); + } + set( + $current, + "value", + lv_value_3_0, + "fr.irit.fiacre.xtext.Fiacre.ChannelType"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleChannelType +entryRuleChannelType returns [EObject current=null]: + { newCompositeNode(grammarAccess.getChannelTypeRule()); } + iv_ruleChannelType=ruleChannelType + { $current=$iv_ruleChannelType.current; } + EOF; + +// Rule ChannelType +ruleChannelType returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getChannelTypeAccess().getChannelTypeAction_0(), + $current); + } + ) + ( + otherlv_1='array' + { + newLeafNode(otherlv_1, grammarAccess.getChannelTypeAccess().getArrayKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getChannelTypeAccess().getSizeExpressionParserRuleCall_1_1_0()); + } + lv_size_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getChannelTypeRule()); + } + set( + $current, + "size", + lv_size_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_3='of' + { + newLeafNode(otherlv_3, grammarAccess.getChannelTypeAccess().getOfKeyword_1_2()); + } + )? + ( + ( + ( + ( + ( + ( + lv_in_4_0='in' + { + newLeafNode(lv_in_4_0, grammarAccess.getChannelTypeAccess().getInInKeyword_2_0_0_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getChannelTypeRule()); + } + setWithLastConsumed($current, "in", true, "in"); + } + ) + ) + ( + ( + lv_out_5_0='out' + { + newLeafNode(lv_out_5_0, grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getChannelTypeRule()); + } + setWithLastConsumed($current, "out", true, "out"); + } + ) + )? + ) + | + ( + ( + lv_out_6_0='out' + { + newLeafNode(lv_out_6_0, grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getChannelTypeRule()); + } + setWithLastConsumed($current, "out", true, "out"); + } + ) + ) + )? + ( + ( + ( + { + newCompositeNode(grammarAccess.getChannelTypeAccess().getTypeTupleTypeParserRuleCall_2_0_1_0_0()); + } + lv_type_7_0=ruleTupleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getChannelTypeRule()); + } + set( + $current, + "type", + lv_type_7_0, + "fr.irit.fiacre.xtext.Fiacre.TupleType"); + afterParserOrEnumRuleCall(); + } + ) + ) + | + otherlv_8='none' + { + newLeafNode(otherlv_8, grammarAccess.getChannelTypeAccess().getNoneKeyword_2_0_1_1()); + } + ) + ) + | + otherlv_9='none' + { + newLeafNode(otherlv_9, grammarAccess.getChannelTypeAccess().getNoneKeyword_2_1()); + } + | + otherlv_10='sync' + { + newLeafNode(otherlv_10, grammarAccess.getChannelTypeAccess().getSyncKeyword_2_2()); + } + ) + ) +; + +// Entry rule entryRuleType +entryRuleType returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTypeRule()); } + iv_ruleType=ruleType + { $current=$iv_ruleType.current; } + EOF; + +// Rule Type +ruleType returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getTypeAccess().getBasicTypeParserRuleCall_0()); + } + this_BasicType_0=ruleBasicType + { + $current = $this_BasicType_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getTypeAccess().getRangeTypeParserRuleCall_1()); + } + this_RangeType_1=ruleRangeType + { + $current = $this_RangeType_1.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getTypeAccess().getUnionTypeParserRuleCall_2()); + } + this_UnionType_2=ruleUnionType + { + $current = $this_UnionType_2.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getTypeAccess().getRecordTypeParserRuleCall_3()); + } + this_RecordType_3=ruleRecordType + { + $current = $this_RecordType_3.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getTypeAccess().getQueueTypeParserRuleCall_4()); + } + this_QueueType_4=ruleQueueType + { + $current = $this_QueueType_4.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getTypeAccess().getArrayTypeParserRuleCall_5()); + } + this_ArrayType_5=ruleArrayType + { + $current = $this_ArrayType_5.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getTypeAccess().getReferencedTypeParserRuleCall_6()); + } + this_ReferencedType_6=ruleReferencedType + { + $current = $this_ReferencedType_6.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleTupleType +entryRuleTupleType returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTupleTypeRule()); } + iv_ruleTupleType=ruleTupleType + { $current=$iv_ruleTupleType.current; } + EOF; + +// Rule TupleType +ruleTupleType returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getTupleTypeAccess().getTypeParserRuleCall_0()); + } + this_Type_0=ruleType + { + $current = $this_Type_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getTupleTypeAccess().getTupleTypeTypesAction_1_0(), + $current); + } + ) + otherlv_2='#' + { + newLeafNode(otherlv_2, grammarAccess.getTupleTypeAccess().getNumberSignKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getTupleTypeAccess().getTypesTypeParserRuleCall_1_2_0()); + } + lv_types_3_0=ruleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getTupleTypeRule()); + } + add( + $current, + "types", + lv_types_3_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleBasicType +entryRuleBasicType returns [EObject current=null]: + { newCompositeNode(grammarAccess.getBasicTypeRule()); } + iv_ruleBasicType=ruleBasicType + { $current=$iv_ruleBasicType.current; } + EOF; + +// Rule BasicType +ruleBasicType returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getBasicTypeAccess().getNaturalTypeAction_0_0(), + $current); + } + ) + otherlv_1='nat' + { + newLeafNode(otherlv_1, grammarAccess.getBasicTypeAccess().getNatKeyword_0_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getBasicTypeAccess().getIntegerTypeAction_1_0(), + $current); + } + ) + otherlv_3='int' + { + newLeafNode(otherlv_3, grammarAccess.getBasicTypeAccess().getIntKeyword_1_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getBasicTypeAccess().getBooleanTypeAction_2_0(), + $current); + } + ) + otherlv_5='bool' + { + newLeafNode(otherlv_5, grammarAccess.getBasicTypeAccess().getBoolKeyword_2_1()); + } + ) + ) +; + +// Entry rule entryRuleRangeType +entryRuleRangeType returns [EObject current=null]: + { newCompositeNode(grammarAccess.getRangeTypeRule()); } + iv_ruleRangeType=ruleRangeType + { $current=$iv_ruleRangeType.current; } + EOF; + +// Rule RangeType +ruleRangeType returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getRangeTypeAccess().getMinimumExpressionParserRuleCall_0_0()); + } + lv_minimum_0_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRangeTypeRule()); + } + set( + $current, + "minimum", + lv_minimum_0_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_1='..' + { + newLeafNode(otherlv_1, grammarAccess.getRangeTypeAccess().getFullStopFullStopKeyword_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getRangeTypeAccess().getMaximumExpressionParserRuleCall_2_0()); + } + lv_maximum_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRangeTypeRule()); + } + set( + $current, + "maximum", + lv_maximum_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleUnionType +entryRuleUnionType returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUnionTypeRule()); } + iv_ruleUnionType=ruleUnionType + { $current=$iv_ruleUnionType.current; } + EOF; + +// Rule UnionType +ruleUnionType returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='union' + { + newLeafNode(otherlv_0, grammarAccess.getUnionTypeAccess().getUnionKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_1_0()); + } + lv_tags_1_0=ruleUnionTags + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnionTypeRule()); + } + add( + $current, + "tags", + lv_tags_1_0, + "fr.irit.fiacre.xtext.Fiacre.UnionTags"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_2='|' + { + newLeafNode(otherlv_2, grammarAccess.getUnionTypeAccess().getVerticalLineKeyword_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_2_1_0()); + } + lv_tags_3_0=ruleUnionTags + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnionTypeRule()); + } + add( + $current, + "tags", + lv_tags_3_0, + "fr.irit.fiacre.xtext.Fiacre.UnionTags"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_4='end' + { + newLeafNode(otherlv_4, grammarAccess.getUnionTypeAccess().getEndKeyword_3()); + } + ( + otherlv_5='union' + { + newLeafNode(otherlv_5, grammarAccess.getUnionTypeAccess().getUnionKeyword_4()); + } + )? + ) +; + +// Entry rule entryRuleUnionTags +entryRuleUnionTags returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUnionTagsRule()); } + iv_ruleUnionTags=ruleUnionTags + { $current=$iv_ruleUnionTags.current; } + EOF; + +// Rule UnionTags +ruleUnionTags returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_0_0()); + } + lv_tags_0_0=ruleUnionTagDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnionTagsRule()); + } + add( + $current, + "tags", + lv_tags_0_0, + "fr.irit.fiacre.xtext.Fiacre.UnionTagDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_1=',' + { + newLeafNode(otherlv_1, grammarAccess.getUnionTagsAccess().getCommaKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_1_1_0()); + } + lv_tags_2_0=ruleUnionTagDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnionTagsRule()); + } + add( + $current, + "tags", + lv_tags_2_0, + "fr.irit.fiacre.xtext.Fiacre.UnionTagDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ( + otherlv_3='of' + { + newLeafNode(otherlv_3, grammarAccess.getUnionTagsAccess().getOfKeyword_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getUnionTagsAccess().getTypeTypeParserRuleCall_2_1_0()); + } + lv_type_4_0=ruleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnionTagsRule()); + } + set( + $current, + "type", + lv_type_4_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) +; + +// Entry rule entryRuleUnionTagDeclaration +entryRuleUnionTagDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUnionTagDeclarationRule()); } + iv_ruleUnionTagDeclaration=ruleUnionTagDeclaration + { $current=$iv_ruleUnionTagDeclaration.current; } + EOF; + +// Rule UnionTagDeclaration +ruleUnionTagDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + lv_name_0_0=RULE_ID + { + newLeafNode(lv_name_0_0, grammarAccess.getUnionTagDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getUnionTagDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_0_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) +; + +// Entry rule entryRuleRecordType +entryRuleRecordType returns [EObject current=null]: + { newCompositeNode(grammarAccess.getRecordTypeRule()); } + iv_ruleRecordType=ruleRecordType + { $current=$iv_ruleRecordType.current; } + EOF; + +// Rule RecordType +ruleRecordType returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='record' + { + newLeafNode(otherlv_0, grammarAccess.getRecordTypeAccess().getRecordKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_1_0()); + } + lv_fields_1_0=ruleRecordFields + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRecordTypeRule()); + } + add( + $current, + "fields", + lv_fields_1_0, + "fr.irit.fiacre.xtext.Fiacre.RecordFields"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_2=',' + { + newLeafNode(otherlv_2, grammarAccess.getRecordTypeAccess().getCommaKeyword_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_2_1_0()); + } + lv_fields_3_0=ruleRecordFields + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRecordTypeRule()); + } + add( + $current, + "fields", + lv_fields_3_0, + "fr.irit.fiacre.xtext.Fiacre.RecordFields"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_4='end' + { + newLeafNode(otherlv_4, grammarAccess.getRecordTypeAccess().getEndKeyword_3()); + } + ( + otherlv_5='record' + { + newLeafNode(otherlv_5, grammarAccess.getRecordTypeAccess().getRecordKeyword_4()); + } + )? + ) +; + +// Entry rule entryRuleRecordFields +entryRuleRecordFields returns [EObject current=null]: + { newCompositeNode(grammarAccess.getRecordFieldsRule()); } + iv_ruleRecordFields=ruleRecordFields + { $current=$iv_ruleRecordFields.current; } + EOF; + +// Rule RecordFields +ruleRecordFields returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_0_0()); + } + lv_fields_0_0=ruleRecordFieldDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRecordFieldsRule()); + } + add( + $current, + "fields", + lv_fields_0_0, + "fr.irit.fiacre.xtext.Fiacre.RecordFieldDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_1=',' + { + newLeafNode(otherlv_1, grammarAccess.getRecordFieldsAccess().getCommaKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_1_1_0()); + } + lv_fields_2_0=ruleRecordFieldDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRecordFieldsRule()); + } + add( + $current, + "fields", + lv_fields_2_0, + "fr.irit.fiacre.xtext.Fiacre.RecordFieldDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_3=':' + { + newLeafNode(otherlv_3, grammarAccess.getRecordFieldsAccess().getColonKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getRecordFieldsAccess().getTypeTypeParserRuleCall_3_0()); + } + lv_type_4_0=ruleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRecordFieldsRule()); + } + set( + $current, + "type", + lv_type_4_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleRecordFieldDeclaration +entryRuleRecordFieldDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getRecordFieldDeclarationRule()); } + iv_ruleRecordFieldDeclaration=ruleRecordFieldDeclaration + { $current=$iv_ruleRecordFieldDeclaration.current; } + EOF; + +// Rule RecordFieldDeclaration +ruleRecordFieldDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + lv_name_0_0=RULE_ID + { + newLeafNode(lv_name_0_0, grammarAccess.getRecordFieldDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRecordFieldDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_0_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) +; + +// Entry rule entryRuleQueueType +entryRuleQueueType returns [EObject current=null]: + { newCompositeNode(grammarAccess.getQueueTypeRule()); } + iv_ruleQueueType=ruleQueueType + { $current=$iv_ruleQueueType.current; } + EOF; + +// Rule QueueType +ruleQueueType returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='queue' + { + newLeafNode(otherlv_0, grammarAccess.getQueueTypeAccess().getQueueKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getQueueTypeAccess().getSizeExpressionParserRuleCall_1_0()); + } + lv_size_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getQueueTypeRule()); + } + set( + $current, + "size", + lv_size_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='of' + { + newLeafNode(otherlv_2, grammarAccess.getQueueTypeAccess().getOfKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getQueueTypeAccess().getTypeTypeParserRuleCall_3_0()); + } + lv_type_3_0=ruleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getQueueTypeRule()); + } + set( + $current, + "type", + lv_type_3_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleArrayType +entryRuleArrayType returns [EObject current=null]: + { newCompositeNode(grammarAccess.getArrayTypeRule()); } + iv_ruleArrayType=ruleArrayType + { $current=$iv_ruleArrayType.current; } + EOF; + +// Rule ArrayType +ruleArrayType returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='array' + { + newLeafNode(otherlv_0, grammarAccess.getArrayTypeAccess().getArrayKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getArrayTypeAccess().getSizeExpressionParserRuleCall_1_0()); + } + lv_size_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getArrayTypeRule()); + } + set( + $current, + "size", + lv_size_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='of' + { + newLeafNode(otherlv_2, grammarAccess.getArrayTypeAccess().getOfKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getArrayTypeAccess().getTypeTypeParserRuleCall_3_0()); + } + lv_type_3_0=ruleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getArrayTypeRule()); + } + set( + $current, + "type", + lv_type_3_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleReferencedType +entryRuleReferencedType returns [EObject current=null]: + { newCompositeNode(grammarAccess.getReferencedTypeRule()); } + iv_ruleReferencedType=ruleReferencedType + { $current=$iv_ruleReferencedType.current; } + EOF; + +// Rule ReferencedType +ruleReferencedType returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getReferencedTypeRule()); + } + } + otherlv_0=RULE_ID + { + newLeafNode(otherlv_0, grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseCrossReference_0()); + } + ) + ) +; + +// Entry rule entryRuleConstantDeclaration +entryRuleConstantDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getConstantDeclarationRule()); } + iv_ruleConstantDeclaration=ruleConstantDeclaration + { $current=$iv_ruleConstantDeclaration.current; } + EOF; + +// Rule ConstantDeclaration +ruleConstantDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='const' + { + newLeafNode(otherlv_0, grammarAccess.getConstantDeclarationAccess().getConstKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getConstantDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getConstantDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) + otherlv_2=':' + { + newLeafNode(otherlv_2, grammarAccess.getConstantDeclarationAccess().getColonKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getConstantDeclarationAccess().getTypeTypeParserRuleCall_3_0()); + } + lv_type_3_0=ruleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConstantDeclarationRule()); + } + set( + $current, + "type", + lv_type_3_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_4='is' + { + newLeafNode(otherlv_4, grammarAccess.getConstantDeclarationAccess().getIsKeyword_4()); + } + ( + ( + { + newCompositeNode(grammarAccess.getConstantDeclarationAccess().getValueExpressionParserRuleCall_5_0()); + } + lv_value_5_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConstantDeclarationRule()); + } + set( + $current, + "value", + lv_value_5_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleProcessDeclaration +entryRuleProcessDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getProcessDeclarationRule()); } + iv_ruleProcessDeclaration=ruleProcessDeclaration + { $current=$iv_ruleProcessDeclaration.current; } + EOF; + +// Rule ProcessDeclaration +ruleProcessDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='process' + { + newLeafNode(otherlv_0, grammarAccess.getProcessDeclarationAccess().getProcessKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getProcessDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getProcessDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) + ( + otherlv_2='[' + { + newLeafNode(otherlv_2, grammarAccess.getProcessDeclarationAccess().getLeftSquareBracketKeyword_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); + } + lv_ports_3_0=rulePortsDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "ports", + lv_ports_3_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_4=',' + { + newLeafNode(otherlv_4, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_2_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); + } + lv_ports_5_0=rulePortsDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "ports", + lv_ports_5_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_6=']' + { + newLeafNode(otherlv_6, grammarAccess.getProcessDeclarationAccess().getRightSquareBracketKeyword_2_3()); + } + )? + ( + otherlv_7='(' + { + newLeafNode(otherlv_7, grammarAccess.getProcessDeclarationAccess().getLeftParenthesisKeyword_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); + } + lv_parameters_8_0=ruleParametersDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "parameters", + lv_parameters_8_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_9=',' + { + newLeafNode(otherlv_9, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_3_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); + } + lv_parameters_10_0=ruleParametersDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "parameters", + lv_parameters_10_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_11=')' + { + newLeafNode(otherlv_11, grammarAccess.getProcessDeclarationAccess().getRightParenthesisKeyword_3_3()); + } + )? + otherlv_12='is' + { + newLeafNode(otherlv_12, grammarAccess.getProcessDeclarationAccess().getIsKeyword_4()); + } + ( + otherlv_13='port' + { + newLeafNode(otherlv_13, grammarAccess.getProcessDeclarationAccess().getPortKeyword_5_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_1_0()); + } + lv_localPorts_14_0=rulePortsDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "localPorts", + lv_localPorts_14_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_15=',' + { + newLeafNode(otherlv_15, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_5_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_2_1_0()); + } + lv_localPorts_16_0=rulePortsDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "localPorts", + lv_localPorts_16_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + ( + otherlv_17='priority' + { + newLeafNode(otherlv_17, grammarAccess.getProcessDeclarationAccess().getPriorityKeyword_6_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_1_0()); + } + lv_priorities_18_0=rulePriorityDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "priorities", + lv_priorities_18_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_19=',' + { + newLeafNode(otherlv_19, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_6_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_2_1_0()); + } + lv_priorities_20_0=rulePriorityDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "priorities", + lv_priorities_20_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + otherlv_21='states' + { + newLeafNode(otherlv_21, grammarAccess.getProcessDeclarationAccess().getStatesKeyword_7()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_8_0()); + } + lv_states_22_0=ruleStateDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "states", + lv_states_22_0, + "fr.irit.fiacre.xtext.Fiacre.StateDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_23=',' + { + newLeafNode(otherlv_23, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_9_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_9_1_0()); + } + lv_states_24_0=ruleStateDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "states", + lv_states_24_0, + "fr.irit.fiacre.xtext.Fiacre.StateDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ( + otherlv_25='var' + { + newLeafNode(otherlv_25, grammarAccess.getProcessDeclarationAccess().getVarKeyword_10_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_1_0()); + } + lv_variables_26_0=ruleVariablesDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "variables", + lv_variables_26_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_27=',' + { + newLeafNode(otherlv_27, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_10_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_2_1_0()); + } + lv_variables_28_0=ruleVariablesDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "variables", + lv_variables_28_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + ( + otherlv_29='init' + { + newLeafNode(otherlv_29, grammarAccess.getProcessDeclarationAccess().getInitKeyword_11_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getPreludeStatementSequenceParserRuleCall_11_1_0()); + } + lv_prelude_30_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + set( + $current, + "prelude", + lv_prelude_30_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ( + ( + { + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getTransitionsTransitionParserRuleCall_12_0()); + } + lv_transitions_31_0=ruleTransition + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + $current, + "transitions", + lv_transitions_31_0, + "fr.irit.fiacre.xtext.Fiacre.Transition"); + afterParserOrEnumRuleCall(); + } + ) + )+ + ) +; + +// Entry rule entryRuleStateDeclaration +entryRuleStateDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getStateDeclarationRule()); } + iv_ruleStateDeclaration=ruleStateDeclaration + { $current=$iv_ruleStateDeclaration.current; } + EOF; + +// Rule StateDeclaration +ruleStateDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + lv_name_0_0=RULE_ID + { + newLeafNode(lv_name_0_0, grammarAccess.getStateDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getStateDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_0_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) +; + +// Entry rule entryRuleTransitionSource +entryRuleTransitionSource returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTransitionSourceRule()); } + iv_ruleTransitionSource=ruleTransitionSource + { $current=$iv_ruleTransitionSource.current; } + EOF; + +// Rule TransitionSource +ruleTransitionSource returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='from' + { + newLeafNode(otherlv_0, grammarAccess.getTransitionSourceAccess().getFromKeyword_0()); + } + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getTransitionSourceRule()); + } + } + otherlv_1=RULE_ID + { + newLeafNode(otherlv_1, grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationCrossReference_1_0()); + } + ) + ) + ) +; + +// Entry rule entryRuleTransition +entryRuleTransition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTransitionRule()); } + iv_ruleTransition=ruleTransition + { $current=$iv_ruleTransition.current; } + EOF; + +// Rule Transition +ruleTransition returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getTransitionAccess().getSourceTransitionSourceParserRuleCall_0_0()); + } + lv_source_0_0=ruleTransitionSource + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getTransitionRule()); + } + set( + $current, + "source", + lv_source_0_0, + "fr.irit.fiacre.xtext.Fiacre.TransitionSource"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getTransitionAccess().getActionStatementSequenceParserRuleCall_1_0()); + } + lv_action_1_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getTransitionRule()); + } + set( + $current, + "action", + lv_action_1_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleComponentDeclaration +entryRuleComponentDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getComponentDeclarationRule()); } + iv_ruleComponentDeclaration=ruleComponentDeclaration + { $current=$iv_ruleComponentDeclaration.current; } + EOF; + +// Rule ComponentDeclaration +ruleComponentDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='component' + { + newLeafNode(otherlv_0, grammarAccess.getComponentDeclarationAccess().getComponentKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getComponentDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getComponentDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) + ( + otherlv_2='[' + { + newLeafNode(otherlv_2, grammarAccess.getComponentDeclarationAccess().getLeftSquareBracketKeyword_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); + } + lv_ports_3_0=rulePortsDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + $current, + "ports", + lv_ports_3_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_4=',' + { + newLeafNode(otherlv_4, grammarAccess.getComponentDeclarationAccess().getCommaKeyword_2_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); + } + lv_ports_5_0=rulePortsDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + $current, + "ports", + lv_ports_5_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_6=']' + { + newLeafNode(otherlv_6, grammarAccess.getComponentDeclarationAccess().getRightSquareBracketKeyword_2_3()); + } + )? + ( + otherlv_7='(' + { + newLeafNode(otherlv_7, grammarAccess.getComponentDeclarationAccess().getLeftParenthesisKeyword_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); + } + lv_parameters_8_0=ruleParametersDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + $current, + "parameters", + lv_parameters_8_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_9=',' + { + newLeafNode(otherlv_9, grammarAccess.getComponentDeclarationAccess().getCommaKeyword_3_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); + } + lv_parameters_10_0=ruleParametersDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + $current, + "parameters", + lv_parameters_10_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_11=')' + { + newLeafNode(otherlv_11, grammarAccess.getComponentDeclarationAccess().getRightParenthesisKeyword_3_3()); + } + )? + otherlv_12='is' + { + newLeafNode(otherlv_12, grammarAccess.getComponentDeclarationAccess().getIsKeyword_4()); + } + ( + otherlv_13='var' + { + newLeafNode(otherlv_13, grammarAccess.getComponentDeclarationAccess().getVarKeyword_5_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_1_0()); + } + lv_variables_14_0=ruleVariablesDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + $current, + "variables", + lv_variables_14_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_15=',' + { + newLeafNode(otherlv_15, grammarAccess.getComponentDeclarationAccess().getCommaKeyword_5_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_2_1_0()); + } + lv_variables_16_0=ruleVariablesDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + $current, + "variables", + lv_variables_16_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + ( + otherlv_17='port' + { + newLeafNode(otherlv_17, grammarAccess.getComponentDeclarationAccess().getPortKeyword_6_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_1_0()); + } + lv_localPorts_18_0=ruleLocalPortsDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + $current, + "localPorts", + lv_localPorts_18_0, + "fr.irit.fiacre.xtext.Fiacre.LocalPortsDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_19=',' + { + newLeafNode(otherlv_19, grammarAccess.getComponentDeclarationAccess().getCommaKeyword_6_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_2_1_0()); + } + lv_localPorts_20_0=ruleLocalPortsDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + $current, + "localPorts", + lv_localPorts_20_0, + "fr.irit.fiacre.xtext.Fiacre.LocalPortsDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + ( + otherlv_21='priority' + { + newLeafNode(otherlv_21, grammarAccess.getComponentDeclarationAccess().getPriorityKeyword_7_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_1_0()); + } + lv_priorities_22_0=rulePriorityDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + $current, + "priorities", + lv_priorities_22_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_23=',' + { + newLeafNode(otherlv_23, grammarAccess.getComponentDeclarationAccess().getCommaKeyword_7_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_2_1_0()); + } + lv_priorities_24_0=rulePriorityDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + $current, + "priorities", + lv_priorities_24_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + ( + otherlv_25='init' + { + newLeafNode(otherlv_25, grammarAccess.getComponentDeclarationAccess().getInitKeyword_8_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getPreludeStatementSequenceParserRuleCall_8_1_0()); + } + lv_prelude_26_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + set( + $current, + "prelude", + lv_prelude_26_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ( + ( + { + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getBodyCompositionParserRuleCall_9_0()); + } + lv_body_27_0=ruleComposition + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + set( + $current, + "body", + lv_body_27_0, + "fr.irit.fiacre.xtext.Fiacre.Composition"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRulePortsDeclaration +entryRulePortsDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPortsDeclarationRule()); } + iv_rulePortsDeclaration=rulePortsDeclaration + { $current=$iv_rulePortsDeclaration.current; } + EOF; + +// Rule PortsDeclaration +rulePortsDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); + } + lv_ports_0_0=rulePortDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPortsDeclarationRule()); + } + add( + $current, + "ports", + lv_ports_0_0, + "fr.irit.fiacre.xtext.Fiacre.PortDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_1=',' + { + newLeafNode(otherlv_1, grammarAccess.getPortsDeclarationAccess().getCommaKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); + } + lv_ports_2_0=rulePortDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPortsDeclarationRule()); + } + add( + $current, + "ports", + lv_ports_2_0, + "fr.irit.fiacre.xtext.Fiacre.PortDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_3=':' + { + newLeafNode(otherlv_3, grammarAccess.getPortsDeclarationAccess().getColonKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); + } + lv_type_4_0=ruleChannelType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPortsDeclarationRule()); + } + set( + $current, + "type", + lv_type_4_0, + "fr.irit.fiacre.xtext.Fiacre.ChannelType"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRulePortDeclaration +entryRulePortDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPortDeclarationRule()); } + iv_rulePortDeclaration=rulePortDeclaration + { $current=$iv_rulePortDeclaration.current; } + EOF; + +// Rule PortDeclaration +rulePortDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + lv_name_0_0=RULE_ID + { + newLeafNode(lv_name_0_0, grammarAccess.getPortDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPortDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_0_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) +; + +// Entry rule entryRuleLocalPortsDeclaration +entryRuleLocalPortsDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLocalPortsDeclarationRule()); } + iv_ruleLocalPortsDeclaration=ruleLocalPortsDeclaration + { $current=$iv_ruleLocalPortsDeclaration.current; } + EOF; + +// Rule LocalPortsDeclaration +ruleLocalPortsDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); + } + lv_ports_0_0=rulePortDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLocalPortsDeclarationRule()); + } + add( + $current, + "ports", + lv_ports_0_0, + "fr.irit.fiacre.xtext.Fiacre.PortDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_1=',' + { + newLeafNode(otherlv_1, grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); + } + lv_ports_2_0=rulePortDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLocalPortsDeclarationRule()); + } + add( + $current, + "ports", + lv_ports_2_0, + "fr.irit.fiacre.xtext.Fiacre.PortDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_3=':' + { + newLeafNode(otherlv_3, grammarAccess.getLocalPortsDeclarationAccess().getColonKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLocalPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); + } + lv_type_4_0=ruleChannelType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLocalPortsDeclarationRule()); + } + set( + $current, + "type", + lv_type_4_0, + "fr.irit.fiacre.xtext.Fiacre.ChannelType"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_5='in' + { + newLeafNode(otherlv_5, grammarAccess.getLocalPortsDeclarationAccess().getInKeyword_4_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLocalPortsDeclarationAccess().getLeftLowerBoundParserRuleCall_4_1_0()); + } + lv_left_6_0=ruleLowerBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLocalPortsDeclarationRule()); + } + set( + $current, + "left", + lv_left_6_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_7=',' + { + newLeafNode(otherlv_7, grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_4_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLocalPortsDeclarationAccess().getRightUpperBoundParserRuleCall_4_3_0()); + } + lv_right_8_0=ruleUpperBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLocalPortsDeclarationRule()); + } + set( + $current, + "right", + lv_right_8_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) +; + +// Entry rule entryRuleParametersDeclaration +entryRuleParametersDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getParametersDeclarationRule()); } + iv_ruleParametersDeclaration=ruleParametersDeclaration + { $current=$iv_ruleParametersDeclaration.current; } + EOF; + +// Rule ParametersDeclaration +ruleParametersDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_0_0()); + } + lv_parameters_0_0=ruleParameterDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getParametersDeclarationRule()); + } + add( + $current, + "parameters", + lv_parameters_0_0, + "fr.irit.fiacre.xtext.Fiacre.ParameterDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_1=',' + { + newLeafNode(otherlv_1, grammarAccess.getParametersDeclarationAccess().getCommaKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_1_1_0()); + } + lv_parameters_2_0=ruleParameterDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getParametersDeclarationRule()); + } + add( + $current, + "parameters", + lv_parameters_2_0, + "fr.irit.fiacre.xtext.Fiacre.ParameterDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_3=':' + { + newLeafNode(otherlv_3, grammarAccess.getParametersDeclarationAccess().getColonKeyword_2()); + } + ( + ( + lv_read_4_0='read' + { + newLeafNode(lv_read_4_0, grammarAccess.getParametersDeclarationAccess().getReadReadKeyword_3_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getParametersDeclarationRule()); + } + setWithLastConsumed($current, "read", true, "read"); + } + ) + )? + ( + ( + lv_write_5_0='write' + { + newLeafNode(lv_write_5_0, grammarAccess.getParametersDeclarationAccess().getWriteWriteKeyword_4_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getParametersDeclarationRule()); + } + setWithLastConsumed($current, "write", true, "write"); + } + ) + )? + ( + ( + { + newCompositeNode(grammarAccess.getParametersDeclarationAccess().getTypeTypeParserRuleCall_5_0()); + } + lv_type_6_0=ruleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getParametersDeclarationRule()); + } + set( + $current, + "type", + lv_type_6_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleParameterDeclaration +entryRuleParameterDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getParameterDeclarationRule()); } + iv_ruleParameterDeclaration=ruleParameterDeclaration + { $current=$iv_ruleParameterDeclaration.current; } + EOF; + +// Rule ParameterDeclaration +ruleParameterDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + lv_reference_0_0='&' + { + newLeafNode(lv_reference_0_0, grammarAccess.getParameterDeclarationAccess().getReferenceAmpersandKeyword_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getParameterDeclarationRule()); + } + setWithLastConsumed($current, "reference", true, "&"); + } + ) + ) + ( + ( + ( + lv_array_1_0='[' + { + newLeafNode(lv_array_1_0, grammarAccess.getParameterDeclarationAccess().getArrayLeftSquareBracketKeyword_0_1_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getParameterDeclarationRule()); + } + setWithLastConsumed($current, "array", true, "["); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getParameterDeclarationAccess().getSizeExpressionParserRuleCall_0_1_1_0()); + } + lv_size_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getParameterDeclarationRule()); + } + set( + $current, + "size", + lv_size_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_3=']' + { + newLeafNode(otherlv_3, grammarAccess.getParameterDeclarationAccess().getRightSquareBracketKeyword_0_1_2()); + } + )? + )? + ( + ( + lv_name_4_0=RULE_ID + { + newLeafNode(lv_name_4_0, grammarAccess.getParameterDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getParameterDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_4_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) + ) +; + +// Entry rule entryRuleVariablesDeclaration +entryRuleVariablesDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getVariablesDeclarationRule()); } + iv_ruleVariablesDeclaration=ruleVariablesDeclaration + { $current=$iv_ruleVariablesDeclaration.current; } + EOF; + +// Rule VariablesDeclaration +ruleVariablesDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_0_0()); + } + lv_variables_0_0=ruleVariableDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getVariablesDeclarationRule()); + } + add( + $current, + "variables", + lv_variables_0_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_1=',' + { + newLeafNode(otherlv_1, grammarAccess.getVariablesDeclarationAccess().getCommaKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_1_1_0()); + } + lv_variables_2_0=ruleVariableDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getVariablesDeclarationRule()); + } + add( + $current, + "variables", + lv_variables_2_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_3=':' + { + newLeafNode(otherlv_3, grammarAccess.getVariablesDeclarationAccess().getColonKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getVariablesDeclarationAccess().getTypeTypeParserRuleCall_3_0()); + } + lv_type_4_0=ruleType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getVariablesDeclarationRule()); + } + set( + $current, + "type", + lv_type_4_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_5=':=' + { + newLeafNode(otherlv_5, grammarAccess.getVariablesDeclarationAccess().getColonEqualsSignKeyword_4_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getVariablesDeclarationAccess().getValueExpressionParserRuleCall_4_1_0()); + } + lv_value_6_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getVariablesDeclarationRule()); + } + set( + $current, + "value", + lv_value_6_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) +; + +// Entry rule entryRuleVariableDeclaration +entryRuleVariableDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getVariableDeclarationRule()); } + iv_ruleVariableDeclaration=ruleVariableDeclaration + { $current=$iv_ruleVariableDeclaration.current; } + EOF; + +// Rule VariableDeclaration +ruleVariableDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + lv_name_0_0=RULE_ID + { + newLeafNode(lv_name_0_0, grammarAccess.getVariableDeclarationAccess().getNameIDTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVariableDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_0_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) +; + +// Entry rule entryRulePriorityDeclaration +entryRulePriorityDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPriorityDeclarationRule()); } + iv_rulePriorityDeclaration=rulePriorityDeclaration + { $current=$iv_rulePriorityDeclaration.current; } + EOF; + +// Rule PriorityDeclaration +rulePriorityDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_0_0()); + } + lv_groups_0_0=rulePriorityGroup + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPriorityDeclarationRule()); + } + add( + $current, + "groups", + lv_groups_0_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityGroup"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_1='>' + { + newLeafNode(otherlv_1, grammarAccess.getPriorityDeclarationAccess().getGreaterThanSignKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_1_1_0()); + } + lv_groups_2_0=rulePriorityGroup + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPriorityDeclarationRule()); + } + add( + $current, + "groups", + lv_groups_2_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityGroup"); + afterParserOrEnumRuleCall(); + } + ) + ) + )+ + ) +; + +// Entry rule entryRulePriorityGroup +entryRulePriorityGroup returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPriorityGroupRule()); } + iv_rulePriorityGroup=rulePriorityGroup + { $current=$iv_rulePriorityGroup.current; } + EOF; + +// Rule PriorityGroup +rulePriorityGroup returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPriorityGroupRule()); + } + } + otherlv_0=RULE_ID + { + newLeafNode(otherlv_0, grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_0_0()); + } + ) + ) + ( + otherlv_1='|' + { + newLeafNode(otherlv_1, grammarAccess.getPriorityGroupAccess().getVerticalLineKeyword_1_0()); + } + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPriorityGroupRule()); + } + } + otherlv_2=RULE_ID + { + newLeafNode(otherlv_2, grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_1_1_0()); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleUnlessStatement +entryRuleUnlessStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUnlessStatementRule()); } + iv_ruleUnlessStatement=ruleUnlessStatement + { $current=$iv_ruleUnlessStatement.current; } + EOF; + +// Rule UnlessStatement +ruleUnlessStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getUnlessStatementAccess().getStatementChoiceParserRuleCall_0()); + } + this_StatementChoice_0=ruleStatementChoice + { + $current = $this_StatementChoice_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getUnlessStatementAccess().getUnlessStatementFollowersAction_1_0(), + $current); + } + ) + otherlv_2='unless' + { + newLeafNode(otherlv_2, grammarAccess.getUnlessStatementAccess().getUnlessKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getUnlessStatementAccess().getFollowersStatementChoiceParserRuleCall_1_2_0()); + } + lv_followers_3_0=ruleStatementChoice + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnlessStatementRule()); + } + add( + $current, + "followers", + lv_followers_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementChoice"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleStatementChoice +entryRuleStatementChoice returns [EObject current=null]: + { newCompositeNode(grammarAccess.getStatementChoiceRule()); } + iv_ruleStatementChoice=ruleStatementChoice + { $current=$iv_ruleStatementChoice.current; } + EOF; + +// Rule StatementChoice +ruleStatementChoice returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementChoiceAccess().getStatementSequenceParserRuleCall_0()); + } + this_StatementSequence_0=ruleStatementSequence + { + $current = $this_StatementSequence_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getStatementChoiceAccess().getStatementChoiceChoicesAction_1_0(), + $current); + } + ) + otherlv_2='[]' + { + newLeafNode(otherlv_2, grammarAccess.getStatementChoiceAccess().getLeftSquareBracketRightSquareBracketKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getStatementChoiceAccess().getChoicesStatementSequenceParserRuleCall_1_2_0()); + } + lv_choices_3_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getStatementChoiceRule()); + } + add( + $current, + "choices", + lv_choices_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleStatementSequence +entryRuleStatementSequence returns [EObject current=null]: + { newCompositeNode(grammarAccess.getStatementSequenceRule()); } + iv_ruleStatementSequence=ruleStatementSequence + { $current=$iv_ruleStatementSequence.current; } + EOF; + +// Rule StatementSequence +ruleStatementSequence returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementSequenceAccess().getStatementParserRuleCall_0()); + } + this_Statement_0=ruleStatement + { + $current = $this_Statement_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getStatementSequenceAccess().getStatementSequenceStatementsAction_1_0(), + $current); + } + ) + otherlv_2=';' + { + newLeafNode(otherlv_2, grammarAccess.getStatementSequenceAccess().getSemicolonKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getStatementSequenceAccess().getStatementsStatementParserRuleCall_1_2_0()); + } + lv_statements_3_0=ruleStatement + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getStatementSequenceRule()); + } + add( + $current, + "statements", + lv_statements_3_0, + "fr.irit.fiacre.xtext.Fiacre.Statement"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleStatement +entryRuleStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getStatementRule()); } + iv_ruleStatement=ruleStatement + { $current=$iv_ruleStatement.current; } + EOF; + +// Rule Statement +ruleStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getNullStatementParserRuleCall_0()); + } + this_NullStatement_0=ruleNullStatement + { + $current = $this_NullStatement_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getTaggedStatementParserRuleCall_1()); + } + this_TaggedStatement_1=ruleTaggedStatement + { + $current = $this_TaggedStatement_1.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getPatternStatementParserRuleCall_2()); + } + this_PatternStatement_2=rulePatternStatement + { + $current = $this_PatternStatement_2.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getConditionalStatementParserRuleCall_3()); + } + this_ConditionalStatement_3=ruleConditionalStatement + { + $current = $this_ConditionalStatement_3.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getSelectStatementParserRuleCall_4()); + } + this_SelectStatement_4=ruleSelectStatement + { + $current = $this_SelectStatement_4.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getWhileStatementParserRuleCall_5()); + } + this_WhileStatement_5=ruleWhileStatement + { + $current = $this_WhileStatement_5.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getForeachStatementParserRuleCall_6()); + } + this_ForeachStatement_6=ruleForeachStatement + { + $current = $this_ForeachStatement_6.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getToStatementParserRuleCall_7()); + } + this_ToStatement_7=ruleToStatement + { + $current = $this_ToStatement_7.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getCaseStatementParserRuleCall_8()); + } + this_CaseStatement_8=ruleCaseStatement + { + $current = $this_CaseStatement_8.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getLoopStatementParserRuleCall_9()); + } + this_LoopStatement_9=ruleLoopStatement + { + $current = $this_LoopStatement_9.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getOnStatementParserRuleCall_10()); + } + this_OnStatement_10=ruleOnStatement + { + $current = $this_OnStatement_10.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getWaitStatementParserRuleCall_11()); + } + this_WaitStatement_11=ruleWaitStatement + { + $current = $this_WaitStatement_11.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getReturnStatementParserRuleCall_12()); + } + this_ReturnStatement_12=ruleReturnStatement + { + $current = $this_ReturnStatement_12.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStatementAccess().getBlockStatementParserRuleCall_13()); + } + this_BlockStatement_13=ruleBlockStatement + { + $current = $this_BlockStatement_13.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleBlockStatement +entryRuleBlockStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getBlockStatementRule()); } + iv_ruleBlockStatement=ruleBlockStatement + { $current=$iv_ruleBlockStatement.current; } + EOF; + +// Rule BlockStatement +ruleBlockStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='begin' + { + newLeafNode(otherlv_0, grammarAccess.getBlockStatementAccess().getBeginKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getBlockStatementAccess().getBodyStatementSequenceParserRuleCall_1_0()); + } + lv_body_1_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getBlockStatementRule()); + } + set( + $current, + "body", + lv_body_1_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='end' + { + newLeafNode(otherlv_2, grammarAccess.getBlockStatementAccess().getEndKeyword_2()); + } + ) +; + +// Entry rule entryRuleReturnStatement +entryRuleReturnStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getReturnStatementRule()); } + iv_ruleReturnStatement=ruleReturnStatement + { $current=$iv_ruleReturnStatement.current; } + EOF; + +// Rule ReturnStatement +ruleReturnStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='return' + { + newLeafNode(otherlv_0, grammarAccess.getReturnStatementAccess().getReturnKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getReturnStatementAccess().getExpressionExpressionParserRuleCall_1_0()); + } + lv_expression_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getReturnStatementRule()); + } + set( + $current, + "expression", + lv_expression_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleNullStatement +entryRuleNullStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getNullStatementRule()); } + iv_ruleNullStatement=ruleNullStatement + { $current=$iv_ruleNullStatement.current; } + EOF; + +// Rule NullStatement +ruleNullStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getNullStatementAccess().getNullStatementAction_0(), + $current); + } + ) + otherlv_1='null' + { + newLeafNode(otherlv_1, grammarAccess.getNullStatementAccess().getNullKeyword_1()); + } + ) +; + +// Entry rule entryRuleTaggedStatement +entryRuleTaggedStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTaggedStatementRule()); } + iv_ruleTaggedStatement=ruleTaggedStatement + { $current=$iv_ruleTaggedStatement.current; } + EOF; + +// Rule TaggedStatement +ruleTaggedStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='#' + { + newLeafNode(otherlv_0, grammarAccess.getTaggedStatementAccess().getNumberSignKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getTaggedStatementAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getTaggedStatementRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) + ) +; + +// Entry rule entryRulePatternStatement +entryRulePatternStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPatternStatementRule()); } + iv_rulePatternStatement=rulePatternStatement + { $current=$iv_rulePatternStatement.current; } + EOF; + +// Rule PatternStatement +rulePatternStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternParserRuleCall_0()); + } + this_Pattern_0=rulePattern + { + $current = $this_Pattern_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + otherlv_1=',' + { + newLeafNode(otherlv_1, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_0_1(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_2_0()); + } + lv_patterns_3_0=rulePattern + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "patterns", + lv_patterns_3_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_4=',' + { + newLeafNode(otherlv_4, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_3_1_0()); + } + lv_patterns_5_0=rulePattern + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "patterns", + lv_patterns_5_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_6=':=' + { + newLeafNode(otherlv_6, grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_0_4()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_5_0()); + } + lv_values_7_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "values", + lv_values_7_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_8=',' + { + newLeafNode(otherlv_8, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_6_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_6_1_0()); + } + lv_values_9_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "values", + lv_values_9_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) + | + ( + otherlv_10=':=' + { + newLeafNode(otherlv_10, grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_1_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_1_1(), + $current); + } + ) + ( + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_0_0()); + } + lv_values_12_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "values", + lv_values_12_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_13=',' + { + newLeafNode(otherlv_13, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_1_2_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_1_1_0()); + } + lv_values_14_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "values", + lv_values_14_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) + ) + | + ( + otherlv_15=',' + { + newLeafNode(otherlv_15, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_2_1(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_2_0()); + } + lv_patterns_17_0=rulePattern + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "patterns", + lv_patterns_17_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_18=',' + { + newLeafNode(otherlv_18, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_3_1_0()); + } + lv_patterns_19_0=rulePattern + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "patterns", + lv_patterns_19_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_20=':=' + { + newLeafNode(otherlv_20, grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_2_4()); + } + otherlv_21='any' + { + newLeafNode(otherlv_21, grammarAccess.getPatternStatementAccess().getAnyKeyword_1_2_5()); + } + ( + otherlv_22='where' + { + newLeafNode(otherlv_22, grammarAccess.getPatternStatementAccess().getWhereKeyword_1_2_6_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_2_6_1_0()); + } + lv_exp_23_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + set( + $current, + "exp", + lv_exp_23_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) + | + ( + otherlv_24=':=' + { + newLeafNode(otherlv_24, grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_3_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_3_1(), + $current); + } + ) + otherlv_26='any' + { + newLeafNode(otherlv_26, grammarAccess.getPatternStatementAccess().getAnyKeyword_1_3_2()); + } + ( + otherlv_27='where' + { + newLeafNode(otherlv_27, grammarAccess.getPatternStatementAccess().getWhereKeyword_1_3_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_3_3_1_0()); + } + lv_exp_28_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + set( + $current, + "exp", + lv_exp_28_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) + | + ( + otherlv_29='!' + { + newLeafNode(otherlv_29, grammarAccess.getPatternStatementAccess().getExclamationMarkKeyword_1_4_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getPatternStatementAccess().getSendStatementPortAction_1_4_1(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_2_0()); + } + lv_values_31_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "values", + lv_values_31_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_32=',' + { + newLeafNode(otherlv_32, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_4_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_3_1_0()); + } + lv_values_33_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "values", + lv_values_33_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) + | + ( + otherlv_34='?' + { + newLeafNode(otherlv_34, grammarAccess.getPatternStatementAccess().getQuestionMarkKeyword_1_5_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getPatternStatementAccess().getReceiveStatementPortAction_1_5_1(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_2_0()); + } + lv_patterns_36_0=rulePattern + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "patterns", + lv_patterns_36_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_37=',' + { + newLeafNode(otherlv_37, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_5_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_3_1_0()); + } + lv_patterns_38_0=rulePattern + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + $current, + "patterns", + lv_patterns_38_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ( + otherlv_39='where' + { + newLeafNode(otherlv_39, grammarAccess.getPatternStatementAccess().getWhereKeyword_1_5_4_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_5_4_1_0()); + } + lv_exp_40_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + set( + $current, + "exp", + lv_exp_40_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) + )? + ) +; + +// Entry rule entryRulePattern +entryRulePattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPatternRule()); } + iv_rulePattern=rulePattern + { $current=$iv_rulePattern.current; } + EOF; + +// Rule Pattern +rulePattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternAccess().getAnyPatternParserRuleCall_0()); + } + this_AnyPattern_0=ruleAnyPattern + { + $current = $this_AnyPattern_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternAccess().getIntegerPatternParserRuleCall_1()); + } + this_IntegerPattern_1=ruleIntegerPattern + { + $current = $this_IntegerPattern_1.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternAccess().getConstantPatternParserRuleCall_2()); + } + this_ConstantPattern_2=ruleConstantPattern + { + $current = $this_ConstantPattern_2.current; + afterParserOrEnumRuleCall(); + } + | + ( + otherlv_3='(' + { + newLeafNode(otherlv_3, grammarAccess.getPatternAccess().getLeftParenthesisKeyword_3_0()); + } + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternAccess().getPatternParserRuleCall_3_1()); + } + this_Pattern_4=rulePattern + { + $current = $this_Pattern_4.current; + afterParserOrEnumRuleCall(); + } + otherlv_5=')' + { + newLeafNode(otherlv_5, grammarAccess.getPatternAccess().getRightParenthesisKeyword_3_2()); + } + ) + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternAccess().getIdentifierPatternParserRuleCall_4()); + } + this_IdentifierPattern_6=ruleIdentifierPattern + { + $current = $this_IdentifierPattern_6.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleAnyPattern +entryRuleAnyPattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAnyPatternRule()); } + iv_ruleAnyPattern=ruleAnyPattern + { $current=$iv_ruleAnyPattern.current; } + EOF; + +// Rule AnyPattern +ruleAnyPattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getAnyPatternAccess().getAnyPatternAction_0(), + $current); + } + ) + otherlv_1='any' + { + newLeafNode(otherlv_1, grammarAccess.getAnyPatternAccess().getAnyKeyword_1()); + } + ) +; + +// Entry rule entryRuleConstantPattern +entryRuleConstantPattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getConstantPatternRule()); } + iv_ruleConstantPattern=ruleConstantPattern + { $current=$iv_ruleConstantPattern.current; } + EOF; + +// Rule ConstantPattern +ruleConstantPattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + newCompositeNode(grammarAccess.getConstantPatternAccess().getValueLiteralExpressionParserRuleCall_0()); + } + lv_value_0_0=ruleLiteralExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConstantPatternRule()); + } + set( + $current, + "value", + lv_value_0_0, + "fr.irit.fiacre.xtext.Fiacre.LiteralExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) +; + +// Entry rule entryRuleIntegerPattern +entryRuleIntegerPattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getIntegerPatternRule()); } + iv_ruleIntegerPattern=ruleIntegerPattern + { $current=$iv_ruleIntegerPattern.current; } + EOF; + +// Rule IntegerPattern +ruleIntegerPattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + otherlv_0='+' + { + newLeafNode(otherlv_0, grammarAccess.getIntegerPatternAccess().getPlusSignKeyword_0_0()); + } + | + ( + ( + lv_negative_1_0='-' + { + newLeafNode(lv_negative_1_0, grammarAccess.getIntegerPatternAccess().getNegativeHyphenMinusKeyword_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getIntegerPatternRule()); + } + setWithLastConsumed($current, "negative", true, "-"); + } + ) + ) + ) + ( + ( + lv_value_2_0=RULE_INT + { + newLeafNode(lv_value_2_0, grammarAccess.getIntegerPatternAccess().getValueINTTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getIntegerPatternRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_2_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + } + ) + ) + ) +; + +// Entry rule entryRuleIdentifierPattern +entryRuleIdentifierPattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getIdentifierPatternRule()); } + iv_ruleIdentifierPattern=ruleIdentifierPattern + { $current=$iv_ruleIdentifierPattern.current; } + EOF; + +// Rule IdentifierPattern +ruleIdentifierPattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getIdentifierPatternAccess().getConstructorPatternAction_0_0(), + $current); + } + ) + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getIdentifierPatternRule()); + } + } + otherlv_1=RULE_ID + { + newLeafNode(otherlv_1, grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_0_1_0()); + } + ) + ) + otherlv_2='(' + { + newLeafNode(otherlv_2, grammarAccess.getIdentifierPatternAccess().getLeftParenthesisKeyword_0_2()); + } + ( + ( + ( + { + newCompositeNode(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_0_0()); + } + lv_parameters_3_0=rulePattern + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIdentifierPatternRule()); + } + add( + $current, + "parameters", + lv_parameters_3_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_4=',' + { + newLeafNode(otherlv_4, grammarAccess.getIdentifierPatternAccess().getCommaKeyword_0_3_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_1_1_0()); + } + lv_parameters_5_0=rulePattern + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIdentifierPatternRule()); + } + add( + $current, + "parameters", + lv_parameters_5_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + otherlv_6=')' + { + newLeafNode(otherlv_6, grammarAccess.getIdentifierPatternAccess().getRightParenthesisKeyword_0_4()); + } + ) + | + ( + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getIdentifierPatternRule()); + } + } + otherlv_7=RULE_ID + { + newLeafNode(otherlv_7, grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_1_0_0()); + } + ) + ) + ( + ( + otherlv_8='[' + { + newLeafNode(otherlv_8, grammarAccess.getIdentifierPatternAccess().getLeftSquareBracketKeyword_1_1_0_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getIdentifierPatternAccess().getArrayAccessPatternSourceAction_1_1_0_1(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getIdentifierPatternAccess().getIndexExpressionParserRuleCall_1_1_0_2_0()); + } + lv_index_10_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIdentifierPatternRule()); + } + set( + $current, + "index", + lv_index_10_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_11=']' + { + newLeafNode(otherlv_11, grammarAccess.getIdentifierPatternAccess().getRightSquareBracketKeyword_1_1_0_3()); + } + ) + | + ( + otherlv_12='.' + { + newLeafNode(otherlv_12, grammarAccess.getIdentifierPatternAccess().getFullStopKeyword_1_1_1_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getIdentifierPatternAccess().getRecordAccessPatternSourceAction_1_1_1_1(), + $current); + } + ) + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getIdentifierPatternRule()); + } + } + otherlv_14=RULE_ID + { + newLeafNode(otherlv_14, grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); + } + ) + ) + ) + )* + ) + ) +; + +// Entry rule entryRuleConditionalStatement +entryRuleConditionalStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getConditionalStatementRule()); } + iv_ruleConditionalStatement=ruleConditionalStatement + { $current=$iv_ruleConditionalStatement.current; } + EOF; + +// Rule ConditionalStatement +ruleConditionalStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='if' + { + newLeafNode(otherlv_0, grammarAccess.getConditionalStatementAccess().getIfKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + lv_condition_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConditionalStatementRule()); + } + set( + $current, + "condition", + lv_condition_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='then' + { + newLeafNode(otherlv_2, grammarAccess.getConditionalStatementAccess().getThenKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); + } + lv_then_3_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConditionalStatementRule()); + } + set( + $current, + "then", + lv_then_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getConditionalStatementAccess().getElseifExtendedConditionalStatementParserRuleCall_4_0()); + } + lv_elseif_4_0=ruleExtendedConditionalStatement + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConditionalStatementRule()); + } + add( + $current, + "elseif", + lv_elseif_4_0, + "fr.irit.fiacre.xtext.Fiacre.ExtendedConditionalStatement"); + afterParserOrEnumRuleCall(); + } + ) + )* + ( + otherlv_5='else' + { + newLeafNode(otherlv_5, grammarAccess.getConditionalStatementAccess().getElseKeyword_5_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getConditionalStatementAccess().getElseStatementSequenceParserRuleCall_5_1_0()); + } + lv_else_6_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConditionalStatementRule()); + } + set( + $current, + "else", + lv_else_6_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + otherlv_7='end' + { + newLeafNode(otherlv_7, grammarAccess.getConditionalStatementAccess().getEndKeyword_6()); + } + ( + otherlv_8='if' + { + newLeafNode(otherlv_8, grammarAccess.getConditionalStatementAccess().getIfKeyword_7()); + } + )? + ) +; + +// Entry rule entryRuleExtendedConditionalStatement +entryRuleExtendedConditionalStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExtendedConditionalStatementRule()); } + iv_ruleExtendedConditionalStatement=ruleExtendedConditionalStatement + { $current=$iv_ruleExtendedConditionalStatement.current; } + EOF; + +// Rule ExtendedConditionalStatement +ruleExtendedConditionalStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='elsif' + { + newLeafNode(otherlv_0, grammarAccess.getExtendedConditionalStatementAccess().getElsifKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getExtendedConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + lv_condition_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getExtendedConditionalStatementRule()); + } + set( + $current, + "condition", + lv_condition_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='then' + { + newLeafNode(otherlv_2, grammarAccess.getExtendedConditionalStatementAccess().getThenKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getExtendedConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); + } + lv_then_3_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getExtendedConditionalStatementRule()); + } + set( + $current, + "then", + lv_then_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleSelectStatement +entryRuleSelectStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getSelectStatementRule()); } + iv_ruleSelectStatement=ruleSelectStatement + { $current=$iv_ruleSelectStatement.current; } + EOF; + +// Rule SelectStatement +ruleSelectStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='select' + { + newLeafNode(otherlv_0, grammarAccess.getSelectStatementAccess().getSelectKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSelectStatementAccess().getBodyUnlessStatementParserRuleCall_1_0()); + } + lv_body_1_0=ruleUnlessStatement + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSelectStatementRule()); + } + set( + $current, + "body", + lv_body_1_0, + "fr.irit.fiacre.xtext.Fiacre.UnlessStatement"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_2='|' + { + newLeafNode(otherlv_2, grammarAccess.getSelectStatementAccess().getVerticalLineKeyword_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSelectStatementAccess().getIndexVariableDeclarationParserRuleCall_2_1_0()); + } + lv_index_3_0=ruleVariableDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSelectStatementRule()); + } + set( + $current, + "index", + lv_index_3_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_4='in' + { + newLeafNode(otherlv_4, grammarAccess.getSelectStatementAccess().getInKeyword_2_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSelectStatementAccess().getTypeRangeTypeParserRuleCall_2_3_0()); + } + lv_type_5_0=ruleRangeType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSelectStatementRule()); + } + set( + $current, + "type", + lv_type_5_0, + "fr.irit.fiacre.xtext.Fiacre.RangeType"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + otherlv_6='end' + { + newLeafNode(otherlv_6, grammarAccess.getSelectStatementAccess().getEndKeyword_3()); + } + ( + otherlv_7='select' + { + newLeafNode(otherlv_7, grammarAccess.getSelectStatementAccess().getSelectKeyword_4()); + } + )? + ) +; + +// Entry rule entryRuleWhileStatement +entryRuleWhileStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getWhileStatementRule()); } + iv_ruleWhileStatement=ruleWhileStatement + { $current=$iv_ruleWhileStatement.current; } + EOF; + +// Rule WhileStatement +ruleWhileStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='while' + { + newLeafNode(otherlv_0, grammarAccess.getWhileStatementAccess().getWhileKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getWhileStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + lv_condition_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getWhileStatementRule()); + } + set( + $current, + "condition", + lv_condition_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='do' + { + newLeafNode(otherlv_2, grammarAccess.getWhileStatementAccess().getDoKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getWhileStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); + } + lv_body_3_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getWhileStatementRule()); + } + set( + $current, + "body", + lv_body_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_4='end' + { + newLeafNode(otherlv_4, grammarAccess.getWhileStatementAccess().getEndKeyword_4()); + } + ( + otherlv_5='while' + { + newLeafNode(otherlv_5, grammarAccess.getWhileStatementAccess().getWhileKeyword_5()); + } + )? + ) +; + +// Entry rule entryRuleForeachStatement +entryRuleForeachStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getForeachStatementRule()); } + iv_ruleForeachStatement=ruleForeachStatement + { $current=$iv_ruleForeachStatement.current; } + EOF; + +// Rule ForeachStatement +ruleForeachStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='foreach' + { + newLeafNode(otherlv_0, grammarAccess.getForeachStatementAccess().getForeachKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getForeachStatementAccess().getVariableVariableDeclarationParserRuleCall_1_0()); + } + lv_variable_1_0=ruleVariableDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getForeachStatementRule()); + } + set( + $current, + "variable", + lv_variable_1_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='do' + { + newLeafNode(otherlv_2, grammarAccess.getForeachStatementAccess().getDoKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getForeachStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); + } + lv_body_3_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getForeachStatementRule()); + } + set( + $current, + "body", + lv_body_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_4='end' + { + newLeafNode(otherlv_4, grammarAccess.getForeachStatementAccess().getEndKeyword_4()); + } + ( + otherlv_5='foreach' + { + newLeafNode(otherlv_5, grammarAccess.getForeachStatementAccess().getForeachKeyword_5()); + } + )? + ) +; + +// Entry rule entryRuleToStatement +entryRuleToStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getToStatementRule()); } + iv_ruleToStatement=ruleToStatement + { $current=$iv_ruleToStatement.current; } + EOF; + +// Rule ToStatement +ruleToStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='to' + { + newLeafNode(otherlv_0, grammarAccess.getToStatementAccess().getToKeyword_0()); + } + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getToStatementRule()); + } + } + otherlv_1=RULE_ID + { + newLeafNode(otherlv_1, grammarAccess.getToStatementAccess().getStateStateDeclarationCrossReference_1_0()); + } + ) + ) + ) +; + +// Entry rule entryRuleCaseStatement +entryRuleCaseStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getCaseStatementRule()); } + iv_ruleCaseStatement=ruleCaseStatement + { $current=$iv_ruleCaseStatement.current; } + EOF; + +// Rule CaseStatement +ruleCaseStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='case' + { + newLeafNode(otherlv_0, grammarAccess.getCaseStatementAccess().getCaseKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getCaseStatementAccess().getValueExpressionParserRuleCall_1_0()); + } + lv_value_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCaseStatementRule()); + } + set( + $current, + "value", + lv_value_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='of' + { + newLeafNode(otherlv_2, grammarAccess.getCaseStatementAccess().getOfKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_3_0()); + } + lv_pattern_3_0=rulePattern + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCaseStatementRule()); + } + add( + $current, + "pattern", + lv_pattern_3_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_4='->' + { + newLeafNode(otherlv_4, grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_4()); + } + ( + ( + { + newCompositeNode(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_5_0()); + } + lv_body_5_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCaseStatementRule()); + } + add( + $current, + "body", + lv_body_5_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_6='|' + { + newLeafNode(otherlv_6, grammarAccess.getCaseStatementAccess().getVerticalLineKeyword_6_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_6_1_0()); + } + lv_pattern_7_0=rulePattern + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCaseStatementRule()); + } + add( + $current, + "pattern", + lv_pattern_7_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_8='->' + { + newLeafNode(otherlv_8, grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_6_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_6_3_0()); + } + lv_body_9_0=ruleStatementSequence + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCaseStatementRule()); + } + add( + $current, + "body", + lv_body_9_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_10='end' + { + newLeafNode(otherlv_10, grammarAccess.getCaseStatementAccess().getEndKeyword_7()); + } + ( + otherlv_11='case' + { + newLeafNode(otherlv_11, grammarAccess.getCaseStatementAccess().getCaseKeyword_8()); + } + )? + ) +; + +// Entry rule entryRuleLoopStatement +entryRuleLoopStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLoopStatementRule()); } + iv_ruleLoopStatement=ruleLoopStatement + { $current=$iv_ruleLoopStatement.current; } + EOF; + +// Rule LoopStatement +ruleLoopStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getLoopStatementAccess().getLoopStatementAction_0(), + $current); + } + ) + otherlv_1='loop' + { + newLeafNode(otherlv_1, grammarAccess.getLoopStatementAccess().getLoopKeyword_1()); + } + ) +; + +// Entry rule entryRuleOnStatement +entryRuleOnStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getOnStatementRule()); } + iv_ruleOnStatement=ruleOnStatement + { $current=$iv_ruleOnStatement.current; } + EOF; + +// Rule OnStatement +ruleOnStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='on' + { + newLeafNode(otherlv_0, grammarAccess.getOnStatementAccess().getOnKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getOnStatementAccess().getConditionExpressionParserRuleCall_1_0()); + } + lv_condition_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getOnStatementRule()); + } + set( + $current, + "condition", + lv_condition_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleWaitStatement +entryRuleWaitStatement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getWaitStatementRule()); } + iv_ruleWaitStatement=ruleWaitStatement + { $current=$iv_ruleWaitStatement.current; } + EOF; + +// Rule WaitStatement +ruleWaitStatement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='wait' + { + newLeafNode(otherlv_0, grammarAccess.getWaitStatementAccess().getWaitKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getWaitStatementAccess().getLeftLowerBoundParserRuleCall_1_0()); + } + lv_left_1_0=ruleLowerBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getWaitStatementRule()); + } + set( + $current, + "left", + lv_left_1_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2=',' + { + newLeafNode(otherlv_2, grammarAccess.getWaitStatementAccess().getCommaKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getWaitStatementAccess().getRightUpperBoundParserRuleCall_3_0()); + } + lv_right_3_0=ruleUpperBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getWaitStatementRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleComposition +entryRuleComposition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getCompositionRule()); } + iv_ruleComposition=ruleComposition + { $current=$iv_ruleComposition.current; } + EOF; + +// Rule Composition +ruleComposition returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='par' + { + newLeafNode(otherlv_0, grammarAccess.getCompositionAccess().getParKeyword_0()); + } + ( + ( + ( + { + newCompositeNode(grammarAccess.getCompositionAccess().getGlobalPortSetParserRuleCall_1_0_0()); + } + lv_global_1_0=rulePortSet + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositionRule()); + } + set( + $current, + "global", + lv_global_1_0, + "fr.irit.fiacre.xtext.Fiacre.PortSet"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='in' + { + newLeafNode(otherlv_2, grammarAccess.getCompositionAccess().getInKeyword_1_1()); + } + )? + ( + ( + { + newCompositeNode(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_2_0()); + } + lv_blocks_3_0=ruleBlock + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositionRule()); + } + add( + $current, + "blocks", + lv_blocks_3_0, + "fr.irit.fiacre.xtext.Fiacre.Block"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_4='||' + { + newLeafNode(otherlv_4, grammarAccess.getCompositionAccess().getVerticalLineVerticalLineKeyword_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_3_1_0()); + } + lv_blocks_5_0=ruleBlock + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositionRule()); + } + add( + $current, + "blocks", + lv_blocks_5_0, + "fr.irit.fiacre.xtext.Fiacre.Block"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_6='end' + { + newLeafNode(otherlv_6, grammarAccess.getCompositionAccess().getEndKeyword_4()); + } + ( + otherlv_7='par' + { + newLeafNode(otherlv_7, grammarAccess.getCompositionAccess().getParKeyword_5()); + } + )? + ) +; + +// Entry rule entryRuleBlock +entryRuleBlock returns [EObject current=null]: + { newCompositeNode(grammarAccess.getBlockRule()); } + iv_ruleBlock=ruleBlock + { $current=$iv_ruleBlock.current; } + EOF; + +// Rule Block +ruleBlock returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getBlockAccess().getCompositeBlockParserRuleCall_0()); + } + this_CompositeBlock_0=ruleCompositeBlock + { + $current = $this_CompositeBlock_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getBlockAccess().getInstanceDeclarationParserRuleCall_1()); + } + this_InstanceDeclaration_1=ruleInstanceDeclaration + { + $current = $this_InstanceDeclaration_1.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleCompositeBlock +entryRuleCompositeBlock returns [EObject current=null]: + { newCompositeNode(grammarAccess.getCompositeBlockRule()); } + iv_ruleCompositeBlock=ruleCompositeBlock + { $current=$iv_ruleCompositeBlock.current; } + EOF; + +// Rule CompositeBlock +ruleCompositeBlock returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + ( + { + newCompositeNode(grammarAccess.getCompositeBlockAccess().getLocalPortSetParserRuleCall_0_0_0_0()); + } + lv_local_0_0=rulePortSet + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeBlockRule()); + } + set( + $current, + "local", + lv_local_0_0, + "fr.irit.fiacre.xtext.Fiacre.PortSet"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_1='->' + { + newLeafNode(otherlv_1, grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); + } + ) + | + otherlv_2='->' + { + newLeafNode(otherlv_2, grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); + } + )? + ( + ( + { + newCompositeNode(grammarAccess.getCompositeBlockAccess().getCompositionCompositionParserRuleCall_1_0()); + } + lv_composition_3_0=ruleComposition + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeBlockRule()); + } + set( + $current, + "composition", + lv_composition_3_0, + "fr.irit.fiacre.xtext.Fiacre.Composition"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleInstanceDeclaration +entryRuleInstanceDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getInstanceDeclarationRule()); } + iv_ruleInstanceDeclaration=ruleInstanceDeclaration + { $current=$iv_ruleInstanceDeclaration.current; } + EOF; + +// Rule InstanceDeclaration +ruleInstanceDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + ( + { + newCompositeNode(grammarAccess.getInstanceDeclarationAccess().getLocalPortSetParserRuleCall_0_0_0_0()); + } + lv_local_0_0=rulePortSet + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getInstanceDeclarationRule()); + } + set( + $current, + "local", + lv_local_0_0, + "fr.irit.fiacre.xtext.Fiacre.PortSet"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_1='->' + { + newLeafNode(otherlv_1, grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); + } + ) + | + otherlv_2='->' + { + newLeafNode(otherlv_2, grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); + } + )? + ( + ( + { + newCompositeNode(grammarAccess.getInstanceDeclarationAccess().getInstanceComponentInstanceParserRuleCall_1_0()); + } + lv_instance_3_0=ruleComponentInstance + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getInstanceDeclarationRule()); + } + set( + $current, + "instance", + lv_instance_3_0, + "fr.irit.fiacre.xtext.Fiacre.ComponentInstance"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRulePortSet +entryRulePortSet returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPortSetRule()); } + iv_rulePortSet=rulePortSet + { $current=$iv_rulePortSet.current; } + EOF; + +// Rule PortSet +rulePortSet returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + lv_allPorts_0_0='*' + { + newLeafNode(lv_allPorts_0_0, grammarAccess.getPortSetAccess().getAllPortsAsteriskKeyword_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPortSetRule()); + } + setWithLastConsumed($current, "allPorts", true, "*"); + } + ) + ) + | + ( + ( + ( + { + newCompositeNode(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_0_0()); + } + lv_ports_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPortSetRule()); + } + add( + $current, + "ports", + lv_ports_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_2=',' + { + newLeafNode(otherlv_2, grammarAccess.getPortSetAccess().getCommaKeyword_1_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_1_1_0()); + } + lv_ports_3_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPortSetRule()); + } + add( + $current, + "ports", + lv_ports_3_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) + ) +; + +// Entry rule entryRuleComponentInstance +entryRuleComponentInstance returns [EObject current=null]: + { newCompositeNode(grammarAccess.getComponentInstanceRule()); } + iv_ruleComponentInstance=ruleComponentInstance + { $current=$iv_ruleComponentInstance.current; } + EOF; + +// Rule ComponentInstance +ruleComponentInstance returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getComponentInstanceRule()); + } + } + otherlv_0=RULE_ID + { + newLeafNode(otherlv_0, grammarAccess.getComponentInstanceAccess().getComponentParameterizedDeclarationCrossReference_0_0()); + } + ) + ) + ( + otherlv_1='[' + { + newLeafNode(otherlv_1, grammarAccess.getComponentInstanceAccess().getLeftSquareBracketKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_1_0()); + } + lv_ports_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentInstanceRule()); + } + add( + $current, + "ports", + lv_ports_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getComponentInstanceAccess().getCommaKeyword_1_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_2_1_0()); + } + lv_ports_4_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentInstanceRule()); + } + add( + $current, + "ports", + lv_ports_4_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_5=']' + { + newLeafNode(otherlv_5, grammarAccess.getComponentInstanceAccess().getRightSquareBracketKeyword_1_3()); + } + )? + ( + otherlv_6='(' + { + newLeafNode(otherlv_6, grammarAccess.getComponentInstanceAccess().getLeftParenthesisKeyword_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_1_0()); + } + lv_parameters_7_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentInstanceRule()); + } + add( + $current, + "parameters", + lv_parameters_7_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_8=',' + { + newLeafNode(otherlv_8, grammarAccess.getComponentInstanceAccess().getCommaKeyword_2_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_2_1_0()); + } + lv_parameters_9_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComponentInstanceRule()); + } + add( + $current, + "parameters", + lv_parameters_9_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_10=')' + { + newLeafNode(otherlv_10, grammarAccess.getComponentInstanceAccess().getRightParenthesisKeyword_2_3()); + } + )? + ) +; + +// Entry rule entryRuleExpression +entryRuleExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExpressionRule()); } + iv_ruleExpression=ruleExpression + { $current=$iv_ruleExpression.current; } + EOF; + +// Rule Expression +ruleExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + { + /* */ + } + { + newCompositeNode(grammarAccess.getExpressionAccess().getQuantifiedExpressionParserRuleCall()); + } + this_QuantifiedExpression_0=ruleQuantifiedExpression + { + $current = $this_QuantifiedExpression_0.current; + afterParserOrEnumRuleCall(); + } +; + +// Entry rule entryRuleQuantifiedExpression +entryRuleQuantifiedExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getQuantifiedExpressionRule()); } + iv_ruleQuantifiedExpression=ruleQuantifiedExpression + { $current=$iv_ruleQuantifiedExpression.current; } + EOF; + +// Rule QuantifiedExpression +ruleQuantifiedExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getQuantifiedExpressionAccess().getAllExpressionAction_0_0_0_0(), + $current); + } + ) + otherlv_1='all' + { + newLeafNode(otherlv_1, grammarAccess.getQuantifiedExpressionAccess().getAllKeyword_0_0_0_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getQuantifiedExpressionAccess().getExistsExpressionAction_0_0_1_0(), + $current); + } + ) + otherlv_3='exists' + { + newLeafNode(otherlv_3, grammarAccess.getQuantifiedExpressionAccess().getExistsKeyword_0_0_1_1()); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); + } + lv_index_4_0=ruleVariableDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); + } + set( + $current, + "index", + lv_index_4_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_5='in' + { + newLeafNode(otherlv_5, grammarAccess.getQuantifiedExpressionAccess().getInKeyword_0_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getTypeRangeTypeParserRuleCall_0_2_1_0()); + } + lv_type_6_0=ruleRangeType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); + } + set( + $current, + "type", + lv_type_6_0, + "fr.irit.fiacre.xtext.Fiacre.RangeType"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + otherlv_7='.' + { + newLeafNode(otherlv_7, grammarAccess.getQuantifiedExpressionAccess().getFullStopKeyword_0_3()); + } + ( + ( + { + newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getChildQuantifiedExpressionParserRuleCall_0_4_0()); + } + lv_child_8_0=ruleQuantifiedExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); + } + set( + $current, + "child", + lv_child_8_0, + "fr.irit.fiacre.xtext.Fiacre.QuantifiedExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getConditionalParserRuleCall_1()); + } + this_Conditional_9=ruleConditional + { + $current = $this_Conditional_9.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleConditional +entryRuleConditional returns [EObject current=null]: + { newCompositeNode(grammarAccess.getConditionalRule()); } + iv_ruleConditional=ruleConditional + { $current=$iv_ruleConditional.current; } + EOF; + +// Rule Conditional +ruleConditional returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getConditionalAccess().getDisjunctionParserRuleCall_0()); + } + this_Disjunction_0=ruleDisjunction + { + $current = $this_Disjunction_0.current; + afterParserOrEnumRuleCall(); + } + ( + otherlv_1='?' + { + newLeafNode(otherlv_1, grammarAccess.getConditionalAccess().getQuestionMarkKeyword_1_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getConditionalAccess().getConditionalConditionAction_1_1(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getConditionalAccess().getThenDisjunctionParserRuleCall_1_2_0()); + } + lv_then_3_0=ruleDisjunction + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConditionalRule()); + } + set( + $current, + "then", + lv_then_3_0, + "fr.irit.fiacre.xtext.Fiacre.Disjunction"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_4=':' + { + newLeafNode(otherlv_4, grammarAccess.getConditionalAccess().getColonKeyword_1_3()); + } + ( + ( + { + newCompositeNode(grammarAccess.getConditionalAccess().getElseDisjunctionParserRuleCall_1_4_0()); + } + lv_else_5_0=ruleDisjunction + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConditionalRule()); + } + set( + $current, + "else", + lv_else_5_0, + "fr.irit.fiacre.xtext.Fiacre.Disjunction"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) +; + +// Entry rule entryRuleDisjunction +entryRuleDisjunction returns [EObject current=null]: + { newCompositeNode(grammarAccess.getDisjunctionRule()); } + iv_ruleDisjunction=ruleDisjunction + { $current=$iv_ruleDisjunction.current; } + EOF; + +// Rule Disjunction +ruleDisjunction returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getDisjunctionAccess().getImplicationParserRuleCall_0()); + } + this_Implication_0=ruleImplication + { + $current = $this_Implication_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getDisjunctionAccess().getDisjunctionLeftAction_1_0(), + $current); + } + ) + otherlv_2='or' + { + newLeafNode(otherlv_2, grammarAccess.getDisjunctionAccess().getOrKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getDisjunctionAccess().getRightImplicationParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleImplication + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getDisjunctionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Implication"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleImplication +entryRuleImplication returns [EObject current=null]: + { newCompositeNode(grammarAccess.getImplicationRule()); } + iv_ruleImplication=ruleImplication + { $current=$iv_ruleImplication.current; } + EOF; + +// Rule Implication +ruleImplication returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getImplicationAccess().getConjunctionParserRuleCall_0()); + } + this_Conjunction_0=ruleConjunction + { + $current = $this_Conjunction_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getImplicationAccess().getImplicationLeftAction_1_0(), + $current); + } + ) + otherlv_2='=>' + { + newLeafNode(otherlv_2, grammarAccess.getImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getImplicationAccess().getRightImplicationParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleImplication + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getImplicationRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Implication"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) +; + +// Entry rule entryRuleConjunction +entryRuleConjunction returns [EObject current=null]: + { newCompositeNode(grammarAccess.getConjunctionRule()); } + iv_ruleConjunction=ruleConjunction + { $current=$iv_ruleConjunction.current; } + EOF; + +// Rule Conjunction +ruleConjunction returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getConjunctionAccess().getComparisonParserRuleCall_0()); + } + this_Comparison_0=ruleComparison + { + $current = $this_Comparison_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getConjunctionAccess().getConjunctionLeftAction_1_0(), + $current); + } + ) + otherlv_2='and' + { + newLeafNode(otherlv_2, grammarAccess.getConjunctionAccess().getAndKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getConjunctionAccess().getRightComparisonParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleComparison + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConjunctionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Comparison"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleComparison +entryRuleComparison returns [EObject current=null]: + { newCompositeNode(grammarAccess.getComparisonRule()); } + iv_ruleComparison=ruleComparison + { $current=$iv_ruleComparison.current; } + EOF; + +// Rule Comparison +ruleComparison returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getComparisonAccess().getAdditionParserRuleCall_0()); + } + this_Addition_0=ruleAddition + { + $current = $this_Addition_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonEqualLeftAction_1_0_0_0(), + $current); + } + ) + otherlv_2='=' + { + newLeafNode(otherlv_2, grammarAccess.getComparisonAccess().getEqualsSignKeyword_1_0_0_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonNotEqualLeftAction_1_0_1_0(), + $current); + } + ) + otherlv_4='<>' + { + newLeafNode(otherlv_4, grammarAccess.getComparisonAccess().getLessThanSignGreaterThanSignKeyword_1_0_1_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonLesserLeftAction_1_0_2_0(), + $current); + } + ) + otherlv_6='<' + { + newLeafNode(otherlv_6, grammarAccess.getComparisonAccess().getLessThanSignKeyword_1_0_2_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonLesserEqualLeftAction_1_0_3_0(), + $current); + } + ) + otherlv_8='<=' + { + newLeafNode(otherlv_8, grammarAccess.getComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_3_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonGreaterLeftAction_1_0_4_0(), + $current); + } + ) + otherlv_10='>' + { + newLeafNode(otherlv_10, grammarAccess.getComparisonAccess().getGreaterThanSignKeyword_1_0_4_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonGreaterEqualLeftAction_1_0_5_0(), + $current); + } + ) + otherlv_12='>=' + { + newLeafNode(otherlv_12, grammarAccess.getComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_5_1()); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0()); + } + lv_right_13_0=ruleAddition + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComparisonRule()); + } + set( + $current, + "right", + lv_right_13_0, + "fr.irit.fiacre.xtext.Fiacre.Addition"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) +; + +// Entry rule entryRuleAddition +entryRuleAddition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAdditionRule()); } + iv_ruleAddition=ruleAddition + { $current=$iv_ruleAddition.current; } + EOF; + +// Rule Addition +ruleAddition returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getAdditionAccess().getSubstractionParserRuleCall_0()); + } + this_Substraction_0=ruleSubstraction + { + $current = $this_Substraction_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getAdditionAccess().getAdditionLeftAction_1_0(), + $current); + } + ) + otherlv_2='+' + { + newLeafNode(otherlv_2, grammarAccess.getAdditionAccess().getPlusSignKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAdditionAccess().getRightSubstractionParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleSubstraction + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAdditionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Substraction"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleSubstraction +entryRuleSubstraction returns [EObject current=null]: + { newCompositeNode(grammarAccess.getSubstractionRule()); } + iv_ruleSubstraction=ruleSubstraction + { $current=$iv_ruleSubstraction.current; } + EOF; + +// Rule Substraction +ruleSubstraction returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getSubstractionAccess().getMultiplicationParserRuleCall_0()); + } + this_Multiplication_0=ruleMultiplication + { + $current = $this_Multiplication_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getSubstractionAccess().getSubstractionLeftAction_1_0(), + $current); + } + ) + otherlv_2='-' + { + newLeafNode(otherlv_2, grammarAccess.getSubstractionAccess().getHyphenMinusKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSubstractionAccess().getRightMultiplicationParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleMultiplication + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSubstractionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Multiplication"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleMultiplication +entryRuleMultiplication returns [EObject current=null]: + { newCompositeNode(grammarAccess.getMultiplicationRule()); } + iv_ruleMultiplication=ruleMultiplication + { $current=$iv_ruleMultiplication.current; } + EOF; + +// Rule Multiplication +ruleMultiplication returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getMultiplicationAccess().getDivisionParserRuleCall_0()); + } + this_Division_0=ruleDivision + { + $current = $this_Division_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getMultiplicationAccess().getMultiplicationLeftAction_1_0(), + $current); + } + ) + otherlv_2='*' + { + newLeafNode(otherlv_2, grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getMultiplicationAccess().getRightDivisionParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleDivision + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getMultiplicationRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Division"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleDivision +entryRuleDivision returns [EObject current=null]: + { newCompositeNode(grammarAccess.getDivisionRule()); } + iv_ruleDivision=ruleDivision + { $current=$iv_ruleDivision.current; } + EOF; + +// Rule Division +ruleDivision returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getDivisionAccess().getModuloParserRuleCall_0()); + } + this_Modulo_0=ruleModulo + { + $current = $this_Modulo_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getDivisionAccess().getDivisionLeftAction_1_0(), + $current); + } + ) + otherlv_2='/' + { + newLeafNode(otherlv_2, grammarAccess.getDivisionAccess().getSolidusKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getDivisionAccess().getRightModuloParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleModulo + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getDivisionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Modulo"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleModulo +entryRuleModulo returns [EObject current=null]: + { newCompositeNode(grammarAccess.getModuloRule()); } + iv_ruleModulo=ruleModulo + { $current=$iv_ruleModulo.current; } + EOF; + +// Rule Modulo +ruleModulo returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getModuloAccess().getUnaryExpressionParserRuleCall_0()); + } + this_UnaryExpression_0=ruleUnaryExpression + { + $current = $this_UnaryExpression_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getModuloAccess().getModuloLeftAction_1_0(), + $current); + } + ) + otherlv_2='%' + { + newLeafNode(otherlv_2, grammarAccess.getModuloAccess().getPercentSignKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getModuloAccess().getRightUnaryExpressionParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleUnaryExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getModuloRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.UnaryExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleUnaryExpression +entryRuleUnaryExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUnaryExpressionRule()); } + iv_ruleUnaryExpression=ruleUnaryExpression + { $current=$iv_ruleUnaryExpression.current; } + EOF; + +// Rule UnaryExpression +ruleUnaryExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryPlusExpressionAction_0_0_0_0(), + $current); + } + ) + otherlv_1='+' + { + newLeafNode(otherlv_1, grammarAccess.getUnaryExpressionAccess().getPlusSignKeyword_0_0_0_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryMinusExpressionAction_0_0_1_0(), + $current); + } + ) + otherlv_3='-' + { + newLeafNode(otherlv_3, grammarAccess.getUnaryExpressionAccess().getHyphenMinusKeyword_0_0_1_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryNegationExpressionAction_0_0_2_0(), + $current); + } + ) + otherlv_5='not' + { + newLeafNode(otherlv_5, grammarAccess.getUnaryExpressionAccess().getNotKeyword_0_0_2_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryFirstExpressionAction_0_0_3_0(), + $current); + } + ) + otherlv_7='first' + { + newLeafNode(otherlv_7, grammarAccess.getUnaryExpressionAccess().getFirstKeyword_0_0_3_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryLengthExpressionAction_0_0_4_0(), + $current); + } + ) + otherlv_9='length' + { + newLeafNode(otherlv_9, grammarAccess.getUnaryExpressionAccess().getLengthKeyword_0_0_4_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryCoerceExpressionAction_0_0_5_0(), + $current); + } + ) + otherlv_11='$' + { + newLeafNode(otherlv_11, grammarAccess.getUnaryExpressionAccess().getDollarSignKeyword_0_0_5_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryFullExpressionAction_0_0_6_0(), + $current); + } + ) + otherlv_13='full' + { + newLeafNode(otherlv_13, grammarAccess.getUnaryExpressionAccess().getFullKeyword_0_0_6_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryDeQueueExpressionAction_0_0_7_0(), + $current); + } + ) + otherlv_15='dequeue' + { + newLeafNode(otherlv_15, grammarAccess.getUnaryExpressionAccess().getDequeueKeyword_0_0_7_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryEmptyExpressionAction_0_0_8_0(), + $current); + } + ) + otherlv_17='empty' + { + newLeafNode(otherlv_17, grammarAccess.getUnaryExpressionAccess().getEmptyKeyword_0_0_8_1()); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0()); + } + lv_child_18_0=ruleUnaryExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule()); + } + set( + $current, + "child", + lv_child_18_0, + "fr.irit.fiacre.xtext.Fiacre.UnaryExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getProjectionParserRuleCall_1()); + } + this_Projection_19=ruleProjection + { + $current = $this_Projection_19.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleProjection +entryRuleProjection returns [EObject current=null]: + { newCompositeNode(grammarAccess.getProjectionRule()); } + iv_ruleProjection=ruleProjection + { $current=$iv_ruleProjection.current; } + EOF; + +// Rule Projection +ruleProjection returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getProjectionAccess().getAtomicExpressionParserRuleCall_0()); + } + this_AtomicExpression_0=ruleAtomicExpression + { + $current = $this_AtomicExpression_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getProjectionAccess().getProjectionChannelAction_1_0(), + $current); + } + ) + otherlv_2='^' + { + newLeafNode(otherlv_2, grammarAccess.getProjectionAccess().getCircumflexAccentKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getProjectionAccess().getFieldAtomicExpressionParserRuleCall_1_2_0()); + } + lv_field_3_0=ruleAtomicExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProjectionRule()); + } + set( + $current, + "field", + lv_field_3_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) +; + +// Entry rule entryRuleAtomicExpression +entryRuleAtomicExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAtomicExpressionRule()); } + iv_ruleAtomicExpression=ruleAtomicExpression + { $current=$iv_ruleAtomicExpression.current; } + EOF; + +// Rule AtomicExpression +ruleAtomicExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getIdentifierExpressionParserRuleCall_0()); + } + this_IdentifierExpression_0=ruleIdentifierExpression + { + $current = $this_IdentifierExpression_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getReferenceExpressionParserRuleCall_1()); + } + this_ReferenceExpression_1=ruleReferenceExpression + { + $current = $this_ReferenceExpression_1.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getLiteralExpressionParserRuleCall_2()); + } + this_LiteralExpression_2=ruleLiteralExpression + { + $current = $this_LiteralExpression_2.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getRecordExpressionParserRuleCall_3()); + } + this_RecordExpression_3=ruleRecordExpression + { + $current = $this_RecordExpression_3.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getArrayExpressionParserRuleCall_4()); + } + this_ArrayExpression_4=ruleArrayExpression + { + $current = $this_ArrayExpression_4.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getQueueExpressionParserRuleCall_5()); + } + this_QueueExpression_5=ruleQueueExpression + { + $current = $this_QueueExpression_5.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getEnqueueExpressionParserRuleCall_6()); + } + this_EnqueueExpression_6=ruleEnqueueExpression + { + $current = $this_EnqueueExpression_6.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getAppendExpressionParserRuleCall_7()); + } + this_AppendExpression_7=ruleAppendExpression + { + $current = $this_AppendExpression_7.current; + afterParserOrEnumRuleCall(); + } + | + ( + otherlv_8='(' + { + newLeafNode(otherlv_8, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_8_0()); + } + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_8_1()); + } + this_Expression_9=ruleExpression + { + $current = $this_Expression_9.current; + afterParserOrEnumRuleCall(); + } + otherlv_10=')' + { + newLeafNode(otherlv_10, grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_8_2()); + } + ) + ) +; + +// Entry rule entryRuleReferenceExpression +entryRuleReferenceExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getReferenceExpressionRule()); } + iv_ruleReferenceExpression=ruleReferenceExpression + { $current=$iv_ruleReferenceExpression.current; } + EOF; + +// Rule ReferenceExpression +ruleReferenceExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='&' + { + newLeafNode(otherlv_0, grammarAccess.getReferenceExpressionAccess().getAmpersandKeyword_0()); + } + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getReferenceExpressionRule()); + } + } + otherlv_1=RULE_ID + { + newLeafNode(otherlv_1, grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseCrossReference_1_0()); + } + ) + ) + ) +; + +// Entry rule entryRuleIdentifierExpression +entryRuleIdentifierExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getIdentifierExpressionRule()); } + iv_ruleIdentifierExpression=ruleIdentifierExpression + { $current=$iv_ruleIdentifierExpression.current; } + EOF; + +// Rule IdentifierExpression +ruleIdentifierExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getIdentifierExpressionAccess().getConstructionExpressionAction_0_0(), + $current); + } + ) + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getIdentifierExpressionRule()); + } + } + otherlv_1=RULE_ID + { + newLeafNode(otherlv_1, grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_0_1_0()); + } + ) + ) + otherlv_2='(' + { + newLeafNode(otherlv_2, grammarAccess.getIdentifierExpressionAccess().getLeftParenthesisKeyword_0_2()); + } + ( + ( + ( + { + newCompositeNode(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_0_0()); + } + lv_parameters_3_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIdentifierExpressionRule()); + } + add( + $current, + "parameters", + lv_parameters_3_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_4=',' + { + newLeafNode(otherlv_4, grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_0_3_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_1_1_0()); + } + lv_parameters_5_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIdentifierExpressionRule()); + } + add( + $current, + "parameters", + lv_parameters_5_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + otherlv_6=')' + { + newLeafNode(otherlv_6, grammarAccess.getIdentifierExpressionAccess().getRightParenthesisKeyword_0_4()); + } + ) + | + ( + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getIdentifierExpressionRule()); + } + } + otherlv_7=RULE_ID + { + newLeafNode(otherlv_7, grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_1_0_0()); + } + ) + ) + ( + ( + otherlv_8='[' + { + newLeafNode(otherlv_8, grammarAccess.getIdentifierExpressionAccess().getLeftSquareBracketKeyword_1_1_0_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getIdentifierExpressionAccess().getArrayAccessExpressionChildAction_1_1_0_1(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_2_0()); + } + lv_indexes_10_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIdentifierExpressionRule()); + } + add( + $current, + "indexes", + lv_indexes_10_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_11=',' + { + newLeafNode(otherlv_11, grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_1_1_0_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_3_1_0()); + } + lv_indexes_12_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIdentifierExpressionRule()); + } + add( + $current, + "indexes", + lv_indexes_12_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_13=']' + { + newLeafNode(otherlv_13, grammarAccess.getIdentifierExpressionAccess().getRightSquareBracketKeyword_1_1_0_4()); + } + ) + | + ( + otherlv_14='.' + { + newLeafNode(otherlv_14, grammarAccess.getIdentifierExpressionAccess().getFullStopKeyword_1_1_1_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getIdentifierExpressionAccess().getRecordAccessExpressionChildAction_1_1_1_1(), + $current); + } + ) + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getIdentifierExpressionRule()); + } + } + otherlv_16=RULE_ID + { + newLeafNode(otherlv_16, grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); + } + ) + ) + ) + )* + ) + ) +; + +// Entry rule entryRuleRecordExpression +entryRuleRecordExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getRecordExpressionRule()); } + iv_ruleRecordExpression=ruleRecordExpression + { $current=$iv_ruleRecordExpression.current; } + EOF; + +// Rule RecordExpression +ruleRecordExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='{' + { + newLeafNode(otherlv_0, grammarAccess.getRecordExpressionAccess().getLeftCurlyBracketKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_1_0()); + } + lv_fields_1_0=ruleFieldExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRecordExpressionRule()); + } + add( + $current, + "fields", + lv_fields_1_0, + "fr.irit.fiacre.xtext.Fiacre.FieldExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_2=',' + { + newLeafNode(otherlv_2, grammarAccess.getRecordExpressionAccess().getCommaKeyword_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_2_1_0()); + } + lv_fields_3_0=ruleFieldExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRecordExpressionRule()); + } + add( + $current, + "fields", + lv_fields_3_0, + "fr.irit.fiacre.xtext.Fiacre.FieldExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_4='}' + { + newLeafNode(otherlv_4, grammarAccess.getRecordExpressionAccess().getRightCurlyBracketKeyword_3()); + } + ) +; + +// Entry rule entryRuleFieldExpression +entryRuleFieldExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getFieldExpressionRule()); } + iv_ruleFieldExpression=ruleFieldExpression + { $current=$iv_ruleFieldExpression.current; } + EOF; + +// Rule FieldExpression +ruleFieldExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFieldExpressionRule()); + } + } + otherlv_0=RULE_ID + { + newLeafNode(otherlv_0, grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseCrossReference_0_0()); + } + ) + ) + otherlv_1='=' + { + newLeafNode(otherlv_1, grammarAccess.getFieldExpressionAccess().getEqualsSignKeyword_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getFieldExpressionAccess().getValueExpressionParserRuleCall_2_0()); + } + lv_value_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getFieldExpressionRule()); + } + set( + $current, + "value", + lv_value_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleArrayExpression +entryRuleArrayExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getArrayExpressionRule()); } + iv_ruleArrayExpression=ruleArrayExpression + { $current=$iv_ruleArrayExpression.current; } + EOF; + +// Rule ArrayExpression +ruleArrayExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getArrayExpressionAccess().getArrayExpressionAction_0(), + $current); + } + ) + otherlv_1='[' + { + newLeafNode(otherlv_1, grammarAccess.getArrayExpressionAccess().getLeftSquareBracketKeyword_1()); + } + ( + ( + ( + { + newCompositeNode(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); + } + lv_values_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getArrayExpressionRule()); + } + add( + $current, + "values", + lv_values_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getArrayExpressionAccess().getCommaKeyword_2_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); + } + lv_values_4_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getArrayExpressionRule()); + } + add( + $current, + "values", + lv_values_4_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + otherlv_5=']' + { + newLeafNode(otherlv_5, grammarAccess.getArrayExpressionAccess().getRightSquareBracketKeyword_3()); + } + ) +; + +// Entry rule entryRuleQueueExpression +entryRuleQueueExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getQueueExpressionRule()); } + iv_ruleQueueExpression=ruleQueueExpression + { $current=$iv_ruleQueueExpression.current; } + EOF; + +// Rule QueueExpression +ruleQueueExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getQueueExpressionAccess().getQueueExpressionAction_0(), + $current); + } + ) + otherlv_1='{|' + { + newLeafNode(otherlv_1, grammarAccess.getQueueExpressionAccess().getLeftCurlyBracketVerticalLineKeyword_1()); + } + ( + ( + ( + { + newCompositeNode(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); + } + lv_values_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getQueueExpressionRule()); + } + add( + $current, + "values", + lv_values_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getQueueExpressionAccess().getCommaKeyword_2_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); + } + lv_values_4_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getQueueExpressionRule()); + } + add( + $current, + "values", + lv_values_4_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + otherlv_5='|}' + { + newLeafNode(otherlv_5, grammarAccess.getQueueExpressionAccess().getVerticalLineRightCurlyBracketKeyword_3()); + } + ) +; + +// Entry rule entryRuleEnqueueExpression +entryRuleEnqueueExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getEnqueueExpressionRule()); } + iv_ruleEnqueueExpression=ruleEnqueueExpression + { $current=$iv_ruleEnqueueExpression.current; } + EOF; + +// Rule EnqueueExpression +ruleEnqueueExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='enqueue' + { + newLeafNode(otherlv_0, grammarAccess.getEnqueueExpressionAccess().getEnqueueKeyword_0()); + } + otherlv_1='(' + { + newLeafNode(otherlv_1, grammarAccess.getEnqueueExpressionAccess().getLeftParenthesisKeyword_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getEnqueueExpressionAccess().getElementExpressionParserRuleCall_2_0()); + } + lv_element_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getEnqueueExpressionRule()); + } + set( + $current, + "element", + lv_element_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getEnqueueExpressionAccess().getCommaKeyword_3()); + } + ( + ( + { + newCompositeNode(grammarAccess.getEnqueueExpressionAccess().getQueueExpressionParserRuleCall_4_0()); + } + lv_queue_4_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getEnqueueExpressionRule()); + } + set( + $current, + "queue", + lv_queue_4_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_5=')' + { + newLeafNode(otherlv_5, grammarAccess.getEnqueueExpressionAccess().getRightParenthesisKeyword_5()); + } + ) +; + +// Entry rule entryRuleAppendExpression +entryRuleAppendExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAppendExpressionRule()); } + iv_ruleAppendExpression=ruleAppendExpression + { $current=$iv_ruleAppendExpression.current; } + EOF; + +// Rule AppendExpression +ruleAppendExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='append' + { + newLeafNode(otherlv_0, grammarAccess.getAppendExpressionAccess().getAppendKeyword_0()); + } + otherlv_1='(' + { + newLeafNode(otherlv_1, grammarAccess.getAppendExpressionAccess().getLeftParenthesisKeyword_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAppendExpressionAccess().getLeftExpressionParserRuleCall_2_0()); + } + lv_left_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAppendExpressionRule()); + } + set( + $current, + "left", + lv_left_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getAppendExpressionAccess().getCommaKeyword_3()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAppendExpressionAccess().getRightExpressionParserRuleCall_4_0()); + } + lv_right_4_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAppendExpressionRule()); + } + set( + $current, + "right", + lv_right_4_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_5=')' + { + newLeafNode(otherlv_5, grammarAccess.getAppendExpressionAccess().getRightParenthesisKeyword_5()); + } + ) +; + +// Entry rule entryRuleLiteralExpression +entryRuleLiteralExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLiteralExpressionRule()); } + iv_ruleLiteralExpression=ruleLiteralExpression + { $current=$iv_ruleLiteralExpression.current; } + EOF; + +// Rule LiteralExpression +ruleLiteralExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getLiteralExpressionAccess().getBooleanLiteralParserRuleCall_0()); + } + this_BooleanLiteral_0=ruleBooleanLiteral + { + $current = $this_BooleanLiteral_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getLiteralExpressionAccess().getNaturalLiteralParserRuleCall_1()); + } + this_NaturalLiteral_1=ruleNaturalLiteral + { + $current = $this_NaturalLiteral_1.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleBooleanLiteral +entryRuleBooleanLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getBooleanLiteralRule()); } + iv_ruleBooleanLiteral=ruleBooleanLiteral + { $current=$iv_ruleBooleanLiteral.current; } + EOF; + +// Rule BooleanLiteral +ruleBooleanLiteral returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getBooleanLiteralAccess().getTrueLiteralAction_0_0(), + $current); + } + ) + otherlv_1='true' + { + newLeafNode(otherlv_1, grammarAccess.getBooleanLiteralAccess().getTrueKeyword_0_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getBooleanLiteralAccess().getFalseLiteralAction_1_0(), + $current); + } + ) + otherlv_3='false' + { + newLeafNode(otherlv_3, grammarAccess.getBooleanLiteralAccess().getFalseKeyword_1_1()); + } + ) + ) +; + +// Entry rule entryRuleNaturalLiteral +entryRuleNaturalLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getNaturalLiteralRule()); } + iv_ruleNaturalLiteral=ruleNaturalLiteral + { $current=$iv_ruleNaturalLiteral.current; } + EOF; + +// Rule NaturalLiteral +ruleNaturalLiteral returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + lv_value_0_0=RULE_INT + { + newLeafNode(lv_value_0_0, grammarAccess.getNaturalLiteralAccess().getValueINTTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getNaturalLiteralRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_0_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + } + ) + ) +; + +// Entry rule entryRuleLowerBound +entryRuleLowerBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLowerBoundRule()); } + iv_ruleLowerBound=ruleLowerBound + { $current=$iv_ruleLowerBound.current; } + EOF; + +// Rule LowerBound +ruleLowerBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getLowerBoundAccess().getNaturalLowerBoundParserRuleCall_0()); + } + this_NaturalLowerBound_0=ruleNaturalLowerBound + { + $current = $this_NaturalLowerBound_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getLowerBoundAccess().getDecimalLowerBoundParserRuleCall_1()); + } + this_DecimalLowerBound_1=ruleDecimalLowerBound + { + $current = $this_DecimalLowerBound_1.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getLowerBoundAccess().getVariableLowerBoundParserRuleCall_2()); + } + this_VariableLowerBound_2=ruleVariableLowerBound + { + $current = $this_VariableLowerBound_2.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleUpperBound +entryRuleUpperBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUpperBoundRule()); } + iv_ruleUpperBound=ruleUpperBound + { $current=$iv_ruleUpperBound.current; } + EOF; + +// Rule UpperBound +ruleUpperBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getUpperBoundAccess().getNaturalUpperBoundParserRuleCall_0()); + } + this_NaturalUpperBound_0=ruleNaturalUpperBound + { + $current = $this_NaturalUpperBound_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getUpperBoundAccess().getDecimalUpperBoundParserRuleCall_1()); + } + this_DecimalUpperBound_1=ruleDecimalUpperBound + { + $current = $this_DecimalUpperBound_1.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getUpperBoundAccess().getVariableUpperBoundParserRuleCall_2()); + } + this_VariableUpperBound_2=ruleVariableUpperBound + { + $current = $this_VariableUpperBound_2.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getUpperBoundAccess().getInfiniteUpperBoundParserRuleCall_3()); + } + this_InfiniteUpperBound_3=ruleInfiniteUpperBound + { + $current = $this_InfiniteUpperBound_3.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleNaturalLowerBound +entryRuleNaturalLowerBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getNaturalLowerBoundRule()); } + iv_ruleNaturalLowerBound=ruleNaturalLowerBound + { $current=$iv_ruleNaturalLowerBound.current; } + EOF; + +// Rule NaturalLowerBound +ruleNaturalLowerBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + lv_left_0_0='[' + { + newLeafNode(lv_left_0_0, grammarAccess.getNaturalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getNaturalLowerBoundRule()); + } + setWithLastConsumed($current, "left", true, "["); + } + ) + ) + | + ( + ( + lv_right_1_0=']' + { + newLeafNode(lv_right_1_0, grammarAccess.getNaturalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getNaturalLowerBoundRule()); + } + setWithLastConsumed($current, "right", true, "]"); + } + ) + ) + ) + ( + ( + lv_value_2_0=RULE_INT + { + newLeafNode(lv_value_2_0, grammarAccess.getNaturalLowerBoundAccess().getValueINTTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getNaturalLowerBoundRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_2_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + } + ) + ) + ) +; + +// Entry rule entryRuleNaturalUpperBound +entryRuleNaturalUpperBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getNaturalUpperBoundRule()); } + iv_ruleNaturalUpperBound=ruleNaturalUpperBound + { $current=$iv_ruleNaturalUpperBound.current; } + EOF; + +// Rule NaturalUpperBound +ruleNaturalUpperBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + lv_value_0_0=RULE_INT + { + newLeafNode(lv_value_0_0, grammarAccess.getNaturalUpperBoundAccess().getValueINTTerminalRuleCall_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getNaturalUpperBoundRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_0_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + } + ) + ) + ( + ( + ( + lv_left_1_0='[' + { + newLeafNode(lv_left_1_0, grammarAccess.getNaturalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getNaturalUpperBoundRule()); + } + setWithLastConsumed($current, "left", true, "["); + } + ) + ) + | + ( + ( + lv_right_2_0=']' + { + newLeafNode(lv_right_2_0, grammarAccess.getNaturalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getNaturalUpperBoundRule()); + } + setWithLastConsumed($current, "right", true, "]"); + } + ) + ) + ) + ) +; + +// Entry rule entryRuleDecimalLowerBound +entryRuleDecimalLowerBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getDecimalLowerBoundRule()); } + iv_ruleDecimalLowerBound=ruleDecimalLowerBound + { $current=$iv_ruleDecimalLowerBound.current; } + EOF; + +// Rule DecimalLowerBound +ruleDecimalLowerBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + lv_left_0_0='[' + { + newLeafNode(lv_left_0_0, grammarAccess.getDecimalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getDecimalLowerBoundRule()); + } + setWithLastConsumed($current, "left", true, "["); + } + ) + ) + | + ( + ( + lv_right_1_0=']' + { + newLeafNode(lv_right_1_0, grammarAccess.getDecimalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getDecimalLowerBoundRule()); + } + setWithLastConsumed($current, "right", true, "]"); + } + ) + ) + ) + ( + ( + lv_value_2_0=RULE_FLT + { + newLeafNode(lv_value_2_0, grammarAccess.getDecimalLowerBoundAccess().getValueFLTTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getDecimalLowerBoundRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_2_0, + "fr.irit.fiacre.xtext.Fiacre.FLT"); + } + ) + ) + ) +; + +// Entry rule entryRuleDecimalUpperBound +entryRuleDecimalUpperBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getDecimalUpperBoundRule()); } + iv_ruleDecimalUpperBound=ruleDecimalUpperBound + { $current=$iv_ruleDecimalUpperBound.current; } + EOF; + +// Rule DecimalUpperBound +ruleDecimalUpperBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + lv_value_0_0=RULE_FLT + { + newLeafNode(lv_value_0_0, grammarAccess.getDecimalUpperBoundAccess().getValueFLTTerminalRuleCall_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getDecimalUpperBoundRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_0_0, + "fr.irit.fiacre.xtext.Fiacre.FLT"); + } + ) + ) + ( + ( + ( + lv_left_1_0='[' + { + newLeafNode(lv_left_1_0, grammarAccess.getDecimalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getDecimalUpperBoundRule()); + } + setWithLastConsumed($current, "left", true, "["); + } + ) + ) + | + ( + ( + lv_right_2_0=']' + { + newLeafNode(lv_right_2_0, grammarAccess.getDecimalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getDecimalUpperBoundRule()); + } + setWithLastConsumed($current, "right", true, "]"); + } + ) + ) + ) + ) +; + +// Entry rule entryRuleVariableLowerBound +entryRuleVariableLowerBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getVariableLowerBoundRule()); } + iv_ruleVariableLowerBound=ruleVariableLowerBound + { $current=$iv_ruleVariableLowerBound.current; } + EOF; + +// Rule VariableLowerBound +ruleVariableLowerBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + lv_left_0_0='[' + { + newLeafNode(lv_left_0_0, grammarAccess.getVariableLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVariableLowerBoundRule()); + } + setWithLastConsumed($current, "left", true, "["); + } + ) + ) + | + ( + ( + lv_right_1_0=']' + { + newLeafNode(lv_right_1_0, grammarAccess.getVariableLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVariableLowerBoundRule()); + } + setWithLastConsumed($current, "right", true, "]"); + } + ) + ) + ) + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVariableLowerBoundRule()); + } + } + otherlv_2=RULE_ID + { + newLeafNode(otherlv_2, grammarAccess.getVariableLowerBoundAccess().getVariableBoundDeclarationUseCrossReference_1_0()); + } + ) + ) + ) +; + +// Entry rule entryRuleVariableUpperBound +entryRuleVariableUpperBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getVariableUpperBoundRule()); } + iv_ruleVariableUpperBound=ruleVariableUpperBound + { $current=$iv_ruleVariableUpperBound.current; } + EOF; + +// Rule VariableUpperBound +ruleVariableUpperBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVariableUpperBoundRule()); + } + } + otherlv_0=RULE_ID + { + newLeafNode(otherlv_0, grammarAccess.getVariableUpperBoundAccess().getVariableBoundDeclarationUseCrossReference_0_0()); + } + ) + ) + ( + ( + ( + lv_left_1_0='[' + { + newLeafNode(lv_left_1_0, grammarAccess.getVariableUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVariableUpperBoundRule()); + } + setWithLastConsumed($current, "left", true, "["); + } + ) + ) + | + ( + ( + lv_right_2_0=']' + { + newLeafNode(lv_right_2_0, grammarAccess.getVariableUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVariableUpperBoundRule()); + } + setWithLastConsumed($current, "right", true, "]"); + } + ) + ) + ) + ) +; + +// Entry rule entryRuleInfiniteUpperBound +entryRuleInfiniteUpperBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getInfiniteUpperBoundRule()); } + iv_ruleInfiniteUpperBound=ruleInfiniteUpperBound + { $current=$iv_ruleInfiniteUpperBound.current; } + EOF; + +// Rule InfiniteUpperBound +ruleInfiniteUpperBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getInfiniteUpperBoundAccess().getInfiniteUpperBoundAction_0(), + $current); + } + ) + otherlv_1='...' + { + newLeafNode(otherlv_1, grammarAccess.getInfiniteUpperBoundAccess().getFullStopFullStopFullStopKeyword_1()); + } + otherlv_2='[' + { + newLeafNode(otherlv_2, grammarAccess.getInfiniteUpperBoundAccess().getLeftSquareBracketKeyword_2()); + } + ) +; + +// Entry rule entryRuleRequirement +entryRuleRequirement returns [EObject current=null]: + { newCompositeNode(grammarAccess.getRequirementRule()); } + iv_ruleRequirement=ruleRequirement + { $current=$iv_ruleRequirement.current; } + EOF; + +// Rule Requirement +ruleRequirement returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='assert' + { + newLeafNode(otherlv_0, grammarAccess.getRequirementAccess().getAssertKeyword_0()); + } + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRequirementRule()); + } + } + otherlv_1=RULE_ID + { + newLeafNode(otherlv_1, grammarAccess.getRequirementAccess().getPropertyPropertyDeclarationCrossReference_1_0()); + } + ) + ) + ( + otherlv_2='-true' + { + newLeafNode(otherlv_2, grammarAccess.getRequirementAccess().getTrueKeyword_2_0()); + } + ( + ( + lv_positive_3_0=RULE_STRING + { + newLeafNode(lv_positive_3_0, grammarAccess.getRequirementAccess().getPositiveSTRINGTerminalRuleCall_2_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRequirementRule()); + } + setWithLastConsumed( + $current, + "positive", + lv_positive_3_0, + "org.eclipse.xtext.common.Terminals.STRING"); + } + ) + ) + )? + ( + otherlv_4='-false' + { + newLeafNode(otherlv_4, grammarAccess.getRequirementAccess().getFalseKeyword_3_0()); + } + ( + ( + lv_negative_5_0=RULE_STRING + { + newLeafNode(lv_negative_5_0, grammarAccess.getRequirementAccess().getNegativeSTRINGTerminalRuleCall_3_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRequirementRule()); + } + setWithLastConsumed( + $current, + "negative", + lv_negative_5_0, + "org.eclipse.xtext.common.Terminals.STRING"); + } + ) + ) + )? + ) +; + +// Entry rule entryRulePropertyDeclaration +entryRulePropertyDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPropertyDeclarationRule()); } + iv_rulePropertyDeclaration=rulePropertyDeclaration + { $current=$iv_rulePropertyDeclaration.current; } + EOF; + +// Rule PropertyDeclaration +rulePropertyDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='property' + { + newLeafNode(otherlv_0, grammarAccess.getPropertyDeclarationAccess().getPropertyKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getPropertyDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPropertyDeclarationRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) + otherlv_2='is' + { + newLeafNode(otherlv_2, grammarAccess.getPropertyDeclarationAccess().getIsKeyword_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPropertyDeclarationAccess().getPropertyPropertyParserRuleCall_3_0()); + } + lv_property_3_0=ruleProperty + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPropertyDeclarationRule()); + } + set( + $current, + "property", + lv_property_3_0, + "fr.irit.fiacre.xtext.Fiacre.Property"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleProperty +entryRuleProperty returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPropertyRule()); } + iv_ruleProperty=ruleProperty + { $current=$iv_ruleProperty.current; } + EOF; + +// Rule Property +ruleProperty returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + { + /* */ + } + { + newCompositeNode(grammarAccess.getPropertyAccess().getQuantifiedPropertyParserRuleCall()); + } + this_QuantifiedProperty_0=ruleQuantifiedProperty + { + $current = $this_QuantifiedProperty_0.current; + afterParserOrEnumRuleCall(); + } +; + +// Entry rule entryRuleQuantifiedProperty +entryRuleQuantifiedProperty returns [EObject current=null]: + { newCompositeNode(grammarAccess.getQuantifiedPropertyRule()); } + iv_ruleQuantifiedProperty=ruleQuantifiedProperty + { $current=$iv_ruleQuantifiedProperty.current; } + EOF; + +// Rule QuantifiedProperty +ruleQuantifiedProperty returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getQuantifiedPropertyAccess().getAllPropertyAction_0_0_0_0(), + $current); + } + ) + otherlv_1='all' + { + newLeafNode(otherlv_1, grammarAccess.getQuantifiedPropertyAccess().getAllKeyword_0_0_0_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getQuantifiedPropertyAccess().getExistsPropertyAction_0_0_1_0(), + $current); + } + ) + otherlv_3='exists' + { + newLeafNode(otherlv_3, grammarAccess.getQuantifiedPropertyAccess().getExistsKeyword_0_0_1_1()); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getQuantifiedPropertyAccess().getVariableVariableDeclarationParserRuleCall_0_1_0()); + } + lv_variable_4_0=ruleVariableDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getQuantifiedPropertyRule()); + } + set( + $current, + "variable", + lv_variable_4_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_5='in' + { + newLeafNode(otherlv_5, grammarAccess.getQuantifiedPropertyAccess().getInKeyword_0_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getQuantifiedPropertyAccess().getTypeRangeTypeParserRuleCall_0_3_0()); + } + lv_type_6_0=ruleRangeType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getQuantifiedPropertyRule()); + } + set( + $current, + "type", + lv_type_6_0, + "fr.irit.fiacre.xtext.Fiacre.RangeType"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_7='.' + { + newLeafNode(otherlv_7, grammarAccess.getQuantifiedPropertyAccess().getFullStopKeyword_0_4()); + } + ( + ( + { + newCompositeNode(grammarAccess.getQuantifiedPropertyAccess().getChildQuantifiedPropertyParserRuleCall_0_5_0()); + } + lv_child_8_0=ruleQuantifiedProperty + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getQuantifiedPropertyRule()); + } + set( + $current, + "child", + lv_child_8_0, + "fr.irit.fiacre.xtext.Fiacre.QuantifiedProperty"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getQuantifiedPropertyAccess().getPropertyDisjunctionParserRuleCall_1()); + } + this_PropertyDisjunction_9=rulePropertyDisjunction + { + $current = $this_PropertyDisjunction_9.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRulePropertyDisjunction +entryRulePropertyDisjunction returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPropertyDisjunctionRule()); } + iv_rulePropertyDisjunction=rulePropertyDisjunction + { $current=$iv_rulePropertyDisjunction.current; } + EOF; + +// Rule PropertyDisjunction +rulePropertyDisjunction returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getPropertyDisjunctionAccess().getPropertyImplicationParserRuleCall_0()); + } + this_PropertyImplication_0=rulePropertyImplication + { + $current = $this_PropertyImplication_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getPropertyDisjunctionAccess().getPropertyDisjunctionLeftAction_1_0(), + $current); + } + ) + otherlv_2='or' + { + newLeafNode(otherlv_2, grammarAccess.getPropertyDisjunctionAccess().getOrKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPropertyDisjunctionAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); + } + lv_right_3_0=rulePropertyImplication + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPropertyDisjunctionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.PropertyImplication"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRulePropertyImplication +entryRulePropertyImplication returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPropertyImplicationRule()); } + iv_rulePropertyImplication=rulePropertyImplication + { $current=$iv_rulePropertyImplication.current; } + EOF; + +// Rule PropertyImplication +rulePropertyImplication returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getPropertyImplicationAccess().getPropertyConjunctionParserRuleCall_0()); + } + this_PropertyConjunction_0=rulePropertyConjunction + { + $current = $this_PropertyConjunction_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getPropertyImplicationAccess().getPropertyImplicationLeftAction_1_0(), + $current); + } + ) + otherlv_2='=>' + { + newLeafNode(otherlv_2, grammarAccess.getPropertyImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPropertyImplicationAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); + } + lv_right_3_0=rulePropertyImplication + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPropertyImplicationRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.PropertyImplication"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) +; + +// Entry rule entryRulePropertyConjunction +entryRulePropertyConjunction returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPropertyConjunctionRule()); } + iv_rulePropertyConjunction=rulePropertyConjunction + { $current=$iv_rulePropertyConjunction.current; } + EOF; + +// Rule PropertyConjunction +rulePropertyConjunction returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getPropertyConjunctionAccess().getPropertyNegationParserRuleCall_0()); + } + this_PropertyNegation_0=rulePropertyNegation + { + $current = $this_PropertyNegation_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getPropertyConjunctionAccess().getPropertyConjunctionLeftAction_1_0(), + $current); + } + ) + otherlv_2='and' + { + newLeafNode(otherlv_2, grammarAccess.getPropertyConjunctionAccess().getAndKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPropertyConjunctionAccess().getRightPropertyNegationParserRuleCall_1_2_0()); + } + lv_right_3_0=rulePropertyNegation + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPropertyConjunctionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.PropertyNegation"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRulePropertyNegation +entryRulePropertyNegation returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPropertyNegationRule()); } + iv_rulePropertyNegation=rulePropertyNegation + { $current=$iv_rulePropertyNegation.current; } + EOF; + +// Rule PropertyNegation +rulePropertyNegation returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getPropertyNegationAccess().getPropertyNegationAction_0_0(), + $current); + } + ) + otherlv_1='not' + { + newLeafNode(otherlv_1, grammarAccess.getPropertyNegationAccess().getNotKeyword_0_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPropertyNegationAccess().getChildPropertyNegationParserRuleCall_0_2_0()); + } + lv_child_2_0=rulePropertyNegation + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPropertyNegationRule()); + } + set( + $current, + "child", + lv_child_2_0, + "fr.irit.fiacre.xtext.Fiacre.PropertyNegation"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPropertyNegationAccess().getAtomicPropertyParserRuleCall_1()); + } + this_AtomicProperty_3=ruleAtomicProperty + { + $current = $this_AtomicProperty_3.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleAtomicProperty +entryRuleAtomicProperty returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAtomicPropertyRule()); } + iv_ruleAtomicProperty=ruleAtomicProperty + { $current=$iv_ruleAtomicProperty.current; } + EOF; + +// Rule AtomicProperty +ruleAtomicProperty returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicPropertyAccess().getPatternPropertyParserRuleCall_0()); + } + this_PatternProperty_0=rulePatternProperty + { + $current = $this_PatternProperty_0.current; + afterParserOrEnumRuleCall(); + } + | + ( + otherlv_1='(' + { + newLeafNode(otherlv_1, grammarAccess.getAtomicPropertyAccess().getLeftParenthesisKeyword_1_0()); + } + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicPropertyAccess().getPropertyParserRuleCall_1_1()); + } + this_Property_2=ruleProperty + { + $current = $this_Property_2.current; + afterParserOrEnumRuleCall(); + } + otherlv_3=')' + { + newLeafNode(otherlv_3, grammarAccess.getAtomicPropertyAccess().getRightParenthesisKeyword_1_2()); + } + ) + ) +; + +// Entry rule entryRulePatternProperty +entryRulePatternProperty returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPatternPropertyRule()); } + iv_rulePatternProperty=rulePatternProperty + { $current=$iv_rulePatternProperty.current; } + EOF; + +// Rule PatternProperty +rulePatternProperty returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternPropertyAccess().getLTLPatternParserRuleCall_0()); + } + this_LTLPattern_0=ruleLTLPattern + { + $current = $this_LTLPattern_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternPropertyAccess().getDeadlockFreePatternParserRuleCall_1()); + } + this_DeadlockFreePattern_1=ruleDeadlockFreePattern + { + $current = $this_DeadlockFreePattern_1.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternPropertyAccess().getInfinitelyOftenPatternParserRuleCall_2()); + } + this_InfinitelyOftenPattern_2=ruleInfinitelyOftenPattern + { + $current = $this_InfinitelyOftenPattern_2.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternPropertyAccess().getMortalPatternParserRuleCall_3()); + } + this_MortalPattern_3=ruleMortalPattern + { + $current = $this_MortalPattern_3.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternPropertyAccess().getPresencePatternParserRuleCall_4()); + } + this_PresencePattern_4=rulePresencePattern + { + $current = $this_PresencePattern_4.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternPropertyAccess().getAbsencePatternParserRuleCall_5()); + } + this_AbsencePattern_5=ruleAbsencePattern + { + $current = $this_AbsencePattern_5.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternPropertyAccess().getAlwaysPatternParserRuleCall_6()); + } + this_AlwaysPattern_6=ruleAlwaysPattern + { + $current = $this_AlwaysPattern_6.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPatternPropertyAccess().getSequencePatternParserRuleCall_7()); + } + this_SequencePattern_7=ruleSequencePattern + { + $current = $this_SequencePattern_7.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleLTLPattern +entryRuleLTLPattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLTLPatternRule()); } + iv_ruleLTLPattern=ruleLTLPattern + { $current=$iv_ruleLTLPattern.current; } + EOF; + +// Rule LTLPattern +ruleLTLPattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='ltl' + { + newLeafNode(otherlv_0, grammarAccess.getLTLPatternAccess().getLtlKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLTLPatternAccess().getPropertyLTLUnaryParserRuleCall_1_0()); + } + lv_property_1_0=ruleLTLUnary + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLTLPatternRule()); + } + set( + $current, + "property", + lv_property_1_0, + "fr.irit.fiacre.xtext.Fiacre.LTLUnary"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleDeadlockFreePattern +entryRuleDeadlockFreePattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getDeadlockFreePatternRule()); } + iv_ruleDeadlockFreePattern=ruleDeadlockFreePattern + { $current=$iv_ruleDeadlockFreePattern.current; } + EOF; + +// Rule DeadlockFreePattern +ruleDeadlockFreePattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getDeadlockFreePatternAccess().getDeadlockFreePatternAction_0(), + $current); + } + ) + otherlv_1='deadlockfree' + { + newLeafNode(otherlv_1, grammarAccess.getDeadlockFreePatternAccess().getDeadlockfreeKeyword_1()); + } + ) +; + +// Entry rule entryRuleInfinitelyOftenPattern +entryRuleInfinitelyOftenPattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getInfinitelyOftenPatternRule()); } + iv_ruleInfinitelyOftenPattern=ruleInfinitelyOftenPattern + { $current=$iv_ruleInfinitelyOftenPattern.current; } + EOF; + +// Rule InfinitelyOftenPattern +ruleInfinitelyOftenPattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='infinitelyoften' + { + newLeafNode(otherlv_0, grammarAccess.getInfinitelyOftenPatternAccess().getInfinitelyoftenKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + lv_subject_1_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getInfinitelyOftenPatternRule()); + } + set( + $current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleMortalPattern +entryRuleMortalPattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getMortalPatternRule()); } + iv_ruleMortalPattern=ruleMortalPattern + { $current=$iv_ruleMortalPattern.current; } + EOF; + +// Rule MortalPattern +ruleMortalPattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='mortal' + { + newLeafNode(otherlv_0, grammarAccess.getMortalPatternAccess().getMortalKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getMortalPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + lv_subject_1_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getMortalPatternRule()); + } + set( + $current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRulePresencePattern +entryRulePresencePattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPresencePatternRule()); } + iv_rulePresencePattern=rulePresencePattern + { $current=$iv_rulePresencePattern.current; } + EOF; + +// Rule PresencePattern +rulePresencePattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='present' + { + newLeafNode(otherlv_0, grammarAccess.getPresencePatternAccess().getPresentKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPresencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + lv_subject_1_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + $current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + otherlv_2='lasting' + { + newLeafNode(otherlv_2, grammarAccess.getPresencePatternAccess().getLastingKeyword_2_0_0()); + } + ( + ( + lv_lasting_3_0=RULE_INT + { + newLeafNode(lv_lasting_3_0, grammarAccess.getPresencePatternAccess().getLastingINTTerminalRuleCall_2_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPresencePatternRule()); + } + setWithLastConsumed( + $current, + "lasting", + lv_lasting_3_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + } + ) + ) + ) + | + ( + ( + otherlv_4='after' + { + newLeafNode(otherlv_4, grammarAccess.getPresencePatternAccess().getAfterKeyword_2_1_0_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPresencePatternAccess().getAfterAtomicObservableParserRuleCall_2_1_0_1_0()); + } + lv_after_5_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + $current, + "after", + lv_after_5_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + ( + ( + otherlv_6='within' + { + newLeafNode(otherlv_6, grammarAccess.getPresencePatternAccess().getWithinKeyword_2_1_1_0_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_0_1_0()); + } + lv_lower_7_0=ruleLowerBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + $current, + "lower", + lv_lower_7_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_8=',' + { + newLeafNode(otherlv_8, grammarAccess.getPresencePatternAccess().getCommaKeyword_2_1_1_0_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_0_3_0()); + } + lv_upper_9_0=ruleUpperBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + $current, + "upper", + lv_upper_9_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + ( + otherlv_10='until' + { + newLeafNode(otherlv_10, grammarAccess.getPresencePatternAccess().getUntilKeyword_2_1_1_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPresencePatternAccess().getUntilAtomicObservableParserRuleCall_2_1_1_1_1_0()); + } + lv_until_11_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + $current, + "until", + lv_until_11_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + )? + ) + | + ( + ( + otherlv_12='before' + { + newLeafNode(otherlv_12, grammarAccess.getPresencePatternAccess().getBeforeKeyword_2_2_0_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPresencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_2_0_1_0()); + } + lv_before_13_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + $current, + "before", + lv_before_13_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + ( + otherlv_14='within' + { + newLeafNode(otherlv_14, grammarAccess.getPresencePatternAccess().getWithinKeyword_2_2_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_2_1_1_0()); + } + lv_lower_15_0=ruleLowerBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + $current, + "lower", + lv_lower_15_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_16=',' + { + newLeafNode(otherlv_16, grammarAccess.getPresencePatternAccess().getCommaKeyword_2_2_1_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_2_1_3_0()); + } + lv_upper_17_0=ruleUpperBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + $current, + "upper", + lv_upper_17_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) + | + ( + otherlv_18='between' + { + newLeafNode(otherlv_18, grammarAccess.getPresencePatternAccess().getBetweenKeyword_2_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPresencePatternAccess().getMinAtomicObservableParserRuleCall_2_3_1_0()); + } + lv_min_19_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + $current, + "min", + lv_min_19_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_20='and' + { + newLeafNode(otherlv_20, grammarAccess.getPresencePatternAccess().getAndKeyword_2_3_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getPresencePatternAccess().getMaxAtomicObservableParserRuleCall_2_3_3_0()); + } + lv_max_21_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + $current, + "max", + lv_max_21_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + )? + ) +; + +// Entry rule entryRuleAbsencePattern +entryRuleAbsencePattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAbsencePatternRule()); } + iv_ruleAbsencePattern=ruleAbsencePattern + { $current=$iv_ruleAbsencePattern.current; } + EOF; + +// Rule AbsencePattern +ruleAbsencePattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='absent' + { + newLeafNode(otherlv_0, grammarAccess.getAbsencePatternAccess().getAbsentKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAbsencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + lv_subject_1_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + $current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + ( + otherlv_2='after' + { + newLeafNode(otherlv_2, grammarAccess.getAbsencePatternAccess().getAfterKeyword_2_0_0_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAbsencePatternAccess().getAfterAtomicObservableParserRuleCall_2_0_0_1_0()); + } + lv_after_3_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + $current, + "after", + lv_after_3_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + ( + ( + otherlv_4='within' + { + newLeafNode(otherlv_4, grammarAccess.getAbsencePatternAccess().getWithinKeyword_2_0_1_0_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_0_1_0_1_0()); + } + lv_lower_5_0=ruleLowerBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + $current, + "lower", + lv_lower_5_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_6=',' + { + newLeafNode(otherlv_6, grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_0_1_0_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_0_1_0_3_0()); + } + lv_upper_7_0=ruleUpperBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + $current, + "upper", + lv_upper_7_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + ( + otherlv_8='until' + { + newLeafNode(otherlv_8, grammarAccess.getAbsencePatternAccess().getUntilKeyword_2_0_1_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAbsencePatternAccess().getUntilAtomicObservableParserRuleCall_2_0_1_1_1_0()); + } + lv_until_9_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + $current, + "until", + lv_until_9_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + )? + ) + | + ( + ( + otherlv_10='before' + { + newLeafNode(otherlv_10, grammarAccess.getAbsencePatternAccess().getBeforeKeyword_2_1_0_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAbsencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_1_0_1_0()); + } + lv_before_11_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + $current, + "before", + lv_before_11_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + ( + otherlv_12='for' + { + newLeafNode(otherlv_12, grammarAccess.getAbsencePatternAccess().getForKeyword_2_1_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_1_0()); + } + lv_lower_13_0=ruleLowerBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + $current, + "lower", + lv_lower_13_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_14=',' + { + newLeafNode(otherlv_14, grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_1_1_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_3_0()); + } + lv_upper_15_0=ruleUpperBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + $current, + "upper", + lv_upper_15_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) + | + ( + otherlv_16='between' + { + newLeafNode(otherlv_16, grammarAccess.getAbsencePatternAccess().getBetweenKeyword_2_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAbsencePatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); + } + lv_min_17_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + $current, + "min", + lv_min_17_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_18='and' + { + newLeafNode(otherlv_18, grammarAccess.getAbsencePatternAccess().getAndKeyword_2_2_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAbsencePatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); + } + lv_max_19_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + $current, + "max", + lv_max_19_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + )? + ) +; + +// Entry rule entryRuleAlwaysPattern +entryRuleAlwaysPattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAlwaysPatternRule()); } + iv_ruleAlwaysPattern=ruleAlwaysPattern + { $current=$iv_ruleAlwaysPattern.current; } + EOF; + +// Rule AlwaysPattern +ruleAlwaysPattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='always' + { + newLeafNode(otherlv_0, grammarAccess.getAlwaysPatternAccess().getAlwaysKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + lv_subject_1_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + $current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + otherlv_2='before' + { + newLeafNode(otherlv_2, grammarAccess.getAlwaysPatternAccess().getBeforeKeyword_2_0_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getBeforeAtomicObservableParserRuleCall_2_0_1_0()); + } + lv_before_3_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + $current, + "before", + lv_before_3_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + ( + otherlv_4='after' + { + newLeafNode(otherlv_4, grammarAccess.getAlwaysPatternAccess().getAfterKeyword_2_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getAfterAtomicObservableParserRuleCall_2_1_1_0()); + } + lv_after_5_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + $current, + "after", + lv_after_5_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_6='until' + { + newLeafNode(otherlv_6, grammarAccess.getAlwaysPatternAccess().getUntilKeyword_2_1_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getUntilAtomicObservableParserRuleCall_2_1_2_1_0()); + } + lv_until_7_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + $current, + "until", + lv_until_7_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) + | + ( + otherlv_8='between' + { + newLeafNode(otherlv_8, grammarAccess.getAlwaysPatternAccess().getBetweenKeyword_2_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); + } + lv_min_9_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + $current, + "min", + lv_min_9_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_10='and' + { + newLeafNode(otherlv_10, grammarAccess.getAlwaysPatternAccess().getAndKeyword_2_2_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); + } + lv_max_11_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + $current, + "max", + lv_max_11_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + )? + ) +; + +// Entry rule entryRuleSequencePattern +entryRuleSequencePattern returns [EObject current=null]: + { newCompositeNode(grammarAccess.getSequencePatternRule()); } + iv_ruleSequencePattern=ruleSequencePattern + { $current=$iv_ruleSequencePattern.current; } + EOF; + +// Rule SequencePattern +ruleSequencePattern returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getAtomicObservableParserRuleCall_0()); + } + this_AtomicObservable_0=ruleAtomicObservable + { + $current = $this_AtomicObservable_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + otherlv_1='leadsto' + { + newLeafNode(otherlv_1, grammarAccess.getSequencePatternAccess().getLeadstoKeyword_1_0_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getSequencePatternAccess().getLeadsToPatternSubjectAction_1_0_1(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_0_2_0()); + } + lv_follower_3_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "follower", + lv_follower_3_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + otherlv_4='before' + { + newLeafNode(otherlv_4, grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_0_3_0_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_0_3_0_1_0()); + } + lv_before_5_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "before", + lv_before_5_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_6='within' + { + newLeafNode(otherlv_6, grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_0_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_0_2_1_0()); + } + lv_lower_7_0=ruleLowerBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "lower", + lv_lower_7_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_8=',' + { + newLeafNode(otherlv_8, grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_0_2_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_0_2_3_0()); + } + lv_upper_9_0=ruleUpperBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "upper", + lv_upper_9_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) + | + ( + otherlv_10='within' + { + newLeafNode(otherlv_10, grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_1_1_0()); + } + lv_lower_11_0=ruleLowerBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "lower", + lv_lower_11_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_12=',' + { + newLeafNode(otherlv_12, grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_1_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_1_3_0()); + } + lv_upper_13_0=ruleUpperBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "upper", + lv_upper_13_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + ( + otherlv_14='after' + { + newLeafNode(otherlv_14, grammarAccess.getSequencePatternAccess().getAfterKeyword_1_0_3_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_0_3_2_1_0()); + } + lv_after_15_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "after", + lv_after_15_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + otherlv_16='within' + { + newLeafNode(otherlv_16, grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_2_2_0_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_2_2_0_1_0()); + } + lv_lower_17_0=ruleLowerBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "lower", + lv_lower_17_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_18=',' + { + newLeafNode(otherlv_18, grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_2_2_0_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_2_2_0_3_0()); + } + lv_upper_19_0=ruleUpperBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "upper", + lv_upper_19_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + ( + otherlv_20='until' + { + newLeafNode(otherlv_20, grammarAccess.getSequencePatternAccess().getUntilKeyword_1_0_3_2_2_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_0_3_2_2_1_1_0()); + } + lv_until_21_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "until", + lv_until_21_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + )? + ) + | + ( + otherlv_22='between' + { + newLeafNode(otherlv_22, grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_0_3_3_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_0_3_3_1_0()); + } + lv_min_23_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "min", + lv_min_23_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_24='and' + { + newLeafNode(otherlv_24, grammarAccess.getSequencePatternAccess().getAndKeyword_1_0_3_3_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_0_3_3_3_0()); + } + lv_max_25_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "max", + lv_max_25_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + )? + ) + | + ( + otherlv_26='precedes' + { + newLeafNode(otherlv_26, grammarAccess.getSequencePatternAccess().getPrecedesKeyword_1_1_0()); + } + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getSequencePatternAccess().getPrecedesPatternSubjectAction_1_1_1(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_1_2_0()); + } + lv_follower_28_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "follower", + lv_follower_28_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + otherlv_29='before' + { + newLeafNode(otherlv_29, grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_1_3_0_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_1_3_0_1_0()); + } + lv_before_30_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "before", + lv_before_30_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + ( + otherlv_31='after' + { + newLeafNode(otherlv_31, grammarAccess.getSequencePatternAccess().getAfterKeyword_1_1_3_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_1_3_1_1_0()); + } + lv_after_32_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "after", + lv_after_32_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_33='until' + { + newLeafNode(otherlv_33, grammarAccess.getSequencePatternAccess().getUntilKeyword_1_1_3_1_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_1_3_1_2_1_0()); + } + lv_until_34_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "until", + lv_until_34_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) + | + ( + otherlv_35='between' + { + newLeafNode(otherlv_35, grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_1_3_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_1_3_2_1_0()); + } + lv_min_36_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "min", + lv_min_36_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_37='and' + { + newLeafNode(otherlv_37, grammarAccess.getSequencePatternAccess().getAndKeyword_1_1_3_2_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_1_3_2_3_0()); + } + lv_max_38_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + $current, + "max", + lv_max_38_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + )? + ) + ) + ) +; + +// Entry rule entryRuleLTLProperty +entryRuleLTLProperty returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLTLPropertyRule()); } + iv_ruleLTLProperty=ruleLTLProperty + { $current=$iv_ruleLTLProperty.current; } + EOF; + +// Rule LTLProperty +ruleLTLProperty returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + { + /* */ + } + { + newCompositeNode(grammarAccess.getLTLPropertyAccess().getLTLQuantifiedParserRuleCall()); + } + this_LTLQuantified_0=ruleLTLQuantified + { + $current = $this_LTLQuantified_0.current; + afterParserOrEnumRuleCall(); + } +; + +// Entry rule entryRuleLTLQuantified +entryRuleLTLQuantified returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLTLQuantifiedRule()); } + iv_ruleLTLQuantified=ruleLTLQuantified + { $current=$iv_ruleLTLQuantified.current; } + EOF; + +// Rule LTLQuantified +ruleLTLQuantified returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getLTLQuantifiedAccess().getLTLAllAction_0_0_0_0(), + $current); + } + ) + otherlv_1='all' + { + newLeafNode(otherlv_1, grammarAccess.getLTLQuantifiedAccess().getAllKeyword_0_0_0_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getLTLQuantifiedAccess().getLTLExistsAction_0_0_1_0(), + $current); + } + ) + otherlv_3='exists' + { + newLeafNode(otherlv_3, grammarAccess.getLTLQuantifiedAccess().getExistsKeyword_0_0_1_1()); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getLTLQuantifiedAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); + } + lv_index_4_0=ruleVariableDeclaration + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLTLQuantifiedRule()); + } + set( + $current, + "index", + lv_index_4_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_5='in' + { + newLeafNode(otherlv_5, grammarAccess.getLTLQuantifiedAccess().getInKeyword_0_2()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLTLQuantifiedAccess().getTypeRangeTypeParserRuleCall_0_3_0()); + } + lv_type_6_0=ruleRangeType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLTLQuantifiedRule()); + } + set( + $current, + "type", + lv_type_6_0, + "fr.irit.fiacre.xtext.Fiacre.RangeType"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_7='.' + { + newLeafNode(otherlv_7, grammarAccess.getLTLQuantifiedAccess().getFullStopKeyword_0_4()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLTLQuantifiedAccess().getChildLTLQuantifiedParserRuleCall_0_5_0()); + } + lv_child_8_0=ruleLTLQuantified + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLTLQuantifiedRule()); + } + set( + $current, + "child", + lv_child_8_0, + "fr.irit.fiacre.xtext.Fiacre.LTLQuantified"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getLTLQuantifiedAccess().getLTLDisjunctionParserRuleCall_1()); + } + this_LTLDisjunction_9=ruleLTLDisjunction + { + $current = $this_LTLDisjunction_9.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleLTLDisjunction +entryRuleLTLDisjunction returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLTLDisjunctionRule()); } + iv_ruleLTLDisjunction=ruleLTLDisjunction + { $current=$iv_ruleLTLDisjunction.current; } + EOF; + +// Rule LTLDisjunction +ruleLTLDisjunction returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getLTLDisjunctionAccess().getLTLImplicationParserRuleCall_0()); + } + this_LTLImplication_0=ruleLTLImplication + { + $current = $this_LTLImplication_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getLTLDisjunctionAccess().getLTLDisjunctionLeftAction_1_0(), + $current); + } + ) + otherlv_2='or' + { + newLeafNode(otherlv_2, grammarAccess.getLTLDisjunctionAccess().getOrKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLTLDisjunctionAccess().getRightLTLImplicationParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleLTLImplication + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLTLDisjunctionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.LTLImplication"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleLTLImplication +entryRuleLTLImplication returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLTLImplicationRule()); } + iv_ruleLTLImplication=ruleLTLImplication + { $current=$iv_ruleLTLImplication.current; } + EOF; + +// Rule LTLImplication +ruleLTLImplication returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getLTLImplicationAccess().getLTLConjunctionParserRuleCall_0()); + } + this_LTLConjunction_0=ruleLTLConjunction + { + $current = $this_LTLConjunction_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getLTLImplicationAccess().getLTLImplicationLeftAction_1_0(), + $current); + } + ) + otherlv_2='=>' + { + newLeafNode(otherlv_2, grammarAccess.getLTLImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLTLImplicationAccess().getRightLTLImplicationParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleLTLImplication + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLTLImplicationRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.LTLImplication"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) +; + +// Entry rule entryRuleLTLConjunction +entryRuleLTLConjunction returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLTLConjunctionRule()); } + iv_ruleLTLConjunction=ruleLTLConjunction + { $current=$iv_ruleLTLConjunction.current; } + EOF; + +// Rule LTLConjunction +ruleLTLConjunction returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getLTLConjunctionAccess().getLTLBinaryParserRuleCall_0()); + } + this_LTLBinary_0=ruleLTLBinary + { + $current = $this_LTLBinary_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getLTLConjunctionAccess().getLTLConjunctionLeftAction_1_0(), + $current); + } + ) + otherlv_2='and' + { + newLeafNode(otherlv_2, grammarAccess.getLTLConjunctionAccess().getAndKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLTLConjunctionAccess().getRightLTLBinaryParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleLTLBinary + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLTLConjunctionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.LTLBinary"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleLTLBinary +entryRuleLTLBinary returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLTLBinaryRule()); } + iv_ruleLTLBinary=ruleLTLBinary + { $current=$iv_ruleLTLBinary.current; } + EOF; + +// Rule LTLBinary +ruleLTLBinary returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getLTLBinaryAccess().getLTLUnaryParserRuleCall_0()); + } + this_LTLUnary_0=ruleLTLUnary + { + $current = $this_LTLUnary_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getLTLBinaryAccess().getLTLUntilLeftAction_1_0_0(), + $current); + } + ) + otherlv_2='until' + { + newLeafNode(otherlv_2, grammarAccess.getLTLBinaryAccess().getUntilKeyword_1_0_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_0_2_0()); + } + lv_right_3_0=ruleLTLUnary + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLTLBinaryRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.LTLUnary"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getLTLBinaryAccess().getLTLReleaseLeftAction_1_1_0(), + $current); + } + ) + otherlv_5='release' + { + newLeafNode(otherlv_5, grammarAccess.getLTLBinaryAccess().getReleaseKeyword_1_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_1_2_0()); + } + lv_right_6_0=ruleLTLUnary + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLTLBinaryRule()); + } + set( + $current, + "right", + lv_right_6_0, + "fr.irit.fiacre.xtext.Fiacre.LTLUnary"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + )? + ) +; + +// Entry rule entryRuleLTLUnary +entryRuleLTLUnary returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLTLUnaryRule()); } + iv_ruleLTLUnary=ruleLTLUnary + { $current=$iv_ruleLTLUnary.current; } + EOF; + +// Rule LTLUnary +ruleLTLUnary returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getLTLUnaryAccess().getLTLUnaryNegationAction_0_0_0_0(), + $current); + } + ) + otherlv_1='not' + { + newLeafNode(otherlv_1, grammarAccess.getLTLUnaryAccess().getNotKeyword_0_0_0_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getLTLUnaryAccess().getLTLUnaryNextAction_0_0_1_0(), + $current); + } + ) + otherlv_3='next' + { + newLeafNode(otherlv_3, grammarAccess.getLTLUnaryAccess().getNextKeyword_0_0_1_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getLTLUnaryAccess().getLTLUnaryAlwaysAction_0_0_2_0(), + $current); + } + ) + otherlv_5='[]' + { + newLeafNode(otherlv_5, grammarAccess.getLTLUnaryAccess().getLeftSquareBracketRightSquareBracketKeyword_0_0_2_1()); + } + ) + | + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getLTLUnaryAccess().getLTLUnaryEventuallyAction_0_0_3_0(), + $current); + } + ) + otherlv_7='<>' + { + newLeafNode(otherlv_7, grammarAccess.getLTLUnaryAccess().getLessThanSignGreaterThanSignKeyword_0_0_3_1()); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getLTLUnaryAccess().getOperandLTLUnaryParserRuleCall_0_1_0()); + } + lv_operand_8_0=ruleLTLUnary + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLTLUnaryRule()); + } + set( + $current, + "operand", + lv_operand_8_0, + "fr.irit.fiacre.xtext.Fiacre.LTLUnary"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getLTLUnaryAccess().getAtomicLTLParserRuleCall_1()); + } + this_AtomicLTL_9=ruleAtomicLTL + { + $current = $this_AtomicLTL_9.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleAtomicLTL +entryRuleAtomicLTL returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAtomicLTLRule()); } + iv_ruleAtomicLTL=ruleAtomicLTL + { $current=$iv_ruleAtomicLTL.current; } + EOF; + +// Rule AtomicLTL +ruleAtomicLTL returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getAtomicLTLAccess().getLTLVariableAction_0_0(), + $current); + } + ) + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getAtomicLTLRule()); + } + } + otherlv_1=RULE_ID + { + newLeafNode(otherlv_1, grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseCrossReference_0_1_0()); + } + ) + ) + ) + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicLTLAccess().getObservableEventParserRuleCall_1()); + } + this_ObservableEvent_2=ruleObservableEvent + { + $current = $this_ObservableEvent_2.current; + afterParserOrEnumRuleCall(); + } + | + ( + otherlv_3='(' + { + newLeafNode(otherlv_3, grammarAccess.getAtomicLTLAccess().getLeftParenthesisKeyword_2_0()); + } + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicLTLAccess().getLTLPropertyParserRuleCall_2_1()); + } + this_LTLProperty_4=ruleLTLProperty + { + $current = $this_LTLProperty_4.current; + afterParserOrEnumRuleCall(); + } + otherlv_5=')' + { + newLeafNode(otherlv_5, grammarAccess.getAtomicLTLAccess().getRightParenthesisKeyword_2_2()); + } + ) + ) +; + +// Entry rule entryRuleStateEvent +entryRuleStateEvent returns [EObject current=null]: + { newCompositeNode(grammarAccess.getStateEventRule()); } + iv_ruleStateEvent=ruleStateEvent + { $current=$iv_ruleStateEvent.current; } + EOF; + +// Rule StateEvent +ruleStateEvent returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getStateEventAccess().getEnterStateEventParserRuleCall_0()); + } + this_EnterStateEvent_0=ruleEnterStateEvent + { + $current = $this_EnterStateEvent_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getStateEventAccess().getLeaveStateEventParserRuleCall_1()); + } + this_LeaveStateEvent_1=ruleLeaveStateEvent + { + $current = $this_LeaveStateEvent_1.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleEnterStateEvent +entryRuleEnterStateEvent returns [EObject current=null]: + { newCompositeNode(grammarAccess.getEnterStateEventRule()); } + iv_ruleEnterStateEvent=ruleEnterStateEvent + { $current=$iv_ruleEnterStateEvent.current; } + EOF; + +// Rule EnterStateEvent +ruleEnterStateEvent returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='enter' + { + newLeafNode(otherlv_0, grammarAccess.getEnterStateEventAccess().getEnterKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getEnterStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + lv_subject_1_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getEnterStateEventRule()); + } + set( + $current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleLeaveStateEvent +entryRuleLeaveStateEvent returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLeaveStateEventRule()); } + iv_ruleLeaveStateEvent=ruleLeaveStateEvent + { $current=$iv_ruleLeaveStateEvent.current; } + EOF; + +// Rule LeaveStateEvent +ruleLeaveStateEvent returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='leave' + { + newLeafNode(otherlv_0, grammarAccess.getLeaveStateEventAccess().getLeaveKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getLeaveStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + } + lv_subject_1_0=ruleAtomicObservable + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLeaveStateEventRule()); + } + set( + $current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleObservable +entryRuleObservable returns [EObject current=null]: + { newCompositeNode(grammarAccess.getObservableRule()); } + iv_ruleObservable=ruleObservable + { $current=$iv_ruleObservable.current; } + EOF; + +// Rule Observable +ruleObservable returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + { + /* */ + } + { + newCompositeNode(grammarAccess.getObservableAccess().getObservableDisjunctionParserRuleCall()); + } + this_ObservableDisjunction_0=ruleObservableDisjunction + { + $current = $this_ObservableDisjunction_0.current; + afterParserOrEnumRuleCall(); + } +; + +// Entry rule entryRuleObservableDisjunction +entryRuleObservableDisjunction returns [EObject current=null]: + { newCompositeNode(grammarAccess.getObservableDisjunctionRule()); } + iv_ruleObservableDisjunction=ruleObservableDisjunction + { $current=$iv_ruleObservableDisjunction.current; } + EOF; + +// Rule ObservableDisjunction +ruleObservableDisjunction returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getObservableDisjunctionAccess().getObservableImplicationParserRuleCall_0()); + } + this_ObservableImplication_0=ruleObservableImplication + { + $current = $this_ObservableImplication_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getObservableDisjunctionAccess().getObservableDisjunctionLeftAction_1_0(), + $current); + } + ) + otherlv_2='or' + { + newLeafNode(otherlv_2, grammarAccess.getObservableDisjunctionAccess().getOrKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getObservableDisjunctionAccess().getRightObservableImplicationParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleObservableImplication + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getObservableDisjunctionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.ObservableImplication"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleObservableImplication +entryRuleObservableImplication returns [EObject current=null]: + { newCompositeNode(grammarAccess.getObservableImplicationRule()); } + iv_ruleObservableImplication=ruleObservableImplication + { $current=$iv_ruleObservableImplication.current; } + EOF; + +// Rule ObservableImplication +ruleObservableImplication returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getObservableImplicationAccess().getObservableConjunctionParserRuleCall_0()); + } + this_ObservableConjunction_0=ruleObservableConjunction + { + $current = $this_ObservableConjunction_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getObservableImplicationAccess().getObservableImplicationLeftAction_1_0(), + $current); + } + ) + otherlv_2='=>' + { + newLeafNode(otherlv_2, grammarAccess.getObservableImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getObservableImplicationAccess().getRightObservableImplicationParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleObservableImplication + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getObservableImplicationRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.ObservableImplication"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) +; + +// Entry rule entryRuleObservableConjunction +entryRuleObservableConjunction returns [EObject current=null]: + { newCompositeNode(grammarAccess.getObservableConjunctionRule()); } + iv_ruleObservableConjunction=ruleObservableConjunction + { $current=$iv_ruleObservableConjunction.current; } + EOF; + +// Rule ObservableConjunction +ruleObservableConjunction returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getObservableConjunctionAccess().getObservableNegationParserRuleCall_0()); + } + this_ObservableNegation_0=ruleObservableNegation + { + $current = $this_ObservableNegation_0.current; + afterParserOrEnumRuleCall(); + } + ( + ( + { + /* */ + } + { + $current = forceCreateModelElementAndSet( + grammarAccess.getObservableConjunctionAccess().getObservableConjunctionLeftAction_1_0(), + $current); + } + ) + otherlv_2='and' + { + newLeafNode(otherlv_2, grammarAccess.getObservableConjunctionAccess().getAndKeyword_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getObservableConjunctionAccess().getRightObservableNegationParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleObservableNegation + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getObservableConjunctionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.ObservableNegation"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) +; + +// Entry rule entryRuleObservableNegation +entryRuleObservableNegation returns [EObject current=null]: + { newCompositeNode(grammarAccess.getObservableNegationRule()); } + iv_ruleObservableNegation=ruleObservableNegation + { $current=$iv_ruleObservableNegation.current; } + EOF; + +// Rule ObservableNegation +ruleObservableNegation returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + /* */ + } + { + $current = forceCreateModelElement( + grammarAccess.getObservableNegationAccess().getObservableNegationAction_0_0(), + $current); + } + ) + otherlv_1='not' + { + newLeafNode(otherlv_1, grammarAccess.getObservableNegationAccess().getNotKeyword_0_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getObservableNegationAccess().getChildObservableNegationParserRuleCall_0_2_0()); + } + lv_child_2_0=ruleObservableNegation + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getObservableNegationRule()); + } + set( + $current, + "child", + lv_child_2_0, + "fr.irit.fiacre.xtext.Fiacre.ObservableNegation"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getObservableNegationAccess().getAtomicObservableParserRuleCall_1()); + } + this_AtomicObservable_3=ruleAtomicObservable + { + $current = $this_AtomicObservable_3.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleAtomicObservable +entryRuleAtomicObservable returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAtomicObservableRule()); } + iv_ruleAtomicObservable=ruleAtomicObservable + { $current=$iv_ruleAtomicObservable.current; } + EOF; + +// Rule AtomicObservable +ruleAtomicObservable returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + otherlv_0='(' + { + newLeafNode(otherlv_0, grammarAccess.getAtomicObservableAccess().getLeftParenthesisKeyword_0_0()); + } + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicObservableAccess().getObservableParserRuleCall_0_1()); + } + this_Observable_1=ruleObservable + { + $current = $this_Observable_1.current; + afterParserOrEnumRuleCall(); + } + otherlv_2=')' + { + newLeafNode(otherlv_2, grammarAccess.getAtomicObservableAccess().getRightParenthesisKeyword_0_2()); + } + ) + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getAtomicObservableAccess().getObservableEventParserRuleCall_1()); + } + this_ObservableEvent_3=ruleObservableEvent + { + $current = $this_ObservableEvent_3.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleObservableEvent +entryRuleObservableEvent returns [EObject current=null]: + { newCompositeNode(grammarAccess.getObservableEventRule()); } + iv_ruleObservableEvent=ruleObservableEvent + { $current=$iv_ruleObservableEvent.current; } + EOF; + +// Rule ObservableEvent +ruleObservableEvent returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getObservableEventAccess().getPathEventParserRuleCall_0()); + } + this_PathEvent_0=rulePathEvent + { + $current = $this_PathEvent_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getObservableEventAccess().getStateEventParserRuleCall_1()); + } + this_StateEvent_1=ruleStateEvent + { + $current = $this_StateEvent_1.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRulePathEvent +entryRulePathEvent returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPathEventRule()); } + iv_rulePathEvent=rulePathEvent + { $current=$iv_rulePathEvent.current; } + EOF; + +// Rule PathEvent +rulePathEvent returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getPathEventAccess().getPathPathParserRuleCall_0_0()); + } + lv_path_0_0=rulePath + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPathEventRule()); + } + set( + $current, + "path", + lv_path_0_0, + "fr.irit.fiacre.xtext.Fiacre.Path"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getPathEventAccess().getItemSubjectParserRuleCall_1_0()); + } + lv_item_1_0=ruleSubject + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPathEventRule()); + } + set( + $current, + "item", + lv_item_1_0, + "fr.irit.fiacre.xtext.Fiacre.Subject"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRulePath +entryRulePath returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPathRule()); } + iv_rulePath=rulePath + { $current=$iv_rulePath.current; } + EOF; + +// Rule Path +rulePath returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getPathAccess().getItemsPathItemParserRuleCall_0_0()); + } + lv_items_0_0=rulePathItem + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPathRule()); + } + add( + $current, + "items", + lv_items_0_0, + "fr.irit.fiacre.xtext.Fiacre.PathItem"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_1='/' + { + newLeafNode(otherlv_1, grammarAccess.getPathAccess().getSolidusKeyword_1()); + } + )+ +; + +// Entry rule entryRulePathItem +entryRulePathItem returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPathItemRule()); } + iv_rulePathItem=rulePathItem + { $current=$iv_rulePathItem.current; } + EOF; + +// Rule PathItem +rulePathItem returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getPathItemAccess().getNaturalItemParserRuleCall_0()); + } + this_NaturalItem_0=ruleNaturalItem + { + $current = $this_NaturalItem_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getPathItemAccess().getNamedItemParserRuleCall_1()); + } + this_NamedItem_1=ruleNamedItem + { + $current = $this_NamedItem_1.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleNaturalItem +entryRuleNaturalItem returns [EObject current=null]: + { newCompositeNode(grammarAccess.getNaturalItemRule()); } + iv_ruleNaturalItem=ruleNaturalItem + { $current=$iv_ruleNaturalItem.current; } + EOF; + +// Rule NaturalItem +ruleNaturalItem returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + lv_value_0_0=RULE_INT + { + newLeafNode(lv_value_0_0, grammarAccess.getNaturalItemAccess().getValueINTTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getNaturalItemRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_0_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + } + ) + ) +; + +// Entry rule entryRuleNamedItem +entryRuleNamedItem returns [EObject current=null]: + { newCompositeNode(grammarAccess.getNamedItemRule()); } + iv_ruleNamedItem=ruleNamedItem + { $current=$iv_ruleNamedItem.current; } + EOF; + +// Rule NamedItem +ruleNamedItem returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getNamedItemRule()); + } + } + otherlv_0=RULE_ID + { + newLeafNode(otherlv_0, grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseCrossReference_0()); + } + ) + ) +; + +// Entry rule entryRuleSubject +entryRuleSubject returns [EObject current=null]: + { newCompositeNode(grammarAccess.getSubjectRule()); } + iv_ruleSubject=ruleSubject + { $current=$iv_ruleSubject.current; } + EOF; + +// Rule Subject +ruleSubject returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + /* */ + } + { + newCompositeNode(grammarAccess.getSubjectAccess().getStateSubjectParserRuleCall_0()); + } + this_StateSubject_0=ruleStateSubject + { + $current = $this_StateSubject_0.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getSubjectAccess().getValueSubjectParserRuleCall_1()); + } + this_ValueSubject_1=ruleValueSubject + { + $current = $this_ValueSubject_1.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getSubjectAccess().getTagSubjectParserRuleCall_2()); + } + this_TagSubject_2=ruleTagSubject + { + $current = $this_TagSubject_2.current; + afterParserOrEnumRuleCall(); + } + | + { + /* */ + } + { + newCompositeNode(grammarAccess.getSubjectAccess().getEventSubjectParserRuleCall_3()); + } + this_EventSubject_3=ruleEventSubject + { + $current = $this_EventSubject_3.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleStateSubject +entryRuleStateSubject returns [EObject current=null]: + { newCompositeNode(grammarAccess.getStateSubjectRule()); } + iv_ruleStateSubject=ruleStateSubject + { $current=$iv_ruleStateSubject.current; } + EOF; + +// Rule StateSubject +ruleStateSubject returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='state' + { + newLeafNode(otherlv_0, grammarAccess.getStateSubjectAccess().getStateKeyword_0()); + } + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getStateSubjectRule()); + } + } + otherlv_1=RULE_ID + { + newLeafNode(otherlv_1, grammarAccess.getStateSubjectAccess().getStateStateDeclarationCrossReference_1_0()); + } + ) + ) + ) +; + +// Entry rule entryRuleValueSubject +entryRuleValueSubject returns [EObject current=null]: + { newCompositeNode(grammarAccess.getValueSubjectRule()); } + iv_ruleValueSubject=ruleValueSubject + { $current=$iv_ruleValueSubject.current; } + EOF; + +// Rule ValueSubject +ruleValueSubject returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='value' + { + newLeafNode(otherlv_0, grammarAccess.getValueSubjectAccess().getValueKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getValueSubjectAccess().getValueAtomicExpressionParserRuleCall_1_0()); + } + lv_value_1_0=ruleAtomicExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getValueSubjectRule()); + } + set( + $current, + "value", + lv_value_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleTagSubject +entryRuleTagSubject returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTagSubjectRule()); } + iv_ruleTagSubject=ruleTagSubject + { $current=$iv_ruleTagSubject.current; } + EOF; + +// Rule TagSubject +ruleTagSubject returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='tag' + { + newLeafNode(otherlv_0, grammarAccess.getTagSubjectAccess().getTagKeyword_0()); + } + ( + ( + { + /* */ + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getTagSubjectRule()); + } + } + otherlv_1=RULE_ID + { + newLeafNode(otherlv_1, grammarAccess.getTagSubjectAccess().getTagTaggedStatementCrossReference_1_0()); + } + ) + ) + ) +; + +// Entry rule entryRuleEventSubject +entryRuleEventSubject returns [EObject current=null]: + { newCompositeNode(grammarAccess.getEventSubjectRule()); } + iv_ruleEventSubject=ruleEventSubject + { $current=$iv_ruleEventSubject.current; } + EOF; + +// Rule EventSubject +ruleEventSubject returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='event' + { + newLeafNode(otherlv_0, grammarAccess.getEventSubjectAccess().getEventKeyword_0()); + } + ( + ( + lv_event_1_0=RULE_ID + { + newLeafNode(lv_event_1_0, grammarAccess.getEventSubjectAccess().getEventIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getEventSubjectRule()); + } + setWithLastConsumed( + $current, + "event", + lv_event_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + } + ) + ) + ) +; + +RULE_INT : ('0'..'9')+; + +RULE_ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*; + +RULE_FLT : RULE_INT '.' RULE_INT; + +RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\''); + +RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; + +RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; + +RULE_WS : (' '|'\t'|'\r'|'\n')+; + +RULE_ANY_OTHER : .; diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacre.tokens b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacre.tokens new file mode 100644 index 0000000..3a75b1f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacre.tokens @@ -0,0 +1,264 @@ +'!'=61 +'#'=30 +'#include'=14 +'$'=98 +'%'=94 +'&'=51 +'('=16 +')'=18 +'*'=82 +'+'=63 +','=17 +'-'=64 +'->'=76 +'-false'=114 +'-true'=113 +'.'=65 +'..'=34 +'...'=111 +'/'=93 +':'=19 +':='=52 +';'=55 +'<'=90 +'<='=91 +'<>'=89 +'='=88 +'=>'=86 +'>'=12 +'>='=92 +'?'=62 +'['=41 +'[]'=54 +']'=42 +'^'=102 +'absent'=127 +'after'=122 +'all'=83 +'always'=129 +'and'=87 +'any'=59 +'append'=108 +'array'=24 +'assert'=112 +'before'=125 +'begin'=56 +'between'=126 +'bool'=33 +'case'=75 +'channel'=23 +'component'=48 +'const'=39 +'deadlockfree'=117 +'dequeue'=100 +'do'=72 +'else'=68 +'elsif'=69 +'empty'=101 +'end'=36 +'enqueue'=107 +'enter'=134 +'event'=139 +'exists'=84 +'false'=110 +'first'=96 +'for'=128 +'foreach'=73 +'from'=47 +'full'=99 +'function'=15 +'if'=66 +'in'=26 +'infinitelyoften'=118 +'init'=46 +'int'=32 +'is'=20 +'lasting'=121 +'leadsto'=130 +'leave'=135 +'length'=97 +'loop'=77 +'ltl'=116 +'mortal'=119 +'nat'=31 +'next'=133 +'none'=28 +'not'=95 +'null'=58 +'of'=25 +'on'=78 +'or'=85 +'out'=27 +'par'=80 +'port'=43 +'precedes'=131 +'present'=120 +'priority'=44 +'process'=40 +'property'=115 +'queue'=38 +'read'=49 +'record'=37 +'release'=132 +'return'=57 +'select'=70 +'state'=136 +'states'=45 +'sync'=29 +'tag'=138 +'then'=67 +'to'=74 +'true'=109 +'type'=22 +'union'=35 +'unless'=53 +'until'=124 +'value'=137 +'var'=21 +'wait'=79 +'where'=60 +'while'=71 +'within'=123 +'write'=50 +'{'=103 +'{|'=105 +'|'=13 +'||'=81 +'|}'=106 +'}'=104 +RULE_ANY_OTHER=11 +RULE_FLT=7 +RULE_ID=4 +RULE_INT=6 +RULE_ML_COMMENT=8 +RULE_SL_COMMENT=9 +RULE_STRING=5 +RULE_WS=10 +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__12=12 +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__13=13 +T__14=14 +T__15=15 +T__16=16 +T__17=17 +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/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacreLexer.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacreLexer.java new file mode 100644 index 0000000..6cff729 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacreLexer.java @@ -0,0 +1,4994 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +package fr.irit.fiacre.xtext.parser.antlr.internal; + +// Hack: Use our own Lexer superclass by means of import. +// Currently there is no other way to specify the superclass for the lexer. +import org.eclipse.xtext.parser.antlr.Lexer; + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings("all") +public class InternalFiacreLexer extends Lexer { + public static final int T__50=50; + 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=4; + public static final int T__131=131; + public static final int T__130=130; + public static final int RULE_INT=6; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=8; + 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__37=37; + public static final int T__38=38; + public static final int T__39=39; + 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__30=30; + public static final int T__31=31; + public static final int T__32=32; + 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 T__46=46; + public static final int T__47=47; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + 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 T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__99=99; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + 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 RULE_FLT=7; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__22=22; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__20=20; + public static final int T__21=21; + public static final int T__122=122; + public static final int T__70=70; + public static final int T__121=121; + public static final int T__71=71; + public static final int T__124=124; + public static final int T__72=72; + public static final int T__123=123; + public static final int T__120=120; + public static final int RULE_STRING=5; + public static final int RULE_SL_COMMENT=9; + 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 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=10; + public static final int RULE_ANY_OTHER=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 InternalFiacreLexer() {;} + public InternalFiacreLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public InternalFiacreLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "InternalFiacre.g"; } + + // $ANTLR start "T__12" + public final void mT__12() throws RecognitionException { + try { + int _type = T__12; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:11:7: ( '>' ) + // InternalFiacre.g:11:9: '>' + { + match('>'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__12" + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:12:7: ( '|' ) + // InternalFiacre.g:12:9: '|' + { + match('|'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:13:7: ( '#include' ) + // InternalFiacre.g:13:9: '#include' + { + match("#include"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__14" + + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { + try { + int _type = T__15; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:14:7: ( 'function' ) + // InternalFiacre.g:14:9: 'function' + { + match("function"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__15" + + // $ANTLR start "T__16" + public final void mT__16() throws RecognitionException { + try { + int _type = T__16; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:15:7: ( '(' ) + // InternalFiacre.g:15:9: '(' + { + match('('); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__16" + + // $ANTLR start "T__17" + public final void mT__17() throws RecognitionException { + try { + int _type = T__17; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:16:7: ( ',' ) + // InternalFiacre.g:16:9: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__17" + + // $ANTLR start "T__18" + public final void mT__18() throws RecognitionException { + try { + int _type = T__18; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:17:7: ( ')' ) + // InternalFiacre.g:17:9: ')' + { + match(')'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__18" + + // $ANTLR start "T__19" + public final void mT__19() throws RecognitionException { + try { + int _type = T__19; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:18:7: ( ':' ) + // InternalFiacre.g:18:9: ':' + { + match(':'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__19" + + // $ANTLR start "T__20" + public final void mT__20() throws RecognitionException { + try { + int _type = T__20; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:19:7: ( 'is' ) + // InternalFiacre.g:19:9: 'is' + { + match("is"); + + + } + + 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; + // InternalFiacre.g:20:7: ( 'var' ) + // InternalFiacre.g:20:9: 'var' + { + match("var"); + + + } + + 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; + // InternalFiacre.g:21:7: ( 'type' ) + // InternalFiacre.g:21:9: 'type' + { + match("type"); + + + } + + 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; + // InternalFiacre.g:22:7: ( 'channel' ) + // InternalFiacre.g:22:9: 'channel' + { + match("channel"); + + + } + + 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; + // InternalFiacre.g:23:7: ( 'array' ) + // InternalFiacre.g:23:9: 'array' + { + match("array"); + + + } + + 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; + // InternalFiacre.g:24:7: ( 'of' ) + // InternalFiacre.g:24:9: 'of' + { + match("of"); + + + } + + 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; + // InternalFiacre.g:25:7: ( 'in' ) + // InternalFiacre.g:25:9: 'in' + { + match("in"); + + + } + + 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; + // InternalFiacre.g:26:7: ( 'out' ) + // InternalFiacre.g:26:9: 'out' + { + match("out"); + + + } + + 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; + // InternalFiacre.g:27:7: ( 'none' ) + // InternalFiacre.g:27:9: 'none' + { + match("none"); + + + } + + 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; + // InternalFiacre.g:28:7: ( 'sync' ) + // InternalFiacre.g:28:9: 'sync' + { + match("sync"); + + + } + + 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; + // InternalFiacre.g:29:7: ( '#' ) + // InternalFiacre.g:29:9: '#' + { + match('#'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__30" + + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { + try { + int _type = T__31; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:30:7: ( 'nat' ) + // InternalFiacre.g:30:9: 'nat' + { + match("nat"); + + + } + + 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; + // InternalFiacre.g:31:7: ( 'int' ) + // InternalFiacre.g:31:9: 'int' + { + match("int"); + + + } + + 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; + // InternalFiacre.g:32:7: ( 'bool' ) + // InternalFiacre.g:32:9: 'bool' + { + match("bool"); + + + } + + 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; + // InternalFiacre.g:33:7: ( '..' ) + // InternalFiacre.g:33:9: '..' + { + match(".."); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__34" + + // $ANTLR start "T__35" + public final void mT__35() throws RecognitionException { + try { + int _type = T__35; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:34:7: ( 'union' ) + // InternalFiacre.g:34:9: 'union' + { + match("union"); + + + } + + 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; + // InternalFiacre.g:35:7: ( 'end' ) + // InternalFiacre.g:35:9: 'end' + { + match("end"); + + + } + + 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; + // InternalFiacre.g:36:7: ( 'record' ) + // InternalFiacre.g:36:9: 'record' + { + match("record"); + + + } + + 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; + // InternalFiacre.g:37:7: ( 'queue' ) + // InternalFiacre.g:37:9: 'queue' + { + match("queue"); + + + } + + 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; + // InternalFiacre.g:38:7: ( 'const' ) + // InternalFiacre.g:38:9: 'const' + { + match("const"); + + + } + + 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; + // InternalFiacre.g:39:7: ( 'process' ) + // InternalFiacre.g:39:9: 'process' + { + match("process"); + + + } + + 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; + // InternalFiacre.g:40:7: ( '[' ) + // InternalFiacre.g:40:9: '[' + { + match('['); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__41" + + // $ANTLR start "T__42" + public final void mT__42() throws RecognitionException { + try { + int _type = T__42; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:41:7: ( ']' ) + // InternalFiacre.g:41:9: ']' + { + match(']'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__42" + + // $ANTLR start "T__43" + public final void mT__43() throws RecognitionException { + try { + int _type = T__43; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:42:7: ( 'port' ) + // InternalFiacre.g:42:9: 'port' + { + match("port"); + + + } + + 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; + // InternalFiacre.g:43:7: ( 'priority' ) + // InternalFiacre.g:43:9: 'priority' + { + match("priority"); + + + } + + 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; + // InternalFiacre.g:44:7: ( 'states' ) + // InternalFiacre.g:44:9: 'states' + { + match("states"); + + + } + + 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; + // InternalFiacre.g:45:7: ( 'init' ) + // InternalFiacre.g:45:9: 'init' + { + match("init"); + + + } + + 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; + // InternalFiacre.g:46:7: ( 'from' ) + // InternalFiacre.g:46:9: 'from' + { + match("from"); + + + } + + 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; + // InternalFiacre.g:47:7: ( 'component' ) + // InternalFiacre.g:47:9: 'component' + { + match("component"); + + + } + + 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; + // InternalFiacre.g:48:7: ( 'read' ) + // InternalFiacre.g:48:9: 'read' + { + match("read"); + + + } + + 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; + // InternalFiacre.g:49:7: ( 'write' ) + // InternalFiacre.g:49:9: 'write' + { + match("write"); + + + } + + 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; + // InternalFiacre.g:50:7: ( '&' ) + // InternalFiacre.g:50:9: '&' + { + match('&'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__51" + + // $ANTLR start "T__52" + public final void mT__52() throws RecognitionException { + try { + int _type = T__52; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:51:7: ( ':=' ) + // InternalFiacre.g:51:9: ':=' + { + match(":="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__52" + + // $ANTLR start "T__53" + public final void mT__53() throws RecognitionException { + try { + int _type = T__53; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:52:7: ( 'unless' ) + // InternalFiacre.g:52:9: 'unless' + { + match("unless"); + + + } + + 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; + // InternalFiacre.g:53:7: ( '[]' ) + // InternalFiacre.g:53:9: '[]' + { + match("[]"); + + + } + + 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; + // InternalFiacre.g:54:7: ( ';' ) + // InternalFiacre.g:54:9: ';' + { + match(';'); + + } + + 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; + // InternalFiacre.g:55:7: ( 'begin' ) + // InternalFiacre.g:55:9: 'begin' + { + match("begin"); + + + } + + 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; + // InternalFiacre.g:56:7: ( 'return' ) + // InternalFiacre.g:56:9: 'return' + { + match("return"); + + + } + + 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; + // InternalFiacre.g:57:7: ( 'null' ) + // InternalFiacre.g:57:9: 'null' + { + match("null"); + + + } + + 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; + // InternalFiacre.g:58:7: ( 'any' ) + // InternalFiacre.g:58:9: 'any' + { + match("any"); + + + } + + 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; + // InternalFiacre.g:59:7: ( 'where' ) + // InternalFiacre.g:59:9: 'where' + { + match("where"); + + + } + + 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; + // InternalFiacre.g:60:7: ( '!' ) + // InternalFiacre.g:60:9: '!' + { + match('!'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__61" + + // $ANTLR start "T__62" + public final void mT__62() throws RecognitionException { + try { + int _type = T__62; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:61:7: ( '?' ) + // InternalFiacre.g:61:9: '?' + { + match('?'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__62" + + // $ANTLR start "T__63" + public final void mT__63() throws RecognitionException { + try { + int _type = T__63; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:62:7: ( '+' ) + // InternalFiacre.g:62:9: '+' + { + match('+'); + + } + + 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; + // InternalFiacre.g:63:7: ( '-' ) + // InternalFiacre.g:63:9: '-' + { + match('-'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__64" + + // $ANTLR start "T__65" + public final void mT__65() throws RecognitionException { + try { + int _type = T__65; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:64:7: ( '.' ) + // InternalFiacre.g:64:9: '.' + { + match('.'); + + } + + 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; + // InternalFiacre.g:65:7: ( 'if' ) + // InternalFiacre.g:65:9: 'if' + { + match("if"); + + + } + + 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; + // InternalFiacre.g:66:7: ( 'then' ) + // InternalFiacre.g:66:9: 'then' + { + match("then"); + + + } + + 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; + // InternalFiacre.g:67:7: ( 'else' ) + // InternalFiacre.g:67:9: 'else' + { + match("else"); + + + } + + 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; + // InternalFiacre.g:68:7: ( 'elsif' ) + // InternalFiacre.g:68:9: 'elsif' + { + match("elsif"); + + + } + + 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; + // InternalFiacre.g:69:7: ( 'select' ) + // InternalFiacre.g:69:9: 'select' + { + match("select"); + + + } + + 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; + // InternalFiacre.g:70:7: ( 'while' ) + // InternalFiacre.g:70:9: 'while' + { + match("while"); + + + } + + 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; + // InternalFiacre.g:71:7: ( 'do' ) + // InternalFiacre.g:71:9: 'do' + { + match("do"); + + + } + + 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; + // InternalFiacre.g:72:7: ( 'foreach' ) + // InternalFiacre.g:72:9: 'foreach' + { + match("foreach"); + + + } + + 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; + // InternalFiacre.g:73:7: ( 'to' ) + // InternalFiacre.g:73:9: 'to' + { + match("to"); + + + } + + 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; + // InternalFiacre.g:74:7: ( 'case' ) + // InternalFiacre.g:74:9: 'case' + { + match("case"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__75" + + // $ANTLR start "T__76" + public final void mT__76() throws RecognitionException { + try { + int _type = T__76; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:75:7: ( '->' ) + // InternalFiacre.g:75:9: '->' + { + match("->"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__76" + + // $ANTLR start "T__77" + public final void mT__77() throws RecognitionException { + try { + int _type = T__77; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:76:7: ( 'loop' ) + // InternalFiacre.g:76:9: 'loop' + { + match("loop"); + + + } + + 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; + // InternalFiacre.g:77:7: ( 'on' ) + // InternalFiacre.g:77:9: 'on' + { + match("on"); + + + } + + 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; + // InternalFiacre.g:78:7: ( 'wait' ) + // InternalFiacre.g:78:9: 'wait' + { + match("wait"); + + + } + + 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; + // InternalFiacre.g:79:7: ( 'par' ) + // InternalFiacre.g:79:9: 'par' + { + match("par"); + + + } + + 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; + // InternalFiacre.g:80:7: ( '||' ) + // InternalFiacre.g:80:9: '||' + { + match("||"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__81" + + // $ANTLR start "T__82" + public final void mT__82() throws RecognitionException { + try { + int _type = T__82; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:81:7: ( '*' ) + // InternalFiacre.g:81:9: '*' + { + match('*'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__82" + + // $ANTLR start "T__83" + public final void mT__83() throws RecognitionException { + try { + int _type = T__83; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:82:7: ( 'all' ) + // InternalFiacre.g:82:9: 'all' + { + match("all"); + + + } + + 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; + // InternalFiacre.g:83:7: ( 'exists' ) + // InternalFiacre.g:83:9: 'exists' + { + match("exists"); + + + } + + 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; + // InternalFiacre.g:84:7: ( 'or' ) + // InternalFiacre.g:84:9: 'or' + { + match("or"); + + + } + + 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; + // InternalFiacre.g:85:7: ( '=>' ) + // InternalFiacre.g:85:9: '=>' + { + match("=>"); + + + } + + 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; + // InternalFiacre.g:86:7: ( 'and' ) + // InternalFiacre.g:86:9: 'and' + { + match("and"); + + + } + + 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; + // InternalFiacre.g:87:7: ( '=' ) + // InternalFiacre.g:87:9: '=' + { + match('='); + + } + + 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; + // InternalFiacre.g:88:7: ( '<>' ) + // InternalFiacre.g:88:9: '<>' + { + match("<>"); + + + } + + 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; + // InternalFiacre.g:89:7: ( '<' ) + // InternalFiacre.g:89:9: '<' + { + match('<'); + + } + + 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; + // InternalFiacre.g:90:7: ( '<=' ) + // InternalFiacre.g:90:9: '<=' + { + match("<="); + + + } + + 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; + // InternalFiacre.g:91:7: ( '>=' ) + // InternalFiacre.g:91:9: '>=' + { + match(">="); + + + } + + 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; + // InternalFiacre.g:92:7: ( '/' ) + // InternalFiacre.g:92:9: '/' + { + match('/'); + + } + + 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; + // InternalFiacre.g:93:7: ( '%' ) + // InternalFiacre.g:93:9: '%' + { + match('%'); + + } + + 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; + // InternalFiacre.g:94:7: ( 'not' ) + // InternalFiacre.g:94:9: 'not' + { + match("not"); + + + } + + 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; + // InternalFiacre.g:95:7: ( 'first' ) + // InternalFiacre.g:95:9: 'first' + { + match("first"); + + + } + + 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; + // InternalFiacre.g:96:7: ( 'length' ) + // InternalFiacre.g:96:9: 'length' + { + match("length"); + + + } + + 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; + // InternalFiacre.g:97:7: ( '$' ) + // InternalFiacre.g:97: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; + // InternalFiacre.g:98:7: ( 'full' ) + // InternalFiacre.g:98:9: 'full' + { + match("full"); + + + } + + 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; + // InternalFiacre.g:99:8: ( 'dequeue' ) + // InternalFiacre.g:99:10: 'dequeue' + { + match("dequeue"); + + + } + + 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; + // InternalFiacre.g:100:8: ( 'empty' ) + // InternalFiacre.g:100:10: 'empty' + { + match("empty"); + + + } + + 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; + // InternalFiacre.g:101:8: ( '^' ) + // InternalFiacre.g:101: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; + // InternalFiacre.g:102:8: ( '{' ) + // InternalFiacre.g:102:10: '{' + { + match('{'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__103" + + // $ANTLR start "T__104" + public final void mT__104() throws RecognitionException { + try { + int _type = T__104; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:103:8: ( '}' ) + // InternalFiacre.g:103:10: '}' + { + match('}'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__104" + + // $ANTLR start "T__105" + public final void mT__105() throws RecognitionException { + try { + int _type = T__105; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:104:8: ( '{|' ) + // InternalFiacre.g:104:10: '{|' + { + match("{|"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__105" + + // $ANTLR start "T__106" + public final void mT__106() throws RecognitionException { + try { + int _type = T__106; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:105:8: ( '|}' ) + // InternalFiacre.g:105:10: '|}' + { + match("|}"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__106" + + // $ANTLR start "T__107" + public final void mT__107() throws RecognitionException { + try { + int _type = T__107; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:106:8: ( 'enqueue' ) + // InternalFiacre.g:106:10: 'enqueue' + { + match("enqueue"); + + + } + + 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; + // InternalFiacre.g:107:8: ( 'append' ) + // InternalFiacre.g:107:10: 'append' + { + match("append"); + + + } + + 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; + // InternalFiacre.g:108:8: ( 'true' ) + // InternalFiacre.g:108:10: 'true' + { + match("true"); + + + } + + 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; + // InternalFiacre.g:109:8: ( 'false' ) + // InternalFiacre.g:109:10: 'false' + { + match("false"); + + + } + + 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; + // InternalFiacre.g:110:8: ( '...' ) + // InternalFiacre.g:110:10: '...' + { + match("..."); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__111" + + // $ANTLR start "T__112" + public final void mT__112() throws RecognitionException { + try { + int _type = T__112; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:111:8: ( 'assert' ) + // InternalFiacre.g:111:10: 'assert' + { + match("assert"); + + + } + + 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; + // InternalFiacre.g:112:8: ( '-true' ) + // InternalFiacre.g:112:10: '-true' + { + match("-true"); + + + } + + 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; + // InternalFiacre.g:113:8: ( '-false' ) + // InternalFiacre.g:113:10: '-false' + { + match("-false"); + + + } + + 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; + // InternalFiacre.g:114:8: ( 'property' ) + // InternalFiacre.g:114:10: 'property' + { + match("property"); + + + } + + 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; + // InternalFiacre.g:115:8: ( 'ltl' ) + // InternalFiacre.g:115:10: 'ltl' + { + match("ltl"); + + + } + + 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; + // InternalFiacre.g:116:8: ( 'deadlockfree' ) + // InternalFiacre.g:116:10: 'deadlockfree' + { + match("deadlockfree"); + + + } + + 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; + // InternalFiacre.g:117:8: ( 'infinitelyoften' ) + // InternalFiacre.g:117:10: 'infinitelyoften' + { + match("infinitelyoften"); + + + } + + 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; + // InternalFiacre.g:118:8: ( 'mortal' ) + // InternalFiacre.g:118:10: 'mortal' + { + match("mortal"); + + + } + + 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; + // InternalFiacre.g:119:8: ( 'present' ) + // InternalFiacre.g:119:10: 'present' + { + match("present"); + + + } + + 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; + // InternalFiacre.g:120:8: ( 'lasting' ) + // InternalFiacre.g:120:10: 'lasting' + { + match("lasting"); + + + } + + 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; + // InternalFiacre.g:121:8: ( 'after' ) + // InternalFiacre.g:121:10: 'after' + { + match("after"); + + + } + + 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; + // InternalFiacre.g:122:8: ( 'within' ) + // InternalFiacre.g:122:10: 'within' + { + match("within"); + + + } + + 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; + // InternalFiacre.g:123:8: ( 'until' ) + // InternalFiacre.g:123:10: 'until' + { + match("until"); + + + } + + 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; + // InternalFiacre.g:124:8: ( 'before' ) + // InternalFiacre.g:124:10: 'before' + { + match("before"); + + + } + + 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; + // InternalFiacre.g:125:8: ( 'between' ) + // InternalFiacre.g:125:10: 'between' + { + match("between"); + + + } + + 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; + // InternalFiacre.g:126:8: ( 'absent' ) + // InternalFiacre.g:126:10: 'absent' + { + match("absent"); + + + } + + 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; + // InternalFiacre.g:127:8: ( 'for' ) + // InternalFiacre.g:127:10: 'for' + { + match("for"); + + + } + + 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; + // InternalFiacre.g:128:8: ( 'always' ) + // InternalFiacre.g:128:10: 'always' + { + match("always"); + + + } + + 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; + // InternalFiacre.g:129:8: ( 'leadsto' ) + // InternalFiacre.g:129:10: 'leadsto' + { + match("leadsto"); + + + } + + 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; + // InternalFiacre.g:130:8: ( 'precedes' ) + // InternalFiacre.g:130:10: 'precedes' + { + match("precedes"); + + + } + + 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; + // InternalFiacre.g:131:8: ( 'release' ) + // InternalFiacre.g:131:10: 'release' + { + match("release"); + + + } + + 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; + // InternalFiacre.g:132:8: ( 'next' ) + // InternalFiacre.g:132:10: 'next' + { + match("next"); + + + } + + 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; + // InternalFiacre.g:133:8: ( 'enter' ) + // InternalFiacre.g:133:10: 'enter' + { + match("enter"); + + + } + + 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; + // InternalFiacre.g:134:8: ( 'leave' ) + // InternalFiacre.g:134:10: 'leave' + { + match("leave"); + + + } + + 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; + // InternalFiacre.g:135:8: ( 'state' ) + // InternalFiacre.g:135:10: 'state' + { + match("state"); + + + } + + 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; + // InternalFiacre.g:136:8: ( 'value' ) + // InternalFiacre.g:136:10: 'value' + { + match("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; + // InternalFiacre.g:137:8: ( 'tag' ) + // InternalFiacre.g:137:10: 'tag' + { + match("tag"); + + + } + + 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; + // InternalFiacre.g:138:8: ( 'event' ) + // InternalFiacre.g:138:10: 'event' + { + match("event"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__139" + + // $ANTLR start "RULE_INT" + public final void mRULE_INT() throws RecognitionException { + try { + int _type = RULE_INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:12629:10: ( ( '0' .. '9' )+ ) + // InternalFiacre.g:12629:12: ( '0' .. '9' )+ + { + // InternalFiacre.g:12629:12: ( '0' .. '9' )+ + int cnt1=0; + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( ((LA1_0>='0' && LA1_0<='9')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // InternalFiacre.g:12629:13: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt1 >= 1 ) break loop1; + EarlyExitException eee = + new EarlyExitException(1, input); + throw eee; + } + cnt1++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_INT" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:12631:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) + // InternalFiacre.g:12631:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* + { + if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // InternalFiacre.g:12631:35: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // InternalFiacre.g: + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop2; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ID" + + // $ANTLR start "RULE_FLT" + public final void mRULE_FLT() throws RecognitionException { + try { + int _type = RULE_FLT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:12633:10: ( RULE_INT '.' RULE_INT ) + // InternalFiacre.g:12633:12: RULE_INT '.' RULE_INT + { + mRULE_INT(); + match('.'); + mRULE_INT(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_FLT" + + // $ANTLR start "RULE_STRING" + public final void mRULE_STRING() throws RecognitionException { + try { + int _type = RULE_STRING; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:12635:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalFiacre.g:12635:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + { + // InternalFiacre.g:12635:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0=='\"') ) { + alt5=1; + } + else if ( (LA5_0=='\'') ) { + alt5=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + } + switch (alt5) { + case 1 : + // InternalFiacre.g:12635:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // InternalFiacre.g:12635:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + loop3: + do { + int alt3=3; + int LA3_0 = input.LA(1); + + if ( (LA3_0=='\\') ) { + alt3=1; + } + else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFF')) ) { + alt3=2; + } + + + switch (alt3) { + case 1 : + // InternalFiacre.g:12635:21: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalFiacre.g:12635:28: ~ ( ( '\\\\' | '\"' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop3; + } + } while (true); + + match('\"'); + + } + break; + case 2 : + // InternalFiacre.g:12635:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + { + match('\''); + // InternalFiacre.g:12635:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + loop4: + do { + int alt4=3; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='\\') ) { + alt4=1; + } + else if ( ((LA4_0>='\u0000' && LA4_0<='&')||(LA4_0>='(' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) { + alt4=2; + } + + + switch (alt4) { + case 1 : + // InternalFiacre.g:12635:54: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalFiacre.g:12635:61: ~ ( ( '\\\\' | '\\'' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop4; + } + } while (true); + + match('\''); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_STRING" + + // $ANTLR start "RULE_ML_COMMENT" + public final void mRULE_ML_COMMENT() throws RecognitionException { + try { + int _type = RULE_ML_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:12637:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalFiacre.g:12637:19: '/*' ( options {greedy=false; } : . )* '*/' + { + match("/*"); + + // InternalFiacre.g:12637:24: ( options {greedy=false; } : . )* + loop6: + do { + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0=='*') ) { + int LA6_1 = input.LA(2); + + if ( (LA6_1=='/') ) { + alt6=2; + } + else if ( ((LA6_1>='\u0000' && LA6_1<='.')||(LA6_1>='0' && LA6_1<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_0>='\u0000' && LA6_0<=')')||(LA6_0>='+' && LA6_0<='\uFFFF')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // InternalFiacre.g:12637:52: . + { + matchAny(); + + } + break; + + default : + break loop6; + } + } 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; + // InternalFiacre.g:12639:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalFiacre.g:12639:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + { + match("//"); + + // InternalFiacre.g:12639:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( ((LA7_0>='\u0000' && LA7_0<='\t')||(LA7_0>='\u000B' && LA7_0<='\f')||(LA7_0>='\u000E' && LA7_0<='\uFFFF')) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // InternalFiacre.g:12639: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 loop7; + } + } while (true); + + // InternalFiacre.g:12639:40: ( ( '\\r' )? '\\n' )? + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0=='\n'||LA9_0=='\r') ) { + alt9=1; + } + switch (alt9) { + case 1 : + // InternalFiacre.g:12639:41: ( '\\r' )? '\\n' + { + // InternalFiacre.g:12639:41: ( '\\r' )? + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0=='\r') ) { + alt8=1; + } + switch (alt8) { + case 1 : + // InternalFiacre.g:12639:41: '\\r' + { + match('\r'); + + } + break; + + } + + match('\n'); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SL_COMMENT" + + // $ANTLR start "RULE_WS" + public final void mRULE_WS() throws RecognitionException { + try { + int _type = RULE_WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:12641:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalFiacre.g:12641:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + { + // InternalFiacre.g:12641:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt10=0; + loop10: + do { + int alt10=2; + int LA10_0 = input.LA(1); + + if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // InternalFiacre.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 ( cnt10 >= 1 ) break loop10; + EarlyExitException eee = + new EarlyExitException(10, input); + throw eee; + } + cnt10++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_WS" + + // $ANTLR start "RULE_ANY_OTHER" + public final void mRULE_ANY_OTHER() throws RecognitionException { + try { + int _type = RULE_ANY_OTHER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalFiacre.g:12643:16: ( . ) + // InternalFiacre.g:12643:18: . + { + matchAny(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + public void mTokens() throws RecognitionException { + // InternalFiacre.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | 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 | RULE_INT | RULE_ID | RULE_FLT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt11=136; + alt11 = dfa11.predict(input); + switch (alt11) { + case 1 : + // InternalFiacre.g:1:10: T__12 + { + mT__12(); + + } + break; + case 2 : + // InternalFiacre.g:1:16: T__13 + { + mT__13(); + + } + break; + case 3 : + // InternalFiacre.g:1:22: T__14 + { + mT__14(); + + } + break; + case 4 : + // InternalFiacre.g:1:28: T__15 + { + mT__15(); + + } + break; + case 5 : + // InternalFiacre.g:1:34: T__16 + { + mT__16(); + + } + break; + case 6 : + // InternalFiacre.g:1:40: T__17 + { + mT__17(); + + } + break; + case 7 : + // InternalFiacre.g:1:46: T__18 + { + mT__18(); + + } + break; + case 8 : + // InternalFiacre.g:1:52: T__19 + { + mT__19(); + + } + break; + case 9 : + // InternalFiacre.g:1:58: T__20 + { + mT__20(); + + } + break; + case 10 : + // InternalFiacre.g:1:64: T__21 + { + mT__21(); + + } + break; + case 11 : + // InternalFiacre.g:1:70: T__22 + { + mT__22(); + + } + break; + case 12 : + // InternalFiacre.g:1:76: T__23 + { + mT__23(); + + } + break; + case 13 : + // InternalFiacre.g:1:82: T__24 + { + mT__24(); + + } + break; + case 14 : + // InternalFiacre.g:1:88: T__25 + { + mT__25(); + + } + break; + case 15 : + // InternalFiacre.g:1:94: T__26 + { + mT__26(); + + } + break; + case 16 : + // InternalFiacre.g:1:100: T__27 + { + mT__27(); + + } + break; + case 17 : + // InternalFiacre.g:1:106: T__28 + { + mT__28(); + + } + break; + case 18 : + // InternalFiacre.g:1:112: T__29 + { + mT__29(); + + } + break; + case 19 : + // InternalFiacre.g:1:118: T__30 + { + mT__30(); + + } + break; + case 20 : + // InternalFiacre.g:1:124: T__31 + { + mT__31(); + + } + break; + case 21 : + // InternalFiacre.g:1:130: T__32 + { + mT__32(); + + } + break; + case 22 : + // InternalFiacre.g:1:136: T__33 + { + mT__33(); + + } + break; + case 23 : + // InternalFiacre.g:1:142: T__34 + { + mT__34(); + + } + break; + case 24 : + // InternalFiacre.g:1:148: T__35 + { + mT__35(); + + } + break; + case 25 : + // InternalFiacre.g:1:154: T__36 + { + mT__36(); + + } + break; + case 26 : + // InternalFiacre.g:1:160: T__37 + { + mT__37(); + + } + break; + case 27 : + // InternalFiacre.g:1:166: T__38 + { + mT__38(); + + } + break; + case 28 : + // InternalFiacre.g:1:172: T__39 + { + mT__39(); + + } + break; + case 29 : + // InternalFiacre.g:1:178: T__40 + { + mT__40(); + + } + break; + case 30 : + // InternalFiacre.g:1:184: T__41 + { + mT__41(); + + } + break; + case 31 : + // InternalFiacre.g:1:190: T__42 + { + mT__42(); + + } + break; + case 32 : + // InternalFiacre.g:1:196: T__43 + { + mT__43(); + + } + break; + case 33 : + // InternalFiacre.g:1:202: T__44 + { + mT__44(); + + } + break; + case 34 : + // InternalFiacre.g:1:208: T__45 + { + mT__45(); + + } + break; + case 35 : + // InternalFiacre.g:1:214: T__46 + { + mT__46(); + + } + break; + case 36 : + // InternalFiacre.g:1:220: T__47 + { + mT__47(); + + } + break; + case 37 : + // InternalFiacre.g:1:226: T__48 + { + mT__48(); + + } + break; + case 38 : + // InternalFiacre.g:1:232: T__49 + { + mT__49(); + + } + break; + case 39 : + // InternalFiacre.g:1:238: T__50 + { + mT__50(); + + } + break; + case 40 : + // InternalFiacre.g:1:244: T__51 + { + mT__51(); + + } + break; + case 41 : + // InternalFiacre.g:1:250: T__52 + { + mT__52(); + + } + break; + case 42 : + // InternalFiacre.g:1:256: T__53 + { + mT__53(); + + } + break; + case 43 : + // InternalFiacre.g:1:262: T__54 + { + mT__54(); + + } + break; + case 44 : + // InternalFiacre.g:1:268: T__55 + { + mT__55(); + + } + break; + case 45 : + // InternalFiacre.g:1:274: T__56 + { + mT__56(); + + } + break; + case 46 : + // InternalFiacre.g:1:280: T__57 + { + mT__57(); + + } + break; + case 47 : + // InternalFiacre.g:1:286: T__58 + { + mT__58(); + + } + break; + case 48 : + // InternalFiacre.g:1:292: T__59 + { + mT__59(); + + } + break; + case 49 : + // InternalFiacre.g:1:298: T__60 + { + mT__60(); + + } + break; + case 50 : + // InternalFiacre.g:1:304: T__61 + { + mT__61(); + + } + break; + case 51 : + // InternalFiacre.g:1:310: T__62 + { + mT__62(); + + } + break; + case 52 : + // InternalFiacre.g:1:316: T__63 + { + mT__63(); + + } + break; + case 53 : + // InternalFiacre.g:1:322: T__64 + { + mT__64(); + + } + break; + case 54 : + // InternalFiacre.g:1:328: T__65 + { + mT__65(); + + } + break; + case 55 : + // InternalFiacre.g:1:334: T__66 + { + mT__66(); + + } + break; + case 56 : + // InternalFiacre.g:1:340: T__67 + { + mT__67(); + + } + break; + case 57 : + // InternalFiacre.g:1:346: T__68 + { + mT__68(); + + } + break; + case 58 : + // InternalFiacre.g:1:352: T__69 + { + mT__69(); + + } + break; + case 59 : + // InternalFiacre.g:1:358: T__70 + { + mT__70(); + + } + break; + case 60 : + // InternalFiacre.g:1:364: T__71 + { + mT__71(); + + } + break; + case 61 : + // InternalFiacre.g:1:370: T__72 + { + mT__72(); + + } + break; + case 62 : + // InternalFiacre.g:1:376: T__73 + { + mT__73(); + + } + break; + case 63 : + // InternalFiacre.g:1:382: T__74 + { + mT__74(); + + } + break; + case 64 : + // InternalFiacre.g:1:388: T__75 + { + mT__75(); + + } + break; + case 65 : + // InternalFiacre.g:1:394: T__76 + { + mT__76(); + + } + break; + case 66 : + // InternalFiacre.g:1:400: T__77 + { + mT__77(); + + } + break; + case 67 : + // InternalFiacre.g:1:406: T__78 + { + mT__78(); + + } + break; + case 68 : + // InternalFiacre.g:1:412: T__79 + { + mT__79(); + + } + break; + case 69 : + // InternalFiacre.g:1:418: T__80 + { + mT__80(); + + } + break; + case 70 : + // InternalFiacre.g:1:424: T__81 + { + mT__81(); + + } + break; + case 71 : + // InternalFiacre.g:1:430: T__82 + { + mT__82(); + + } + break; + case 72 : + // InternalFiacre.g:1:436: T__83 + { + mT__83(); + + } + break; + case 73 : + // InternalFiacre.g:1:442: T__84 + { + mT__84(); + + } + break; + case 74 : + // InternalFiacre.g:1:448: T__85 + { + mT__85(); + + } + break; + case 75 : + // InternalFiacre.g:1:454: T__86 + { + mT__86(); + + } + break; + case 76 : + // InternalFiacre.g:1:460: T__87 + { + mT__87(); + + } + break; + case 77 : + // InternalFiacre.g:1:466: T__88 + { + mT__88(); + + } + break; + case 78 : + // InternalFiacre.g:1:472: T__89 + { + mT__89(); + + } + break; + case 79 : + // InternalFiacre.g:1:478: T__90 + { + mT__90(); + + } + break; + case 80 : + // InternalFiacre.g:1:484: T__91 + { + mT__91(); + + } + break; + case 81 : + // InternalFiacre.g:1:490: T__92 + { + mT__92(); + + } + break; + case 82 : + // InternalFiacre.g:1:496: T__93 + { + mT__93(); + + } + break; + case 83 : + // InternalFiacre.g:1:502: T__94 + { + mT__94(); + + } + break; + case 84 : + // InternalFiacre.g:1:508: T__95 + { + mT__95(); + + } + break; + case 85 : + // InternalFiacre.g:1:514: T__96 + { + mT__96(); + + } + break; + case 86 : + // InternalFiacre.g:1:520: T__97 + { + mT__97(); + + } + break; + case 87 : + // InternalFiacre.g:1:526: T__98 + { + mT__98(); + + } + break; + case 88 : + // InternalFiacre.g:1:532: T__99 + { + mT__99(); + + } + break; + case 89 : + // InternalFiacre.g:1:538: T__100 + { + mT__100(); + + } + break; + case 90 : + // InternalFiacre.g:1:545: T__101 + { + mT__101(); + + } + break; + case 91 : + // InternalFiacre.g:1:552: T__102 + { + mT__102(); + + } + break; + case 92 : + // InternalFiacre.g:1:559: T__103 + { + mT__103(); + + } + break; + case 93 : + // InternalFiacre.g:1:566: T__104 + { + mT__104(); + + } + break; + case 94 : + // InternalFiacre.g:1:573: T__105 + { + mT__105(); + + } + break; + case 95 : + // InternalFiacre.g:1:580: T__106 + { + mT__106(); + + } + break; + case 96 : + // InternalFiacre.g:1:587: T__107 + { + mT__107(); + + } + break; + case 97 : + // InternalFiacre.g:1:594: T__108 + { + mT__108(); + + } + break; + case 98 : + // InternalFiacre.g:1:601: T__109 + { + mT__109(); + + } + break; + case 99 : + // InternalFiacre.g:1:608: T__110 + { + mT__110(); + + } + break; + case 100 : + // InternalFiacre.g:1:615: T__111 + { + mT__111(); + + } + break; + case 101 : + // InternalFiacre.g:1:622: T__112 + { + mT__112(); + + } + break; + case 102 : + // InternalFiacre.g:1:629: T__113 + { + mT__113(); + + } + break; + case 103 : + // InternalFiacre.g:1:636: T__114 + { + mT__114(); + + } + break; + case 104 : + // InternalFiacre.g:1:643: T__115 + { + mT__115(); + + } + break; + case 105 : + // InternalFiacre.g:1:650: T__116 + { + mT__116(); + + } + break; + case 106 : + // InternalFiacre.g:1:657: T__117 + { + mT__117(); + + } + break; + case 107 : + // InternalFiacre.g:1:664: T__118 + { + mT__118(); + + } + break; + case 108 : + // InternalFiacre.g:1:671: T__119 + { + mT__119(); + + } + break; + case 109 : + // InternalFiacre.g:1:678: T__120 + { + mT__120(); + + } + break; + case 110 : + // InternalFiacre.g:1:685: T__121 + { + mT__121(); + + } + break; + case 111 : + // InternalFiacre.g:1:692: T__122 + { + mT__122(); + + } + break; + case 112 : + // InternalFiacre.g:1:699: T__123 + { + mT__123(); + + } + break; + case 113 : + // InternalFiacre.g:1:706: T__124 + { + mT__124(); + + } + break; + case 114 : + // InternalFiacre.g:1:713: T__125 + { + mT__125(); + + } + break; + case 115 : + // InternalFiacre.g:1:720: T__126 + { + mT__126(); + + } + break; + case 116 : + // InternalFiacre.g:1:727: T__127 + { + mT__127(); + + } + break; + case 117 : + // InternalFiacre.g:1:734: T__128 + { + mT__128(); + + } + break; + case 118 : + // InternalFiacre.g:1:741: T__129 + { + mT__129(); + + } + break; + case 119 : + // InternalFiacre.g:1:748: T__130 + { + mT__130(); + + } + break; + case 120 : + // InternalFiacre.g:1:755: T__131 + { + mT__131(); + + } + break; + case 121 : + // InternalFiacre.g:1:762: T__132 + { + mT__132(); + + } + break; + case 122 : + // InternalFiacre.g:1:769: T__133 + { + mT__133(); + + } + break; + case 123 : + // InternalFiacre.g:1:776: T__134 + { + mT__134(); + + } + break; + case 124 : + // InternalFiacre.g:1:783: T__135 + { + mT__135(); + + } + break; + case 125 : + // InternalFiacre.g:1:790: T__136 + { + mT__136(); + + } + break; + case 126 : + // InternalFiacre.g:1:797: T__137 + { + mT__137(); + + } + break; + case 127 : + // InternalFiacre.g:1:804: T__138 + { + mT__138(); + + } + break; + case 128 : + // InternalFiacre.g:1:811: T__139 + { + mT__139(); + + } + break; + case 129 : + // InternalFiacre.g:1:818: RULE_INT + { + mRULE_INT(); + + } + break; + case 130 : + // InternalFiacre.g:1:827: RULE_ID + { + mRULE_ID(); + + } + break; + case 131 : + // InternalFiacre.g:1:835: RULE_FLT + { + mRULE_FLT(); + + } + break; + case 132 : + // InternalFiacre.g:1:844: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 133 : + // InternalFiacre.g:1:856: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 134 : + // InternalFiacre.g:1:872: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 135 : + // InternalFiacre.g:1:888: RULE_WS + { + mRULE_WS(); + + } + break; + case 136 : + // InternalFiacre.g:1:896: RULE_ANY_OTHER + { + mRULE_ANY_OTHER(); + + } + break; + + } + + } + + + protected DFA11 dfa11 = new DFA11(this); + static final String DFA11_eotS = + "\1\uffff\1\64\1\67\1\71\1\77\3\uffff\1\104\11\77\1\146\5\77\1\163\1\uffff\1\77\5\uffff\1\u0081\2\77\1\uffff\1\u008a\1\u008d\1\u0090\3\uffff\1\u0095\1\uffff\1\77\1\u0098\1\uffff\2\62\11\uffff\5\77\6\uffff\1\u00a3\1\u00a7\1\u00a8\3\77\1\u00ad\14\77\1\u00bd\1\77\1\u00bf\1\u00c0\11\77\1\u00ce\1\uffff\13\77\3\uffff\4\77\11\uffff\1\u00e8\5\77\17\uffff\1\77\1\uffff\1\u0098\3\uffff\3\77\1\u00f5\2\77\1\uffff\1\u00f8\2\77\2\uffff\1\u00fb\3\77\1\uffff\1\77\1\u0100\5\77\1\u0106\1\u0107\1\u0108\5\77\1\uffff\1\u010e\2\uffff\1\77\1\u0110\1\u0111\11\77\2\uffff\3\77\1\u011e\17\77\1\u0131\5\77\1\uffff\5\77\1\u013d\3\77\1\u0141\1\u0142\1\77\1\uffff\2\77\1\uffff\1\u0146\1\77\1\uffff\1\77\1\u0149\1\u014a\1\u014b\1\uffff\3\77\1\u014f\1\77\3\uffff\5\77\1\uffff\1\u0156\2\uffff\1\u0157\1\u0158\1\u0159\2\77\1\u015c\6\77\1\uffff\2\77\1\u0165\5\77\1\u016b\10\77\1\u0174\1\uffff\3\77\1\u0178\3\77\1\u017c\3\77\1\uffff\3\77\2\uffff\1\77\1\u0184\1\u0185\1\uffff\1\77\1\u0187\3\uffff\1\77\1\u0189\1\77\1\uffff\1\u018b\3\77\1\u018f\1\77\4\uffff\1\u0192\1\77\1\uffff\1\u0194\2\77\1\u0197\1\77\1\u0199\1\77\1\u019b\1\uffff\1\u019c\1\77\1\u019e\1\u019f\1\77\1\uffff\2\77\1\u01a3\5\77\1\uffff\1\u01a9\1\u01aa\1\u01ab\1\uffff\3\77\1\uffff\2\77\1\u01b1\4\77\2\uffff\1\77\1\uffff\1\77\1\uffff\1\77\1\uffff\1\u01b9\1\u01ba\1\u01bb\1\uffff\1\u01bc\1\u01bd\1\uffff\1\u01be\1\uffff\1\u01bf\1\77\1\uffff\1\u01c1\1\uffff\1\77\2\uffff\1\u01c3\2\uffff\1\u01c4\1\u01c5\1\77\1\uffff\5\77\3\uffff\1\u01cc\2\77\1\u01cf\1\77\1\uffff\1\77\1\u01d2\1\77\1\u01d4\1\77\1\u01d6\1\77\7\uffff\1\u01d8\1\uffff\1\u01d9\3\uffff\1\u01da\1\u01db\2\77\1\u01de\1\77\1\uffff\1\u01e0\1\77\1\uffff\1\u01e2\1\u01e3\1\uffff\1\u01e4\1\uffff\1\77\1\uffff\1\77\4\uffff\1\u01e7\1\u01e8\1\uffff\1\u01e9\1\uffff\1\77\3\uffff\1\77\1\u01ec\3\uffff\2\77\1\uffff\4\77\1\u01f3\1\77\1\uffff\1\77\1\u01f6\1\uffff"; + static final String DFA11_eofS = + "\u01f7\uffff"; + static final String DFA11_minS = + "\1\0\1\75\1\174\1\151\1\141\3\uffff\1\75\1\146\3\141\1\142\1\146\1\141\2\145\1\56\1\156\1\154\1\145\1\165\1\141\1\135\1\uffff\1\141\5\uffff\1\76\1\145\1\141\1\uffff\1\76\1\75\1\52\3\uffff\1\174\1\uffff\1\157\1\56\1\uffff\2\0\11\uffff\1\154\1\157\2\162\1\154\6\uffff\3\60\1\154\1\160\1\145\1\60\1\165\1\147\1\141\1\155\1\163\1\162\1\144\1\154\1\160\1\163\1\164\1\163\1\60\1\164\2\60\1\156\1\164\1\154\1\170\1\156\1\141\1\154\1\157\1\146\1\56\1\uffff\1\151\1\144\1\163\1\151\1\160\1\145\1\141\2\145\2\162\3\uffff\1\151\1\145\1\151\1\164\11\uffff\1\60\1\141\1\157\1\141\1\154\1\163\17\uffff\1\162\1\uffff\1\56\3\uffff\1\143\1\154\1\155\1\60\2\163\1\uffff\1\60\1\164\1\151\2\uffff\1\60\1\165\1\145\1\156\1\uffff\1\145\1\60\1\156\1\163\1\160\1\145\1\141\3\60\1\141\4\145\1\uffff\1\60\2\uffff\1\145\2\60\1\154\1\164\1\143\1\164\1\145\1\154\1\151\1\157\1\167\2\uffff\1\157\1\145\1\151\1\60\1\165\2\145\1\163\1\164\1\156\1\157\1\144\1\165\1\145\1\165\1\143\1\157\1\143\1\164\1\60\1\164\1\162\1\154\1\164\1\150\1\uffff\1\165\1\144\1\160\1\147\1\144\1\60\3\164\2\60\1\141\1\uffff\1\164\1\145\1\uffff\1\60\1\156\1\uffff\1\145\3\60\1\uffff\1\156\1\164\1\157\1\60\1\171\3\uffff\1\171\1\156\2\162\1\156\1\uffff\1\60\2\uffff\3\60\1\145\1\143\1\60\1\156\1\162\1\145\1\156\1\163\1\154\1\uffff\1\145\1\162\1\60\1\146\1\164\1\171\1\164\1\162\1\60\1\162\1\141\3\145\1\162\2\145\1\60\1\uffff\3\145\1\60\1\151\1\145\1\154\1\60\1\164\1\163\1\145\1\uffff\1\151\1\141\1\151\2\uffff\1\143\2\60\1\uffff\1\151\1\60\3\uffff\1\145\1\60\1\156\1\uffff\1\60\1\163\1\144\1\164\1\60\1\164\4\uffff\1\60\1\164\1\uffff\1\60\2\145\1\60\1\163\1\60\1\165\1\60\1\uffff\1\60\1\163\2\60\1\144\1\uffff\1\156\1\163\1\60\1\163\1\162\1\151\1\156\1\144\1\uffff\3\60\1\uffff\1\156\1\165\1\157\1\uffff\1\150\1\164\1\60\1\156\1\154\1\157\1\150\2\uffff\1\164\1\uffff\1\154\1\uffff\1\145\1\uffff\3\60\1\uffff\2\60\1\uffff\1\60\1\uffff\1\60\1\156\1\uffff\1\60\1\uffff\1\145\2\uffff\1\60\2\uffff\2\60\1\145\1\uffff\1\163\3\164\1\145\3\uffff\1\60\1\145\1\143\1\60\1\157\1\uffff\1\147\1\60\1\156\1\60\1\145\1\60\1\156\7\uffff\1\60\1\uffff\1\60\3\uffff\2\60\2\171\1\60\1\163\1\uffff\1\60\1\153\1\uffff\2\60\1\uffff\1\60\1\uffff\1\154\1\uffff\1\164\4\uffff\2\60\1\uffff\1\60\1\uffff\1\146\3\uffff\1\171\1\60\3\uffff\1\162\1\157\1\uffff\1\145\1\146\1\145\1\164\1\60\1\145\1\uffff\1\156\1\60\1\uffff"; + static final String DFA11_maxS = + "\1\uffff\1\75\1\175\1\151\1\165\3\uffff\1\75\1\163\1\141\1\171\1\157\1\163\2\165\1\171\1\157\1\56\1\156\1\170\1\145\1\165\1\162\1\135\1\uffff\1\162\5\uffff\1\164\1\157\1\164\1\uffff\2\76\1\57\3\uffff\1\174\1\uffff\1\157\1\71\1\uffff\2\uffff\11\uffff\1\156\1\157\2\162\1\154\6\uffff\3\172\1\162\1\160\1\145\1\172\1\165\1\147\1\141\1\156\1\163\1\162\1\171\1\167\1\160\1\163\1\164\1\163\1\172\1\164\2\172\2\164\1\154\1\170\1\156\1\141\1\154\1\157\1\164\1\56\1\uffff\2\164\1\163\1\151\1\160\1\145\1\164\1\145\1\157\2\162\3\uffff\3\151\1\164\11\uffff\1\172\1\161\1\157\1\156\1\154\1\163\17\uffff\1\162\1\uffff\1\71\3\uffff\1\143\1\154\1\155\1\172\2\163\1\uffff\1\172\1\164\1\151\2\uffff\1\172\1\165\1\145\1\156\1\uffff\1\145\1\172\1\156\1\163\1\160\1\145\1\141\3\172\1\141\4\145\1\uffff\1\172\2\uffff\1\145\2\172\1\154\1\164\1\143\1\164\1\145\1\154\1\151\1\157\1\167\2\uffff\1\157\1\145\1\151\1\172\1\165\1\145\1\151\1\163\1\164\1\156\1\157\1\144\1\165\1\145\1\165\1\160\1\157\1\163\1\164\1\172\1\164\1\162\1\154\1\164\1\150\1\uffff\1\165\1\144\1\160\1\147\1\166\1\172\3\164\2\172\1\141\1\uffff\1\164\1\145\1\uffff\1\172\1\156\1\uffff\1\145\3\172\1\uffff\1\156\1\164\1\157\1\172\1\171\3\uffff\1\171\1\156\2\162\1\156\1\uffff\1\172\2\uffff\3\172\1\145\1\143\1\172\1\156\1\162\1\145\1\156\1\163\1\154\1\uffff\1\145\1\162\1\172\1\146\1\164\1\171\1\164\1\162\1\172\1\162\1\141\3\145\1\162\2\145\1\172\1\uffff\3\145\1\172\1\151\1\145\1\154\1\172\1\164\1\163\1\145\1\uffff\1\151\1\141\1\151\2\uffff\1\143\2\172\1\uffff\1\151\1\172\3\uffff\1\145\1\172\1\156\1\uffff\1\172\1\163\1\144\1\164\1\172\1\164\4\uffff\1\172\1\164\1\uffff\1\172\2\145\1\172\1\163\1\172\1\165\1\172\1\uffff\1\172\1\163\2\172\1\144\1\uffff\1\156\1\163\1\172\1\163\1\162\1\151\1\156\1\144\1\uffff\3\172\1\uffff\1\156\1\165\1\157\1\uffff\1\150\1\164\1\172\1\156\1\154\1\157\1\150\2\uffff\1\164\1\uffff\1\154\1\uffff\1\145\1\uffff\3\172\1\uffff\2\172\1\uffff\1\172\1\uffff\1\172\1\156\1\uffff\1\172\1\uffff\1\145\2\uffff\1\172\2\uffff\2\172\1\145\1\uffff\1\163\3\164\1\145\3\uffff\1\172\1\145\1\143\1\172\1\157\1\uffff\1\147\1\172\1\156\1\172\1\145\1\172\1\156\7\uffff\1\172\1\uffff\1\172\3\uffff\2\172\2\171\1\172\1\163\1\uffff\1\172\1\153\1\uffff\2\172\1\uffff\1\172\1\uffff\1\154\1\uffff\1\164\4\uffff\2\172\1\uffff\1\172\1\uffff\1\146\3\uffff\1\171\1\172\3\uffff\1\162\1\157\1\uffff\1\145\1\146\1\145\1\164\1\172\1\145\1\uffff\1\156\1\172\1\uffff"; + static final String DFA11_acceptS = + "\5\uffff\1\5\1\6\1\7\21\uffff\1\37\1\uffff\1\50\1\54\1\62\1\63\1\64\3\uffff\1\107\3\uffff\1\123\1\127\1\133\1\uffff\1\135\2\uffff\1\u0082\2\uffff\1\u0087\1\u0088\1\121\1\1\1\106\1\137\1\2\1\3\1\23\5\uffff\1\u0082\1\5\1\6\1\7\1\51\1\10\41\uffff\1\66\13\uffff\1\53\1\36\1\37\4\uffff\1\50\1\54\1\62\1\63\1\64\1\101\1\146\1\147\1\65\6\uffff\1\107\1\113\1\115\1\116\1\120\1\117\1\u0085\1\u0086\1\122\1\123\1\127\1\133\1\136\1\134\1\135\1\uffff\1\u0081\1\uffff\1\u0083\1\u0084\1\u0087\6\uffff\1\11\3\uffff\1\17\1\67\4\uffff\1\77\17\uffff\1\16\1\uffff\1\103\1\112\14\uffff\1\144\1\27\31\uffff\1\75\14\uffff\1\165\2\uffff\1\25\2\uffff\1\12\4\uffff\1\177\5\uffff\1\60\1\114\1\110\5\uffff\1\20\1\uffff\1\124\1\24\14\uffff\1\31\22\uffff\1\105\13\uffff\1\151\3\uffff\1\130\1\44\3\uffff\1\43\2\uffff\1\13\1\70\1\142\3\uffff\1\100\6\uffff\1\21\1\57\1\172\1\22\2\uffff\1\26\10\uffff\1\71\5\uffff\1\46\10\uffff\1\40\3\uffff\1\104\3\uffff\1\102\7\uffff\1\125\1\143\1\uffff\1\176\1\uffff\1\34\1\uffff\1\15\3\uffff\1\157\2\uffff\1\175\1\uffff\1\55\2\uffff\1\30\1\uffff\1\161\1\uffff\1\173\1\72\1\uffff\1\132\1\u0080\3\uffff\1\33\5\uffff\1\47\1\61\1\74\5\uffff\1\174\7\uffff\1\166\1\141\1\145\1\164\1\42\1\73\1\162\1\uffff\1\52\1\uffff\1\111\1\32\1\56\6\uffff\1\160\2\uffff\1\126\2\uffff\1\154\1\uffff\1\76\1\uffff\1\14\1\uffff\1\163\1\140\1\171\1\35\2\uffff\1\155\1\uffff\1\131\1\uffff\1\167\1\156\1\4\2\uffff\1\150\1\41\1\170\2\uffff\1\45\6\uffff\1\152\2\uffff\1\153"; + static final String DFA11_specialS = + "\1\0\56\uffff\1\1\1\2\u01c6\uffff}>"; + static final String[] DFA11_transitionS = { + "\11\62\2\61\2\62\1\61\22\62\1\61\1\35\1\57\1\3\1\50\1\47\1\33\1\60\1\5\1\7\1\43\1\37\1\6\1\40\1\22\1\46\12\55\1\10\1\34\1\45\1\44\1\1\1\36\1\62\32\56\1\30\1\62\1\31\1\51\1\56\1\62\1\15\1\21\1\14\1\41\1\24\1\4\2\56\1\11\2\56\1\42\1\54\1\17\1\16\1\27\1\26\1\25\1\20\1\13\1\23\1\12\1\32\3\56\1\52\1\2\1\53\uff82\62", + "\1\63", + "\1\65\1\66", + "\1\70", + "\1\76\7\uffff\1\75\5\uffff\1\74\2\uffff\1\73\2\uffff\1\72", + "", + "", + "", + "\1\103", + "\1\107\7\uffff\1\106\4\uffff\1\105", + "\1\110", + "\1\115\6\uffff\1\112\6\uffff\1\113\2\uffff\1\114\6\uffff\1\111", + "\1\120\6\uffff\1\116\6\uffff\1\117", + "\1\127\3\uffff\1\126\5\uffff\1\123\1\uffff\1\122\1\uffff\1\124\1\uffff\1\121\1\125", + "\1\130\7\uffff\1\132\3\uffff\1\133\2\uffff\1\131", + "\1\135\3\uffff\1\137\11\uffff\1\134\5\uffff\1\136", + "\1\142\16\uffff\1\141\4\uffff\1\140", + "\1\144\11\uffff\1\143", + "\1\145", + "\1\147", + "\1\151\1\153\1\150\7\uffff\1\154\1\uffff\1\152", + "\1\155", + "\1\156", + "\1\161\15\uffff\1\160\2\uffff\1\157", + "\1\162", + "", + "\1\167\6\uffff\1\166\1\170\10\uffff\1\165", + "", + "", + "", + "", + "", + "\1\176\47\uffff\1\u0080\15\uffff\1\177", + "\1\u0083\11\uffff\1\u0082", + "\1\u0087\3\uffff\1\u0085\11\uffff\1\u0084\4\uffff\1\u0086", + "", + "\1\u0089", + "\1\u008c\1\u008b", + "\1\u008e\4\uffff\1\u008f", + "", + "", + "", + "\1\u0094", + "", + "\1\u0097", + "\1\u009a\1\uffff\12\u0099", + "", + "\0\u009b", + "\0\u009b", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\u009e\1\uffff\1\u009d", + "\1\u009f", + "\1\u00a0", + "\1\u00a1", + "\1\u00a2", + "", + "", + "", + "", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\5\77\1\u00a6\2\77\1\u00a5\12\77\1\u00a4\6\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u00aa\5\uffff\1\u00a9", + "\1\u00ab", + "\1\u00ac", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u00ae", + "\1\u00af", + "\1\u00b0", + "\1\u00b2\1\u00b1", + "\1\u00b3", + "\1\u00b4", + "\1\u00b6\24\uffff\1\u00b5", + "\1\u00b7\12\uffff\1\u00b8", + "\1\u00b9", + "\1\u00ba", + "\1\u00bb", + "\1\u00bc", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u00be", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u00c1\5\uffff\1\u00c2", + "\1\u00c3", + "\1\u00c4", + "\1\u00c5", + "\1\u00c6", + "\1\u00c7", + "\1\u00c8", + "\1\u00c9", + "\1\u00cb\1\u00ca\14\uffff\1\u00cc", + "\1\u00cd", + "", + "\1\u00cf\2\uffff\1\u00d0\7\uffff\1\u00d1", + "\1\u00d2\14\uffff\1\u00d3\2\uffff\1\u00d4", + "\1\u00d5", + "\1\u00d6", + "\1\u00d7", + "\1\u00d8", + "\1\u00da\1\uffff\1\u00d9\10\uffff\1\u00dc\7\uffff\1\u00db", + "\1\u00dd", + "\1\u00e0\3\uffff\1\u00df\5\uffff\1\u00de", + "\1\u00e1", + "\1\u00e2", + "", + "", + "", + "\1\u00e3", + "\1\u00e4\3\uffff\1\u00e5", + "\1\u00e6", + "\1\u00e7", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u00ea\17\uffff\1\u00e9", + "\1\u00eb", + "\1\u00ed\14\uffff\1\u00ec", + "\1\u00ee", + "\1\u00ef", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\u00f0", + "", + "\1\u009a\1\uffff\12\u0099", + "", + "", + "", + "\1\u00f1", + "\1\u00f2", + "\1\u00f3", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\4\77\1\u00f4\25\77", + "\1\u00f6", + "\1\u00f7", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u00f9", + "\1\u00fa", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u00fc", + "\1\u00fd", + "\1\u00fe", + "", + "\1\u00ff", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0101", + "\1\u0102", + "\1\u0103", + "\1\u0104", + "\1\u0105", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0109", + "\1\u010a", + "\1\u010b", + "\1\u010c", + "\1\u010d", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "", + "\1\u010f", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0112", + "\1\u0113", + "\1\u0114", + "\1\u0115", + "\1\u0116", + "\1\u0117", + "\1\u0118", + "\1\u0119", + "\1\u011a", + "", + "", + "\1\u011b", + "\1\u011c", + "\1\u011d", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u011f", + "\1\u0120", + "\1\u0121\3\uffff\1\u0122", + "\1\u0123", + "\1\u0124", + "\1\u0125", + "\1\u0126", + "\1\u0127", + "\1\u0128", + "\1\u0129", + "\1\u012a", + "\1\u012b\14\uffff\1\u012c", + "\1\u012d", + "\1\u012f\17\uffff\1\u012e", + "\1\u0130", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0132", + "\1\u0133", + "\1\u0134", + "\1\u0135", + "\1\u0136", + "", + "\1\u0137", + "\1\u0138", + "\1\u0139", + "\1\u013a", + "\1\u013b\21\uffff\1\u013c", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u013e", + "\1\u013f", + "\1\u0140", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0143", + "", + "\1\u0144", + "\1\u0145", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0147", + "", + "\1\u0148", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\1\u014c", + "\1\u014d", + "\1\u014e", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0150", + "", + "", + "", + "\1\u0151", + "\1\u0152", + "\1\u0153", + "\1\u0154", + "\1\u0155", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u015a", + "\1\u015b", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u015d", + "\1\u015e", + "\1\u015f", + "\1\u0160", + "\1\u0161", + "\1\u0162", + "", + "\1\u0163", + "\1\u0164", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0166", + "\1\u0167", + "\1\u0168", + "\1\u0169", + "\1\u016a", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u016c", + "\1\u016d", + "\1\u016e", + "\1\u016f", + "\1\u0170", + "\1\u0171", + "\1\u0172", + "\1\u0173", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\1\u0175", + "\1\u0176", + "\1\u0177", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0179", + "\1\u017a", + "\1\u017b", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u017d", + "\1\u017e", + "\1\u017f", + "", + "\1\u0180", + "\1\u0181", + "\1\u0182", + "", + "", + "\1\u0183", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\1\u0186", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "", + "", + "\1\u0188", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u018a", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u018c", + "\1\u018d", + "\1\u018e", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0190", + "", + "", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\22\77\1\u0191\7\77", + "\1\u0193", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0195", + "\1\u0196", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u0198", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u019a", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u019d", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01a0", + "", + "\1\u01a1", + "\1\u01a2", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01a4", + "\1\u01a5", + "\1\u01a6", + "\1\u01a7", + "\1\u01a8", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\1\u01ac", + "\1\u01ad", + "\1\u01ae", + "", + "\1\u01af", + "\1\u01b0", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01b2", + "\1\u01b3", + "\1\u01b4", + "\1\u01b5", + "", + "", + "\1\u01b6", + "", + "\1\u01b7", + "", + "\1\u01b8", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01c0", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\1\u01c2", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01c6", + "", + "\1\u01c7", + "\1\u01c8", + "\1\u01c9", + "\1\u01ca", + "\1\u01cb", + "", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01cd", + "\1\u01ce", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01d0", + "", + "\1\u01d1", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01d3", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01d5", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01d7", + "", + "", + "", + "", + "", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01dc", + "\1\u01dd", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01df", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01e1", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\1\u01e5", + "", + "\1\u01e6", + "", + "", + "", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "\1\u01ea", + "", + "", + "", + "\1\u01eb", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "", + "", + "", + "\1\u01ed", + "\1\u01ee", + "", + "\1\u01ef", + "\1\u01f0", + "\1\u01f1", + "\1\u01f2", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "\1\u01f4", + "", + "\1\u01f5", + "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77", + "" + }; + + static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS); + static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS); + static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS); + static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS); + static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS); + static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS); + static final short[][] DFA11_transition; + + static { + int numStates = DFA11_transitionS.length; + DFA11_transition = new short[numStates][]; + for (int i=0; i') ) {s = 1;} + + else if ( (LA11_0=='|') ) {s = 2;} + + else if ( (LA11_0=='#') ) {s = 3;} + + else if ( (LA11_0=='f') ) {s = 4;} + + else if ( (LA11_0=='(') ) {s = 5;} + + else if ( (LA11_0==',') ) {s = 6;} + + else if ( (LA11_0==')') ) {s = 7;} + + else if ( (LA11_0==':') ) {s = 8;} + + else if ( (LA11_0=='i') ) {s = 9;} + + else if ( (LA11_0=='v') ) {s = 10;} + + else if ( (LA11_0=='t') ) {s = 11;} + + else if ( (LA11_0=='c') ) {s = 12;} + + else if ( (LA11_0=='a') ) {s = 13;} + + else if ( (LA11_0=='o') ) {s = 14;} + + else if ( (LA11_0=='n') ) {s = 15;} + + else if ( (LA11_0=='s') ) {s = 16;} + + else if ( (LA11_0=='b') ) {s = 17;} + + else if ( (LA11_0=='.') ) {s = 18;} + + else if ( (LA11_0=='u') ) {s = 19;} + + else if ( (LA11_0=='e') ) {s = 20;} + + else if ( (LA11_0=='r') ) {s = 21;} + + else if ( (LA11_0=='q') ) {s = 22;} + + else if ( (LA11_0=='p') ) {s = 23;} + + else if ( (LA11_0=='[') ) {s = 24;} + + else if ( (LA11_0==']') ) {s = 25;} + + else if ( (LA11_0=='w') ) {s = 26;} + + else if ( (LA11_0=='&') ) {s = 27;} + + else if ( (LA11_0==';') ) {s = 28;} + + else if ( (LA11_0=='!') ) {s = 29;} + + else if ( (LA11_0=='?') ) {s = 30;} + + else if ( (LA11_0=='+') ) {s = 31;} + + else if ( (LA11_0=='-') ) {s = 32;} + + else if ( (LA11_0=='d') ) {s = 33;} + + else if ( (LA11_0=='l') ) {s = 34;} + + else if ( (LA11_0=='*') ) {s = 35;} + + else if ( (LA11_0=='=') ) {s = 36;} + + else if ( (LA11_0=='<') ) {s = 37;} + + else if ( (LA11_0=='/') ) {s = 38;} + + else if ( (LA11_0=='%') ) {s = 39;} + + else if ( (LA11_0=='$') ) {s = 40;} + + else if ( (LA11_0=='^') ) {s = 41;} + + else if ( (LA11_0=='{') ) {s = 42;} + + else if ( (LA11_0=='}') ) {s = 43;} + + else if ( (LA11_0=='m') ) {s = 44;} + + else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 45;} + + else if ( ((LA11_0>='A' && LA11_0<='Z')||LA11_0=='_'||(LA11_0>='g' && LA11_0<='h')||(LA11_0>='j' && LA11_0<='k')||(LA11_0>='x' && LA11_0<='z')) ) {s = 46;} + + else if ( (LA11_0=='\"') ) {s = 47;} + + else if ( (LA11_0=='\'') ) {s = 48;} + + else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 49;} + + else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||LA11_0=='@'||LA11_0=='\\'||LA11_0=='`'||(LA11_0>='~' && LA11_0<='\uFFFF')) ) {s = 50;} + + if ( s>=0 ) return s; + break; + case 1 : + int LA11_47 = input.LA(1); + + s = -1; + if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 155;} + + else s = 50; + + if ( s>=0 ) return s; + break; + case 2 : + int LA11_48 = input.LA(1); + + s = -1; + if ( ((LA11_48>='\u0000' && LA11_48<='\uFFFF')) ) {s = 155;} + + else s = 50; + + if ( s>=0 ) return s; + break; + } + NoViableAltException nvae = + new NoViableAltException(getDescription(), 11, _s, input); + error(nvae); + throw nvae; + } + } + + +} \ No newline at end of file diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacreParser.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacreParser.java new file mode 100644 index 0000000..9d73ade --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/parser/antlr/internal/InternalFiacreParser.java @@ -0,0 +1,38063 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +package fr.irit.fiacre.xtext.parser.antlr.internal; + +import org.eclipse.xtext.*; +import org.eclipse.xtext.parser.*; +import org.eclipse.xtext.parser.impl.*; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; +import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; +import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken; +import fr.irit.fiacre.xtext.services.FiacreGrammarAccess; + + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +@SuppressWarnings("all") +public class InternalFiacreParser extends AbstractInternalAntlrParser { + public static final String[] tokenNames = new String[] { + "", "", "", "", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_FLT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'>'", "'|'", "'#include'", "'function'", "'('", "','", "')'", "':'", "'is'", "'var'", "'type'", "'channel'", "'array'", "'of'", "'in'", "'out'", "'none'", "'sync'", "'#'", "'nat'", "'int'", "'bool'", "'..'", "'union'", "'end'", "'record'", "'queue'", "'const'", "'process'", "'['", "']'", "'port'", "'priority'", "'states'", "'init'", "'from'", "'component'", "'read'", "'write'", "'&'", "':='", "'unless'", "'[]'", "';'", "'begin'", "'return'", "'null'", "'any'", "'where'", "'!'", "'?'", "'+'", "'-'", "'.'", "'if'", "'then'", "'else'", "'elsif'", "'select'", "'while'", "'do'", "'foreach'", "'to'", "'case'", "'->'", "'loop'", "'on'", "'wait'", "'par'", "'||'", "'*'", "'all'", "'exists'", "'or'", "'=>'", "'and'", "'='", "'<>'", "'<'", "'<='", "'>='", "'/'", "'%'", "'not'", "'first'", "'length'", "'$'", "'full'", "'dequeue'", "'empty'", "'^'", "'{'", "'}'", "'{|'", "'|}'", "'enqueue'", "'append'", "'true'", "'false'", "'...'", "'assert'", "'-true'", "'-false'", "'property'", "'ltl'", "'deadlockfree'", "'infinitelyoften'", "'mortal'", "'present'", "'lasting'", "'after'", "'within'", "'until'", "'before'", "'between'", "'absent'", "'for'", "'always'", "'leadsto'", "'precedes'", "'release'", "'next'", "'enter'", "'leave'", "'state'", "'value'", "'tag'", "'event'" + }; + public static final int T__50=50; + 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=4; + public static final int T__131=131; + public static final int T__130=130; + public static final int RULE_INT=6; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=8; + 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__37=37; + public static final int T__38=38; + public static final int T__39=39; + 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__30=30; + public static final int T__31=31; + public static final int T__32=32; + 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 T__46=46; + public static final int T__47=47; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + 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 T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__99=99; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + 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 RULE_FLT=7; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__22=22; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__20=20; + public static final int T__21=21; + public static final int T__122=122; + public static final int T__70=70; + public static final int T__121=121; + public static final int T__71=71; + public static final int T__124=124; + public static final int T__72=72; + public static final int T__123=123; + public static final int T__120=120; + public static final int RULE_STRING=5; + public static final int RULE_SL_COMMENT=9; + 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 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=10; + public static final int RULE_ANY_OTHER=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 InternalFiacreParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public InternalFiacreParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + + } + + + public String[] getTokenNames() { return InternalFiacreParser.tokenNames; } + public String getGrammarFileName() { return "InternalFiacre.g"; } + + + + /* + This grammar contains a lot of empty actions to work around a bug in ANTLR. + Otherwise the ANTLR tool will create synpreds that cannot be compiled in some rare cases. + */ + + private FiacreGrammarAccess grammarAccess; + + public InternalFiacreParser(TokenStream input, FiacreGrammarAccess grammarAccess) { + this(input); + this.grammarAccess = grammarAccess; + registerRules(grammarAccess.getGrammar()); + } + + @Override + protected String getFirstRuleName() { + return "Model"; + } + + @Override + protected FiacreGrammarAccess getGrammarAccess() { + return grammarAccess; + } + + + + + // $ANTLR start "entryRuleModel" + // InternalFiacre.g:70:1: entryRuleModel returns [EObject current=null] : iv_ruleModel= ruleModel EOF ; + public final EObject entryRuleModel() throws RecognitionException { + EObject current = null; + + EObject iv_ruleModel = null; + + + try { + // InternalFiacre.g:70:46: (iv_ruleModel= ruleModel EOF ) + // InternalFiacre.g:71:2: iv_ruleModel= ruleModel EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getModelRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleModel=ruleModel(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleModel; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleModel" + + + // $ANTLR start "ruleModel" + // InternalFiacre.g:77:1: ruleModel returns [EObject current=null] : ( () ( (lv_imports_1_0= ruleImportDeclaration ) )* ( ( (lv_declarations_2_0= ruleDeclaration ) ) | ( (lv_requirements_3_0= ruleRequirement ) ) | ( (lv_root_4_0= ruleRoot ) ) )* ) ; + public final EObject ruleModel() throws RecognitionException { + EObject current = null; + + EObject lv_imports_1_0 = null; + + EObject lv_declarations_2_0 = null; + + EObject lv_requirements_3_0 = null; + + EObject lv_root_4_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:83:2: ( ( () ( (lv_imports_1_0= ruleImportDeclaration ) )* ( ( (lv_declarations_2_0= ruleDeclaration ) ) | ( (lv_requirements_3_0= ruleRequirement ) ) | ( (lv_root_4_0= ruleRoot ) ) )* ) ) + // InternalFiacre.g:84:2: ( () ( (lv_imports_1_0= ruleImportDeclaration ) )* ( ( (lv_declarations_2_0= ruleDeclaration ) ) | ( (lv_requirements_3_0= ruleRequirement ) ) | ( (lv_root_4_0= ruleRoot ) ) )* ) + { + // InternalFiacre.g:84:2: ( () ( (lv_imports_1_0= ruleImportDeclaration ) )* ( ( (lv_declarations_2_0= ruleDeclaration ) ) | ( (lv_requirements_3_0= ruleRequirement ) ) | ( (lv_root_4_0= ruleRoot ) ) )* ) + // InternalFiacre.g:85:3: () ( (lv_imports_1_0= ruleImportDeclaration ) )* ( ( (lv_declarations_2_0= ruleDeclaration ) ) | ( (lv_requirements_3_0= ruleRequirement ) ) | ( (lv_root_4_0= ruleRoot ) ) )* + { + // InternalFiacre.g:85:3: () + // InternalFiacre.g:86:4: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getModelAccess().getModelAction_0(), + current); + + } + + } + + // InternalFiacre.g:95:3: ( (lv_imports_1_0= ruleImportDeclaration ) )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==14) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // InternalFiacre.g:96:4: (lv_imports_1_0= ruleImportDeclaration ) + { + // InternalFiacre.g:96:4: (lv_imports_1_0= ruleImportDeclaration ) + // InternalFiacre.g:97:5: lv_imports_1_0= ruleImportDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getModelAccess().getImportsImportDeclarationParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_3); + lv_imports_1_0=ruleImportDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getModelRule()); + } + add( + current, + "imports", + lv_imports_1_0, + "fr.irit.fiacre.xtext.Fiacre.ImportDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + break loop1; + } + } while (true); + + // InternalFiacre.g:114:3: ( ( (lv_declarations_2_0= ruleDeclaration ) ) | ( (lv_requirements_3_0= ruleRequirement ) ) | ( (lv_root_4_0= ruleRoot ) ) )* + loop2: + do { + int alt2=4; + switch ( input.LA(1) ) { + case 15: + case 22: + case 23: + case 39: + case 40: + case 48: + case 115: + { + alt2=1; + } + break; + case 112: + { + alt2=2; + } + break; + case RULE_ID: + { + alt2=3; + } + break; + + } + + switch (alt2) { + case 1 : + // InternalFiacre.g:115:4: ( (lv_declarations_2_0= ruleDeclaration ) ) + { + // InternalFiacre.g:115:4: ( (lv_declarations_2_0= ruleDeclaration ) ) + // InternalFiacre.g:116:5: (lv_declarations_2_0= ruleDeclaration ) + { + // InternalFiacre.g:116:5: (lv_declarations_2_0= ruleDeclaration ) + // InternalFiacre.g:117:6: lv_declarations_2_0= ruleDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_2_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_4); + lv_declarations_2_0=ruleDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getModelRule()); + } + add( + current, + "declarations", + lv_declarations_2_0, + "fr.irit.fiacre.xtext.Fiacre.Declaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:135:4: ( (lv_requirements_3_0= ruleRequirement ) ) + { + // InternalFiacre.g:135:4: ( (lv_requirements_3_0= ruleRequirement ) ) + // InternalFiacre.g:136:5: (lv_requirements_3_0= ruleRequirement ) + { + // InternalFiacre.g:136:5: (lv_requirements_3_0= ruleRequirement ) + // InternalFiacre.g:137:6: lv_requirements_3_0= ruleRequirement + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getModelAccess().getRequirementsRequirementParserRuleCall_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_4); + lv_requirements_3_0=ruleRequirement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getModelRule()); + } + add( + current, + "requirements", + lv_requirements_3_0, + "fr.irit.fiacre.xtext.Fiacre.Requirement"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + case 3 : + // InternalFiacre.g:155:4: ( (lv_root_4_0= ruleRoot ) ) + { + // InternalFiacre.g:155:4: ( (lv_root_4_0= ruleRoot ) ) + // InternalFiacre.g:156:5: (lv_root_4_0= ruleRoot ) + { + // InternalFiacre.g:156:5: (lv_root_4_0= ruleRoot ) + // InternalFiacre.g:157:6: lv_root_4_0= ruleRoot + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getModelAccess().getRootRootParserRuleCall_2_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_4); + lv_root_4_0=ruleRoot(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getModelRule()); + } + add( + current, + "root", + lv_root_4_0, + "fr.irit.fiacre.xtext.Fiacre.Root"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop2; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleModel" + + + // $ANTLR start "entryRuleRoot" + // InternalFiacre.g:179:1: entryRuleRoot returns [EObject current=null] : iv_ruleRoot= ruleRoot EOF ; + public final EObject entryRuleRoot() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRoot = null; + + + try { + // InternalFiacre.g:179:45: (iv_ruleRoot= ruleRoot EOF ) + // InternalFiacre.g:180:2: iv_ruleRoot= ruleRoot EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getRootRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleRoot=ruleRoot(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleRoot; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRoot" + + + // $ANTLR start "ruleRoot" + // InternalFiacre.g:186:1: ruleRoot returns [EObject current=null] : ( () ( (otherlv_1= RULE_ID ) ) (otherlv_2= '>' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) )* ) )? ) ; + public final EObject ruleRoot() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_4=null; + Token otherlv_5=null; + + + enterRule(); + + try { + // InternalFiacre.g:192:2: ( ( () ( (otherlv_1= RULE_ID ) ) (otherlv_2= '>' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) )* ) )? ) ) + // InternalFiacre.g:193:2: ( () ( (otherlv_1= RULE_ID ) ) (otherlv_2= '>' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) )* ) )? ) + { + // InternalFiacre.g:193:2: ( () ( (otherlv_1= RULE_ID ) ) (otherlv_2= '>' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) )* ) )? ) + // InternalFiacre.g:194:3: () ( (otherlv_1= RULE_ID ) ) (otherlv_2= '>' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) )* ) )? + { + // InternalFiacre.g:194:3: () + // InternalFiacre.g:195:4: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getRootAccess().getRootAction_0(), + current); + + } + + } + + // InternalFiacre.g:204:3: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:205:4: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:205:4: (otherlv_1= RULE_ID ) + // InternalFiacre.g:206:5: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getRootRule()); + } + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_5); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getRootAccess().getDeclarationRootDeclarationCrossReference_1_0()); + + } + + } + + + } + + // InternalFiacre.g:220:3: (otherlv_2= '>' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) )* ) )? + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0==12) ) { + alt4=1; + } + switch (alt4) { + case 1 : + // InternalFiacre.g:221:4: otherlv_2= '>' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) )* ) + { + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getRootAccess().getGreaterThanSignKeyword_2_0()); + + } + // InternalFiacre.g:225:4: ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) )* ) + // InternalFiacre.g:226:5: ( (otherlv_3= RULE_ID ) ) (otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) )* + { + // InternalFiacre.g:226:5: ( (otherlv_3= RULE_ID ) ) + // InternalFiacre.g:227:6: (otherlv_3= RULE_ID ) + { + // InternalFiacre.g:227:6: (otherlv_3= RULE_ID ) + // InternalFiacre.g:228:7: otherlv_3= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getRootRule()); + } + + } + otherlv_3=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_0_0()); + + } + + } + + + } + + // InternalFiacre.g:242:5: (otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==13) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // InternalFiacre.g:243:6: otherlv_4= '|' ( (otherlv_5= RULE_ID ) ) + { + otherlv_4=(Token)match(input,13,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getRootAccess().getVerticalLineKeyword_2_1_1_0()); + + } + // InternalFiacre.g:247:6: ( (otherlv_5= RULE_ID ) ) + // InternalFiacre.g:248:7: (otherlv_5= RULE_ID ) + { + // InternalFiacre.g:248:7: (otherlv_5= RULE_ID ) + // InternalFiacre.g:249:8: otherlv_5= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getRootRule()); + } + + } + otherlv_5=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getRootAccess().getObservedRootDeclarationCrossReference_2_1_1_1_0()); + + } + + } + + + } + + + } + break; + + default : + break loop3; + } + } while (true); + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRoot" + + + // $ANTLR start "entryRuleImportDeclaration" + // InternalFiacre.g:270:1: entryRuleImportDeclaration returns [EObject current=null] : iv_ruleImportDeclaration= ruleImportDeclaration EOF ; + public final EObject entryRuleImportDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleImportDeclaration = null; + + + try { + // InternalFiacre.g:270:58: (iv_ruleImportDeclaration= ruleImportDeclaration EOF ) + // InternalFiacre.g:271:2: iv_ruleImportDeclaration= ruleImportDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getImportDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleImportDeclaration=ruleImportDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleImportDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleImportDeclaration" + + + // $ANTLR start "ruleImportDeclaration" + // InternalFiacre.g:277:1: ruleImportDeclaration returns [EObject current=null] : (otherlv_0= '#include' ( (lv_importURI_1_0= RULE_STRING ) ) ) ; + public final EObject ruleImportDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_importURI_1_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:283:2: ( (otherlv_0= '#include' ( (lv_importURI_1_0= RULE_STRING ) ) ) ) + // InternalFiacre.g:284:2: (otherlv_0= '#include' ( (lv_importURI_1_0= RULE_STRING ) ) ) + { + // InternalFiacre.g:284:2: (otherlv_0= '#include' ( (lv_importURI_1_0= RULE_STRING ) ) ) + // InternalFiacre.g:285:3: otherlv_0= '#include' ( (lv_importURI_1_0= RULE_STRING ) ) + { + otherlv_0=(Token)match(input,14,FollowSets000.FOLLOW_8); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getImportDeclarationAccess().getIncludeKeyword_0()); + + } + // InternalFiacre.g:289:3: ( (lv_importURI_1_0= RULE_STRING ) ) + // InternalFiacre.g:290:4: (lv_importURI_1_0= RULE_STRING ) + { + // InternalFiacre.g:290:4: (lv_importURI_1_0= RULE_STRING ) + // InternalFiacre.g:291:5: lv_importURI_1_0= RULE_STRING + { + lv_importURI_1_0=(Token)match(input,RULE_STRING,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_importURI_1_0, grammarAccess.getImportDeclarationAccess().getImportURISTRINGTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getImportDeclarationRule()); + } + setWithLastConsumed( + current, + "importURI", + lv_importURI_1_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleImportDeclaration" + + + // $ANTLR start "entryRuleDeclaration" + // InternalFiacre.g:311:1: entryRuleDeclaration returns [EObject current=null] : iv_ruleDeclaration= ruleDeclaration EOF ; + public final EObject entryRuleDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleDeclaration = null; + + + try { + // InternalFiacre.g:311:52: (iv_ruleDeclaration= ruleDeclaration EOF ) + // InternalFiacre.g:312:2: iv_ruleDeclaration= ruleDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleDeclaration=ruleDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleDeclaration" + + + // $ANTLR start "ruleDeclaration" + // InternalFiacre.g:318:1: ruleDeclaration returns [EObject current=null] : (this_TypeDeclaration_0= ruleTypeDeclaration | this_ChannelDeclaration_1= ruleChannelDeclaration | this_ConstantDeclaration_2= ruleConstantDeclaration | this_ParameterizedDeclaration_3= ruleParameterizedDeclaration | this_PropertyDeclaration_4= rulePropertyDeclaration ) ; + public final EObject ruleDeclaration() throws RecognitionException { + EObject current = null; + + EObject this_TypeDeclaration_0 = null; + + EObject this_ChannelDeclaration_1 = null; + + EObject this_ConstantDeclaration_2 = null; + + EObject this_ParameterizedDeclaration_3 = null; + + EObject this_PropertyDeclaration_4 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:324:2: ( (this_TypeDeclaration_0= ruleTypeDeclaration | this_ChannelDeclaration_1= ruleChannelDeclaration | this_ConstantDeclaration_2= ruleConstantDeclaration | this_ParameterizedDeclaration_3= ruleParameterizedDeclaration | this_PropertyDeclaration_4= rulePropertyDeclaration ) ) + // InternalFiacre.g:325:2: (this_TypeDeclaration_0= ruleTypeDeclaration | this_ChannelDeclaration_1= ruleChannelDeclaration | this_ConstantDeclaration_2= ruleConstantDeclaration | this_ParameterizedDeclaration_3= ruleParameterizedDeclaration | this_PropertyDeclaration_4= rulePropertyDeclaration ) + { + // InternalFiacre.g:325:2: (this_TypeDeclaration_0= ruleTypeDeclaration | this_ChannelDeclaration_1= ruleChannelDeclaration | this_ConstantDeclaration_2= ruleConstantDeclaration | this_ParameterizedDeclaration_3= ruleParameterizedDeclaration | this_PropertyDeclaration_4= rulePropertyDeclaration ) + int alt5=5; + switch ( input.LA(1) ) { + case 22: + { + alt5=1; + } + break; + case 23: + { + alt5=2; + } + break; + case 39: + { + alt5=3; + } + break; + case 15: + case 40: + case 48: + { + alt5=4; + } + break; + case 115: + { + alt5=5; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + } + + switch (alt5) { + case 1 : + // InternalFiacre.g:326:3: this_TypeDeclaration_0= ruleTypeDeclaration + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getDeclarationAccess().getTypeDeclarationParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_TypeDeclaration_0=ruleTypeDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_TypeDeclaration_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:338:3: this_ChannelDeclaration_1= ruleChannelDeclaration + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getDeclarationAccess().getChannelDeclarationParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ChannelDeclaration_1=ruleChannelDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ChannelDeclaration_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:350:3: this_ConstantDeclaration_2= ruleConstantDeclaration + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getDeclarationAccess().getConstantDeclarationParserRuleCall_2()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ConstantDeclaration_2=ruleConstantDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ConstantDeclaration_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 4 : + // InternalFiacre.g:362:3: this_ParameterizedDeclaration_3= ruleParameterizedDeclaration + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getDeclarationAccess().getParameterizedDeclarationParserRuleCall_3()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ParameterizedDeclaration_3=ruleParameterizedDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ParameterizedDeclaration_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 5 : + // InternalFiacre.g:374:3: this_PropertyDeclaration_4= rulePropertyDeclaration + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getDeclarationAccess().getPropertyDeclarationParserRuleCall_4()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_PropertyDeclaration_4=rulePropertyDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_PropertyDeclaration_4; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleDeclaration" + + + // $ANTLR start "entryRuleParameterizedDeclaration" + // InternalFiacre.g:389:1: entryRuleParameterizedDeclaration returns [EObject current=null] : iv_ruleParameterizedDeclaration= ruleParameterizedDeclaration EOF ; + public final EObject entryRuleParameterizedDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleParameterizedDeclaration = null; + + + try { + // InternalFiacre.g:389:65: (iv_ruleParameterizedDeclaration= ruleParameterizedDeclaration EOF ) + // InternalFiacre.g:390:2: iv_ruleParameterizedDeclaration= ruleParameterizedDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getParameterizedDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleParameterizedDeclaration=ruleParameterizedDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleParameterizedDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleParameterizedDeclaration" + + + // $ANTLR start "ruleParameterizedDeclaration" + // InternalFiacre.g:396:1: ruleParameterizedDeclaration returns [EObject current=null] : (this_ProcessDeclaration_0= ruleProcessDeclaration | this_ComponentDeclaration_1= ruleComponentDeclaration | this_FunctionDeclaration_2= ruleFunctionDeclaration ) ; + public final EObject ruleParameterizedDeclaration() throws RecognitionException { + EObject current = null; + + EObject this_ProcessDeclaration_0 = null; + + EObject this_ComponentDeclaration_1 = null; + + EObject this_FunctionDeclaration_2 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:402:2: ( (this_ProcessDeclaration_0= ruleProcessDeclaration | this_ComponentDeclaration_1= ruleComponentDeclaration | this_FunctionDeclaration_2= ruleFunctionDeclaration ) ) + // InternalFiacre.g:403:2: (this_ProcessDeclaration_0= ruleProcessDeclaration | this_ComponentDeclaration_1= ruleComponentDeclaration | this_FunctionDeclaration_2= ruleFunctionDeclaration ) + { + // InternalFiacre.g:403:2: (this_ProcessDeclaration_0= ruleProcessDeclaration | this_ComponentDeclaration_1= ruleComponentDeclaration | this_FunctionDeclaration_2= ruleFunctionDeclaration ) + int alt6=3; + switch ( input.LA(1) ) { + case 40: + { + alt6=1; + } + break; + case 48: + { + alt6=2; + } + break; + case 15: + { + alt6=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + } + + switch (alt6) { + case 1 : + // InternalFiacre.g:404:3: this_ProcessDeclaration_0= ruleProcessDeclaration + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getParameterizedDeclarationAccess().getProcessDeclarationParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ProcessDeclaration_0=ruleProcessDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ProcessDeclaration_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:416:3: this_ComponentDeclaration_1= ruleComponentDeclaration + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getParameterizedDeclarationAccess().getComponentDeclarationParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ComponentDeclaration_1=ruleComponentDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ComponentDeclaration_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:428:3: this_FunctionDeclaration_2= ruleFunctionDeclaration + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getParameterizedDeclarationAccess().getFunctionDeclarationParserRuleCall_2()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_FunctionDeclaration_2=ruleFunctionDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_FunctionDeclaration_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleParameterizedDeclaration" + + + // $ANTLR start "entryRuleFunctionDeclaration" + // InternalFiacre.g:443:1: entryRuleFunctionDeclaration returns [EObject current=null] : iv_ruleFunctionDeclaration= ruleFunctionDeclaration EOF ; + public final EObject entryRuleFunctionDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleFunctionDeclaration = null; + + + try { + // InternalFiacre.g:443:60: (iv_ruleFunctionDeclaration= ruleFunctionDeclaration EOF ) + // InternalFiacre.g:444:2: iv_ruleFunctionDeclaration= ruleFunctionDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getFunctionDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleFunctionDeclaration=ruleFunctionDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleFunctionDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleFunctionDeclaration" + + + // $ANTLR start "ruleFunctionDeclaration" + // InternalFiacre.g:450:1: ruleFunctionDeclaration returns [EObject current=null] : (otherlv_0= 'function' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParametersDeclaration ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) )* )? otherlv_6= ')' ) otherlv_7= ':' ( (lv_type_8_0= ruleType ) ) otherlv_9= 'is' (otherlv_10= 'var' ( (lv_variables_11_0= ruleVariablesDeclaration ) ) (otherlv_12= ',' ( (lv_variables_13_0= ruleVariablesDeclaration ) ) )* )? ( (lv_statement_14_0= ruleStatement ) ) ) ; + public final EObject ruleFunctionDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token otherlv_10=null; + Token otherlv_12=null; + EObject lv_parameters_3_0 = null; + + EObject lv_parameters_5_0 = null; + + EObject lv_type_8_0 = null; + + EObject lv_variables_11_0 = null; + + EObject lv_variables_13_0 = null; + + EObject lv_statement_14_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:456:2: ( (otherlv_0= 'function' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParametersDeclaration ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) )* )? otherlv_6= ')' ) otherlv_7= ':' ( (lv_type_8_0= ruleType ) ) otherlv_9= 'is' (otherlv_10= 'var' ( (lv_variables_11_0= ruleVariablesDeclaration ) ) (otherlv_12= ',' ( (lv_variables_13_0= ruleVariablesDeclaration ) ) )* )? ( (lv_statement_14_0= ruleStatement ) ) ) ) + // InternalFiacre.g:457:2: (otherlv_0= 'function' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParametersDeclaration ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) )* )? otherlv_6= ')' ) otherlv_7= ':' ( (lv_type_8_0= ruleType ) ) otherlv_9= 'is' (otherlv_10= 'var' ( (lv_variables_11_0= ruleVariablesDeclaration ) ) (otherlv_12= ',' ( (lv_variables_13_0= ruleVariablesDeclaration ) ) )* )? ( (lv_statement_14_0= ruleStatement ) ) ) + { + // InternalFiacre.g:457:2: (otherlv_0= 'function' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParametersDeclaration ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) )* )? otherlv_6= ')' ) otherlv_7= ':' ( (lv_type_8_0= ruleType ) ) otherlv_9= 'is' (otherlv_10= 'var' ( (lv_variables_11_0= ruleVariablesDeclaration ) ) (otherlv_12= ',' ( (lv_variables_13_0= ruleVariablesDeclaration ) ) )* )? ( (lv_statement_14_0= ruleStatement ) ) ) + // InternalFiacre.g:458:3: otherlv_0= 'function' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParametersDeclaration ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) )* )? otherlv_6= ')' ) otherlv_7= ':' ( (lv_type_8_0= ruleType ) ) otherlv_9= 'is' (otherlv_10= 'var' ( (lv_variables_11_0= ruleVariablesDeclaration ) ) (otherlv_12= ',' ( (lv_variables_13_0= ruleVariablesDeclaration ) ) )* )? ( (lv_statement_14_0= ruleStatement ) ) + { + otherlv_0=(Token)match(input,15,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getFunctionDeclarationAccess().getFunctionKeyword_0()); + + } + // InternalFiacre.g:462:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalFiacre.g:463:4: (lv_name_1_0= RULE_ID ) + { + // InternalFiacre.g:463:4: (lv_name_1_0= RULE_ID ) + // InternalFiacre.g:464:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_9); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getFunctionDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getFunctionDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + // InternalFiacre.g:480:3: (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParametersDeclaration ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) )* )? otherlv_6= ')' ) + // InternalFiacre.g:481:4: otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParametersDeclaration ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) )* )? otherlv_6= ')' + { + otherlv_2=(Token)match(input,16,FollowSets000.FOLLOW_10); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getFunctionDeclarationAccess().getLeftParenthesisKeyword_2_0()); + + } + // InternalFiacre.g:485:4: ( ( (lv_parameters_3_0= ruleParametersDeclaration ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) )* )? + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0==RULE_ID||LA8_0==51) ) { + alt8=1; + } + switch (alt8) { + case 1 : + // InternalFiacre.g:486:5: ( (lv_parameters_3_0= ruleParametersDeclaration ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) )* + { + // InternalFiacre.g:486:5: ( (lv_parameters_3_0= ruleParametersDeclaration ) ) + // InternalFiacre.g:487:6: (lv_parameters_3_0= ruleParametersDeclaration ) + { + // InternalFiacre.g:487:6: (lv_parameters_3_0= ruleParametersDeclaration ) + // InternalFiacre.g:488:7: lv_parameters_3_0= ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_3_0=ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + add( + current, + "parameters", + lv_parameters_3_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:505:5: (otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==17) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // InternalFiacre.g:506:6: otherlv_4= ',' ( (lv_parameters_5_0= ruleParametersDeclaration ) ) + { + otherlv_4=(Token)match(input,17,FollowSets000.FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_2_1_1_0()); + + } + // InternalFiacre.g:510:6: ( (lv_parameters_5_0= ruleParametersDeclaration ) ) + // InternalFiacre.g:511:7: (lv_parameters_5_0= ruleParametersDeclaration ) + { + // InternalFiacre.g:511:7: (lv_parameters_5_0= ruleParametersDeclaration ) + // InternalFiacre.g:512:8: lv_parameters_5_0= ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getParametersParametersDeclarationParserRuleCall_2_1_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_5_0=ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + add( + current, + "parameters", + lv_parameters_5_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop7; + } + } while (true); + + + } + break; + + } + + otherlv_6=(Token)match(input,18,FollowSets000.FOLLOW_13); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getFunctionDeclarationAccess().getRightParenthesisKeyword_2_2()); + + } + + } + + otherlv_7=(Token)match(input,19,FollowSets000.FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getFunctionDeclarationAccess().getColonKeyword_3()); + + } + // InternalFiacre.g:540:3: ( (lv_type_8_0= ruleType ) ) + // InternalFiacre.g:541:4: (lv_type_8_0= ruleType ) + { + // InternalFiacre.g:541:4: (lv_type_8_0= ruleType ) + // InternalFiacre.g:542:5: lv_type_8_0= ruleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getTypeTypeParserRuleCall_4_0()); + + } + pushFollow(FollowSets000.FOLLOW_15); + lv_type_8_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + set( + current, + "type", + lv_type_8_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_9=(Token)match(input,20,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getFunctionDeclarationAccess().getIsKeyword_5()); + + } + // InternalFiacre.g:563:3: (otherlv_10= 'var' ( (lv_variables_11_0= ruleVariablesDeclaration ) ) (otherlv_12= ',' ( (lv_variables_13_0= ruleVariablesDeclaration ) ) )* )? + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0==21) ) { + alt10=1; + } + switch (alt10) { + case 1 : + // InternalFiacre.g:564:4: otherlv_10= 'var' ( (lv_variables_11_0= ruleVariablesDeclaration ) ) (otherlv_12= ',' ( (lv_variables_13_0= ruleVariablesDeclaration ) ) )* + { + otherlv_10=(Token)match(input,21,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getFunctionDeclarationAccess().getVarKeyword_6_0()); + + } + // InternalFiacre.g:568:4: ( (lv_variables_11_0= ruleVariablesDeclaration ) ) + // InternalFiacre.g:569:5: (lv_variables_11_0= ruleVariablesDeclaration ) + { + // InternalFiacre.g:569:5: (lv_variables_11_0= ruleVariablesDeclaration ) + // InternalFiacre.g:570:6: lv_variables_11_0= ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_17); + lv_variables_11_0=ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + add( + current, + "variables", + lv_variables_11_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:587:4: (otherlv_12= ',' ( (lv_variables_13_0= ruleVariablesDeclaration ) ) )* + loop9: + do { + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0==17) ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // InternalFiacre.g:588:5: otherlv_12= ',' ( (lv_variables_13_0= ruleVariablesDeclaration ) ) + { + otherlv_12=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_12, grammarAccess.getFunctionDeclarationAccess().getCommaKeyword_6_2_0()); + + } + // InternalFiacre.g:592:5: ( (lv_variables_13_0= ruleVariablesDeclaration ) ) + // InternalFiacre.g:593:6: (lv_variables_13_0= ruleVariablesDeclaration ) + { + // InternalFiacre.g:593:6: (lv_variables_13_0= ruleVariablesDeclaration ) + // InternalFiacre.g:594:7: lv_variables_13_0= ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_6_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_17); + lv_variables_13_0=ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + add( + current, + "variables", + lv_variables_13_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop9; + } + } while (true); + + + } + break; + + } + + // InternalFiacre.g:613:3: ( (lv_statement_14_0= ruleStatement ) ) + // InternalFiacre.g:614:4: (lv_statement_14_0= ruleStatement ) + { + // InternalFiacre.g:614:4: (lv_statement_14_0= ruleStatement ) + // InternalFiacre.g:615:5: lv_statement_14_0= ruleStatement + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getFunctionDeclarationAccess().getStatementStatementParserRuleCall_7_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_statement_14_0=ruleStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getFunctionDeclarationRule()); + } + set( + current, + "statement", + lv_statement_14_0, + "fr.irit.fiacre.xtext.Fiacre.Statement"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleFunctionDeclaration" + + + // $ANTLR start "entryRuleTypeDeclaration" + // InternalFiacre.g:636:1: entryRuleTypeDeclaration returns [EObject current=null] : iv_ruleTypeDeclaration= ruleTypeDeclaration EOF ; + public final EObject entryRuleTypeDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleTypeDeclaration = null; + + + try { + // InternalFiacre.g:636:56: (iv_ruleTypeDeclaration= ruleTypeDeclaration EOF ) + // InternalFiacre.g:637:2: iv_ruleTypeDeclaration= ruleTypeDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getTypeDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleTypeDeclaration=ruleTypeDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleTypeDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleTypeDeclaration" + + + // $ANTLR start "ruleTypeDeclaration" + // InternalFiacre.g:643:1: ruleTypeDeclaration returns [EObject current=null] : (otherlv_0= 'type' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_value_3_0= ruleType ) ) ) ; + public final EObject ruleTypeDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + Token otherlv_2=null; + EObject lv_value_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:649:2: ( (otherlv_0= 'type' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_value_3_0= ruleType ) ) ) ) + // InternalFiacre.g:650:2: (otherlv_0= 'type' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_value_3_0= ruleType ) ) ) + { + // InternalFiacre.g:650:2: (otherlv_0= 'type' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_value_3_0= ruleType ) ) ) + // InternalFiacre.g:651:3: otherlv_0= 'type' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_value_3_0= ruleType ) ) + { + otherlv_0=(Token)match(input,22,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getTypeDeclarationAccess().getTypeKeyword_0()); + + } + // InternalFiacre.g:655:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalFiacre.g:656:4: (lv_name_1_0= RULE_ID ) + { + // InternalFiacre.g:656:4: (lv_name_1_0= RULE_ID ) + // InternalFiacre.g:657:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_15); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getTypeDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTypeDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + otherlv_2=(Token)match(input,20,FollowSets000.FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getTypeDeclarationAccess().getIsKeyword_2()); + + } + // InternalFiacre.g:677:3: ( (lv_value_3_0= ruleType ) ) + // InternalFiacre.g:678:4: (lv_value_3_0= ruleType ) + { + // InternalFiacre.g:678:4: (lv_value_3_0= ruleType ) + // InternalFiacre.g:679:5: lv_value_3_0= ruleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypeDeclarationAccess().getValueTypeParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_value_3_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getTypeDeclarationRule()); + } + set( + current, + "value", + lv_value_3_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTypeDeclaration" + + + // $ANTLR start "entryRuleChannelDeclaration" + // InternalFiacre.g:700:1: entryRuleChannelDeclaration returns [EObject current=null] : iv_ruleChannelDeclaration= ruleChannelDeclaration EOF ; + public final EObject entryRuleChannelDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleChannelDeclaration = null; + + + try { + // InternalFiacre.g:700:59: (iv_ruleChannelDeclaration= ruleChannelDeclaration EOF ) + // InternalFiacre.g:701:2: iv_ruleChannelDeclaration= ruleChannelDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getChannelDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleChannelDeclaration=ruleChannelDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleChannelDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleChannelDeclaration" + + + // $ANTLR start "ruleChannelDeclaration" + // InternalFiacre.g:707:1: ruleChannelDeclaration returns [EObject current=null] : (otherlv_0= 'channel' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_value_3_0= ruleChannelType ) ) ) ; + public final EObject ruleChannelDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + Token otherlv_2=null; + EObject lv_value_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:713:2: ( (otherlv_0= 'channel' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_value_3_0= ruleChannelType ) ) ) ) + // InternalFiacre.g:714:2: (otherlv_0= 'channel' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_value_3_0= ruleChannelType ) ) ) + { + // InternalFiacre.g:714:2: (otherlv_0= 'channel' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_value_3_0= ruleChannelType ) ) ) + // InternalFiacre.g:715:3: otherlv_0= 'channel' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_value_3_0= ruleChannelType ) ) + { + otherlv_0=(Token)match(input,23,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getChannelDeclarationAccess().getChannelKeyword_0()); + + } + // InternalFiacre.g:719:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalFiacre.g:720:4: (lv_name_1_0= RULE_ID ) + { + // InternalFiacre.g:720:4: (lv_name_1_0= RULE_ID ) + // InternalFiacre.g:721:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_15); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getChannelDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getChannelDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + otherlv_2=(Token)match(input,20,FollowSets000.FOLLOW_18); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getChannelDeclarationAccess().getIsKeyword_2()); + + } + // InternalFiacre.g:741:3: ( (lv_value_3_0= ruleChannelType ) ) + // InternalFiacre.g:742:4: (lv_value_3_0= ruleChannelType ) + { + // InternalFiacre.g:742:4: (lv_value_3_0= ruleChannelType ) + // InternalFiacre.g:743:5: lv_value_3_0= ruleChannelType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getChannelDeclarationAccess().getValueChannelTypeParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_value_3_0=ruleChannelType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getChannelDeclarationRule()); + } + set( + current, + "value", + lv_value_3_0, + "fr.irit.fiacre.xtext.Fiacre.ChannelType"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleChannelDeclaration" + + + // $ANTLR start "entryRuleChannelType" + // InternalFiacre.g:764:1: entryRuleChannelType returns [EObject current=null] : iv_ruleChannelType= ruleChannelType EOF ; + public final EObject entryRuleChannelType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleChannelType = null; + + + try { + // InternalFiacre.g:764:52: (iv_ruleChannelType= ruleChannelType EOF ) + // InternalFiacre.g:765:2: iv_ruleChannelType= ruleChannelType EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getChannelTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleChannelType=ruleChannelType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleChannelType; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleChannelType" + + + // $ANTLR start "ruleChannelType" + // InternalFiacre.g:771:1: ruleChannelType returns [EObject current=null] : ( () (otherlv_1= 'array' ( (lv_size_2_0= ruleExpression ) ) otherlv_3= 'of' )? ( ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) | otherlv_9= 'none' | otherlv_10= 'sync' ) ) ; + public final EObject ruleChannelType() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token lv_in_4_0=null; + Token lv_out_5_0=null; + Token lv_out_6_0=null; + Token otherlv_8=null; + Token otherlv_9=null; + Token otherlv_10=null; + EObject lv_size_2_0 = null; + + EObject lv_type_7_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:777:2: ( ( () (otherlv_1= 'array' ( (lv_size_2_0= ruleExpression ) ) otherlv_3= 'of' )? ( ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) | otherlv_9= 'none' | otherlv_10= 'sync' ) ) ) + // InternalFiacre.g:778:2: ( () (otherlv_1= 'array' ( (lv_size_2_0= ruleExpression ) ) otherlv_3= 'of' )? ( ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) | otherlv_9= 'none' | otherlv_10= 'sync' ) ) + { + // InternalFiacre.g:778:2: ( () (otherlv_1= 'array' ( (lv_size_2_0= ruleExpression ) ) otherlv_3= 'of' )? ( ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) | otherlv_9= 'none' | otherlv_10= 'sync' ) ) + // InternalFiacre.g:779:3: () (otherlv_1= 'array' ( (lv_size_2_0= ruleExpression ) ) otherlv_3= 'of' )? ( ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) | otherlv_9= 'none' | otherlv_10= 'sync' ) + { + // InternalFiacre.g:779:3: () + // InternalFiacre.g:780:4: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getChannelTypeAccess().getChannelTypeAction_0(), + current); + + } + + } + + // InternalFiacre.g:789:3: (otherlv_1= 'array' ( (lv_size_2_0= ruleExpression ) ) otherlv_3= 'of' )? + int alt11=2; + alt11 = dfa11.predict(input); + switch (alt11) { + case 1 : + // InternalFiacre.g:790:4: otherlv_1= 'array' ( (lv_size_2_0= ruleExpression ) ) otherlv_3= 'of' + { + otherlv_1=(Token)match(input,24,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getChannelTypeAccess().getArrayKeyword_1_0()); + + } + // InternalFiacre.g:794:4: ( (lv_size_2_0= ruleExpression ) ) + // InternalFiacre.g:795:5: (lv_size_2_0= ruleExpression ) + { + // InternalFiacre.g:795:5: (lv_size_2_0= ruleExpression ) + // InternalFiacre.g:796:6: lv_size_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getChannelTypeAccess().getSizeExpressionParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_20); + lv_size_2_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getChannelTypeRule()); + } + set( + current, + "size", + lv_size_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_3=(Token)match(input,25,FollowSets000.FOLLOW_18); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getChannelTypeAccess().getOfKeyword_1_2()); + + } + + } + break; + + } + + // InternalFiacre.g:818:3: ( ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) | otherlv_9= 'none' | otherlv_10= 'sync' ) + int alt15=3; + switch ( input.LA(1) ) { + case RULE_ID: + case RULE_INT: + case 16: + case 24: + case 26: + case 27: + case 31: + case 32: + case 33: + case 35: + case 37: + case 38: + case 41: + case 51: + case 63: + case 64: + case 83: + case 84: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 103: + case 105: + case 107: + case 108: + case 109: + case 110: + { + alt15=1; + } + break; + case 28: + { + int LA15_2 = input.LA(2); + + if ( (synpred22_InternalFiacre()) ) { + alt15=1; + } + else if ( (synpred23_InternalFiacre()) ) { + alt15=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 15, 2, input); + + throw nvae; + } + } + break; + case 29: + { + alt15=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 15, 0, input); + + throw nvae; + } + + switch (alt15) { + case 1 : + // InternalFiacre.g:819:4: ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) + { + // InternalFiacre.g:819:4: ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) + // InternalFiacre.g:820:5: ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) + { + // InternalFiacre.g:820:5: ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? + int alt13=3; + int LA13_0 = input.LA(1); + + if ( (LA13_0==26) ) { + alt13=1; + } + else if ( (LA13_0==27) ) { + alt13=2; + } + switch (alt13) { + case 1 : + // InternalFiacre.g:821:6: ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) + { + // InternalFiacre.g:821:6: ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) + // InternalFiacre.g:822:7: ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? + { + // InternalFiacre.g:822:7: ( (lv_in_4_0= 'in' ) ) + // InternalFiacre.g:823:8: (lv_in_4_0= 'in' ) + { + // InternalFiacre.g:823:8: (lv_in_4_0= 'in' ) + // InternalFiacre.g:824:9: lv_in_4_0= 'in' + { + lv_in_4_0=(Token)match(input,26,FollowSets000.FOLLOW_21); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_in_4_0, grammarAccess.getChannelTypeAccess().getInInKeyword_2_0_0_0_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getChannelTypeRule()); + } + setWithLastConsumed(current, "in", true, "in"); + + } + + } + + + } + + // InternalFiacre.g:836:7: ( (lv_out_5_0= 'out' ) )? + int alt12=2; + int LA12_0 = input.LA(1); + + if ( (LA12_0==27) ) { + alt12=1; + } + switch (alt12) { + case 1 : + // InternalFiacre.g:837:8: (lv_out_5_0= 'out' ) + { + // InternalFiacre.g:837:8: (lv_out_5_0= 'out' ) + // InternalFiacre.g:838:9: lv_out_5_0= 'out' + { + lv_out_5_0=(Token)match(input,27,FollowSets000.FOLLOW_22); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_out_5_0, grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_0_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getChannelTypeRule()); + } + setWithLastConsumed(current, "out", true, "out"); + + } + + } + + + } + break; + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:852:6: ( (lv_out_6_0= 'out' ) ) + { + // InternalFiacre.g:852:6: ( (lv_out_6_0= 'out' ) ) + // InternalFiacre.g:853:7: (lv_out_6_0= 'out' ) + { + // InternalFiacre.g:853:7: (lv_out_6_0= 'out' ) + // InternalFiacre.g:854:8: lv_out_6_0= 'out' + { + lv_out_6_0=(Token)match(input,27,FollowSets000.FOLLOW_22); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_out_6_0, grammarAccess.getChannelTypeAccess().getOutOutKeyword_2_0_0_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getChannelTypeRule()); + } + setWithLastConsumed(current, "out", true, "out"); + + } + + } + + + } + + + } + break; + + } + + // InternalFiacre.g:867:5: ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) + int alt14=2; + int LA14_0 = input.LA(1); + + if ( (LA14_0==RULE_ID||LA14_0==RULE_INT||LA14_0==16||LA14_0==24||(LA14_0>=31 && LA14_0<=33)||LA14_0==35||(LA14_0>=37 && LA14_0<=38)||LA14_0==41||LA14_0==51||(LA14_0>=63 && LA14_0<=64)||(LA14_0>=83 && LA14_0<=84)||(LA14_0>=95 && LA14_0<=101)||LA14_0==103||LA14_0==105||(LA14_0>=107 && LA14_0<=110)) ) { + alt14=1; + } + else if ( (LA14_0==28) ) { + alt14=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 14, 0, input); + + throw nvae; + } + switch (alt14) { + case 1 : + // InternalFiacre.g:868:6: ( (lv_type_7_0= ruleTupleType ) ) + { + // InternalFiacre.g:868:6: ( (lv_type_7_0= ruleTupleType ) ) + // InternalFiacre.g:869:7: (lv_type_7_0= ruleTupleType ) + { + // InternalFiacre.g:869:7: (lv_type_7_0= ruleTupleType ) + // InternalFiacre.g:870:8: lv_type_7_0= ruleTupleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getChannelTypeAccess().getTypeTupleTypeParserRuleCall_2_0_1_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_type_7_0=ruleTupleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getChannelTypeRule()); + } + set( + current, + "type", + lv_type_7_0, + "fr.irit.fiacre.xtext.Fiacre.TupleType"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:888:6: otherlv_8= 'none' + { + otherlv_8=(Token)match(input,28,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getChannelTypeAccess().getNoneKeyword_2_0_1_1()); + + } + + } + break; + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:895:4: otherlv_9= 'none' + { + otherlv_9=(Token)match(input,28,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getChannelTypeAccess().getNoneKeyword_2_1()); + + } + + } + break; + case 3 : + // InternalFiacre.g:900:4: otherlv_10= 'sync' + { + otherlv_10=(Token)match(input,29,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getChannelTypeAccess().getSyncKeyword_2_2()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleChannelType" + + + // $ANTLR start "entryRuleType" + // InternalFiacre.g:909:1: entryRuleType returns [EObject current=null] : iv_ruleType= ruleType EOF ; + public final EObject entryRuleType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleType = null; + + + try { + // InternalFiacre.g:909:45: (iv_ruleType= ruleType EOF ) + // InternalFiacre.g:910:2: iv_ruleType= ruleType EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleType=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleType; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleType" + + + // $ANTLR start "ruleType" + // InternalFiacre.g:916:1: ruleType returns [EObject current=null] : (this_BasicType_0= ruleBasicType | this_RangeType_1= ruleRangeType | this_UnionType_2= ruleUnionType | this_RecordType_3= ruleRecordType | this_QueueType_4= ruleQueueType | this_ArrayType_5= ruleArrayType | this_ReferencedType_6= ruleReferencedType ) ; + public final EObject ruleType() throws RecognitionException { + EObject current = null; + + EObject this_BasicType_0 = null; + + EObject this_RangeType_1 = null; + + EObject this_UnionType_2 = null; + + EObject this_RecordType_3 = null; + + EObject this_QueueType_4 = null; + + EObject this_ArrayType_5 = null; + + EObject this_ReferencedType_6 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:922:2: ( (this_BasicType_0= ruleBasicType | this_RangeType_1= ruleRangeType | this_UnionType_2= ruleUnionType | this_RecordType_3= ruleRecordType | this_QueueType_4= ruleQueueType | this_ArrayType_5= ruleArrayType | this_ReferencedType_6= ruleReferencedType ) ) + // InternalFiacre.g:923:2: (this_BasicType_0= ruleBasicType | this_RangeType_1= ruleRangeType | this_UnionType_2= ruleUnionType | this_RecordType_3= ruleRecordType | this_QueueType_4= ruleQueueType | this_ArrayType_5= ruleArrayType | this_ReferencedType_6= ruleReferencedType ) + { + // InternalFiacre.g:923:2: (this_BasicType_0= ruleBasicType | this_RangeType_1= ruleRangeType | this_UnionType_2= ruleUnionType | this_RecordType_3= ruleRecordType | this_QueueType_4= ruleQueueType | this_ArrayType_5= ruleArrayType | this_ReferencedType_6= ruleReferencedType ) + int alt16=7; + alt16 = dfa16.predict(input); + switch (alt16) { + case 1 : + // InternalFiacre.g:924:3: this_BasicType_0= ruleBasicType + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypeAccess().getBasicTypeParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_BasicType_0=ruleBasicType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_BasicType_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:936:3: this_RangeType_1= ruleRangeType + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypeAccess().getRangeTypeParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_RangeType_1=ruleRangeType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_RangeType_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:948:3: this_UnionType_2= ruleUnionType + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypeAccess().getUnionTypeParserRuleCall_2()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_UnionType_2=ruleUnionType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_UnionType_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 4 : + // InternalFiacre.g:960:3: this_RecordType_3= ruleRecordType + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypeAccess().getRecordTypeParserRuleCall_3()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_RecordType_3=ruleRecordType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_RecordType_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 5 : + // InternalFiacre.g:972:3: this_QueueType_4= ruleQueueType + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypeAccess().getQueueTypeParserRuleCall_4()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_QueueType_4=ruleQueueType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_QueueType_4; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 6 : + // InternalFiacre.g:984:3: this_ArrayType_5= ruleArrayType + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypeAccess().getArrayTypeParserRuleCall_5()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ArrayType_5=ruleArrayType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ArrayType_5; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 7 : + // InternalFiacre.g:996:3: this_ReferencedType_6= ruleReferencedType + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypeAccess().getReferencedTypeParserRuleCall_6()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ReferencedType_6=ruleReferencedType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ReferencedType_6; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleType" + + + // $ANTLR start "entryRuleTupleType" + // InternalFiacre.g:1011:1: entryRuleTupleType returns [EObject current=null] : iv_ruleTupleType= ruleTupleType EOF ; + public final EObject entryRuleTupleType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleTupleType = null; + + + try { + // InternalFiacre.g:1011:50: (iv_ruleTupleType= ruleTupleType EOF ) + // InternalFiacre.g:1012:2: iv_ruleTupleType= ruleTupleType EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getTupleTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleTupleType=ruleTupleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleTupleType; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleTupleType" + + + // $ANTLR start "ruleTupleType" + // InternalFiacre.g:1018:1: ruleTupleType returns [EObject current=null] : (this_Type_0= ruleType ( () otherlv_2= '#' ( (lv_types_3_0= ruleType ) ) )* ) ; + public final EObject ruleTupleType() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_Type_0 = null; + + EObject lv_types_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:1024:2: ( (this_Type_0= ruleType ( () otherlv_2= '#' ( (lv_types_3_0= ruleType ) ) )* ) ) + // InternalFiacre.g:1025:2: (this_Type_0= ruleType ( () otherlv_2= '#' ( (lv_types_3_0= ruleType ) ) )* ) + { + // InternalFiacre.g:1025:2: (this_Type_0= ruleType ( () otherlv_2= '#' ( (lv_types_3_0= ruleType ) ) )* ) + // InternalFiacre.g:1026:3: this_Type_0= ruleType ( () otherlv_2= '#' ( (lv_types_3_0= ruleType ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTupleTypeAccess().getTypeParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_23); + this_Type_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Type_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:1037:3: ( () otherlv_2= '#' ( (lv_types_3_0= ruleType ) ) )* + loop17: + do { + int alt17=2; + int LA17_0 = input.LA(1); + + if ( (LA17_0==30) ) { + alt17=1; + } + + + switch (alt17) { + case 1 : + // InternalFiacre.g:1038:4: () otherlv_2= '#' ( (lv_types_3_0= ruleType ) ) + { + // InternalFiacre.g:1038:4: () + // InternalFiacre.g:1039:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndAdd( + grammarAccess.getTupleTypeAccess().getTupleTypeTypesAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,30,FollowSets000.FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getTupleTypeAccess().getNumberSignKeyword_1_1()); + + } + // InternalFiacre.g:1052:4: ( (lv_types_3_0= ruleType ) ) + // InternalFiacre.g:1053:5: (lv_types_3_0= ruleType ) + { + // InternalFiacre.g:1053:5: (lv_types_3_0= ruleType ) + // InternalFiacre.g:1054:6: lv_types_3_0= ruleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTupleTypeAccess().getTypesTypeParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_23); + lv_types_3_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getTupleTypeRule()); + } + add( + current, + "types", + lv_types_3_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop17; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTupleType" + + + // $ANTLR start "entryRuleBasicType" + // InternalFiacre.g:1076:1: entryRuleBasicType returns [EObject current=null] : iv_ruleBasicType= ruleBasicType EOF ; + public final EObject entryRuleBasicType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleBasicType = null; + + + try { + // InternalFiacre.g:1076:50: (iv_ruleBasicType= ruleBasicType EOF ) + // InternalFiacre.g:1077:2: iv_ruleBasicType= ruleBasicType EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getBasicTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleBasicType=ruleBasicType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleBasicType; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleBasicType" + + + // $ANTLR start "ruleBasicType" + // InternalFiacre.g:1083:1: ruleBasicType returns [EObject current=null] : ( ( () otherlv_1= 'nat' ) | ( () otherlv_3= 'int' ) | ( () otherlv_5= 'bool' ) ) ; + public final EObject ruleBasicType() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + + + enterRule(); + + try { + // InternalFiacre.g:1089:2: ( ( ( () otherlv_1= 'nat' ) | ( () otherlv_3= 'int' ) | ( () otherlv_5= 'bool' ) ) ) + // InternalFiacre.g:1090:2: ( ( () otherlv_1= 'nat' ) | ( () otherlv_3= 'int' ) | ( () otherlv_5= 'bool' ) ) + { + // InternalFiacre.g:1090:2: ( ( () otherlv_1= 'nat' ) | ( () otherlv_3= 'int' ) | ( () otherlv_5= 'bool' ) ) + int alt18=3; + switch ( input.LA(1) ) { + case 31: + { + alt18=1; + } + break; + case 32: + { + alt18=2; + } + break; + case 33: + { + alt18=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 18, 0, input); + + throw nvae; + } + + switch (alt18) { + case 1 : + // InternalFiacre.g:1091:3: ( () otherlv_1= 'nat' ) + { + // InternalFiacre.g:1091:3: ( () otherlv_1= 'nat' ) + // InternalFiacre.g:1092:4: () otherlv_1= 'nat' + { + // InternalFiacre.g:1092:4: () + // InternalFiacre.g:1093:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getBasicTypeAccess().getNaturalTypeAction_0_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,31,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getBasicTypeAccess().getNatKeyword_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:1108:3: ( () otherlv_3= 'int' ) + { + // InternalFiacre.g:1108:3: ( () otherlv_3= 'int' ) + // InternalFiacre.g:1109:4: () otherlv_3= 'int' + { + // InternalFiacre.g:1109:4: () + // InternalFiacre.g:1110:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getBasicTypeAccess().getIntegerTypeAction_1_0(), + current); + + } + + } + + otherlv_3=(Token)match(input,32,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getBasicTypeAccess().getIntKeyword_1_1()); + + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:1125:3: ( () otherlv_5= 'bool' ) + { + // InternalFiacre.g:1125:3: ( () otherlv_5= 'bool' ) + // InternalFiacre.g:1126:4: () otherlv_5= 'bool' + { + // InternalFiacre.g:1126:4: () + // InternalFiacre.g:1127:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getBasicTypeAccess().getBooleanTypeAction_2_0(), + current); + + } + + } + + otherlv_5=(Token)match(input,33,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getBasicTypeAccess().getBoolKeyword_2_1()); + + } + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleBasicType" + + + // $ANTLR start "entryRuleRangeType" + // InternalFiacre.g:1145:1: entryRuleRangeType returns [EObject current=null] : iv_ruleRangeType= ruleRangeType EOF ; + public final EObject entryRuleRangeType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRangeType = null; + + + try { + // InternalFiacre.g:1145:50: (iv_ruleRangeType= ruleRangeType EOF ) + // InternalFiacre.g:1146:2: iv_ruleRangeType= ruleRangeType EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getRangeTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleRangeType=ruleRangeType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleRangeType; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRangeType" + + + // $ANTLR start "ruleRangeType" + // InternalFiacre.g:1152:1: ruleRangeType returns [EObject current=null] : ( ( (lv_minimum_0_0= ruleExpression ) ) otherlv_1= '..' ( (lv_maximum_2_0= ruleExpression ) ) ) ; + public final EObject ruleRangeType() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + EObject lv_minimum_0_0 = null; + + EObject lv_maximum_2_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:1158:2: ( ( ( (lv_minimum_0_0= ruleExpression ) ) otherlv_1= '..' ( (lv_maximum_2_0= ruleExpression ) ) ) ) + // InternalFiacre.g:1159:2: ( ( (lv_minimum_0_0= ruleExpression ) ) otherlv_1= '..' ( (lv_maximum_2_0= ruleExpression ) ) ) + { + // InternalFiacre.g:1159:2: ( ( (lv_minimum_0_0= ruleExpression ) ) otherlv_1= '..' ( (lv_maximum_2_0= ruleExpression ) ) ) + // InternalFiacre.g:1160:3: ( (lv_minimum_0_0= ruleExpression ) ) otherlv_1= '..' ( (lv_maximum_2_0= ruleExpression ) ) + { + // InternalFiacre.g:1160:3: ( (lv_minimum_0_0= ruleExpression ) ) + // InternalFiacre.g:1161:4: (lv_minimum_0_0= ruleExpression ) + { + // InternalFiacre.g:1161:4: (lv_minimum_0_0= ruleExpression ) + // InternalFiacre.g:1162:5: lv_minimum_0_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getRangeTypeAccess().getMinimumExpressionParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_24); + lv_minimum_0_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRangeTypeRule()); + } + set( + current, + "minimum", + lv_minimum_0_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_1=(Token)match(input,34,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getRangeTypeAccess().getFullStopFullStopKeyword_1()); + + } + // InternalFiacre.g:1183:3: ( (lv_maximum_2_0= ruleExpression ) ) + // InternalFiacre.g:1184:4: (lv_maximum_2_0= ruleExpression ) + { + // InternalFiacre.g:1184:4: (lv_maximum_2_0= ruleExpression ) + // InternalFiacre.g:1185:5: lv_maximum_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getRangeTypeAccess().getMaximumExpressionParserRuleCall_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_maximum_2_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRangeTypeRule()); + } + set( + current, + "maximum", + lv_maximum_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRangeType" + + + // $ANTLR start "entryRuleUnionType" + // InternalFiacre.g:1206:1: entryRuleUnionType returns [EObject current=null] : iv_ruleUnionType= ruleUnionType EOF ; + public final EObject entryRuleUnionType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleUnionType = null; + + + try { + // InternalFiacre.g:1206:50: (iv_ruleUnionType= ruleUnionType EOF ) + // InternalFiacre.g:1207:2: iv_ruleUnionType= ruleUnionType EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getUnionTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleUnionType=ruleUnionType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleUnionType; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleUnionType" + + + // $ANTLR start "ruleUnionType" + // InternalFiacre.g:1213:1: ruleUnionType returns [EObject current=null] : (otherlv_0= 'union' ( (lv_tags_1_0= ruleUnionTags ) ) (otherlv_2= '|' ( (lv_tags_3_0= ruleUnionTags ) ) )* otherlv_4= 'end' (otherlv_5= 'union' )? ) ; + public final EObject ruleUnionType() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_5=null; + EObject lv_tags_1_0 = null; + + EObject lv_tags_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:1219:2: ( (otherlv_0= 'union' ( (lv_tags_1_0= ruleUnionTags ) ) (otherlv_2= '|' ( (lv_tags_3_0= ruleUnionTags ) ) )* otherlv_4= 'end' (otherlv_5= 'union' )? ) ) + // InternalFiacre.g:1220:2: (otherlv_0= 'union' ( (lv_tags_1_0= ruleUnionTags ) ) (otherlv_2= '|' ( (lv_tags_3_0= ruleUnionTags ) ) )* otherlv_4= 'end' (otherlv_5= 'union' )? ) + { + // InternalFiacre.g:1220:2: (otherlv_0= 'union' ( (lv_tags_1_0= ruleUnionTags ) ) (otherlv_2= '|' ( (lv_tags_3_0= ruleUnionTags ) ) )* otherlv_4= 'end' (otherlv_5= 'union' )? ) + // InternalFiacre.g:1221:3: otherlv_0= 'union' ( (lv_tags_1_0= ruleUnionTags ) ) (otherlv_2= '|' ( (lv_tags_3_0= ruleUnionTags ) ) )* otherlv_4= 'end' (otherlv_5= 'union' )? + { + otherlv_0=(Token)match(input,35,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getUnionTypeAccess().getUnionKeyword_0()); + + } + // InternalFiacre.g:1225:3: ( (lv_tags_1_0= ruleUnionTags ) ) + // InternalFiacre.g:1226:4: (lv_tags_1_0= ruleUnionTags ) + { + // InternalFiacre.g:1226:4: (lv_tags_1_0= ruleUnionTags ) + // InternalFiacre.g:1227:5: lv_tags_1_0= ruleUnionTags + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_25); + lv_tags_1_0=ruleUnionTags(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnionTypeRule()); + } + add( + current, + "tags", + lv_tags_1_0, + "fr.irit.fiacre.xtext.Fiacre.UnionTags"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:1244:3: (otherlv_2= '|' ( (lv_tags_3_0= ruleUnionTags ) ) )* + loop19: + do { + int alt19=2; + int LA19_0 = input.LA(1); + + if ( (LA19_0==13) ) { + alt19=1; + } + + + switch (alt19) { + case 1 : + // InternalFiacre.g:1245:4: otherlv_2= '|' ( (lv_tags_3_0= ruleUnionTags ) ) + { + otherlv_2=(Token)match(input,13,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getUnionTypeAccess().getVerticalLineKeyword_2_0()); + + } + // InternalFiacre.g:1249:4: ( (lv_tags_3_0= ruleUnionTags ) ) + // InternalFiacre.g:1250:5: (lv_tags_3_0= ruleUnionTags ) + { + // InternalFiacre.g:1250:5: (lv_tags_3_0= ruleUnionTags ) + // InternalFiacre.g:1251:6: lv_tags_3_0= ruleUnionTags + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUnionTypeAccess().getTagsUnionTagsParserRuleCall_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_25); + lv_tags_3_0=ruleUnionTags(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnionTypeRule()); + } + add( + current, + "tags", + lv_tags_3_0, + "fr.irit.fiacre.xtext.Fiacre.UnionTags"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop19; + } + } while (true); + + otherlv_4=(Token)match(input,36,FollowSets000.FOLLOW_26); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getUnionTypeAccess().getEndKeyword_3()); + + } + // InternalFiacre.g:1273:3: (otherlv_5= 'union' )? + int alt20=2; + int LA20_0 = input.LA(1); + + if ( (LA20_0==35) ) { + alt20=1; + } + switch (alt20) { + case 1 : + // InternalFiacre.g:1274:4: otherlv_5= 'union' + { + otherlv_5=(Token)match(input,35,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getUnionTypeAccess().getUnionKeyword_4()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleUnionType" + + + // $ANTLR start "entryRuleUnionTags" + // InternalFiacre.g:1283:1: entryRuleUnionTags returns [EObject current=null] : iv_ruleUnionTags= ruleUnionTags EOF ; + public final EObject entryRuleUnionTags() throws RecognitionException { + EObject current = null; + + EObject iv_ruleUnionTags = null; + + + try { + // InternalFiacre.g:1283:50: (iv_ruleUnionTags= ruleUnionTags EOF ) + // InternalFiacre.g:1284:2: iv_ruleUnionTags= ruleUnionTags EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getUnionTagsRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleUnionTags=ruleUnionTags(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleUnionTags; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleUnionTags" + + + // $ANTLR start "ruleUnionTags" + // InternalFiacre.g:1290:1: ruleUnionTags returns [EObject current=null] : ( ( (lv_tags_0_0= ruleUnionTagDeclaration ) ) (otherlv_1= ',' ( (lv_tags_2_0= ruleUnionTagDeclaration ) ) )* (otherlv_3= 'of' ( (lv_type_4_0= ruleType ) ) )? ) ; + public final EObject ruleUnionTags() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + EObject lv_tags_0_0 = null; + + EObject lv_tags_2_0 = null; + + EObject lv_type_4_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:1296:2: ( ( ( (lv_tags_0_0= ruleUnionTagDeclaration ) ) (otherlv_1= ',' ( (lv_tags_2_0= ruleUnionTagDeclaration ) ) )* (otherlv_3= 'of' ( (lv_type_4_0= ruleType ) ) )? ) ) + // InternalFiacre.g:1297:2: ( ( (lv_tags_0_0= ruleUnionTagDeclaration ) ) (otherlv_1= ',' ( (lv_tags_2_0= ruleUnionTagDeclaration ) ) )* (otherlv_3= 'of' ( (lv_type_4_0= ruleType ) ) )? ) + { + // InternalFiacre.g:1297:2: ( ( (lv_tags_0_0= ruleUnionTagDeclaration ) ) (otherlv_1= ',' ( (lv_tags_2_0= ruleUnionTagDeclaration ) ) )* (otherlv_3= 'of' ( (lv_type_4_0= ruleType ) ) )? ) + // InternalFiacre.g:1298:3: ( (lv_tags_0_0= ruleUnionTagDeclaration ) ) (otherlv_1= ',' ( (lv_tags_2_0= ruleUnionTagDeclaration ) ) )* (otherlv_3= 'of' ( (lv_type_4_0= ruleType ) ) )? + { + // InternalFiacre.g:1298:3: ( (lv_tags_0_0= ruleUnionTagDeclaration ) ) + // InternalFiacre.g:1299:4: (lv_tags_0_0= ruleUnionTagDeclaration ) + { + // InternalFiacre.g:1299:4: (lv_tags_0_0= ruleUnionTagDeclaration ) + // InternalFiacre.g:1300:5: lv_tags_0_0= ruleUnionTagDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_27); + lv_tags_0_0=ruleUnionTagDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnionTagsRule()); + } + add( + current, + "tags", + lv_tags_0_0, + "fr.irit.fiacre.xtext.Fiacre.UnionTagDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:1317:3: (otherlv_1= ',' ( (lv_tags_2_0= ruleUnionTagDeclaration ) ) )* + loop21: + do { + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==17) ) { + alt21=1; + } + + + switch (alt21) { + case 1 : + // InternalFiacre.g:1318:4: otherlv_1= ',' ( (lv_tags_2_0= ruleUnionTagDeclaration ) ) + { + otherlv_1=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getUnionTagsAccess().getCommaKeyword_1_0()); + + } + // InternalFiacre.g:1322:4: ( (lv_tags_2_0= ruleUnionTagDeclaration ) ) + // InternalFiacre.g:1323:5: (lv_tags_2_0= ruleUnionTagDeclaration ) + { + // InternalFiacre.g:1323:5: (lv_tags_2_0= ruleUnionTagDeclaration ) + // InternalFiacre.g:1324:6: lv_tags_2_0= ruleUnionTagDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUnionTagsAccess().getTagsUnionTagDeclarationParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_27); + lv_tags_2_0=ruleUnionTagDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnionTagsRule()); + } + add( + current, + "tags", + lv_tags_2_0, + "fr.irit.fiacre.xtext.Fiacre.UnionTagDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop21; + } + } while (true); + + // InternalFiacre.g:1342:3: (otherlv_3= 'of' ( (lv_type_4_0= ruleType ) ) )? + int alt22=2; + int LA22_0 = input.LA(1); + + if ( (LA22_0==25) ) { + alt22=1; + } + switch (alt22) { + case 1 : + // InternalFiacre.g:1343:4: otherlv_3= 'of' ( (lv_type_4_0= ruleType ) ) + { + otherlv_3=(Token)match(input,25,FollowSets000.FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getUnionTagsAccess().getOfKeyword_2_0()); + + } + // InternalFiacre.g:1347:4: ( (lv_type_4_0= ruleType ) ) + // InternalFiacre.g:1348:5: (lv_type_4_0= ruleType ) + { + // InternalFiacre.g:1348:5: (lv_type_4_0= ruleType ) + // InternalFiacre.g:1349:6: lv_type_4_0= ruleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUnionTagsAccess().getTypeTypeParserRuleCall_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_type_4_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnionTagsRule()); + } + set( + current, + "type", + lv_type_4_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleUnionTags" + + + // $ANTLR start "entryRuleUnionTagDeclaration" + // InternalFiacre.g:1371:1: entryRuleUnionTagDeclaration returns [EObject current=null] : iv_ruleUnionTagDeclaration= ruleUnionTagDeclaration EOF ; + public final EObject entryRuleUnionTagDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleUnionTagDeclaration = null; + + + try { + // InternalFiacre.g:1371:60: (iv_ruleUnionTagDeclaration= ruleUnionTagDeclaration EOF ) + // InternalFiacre.g:1372:2: iv_ruleUnionTagDeclaration= ruleUnionTagDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getUnionTagDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleUnionTagDeclaration=ruleUnionTagDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleUnionTagDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleUnionTagDeclaration" + + + // $ANTLR start "ruleUnionTagDeclaration" + // InternalFiacre.g:1378:1: ruleUnionTagDeclaration returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; + public final EObject ruleUnionTagDeclaration() throws RecognitionException { + EObject current = null; + + Token lv_name_0_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:1384:2: ( ( (lv_name_0_0= RULE_ID ) ) ) + // InternalFiacre.g:1385:2: ( (lv_name_0_0= RULE_ID ) ) + { + // InternalFiacre.g:1385:2: ( (lv_name_0_0= RULE_ID ) ) + // InternalFiacre.g:1386:3: (lv_name_0_0= RULE_ID ) + { + // InternalFiacre.g:1386:3: (lv_name_0_0= RULE_ID ) + // InternalFiacre.g:1387:4: lv_name_0_0= RULE_ID + { + lv_name_0_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_0_0, grammarAccess.getUnionTagDeclarationAccess().getNameIDTerminalRuleCall_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getUnionTagDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_0_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleUnionTagDeclaration" + + + // $ANTLR start "entryRuleRecordType" + // InternalFiacre.g:1406:1: entryRuleRecordType returns [EObject current=null] : iv_ruleRecordType= ruleRecordType EOF ; + public final EObject entryRuleRecordType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRecordType = null; + + + try { + // InternalFiacre.g:1406:51: (iv_ruleRecordType= ruleRecordType EOF ) + // InternalFiacre.g:1407:2: iv_ruleRecordType= ruleRecordType EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getRecordTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleRecordType=ruleRecordType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleRecordType; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRecordType" + + + // $ANTLR start "ruleRecordType" + // InternalFiacre.g:1413:1: ruleRecordType returns [EObject current=null] : (otherlv_0= 'record' ( (lv_fields_1_0= ruleRecordFields ) ) (otherlv_2= ',' ( (lv_fields_3_0= ruleRecordFields ) ) )* otherlv_4= 'end' (otherlv_5= 'record' )? ) ; + public final EObject ruleRecordType() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_5=null; + EObject lv_fields_1_0 = null; + + EObject lv_fields_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:1419:2: ( (otherlv_0= 'record' ( (lv_fields_1_0= ruleRecordFields ) ) (otherlv_2= ',' ( (lv_fields_3_0= ruleRecordFields ) ) )* otherlv_4= 'end' (otherlv_5= 'record' )? ) ) + // InternalFiacre.g:1420:2: (otherlv_0= 'record' ( (lv_fields_1_0= ruleRecordFields ) ) (otherlv_2= ',' ( (lv_fields_3_0= ruleRecordFields ) ) )* otherlv_4= 'end' (otherlv_5= 'record' )? ) + { + // InternalFiacre.g:1420:2: (otherlv_0= 'record' ( (lv_fields_1_0= ruleRecordFields ) ) (otherlv_2= ',' ( (lv_fields_3_0= ruleRecordFields ) ) )* otherlv_4= 'end' (otherlv_5= 'record' )? ) + // InternalFiacre.g:1421:3: otherlv_0= 'record' ( (lv_fields_1_0= ruleRecordFields ) ) (otherlv_2= ',' ( (lv_fields_3_0= ruleRecordFields ) ) )* otherlv_4= 'end' (otherlv_5= 'record' )? + { + otherlv_0=(Token)match(input,37,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getRecordTypeAccess().getRecordKeyword_0()); + + } + // InternalFiacre.g:1425:3: ( (lv_fields_1_0= ruleRecordFields ) ) + // InternalFiacre.g:1426:4: (lv_fields_1_0= ruleRecordFields ) + { + // InternalFiacre.g:1426:4: (lv_fields_1_0= ruleRecordFields ) + // InternalFiacre.g:1427:5: lv_fields_1_0= ruleRecordFields + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_28); + lv_fields_1_0=ruleRecordFields(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRecordTypeRule()); + } + add( + current, + "fields", + lv_fields_1_0, + "fr.irit.fiacre.xtext.Fiacre.RecordFields"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:1444:3: (otherlv_2= ',' ( (lv_fields_3_0= ruleRecordFields ) ) )* + loop23: + do { + int alt23=2; + int LA23_0 = input.LA(1); + + if ( (LA23_0==17) ) { + alt23=1; + } + + + switch (alt23) { + case 1 : + // InternalFiacre.g:1445:4: otherlv_2= ',' ( (lv_fields_3_0= ruleRecordFields ) ) + { + otherlv_2=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getRecordTypeAccess().getCommaKeyword_2_0()); + + } + // InternalFiacre.g:1449:4: ( (lv_fields_3_0= ruleRecordFields ) ) + // InternalFiacre.g:1450:5: (lv_fields_3_0= ruleRecordFields ) + { + // InternalFiacre.g:1450:5: (lv_fields_3_0= ruleRecordFields ) + // InternalFiacre.g:1451:6: lv_fields_3_0= ruleRecordFields + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getRecordTypeAccess().getFieldsRecordFieldsParserRuleCall_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_28); + lv_fields_3_0=ruleRecordFields(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRecordTypeRule()); + } + add( + current, + "fields", + lv_fields_3_0, + "fr.irit.fiacre.xtext.Fiacre.RecordFields"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop23; + } + } while (true); + + otherlv_4=(Token)match(input,36,FollowSets000.FOLLOW_29); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getRecordTypeAccess().getEndKeyword_3()); + + } + // InternalFiacre.g:1473:3: (otherlv_5= 'record' )? + int alt24=2; + int LA24_0 = input.LA(1); + + if ( (LA24_0==37) ) { + alt24=1; + } + switch (alt24) { + case 1 : + // InternalFiacre.g:1474:4: otherlv_5= 'record' + { + otherlv_5=(Token)match(input,37,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getRecordTypeAccess().getRecordKeyword_4()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRecordType" + + + // $ANTLR start "entryRuleRecordFields" + // InternalFiacre.g:1483:1: entryRuleRecordFields returns [EObject current=null] : iv_ruleRecordFields= ruleRecordFields EOF ; + public final EObject entryRuleRecordFields() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRecordFields = null; + + + try { + // InternalFiacre.g:1483:53: (iv_ruleRecordFields= ruleRecordFields EOF ) + // InternalFiacre.g:1484:2: iv_ruleRecordFields= ruleRecordFields EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getRecordFieldsRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleRecordFields=ruleRecordFields(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleRecordFields; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRecordFields" + + + // $ANTLR start "ruleRecordFields" + // InternalFiacre.g:1490:1: ruleRecordFields returns [EObject current=null] : ( ( (lv_fields_0_0= ruleRecordFieldDeclaration ) ) (otherlv_1= ',' ( (lv_fields_2_0= ruleRecordFieldDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleType ) ) ) ; + public final EObject ruleRecordFields() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + EObject lv_fields_0_0 = null; + + EObject lv_fields_2_0 = null; + + EObject lv_type_4_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:1496:2: ( ( ( (lv_fields_0_0= ruleRecordFieldDeclaration ) ) (otherlv_1= ',' ( (lv_fields_2_0= ruleRecordFieldDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleType ) ) ) ) + // InternalFiacre.g:1497:2: ( ( (lv_fields_0_0= ruleRecordFieldDeclaration ) ) (otherlv_1= ',' ( (lv_fields_2_0= ruleRecordFieldDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleType ) ) ) + { + // InternalFiacre.g:1497:2: ( ( (lv_fields_0_0= ruleRecordFieldDeclaration ) ) (otherlv_1= ',' ( (lv_fields_2_0= ruleRecordFieldDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleType ) ) ) + // InternalFiacre.g:1498:3: ( (lv_fields_0_0= ruleRecordFieldDeclaration ) ) (otherlv_1= ',' ( (lv_fields_2_0= ruleRecordFieldDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleType ) ) + { + // InternalFiacre.g:1498:3: ( (lv_fields_0_0= ruleRecordFieldDeclaration ) ) + // InternalFiacre.g:1499:4: (lv_fields_0_0= ruleRecordFieldDeclaration ) + { + // InternalFiacre.g:1499:4: (lv_fields_0_0= ruleRecordFieldDeclaration ) + // InternalFiacre.g:1500:5: lv_fields_0_0= ruleRecordFieldDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_30); + lv_fields_0_0=ruleRecordFieldDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRecordFieldsRule()); + } + add( + current, + "fields", + lv_fields_0_0, + "fr.irit.fiacre.xtext.Fiacre.RecordFieldDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:1517:3: (otherlv_1= ',' ( (lv_fields_2_0= ruleRecordFieldDeclaration ) ) )* + loop25: + do { + int alt25=2; + int LA25_0 = input.LA(1); + + if ( (LA25_0==17) ) { + alt25=1; + } + + + switch (alt25) { + case 1 : + // InternalFiacre.g:1518:4: otherlv_1= ',' ( (lv_fields_2_0= ruleRecordFieldDeclaration ) ) + { + otherlv_1=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getRecordFieldsAccess().getCommaKeyword_1_0()); + + } + // InternalFiacre.g:1522:4: ( (lv_fields_2_0= ruleRecordFieldDeclaration ) ) + // InternalFiacre.g:1523:5: (lv_fields_2_0= ruleRecordFieldDeclaration ) + { + // InternalFiacre.g:1523:5: (lv_fields_2_0= ruleRecordFieldDeclaration ) + // InternalFiacre.g:1524:6: lv_fields_2_0= ruleRecordFieldDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getRecordFieldsAccess().getFieldsRecordFieldDeclarationParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_30); + lv_fields_2_0=ruleRecordFieldDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRecordFieldsRule()); + } + add( + current, + "fields", + lv_fields_2_0, + "fr.irit.fiacre.xtext.Fiacre.RecordFieldDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop25; + } + } while (true); + + otherlv_3=(Token)match(input,19,FollowSets000.FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getRecordFieldsAccess().getColonKeyword_2()); + + } + // InternalFiacre.g:1546:3: ( (lv_type_4_0= ruleType ) ) + // InternalFiacre.g:1547:4: (lv_type_4_0= ruleType ) + { + // InternalFiacre.g:1547:4: (lv_type_4_0= ruleType ) + // InternalFiacre.g:1548:5: lv_type_4_0= ruleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getRecordFieldsAccess().getTypeTypeParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_type_4_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRecordFieldsRule()); + } + set( + current, + "type", + lv_type_4_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRecordFields" + + + // $ANTLR start "entryRuleRecordFieldDeclaration" + // InternalFiacre.g:1569:1: entryRuleRecordFieldDeclaration returns [EObject current=null] : iv_ruleRecordFieldDeclaration= ruleRecordFieldDeclaration EOF ; + public final EObject entryRuleRecordFieldDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRecordFieldDeclaration = null; + + + try { + // InternalFiacre.g:1569:63: (iv_ruleRecordFieldDeclaration= ruleRecordFieldDeclaration EOF ) + // InternalFiacre.g:1570:2: iv_ruleRecordFieldDeclaration= ruleRecordFieldDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getRecordFieldDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleRecordFieldDeclaration=ruleRecordFieldDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleRecordFieldDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRecordFieldDeclaration" + + + // $ANTLR start "ruleRecordFieldDeclaration" + // InternalFiacre.g:1576:1: ruleRecordFieldDeclaration returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; + public final EObject ruleRecordFieldDeclaration() throws RecognitionException { + EObject current = null; + + Token lv_name_0_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:1582:2: ( ( (lv_name_0_0= RULE_ID ) ) ) + // InternalFiacre.g:1583:2: ( (lv_name_0_0= RULE_ID ) ) + { + // InternalFiacre.g:1583:2: ( (lv_name_0_0= RULE_ID ) ) + // InternalFiacre.g:1584:3: (lv_name_0_0= RULE_ID ) + { + // InternalFiacre.g:1584:3: (lv_name_0_0= RULE_ID ) + // InternalFiacre.g:1585:4: lv_name_0_0= RULE_ID + { + lv_name_0_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_0_0, grammarAccess.getRecordFieldDeclarationAccess().getNameIDTerminalRuleCall_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getRecordFieldDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_0_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRecordFieldDeclaration" + + + // $ANTLR start "entryRuleQueueType" + // InternalFiacre.g:1604:1: entryRuleQueueType returns [EObject current=null] : iv_ruleQueueType= ruleQueueType EOF ; + public final EObject entryRuleQueueType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleQueueType = null; + + + try { + // InternalFiacre.g:1604:50: (iv_ruleQueueType= ruleQueueType EOF ) + // InternalFiacre.g:1605:2: iv_ruleQueueType= ruleQueueType EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getQueueTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleQueueType=ruleQueueType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleQueueType; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleQueueType" + + + // $ANTLR start "ruleQueueType" + // InternalFiacre.g:1611:1: ruleQueueType returns [EObject current=null] : (otherlv_0= 'queue' ( (lv_size_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_type_3_0= ruleType ) ) ) ; + public final EObject ruleQueueType() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + EObject lv_size_1_0 = null; + + EObject lv_type_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:1617:2: ( (otherlv_0= 'queue' ( (lv_size_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_type_3_0= ruleType ) ) ) ) + // InternalFiacre.g:1618:2: (otherlv_0= 'queue' ( (lv_size_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_type_3_0= ruleType ) ) ) + { + // InternalFiacre.g:1618:2: (otherlv_0= 'queue' ( (lv_size_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_type_3_0= ruleType ) ) ) + // InternalFiacre.g:1619:3: otherlv_0= 'queue' ( (lv_size_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_type_3_0= ruleType ) ) + { + otherlv_0=(Token)match(input,38,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getQueueTypeAccess().getQueueKeyword_0()); + + } + // InternalFiacre.g:1623:3: ( (lv_size_1_0= ruleExpression ) ) + // InternalFiacre.g:1624:4: (lv_size_1_0= ruleExpression ) + { + // InternalFiacre.g:1624:4: (lv_size_1_0= ruleExpression ) + // InternalFiacre.g:1625:5: lv_size_1_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQueueTypeAccess().getSizeExpressionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_20); + lv_size_1_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getQueueTypeRule()); + } + set( + current, + "size", + lv_size_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,25,FollowSets000.FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getQueueTypeAccess().getOfKeyword_2()); + + } + // InternalFiacre.g:1646:3: ( (lv_type_3_0= ruleType ) ) + // InternalFiacre.g:1647:4: (lv_type_3_0= ruleType ) + { + // InternalFiacre.g:1647:4: (lv_type_3_0= ruleType ) + // InternalFiacre.g:1648:5: lv_type_3_0= ruleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQueueTypeAccess().getTypeTypeParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_type_3_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getQueueTypeRule()); + } + set( + current, + "type", + lv_type_3_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleQueueType" + + + // $ANTLR start "entryRuleArrayType" + // InternalFiacre.g:1669:1: entryRuleArrayType returns [EObject current=null] : iv_ruleArrayType= ruleArrayType EOF ; + public final EObject entryRuleArrayType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleArrayType = null; + + + try { + // InternalFiacre.g:1669:50: (iv_ruleArrayType= ruleArrayType EOF ) + // InternalFiacre.g:1670:2: iv_ruleArrayType= ruleArrayType EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getArrayTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleArrayType=ruleArrayType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleArrayType; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleArrayType" + + + // $ANTLR start "ruleArrayType" + // InternalFiacre.g:1676:1: ruleArrayType returns [EObject current=null] : (otherlv_0= 'array' ( (lv_size_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_type_3_0= ruleType ) ) ) ; + public final EObject ruleArrayType() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + EObject lv_size_1_0 = null; + + EObject lv_type_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:1682:2: ( (otherlv_0= 'array' ( (lv_size_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_type_3_0= ruleType ) ) ) ) + // InternalFiacre.g:1683:2: (otherlv_0= 'array' ( (lv_size_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_type_3_0= ruleType ) ) ) + { + // InternalFiacre.g:1683:2: (otherlv_0= 'array' ( (lv_size_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_type_3_0= ruleType ) ) ) + // InternalFiacre.g:1684:3: otherlv_0= 'array' ( (lv_size_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_type_3_0= ruleType ) ) + { + otherlv_0=(Token)match(input,24,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getArrayTypeAccess().getArrayKeyword_0()); + + } + // InternalFiacre.g:1688:3: ( (lv_size_1_0= ruleExpression ) ) + // InternalFiacre.g:1689:4: (lv_size_1_0= ruleExpression ) + { + // InternalFiacre.g:1689:4: (lv_size_1_0= ruleExpression ) + // InternalFiacre.g:1690:5: lv_size_1_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getArrayTypeAccess().getSizeExpressionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_20); + lv_size_1_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getArrayTypeRule()); + } + set( + current, + "size", + lv_size_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,25,FollowSets000.FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getArrayTypeAccess().getOfKeyword_2()); + + } + // InternalFiacre.g:1711:3: ( (lv_type_3_0= ruleType ) ) + // InternalFiacre.g:1712:4: (lv_type_3_0= ruleType ) + { + // InternalFiacre.g:1712:4: (lv_type_3_0= ruleType ) + // InternalFiacre.g:1713:5: lv_type_3_0= ruleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getArrayTypeAccess().getTypeTypeParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_type_3_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getArrayTypeRule()); + } + set( + current, + "type", + lv_type_3_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleArrayType" + + + // $ANTLR start "entryRuleReferencedType" + // InternalFiacre.g:1734:1: entryRuleReferencedType returns [EObject current=null] : iv_ruleReferencedType= ruleReferencedType EOF ; + public final EObject entryRuleReferencedType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleReferencedType = null; + + + try { + // InternalFiacre.g:1734:55: (iv_ruleReferencedType= ruleReferencedType EOF ) + // InternalFiacre.g:1735:2: iv_ruleReferencedType= ruleReferencedType EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getReferencedTypeRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleReferencedType=ruleReferencedType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleReferencedType; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleReferencedType" + + + // $ANTLR start "ruleReferencedType" + // InternalFiacre.g:1741:1: ruleReferencedType returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ; + public final EObject ruleReferencedType() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:1747:2: ( ( (otherlv_0= RULE_ID ) ) ) + // InternalFiacre.g:1748:2: ( (otherlv_0= RULE_ID ) ) + { + // InternalFiacre.g:1748:2: ( (otherlv_0= RULE_ID ) ) + // InternalFiacre.g:1749:3: (otherlv_0= RULE_ID ) + { + // InternalFiacre.g:1749:3: (otherlv_0= RULE_ID ) + // InternalFiacre.g:1750:4: otherlv_0= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getReferencedTypeRule()); + } + + } + otherlv_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseCrossReference_0()); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleReferencedType" + + + // $ANTLR start "entryRuleConstantDeclaration" + // InternalFiacre.g:1767:1: entryRuleConstantDeclaration returns [EObject current=null] : iv_ruleConstantDeclaration= ruleConstantDeclaration EOF ; + public final EObject entryRuleConstantDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleConstantDeclaration = null; + + + try { + // InternalFiacre.g:1767:60: (iv_ruleConstantDeclaration= ruleConstantDeclaration EOF ) + // InternalFiacre.g:1768:2: iv_ruleConstantDeclaration= ruleConstantDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getConstantDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleConstantDeclaration=ruleConstantDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleConstantDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleConstantDeclaration" + + + // $ANTLR start "ruleConstantDeclaration" + // InternalFiacre.g:1774:1: ruleConstantDeclaration returns [EObject current=null] : (otherlv_0= 'const' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) otherlv_4= 'is' ( (lv_value_5_0= ruleExpression ) ) ) ; + public final EObject ruleConstantDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + EObject lv_type_3_0 = null; + + EObject lv_value_5_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:1780:2: ( (otherlv_0= 'const' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) otherlv_4= 'is' ( (lv_value_5_0= ruleExpression ) ) ) ) + // InternalFiacre.g:1781:2: (otherlv_0= 'const' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) otherlv_4= 'is' ( (lv_value_5_0= ruleExpression ) ) ) + { + // InternalFiacre.g:1781:2: (otherlv_0= 'const' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) otherlv_4= 'is' ( (lv_value_5_0= ruleExpression ) ) ) + // InternalFiacre.g:1782:3: otherlv_0= 'const' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) otherlv_4= 'is' ( (lv_value_5_0= ruleExpression ) ) + { + otherlv_0=(Token)match(input,39,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getConstantDeclarationAccess().getConstKeyword_0()); + + } + // InternalFiacre.g:1786:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalFiacre.g:1787:4: (lv_name_1_0= RULE_ID ) + { + // InternalFiacre.g:1787:4: (lv_name_1_0= RULE_ID ) + // InternalFiacre.g:1788:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_13); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getConstantDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getConstantDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + otherlv_2=(Token)match(input,19,FollowSets000.FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getConstantDeclarationAccess().getColonKeyword_2()); + + } + // InternalFiacre.g:1808:3: ( (lv_type_3_0= ruleType ) ) + // InternalFiacre.g:1809:4: (lv_type_3_0= ruleType ) + { + // InternalFiacre.g:1809:4: (lv_type_3_0= ruleType ) + // InternalFiacre.g:1810:5: lv_type_3_0= ruleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConstantDeclarationAccess().getTypeTypeParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_15); + lv_type_3_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConstantDeclarationRule()); + } + set( + current, + "type", + lv_type_3_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_4=(Token)match(input,20,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getConstantDeclarationAccess().getIsKeyword_4()); + + } + // InternalFiacre.g:1831:3: ( (lv_value_5_0= ruleExpression ) ) + // InternalFiacre.g:1832:4: (lv_value_5_0= ruleExpression ) + { + // InternalFiacre.g:1832:4: (lv_value_5_0= ruleExpression ) + // InternalFiacre.g:1833:5: lv_value_5_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConstantDeclarationAccess().getValueExpressionParserRuleCall_5_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_value_5_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConstantDeclarationRule()); + } + set( + current, + "value", + lv_value_5_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleConstantDeclaration" + + + // $ANTLR start "entryRuleProcessDeclaration" + // InternalFiacre.g:1854:1: entryRuleProcessDeclaration returns [EObject current=null] : iv_ruleProcessDeclaration= ruleProcessDeclaration EOF ; + public final EObject entryRuleProcessDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleProcessDeclaration = null; + + + try { + // InternalFiacre.g:1854:59: (iv_ruleProcessDeclaration= ruleProcessDeclaration EOF ) + // InternalFiacre.g:1855:2: iv_ruleProcessDeclaration= ruleProcessDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getProcessDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleProcessDeclaration=ruleProcessDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleProcessDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleProcessDeclaration" + + + // $ANTLR start "ruleProcessDeclaration" + // InternalFiacre.g:1861:1: ruleProcessDeclaration returns [EObject current=null] : (otherlv_0= 'process' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? otherlv_12= 'is' (otherlv_13= 'port' ( (lv_localPorts_14_0= rulePortsDeclaration ) ) (otherlv_15= ',' ( (lv_localPorts_16_0= rulePortsDeclaration ) ) )* )? (otherlv_17= 'priority' ( (lv_priorities_18_0= rulePriorityDeclaration ) ) (otherlv_19= ',' ( (lv_priorities_20_0= rulePriorityDeclaration ) ) )* )? otherlv_21= 'states' ( (lv_states_22_0= ruleStateDeclaration ) ) (otherlv_23= ',' ( (lv_states_24_0= ruleStateDeclaration ) ) )* (otherlv_25= 'var' ( (lv_variables_26_0= ruleVariablesDeclaration ) ) (otherlv_27= ',' ( (lv_variables_28_0= ruleVariablesDeclaration ) ) )* )? (otherlv_29= 'init' ( (lv_prelude_30_0= ruleStatementSequence ) ) )? ( (lv_transitions_31_0= ruleTransition ) )+ ) ; + public final EObject ruleProcessDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token otherlv_11=null; + Token otherlv_12=null; + Token otherlv_13=null; + Token otherlv_15=null; + Token otherlv_17=null; + Token otherlv_19=null; + Token otherlv_21=null; + Token otherlv_23=null; + Token otherlv_25=null; + Token otherlv_27=null; + Token otherlv_29=null; + EObject lv_ports_3_0 = null; + + EObject lv_ports_5_0 = null; + + EObject lv_parameters_8_0 = null; + + EObject lv_parameters_10_0 = null; + + EObject lv_localPorts_14_0 = null; + + EObject lv_localPorts_16_0 = null; + + EObject lv_priorities_18_0 = null; + + EObject lv_priorities_20_0 = null; + + EObject lv_states_22_0 = null; + + EObject lv_states_24_0 = null; + + EObject lv_variables_26_0 = null; + + EObject lv_variables_28_0 = null; + + EObject lv_prelude_30_0 = null; + + EObject lv_transitions_31_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:1867:2: ( (otherlv_0= 'process' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? otherlv_12= 'is' (otherlv_13= 'port' ( (lv_localPorts_14_0= rulePortsDeclaration ) ) (otherlv_15= ',' ( (lv_localPorts_16_0= rulePortsDeclaration ) ) )* )? (otherlv_17= 'priority' ( (lv_priorities_18_0= rulePriorityDeclaration ) ) (otherlv_19= ',' ( (lv_priorities_20_0= rulePriorityDeclaration ) ) )* )? otherlv_21= 'states' ( (lv_states_22_0= ruleStateDeclaration ) ) (otherlv_23= ',' ( (lv_states_24_0= ruleStateDeclaration ) ) )* (otherlv_25= 'var' ( (lv_variables_26_0= ruleVariablesDeclaration ) ) (otherlv_27= ',' ( (lv_variables_28_0= ruleVariablesDeclaration ) ) )* )? (otherlv_29= 'init' ( (lv_prelude_30_0= ruleStatementSequence ) ) )? ( (lv_transitions_31_0= ruleTransition ) )+ ) ) + // InternalFiacre.g:1868:2: (otherlv_0= 'process' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? otherlv_12= 'is' (otherlv_13= 'port' ( (lv_localPorts_14_0= rulePortsDeclaration ) ) (otherlv_15= ',' ( (lv_localPorts_16_0= rulePortsDeclaration ) ) )* )? (otherlv_17= 'priority' ( (lv_priorities_18_0= rulePriorityDeclaration ) ) (otherlv_19= ',' ( (lv_priorities_20_0= rulePriorityDeclaration ) ) )* )? otherlv_21= 'states' ( (lv_states_22_0= ruleStateDeclaration ) ) (otherlv_23= ',' ( (lv_states_24_0= ruleStateDeclaration ) ) )* (otherlv_25= 'var' ( (lv_variables_26_0= ruleVariablesDeclaration ) ) (otherlv_27= ',' ( (lv_variables_28_0= ruleVariablesDeclaration ) ) )* )? (otherlv_29= 'init' ( (lv_prelude_30_0= ruleStatementSequence ) ) )? ( (lv_transitions_31_0= ruleTransition ) )+ ) + { + // InternalFiacre.g:1868:2: (otherlv_0= 'process' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? otherlv_12= 'is' (otherlv_13= 'port' ( (lv_localPorts_14_0= rulePortsDeclaration ) ) (otherlv_15= ',' ( (lv_localPorts_16_0= rulePortsDeclaration ) ) )* )? (otherlv_17= 'priority' ( (lv_priorities_18_0= rulePriorityDeclaration ) ) (otherlv_19= ',' ( (lv_priorities_20_0= rulePriorityDeclaration ) ) )* )? otherlv_21= 'states' ( (lv_states_22_0= ruleStateDeclaration ) ) (otherlv_23= ',' ( (lv_states_24_0= ruleStateDeclaration ) ) )* (otherlv_25= 'var' ( (lv_variables_26_0= ruleVariablesDeclaration ) ) (otherlv_27= ',' ( (lv_variables_28_0= ruleVariablesDeclaration ) ) )* )? (otherlv_29= 'init' ( (lv_prelude_30_0= ruleStatementSequence ) ) )? ( (lv_transitions_31_0= ruleTransition ) )+ ) + // InternalFiacre.g:1869:3: otherlv_0= 'process' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? otherlv_12= 'is' (otherlv_13= 'port' ( (lv_localPorts_14_0= rulePortsDeclaration ) ) (otherlv_15= ',' ( (lv_localPorts_16_0= rulePortsDeclaration ) ) )* )? (otherlv_17= 'priority' ( (lv_priorities_18_0= rulePriorityDeclaration ) ) (otherlv_19= ',' ( (lv_priorities_20_0= rulePriorityDeclaration ) ) )* )? otherlv_21= 'states' ( (lv_states_22_0= ruleStateDeclaration ) ) (otherlv_23= ',' ( (lv_states_24_0= ruleStateDeclaration ) ) )* (otherlv_25= 'var' ( (lv_variables_26_0= ruleVariablesDeclaration ) ) (otherlv_27= ',' ( (lv_variables_28_0= ruleVariablesDeclaration ) ) )* )? (otherlv_29= 'init' ( (lv_prelude_30_0= ruleStatementSequence ) ) )? ( (lv_transitions_31_0= ruleTransition ) )+ + { + otherlv_0=(Token)match(input,40,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getProcessDeclarationAccess().getProcessKeyword_0()); + + } + // InternalFiacre.g:1873:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalFiacre.g:1874:4: (lv_name_1_0= RULE_ID ) + { + // InternalFiacre.g:1874:4: (lv_name_1_0= RULE_ID ) + // InternalFiacre.g:1875:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_31); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getProcessDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getProcessDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + // InternalFiacre.g:1891:3: (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? + int alt27=2; + int LA27_0 = input.LA(1); + + if ( (LA27_0==41) ) { + alt27=1; + } + switch (alt27) { + case 1 : + // InternalFiacre.g:1892:4: otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' + { + otherlv_2=(Token)match(input,41,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getProcessDeclarationAccess().getLeftSquareBracketKeyword_2_0()); + + } + // InternalFiacre.g:1896:4: ( (lv_ports_3_0= rulePortsDeclaration ) ) + // InternalFiacre.g:1897:5: (lv_ports_3_0= rulePortsDeclaration ) + { + // InternalFiacre.g:1897:5: (lv_ports_3_0= rulePortsDeclaration ) + // InternalFiacre.g:1898:6: lv_ports_3_0= rulePortsDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_32); + lv_ports_3_0=rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "ports", + lv_ports_3_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:1915:4: (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* + loop26: + do { + int alt26=2; + int LA26_0 = input.LA(1); + + if ( (LA26_0==17) ) { + alt26=1; + } + + + switch (alt26) { + case 1 : + // InternalFiacre.g:1916:5: otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) + { + otherlv_4=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_2_2_0()); + + } + // InternalFiacre.g:1920:5: ( (lv_ports_5_0= rulePortsDeclaration ) ) + // InternalFiacre.g:1921:6: (lv_ports_5_0= rulePortsDeclaration ) + { + // InternalFiacre.g:1921:6: (lv_ports_5_0= rulePortsDeclaration ) + // InternalFiacre.g:1922:7: lv_ports_5_0= rulePortsDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_32); + lv_ports_5_0=rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "ports", + lv_ports_5_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop26; + } + } while (true); + + otherlv_6=(Token)match(input,42,FollowSets000.FOLLOW_33); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getProcessDeclarationAccess().getRightSquareBracketKeyword_2_3()); + + } + + } + break; + + } + + // InternalFiacre.g:1945:3: (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? + int alt29=2; + int LA29_0 = input.LA(1); + + if ( (LA29_0==16) ) { + alt29=1; + } + switch (alt29) { + case 1 : + // InternalFiacre.g:1946:4: otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' + { + otherlv_7=(Token)match(input,16,FollowSets000.FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getProcessDeclarationAccess().getLeftParenthesisKeyword_3_0()); + + } + // InternalFiacre.g:1950:4: ( (lv_parameters_8_0= ruleParametersDeclaration ) ) + // InternalFiacre.g:1951:5: (lv_parameters_8_0= ruleParametersDeclaration ) + { + // InternalFiacre.g:1951:5: (lv_parameters_8_0= ruleParametersDeclaration ) + // InternalFiacre.g:1952:6: lv_parameters_8_0= ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_8_0=ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "parameters", + lv_parameters_8_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:1969:4: (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* + loop28: + do { + int alt28=2; + int LA28_0 = input.LA(1); + + if ( (LA28_0==17) ) { + alt28=1; + } + + + switch (alt28) { + case 1 : + // InternalFiacre.g:1970:5: otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) + { + otherlv_9=(Token)match(input,17,FollowSets000.FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_3_2_0()); + + } + // InternalFiacre.g:1974:5: ( (lv_parameters_10_0= ruleParametersDeclaration ) ) + // InternalFiacre.g:1975:6: (lv_parameters_10_0= ruleParametersDeclaration ) + { + // InternalFiacre.g:1975:6: (lv_parameters_10_0= ruleParametersDeclaration ) + // InternalFiacre.g:1976:7: lv_parameters_10_0= ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_10_0=ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "parameters", + lv_parameters_10_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop28; + } + } while (true); + + otherlv_11=(Token)match(input,18,FollowSets000.FOLLOW_15); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getProcessDeclarationAccess().getRightParenthesisKeyword_3_3()); + + } + + } + break; + + } + + otherlv_12=(Token)match(input,20,FollowSets000.FOLLOW_34); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_12, grammarAccess.getProcessDeclarationAccess().getIsKeyword_4()); + + } + // InternalFiacre.g:2003:3: (otherlv_13= 'port' ( (lv_localPorts_14_0= rulePortsDeclaration ) ) (otherlv_15= ',' ( (lv_localPorts_16_0= rulePortsDeclaration ) ) )* )? + int alt31=2; + int LA31_0 = input.LA(1); + + if ( (LA31_0==43) ) { + alt31=1; + } + switch (alt31) { + case 1 : + // InternalFiacre.g:2004:4: otherlv_13= 'port' ( (lv_localPorts_14_0= rulePortsDeclaration ) ) (otherlv_15= ',' ( (lv_localPorts_16_0= rulePortsDeclaration ) ) )* + { + otherlv_13=(Token)match(input,43,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_13, grammarAccess.getProcessDeclarationAccess().getPortKeyword_5_0()); + + } + // InternalFiacre.g:2008:4: ( (lv_localPorts_14_0= rulePortsDeclaration ) ) + // InternalFiacre.g:2009:5: (lv_localPorts_14_0= rulePortsDeclaration ) + { + // InternalFiacre.g:2009:5: (lv_localPorts_14_0= rulePortsDeclaration ) + // InternalFiacre.g:2010:6: lv_localPorts_14_0= rulePortsDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_35); + lv_localPorts_14_0=rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "localPorts", + lv_localPorts_14_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2027:4: (otherlv_15= ',' ( (lv_localPorts_16_0= rulePortsDeclaration ) ) )* + loop30: + do { + int alt30=2; + int LA30_0 = input.LA(1); + + if ( (LA30_0==17) ) { + alt30=1; + } + + + switch (alt30) { + case 1 : + // InternalFiacre.g:2028:5: otherlv_15= ',' ( (lv_localPorts_16_0= rulePortsDeclaration ) ) + { + otherlv_15=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_15, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_5_2_0()); + + } + // InternalFiacre.g:2032:5: ( (lv_localPorts_16_0= rulePortsDeclaration ) ) + // InternalFiacre.g:2033:6: (lv_localPorts_16_0= rulePortsDeclaration ) + { + // InternalFiacre.g:2033:6: (lv_localPorts_16_0= rulePortsDeclaration ) + // InternalFiacre.g:2034:7: lv_localPorts_16_0= rulePortsDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getLocalPortsPortsDeclarationParserRuleCall_5_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_35); + lv_localPorts_16_0=rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "localPorts", + lv_localPorts_16_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop30; + } + } while (true); + + + } + break; + + } + + // InternalFiacre.g:2053:3: (otherlv_17= 'priority' ( (lv_priorities_18_0= rulePriorityDeclaration ) ) (otherlv_19= ',' ( (lv_priorities_20_0= rulePriorityDeclaration ) ) )* )? + int alt33=2; + int LA33_0 = input.LA(1); + + if ( (LA33_0==44) ) { + alt33=1; + } + switch (alt33) { + case 1 : + // InternalFiacre.g:2054:4: otherlv_17= 'priority' ( (lv_priorities_18_0= rulePriorityDeclaration ) ) (otherlv_19= ',' ( (lv_priorities_20_0= rulePriorityDeclaration ) ) )* + { + otherlv_17=(Token)match(input,44,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_17, grammarAccess.getProcessDeclarationAccess().getPriorityKeyword_6_0()); + + } + // InternalFiacre.g:2058:4: ( (lv_priorities_18_0= rulePriorityDeclaration ) ) + // InternalFiacre.g:2059:5: (lv_priorities_18_0= rulePriorityDeclaration ) + { + // InternalFiacre.g:2059:5: (lv_priorities_18_0= rulePriorityDeclaration ) + // InternalFiacre.g:2060:6: lv_priorities_18_0= rulePriorityDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_36); + lv_priorities_18_0=rulePriorityDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "priorities", + lv_priorities_18_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2077:4: (otherlv_19= ',' ( (lv_priorities_20_0= rulePriorityDeclaration ) ) )* + loop32: + do { + int alt32=2; + int LA32_0 = input.LA(1); + + if ( (LA32_0==17) ) { + alt32=1; + } + + + switch (alt32) { + case 1 : + // InternalFiacre.g:2078:5: otherlv_19= ',' ( (lv_priorities_20_0= rulePriorityDeclaration ) ) + { + otherlv_19=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_19, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_6_2_0()); + + } + // InternalFiacre.g:2082:5: ( (lv_priorities_20_0= rulePriorityDeclaration ) ) + // InternalFiacre.g:2083:6: (lv_priorities_20_0= rulePriorityDeclaration ) + { + // InternalFiacre.g:2083:6: (lv_priorities_20_0= rulePriorityDeclaration ) + // InternalFiacre.g:2084:7: lv_priorities_20_0= rulePriorityDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_6_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_36); + lv_priorities_20_0=rulePriorityDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "priorities", + lv_priorities_20_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop32; + } + } while (true); + + + } + break; + + } + + otherlv_21=(Token)match(input,45,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_21, grammarAccess.getProcessDeclarationAccess().getStatesKeyword_7()); + + } + // InternalFiacre.g:2107:3: ( (lv_states_22_0= ruleStateDeclaration ) ) + // InternalFiacre.g:2108:4: (lv_states_22_0= ruleStateDeclaration ) + { + // InternalFiacre.g:2108:4: (lv_states_22_0= ruleStateDeclaration ) + // InternalFiacre.g:2109:5: lv_states_22_0= ruleStateDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_8_0()); + + } + pushFollow(FollowSets000.FOLLOW_37); + lv_states_22_0=ruleStateDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "states", + lv_states_22_0, + "fr.irit.fiacre.xtext.Fiacre.StateDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2126:3: (otherlv_23= ',' ( (lv_states_24_0= ruleStateDeclaration ) ) )* + loop34: + do { + int alt34=2; + int LA34_0 = input.LA(1); + + if ( (LA34_0==17) ) { + alt34=1; + } + + + switch (alt34) { + case 1 : + // InternalFiacre.g:2127:4: otherlv_23= ',' ( (lv_states_24_0= ruleStateDeclaration ) ) + { + otherlv_23=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_23, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_9_0()); + + } + // InternalFiacre.g:2131:4: ( (lv_states_24_0= ruleStateDeclaration ) ) + // InternalFiacre.g:2132:5: (lv_states_24_0= ruleStateDeclaration ) + { + // InternalFiacre.g:2132:5: (lv_states_24_0= ruleStateDeclaration ) + // InternalFiacre.g:2133:6: lv_states_24_0= ruleStateDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getStatesStateDeclarationParserRuleCall_9_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_37); + lv_states_24_0=ruleStateDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "states", + lv_states_24_0, + "fr.irit.fiacre.xtext.Fiacre.StateDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop34; + } + } while (true); + + // InternalFiacre.g:2151:3: (otherlv_25= 'var' ( (lv_variables_26_0= ruleVariablesDeclaration ) ) (otherlv_27= ',' ( (lv_variables_28_0= ruleVariablesDeclaration ) ) )* )? + int alt36=2; + int LA36_0 = input.LA(1); + + if ( (LA36_0==21) ) { + alt36=1; + } + switch (alt36) { + case 1 : + // InternalFiacre.g:2152:4: otherlv_25= 'var' ( (lv_variables_26_0= ruleVariablesDeclaration ) ) (otherlv_27= ',' ( (lv_variables_28_0= ruleVariablesDeclaration ) ) )* + { + otherlv_25=(Token)match(input,21,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_25, grammarAccess.getProcessDeclarationAccess().getVarKeyword_10_0()); + + } + // InternalFiacre.g:2156:4: ( (lv_variables_26_0= ruleVariablesDeclaration ) ) + // InternalFiacre.g:2157:5: (lv_variables_26_0= ruleVariablesDeclaration ) + { + // InternalFiacre.g:2157:5: (lv_variables_26_0= ruleVariablesDeclaration ) + // InternalFiacre.g:2158:6: lv_variables_26_0= ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_37); + lv_variables_26_0=ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "variables", + lv_variables_26_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2175:4: (otherlv_27= ',' ( (lv_variables_28_0= ruleVariablesDeclaration ) ) )* + loop35: + do { + int alt35=2; + int LA35_0 = input.LA(1); + + if ( (LA35_0==17) ) { + alt35=1; + } + + + switch (alt35) { + case 1 : + // InternalFiacre.g:2176:5: otherlv_27= ',' ( (lv_variables_28_0= ruleVariablesDeclaration ) ) + { + otherlv_27=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_27, grammarAccess.getProcessDeclarationAccess().getCommaKeyword_10_2_0()); + + } + // InternalFiacre.g:2180:5: ( (lv_variables_28_0= ruleVariablesDeclaration ) ) + // InternalFiacre.g:2181:6: (lv_variables_28_0= ruleVariablesDeclaration ) + { + // InternalFiacre.g:2181:6: (lv_variables_28_0= ruleVariablesDeclaration ) + // InternalFiacre.g:2182:7: lv_variables_28_0= ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_10_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_37); + lv_variables_28_0=ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "variables", + lv_variables_28_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop35; + } + } while (true); + + + } + break; + + } + + // InternalFiacre.g:2201:3: (otherlv_29= 'init' ( (lv_prelude_30_0= ruleStatementSequence ) ) )? + int alt37=2; + int LA37_0 = input.LA(1); + + if ( (LA37_0==46) ) { + alt37=1; + } + switch (alt37) { + case 1 : + // InternalFiacre.g:2202:4: otherlv_29= 'init' ( (lv_prelude_30_0= ruleStatementSequence ) ) + { + otherlv_29=(Token)match(input,46,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_29, grammarAccess.getProcessDeclarationAccess().getInitKeyword_11_0()); + + } + // InternalFiacre.g:2206:4: ( (lv_prelude_30_0= ruleStatementSequence ) ) + // InternalFiacre.g:2207:5: (lv_prelude_30_0= ruleStatementSequence ) + { + // InternalFiacre.g:2207:5: (lv_prelude_30_0= ruleStatementSequence ) + // InternalFiacre.g:2208:6: lv_prelude_30_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getPreludeStatementSequenceParserRuleCall_11_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_37); + lv_prelude_30_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + set( + current, + "prelude", + lv_prelude_30_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + // InternalFiacre.g:2226:3: ( (lv_transitions_31_0= ruleTransition ) )+ + int cnt38=0; + loop38: + do { + int alt38=2; + int LA38_0 = input.LA(1); + + if ( (LA38_0==47) ) { + alt38=1; + } + + + switch (alt38) { + case 1 : + // InternalFiacre.g:2227:4: (lv_transitions_31_0= ruleTransition ) + { + // InternalFiacre.g:2227:4: (lv_transitions_31_0= ruleTransition ) + // InternalFiacre.g:2228:5: lv_transitions_31_0= ruleTransition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProcessDeclarationAccess().getTransitionsTransitionParserRuleCall_12_0()); + + } + pushFollow(FollowSets000.FOLLOW_38); + lv_transitions_31_0=ruleTransition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProcessDeclarationRule()); + } + add( + current, + "transitions", + lv_transitions_31_0, + "fr.irit.fiacre.xtext.Fiacre.Transition"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + if ( cnt38 >= 1 ) break loop38; + if (state.backtracking>0) {state.failed=true; return current;} + EarlyExitException eee = + new EarlyExitException(38, input); + throw eee; + } + cnt38++; + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleProcessDeclaration" + + + // $ANTLR start "entryRuleStateDeclaration" + // InternalFiacre.g:2249:1: entryRuleStateDeclaration returns [EObject current=null] : iv_ruleStateDeclaration= ruleStateDeclaration EOF ; + public final EObject entryRuleStateDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleStateDeclaration = null; + + + try { + // InternalFiacre.g:2249:57: (iv_ruleStateDeclaration= ruleStateDeclaration EOF ) + // InternalFiacre.g:2250:2: iv_ruleStateDeclaration= ruleStateDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStateDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleStateDeclaration=ruleStateDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleStateDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleStateDeclaration" + + + // $ANTLR start "ruleStateDeclaration" + // InternalFiacre.g:2256:1: ruleStateDeclaration returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; + public final EObject ruleStateDeclaration() throws RecognitionException { + EObject current = null; + + Token lv_name_0_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:2262:2: ( ( (lv_name_0_0= RULE_ID ) ) ) + // InternalFiacre.g:2263:2: ( (lv_name_0_0= RULE_ID ) ) + { + // InternalFiacre.g:2263:2: ( (lv_name_0_0= RULE_ID ) ) + // InternalFiacre.g:2264:3: (lv_name_0_0= RULE_ID ) + { + // InternalFiacre.g:2264:3: (lv_name_0_0= RULE_ID ) + // InternalFiacre.g:2265:4: lv_name_0_0= RULE_ID + { + lv_name_0_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_0_0, grammarAccess.getStateDeclarationAccess().getNameIDTerminalRuleCall_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getStateDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_0_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleStateDeclaration" + + + // $ANTLR start "entryRuleTransitionSource" + // InternalFiacre.g:2284:1: entryRuleTransitionSource returns [EObject current=null] : iv_ruleTransitionSource= ruleTransitionSource EOF ; + public final EObject entryRuleTransitionSource() throws RecognitionException { + EObject current = null; + + EObject iv_ruleTransitionSource = null; + + + try { + // InternalFiacre.g:2284:57: (iv_ruleTransitionSource= ruleTransitionSource EOF ) + // InternalFiacre.g:2285:2: iv_ruleTransitionSource= ruleTransitionSource EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getTransitionSourceRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleTransitionSource=ruleTransitionSource(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleTransitionSource; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleTransitionSource" + + + // $ANTLR start "ruleTransitionSource" + // InternalFiacre.g:2291:1: ruleTransitionSource returns [EObject current=null] : (otherlv_0= 'from' ( (otherlv_1= RULE_ID ) ) ) ; + public final EObject ruleTransitionSource() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalFiacre.g:2297:2: ( (otherlv_0= 'from' ( (otherlv_1= RULE_ID ) ) ) ) + // InternalFiacre.g:2298:2: (otherlv_0= 'from' ( (otherlv_1= RULE_ID ) ) ) + { + // InternalFiacre.g:2298:2: (otherlv_0= 'from' ( (otherlv_1= RULE_ID ) ) ) + // InternalFiacre.g:2299:3: otherlv_0= 'from' ( (otherlv_1= RULE_ID ) ) + { + otherlv_0=(Token)match(input,47,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getTransitionSourceAccess().getFromKeyword_0()); + + } + // InternalFiacre.g:2303:3: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:2304:4: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:2304:4: (otherlv_1= RULE_ID ) + // InternalFiacre.g:2305:5: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTransitionSourceRule()); + } + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationCrossReference_1_0()); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTransitionSource" + + + // $ANTLR start "entryRuleTransition" + // InternalFiacre.g:2323:1: entryRuleTransition returns [EObject current=null] : iv_ruleTransition= ruleTransition EOF ; + public final EObject entryRuleTransition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleTransition = null; + + + try { + // InternalFiacre.g:2323:51: (iv_ruleTransition= ruleTransition EOF ) + // InternalFiacre.g:2324:2: iv_ruleTransition= ruleTransition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getTransitionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleTransition=ruleTransition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleTransition; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleTransition" + + + // $ANTLR start "ruleTransition" + // InternalFiacre.g:2330:1: ruleTransition returns [EObject current=null] : ( ( (lv_source_0_0= ruleTransitionSource ) ) ( (lv_action_1_0= ruleStatementSequence ) ) ) ; + public final EObject ruleTransition() throws RecognitionException { + EObject current = null; + + EObject lv_source_0_0 = null; + + EObject lv_action_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:2336:2: ( ( ( (lv_source_0_0= ruleTransitionSource ) ) ( (lv_action_1_0= ruleStatementSequence ) ) ) ) + // InternalFiacre.g:2337:2: ( ( (lv_source_0_0= ruleTransitionSource ) ) ( (lv_action_1_0= ruleStatementSequence ) ) ) + { + // InternalFiacre.g:2337:2: ( ( (lv_source_0_0= ruleTransitionSource ) ) ( (lv_action_1_0= ruleStatementSequence ) ) ) + // InternalFiacre.g:2338:3: ( (lv_source_0_0= ruleTransitionSource ) ) ( (lv_action_1_0= ruleStatementSequence ) ) + { + // InternalFiacre.g:2338:3: ( (lv_source_0_0= ruleTransitionSource ) ) + // InternalFiacre.g:2339:4: (lv_source_0_0= ruleTransitionSource ) + { + // InternalFiacre.g:2339:4: (lv_source_0_0= ruleTransitionSource ) + // InternalFiacre.g:2340:5: lv_source_0_0= ruleTransitionSource + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTransitionAccess().getSourceTransitionSourceParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_16); + lv_source_0_0=ruleTransitionSource(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getTransitionRule()); + } + set( + current, + "source", + lv_source_0_0, + "fr.irit.fiacre.xtext.Fiacre.TransitionSource"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2357:3: ( (lv_action_1_0= ruleStatementSequence ) ) + // InternalFiacre.g:2358:4: (lv_action_1_0= ruleStatementSequence ) + { + // InternalFiacre.g:2358:4: (lv_action_1_0= ruleStatementSequence ) + // InternalFiacre.g:2359:5: lv_action_1_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTransitionAccess().getActionStatementSequenceParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_action_1_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getTransitionRule()); + } + set( + current, + "action", + lv_action_1_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTransition" + + + // $ANTLR start "entryRuleComponentDeclaration" + // InternalFiacre.g:2380:1: entryRuleComponentDeclaration returns [EObject current=null] : iv_ruleComponentDeclaration= ruleComponentDeclaration EOF ; + public final EObject entryRuleComponentDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleComponentDeclaration = null; + + + try { + // InternalFiacre.g:2380:61: (iv_ruleComponentDeclaration= ruleComponentDeclaration EOF ) + // InternalFiacre.g:2381:2: iv_ruleComponentDeclaration= ruleComponentDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getComponentDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleComponentDeclaration=ruleComponentDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleComponentDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleComponentDeclaration" + + + // $ANTLR start "ruleComponentDeclaration" + // InternalFiacre.g:2387:1: ruleComponentDeclaration returns [EObject current=null] : (otherlv_0= 'component' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? otherlv_12= 'is' (otherlv_13= 'var' ( (lv_variables_14_0= ruleVariablesDeclaration ) ) (otherlv_15= ',' ( (lv_variables_16_0= ruleVariablesDeclaration ) ) )* )? (otherlv_17= 'port' ( (lv_localPorts_18_0= ruleLocalPortsDeclaration ) ) (otherlv_19= ',' ( (lv_localPorts_20_0= ruleLocalPortsDeclaration ) ) )* )? (otherlv_21= 'priority' ( (lv_priorities_22_0= rulePriorityDeclaration ) ) (otherlv_23= ',' ( (lv_priorities_24_0= rulePriorityDeclaration ) ) )* )? (otherlv_25= 'init' ( (lv_prelude_26_0= ruleStatementSequence ) ) )? ( (lv_body_27_0= ruleComposition ) ) ) ; + public final EObject ruleComponentDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token otherlv_11=null; + Token otherlv_12=null; + Token otherlv_13=null; + Token otherlv_15=null; + Token otherlv_17=null; + Token otherlv_19=null; + Token otherlv_21=null; + Token otherlv_23=null; + Token otherlv_25=null; + EObject lv_ports_3_0 = null; + + EObject lv_ports_5_0 = null; + + EObject lv_parameters_8_0 = null; + + EObject lv_parameters_10_0 = null; + + EObject lv_variables_14_0 = null; + + EObject lv_variables_16_0 = null; + + EObject lv_localPorts_18_0 = null; + + EObject lv_localPorts_20_0 = null; + + EObject lv_priorities_22_0 = null; + + EObject lv_priorities_24_0 = null; + + EObject lv_prelude_26_0 = null; + + EObject lv_body_27_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:2393:2: ( (otherlv_0= 'component' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? otherlv_12= 'is' (otherlv_13= 'var' ( (lv_variables_14_0= ruleVariablesDeclaration ) ) (otherlv_15= ',' ( (lv_variables_16_0= ruleVariablesDeclaration ) ) )* )? (otherlv_17= 'port' ( (lv_localPorts_18_0= ruleLocalPortsDeclaration ) ) (otherlv_19= ',' ( (lv_localPorts_20_0= ruleLocalPortsDeclaration ) ) )* )? (otherlv_21= 'priority' ( (lv_priorities_22_0= rulePriorityDeclaration ) ) (otherlv_23= ',' ( (lv_priorities_24_0= rulePriorityDeclaration ) ) )* )? (otherlv_25= 'init' ( (lv_prelude_26_0= ruleStatementSequence ) ) )? ( (lv_body_27_0= ruleComposition ) ) ) ) + // InternalFiacre.g:2394:2: (otherlv_0= 'component' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? otherlv_12= 'is' (otherlv_13= 'var' ( (lv_variables_14_0= ruleVariablesDeclaration ) ) (otherlv_15= ',' ( (lv_variables_16_0= ruleVariablesDeclaration ) ) )* )? (otherlv_17= 'port' ( (lv_localPorts_18_0= ruleLocalPortsDeclaration ) ) (otherlv_19= ',' ( (lv_localPorts_20_0= ruleLocalPortsDeclaration ) ) )* )? (otherlv_21= 'priority' ( (lv_priorities_22_0= rulePriorityDeclaration ) ) (otherlv_23= ',' ( (lv_priorities_24_0= rulePriorityDeclaration ) ) )* )? (otherlv_25= 'init' ( (lv_prelude_26_0= ruleStatementSequence ) ) )? ( (lv_body_27_0= ruleComposition ) ) ) + { + // InternalFiacre.g:2394:2: (otherlv_0= 'component' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? otherlv_12= 'is' (otherlv_13= 'var' ( (lv_variables_14_0= ruleVariablesDeclaration ) ) (otherlv_15= ',' ( (lv_variables_16_0= ruleVariablesDeclaration ) ) )* )? (otherlv_17= 'port' ( (lv_localPorts_18_0= ruleLocalPortsDeclaration ) ) (otherlv_19= ',' ( (lv_localPorts_20_0= ruleLocalPortsDeclaration ) ) )* )? (otherlv_21= 'priority' ( (lv_priorities_22_0= rulePriorityDeclaration ) ) (otherlv_23= ',' ( (lv_priorities_24_0= rulePriorityDeclaration ) ) )* )? (otherlv_25= 'init' ( (lv_prelude_26_0= ruleStatementSequence ) ) )? ( (lv_body_27_0= ruleComposition ) ) ) + // InternalFiacre.g:2395:3: otherlv_0= 'component' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? otherlv_12= 'is' (otherlv_13= 'var' ( (lv_variables_14_0= ruleVariablesDeclaration ) ) (otherlv_15= ',' ( (lv_variables_16_0= ruleVariablesDeclaration ) ) )* )? (otherlv_17= 'port' ( (lv_localPorts_18_0= ruleLocalPortsDeclaration ) ) (otherlv_19= ',' ( (lv_localPorts_20_0= ruleLocalPortsDeclaration ) ) )* )? (otherlv_21= 'priority' ( (lv_priorities_22_0= rulePriorityDeclaration ) ) (otherlv_23= ',' ( (lv_priorities_24_0= rulePriorityDeclaration ) ) )* )? (otherlv_25= 'init' ( (lv_prelude_26_0= ruleStatementSequence ) ) )? ( (lv_body_27_0= ruleComposition ) ) + { + otherlv_0=(Token)match(input,48,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getComponentDeclarationAccess().getComponentKeyword_0()); + + } + // InternalFiacre.g:2399:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalFiacre.g:2400:4: (lv_name_1_0= RULE_ID ) + { + // InternalFiacre.g:2400:4: (lv_name_1_0= RULE_ID ) + // InternalFiacre.g:2401:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_31); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getComponentDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getComponentDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + // InternalFiacre.g:2417:3: (otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' )? + int alt40=2; + int LA40_0 = input.LA(1); + + if ( (LA40_0==41) ) { + alt40=1; + } + switch (alt40) { + case 1 : + // InternalFiacre.g:2418:4: otherlv_2= '[' ( (lv_ports_3_0= rulePortsDeclaration ) ) (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* otherlv_6= ']' + { + otherlv_2=(Token)match(input,41,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getComponentDeclarationAccess().getLeftSquareBracketKeyword_2_0()); + + } + // InternalFiacre.g:2422:4: ( (lv_ports_3_0= rulePortsDeclaration ) ) + // InternalFiacre.g:2423:5: (lv_ports_3_0= rulePortsDeclaration ) + { + // InternalFiacre.g:2423:5: (lv_ports_3_0= rulePortsDeclaration ) + // InternalFiacre.g:2424:6: lv_ports_3_0= rulePortsDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_32); + lv_ports_3_0=rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + current, + "ports", + lv_ports_3_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2441:4: (otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) )* + loop39: + do { + int alt39=2; + int LA39_0 = input.LA(1); + + if ( (LA39_0==17) ) { + alt39=1; + } + + + switch (alt39) { + case 1 : + // InternalFiacre.g:2442:5: otherlv_4= ',' ( (lv_ports_5_0= rulePortsDeclaration ) ) + { + otherlv_4=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getComponentDeclarationAccess().getCommaKeyword_2_2_0()); + + } + // InternalFiacre.g:2446:5: ( (lv_ports_5_0= rulePortsDeclaration ) ) + // InternalFiacre.g:2447:6: (lv_ports_5_0= rulePortsDeclaration ) + { + // InternalFiacre.g:2447:6: (lv_ports_5_0= rulePortsDeclaration ) + // InternalFiacre.g:2448:7: lv_ports_5_0= rulePortsDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getPortsPortsDeclarationParserRuleCall_2_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_32); + lv_ports_5_0=rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + current, + "ports", + lv_ports_5_0, + "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop39; + } + } while (true); + + otherlv_6=(Token)match(input,42,FollowSets000.FOLLOW_33); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getComponentDeclarationAccess().getRightSquareBracketKeyword_2_3()); + + } + + } + break; + + } + + // InternalFiacre.g:2471:3: (otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' )? + int alt42=2; + int LA42_0 = input.LA(1); + + if ( (LA42_0==16) ) { + alt42=1; + } + switch (alt42) { + case 1 : + // InternalFiacre.g:2472:4: otherlv_7= '(' ( (lv_parameters_8_0= ruleParametersDeclaration ) ) (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* otherlv_11= ')' + { + otherlv_7=(Token)match(input,16,FollowSets000.FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getComponentDeclarationAccess().getLeftParenthesisKeyword_3_0()); + + } + // InternalFiacre.g:2476:4: ( (lv_parameters_8_0= ruleParametersDeclaration ) ) + // InternalFiacre.g:2477:5: (lv_parameters_8_0= ruleParametersDeclaration ) + { + // InternalFiacre.g:2477:5: (lv_parameters_8_0= ruleParametersDeclaration ) + // InternalFiacre.g:2478:6: lv_parameters_8_0= ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_8_0=ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + current, + "parameters", + lv_parameters_8_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2495:4: (otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) )* + loop41: + do { + int alt41=2; + int LA41_0 = input.LA(1); + + if ( (LA41_0==17) ) { + alt41=1; + } + + + switch (alt41) { + case 1 : + // InternalFiacre.g:2496:5: otherlv_9= ',' ( (lv_parameters_10_0= ruleParametersDeclaration ) ) + { + otherlv_9=(Token)match(input,17,FollowSets000.FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getComponentDeclarationAccess().getCommaKeyword_3_2_0()); + + } + // InternalFiacre.g:2500:5: ( (lv_parameters_10_0= ruleParametersDeclaration ) ) + // InternalFiacre.g:2501:6: (lv_parameters_10_0= ruleParametersDeclaration ) + { + // InternalFiacre.g:2501:6: (lv_parameters_10_0= ruleParametersDeclaration ) + // InternalFiacre.g:2502:7: lv_parameters_10_0= ruleParametersDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getParametersParametersDeclarationParserRuleCall_3_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_10_0=ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + current, + "parameters", + lv_parameters_10_0, + "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop41; + } + } while (true); + + otherlv_11=(Token)match(input,18,FollowSets000.FOLLOW_15); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getComponentDeclarationAccess().getRightParenthesisKeyword_3_3()); + + } + + } + break; + + } + + otherlv_12=(Token)match(input,20,FollowSets000.FOLLOW_39); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_12, grammarAccess.getComponentDeclarationAccess().getIsKeyword_4()); + + } + // InternalFiacre.g:2529:3: (otherlv_13= 'var' ( (lv_variables_14_0= ruleVariablesDeclaration ) ) (otherlv_15= ',' ( (lv_variables_16_0= ruleVariablesDeclaration ) ) )* )? + int alt44=2; + int LA44_0 = input.LA(1); + + if ( (LA44_0==21) ) { + alt44=1; + } + switch (alt44) { + case 1 : + // InternalFiacre.g:2530:4: otherlv_13= 'var' ( (lv_variables_14_0= ruleVariablesDeclaration ) ) (otherlv_15= ',' ( (lv_variables_16_0= ruleVariablesDeclaration ) ) )* + { + otherlv_13=(Token)match(input,21,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_13, grammarAccess.getComponentDeclarationAccess().getVarKeyword_5_0()); + + } + // InternalFiacre.g:2534:4: ( (lv_variables_14_0= ruleVariablesDeclaration ) ) + // InternalFiacre.g:2535:5: (lv_variables_14_0= ruleVariablesDeclaration ) + { + // InternalFiacre.g:2535:5: (lv_variables_14_0= ruleVariablesDeclaration ) + // InternalFiacre.g:2536:6: lv_variables_14_0= ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_40); + lv_variables_14_0=ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + current, + "variables", + lv_variables_14_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2553:4: (otherlv_15= ',' ( (lv_variables_16_0= ruleVariablesDeclaration ) ) )* + loop43: + do { + int alt43=2; + int LA43_0 = input.LA(1); + + if ( (LA43_0==17) ) { + alt43=1; + } + + + switch (alt43) { + case 1 : + // InternalFiacre.g:2554:5: otherlv_15= ',' ( (lv_variables_16_0= ruleVariablesDeclaration ) ) + { + otherlv_15=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_15, grammarAccess.getComponentDeclarationAccess().getCommaKeyword_5_2_0()); + + } + // InternalFiacre.g:2558:5: ( (lv_variables_16_0= ruleVariablesDeclaration ) ) + // InternalFiacre.g:2559:6: (lv_variables_16_0= ruleVariablesDeclaration ) + { + // InternalFiacre.g:2559:6: (lv_variables_16_0= ruleVariablesDeclaration ) + // InternalFiacre.g:2560:7: lv_variables_16_0= ruleVariablesDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getVariablesVariablesDeclarationParserRuleCall_5_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_40); + lv_variables_16_0=ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + current, + "variables", + lv_variables_16_0, + "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop43; + } + } while (true); + + + } + break; + + } + + // InternalFiacre.g:2579:3: (otherlv_17= 'port' ( (lv_localPorts_18_0= ruleLocalPortsDeclaration ) ) (otherlv_19= ',' ( (lv_localPorts_20_0= ruleLocalPortsDeclaration ) ) )* )? + int alt46=2; + int LA46_0 = input.LA(1); + + if ( (LA46_0==43) ) { + alt46=1; + } + switch (alt46) { + case 1 : + // InternalFiacre.g:2580:4: otherlv_17= 'port' ( (lv_localPorts_18_0= ruleLocalPortsDeclaration ) ) (otherlv_19= ',' ( (lv_localPorts_20_0= ruleLocalPortsDeclaration ) ) )* + { + otherlv_17=(Token)match(input,43,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_17, grammarAccess.getComponentDeclarationAccess().getPortKeyword_6_0()); + + } + // InternalFiacre.g:2584:4: ( (lv_localPorts_18_0= ruleLocalPortsDeclaration ) ) + // InternalFiacre.g:2585:5: (lv_localPorts_18_0= ruleLocalPortsDeclaration ) + { + // InternalFiacre.g:2585:5: (lv_localPorts_18_0= ruleLocalPortsDeclaration ) + // InternalFiacre.g:2586:6: lv_localPorts_18_0= ruleLocalPortsDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_40); + lv_localPorts_18_0=ruleLocalPortsDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + current, + "localPorts", + lv_localPorts_18_0, + "fr.irit.fiacre.xtext.Fiacre.LocalPortsDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2603:4: (otherlv_19= ',' ( (lv_localPorts_20_0= ruleLocalPortsDeclaration ) ) )* + loop45: + do { + int alt45=2; + int LA45_0 = input.LA(1); + + if ( (LA45_0==17) ) { + alt45=1; + } + + + switch (alt45) { + case 1 : + // InternalFiacre.g:2604:5: otherlv_19= ',' ( (lv_localPorts_20_0= ruleLocalPortsDeclaration ) ) + { + otherlv_19=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_19, grammarAccess.getComponentDeclarationAccess().getCommaKeyword_6_2_0()); + + } + // InternalFiacre.g:2608:5: ( (lv_localPorts_20_0= ruleLocalPortsDeclaration ) ) + // InternalFiacre.g:2609:6: (lv_localPorts_20_0= ruleLocalPortsDeclaration ) + { + // InternalFiacre.g:2609:6: (lv_localPorts_20_0= ruleLocalPortsDeclaration ) + // InternalFiacre.g:2610:7: lv_localPorts_20_0= ruleLocalPortsDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getLocalPortsLocalPortsDeclarationParserRuleCall_6_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_40); + lv_localPorts_20_0=ruleLocalPortsDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + current, + "localPorts", + lv_localPorts_20_0, + "fr.irit.fiacre.xtext.Fiacre.LocalPortsDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop45; + } + } while (true); + + + } + break; + + } + + // InternalFiacre.g:2629:3: (otherlv_21= 'priority' ( (lv_priorities_22_0= rulePriorityDeclaration ) ) (otherlv_23= ',' ( (lv_priorities_24_0= rulePriorityDeclaration ) ) )* )? + int alt48=2; + int LA48_0 = input.LA(1); + + if ( (LA48_0==44) ) { + alt48=1; + } + switch (alt48) { + case 1 : + // InternalFiacre.g:2630:4: otherlv_21= 'priority' ( (lv_priorities_22_0= rulePriorityDeclaration ) ) (otherlv_23= ',' ( (lv_priorities_24_0= rulePriorityDeclaration ) ) )* + { + otherlv_21=(Token)match(input,44,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_21, grammarAccess.getComponentDeclarationAccess().getPriorityKeyword_7_0()); + + } + // InternalFiacre.g:2634:4: ( (lv_priorities_22_0= rulePriorityDeclaration ) ) + // InternalFiacre.g:2635:5: (lv_priorities_22_0= rulePriorityDeclaration ) + { + // InternalFiacre.g:2635:5: (lv_priorities_22_0= rulePriorityDeclaration ) + // InternalFiacre.g:2636:6: lv_priorities_22_0= rulePriorityDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_40); + lv_priorities_22_0=rulePriorityDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + current, + "priorities", + lv_priorities_22_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2653:4: (otherlv_23= ',' ( (lv_priorities_24_0= rulePriorityDeclaration ) ) )* + loop47: + do { + int alt47=2; + int LA47_0 = input.LA(1); + + if ( (LA47_0==17) ) { + alt47=1; + } + + + switch (alt47) { + case 1 : + // InternalFiacre.g:2654:5: otherlv_23= ',' ( (lv_priorities_24_0= rulePriorityDeclaration ) ) + { + otherlv_23=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_23, grammarAccess.getComponentDeclarationAccess().getCommaKeyword_7_2_0()); + + } + // InternalFiacre.g:2658:5: ( (lv_priorities_24_0= rulePriorityDeclaration ) ) + // InternalFiacre.g:2659:6: (lv_priorities_24_0= rulePriorityDeclaration ) + { + // InternalFiacre.g:2659:6: (lv_priorities_24_0= rulePriorityDeclaration ) + // InternalFiacre.g:2660:7: lv_priorities_24_0= rulePriorityDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getPrioritiesPriorityDeclarationParserRuleCall_7_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_40); + lv_priorities_24_0=rulePriorityDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + add( + current, + "priorities", + lv_priorities_24_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop47; + } + } while (true); + + + } + break; + + } + + // InternalFiacre.g:2679:3: (otherlv_25= 'init' ( (lv_prelude_26_0= ruleStatementSequence ) ) )? + int alt49=2; + int LA49_0 = input.LA(1); + + if ( (LA49_0==46) ) { + alt49=1; + } + switch (alt49) { + case 1 : + // InternalFiacre.g:2680:4: otherlv_25= 'init' ( (lv_prelude_26_0= ruleStatementSequence ) ) + { + otherlv_25=(Token)match(input,46,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_25, grammarAccess.getComponentDeclarationAccess().getInitKeyword_8_0()); + + } + // InternalFiacre.g:2684:4: ( (lv_prelude_26_0= ruleStatementSequence ) ) + // InternalFiacre.g:2685:5: (lv_prelude_26_0= ruleStatementSequence ) + { + // InternalFiacre.g:2685:5: (lv_prelude_26_0= ruleStatementSequence ) + // InternalFiacre.g:2686:6: lv_prelude_26_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getPreludeStatementSequenceParserRuleCall_8_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_39); + lv_prelude_26_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + set( + current, + "prelude", + lv_prelude_26_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + // InternalFiacre.g:2704:3: ( (lv_body_27_0= ruleComposition ) ) + // InternalFiacre.g:2705:4: (lv_body_27_0= ruleComposition ) + { + // InternalFiacre.g:2705:4: (lv_body_27_0= ruleComposition ) + // InternalFiacre.g:2706:5: lv_body_27_0= ruleComposition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentDeclarationAccess().getBodyCompositionParserRuleCall_9_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_body_27_0=ruleComposition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentDeclarationRule()); + } + set( + current, + "body", + lv_body_27_0, + "fr.irit.fiacre.xtext.Fiacre.Composition"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleComponentDeclaration" + + + // $ANTLR start "entryRulePortsDeclaration" + // InternalFiacre.g:2727:1: entryRulePortsDeclaration returns [EObject current=null] : iv_rulePortsDeclaration= rulePortsDeclaration EOF ; + public final EObject entryRulePortsDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_rulePortsDeclaration = null; + + + try { + // InternalFiacre.g:2727:57: (iv_rulePortsDeclaration= rulePortsDeclaration EOF ) + // InternalFiacre.g:2728:2: iv_rulePortsDeclaration= rulePortsDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPortsDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePortsDeclaration=rulePortsDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePortsDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePortsDeclaration" + + + // $ANTLR start "rulePortsDeclaration" + // InternalFiacre.g:2734:1: rulePortsDeclaration returns [EObject current=null] : ( ( (lv_ports_0_0= rulePortDeclaration ) ) (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleChannelType ) ) ) ; + public final EObject rulePortsDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + EObject lv_ports_0_0 = null; + + EObject lv_ports_2_0 = null; + + EObject lv_type_4_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:2740:2: ( ( ( (lv_ports_0_0= rulePortDeclaration ) ) (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleChannelType ) ) ) ) + // InternalFiacre.g:2741:2: ( ( (lv_ports_0_0= rulePortDeclaration ) ) (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleChannelType ) ) ) + { + // InternalFiacre.g:2741:2: ( ( (lv_ports_0_0= rulePortDeclaration ) ) (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleChannelType ) ) ) + // InternalFiacre.g:2742:3: ( (lv_ports_0_0= rulePortDeclaration ) ) (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleChannelType ) ) + { + // InternalFiacre.g:2742:3: ( (lv_ports_0_0= rulePortDeclaration ) ) + // InternalFiacre.g:2743:4: (lv_ports_0_0= rulePortDeclaration ) + { + // InternalFiacre.g:2743:4: (lv_ports_0_0= rulePortDeclaration ) + // InternalFiacre.g:2744:5: lv_ports_0_0= rulePortDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_30); + lv_ports_0_0=rulePortDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPortsDeclarationRule()); + } + add( + current, + "ports", + lv_ports_0_0, + "fr.irit.fiacre.xtext.Fiacre.PortDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2761:3: (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* + loop50: + do { + int alt50=2; + int LA50_0 = input.LA(1); + + if ( (LA50_0==17) ) { + alt50=1; + } + + + switch (alt50) { + case 1 : + // InternalFiacre.g:2762:4: otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) + { + otherlv_1=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getPortsDeclarationAccess().getCommaKeyword_1_0()); + + } + // InternalFiacre.g:2766:4: ( (lv_ports_2_0= rulePortDeclaration ) ) + // InternalFiacre.g:2767:5: (lv_ports_2_0= rulePortDeclaration ) + { + // InternalFiacre.g:2767:5: (lv_ports_2_0= rulePortDeclaration ) + // InternalFiacre.g:2768:6: lv_ports_2_0= rulePortDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_30); + lv_ports_2_0=rulePortDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPortsDeclarationRule()); + } + add( + current, + "ports", + lv_ports_2_0, + "fr.irit.fiacre.xtext.Fiacre.PortDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop50; + } + } while (true); + + otherlv_3=(Token)match(input,19,FollowSets000.FOLLOW_18); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getPortsDeclarationAccess().getColonKeyword_2()); + + } + // InternalFiacre.g:2790:3: ( (lv_type_4_0= ruleChannelType ) ) + // InternalFiacre.g:2791:4: (lv_type_4_0= ruleChannelType ) + { + // InternalFiacre.g:2791:4: (lv_type_4_0= ruleChannelType ) + // InternalFiacre.g:2792:5: lv_type_4_0= ruleChannelType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_type_4_0=ruleChannelType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPortsDeclarationRule()); + } + set( + current, + "type", + lv_type_4_0, + "fr.irit.fiacre.xtext.Fiacre.ChannelType"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePortsDeclaration" + + + // $ANTLR start "entryRulePortDeclaration" + // InternalFiacre.g:2813:1: entryRulePortDeclaration returns [EObject current=null] : iv_rulePortDeclaration= rulePortDeclaration EOF ; + public final EObject entryRulePortDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_rulePortDeclaration = null; + + + try { + // InternalFiacre.g:2813:56: (iv_rulePortDeclaration= rulePortDeclaration EOF ) + // InternalFiacre.g:2814:2: iv_rulePortDeclaration= rulePortDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPortDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePortDeclaration=rulePortDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePortDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePortDeclaration" + + + // $ANTLR start "rulePortDeclaration" + // InternalFiacre.g:2820:1: rulePortDeclaration returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; + public final EObject rulePortDeclaration() throws RecognitionException { + EObject current = null; + + Token lv_name_0_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:2826:2: ( ( (lv_name_0_0= RULE_ID ) ) ) + // InternalFiacre.g:2827:2: ( (lv_name_0_0= RULE_ID ) ) + { + // InternalFiacre.g:2827:2: ( (lv_name_0_0= RULE_ID ) ) + // InternalFiacre.g:2828:3: (lv_name_0_0= RULE_ID ) + { + // InternalFiacre.g:2828:3: (lv_name_0_0= RULE_ID ) + // InternalFiacre.g:2829:4: lv_name_0_0= RULE_ID + { + lv_name_0_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_0_0, grammarAccess.getPortDeclarationAccess().getNameIDTerminalRuleCall_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getPortDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_0_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePortDeclaration" + + + // $ANTLR start "entryRuleLocalPortsDeclaration" + // InternalFiacre.g:2848:1: entryRuleLocalPortsDeclaration returns [EObject current=null] : iv_ruleLocalPortsDeclaration= ruleLocalPortsDeclaration EOF ; + public final EObject entryRuleLocalPortsDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLocalPortsDeclaration = null; + + + try { + // InternalFiacre.g:2848:62: (iv_ruleLocalPortsDeclaration= ruleLocalPortsDeclaration EOF ) + // InternalFiacre.g:2849:2: iv_ruleLocalPortsDeclaration= ruleLocalPortsDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLocalPortsDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLocalPortsDeclaration=ruleLocalPortsDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLocalPortsDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLocalPortsDeclaration" + + + // $ANTLR start "ruleLocalPortsDeclaration" + // InternalFiacre.g:2855:1: ruleLocalPortsDeclaration returns [EObject current=null] : ( ( (lv_ports_0_0= rulePortDeclaration ) ) (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleChannelType ) ) (otherlv_5= 'in' ( (lv_left_6_0= ruleLowerBound ) ) otherlv_7= ',' ( (lv_right_8_0= ruleUpperBound ) ) )? ) ; + public final EObject ruleLocalPortsDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + EObject lv_ports_0_0 = null; + + EObject lv_ports_2_0 = null; + + EObject lv_type_4_0 = null; + + EObject lv_left_6_0 = null; + + EObject lv_right_8_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:2861:2: ( ( ( (lv_ports_0_0= rulePortDeclaration ) ) (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleChannelType ) ) (otherlv_5= 'in' ( (lv_left_6_0= ruleLowerBound ) ) otherlv_7= ',' ( (lv_right_8_0= ruleUpperBound ) ) )? ) ) + // InternalFiacre.g:2862:2: ( ( (lv_ports_0_0= rulePortDeclaration ) ) (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleChannelType ) ) (otherlv_5= 'in' ( (lv_left_6_0= ruleLowerBound ) ) otherlv_7= ',' ( (lv_right_8_0= ruleUpperBound ) ) )? ) + { + // InternalFiacre.g:2862:2: ( ( (lv_ports_0_0= rulePortDeclaration ) ) (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleChannelType ) ) (otherlv_5= 'in' ( (lv_left_6_0= ruleLowerBound ) ) otherlv_7= ',' ( (lv_right_8_0= ruleUpperBound ) ) )? ) + // InternalFiacre.g:2863:3: ( (lv_ports_0_0= rulePortDeclaration ) ) (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleChannelType ) ) (otherlv_5= 'in' ( (lv_left_6_0= ruleLowerBound ) ) otherlv_7= ',' ( (lv_right_8_0= ruleUpperBound ) ) )? + { + // InternalFiacre.g:2863:3: ( (lv_ports_0_0= rulePortDeclaration ) ) + // InternalFiacre.g:2864:4: (lv_ports_0_0= rulePortDeclaration ) + { + // InternalFiacre.g:2864:4: (lv_ports_0_0= rulePortDeclaration ) + // InternalFiacre.g:2865:5: lv_ports_0_0= rulePortDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_30); + lv_ports_0_0=rulePortDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLocalPortsDeclarationRule()); + } + add( + current, + "ports", + lv_ports_0_0, + "fr.irit.fiacre.xtext.Fiacre.PortDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2882:3: (otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) )* + loop51: + do { + int alt51=2; + int LA51_0 = input.LA(1); + + if ( (LA51_0==17) ) { + alt51=1; + } + + + switch (alt51) { + case 1 : + // InternalFiacre.g:2883:4: otherlv_1= ',' ( (lv_ports_2_0= rulePortDeclaration ) ) + { + otherlv_1=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_1_0()); + + } + // InternalFiacre.g:2887:4: ( (lv_ports_2_0= rulePortDeclaration ) ) + // InternalFiacre.g:2888:5: (lv_ports_2_0= rulePortDeclaration ) + { + // InternalFiacre.g:2888:5: (lv_ports_2_0= rulePortDeclaration ) + // InternalFiacre.g:2889:6: lv_ports_2_0= rulePortDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLocalPortsDeclarationAccess().getPortsPortDeclarationParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_30); + lv_ports_2_0=rulePortDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLocalPortsDeclarationRule()); + } + add( + current, + "ports", + lv_ports_2_0, + "fr.irit.fiacre.xtext.Fiacre.PortDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop51; + } + } while (true); + + otherlv_3=(Token)match(input,19,FollowSets000.FOLLOW_18); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getLocalPortsDeclarationAccess().getColonKeyword_2()); + + } + // InternalFiacre.g:2911:3: ( (lv_type_4_0= ruleChannelType ) ) + // InternalFiacre.g:2912:4: (lv_type_4_0= ruleChannelType ) + { + // InternalFiacre.g:2912:4: (lv_type_4_0= ruleChannelType ) + // InternalFiacre.g:2913:5: lv_type_4_0= ruleChannelType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLocalPortsDeclarationAccess().getTypeChannelTypeParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_41); + lv_type_4_0=ruleChannelType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLocalPortsDeclarationRule()); + } + set( + current, + "type", + lv_type_4_0, + "fr.irit.fiacre.xtext.Fiacre.ChannelType"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:2930:3: (otherlv_5= 'in' ( (lv_left_6_0= ruleLowerBound ) ) otherlv_7= ',' ( (lv_right_8_0= ruleUpperBound ) ) )? + int alt52=2; + int LA52_0 = input.LA(1); + + if ( (LA52_0==26) ) { + alt52=1; + } + switch (alt52) { + case 1 : + // InternalFiacre.g:2931:4: otherlv_5= 'in' ( (lv_left_6_0= ruleLowerBound ) ) otherlv_7= ',' ( (lv_right_8_0= ruleUpperBound ) ) + { + otherlv_5=(Token)match(input,26,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getLocalPortsDeclarationAccess().getInKeyword_4_0()); + + } + // InternalFiacre.g:2935:4: ( (lv_left_6_0= ruleLowerBound ) ) + // InternalFiacre.g:2936:5: (lv_left_6_0= ruleLowerBound ) + { + // InternalFiacre.g:2936:5: (lv_left_6_0= ruleLowerBound ) + // InternalFiacre.g:2937:6: lv_left_6_0= ruleLowerBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLocalPortsDeclarationAccess().getLeftLowerBoundParserRuleCall_4_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_left_6_0=ruleLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLocalPortsDeclarationRule()); + } + set( + current, + "left", + lv_left_6_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_7=(Token)match(input,17,FollowSets000.FOLLOW_44); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getLocalPortsDeclarationAccess().getCommaKeyword_4_2()); + + } + // InternalFiacre.g:2958:4: ( (lv_right_8_0= ruleUpperBound ) ) + // InternalFiacre.g:2959:5: (lv_right_8_0= ruleUpperBound ) + { + // InternalFiacre.g:2959:5: (lv_right_8_0= ruleUpperBound ) + // InternalFiacre.g:2960:6: lv_right_8_0= ruleUpperBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLocalPortsDeclarationAccess().getRightUpperBoundParserRuleCall_4_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_8_0=ruleUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLocalPortsDeclarationRule()); + } + set( + current, + "right", + lv_right_8_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLocalPortsDeclaration" + + + // $ANTLR start "entryRuleParametersDeclaration" + // InternalFiacre.g:2982:1: entryRuleParametersDeclaration returns [EObject current=null] : iv_ruleParametersDeclaration= ruleParametersDeclaration EOF ; + public final EObject entryRuleParametersDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleParametersDeclaration = null; + + + try { + // InternalFiacre.g:2982:62: (iv_ruleParametersDeclaration= ruleParametersDeclaration EOF ) + // InternalFiacre.g:2983:2: iv_ruleParametersDeclaration= ruleParametersDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getParametersDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleParametersDeclaration=ruleParametersDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleParametersDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleParametersDeclaration" + + + // $ANTLR start "ruleParametersDeclaration" + // InternalFiacre.g:2989:1: ruleParametersDeclaration returns [EObject current=null] : ( ( (lv_parameters_0_0= ruleParameterDeclaration ) ) (otherlv_1= ',' ( (lv_parameters_2_0= ruleParameterDeclaration ) ) )* otherlv_3= ':' ( (lv_read_4_0= 'read' ) )? ( (lv_write_5_0= 'write' ) )? ( (lv_type_6_0= ruleType ) ) ) ; + public final EObject ruleParametersDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token lv_read_4_0=null; + Token lv_write_5_0=null; + EObject lv_parameters_0_0 = null; + + EObject lv_parameters_2_0 = null; + + EObject lv_type_6_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:2995:2: ( ( ( (lv_parameters_0_0= ruleParameterDeclaration ) ) (otherlv_1= ',' ( (lv_parameters_2_0= ruleParameterDeclaration ) ) )* otherlv_3= ':' ( (lv_read_4_0= 'read' ) )? ( (lv_write_5_0= 'write' ) )? ( (lv_type_6_0= ruleType ) ) ) ) + // InternalFiacre.g:2996:2: ( ( (lv_parameters_0_0= ruleParameterDeclaration ) ) (otherlv_1= ',' ( (lv_parameters_2_0= ruleParameterDeclaration ) ) )* otherlv_3= ':' ( (lv_read_4_0= 'read' ) )? ( (lv_write_5_0= 'write' ) )? ( (lv_type_6_0= ruleType ) ) ) + { + // InternalFiacre.g:2996:2: ( ( (lv_parameters_0_0= ruleParameterDeclaration ) ) (otherlv_1= ',' ( (lv_parameters_2_0= ruleParameterDeclaration ) ) )* otherlv_3= ':' ( (lv_read_4_0= 'read' ) )? ( (lv_write_5_0= 'write' ) )? ( (lv_type_6_0= ruleType ) ) ) + // InternalFiacre.g:2997:3: ( (lv_parameters_0_0= ruleParameterDeclaration ) ) (otherlv_1= ',' ( (lv_parameters_2_0= ruleParameterDeclaration ) ) )* otherlv_3= ':' ( (lv_read_4_0= 'read' ) )? ( (lv_write_5_0= 'write' ) )? ( (lv_type_6_0= ruleType ) ) + { + // InternalFiacre.g:2997:3: ( (lv_parameters_0_0= ruleParameterDeclaration ) ) + // InternalFiacre.g:2998:4: (lv_parameters_0_0= ruleParameterDeclaration ) + { + // InternalFiacre.g:2998:4: (lv_parameters_0_0= ruleParameterDeclaration ) + // InternalFiacre.g:2999:5: lv_parameters_0_0= ruleParameterDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_30); + lv_parameters_0_0=ruleParameterDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getParametersDeclarationRule()); + } + add( + current, + "parameters", + lv_parameters_0_0, + "fr.irit.fiacre.xtext.Fiacre.ParameterDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:3016:3: (otherlv_1= ',' ( (lv_parameters_2_0= ruleParameterDeclaration ) ) )* + loop53: + do { + int alt53=2; + int LA53_0 = input.LA(1); + + if ( (LA53_0==17) ) { + alt53=1; + } + + + switch (alt53) { + case 1 : + // InternalFiacre.g:3017:4: otherlv_1= ',' ( (lv_parameters_2_0= ruleParameterDeclaration ) ) + { + otherlv_1=(Token)match(input,17,FollowSets000.FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getParametersDeclarationAccess().getCommaKeyword_1_0()); + + } + // InternalFiacre.g:3021:4: ( (lv_parameters_2_0= ruleParameterDeclaration ) ) + // InternalFiacre.g:3022:5: (lv_parameters_2_0= ruleParameterDeclaration ) + { + // InternalFiacre.g:3022:5: (lv_parameters_2_0= ruleParameterDeclaration ) + // InternalFiacre.g:3023:6: lv_parameters_2_0= ruleParameterDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getParametersDeclarationAccess().getParametersParameterDeclarationParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_30); + lv_parameters_2_0=ruleParameterDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getParametersDeclarationRule()); + } + add( + current, + "parameters", + lv_parameters_2_0, + "fr.irit.fiacre.xtext.Fiacre.ParameterDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop53; + } + } while (true); + + otherlv_3=(Token)match(input,19,FollowSets000.FOLLOW_45); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getParametersDeclarationAccess().getColonKeyword_2()); + + } + // InternalFiacre.g:3045:3: ( (lv_read_4_0= 'read' ) )? + int alt54=2; + int LA54_0 = input.LA(1); + + if ( (LA54_0==49) ) { + alt54=1; + } + switch (alt54) { + case 1 : + // InternalFiacre.g:3046:4: (lv_read_4_0= 'read' ) + { + // InternalFiacre.g:3046:4: (lv_read_4_0= 'read' ) + // InternalFiacre.g:3047:5: lv_read_4_0= 'read' + { + lv_read_4_0=(Token)match(input,49,FollowSets000.FOLLOW_46); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_read_4_0, grammarAccess.getParametersDeclarationAccess().getReadReadKeyword_3_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getParametersDeclarationRule()); + } + setWithLastConsumed(current, "read", true, "read"); + + } + + } + + + } + break; + + } + + // InternalFiacre.g:3059:3: ( (lv_write_5_0= 'write' ) )? + int alt55=2; + int LA55_0 = input.LA(1); + + if ( (LA55_0==50) ) { + alt55=1; + } + switch (alt55) { + case 1 : + // InternalFiacre.g:3060:4: (lv_write_5_0= 'write' ) + { + // InternalFiacre.g:3060:4: (lv_write_5_0= 'write' ) + // InternalFiacre.g:3061:5: lv_write_5_0= 'write' + { + lv_write_5_0=(Token)match(input,50,FollowSets000.FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_write_5_0, grammarAccess.getParametersDeclarationAccess().getWriteWriteKeyword_4_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getParametersDeclarationRule()); + } + setWithLastConsumed(current, "write", true, "write"); + + } + + } + + + } + break; + + } + + // InternalFiacre.g:3073:3: ( (lv_type_6_0= ruleType ) ) + // InternalFiacre.g:3074:4: (lv_type_6_0= ruleType ) + { + // InternalFiacre.g:3074:4: (lv_type_6_0= ruleType ) + // InternalFiacre.g:3075:5: lv_type_6_0= ruleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getParametersDeclarationAccess().getTypeTypeParserRuleCall_5_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_type_6_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getParametersDeclarationRule()); + } + set( + current, + "type", + lv_type_6_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleParametersDeclaration" + + + // $ANTLR start "entryRuleParameterDeclaration" + // InternalFiacre.g:3096:1: entryRuleParameterDeclaration returns [EObject current=null] : iv_ruleParameterDeclaration= ruleParameterDeclaration EOF ; + public final EObject entryRuleParameterDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleParameterDeclaration = null; + + + try { + // InternalFiacre.g:3096:61: (iv_ruleParameterDeclaration= ruleParameterDeclaration EOF ) + // InternalFiacre.g:3097:2: iv_ruleParameterDeclaration= ruleParameterDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getParameterDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleParameterDeclaration=ruleParameterDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleParameterDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleParameterDeclaration" + + + // $ANTLR start "ruleParameterDeclaration" + // InternalFiacre.g:3103:1: ruleParameterDeclaration returns [EObject current=null] : ( ( ( (lv_reference_0_0= '&' ) ) ( ( (lv_array_1_0= '[' ) ) ( (lv_size_2_0= ruleExpression ) ) otherlv_3= ']' )? )? ( (lv_name_4_0= RULE_ID ) ) ) ; + public final EObject ruleParameterDeclaration() throws RecognitionException { + EObject current = null; + + Token lv_reference_0_0=null; + Token lv_array_1_0=null; + Token otherlv_3=null; + Token lv_name_4_0=null; + EObject lv_size_2_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:3109:2: ( ( ( ( (lv_reference_0_0= '&' ) ) ( ( (lv_array_1_0= '[' ) ) ( (lv_size_2_0= ruleExpression ) ) otherlv_3= ']' )? )? ( (lv_name_4_0= RULE_ID ) ) ) ) + // InternalFiacre.g:3110:2: ( ( ( (lv_reference_0_0= '&' ) ) ( ( (lv_array_1_0= '[' ) ) ( (lv_size_2_0= ruleExpression ) ) otherlv_3= ']' )? )? ( (lv_name_4_0= RULE_ID ) ) ) + { + // InternalFiacre.g:3110:2: ( ( ( (lv_reference_0_0= '&' ) ) ( ( (lv_array_1_0= '[' ) ) ( (lv_size_2_0= ruleExpression ) ) otherlv_3= ']' )? )? ( (lv_name_4_0= RULE_ID ) ) ) + // InternalFiacre.g:3111:3: ( ( (lv_reference_0_0= '&' ) ) ( ( (lv_array_1_0= '[' ) ) ( (lv_size_2_0= ruleExpression ) ) otherlv_3= ']' )? )? ( (lv_name_4_0= RULE_ID ) ) + { + // InternalFiacre.g:3111:3: ( ( (lv_reference_0_0= '&' ) ) ( ( (lv_array_1_0= '[' ) ) ( (lv_size_2_0= ruleExpression ) ) otherlv_3= ']' )? )? + int alt57=2; + int LA57_0 = input.LA(1); + + if ( (LA57_0==51) ) { + alt57=1; + } + switch (alt57) { + case 1 : + // InternalFiacre.g:3112:4: ( (lv_reference_0_0= '&' ) ) ( ( (lv_array_1_0= '[' ) ) ( (lv_size_2_0= ruleExpression ) ) otherlv_3= ']' )? + { + // InternalFiacre.g:3112:4: ( (lv_reference_0_0= '&' ) ) + // InternalFiacre.g:3113:5: (lv_reference_0_0= '&' ) + { + // InternalFiacre.g:3113:5: (lv_reference_0_0= '&' ) + // InternalFiacre.g:3114:6: lv_reference_0_0= '&' + { + lv_reference_0_0=(Token)match(input,51,FollowSets000.FOLLOW_47); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_reference_0_0, grammarAccess.getParameterDeclarationAccess().getReferenceAmpersandKeyword_0_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getParameterDeclarationRule()); + } + setWithLastConsumed(current, "reference", true, "&"); + + } + + } + + + } + + // InternalFiacre.g:3126:4: ( ( (lv_array_1_0= '[' ) ) ( (lv_size_2_0= ruleExpression ) ) otherlv_3= ']' )? + int alt56=2; + int LA56_0 = input.LA(1); + + if ( (LA56_0==41) ) { + alt56=1; + } + switch (alt56) { + case 1 : + // InternalFiacre.g:3127:5: ( (lv_array_1_0= '[' ) ) ( (lv_size_2_0= ruleExpression ) ) otherlv_3= ']' + { + // InternalFiacre.g:3127:5: ( (lv_array_1_0= '[' ) ) + // InternalFiacre.g:3128:6: (lv_array_1_0= '[' ) + { + // InternalFiacre.g:3128:6: (lv_array_1_0= '[' ) + // InternalFiacre.g:3129:7: lv_array_1_0= '[' + { + lv_array_1_0=(Token)match(input,41,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_array_1_0, grammarAccess.getParameterDeclarationAccess().getArrayLeftSquareBracketKeyword_0_1_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getParameterDeclarationRule()); + } + setWithLastConsumed(current, "array", true, "["); + + } + + } + + + } + + // InternalFiacre.g:3141:5: ( (lv_size_2_0= ruleExpression ) ) + // InternalFiacre.g:3142:6: (lv_size_2_0= ruleExpression ) + { + // InternalFiacre.g:3142:6: (lv_size_2_0= ruleExpression ) + // InternalFiacre.g:3143:7: lv_size_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getParameterDeclarationAccess().getSizeExpressionParserRuleCall_0_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_48); + lv_size_2_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getParameterDeclarationRule()); + } + set( + current, + "size", + lv_size_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_3=(Token)match(input,42,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getParameterDeclarationAccess().getRightSquareBracketKeyword_0_1_2()); + + } + + } + break; + + } + + + } + break; + + } + + // InternalFiacre.g:3166:3: ( (lv_name_4_0= RULE_ID ) ) + // InternalFiacre.g:3167:4: (lv_name_4_0= RULE_ID ) + { + // InternalFiacre.g:3167:4: (lv_name_4_0= RULE_ID ) + // InternalFiacre.g:3168:5: lv_name_4_0= RULE_ID + { + lv_name_4_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_4_0, grammarAccess.getParameterDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getParameterDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_4_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleParameterDeclaration" + + + // $ANTLR start "entryRuleVariablesDeclaration" + // InternalFiacre.g:3188:1: entryRuleVariablesDeclaration returns [EObject current=null] : iv_ruleVariablesDeclaration= ruleVariablesDeclaration EOF ; + public final EObject entryRuleVariablesDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVariablesDeclaration = null; + + + try { + // InternalFiacre.g:3188:61: (iv_ruleVariablesDeclaration= ruleVariablesDeclaration EOF ) + // InternalFiacre.g:3189:2: iv_ruleVariablesDeclaration= ruleVariablesDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getVariablesDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleVariablesDeclaration=ruleVariablesDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleVariablesDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVariablesDeclaration" + + + // $ANTLR start "ruleVariablesDeclaration" + // InternalFiacre.g:3195:1: ruleVariablesDeclaration returns [EObject current=null] : ( ( (lv_variables_0_0= ruleVariableDeclaration ) ) (otherlv_1= ',' ( (lv_variables_2_0= ruleVariableDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleType ) ) (otherlv_5= ':=' ( (lv_value_6_0= ruleExpression ) ) )? ) ; + public final EObject ruleVariablesDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + EObject lv_variables_0_0 = null; + + EObject lv_variables_2_0 = null; + + EObject lv_type_4_0 = null; + + EObject lv_value_6_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:3201:2: ( ( ( (lv_variables_0_0= ruleVariableDeclaration ) ) (otherlv_1= ',' ( (lv_variables_2_0= ruleVariableDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleType ) ) (otherlv_5= ':=' ( (lv_value_6_0= ruleExpression ) ) )? ) ) + // InternalFiacre.g:3202:2: ( ( (lv_variables_0_0= ruleVariableDeclaration ) ) (otherlv_1= ',' ( (lv_variables_2_0= ruleVariableDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleType ) ) (otherlv_5= ':=' ( (lv_value_6_0= ruleExpression ) ) )? ) + { + // InternalFiacre.g:3202:2: ( ( (lv_variables_0_0= ruleVariableDeclaration ) ) (otherlv_1= ',' ( (lv_variables_2_0= ruleVariableDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleType ) ) (otherlv_5= ':=' ( (lv_value_6_0= ruleExpression ) ) )? ) + // InternalFiacre.g:3203:3: ( (lv_variables_0_0= ruleVariableDeclaration ) ) (otherlv_1= ',' ( (lv_variables_2_0= ruleVariableDeclaration ) ) )* otherlv_3= ':' ( (lv_type_4_0= ruleType ) ) (otherlv_5= ':=' ( (lv_value_6_0= ruleExpression ) ) )? + { + // InternalFiacre.g:3203:3: ( (lv_variables_0_0= ruleVariableDeclaration ) ) + // InternalFiacre.g:3204:4: (lv_variables_0_0= ruleVariableDeclaration ) + { + // InternalFiacre.g:3204:4: (lv_variables_0_0= ruleVariableDeclaration ) + // InternalFiacre.g:3205:5: lv_variables_0_0= ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_30); + lv_variables_0_0=ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVariablesDeclarationRule()); + } + add( + current, + "variables", + lv_variables_0_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:3222:3: (otherlv_1= ',' ( (lv_variables_2_0= ruleVariableDeclaration ) ) )* + loop58: + do { + int alt58=2; + int LA58_0 = input.LA(1); + + if ( (LA58_0==17) ) { + alt58=1; + } + + + switch (alt58) { + case 1 : + // InternalFiacre.g:3223:4: otherlv_1= ',' ( (lv_variables_2_0= ruleVariableDeclaration ) ) + { + otherlv_1=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getVariablesDeclarationAccess().getCommaKeyword_1_0()); + + } + // InternalFiacre.g:3227:4: ( (lv_variables_2_0= ruleVariableDeclaration ) ) + // InternalFiacre.g:3228:5: (lv_variables_2_0= ruleVariableDeclaration ) + { + // InternalFiacre.g:3228:5: (lv_variables_2_0= ruleVariableDeclaration ) + // InternalFiacre.g:3229:6: lv_variables_2_0= ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getVariablesDeclarationAccess().getVariablesVariableDeclarationParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_30); + lv_variables_2_0=ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVariablesDeclarationRule()); + } + add( + current, + "variables", + lv_variables_2_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop58; + } + } while (true); + + otherlv_3=(Token)match(input,19,FollowSets000.FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getVariablesDeclarationAccess().getColonKeyword_2()); + + } + // InternalFiacre.g:3251:3: ( (lv_type_4_0= ruleType ) ) + // InternalFiacre.g:3252:4: (lv_type_4_0= ruleType ) + { + // InternalFiacre.g:3252:4: (lv_type_4_0= ruleType ) + // InternalFiacre.g:3253:5: lv_type_4_0= ruleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getVariablesDeclarationAccess().getTypeTypeParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_49); + lv_type_4_0=ruleType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVariablesDeclarationRule()); + } + set( + current, + "type", + lv_type_4_0, + "fr.irit.fiacre.xtext.Fiacre.Type"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:3270:3: (otherlv_5= ':=' ( (lv_value_6_0= ruleExpression ) ) )? + int alt59=2; + int LA59_0 = input.LA(1); + + if ( (LA59_0==52) ) { + alt59=1; + } + switch (alt59) { + case 1 : + // InternalFiacre.g:3271:4: otherlv_5= ':=' ( (lv_value_6_0= ruleExpression ) ) + { + otherlv_5=(Token)match(input,52,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getVariablesDeclarationAccess().getColonEqualsSignKeyword_4_0()); + + } + // InternalFiacre.g:3275:4: ( (lv_value_6_0= ruleExpression ) ) + // InternalFiacre.g:3276:5: (lv_value_6_0= ruleExpression ) + { + // InternalFiacre.g:3276:5: (lv_value_6_0= ruleExpression ) + // InternalFiacre.g:3277:6: lv_value_6_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getVariablesDeclarationAccess().getValueExpressionParserRuleCall_4_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_value_6_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVariablesDeclarationRule()); + } + set( + current, + "value", + lv_value_6_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVariablesDeclaration" + + + // $ANTLR start "entryRuleVariableDeclaration" + // InternalFiacre.g:3299:1: entryRuleVariableDeclaration returns [EObject current=null] : iv_ruleVariableDeclaration= ruleVariableDeclaration EOF ; + public final EObject entryRuleVariableDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVariableDeclaration = null; + + + try { + // InternalFiacre.g:3299:60: (iv_ruleVariableDeclaration= ruleVariableDeclaration EOF ) + // InternalFiacre.g:3300:2: iv_ruleVariableDeclaration= ruleVariableDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getVariableDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleVariableDeclaration=ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleVariableDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVariableDeclaration" + + + // $ANTLR start "ruleVariableDeclaration" + // InternalFiacre.g:3306:1: ruleVariableDeclaration returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; + public final EObject ruleVariableDeclaration() throws RecognitionException { + EObject current = null; + + Token lv_name_0_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:3312:2: ( ( (lv_name_0_0= RULE_ID ) ) ) + // InternalFiacre.g:3313:2: ( (lv_name_0_0= RULE_ID ) ) + { + // InternalFiacre.g:3313:2: ( (lv_name_0_0= RULE_ID ) ) + // InternalFiacre.g:3314:3: (lv_name_0_0= RULE_ID ) + { + // InternalFiacre.g:3314:3: (lv_name_0_0= RULE_ID ) + // InternalFiacre.g:3315:4: lv_name_0_0= RULE_ID + { + lv_name_0_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_0_0, grammarAccess.getVariableDeclarationAccess().getNameIDTerminalRuleCall_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getVariableDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_0_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVariableDeclaration" + + + // $ANTLR start "entryRulePriorityDeclaration" + // InternalFiacre.g:3334:1: entryRulePriorityDeclaration returns [EObject current=null] : iv_rulePriorityDeclaration= rulePriorityDeclaration EOF ; + public final EObject entryRulePriorityDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_rulePriorityDeclaration = null; + + + try { + // InternalFiacre.g:3334:60: (iv_rulePriorityDeclaration= rulePriorityDeclaration EOF ) + // InternalFiacre.g:3335:2: iv_rulePriorityDeclaration= rulePriorityDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPriorityDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePriorityDeclaration=rulePriorityDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePriorityDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePriorityDeclaration" + + + // $ANTLR start "rulePriorityDeclaration" + // InternalFiacre.g:3341:1: rulePriorityDeclaration returns [EObject current=null] : ( ( (lv_groups_0_0= rulePriorityGroup ) ) (otherlv_1= '>' ( (lv_groups_2_0= rulePriorityGroup ) ) )+ ) ; + public final EObject rulePriorityDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + EObject lv_groups_0_0 = null; + + EObject lv_groups_2_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:3347:2: ( ( ( (lv_groups_0_0= rulePriorityGroup ) ) (otherlv_1= '>' ( (lv_groups_2_0= rulePriorityGroup ) ) )+ ) ) + // InternalFiacre.g:3348:2: ( ( (lv_groups_0_0= rulePriorityGroup ) ) (otherlv_1= '>' ( (lv_groups_2_0= rulePriorityGroup ) ) )+ ) + { + // InternalFiacre.g:3348:2: ( ( (lv_groups_0_0= rulePriorityGroup ) ) (otherlv_1= '>' ( (lv_groups_2_0= rulePriorityGroup ) ) )+ ) + // InternalFiacre.g:3349:3: ( (lv_groups_0_0= rulePriorityGroup ) ) (otherlv_1= '>' ( (lv_groups_2_0= rulePriorityGroup ) ) )+ + { + // InternalFiacre.g:3349:3: ( (lv_groups_0_0= rulePriorityGroup ) ) + // InternalFiacre.g:3350:4: (lv_groups_0_0= rulePriorityGroup ) + { + // InternalFiacre.g:3350:4: (lv_groups_0_0= rulePriorityGroup ) + // InternalFiacre.g:3351:5: lv_groups_0_0= rulePriorityGroup + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_50); + lv_groups_0_0=rulePriorityGroup(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPriorityDeclarationRule()); + } + add( + current, + "groups", + lv_groups_0_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityGroup"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:3368:3: (otherlv_1= '>' ( (lv_groups_2_0= rulePriorityGroup ) ) )+ + int cnt60=0; + loop60: + do { + int alt60=2; + int LA60_0 = input.LA(1); + + if ( (LA60_0==12) ) { + alt60=1; + } + + + switch (alt60) { + case 1 : + // InternalFiacre.g:3369:4: otherlv_1= '>' ( (lv_groups_2_0= rulePriorityGroup ) ) + { + otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getPriorityDeclarationAccess().getGreaterThanSignKeyword_1_0()); + + } + // InternalFiacre.g:3373:4: ( (lv_groups_2_0= rulePriorityGroup ) ) + // InternalFiacre.g:3374:5: (lv_groups_2_0= rulePriorityGroup ) + { + // InternalFiacre.g:3374:5: (lv_groups_2_0= rulePriorityGroup ) + // InternalFiacre.g:3375:6: lv_groups_2_0= rulePriorityGroup + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPriorityDeclarationAccess().getGroupsPriorityGroupParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_5); + lv_groups_2_0=rulePriorityGroup(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPriorityDeclarationRule()); + } + add( + current, + "groups", + lv_groups_2_0, + "fr.irit.fiacre.xtext.Fiacre.PriorityGroup"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + if ( cnt60 >= 1 ) break loop60; + if (state.backtracking>0) {state.failed=true; return current;} + EarlyExitException eee = + new EarlyExitException(60, input); + throw eee; + } + cnt60++; + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePriorityDeclaration" + + + // $ANTLR start "entryRulePriorityGroup" + // InternalFiacre.g:3397:1: entryRulePriorityGroup returns [EObject current=null] : iv_rulePriorityGroup= rulePriorityGroup EOF ; + public final EObject entryRulePriorityGroup() throws RecognitionException { + EObject current = null; + + EObject iv_rulePriorityGroup = null; + + + try { + // InternalFiacre.g:3397:54: (iv_rulePriorityGroup= rulePriorityGroup EOF ) + // InternalFiacre.g:3398:2: iv_rulePriorityGroup= rulePriorityGroup EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPriorityGroupRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePriorityGroup=rulePriorityGroup(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePriorityGroup; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePriorityGroup" + + + // $ANTLR start "rulePriorityGroup" + // InternalFiacre.g:3404:1: rulePriorityGroup returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= '|' ( (otherlv_2= RULE_ID ) ) )* ) ; + public final EObject rulePriorityGroup() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + Token otherlv_2=null; + + + enterRule(); + + try { + // InternalFiacre.g:3410:2: ( ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= '|' ( (otherlv_2= RULE_ID ) ) )* ) ) + // InternalFiacre.g:3411:2: ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= '|' ( (otherlv_2= RULE_ID ) ) )* ) + { + // InternalFiacre.g:3411:2: ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= '|' ( (otherlv_2= RULE_ID ) ) )* ) + // InternalFiacre.g:3412:3: ( (otherlv_0= RULE_ID ) ) (otherlv_1= '|' ( (otherlv_2= RULE_ID ) ) )* + { + // InternalFiacre.g:3412:3: ( (otherlv_0= RULE_ID ) ) + // InternalFiacre.g:3413:4: (otherlv_0= RULE_ID ) + { + // InternalFiacre.g:3413:4: (otherlv_0= RULE_ID ) + // InternalFiacre.g:3414:5: otherlv_0= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getPriorityGroupRule()); + } + + } + otherlv_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_0_0()); + + } + + } + + + } + + // InternalFiacre.g:3428:3: (otherlv_1= '|' ( (otherlv_2= RULE_ID ) ) )* + loop61: + do { + int alt61=2; + int LA61_0 = input.LA(1); + + if ( (LA61_0==13) ) { + alt61=1; + } + + + switch (alt61) { + case 1 : + // InternalFiacre.g:3429:4: otherlv_1= '|' ( (otherlv_2= RULE_ID ) ) + { + otherlv_1=(Token)match(input,13,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getPriorityGroupAccess().getVerticalLineKeyword_1_0()); + + } + // InternalFiacre.g:3433:4: ( (otherlv_2= RULE_ID ) ) + // InternalFiacre.g:3434:5: (otherlv_2= RULE_ID ) + { + // InternalFiacre.g:3434:5: (otherlv_2= RULE_ID ) + // InternalFiacre.g:3435:6: otherlv_2= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getPriorityGroupRule()); + } + + } + otherlv_2=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getPriorityGroupAccess().getPortsPortDeclarationCrossReference_1_1_0()); + + } + + } + + + } + + + } + break; + + default : + break loop61; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePriorityGroup" + + + // $ANTLR start "entryRuleUnlessStatement" + // InternalFiacre.g:3454:1: entryRuleUnlessStatement returns [EObject current=null] : iv_ruleUnlessStatement= ruleUnlessStatement EOF ; + public final EObject entryRuleUnlessStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleUnlessStatement = null; + + + try { + // InternalFiacre.g:3454:56: (iv_ruleUnlessStatement= ruleUnlessStatement EOF ) + // InternalFiacre.g:3455:2: iv_ruleUnlessStatement= ruleUnlessStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getUnlessStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleUnlessStatement=ruleUnlessStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleUnlessStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleUnlessStatement" + + + // $ANTLR start "ruleUnlessStatement" + // InternalFiacre.g:3461:1: ruleUnlessStatement returns [EObject current=null] : (this_StatementChoice_0= ruleStatementChoice ( () otherlv_2= 'unless' ( (lv_followers_3_0= ruleStatementChoice ) ) )* ) ; + public final EObject ruleUnlessStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_StatementChoice_0 = null; + + EObject lv_followers_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:3467:2: ( (this_StatementChoice_0= ruleStatementChoice ( () otherlv_2= 'unless' ( (lv_followers_3_0= ruleStatementChoice ) ) )* ) ) + // InternalFiacre.g:3468:2: (this_StatementChoice_0= ruleStatementChoice ( () otherlv_2= 'unless' ( (lv_followers_3_0= ruleStatementChoice ) ) )* ) + { + // InternalFiacre.g:3468:2: (this_StatementChoice_0= ruleStatementChoice ( () otherlv_2= 'unless' ( (lv_followers_3_0= ruleStatementChoice ) ) )* ) + // InternalFiacre.g:3469:3: this_StatementChoice_0= ruleStatementChoice ( () otherlv_2= 'unless' ( (lv_followers_3_0= ruleStatementChoice ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUnlessStatementAccess().getStatementChoiceParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_51); + this_StatementChoice_0=ruleStatementChoice(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_StatementChoice_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:3480:3: ( () otherlv_2= 'unless' ( (lv_followers_3_0= ruleStatementChoice ) ) )* + loop62: + do { + int alt62=2; + int LA62_0 = input.LA(1); + + if ( (LA62_0==53) ) { + alt62=1; + } + + + switch (alt62) { + case 1 : + // InternalFiacre.g:3481:4: () otherlv_2= 'unless' ( (lv_followers_3_0= ruleStatementChoice ) ) + { + // InternalFiacre.g:3481:4: () + // InternalFiacre.g:3482:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndAdd( + grammarAccess.getUnlessStatementAccess().getUnlessStatementFollowersAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,53,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getUnlessStatementAccess().getUnlessKeyword_1_1()); + + } + // InternalFiacre.g:3495:4: ( (lv_followers_3_0= ruleStatementChoice ) ) + // InternalFiacre.g:3496:5: (lv_followers_3_0= ruleStatementChoice ) + { + // InternalFiacre.g:3496:5: (lv_followers_3_0= ruleStatementChoice ) + // InternalFiacre.g:3497:6: lv_followers_3_0= ruleStatementChoice + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUnlessStatementAccess().getFollowersStatementChoiceParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_51); + lv_followers_3_0=ruleStatementChoice(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnlessStatementRule()); + } + add( + current, + "followers", + lv_followers_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementChoice"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop62; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleUnlessStatement" + + + // $ANTLR start "entryRuleStatementChoice" + // InternalFiacre.g:3519:1: entryRuleStatementChoice returns [EObject current=null] : iv_ruleStatementChoice= ruleStatementChoice EOF ; + public final EObject entryRuleStatementChoice() throws RecognitionException { + EObject current = null; + + EObject iv_ruleStatementChoice = null; + + + try { + // InternalFiacre.g:3519:56: (iv_ruleStatementChoice= ruleStatementChoice EOF ) + // InternalFiacre.g:3520:2: iv_ruleStatementChoice= ruleStatementChoice EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStatementChoiceRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleStatementChoice=ruleStatementChoice(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleStatementChoice; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleStatementChoice" + + + // $ANTLR start "ruleStatementChoice" + // InternalFiacre.g:3526:1: ruleStatementChoice returns [EObject current=null] : (this_StatementSequence_0= ruleStatementSequence ( () otherlv_2= '[]' ( (lv_choices_3_0= ruleStatementSequence ) ) )* ) ; + public final EObject ruleStatementChoice() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_StatementSequence_0 = null; + + EObject lv_choices_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:3532:2: ( (this_StatementSequence_0= ruleStatementSequence ( () otherlv_2= '[]' ( (lv_choices_3_0= ruleStatementSequence ) ) )* ) ) + // InternalFiacre.g:3533:2: (this_StatementSequence_0= ruleStatementSequence ( () otherlv_2= '[]' ( (lv_choices_3_0= ruleStatementSequence ) ) )* ) + { + // InternalFiacre.g:3533:2: (this_StatementSequence_0= ruleStatementSequence ( () otherlv_2= '[]' ( (lv_choices_3_0= ruleStatementSequence ) ) )* ) + // InternalFiacre.g:3534:3: this_StatementSequence_0= ruleStatementSequence ( () otherlv_2= '[]' ( (lv_choices_3_0= ruleStatementSequence ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementChoiceAccess().getStatementSequenceParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_52); + this_StatementSequence_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_StatementSequence_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:3545:3: ( () otherlv_2= '[]' ( (lv_choices_3_0= ruleStatementSequence ) ) )* + loop63: + do { + int alt63=2; + int LA63_0 = input.LA(1); + + if ( (LA63_0==54) ) { + alt63=1; + } + + + switch (alt63) { + case 1 : + // InternalFiacre.g:3546:4: () otherlv_2= '[]' ( (lv_choices_3_0= ruleStatementSequence ) ) + { + // InternalFiacre.g:3546:4: () + // InternalFiacre.g:3547:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndAdd( + grammarAccess.getStatementChoiceAccess().getStatementChoiceChoicesAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,54,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getStatementChoiceAccess().getLeftSquareBracketRightSquareBracketKeyword_1_1()); + + } + // InternalFiacre.g:3560:4: ( (lv_choices_3_0= ruleStatementSequence ) ) + // InternalFiacre.g:3561:5: (lv_choices_3_0= ruleStatementSequence ) + { + // InternalFiacre.g:3561:5: (lv_choices_3_0= ruleStatementSequence ) + // InternalFiacre.g:3562:6: lv_choices_3_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementChoiceAccess().getChoicesStatementSequenceParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_52); + lv_choices_3_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getStatementChoiceRule()); + } + add( + current, + "choices", + lv_choices_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop63; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleStatementChoice" + + + // $ANTLR start "entryRuleStatementSequence" + // InternalFiacre.g:3584:1: entryRuleStatementSequence returns [EObject current=null] : iv_ruleStatementSequence= ruleStatementSequence EOF ; + public final EObject entryRuleStatementSequence() throws RecognitionException { + EObject current = null; + + EObject iv_ruleStatementSequence = null; + + + try { + // InternalFiacre.g:3584:58: (iv_ruleStatementSequence= ruleStatementSequence EOF ) + // InternalFiacre.g:3585:2: iv_ruleStatementSequence= ruleStatementSequence EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStatementSequenceRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleStatementSequence=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleStatementSequence; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleStatementSequence" + + + // $ANTLR start "ruleStatementSequence" + // InternalFiacre.g:3591:1: ruleStatementSequence returns [EObject current=null] : (this_Statement_0= ruleStatement ( () otherlv_2= ';' ( (lv_statements_3_0= ruleStatement ) ) )* ) ; + public final EObject ruleStatementSequence() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_Statement_0 = null; + + EObject lv_statements_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:3597:2: ( (this_Statement_0= ruleStatement ( () otherlv_2= ';' ( (lv_statements_3_0= ruleStatement ) ) )* ) ) + // InternalFiacre.g:3598:2: (this_Statement_0= ruleStatement ( () otherlv_2= ';' ( (lv_statements_3_0= ruleStatement ) ) )* ) + { + // InternalFiacre.g:3598:2: (this_Statement_0= ruleStatement ( () otherlv_2= ';' ( (lv_statements_3_0= ruleStatement ) ) )* ) + // InternalFiacre.g:3599:3: this_Statement_0= ruleStatement ( () otherlv_2= ';' ( (lv_statements_3_0= ruleStatement ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementSequenceAccess().getStatementParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_53); + this_Statement_0=ruleStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Statement_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:3610:3: ( () otherlv_2= ';' ( (lv_statements_3_0= ruleStatement ) ) )* + loop64: + do { + int alt64=2; + int LA64_0 = input.LA(1); + + if ( (LA64_0==55) ) { + alt64=1; + } + + + switch (alt64) { + case 1 : + // InternalFiacre.g:3611:4: () otherlv_2= ';' ( (lv_statements_3_0= ruleStatement ) ) + { + // InternalFiacre.g:3611:4: () + // InternalFiacre.g:3612:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndAdd( + grammarAccess.getStatementSequenceAccess().getStatementSequenceStatementsAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,55,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getStatementSequenceAccess().getSemicolonKeyword_1_1()); + + } + // InternalFiacre.g:3625:4: ( (lv_statements_3_0= ruleStatement ) ) + // InternalFiacre.g:3626:5: (lv_statements_3_0= ruleStatement ) + { + // InternalFiacre.g:3626:5: (lv_statements_3_0= ruleStatement ) + // InternalFiacre.g:3627:6: lv_statements_3_0= ruleStatement + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementSequenceAccess().getStatementsStatementParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_53); + lv_statements_3_0=ruleStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getStatementSequenceRule()); + } + add( + current, + "statements", + lv_statements_3_0, + "fr.irit.fiacre.xtext.Fiacre.Statement"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop64; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleStatementSequence" + + + // $ANTLR start "entryRuleStatement" + // InternalFiacre.g:3649:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ; + public final EObject entryRuleStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleStatement = null; + + + try { + // InternalFiacre.g:3649:50: (iv_ruleStatement= ruleStatement EOF ) + // InternalFiacre.g:3650:2: iv_ruleStatement= ruleStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleStatement=ruleStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleStatement" + + + // $ANTLR start "ruleStatement" + // InternalFiacre.g:3656:1: ruleStatement returns [EObject current=null] : (this_NullStatement_0= ruleNullStatement | this_TaggedStatement_1= ruleTaggedStatement | this_PatternStatement_2= rulePatternStatement | this_ConditionalStatement_3= ruleConditionalStatement | this_SelectStatement_4= ruleSelectStatement | this_WhileStatement_5= ruleWhileStatement | this_ForeachStatement_6= ruleForeachStatement | this_ToStatement_7= ruleToStatement | this_CaseStatement_8= ruleCaseStatement | this_LoopStatement_9= ruleLoopStatement | this_OnStatement_10= ruleOnStatement | this_WaitStatement_11= ruleWaitStatement | this_ReturnStatement_12= ruleReturnStatement | this_BlockStatement_13= ruleBlockStatement ) ; + public final EObject ruleStatement() throws RecognitionException { + EObject current = null; + + EObject this_NullStatement_0 = null; + + EObject this_TaggedStatement_1 = null; + + EObject this_PatternStatement_2 = null; + + EObject this_ConditionalStatement_3 = null; + + EObject this_SelectStatement_4 = null; + + EObject this_WhileStatement_5 = null; + + EObject this_ForeachStatement_6 = null; + + EObject this_ToStatement_7 = null; + + EObject this_CaseStatement_8 = null; + + EObject this_LoopStatement_9 = null; + + EObject this_OnStatement_10 = null; + + EObject this_WaitStatement_11 = null; + + EObject this_ReturnStatement_12 = null; + + EObject this_BlockStatement_13 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:3662:2: ( (this_NullStatement_0= ruleNullStatement | this_TaggedStatement_1= ruleTaggedStatement | this_PatternStatement_2= rulePatternStatement | this_ConditionalStatement_3= ruleConditionalStatement | this_SelectStatement_4= ruleSelectStatement | this_WhileStatement_5= ruleWhileStatement | this_ForeachStatement_6= ruleForeachStatement | this_ToStatement_7= ruleToStatement | this_CaseStatement_8= ruleCaseStatement | this_LoopStatement_9= ruleLoopStatement | this_OnStatement_10= ruleOnStatement | this_WaitStatement_11= ruleWaitStatement | this_ReturnStatement_12= ruleReturnStatement | this_BlockStatement_13= ruleBlockStatement ) ) + // InternalFiacre.g:3663:2: (this_NullStatement_0= ruleNullStatement | this_TaggedStatement_1= ruleTaggedStatement | this_PatternStatement_2= rulePatternStatement | this_ConditionalStatement_3= ruleConditionalStatement | this_SelectStatement_4= ruleSelectStatement | this_WhileStatement_5= ruleWhileStatement | this_ForeachStatement_6= ruleForeachStatement | this_ToStatement_7= ruleToStatement | this_CaseStatement_8= ruleCaseStatement | this_LoopStatement_9= ruleLoopStatement | this_OnStatement_10= ruleOnStatement | this_WaitStatement_11= ruleWaitStatement | this_ReturnStatement_12= ruleReturnStatement | this_BlockStatement_13= ruleBlockStatement ) + { + // InternalFiacre.g:3663:2: (this_NullStatement_0= ruleNullStatement | this_TaggedStatement_1= ruleTaggedStatement | this_PatternStatement_2= rulePatternStatement | this_ConditionalStatement_3= ruleConditionalStatement | this_SelectStatement_4= ruleSelectStatement | this_WhileStatement_5= ruleWhileStatement | this_ForeachStatement_6= ruleForeachStatement | this_ToStatement_7= ruleToStatement | this_CaseStatement_8= ruleCaseStatement | this_LoopStatement_9= ruleLoopStatement | this_OnStatement_10= ruleOnStatement | this_WaitStatement_11= ruleWaitStatement | this_ReturnStatement_12= ruleReturnStatement | this_BlockStatement_13= ruleBlockStatement ) + int alt65=14; + switch ( input.LA(1) ) { + case 58: + { + alt65=1; + } + break; + case 30: + { + alt65=2; + } + break; + case RULE_ID: + case RULE_INT: + case 16: + case 59: + case 63: + case 64: + case 109: + case 110: + { + alt65=3; + } + break; + case 66: + { + alt65=4; + } + break; + case 70: + { + alt65=5; + } + break; + case 71: + { + alt65=6; + } + break; + case 73: + { + alt65=7; + } + break; + case 74: + { + alt65=8; + } + break; + case 75: + { + alt65=9; + } + break; + case 77: + { + alt65=10; + } + break; + case 78: + { + alt65=11; + } + break; + case 79: + { + alt65=12; + } + break; + case 57: + { + alt65=13; + } + break; + case 56: + { + alt65=14; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 65, 0, input); + + throw nvae; + } + + switch (alt65) { + case 1 : + // InternalFiacre.g:3664:3: this_NullStatement_0= ruleNullStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getNullStatementParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_NullStatement_0=ruleNullStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_NullStatement_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:3676:3: this_TaggedStatement_1= ruleTaggedStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getTaggedStatementParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_TaggedStatement_1=ruleTaggedStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_TaggedStatement_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:3688:3: this_PatternStatement_2= rulePatternStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getPatternStatementParserRuleCall_2()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_PatternStatement_2=rulePatternStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_PatternStatement_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 4 : + // InternalFiacre.g:3700:3: this_ConditionalStatement_3= ruleConditionalStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getConditionalStatementParserRuleCall_3()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ConditionalStatement_3=ruleConditionalStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ConditionalStatement_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 5 : + // InternalFiacre.g:3712:3: this_SelectStatement_4= ruleSelectStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getSelectStatementParserRuleCall_4()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_SelectStatement_4=ruleSelectStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_SelectStatement_4; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 6 : + // InternalFiacre.g:3724:3: this_WhileStatement_5= ruleWhileStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getWhileStatementParserRuleCall_5()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_WhileStatement_5=ruleWhileStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_WhileStatement_5; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 7 : + // InternalFiacre.g:3736:3: this_ForeachStatement_6= ruleForeachStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getForeachStatementParserRuleCall_6()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ForeachStatement_6=ruleForeachStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ForeachStatement_6; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 8 : + // InternalFiacre.g:3748:3: this_ToStatement_7= ruleToStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getToStatementParserRuleCall_7()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ToStatement_7=ruleToStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ToStatement_7; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 9 : + // InternalFiacre.g:3760:3: this_CaseStatement_8= ruleCaseStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getCaseStatementParserRuleCall_8()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_CaseStatement_8=ruleCaseStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_CaseStatement_8; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 10 : + // InternalFiacre.g:3772:3: this_LoopStatement_9= ruleLoopStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getLoopStatementParserRuleCall_9()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_LoopStatement_9=ruleLoopStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LoopStatement_9; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 11 : + // InternalFiacre.g:3784:3: this_OnStatement_10= ruleOnStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getOnStatementParserRuleCall_10()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_OnStatement_10=ruleOnStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_OnStatement_10; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 12 : + // InternalFiacre.g:3796:3: this_WaitStatement_11= ruleWaitStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getWaitStatementParserRuleCall_11()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_WaitStatement_11=ruleWaitStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_WaitStatement_11; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 13 : + // InternalFiacre.g:3808:3: this_ReturnStatement_12= ruleReturnStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getReturnStatementParserRuleCall_12()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ReturnStatement_12=ruleReturnStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ReturnStatement_12; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 14 : + // InternalFiacre.g:3820:3: this_BlockStatement_13= ruleBlockStatement + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatementAccess().getBlockStatementParserRuleCall_13()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_BlockStatement_13=ruleBlockStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_BlockStatement_13; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleStatement" + + + // $ANTLR start "entryRuleBlockStatement" + // InternalFiacre.g:3835:1: entryRuleBlockStatement returns [EObject current=null] : iv_ruleBlockStatement= ruleBlockStatement EOF ; + public final EObject entryRuleBlockStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleBlockStatement = null; + + + try { + // InternalFiacre.g:3835:55: (iv_ruleBlockStatement= ruleBlockStatement EOF ) + // InternalFiacre.g:3836:2: iv_ruleBlockStatement= ruleBlockStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getBlockStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleBlockStatement=ruleBlockStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleBlockStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleBlockStatement" + + + // $ANTLR start "ruleBlockStatement" + // InternalFiacre.g:3842:1: ruleBlockStatement returns [EObject current=null] : (otherlv_0= 'begin' ( (lv_body_1_0= ruleStatementSequence ) ) otherlv_2= 'end' ) ; + public final EObject ruleBlockStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + EObject lv_body_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:3848:2: ( (otherlv_0= 'begin' ( (lv_body_1_0= ruleStatementSequence ) ) otherlv_2= 'end' ) ) + // InternalFiacre.g:3849:2: (otherlv_0= 'begin' ( (lv_body_1_0= ruleStatementSequence ) ) otherlv_2= 'end' ) + { + // InternalFiacre.g:3849:2: (otherlv_0= 'begin' ( (lv_body_1_0= ruleStatementSequence ) ) otherlv_2= 'end' ) + // InternalFiacre.g:3850:3: otherlv_0= 'begin' ( (lv_body_1_0= ruleStatementSequence ) ) otherlv_2= 'end' + { + otherlv_0=(Token)match(input,56,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getBlockStatementAccess().getBeginKeyword_0()); + + } + // InternalFiacre.g:3854:3: ( (lv_body_1_0= ruleStatementSequence ) ) + // InternalFiacre.g:3855:4: (lv_body_1_0= ruleStatementSequence ) + { + // InternalFiacre.g:3855:4: (lv_body_1_0= ruleStatementSequence ) + // InternalFiacre.g:3856:5: lv_body_1_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getBlockStatementAccess().getBodyStatementSequenceParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_54); + lv_body_1_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getBlockStatementRule()); + } + set( + current, + "body", + lv_body_1_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getBlockStatementAccess().getEndKeyword_2()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleBlockStatement" + + + // $ANTLR start "entryRuleReturnStatement" + // InternalFiacre.g:3881:1: entryRuleReturnStatement returns [EObject current=null] : iv_ruleReturnStatement= ruleReturnStatement EOF ; + public final EObject entryRuleReturnStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleReturnStatement = null; + + + try { + // InternalFiacre.g:3881:56: (iv_ruleReturnStatement= ruleReturnStatement EOF ) + // InternalFiacre.g:3882:2: iv_ruleReturnStatement= ruleReturnStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getReturnStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleReturnStatement=ruleReturnStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleReturnStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleReturnStatement" + + + // $ANTLR start "ruleReturnStatement" + // InternalFiacre.g:3888:1: ruleReturnStatement returns [EObject current=null] : (otherlv_0= 'return' ( (lv_expression_1_0= ruleExpression ) ) ) ; + public final EObject ruleReturnStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_expression_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:3894:2: ( (otherlv_0= 'return' ( (lv_expression_1_0= ruleExpression ) ) ) ) + // InternalFiacre.g:3895:2: (otherlv_0= 'return' ( (lv_expression_1_0= ruleExpression ) ) ) + { + // InternalFiacre.g:3895:2: (otherlv_0= 'return' ( (lv_expression_1_0= ruleExpression ) ) ) + // InternalFiacre.g:3896:3: otherlv_0= 'return' ( (lv_expression_1_0= ruleExpression ) ) + { + otherlv_0=(Token)match(input,57,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getReturnStatementAccess().getReturnKeyword_0()); + + } + // InternalFiacre.g:3900:3: ( (lv_expression_1_0= ruleExpression ) ) + // InternalFiacre.g:3901:4: (lv_expression_1_0= ruleExpression ) + { + // InternalFiacre.g:3901:4: (lv_expression_1_0= ruleExpression ) + // InternalFiacre.g:3902:5: lv_expression_1_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getReturnStatementAccess().getExpressionExpressionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_expression_1_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getReturnStatementRule()); + } + set( + current, + "expression", + lv_expression_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleReturnStatement" + + + // $ANTLR start "entryRuleNullStatement" + // InternalFiacre.g:3923:1: entryRuleNullStatement returns [EObject current=null] : iv_ruleNullStatement= ruleNullStatement EOF ; + public final EObject entryRuleNullStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleNullStatement = null; + + + try { + // InternalFiacre.g:3923:54: (iv_ruleNullStatement= ruleNullStatement EOF ) + // InternalFiacre.g:3924:2: iv_ruleNullStatement= ruleNullStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getNullStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleNullStatement=ruleNullStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleNullStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleNullStatement" + + + // $ANTLR start "ruleNullStatement" + // InternalFiacre.g:3930:1: ruleNullStatement returns [EObject current=null] : ( () otherlv_1= 'null' ) ; + public final EObject ruleNullStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalFiacre.g:3936:2: ( ( () otherlv_1= 'null' ) ) + // InternalFiacre.g:3937:2: ( () otherlv_1= 'null' ) + { + // InternalFiacre.g:3937:2: ( () otherlv_1= 'null' ) + // InternalFiacre.g:3938:3: () otherlv_1= 'null' + { + // InternalFiacre.g:3938:3: () + // InternalFiacre.g:3939:4: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getNullStatementAccess().getNullStatementAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,58,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getNullStatementAccess().getNullKeyword_1()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleNullStatement" + + + // $ANTLR start "entryRuleTaggedStatement" + // InternalFiacre.g:3956:1: entryRuleTaggedStatement returns [EObject current=null] : iv_ruleTaggedStatement= ruleTaggedStatement EOF ; + public final EObject entryRuleTaggedStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleTaggedStatement = null; + + + try { + // InternalFiacre.g:3956:56: (iv_ruleTaggedStatement= ruleTaggedStatement EOF ) + // InternalFiacre.g:3957:2: iv_ruleTaggedStatement= ruleTaggedStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getTaggedStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleTaggedStatement=ruleTaggedStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleTaggedStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleTaggedStatement" + + + // $ANTLR start "ruleTaggedStatement" + // InternalFiacre.g:3963:1: ruleTaggedStatement returns [EObject current=null] : (otherlv_0= '#' ( (lv_name_1_0= RULE_ID ) ) ) ; + public final EObject ruleTaggedStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:3969:2: ( (otherlv_0= '#' ( (lv_name_1_0= RULE_ID ) ) ) ) + // InternalFiacre.g:3970:2: (otherlv_0= '#' ( (lv_name_1_0= RULE_ID ) ) ) + { + // InternalFiacre.g:3970:2: (otherlv_0= '#' ( (lv_name_1_0= RULE_ID ) ) ) + // InternalFiacre.g:3971:3: otherlv_0= '#' ( (lv_name_1_0= RULE_ID ) ) + { + otherlv_0=(Token)match(input,30,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getTaggedStatementAccess().getNumberSignKeyword_0()); + + } + // InternalFiacre.g:3975:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalFiacre.g:3976:4: (lv_name_1_0= RULE_ID ) + { + // InternalFiacre.g:3976:4: (lv_name_1_0= RULE_ID ) + // InternalFiacre.g:3977:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getTaggedStatementAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTaggedStatementRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTaggedStatement" + + + // $ANTLR start "entryRulePatternStatement" + // InternalFiacre.g:3997:1: entryRulePatternStatement returns [EObject current=null] : iv_rulePatternStatement= rulePatternStatement EOF ; + public final EObject entryRulePatternStatement() throws RecognitionException { + EObject current = null; + + EObject iv_rulePatternStatement = null; + + + try { + // InternalFiacre.g:3997:57: (iv_rulePatternStatement= rulePatternStatement EOF ) + // InternalFiacre.g:3998:2: iv_rulePatternStatement= rulePatternStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPatternStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePatternStatement=rulePatternStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePatternStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePatternStatement" + + + // $ANTLR start "rulePatternStatement" + // InternalFiacre.g:4004:1: rulePatternStatement returns [EObject current=null] : (this_Pattern_0= rulePattern ( (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) | (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) | (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) | (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) | (otherlv_29= '!' () ( (lv_values_31_0= ruleExpression ) ) (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* ) | (otherlv_34= '?' () ( (lv_patterns_36_0= rulePattern ) ) (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? ) )? ) ; + public final EObject rulePatternStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_10=null; + Token otherlv_13=null; + Token otherlv_15=null; + Token otherlv_18=null; + Token otherlv_20=null; + Token otherlv_21=null; + Token otherlv_22=null; + Token otherlv_24=null; + Token otherlv_26=null; + Token otherlv_27=null; + Token otherlv_29=null; + Token otherlv_32=null; + Token otherlv_34=null; + Token otherlv_37=null; + Token otherlv_39=null; + EObject this_Pattern_0 = null; + + EObject lv_patterns_3_0 = null; + + EObject lv_patterns_5_0 = null; + + EObject lv_values_7_0 = null; + + EObject lv_values_9_0 = null; + + EObject lv_values_12_0 = null; + + EObject lv_values_14_0 = null; + + EObject lv_patterns_17_0 = null; + + EObject lv_patterns_19_0 = null; + + EObject lv_exp_23_0 = null; + + EObject lv_exp_28_0 = null; + + EObject lv_values_31_0 = null; + + EObject lv_values_33_0 = null; + + EObject lv_patterns_36_0 = null; + + EObject lv_patterns_38_0 = null; + + EObject lv_exp_40_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:4010:2: ( (this_Pattern_0= rulePattern ( (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) | (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) | (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) | (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) | (otherlv_29= '!' () ( (lv_values_31_0= ruleExpression ) ) (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* ) | (otherlv_34= '?' () ( (lv_patterns_36_0= rulePattern ) ) (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? ) )? ) ) + // InternalFiacre.g:4011:2: (this_Pattern_0= rulePattern ( (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) | (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) | (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) | (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) | (otherlv_29= '!' () ( (lv_values_31_0= ruleExpression ) ) (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* ) | (otherlv_34= '?' () ( (lv_patterns_36_0= rulePattern ) ) (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? ) )? ) + { + // InternalFiacre.g:4011:2: (this_Pattern_0= rulePattern ( (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) | (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) | (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) | (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) | (otherlv_29= '!' () ( (lv_values_31_0= ruleExpression ) ) (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* ) | (otherlv_34= '?' () ( (lv_patterns_36_0= rulePattern ) ) (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? ) )? ) + // InternalFiacre.g:4012:3: this_Pattern_0= rulePattern ( (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) | (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) | (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) | (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) | (otherlv_29= '!' () ( (lv_values_31_0= ruleExpression ) ) (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* ) | (otherlv_34= '?' () ( (lv_patterns_36_0= rulePattern ) ) (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? ) )? + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_55); + this_Pattern_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Pattern_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:4023:3: ( (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) | (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) | (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) | (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) | (otherlv_29= '!' () ( (lv_values_31_0= ruleExpression ) ) (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* ) | (otherlv_34= '?' () ( (lv_patterns_36_0= rulePattern ) ) (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? ) )? + int alt75=7; + alt75 = dfa75.predict(input); + switch (alt75) { + case 1 : + // InternalFiacre.g:4024:4: (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) + { + // InternalFiacre.g:4024:4: (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) + // InternalFiacre.g:4025:5: otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* + { + otherlv_1=(Token)match(input,17,FollowSets000.FOLLOW_56); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_0()); + + } + // InternalFiacre.g:4029:5: () + // InternalFiacre.g:4030:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndAdd( + grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_0_1(), + current); + + } + + } + + // InternalFiacre.g:4039:5: ( (lv_patterns_3_0= rulePattern ) ) + // InternalFiacre.g:4040:6: (lv_patterns_3_0= rulePattern ) + { + // InternalFiacre.g:4040:6: (lv_patterns_3_0= rulePattern ) + // InternalFiacre.g:4041:7: lv_patterns_3_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_57); + lv_patterns_3_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "patterns", + lv_patterns_3_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:4058:5: (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* + loop66: + do { + int alt66=2; + int LA66_0 = input.LA(1); + + if ( (LA66_0==17) ) { + alt66=1; + } + + + switch (alt66) { + case 1 : + // InternalFiacre.g:4059:6: otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) + { + otherlv_4=(Token)match(input,17,FollowSets000.FOLLOW_56); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_3_0()); + + } + // InternalFiacre.g:4063:6: ( (lv_patterns_5_0= rulePattern ) ) + // InternalFiacre.g:4064:7: (lv_patterns_5_0= rulePattern ) + { + // InternalFiacre.g:4064:7: (lv_patterns_5_0= rulePattern ) + // InternalFiacre.g:4065:8: lv_patterns_5_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_57); + lv_patterns_5_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "patterns", + lv_patterns_5_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop66; + } + } while (true); + + otherlv_6=(Token)match(input,52,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_0_4()); + + } + // InternalFiacre.g:4087:5: ( (lv_values_7_0= ruleExpression ) ) + // InternalFiacre.g:4088:6: (lv_values_7_0= ruleExpression ) + { + // InternalFiacre.g:4088:6: (lv_values_7_0= ruleExpression ) + // InternalFiacre.g:4089:7: lv_values_7_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_5_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_values_7_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "values", + lv_values_7_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:4106:5: (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* + loop67: + do { + int alt67=2; + int LA67_0 = input.LA(1); + + if ( (LA67_0==17) ) { + alt67=1; + } + + + switch (alt67) { + case 1 : + // InternalFiacre.g:4107:6: otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) + { + otherlv_8=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_0_6_0()); + + } + // InternalFiacre.g:4111:6: ( (lv_values_9_0= ruleExpression ) ) + // InternalFiacre.g:4112:7: (lv_values_9_0= ruleExpression ) + { + // InternalFiacre.g:4112:7: (lv_values_9_0= ruleExpression ) + // InternalFiacre.g:4113:8: lv_values_9_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_6_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_values_9_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "values", + lv_values_9_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop67; + } + } while (true); + + + } + + + } + break; + case 2 : + // InternalFiacre.g:4133:4: (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) + { + // InternalFiacre.g:4133:4: (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) + // InternalFiacre.g:4134:5: otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) + { + otherlv_10=(Token)match(input,52,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_1_0()); + + } + // InternalFiacre.g:4138:5: () + // InternalFiacre.g:4139:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndAdd( + grammarAccess.getPatternStatementAccess().getAssignStatementPatternsAction_1_1_1(), + current); + + } + + } + + // InternalFiacre.g:4148:5: ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) + // InternalFiacre.g:4149:6: ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* + { + // InternalFiacre.g:4149:6: ( (lv_values_12_0= ruleExpression ) ) + // InternalFiacre.g:4150:7: (lv_values_12_0= ruleExpression ) + { + // InternalFiacre.g:4150:7: (lv_values_12_0= ruleExpression ) + // InternalFiacre.g:4151:8: lv_values_12_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_values_12_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "values", + lv_values_12_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:4168:6: (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* + loop68: + do { + int alt68=2; + int LA68_0 = input.LA(1); + + if ( (LA68_0==17) ) { + alt68=1; + } + + + switch (alt68) { + case 1 : + // InternalFiacre.g:4169:7: otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) + { + otherlv_13=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_13, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_1_2_1_0()); + + } + // InternalFiacre.g:4173:7: ( (lv_values_14_0= ruleExpression ) ) + // InternalFiacre.g:4174:8: (lv_values_14_0= ruleExpression ) + { + // InternalFiacre.g:4174:8: (lv_values_14_0= ruleExpression ) + // InternalFiacre.g:4175:9: lv_values_14_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_values_14_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "values", + lv_values_14_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop68; + } + } while (true); + + + } + + + } + + + } + break; + case 3 : + // InternalFiacre.g:4196:4: (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) + { + // InternalFiacre.g:4196:4: (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) + // InternalFiacre.g:4197:5: otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? + { + otherlv_15=(Token)match(input,17,FollowSets000.FOLLOW_56); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_15, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_0()); + + } + // InternalFiacre.g:4201:5: () + // InternalFiacre.g:4202:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndAdd( + grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_2_1(), + current); + + } + + } + + // InternalFiacre.g:4211:5: ( (lv_patterns_17_0= rulePattern ) ) + // InternalFiacre.g:4212:6: (lv_patterns_17_0= rulePattern ) + { + // InternalFiacre.g:4212:6: (lv_patterns_17_0= rulePattern ) + // InternalFiacre.g:4213:7: lv_patterns_17_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_57); + lv_patterns_17_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "patterns", + lv_patterns_17_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:4230:5: (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* + loop69: + do { + int alt69=2; + int LA69_0 = input.LA(1); + + if ( (LA69_0==17) ) { + alt69=1; + } + + + switch (alt69) { + case 1 : + // InternalFiacre.g:4231:6: otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) + { + otherlv_18=(Token)match(input,17,FollowSets000.FOLLOW_56); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_18, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_2_3_0()); + + } + // InternalFiacre.g:4235:6: ( (lv_patterns_19_0= rulePattern ) ) + // InternalFiacre.g:4236:7: (lv_patterns_19_0= rulePattern ) + { + // InternalFiacre.g:4236:7: (lv_patterns_19_0= rulePattern ) + // InternalFiacre.g:4237:8: lv_patterns_19_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_57); + lv_patterns_19_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "patterns", + lv_patterns_19_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop69; + } + } while (true); + + otherlv_20=(Token)match(input,52,FollowSets000.FOLLOW_59); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_20, grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_2_4()); + + } + otherlv_21=(Token)match(input,59,FollowSets000.FOLLOW_60); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_21, grammarAccess.getPatternStatementAccess().getAnyKeyword_1_2_5()); + + } + // InternalFiacre.g:4263:5: (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? + int alt70=2; + int LA70_0 = input.LA(1); + + if ( (LA70_0==60) ) { + alt70=1; + } + switch (alt70) { + case 1 : + // InternalFiacre.g:4264:6: otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) + { + otherlv_22=(Token)match(input,60,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_22, grammarAccess.getPatternStatementAccess().getWhereKeyword_1_2_6_0()); + + } + // InternalFiacre.g:4268:6: ( (lv_exp_23_0= ruleExpression ) ) + // InternalFiacre.g:4269:7: (lv_exp_23_0= ruleExpression ) + { + // InternalFiacre.g:4269:7: (lv_exp_23_0= ruleExpression ) + // InternalFiacre.g:4270:8: lv_exp_23_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_2_6_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_exp_23_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + set( + current, + "exp", + lv_exp_23_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 4 : + // InternalFiacre.g:4290:4: (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) + { + // InternalFiacre.g:4290:4: (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) + // InternalFiacre.g:4291:5: otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? + { + otherlv_24=(Token)match(input,52,FollowSets000.FOLLOW_59); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_24, grammarAccess.getPatternStatementAccess().getColonEqualsSignKeyword_1_3_0()); + + } + // InternalFiacre.g:4295:5: () + // InternalFiacre.g:4296:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndAdd( + grammarAccess.getPatternStatementAccess().getAssignAnyStatementPatternsAction_1_3_1(), + current); + + } + + } + + otherlv_26=(Token)match(input,59,FollowSets000.FOLLOW_60); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_26, grammarAccess.getPatternStatementAccess().getAnyKeyword_1_3_2()); + + } + // InternalFiacre.g:4309:5: (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? + int alt71=2; + int LA71_0 = input.LA(1); + + if ( (LA71_0==60) ) { + alt71=1; + } + switch (alt71) { + case 1 : + // InternalFiacre.g:4310:6: otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) + { + otherlv_27=(Token)match(input,60,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_27, grammarAccess.getPatternStatementAccess().getWhereKeyword_1_3_3_0()); + + } + // InternalFiacre.g:4314:6: ( (lv_exp_28_0= ruleExpression ) ) + // InternalFiacre.g:4315:7: (lv_exp_28_0= ruleExpression ) + { + // InternalFiacre.g:4315:7: (lv_exp_28_0= ruleExpression ) + // InternalFiacre.g:4316:8: lv_exp_28_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_3_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_exp_28_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + set( + current, + "exp", + lv_exp_28_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 5 : + // InternalFiacre.g:4336:4: (otherlv_29= '!' () ( (lv_values_31_0= ruleExpression ) ) (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* ) + { + // InternalFiacre.g:4336:4: (otherlv_29= '!' () ( (lv_values_31_0= ruleExpression ) ) (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* ) + // InternalFiacre.g:4337:5: otherlv_29= '!' () ( (lv_values_31_0= ruleExpression ) ) (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* + { + otherlv_29=(Token)match(input,61,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_29, grammarAccess.getPatternStatementAccess().getExclamationMarkKeyword_1_4_0()); + + } + // InternalFiacre.g:4341:5: () + // InternalFiacre.g:4342:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getPatternStatementAccess().getSendStatementPortAction_1_4_1(), + current); + + } + + } + + // InternalFiacre.g:4351:5: ( (lv_values_31_0= ruleExpression ) ) + // InternalFiacre.g:4352:6: (lv_values_31_0= ruleExpression ) + { + // InternalFiacre.g:4352:6: (lv_values_31_0= ruleExpression ) + // InternalFiacre.g:4353:7: lv_values_31_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_values_31_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "values", + lv_values_31_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:4370:5: (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* + loop72: + do { + int alt72=2; + int LA72_0 = input.LA(1); + + if ( (LA72_0==17) ) { + alt72=1; + } + + + switch (alt72) { + case 1 : + // InternalFiacre.g:4371:6: otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) + { + otherlv_32=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_32, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_4_3_0()); + + } + // InternalFiacre.g:4375:6: ( (lv_values_33_0= ruleExpression ) ) + // InternalFiacre.g:4376:7: (lv_values_33_0= ruleExpression ) + { + // InternalFiacre.g:4376:7: (lv_values_33_0= ruleExpression ) + // InternalFiacre.g:4377:8: lv_values_33_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_4_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_values_33_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "values", + lv_values_33_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop72; + } + } while (true); + + + } + + + } + break; + case 6 : + // InternalFiacre.g:4397:4: (otherlv_34= '?' () ( (lv_patterns_36_0= rulePattern ) ) (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? ) + { + // InternalFiacre.g:4397:4: (otherlv_34= '?' () ( (lv_patterns_36_0= rulePattern ) ) (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? ) + // InternalFiacre.g:4398:5: otherlv_34= '?' () ( (lv_patterns_36_0= rulePattern ) ) (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? + { + otherlv_34=(Token)match(input,62,FollowSets000.FOLLOW_56); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_34, grammarAccess.getPatternStatementAccess().getQuestionMarkKeyword_1_5_0()); + + } + // InternalFiacre.g:4402:5: () + // InternalFiacre.g:4403:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getPatternStatementAccess().getReceiveStatementPortAction_1_5_1(), + current); + + } + + } + + // InternalFiacre.g:4412:5: ( (lv_patterns_36_0= rulePattern ) ) + // InternalFiacre.g:4413:6: (lv_patterns_36_0= rulePattern ) + { + // InternalFiacre.g:4413:6: (lv_patterns_36_0= rulePattern ) + // InternalFiacre.g:4414:7: lv_patterns_36_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_61); + lv_patterns_36_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "patterns", + lv_patterns_36_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:4431:5: (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* + loop73: + do { + int alt73=2; + int LA73_0 = input.LA(1); + + if ( (LA73_0==17) ) { + alt73=1; + } + + + switch (alt73) { + case 1 : + // InternalFiacre.g:4432:6: otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) + { + otherlv_37=(Token)match(input,17,FollowSets000.FOLLOW_56); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_37, grammarAccess.getPatternStatementAccess().getCommaKeyword_1_5_3_0()); + + } + // InternalFiacre.g:4436:6: ( (lv_patterns_38_0= rulePattern ) ) + // InternalFiacre.g:4437:7: (lv_patterns_38_0= rulePattern ) + { + // InternalFiacre.g:4437:7: (lv_patterns_38_0= rulePattern ) + // InternalFiacre.g:4438:8: lv_patterns_38_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_5_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_61); + lv_patterns_38_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + add( + current, + "patterns", + lv_patterns_38_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop73; + } + } while (true); + + // InternalFiacre.g:4456:5: (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? + int alt74=2; + int LA74_0 = input.LA(1); + + if ( (LA74_0==60) ) { + alt74=1; + } + switch (alt74) { + case 1 : + // InternalFiacre.g:4457:6: otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) + { + otherlv_39=(Token)match(input,60,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_39, grammarAccess.getPatternStatementAccess().getWhereKeyword_1_5_4_0()); + + } + // InternalFiacre.g:4461:6: ( (lv_exp_40_0= ruleExpression ) ) + // InternalFiacre.g:4462:7: (lv_exp_40_0= ruleExpression ) + { + // InternalFiacre.g:4462:7: (lv_exp_40_0= ruleExpression ) + // InternalFiacre.g:4463:8: lv_exp_40_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_5_4_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_exp_40_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPatternStatementRule()); + } + set( + current, + "exp", + lv_exp_40_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePatternStatement" + + + // $ANTLR start "entryRulePattern" + // InternalFiacre.g:4487:1: entryRulePattern returns [EObject current=null] : iv_rulePattern= rulePattern EOF ; + public final EObject entryRulePattern() throws RecognitionException { + EObject current = null; + + EObject iv_rulePattern = null; + + + try { + // InternalFiacre.g:4487:48: (iv_rulePattern= rulePattern EOF ) + // InternalFiacre.g:4488:2: iv_rulePattern= rulePattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePattern=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePattern" + + + // $ANTLR start "rulePattern" + // InternalFiacre.g:4494:1: rulePattern returns [EObject current=null] : (this_AnyPattern_0= ruleAnyPattern | this_IntegerPattern_1= ruleIntegerPattern | this_ConstantPattern_2= ruleConstantPattern | (otherlv_3= '(' this_Pattern_4= rulePattern otherlv_5= ')' ) | this_IdentifierPattern_6= ruleIdentifierPattern ) ; + public final EObject rulePattern() throws RecognitionException { + EObject current = null; + + Token otherlv_3=null; + Token otherlv_5=null; + EObject this_AnyPattern_0 = null; + + EObject this_IntegerPattern_1 = null; + + EObject this_ConstantPattern_2 = null; + + EObject this_Pattern_4 = null; + + EObject this_IdentifierPattern_6 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:4500:2: ( (this_AnyPattern_0= ruleAnyPattern | this_IntegerPattern_1= ruleIntegerPattern | this_ConstantPattern_2= ruleConstantPattern | (otherlv_3= '(' this_Pattern_4= rulePattern otherlv_5= ')' ) | this_IdentifierPattern_6= ruleIdentifierPattern ) ) + // InternalFiacre.g:4501:2: (this_AnyPattern_0= ruleAnyPattern | this_IntegerPattern_1= ruleIntegerPattern | this_ConstantPattern_2= ruleConstantPattern | (otherlv_3= '(' this_Pattern_4= rulePattern otherlv_5= ')' ) | this_IdentifierPattern_6= ruleIdentifierPattern ) + { + // InternalFiacre.g:4501:2: (this_AnyPattern_0= ruleAnyPattern | this_IntegerPattern_1= ruleIntegerPattern | this_ConstantPattern_2= ruleConstantPattern | (otherlv_3= '(' this_Pattern_4= rulePattern otherlv_5= ')' ) | this_IdentifierPattern_6= ruleIdentifierPattern ) + int alt76=5; + switch ( input.LA(1) ) { + case 59: + { + alt76=1; + } + break; + case 63: + case 64: + { + alt76=2; + } + break; + case RULE_INT: + case 109: + case 110: + { + alt76=3; + } + break; + case 16: + { + alt76=4; + } + break; + case RULE_ID: + { + alt76=5; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 76, 0, input); + + throw nvae; + } + + switch (alt76) { + case 1 : + // InternalFiacre.g:4502:3: this_AnyPattern_0= ruleAnyPattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternAccess().getAnyPatternParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_AnyPattern_0=ruleAnyPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AnyPattern_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:4514:3: this_IntegerPattern_1= ruleIntegerPattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternAccess().getIntegerPatternParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_IntegerPattern_1=ruleIntegerPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_IntegerPattern_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:4526:3: this_ConstantPattern_2= ruleConstantPattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternAccess().getConstantPatternParserRuleCall_2()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ConstantPattern_2=ruleConstantPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ConstantPattern_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 4 : + // InternalFiacre.g:4538:3: (otherlv_3= '(' this_Pattern_4= rulePattern otherlv_5= ')' ) + { + // InternalFiacre.g:4538:3: (otherlv_3= '(' this_Pattern_4= rulePattern otherlv_5= ')' ) + // InternalFiacre.g:4539:4: otherlv_3= '(' this_Pattern_4= rulePattern otherlv_5= ')' + { + otherlv_3=(Token)match(input,16,FollowSets000.FOLLOW_56); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getPatternAccess().getLeftParenthesisKeyword_3_0()); + + } + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternAccess().getPatternParserRuleCall_3_1()); + + } + pushFollow(FollowSets000.FOLLOW_62); + this_Pattern_4=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Pattern_4; + afterParserOrEnumRuleCall(); + + } + otherlv_5=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getPatternAccess().getRightParenthesisKeyword_3_2()); + + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:4560:3: this_IdentifierPattern_6= ruleIdentifierPattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternAccess().getIdentifierPatternParserRuleCall_4()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_IdentifierPattern_6=ruleIdentifierPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_IdentifierPattern_6; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePattern" + + + // $ANTLR start "entryRuleAnyPattern" + // InternalFiacre.g:4575:1: entryRuleAnyPattern returns [EObject current=null] : iv_ruleAnyPattern= ruleAnyPattern EOF ; + public final EObject entryRuleAnyPattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAnyPattern = null; + + + try { + // InternalFiacre.g:4575:51: (iv_ruleAnyPattern= ruleAnyPattern EOF ) + // InternalFiacre.g:4576:2: iv_ruleAnyPattern= ruleAnyPattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAnyPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleAnyPattern=ruleAnyPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAnyPattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAnyPattern" + + + // $ANTLR start "ruleAnyPattern" + // InternalFiacre.g:4582:1: ruleAnyPattern returns [EObject current=null] : ( () otherlv_1= 'any' ) ; + public final EObject ruleAnyPattern() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalFiacre.g:4588:2: ( ( () otherlv_1= 'any' ) ) + // InternalFiacre.g:4589:2: ( () otherlv_1= 'any' ) + { + // InternalFiacre.g:4589:2: ( () otherlv_1= 'any' ) + // InternalFiacre.g:4590:3: () otherlv_1= 'any' + { + // InternalFiacre.g:4590:3: () + // InternalFiacre.g:4591:4: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getAnyPatternAccess().getAnyPatternAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,59,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getAnyPatternAccess().getAnyKeyword_1()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAnyPattern" + + + // $ANTLR start "entryRuleConstantPattern" + // InternalFiacre.g:4608:1: entryRuleConstantPattern returns [EObject current=null] : iv_ruleConstantPattern= ruleConstantPattern EOF ; + public final EObject entryRuleConstantPattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleConstantPattern = null; + + + try { + // InternalFiacre.g:4608:56: (iv_ruleConstantPattern= ruleConstantPattern EOF ) + // InternalFiacre.g:4609:2: iv_ruleConstantPattern= ruleConstantPattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getConstantPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleConstantPattern=ruleConstantPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleConstantPattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleConstantPattern" + + + // $ANTLR start "ruleConstantPattern" + // InternalFiacre.g:4615:1: ruleConstantPattern returns [EObject current=null] : ( (lv_value_0_0= ruleLiteralExpression ) ) ; + public final EObject ruleConstantPattern() throws RecognitionException { + EObject current = null; + + EObject lv_value_0_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:4621:2: ( ( (lv_value_0_0= ruleLiteralExpression ) ) ) + // InternalFiacre.g:4622:2: ( (lv_value_0_0= ruleLiteralExpression ) ) + { + // InternalFiacre.g:4622:2: ( (lv_value_0_0= ruleLiteralExpression ) ) + // InternalFiacre.g:4623:3: (lv_value_0_0= ruleLiteralExpression ) + { + // InternalFiacre.g:4623:3: (lv_value_0_0= ruleLiteralExpression ) + // InternalFiacre.g:4624:4: lv_value_0_0= ruleLiteralExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConstantPatternAccess().getValueLiteralExpressionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_value_0_0=ruleLiteralExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConstantPatternRule()); + } + set( + current, + "value", + lv_value_0_0, + "fr.irit.fiacre.xtext.Fiacre.LiteralExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleConstantPattern" + + + // $ANTLR start "entryRuleIntegerPattern" + // InternalFiacre.g:4644:1: entryRuleIntegerPattern returns [EObject current=null] : iv_ruleIntegerPattern= ruleIntegerPattern EOF ; + public final EObject entryRuleIntegerPattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleIntegerPattern = null; + + + try { + // InternalFiacre.g:4644:55: (iv_ruleIntegerPattern= ruleIntegerPattern EOF ) + // InternalFiacre.g:4645:2: iv_ruleIntegerPattern= ruleIntegerPattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getIntegerPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleIntegerPattern=ruleIntegerPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleIntegerPattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleIntegerPattern" + + + // $ANTLR start "ruleIntegerPattern" + // InternalFiacre.g:4651:1: ruleIntegerPattern returns [EObject current=null] : ( (otherlv_0= '+' | ( (lv_negative_1_0= '-' ) ) ) ( (lv_value_2_0= RULE_INT ) ) ) ; + public final EObject ruleIntegerPattern() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_negative_1_0=null; + Token lv_value_2_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:4657:2: ( ( (otherlv_0= '+' | ( (lv_negative_1_0= '-' ) ) ) ( (lv_value_2_0= RULE_INT ) ) ) ) + // InternalFiacre.g:4658:2: ( (otherlv_0= '+' | ( (lv_negative_1_0= '-' ) ) ) ( (lv_value_2_0= RULE_INT ) ) ) + { + // InternalFiacre.g:4658:2: ( (otherlv_0= '+' | ( (lv_negative_1_0= '-' ) ) ) ( (lv_value_2_0= RULE_INT ) ) ) + // InternalFiacre.g:4659:3: (otherlv_0= '+' | ( (lv_negative_1_0= '-' ) ) ) ( (lv_value_2_0= RULE_INT ) ) + { + // InternalFiacre.g:4659:3: (otherlv_0= '+' | ( (lv_negative_1_0= '-' ) ) ) + int alt77=2; + int LA77_0 = input.LA(1); + + if ( (LA77_0==63) ) { + alt77=1; + } + else if ( (LA77_0==64) ) { + alt77=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 77, 0, input); + + throw nvae; + } + switch (alt77) { + case 1 : + // InternalFiacre.g:4660:4: otherlv_0= '+' + { + otherlv_0=(Token)match(input,63,FollowSets000.FOLLOW_63); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getIntegerPatternAccess().getPlusSignKeyword_0_0()); + + } + + } + break; + case 2 : + // InternalFiacre.g:4665:4: ( (lv_negative_1_0= '-' ) ) + { + // InternalFiacre.g:4665:4: ( (lv_negative_1_0= '-' ) ) + // InternalFiacre.g:4666:5: (lv_negative_1_0= '-' ) + { + // InternalFiacre.g:4666:5: (lv_negative_1_0= '-' ) + // InternalFiacre.g:4667:6: lv_negative_1_0= '-' + { + lv_negative_1_0=(Token)match(input,64,FollowSets000.FOLLOW_63); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_negative_1_0, grammarAccess.getIntegerPatternAccess().getNegativeHyphenMinusKeyword_0_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getIntegerPatternRule()); + } + setWithLastConsumed(current, "negative", true, "-"); + + } + + } + + + } + + + } + break; + + } + + // InternalFiacre.g:4680:3: ( (lv_value_2_0= RULE_INT ) ) + // InternalFiacre.g:4681:4: (lv_value_2_0= RULE_INT ) + { + // InternalFiacre.g:4681:4: (lv_value_2_0= RULE_INT ) + // InternalFiacre.g:4682:5: lv_value_2_0= RULE_INT + { + lv_value_2_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_value_2_0, grammarAccess.getIntegerPatternAccess().getValueINTTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getIntegerPatternRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_2_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleIntegerPattern" + + + // $ANTLR start "entryRuleIdentifierPattern" + // InternalFiacre.g:4702:1: entryRuleIdentifierPattern returns [EObject current=null] : iv_ruleIdentifierPattern= ruleIdentifierPattern EOF ; + public final EObject entryRuleIdentifierPattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleIdentifierPattern = null; + + + try { + // InternalFiacre.g:4702:58: (iv_ruleIdentifierPattern= ruleIdentifierPattern EOF ) + // InternalFiacre.g:4703:2: iv_ruleIdentifierPattern= ruleIdentifierPattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getIdentifierPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleIdentifierPattern=ruleIdentifierPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleIdentifierPattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleIdentifierPattern" + + + // $ANTLR start "ruleIdentifierPattern" + // InternalFiacre.g:4709:1: ruleIdentifierPattern returns [EObject current=null] : ( ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) )* )? otherlv_6= ')' ) | ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' ) | (otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) ) )* ) ) ; + public final EObject ruleIdentifierPattern() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + Token otherlv_8=null; + Token otherlv_11=null; + Token otherlv_12=null; + Token otherlv_14=null; + EObject lv_parameters_3_0 = null; + + EObject lv_parameters_5_0 = null; + + EObject lv_index_10_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:4715:2: ( ( ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) )* )? otherlv_6= ')' ) | ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' ) | (otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) ) )* ) ) ) + // InternalFiacre.g:4716:2: ( ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) )* )? otherlv_6= ')' ) | ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' ) | (otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) ) )* ) ) + { + // InternalFiacre.g:4716:2: ( ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) )* )? otherlv_6= ')' ) | ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' ) | (otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) ) )* ) ) + int alt81=2; + int LA81_0 = input.LA(1); + + if ( (LA81_0==RULE_ID) ) { + int LA81_1 = input.LA(2); + + if ( (LA81_1==16) ) { + alt81=1; + } + else if ( (LA81_1==EOF||LA81_1==RULE_ID||LA81_1==13||LA81_1==15||(LA81_1>=17 && LA81_1<=18)||(LA81_1>=22 && LA81_1<=23)||LA81_1==36||(LA81_1>=39 && LA81_1<=41)||(LA81_1>=47 && LA81_1<=48)||(LA81_1>=52 && LA81_1<=55)||(LA81_1>=60 && LA81_1<=62)||LA81_1==65||(LA81_1>=68 && LA81_1<=69)||LA81_1==76||LA81_1==80||LA81_1==112||LA81_1==115) ) { + alt81=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 81, 1, input); + + throw nvae; + } + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 81, 0, input); + + throw nvae; + } + switch (alt81) { + case 1 : + // InternalFiacre.g:4717:3: ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) )* )? otherlv_6= ')' ) + { + // InternalFiacre.g:4717:3: ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) )* )? otherlv_6= ')' ) + // InternalFiacre.g:4718:4: () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) )* )? otherlv_6= ')' + { + // InternalFiacre.g:4718:4: () + // InternalFiacre.g:4719:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getIdentifierPatternAccess().getConstructorPatternAction_0_0(), + current); + + } + + } + + // InternalFiacre.g:4728:4: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:4729:5: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:4729:5: (otherlv_1= RULE_ID ) + // InternalFiacre.g:4730:6: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getIdentifierPatternRule()); + } + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_9); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_0_1_0()); + + } + + } + + + } + + otherlv_2=(Token)match(input,16,FollowSets000.FOLLOW_64); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getIdentifierPatternAccess().getLeftParenthesisKeyword_0_2()); + + } + // InternalFiacre.g:4748:4: ( ( (lv_parameters_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) )* )? + int alt79=2; + int LA79_0 = input.LA(1); + + if ( (LA79_0==RULE_ID||LA79_0==RULE_INT||LA79_0==16||LA79_0==59||(LA79_0>=63 && LA79_0<=64)||(LA79_0>=109 && LA79_0<=110)) ) { + alt79=1; + } + switch (alt79) { + case 1 : + // InternalFiacre.g:4749:5: ( (lv_parameters_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) )* + { + // InternalFiacre.g:4749:5: ( (lv_parameters_3_0= rulePattern ) ) + // InternalFiacre.g:4750:6: (lv_parameters_3_0= rulePattern ) + { + // InternalFiacre.g:4750:6: (lv_parameters_3_0= rulePattern ) + // InternalFiacre.g:4751:7: lv_parameters_3_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_3_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getIdentifierPatternRule()); + } + add( + current, + "parameters", + lv_parameters_3_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:4768:5: (otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) )* + loop78: + do { + int alt78=2; + int LA78_0 = input.LA(1); + + if ( (LA78_0==17) ) { + alt78=1; + } + + + switch (alt78) { + case 1 : + // InternalFiacre.g:4769:6: otherlv_4= ',' ( (lv_parameters_5_0= rulePattern ) ) + { + otherlv_4=(Token)match(input,17,FollowSets000.FOLLOW_56); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getIdentifierPatternAccess().getCommaKeyword_0_3_1_0()); + + } + // InternalFiacre.g:4773:6: ( (lv_parameters_5_0= rulePattern ) ) + // InternalFiacre.g:4774:7: (lv_parameters_5_0= rulePattern ) + { + // InternalFiacre.g:4774:7: (lv_parameters_5_0= rulePattern ) + // InternalFiacre.g:4775:8: lv_parameters_5_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIdentifierPatternAccess().getParametersPatternParserRuleCall_0_3_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_5_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getIdentifierPatternRule()); + } + add( + current, + "parameters", + lv_parameters_5_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop78; + } + } while (true); + + + } + break; + + } + + otherlv_6=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getIdentifierPatternAccess().getRightParenthesisKeyword_0_4()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4800:3: ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' ) | (otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) ) )* ) + { + // InternalFiacre.g:4800:3: ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' ) | (otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) ) )* ) + // InternalFiacre.g:4801:4: ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' ) | (otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) ) )* + { + // InternalFiacre.g:4801:4: ( (otherlv_7= RULE_ID ) ) + // InternalFiacre.g:4802:5: (otherlv_7= RULE_ID ) + { + // InternalFiacre.g:4802:5: (otherlv_7= RULE_ID ) + // InternalFiacre.g:4803:6: otherlv_7= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getIdentifierPatternRule()); + } + + } + otherlv_7=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_65); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseCrossReference_1_0_0()); + + } + + } + + + } + + // InternalFiacre.g:4817:4: ( (otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' ) | (otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) ) )* + loop80: + do { + int alt80=3; + int LA80_0 = input.LA(1); + + if ( (LA80_0==41) ) { + alt80=1; + } + else if ( (LA80_0==65) ) { + alt80=2; + } + + + switch (alt80) { + case 1 : + // InternalFiacre.g:4818:5: (otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' ) + { + // InternalFiacre.g:4818:5: (otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' ) + // InternalFiacre.g:4819:6: otherlv_8= '[' () ( (lv_index_10_0= ruleExpression ) ) otherlv_11= ']' + { + otherlv_8=(Token)match(input,41,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getIdentifierPatternAccess().getLeftSquareBracketKeyword_1_1_0_0()); + + } + // InternalFiacre.g:4823:6: () + // InternalFiacre.g:4824:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getIdentifierPatternAccess().getArrayAccessPatternSourceAction_1_1_0_1(), + current); + + } + + } + + // InternalFiacre.g:4833:6: ( (lv_index_10_0= ruleExpression ) ) + // InternalFiacre.g:4834:7: (lv_index_10_0= ruleExpression ) + { + // InternalFiacre.g:4834:7: (lv_index_10_0= ruleExpression ) + // InternalFiacre.g:4835:8: lv_index_10_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIdentifierPatternAccess().getIndexExpressionParserRuleCall_1_1_0_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_48); + lv_index_10_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getIdentifierPatternRule()); + } + set( + current, + "index", + lv_index_10_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_11=(Token)match(input,42,FollowSets000.FOLLOW_65); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getIdentifierPatternAccess().getRightSquareBracketKeyword_1_1_0_3()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:4858:5: (otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) ) + { + // InternalFiacre.g:4858:5: (otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) ) + // InternalFiacre.g:4859:6: otherlv_12= '.' () ( (otherlv_14= RULE_ID ) ) + { + otherlv_12=(Token)match(input,65,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_12, grammarAccess.getIdentifierPatternAccess().getFullStopKeyword_1_1_1_0()); + + } + // InternalFiacre.g:4863:6: () + // InternalFiacre.g:4864:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getIdentifierPatternAccess().getRecordAccessPatternSourceAction_1_1_1_1(), + current); + + } + + } + + // InternalFiacre.g:4873:6: ( (otherlv_14= RULE_ID ) ) + // InternalFiacre.g:4874:7: (otherlv_14= RULE_ID ) + { + // InternalFiacre.g:4874:7: (otherlv_14= RULE_ID ) + // InternalFiacre.g:4875:8: otherlv_14= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getIdentifierPatternRule()); + } + + } + otherlv_14=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_65); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_14, grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); + + } + + } + + + } + + + } + + + } + break; + + default : + break loop80; + } + } while (true); + + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleIdentifierPattern" + + + // $ANTLR start "entryRuleConditionalStatement" + // InternalFiacre.g:4896:1: entryRuleConditionalStatement returns [EObject current=null] : iv_ruleConditionalStatement= ruleConditionalStatement EOF ; + public final EObject entryRuleConditionalStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleConditionalStatement = null; + + + try { + // InternalFiacre.g:4896:61: (iv_ruleConditionalStatement= ruleConditionalStatement EOF ) + // InternalFiacre.g:4897:2: iv_ruleConditionalStatement= ruleConditionalStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getConditionalStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleConditionalStatement=ruleConditionalStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleConditionalStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleConditionalStatement" + + + // $ANTLR start "ruleConditionalStatement" + // InternalFiacre.g:4903:1: ruleConditionalStatement returns [EObject current=null] : (otherlv_0= 'if' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleStatementSequence ) ) ( (lv_elseif_4_0= ruleExtendedConditionalStatement ) )* (otherlv_5= 'else' ( (lv_else_6_0= ruleStatementSequence ) ) )? otherlv_7= 'end' (otherlv_8= 'if' )? ) ; + public final EObject ruleConditionalStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_8=null; + EObject lv_condition_1_0 = null; + + EObject lv_then_3_0 = null; + + EObject lv_elseif_4_0 = null; + + EObject lv_else_6_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:4909:2: ( (otherlv_0= 'if' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleStatementSequence ) ) ( (lv_elseif_4_0= ruleExtendedConditionalStatement ) )* (otherlv_5= 'else' ( (lv_else_6_0= ruleStatementSequence ) ) )? otherlv_7= 'end' (otherlv_8= 'if' )? ) ) + // InternalFiacre.g:4910:2: (otherlv_0= 'if' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleStatementSequence ) ) ( (lv_elseif_4_0= ruleExtendedConditionalStatement ) )* (otherlv_5= 'else' ( (lv_else_6_0= ruleStatementSequence ) ) )? otherlv_7= 'end' (otherlv_8= 'if' )? ) + { + // InternalFiacre.g:4910:2: (otherlv_0= 'if' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleStatementSequence ) ) ( (lv_elseif_4_0= ruleExtendedConditionalStatement ) )* (otherlv_5= 'else' ( (lv_else_6_0= ruleStatementSequence ) ) )? otherlv_7= 'end' (otherlv_8= 'if' )? ) + // InternalFiacre.g:4911:3: otherlv_0= 'if' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleStatementSequence ) ) ( (lv_elseif_4_0= ruleExtendedConditionalStatement ) )* (otherlv_5= 'else' ( (lv_else_6_0= ruleStatementSequence ) ) )? otherlv_7= 'end' (otherlv_8= 'if' )? + { + otherlv_0=(Token)match(input,66,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getConditionalStatementAccess().getIfKeyword_0()); + + } + // InternalFiacre.g:4915:3: ( (lv_condition_1_0= ruleExpression ) ) + // InternalFiacre.g:4916:4: (lv_condition_1_0= ruleExpression ) + { + // InternalFiacre.g:4916:4: (lv_condition_1_0= ruleExpression ) + // InternalFiacre.g:4917:5: lv_condition_1_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_66); + lv_condition_1_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConditionalStatementRule()); + } + set( + current, + "condition", + lv_condition_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,67,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getConditionalStatementAccess().getThenKeyword_2()); + + } + // InternalFiacre.g:4938:3: ( (lv_then_3_0= ruleStatementSequence ) ) + // InternalFiacre.g:4939:4: (lv_then_3_0= ruleStatementSequence ) + { + // InternalFiacre.g:4939:4: (lv_then_3_0= ruleStatementSequence ) + // InternalFiacre.g:4940:5: lv_then_3_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_67); + lv_then_3_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConditionalStatementRule()); + } + set( + current, + "then", + lv_then_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:4957:3: ( (lv_elseif_4_0= ruleExtendedConditionalStatement ) )* + loop82: + do { + int alt82=2; + int LA82_0 = input.LA(1); + + if ( (LA82_0==69) ) { + alt82=1; + } + + + switch (alt82) { + case 1 : + // InternalFiacre.g:4958:4: (lv_elseif_4_0= ruleExtendedConditionalStatement ) + { + // InternalFiacre.g:4958:4: (lv_elseif_4_0= ruleExtendedConditionalStatement ) + // InternalFiacre.g:4959:5: lv_elseif_4_0= ruleExtendedConditionalStatement + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConditionalStatementAccess().getElseifExtendedConditionalStatementParserRuleCall_4_0()); + + } + pushFollow(FollowSets000.FOLLOW_67); + lv_elseif_4_0=ruleExtendedConditionalStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConditionalStatementRule()); + } + add( + current, + "elseif", + lv_elseif_4_0, + "fr.irit.fiacre.xtext.Fiacre.ExtendedConditionalStatement"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + break loop82; + } + } while (true); + + // InternalFiacre.g:4976:3: (otherlv_5= 'else' ( (lv_else_6_0= ruleStatementSequence ) ) )? + int alt83=2; + int LA83_0 = input.LA(1); + + if ( (LA83_0==68) ) { + alt83=1; + } + switch (alt83) { + case 1 : + // InternalFiacre.g:4977:4: otherlv_5= 'else' ( (lv_else_6_0= ruleStatementSequence ) ) + { + otherlv_5=(Token)match(input,68,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getConditionalStatementAccess().getElseKeyword_5_0()); + + } + // InternalFiacre.g:4981:4: ( (lv_else_6_0= ruleStatementSequence ) ) + // InternalFiacre.g:4982:5: (lv_else_6_0= ruleStatementSequence ) + { + // InternalFiacre.g:4982:5: (lv_else_6_0= ruleStatementSequence ) + // InternalFiacre.g:4983:6: lv_else_6_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConditionalStatementAccess().getElseStatementSequenceParserRuleCall_5_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_54); + lv_else_6_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConditionalStatementRule()); + } + set( + current, + "else", + lv_else_6_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + otherlv_7=(Token)match(input,36,FollowSets000.FOLLOW_68); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getConditionalStatementAccess().getEndKeyword_6()); + + } + // InternalFiacre.g:5005:3: (otherlv_8= 'if' )? + int alt84=2; + int LA84_0 = input.LA(1); + + if ( (LA84_0==66) ) { + alt84=1; + } + switch (alt84) { + case 1 : + // InternalFiacre.g:5006:4: otherlv_8= 'if' + { + otherlv_8=(Token)match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getConditionalStatementAccess().getIfKeyword_7()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleConditionalStatement" + + + // $ANTLR start "entryRuleExtendedConditionalStatement" + // InternalFiacre.g:5015:1: entryRuleExtendedConditionalStatement returns [EObject current=null] : iv_ruleExtendedConditionalStatement= ruleExtendedConditionalStatement EOF ; + public final EObject entryRuleExtendedConditionalStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleExtendedConditionalStatement = null; + + + try { + // InternalFiacre.g:5015:69: (iv_ruleExtendedConditionalStatement= ruleExtendedConditionalStatement EOF ) + // InternalFiacre.g:5016:2: iv_ruleExtendedConditionalStatement= ruleExtendedConditionalStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getExtendedConditionalStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleExtendedConditionalStatement=ruleExtendedConditionalStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleExtendedConditionalStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleExtendedConditionalStatement" + + + // $ANTLR start "ruleExtendedConditionalStatement" + // InternalFiacre.g:5022:1: ruleExtendedConditionalStatement returns [EObject current=null] : (otherlv_0= 'elsif' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleStatementSequence ) ) ) ; + public final EObject ruleExtendedConditionalStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + EObject lv_condition_1_0 = null; + + EObject lv_then_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5028:2: ( (otherlv_0= 'elsif' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleStatementSequence ) ) ) ) + // InternalFiacre.g:5029:2: (otherlv_0= 'elsif' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleStatementSequence ) ) ) + { + // InternalFiacre.g:5029:2: (otherlv_0= 'elsif' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleStatementSequence ) ) ) + // InternalFiacre.g:5030:3: otherlv_0= 'elsif' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleStatementSequence ) ) + { + otherlv_0=(Token)match(input,69,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getExtendedConditionalStatementAccess().getElsifKeyword_0()); + + } + // InternalFiacre.g:5034:3: ( (lv_condition_1_0= ruleExpression ) ) + // InternalFiacre.g:5035:4: (lv_condition_1_0= ruleExpression ) + { + // InternalFiacre.g:5035:4: (lv_condition_1_0= ruleExpression ) + // InternalFiacre.g:5036:5: lv_condition_1_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getExtendedConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_66); + lv_condition_1_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getExtendedConditionalStatementRule()); + } + set( + current, + "condition", + lv_condition_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,67,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getExtendedConditionalStatementAccess().getThenKeyword_2()); + + } + // InternalFiacre.g:5057:3: ( (lv_then_3_0= ruleStatementSequence ) ) + // InternalFiacre.g:5058:4: (lv_then_3_0= ruleStatementSequence ) + { + // InternalFiacre.g:5058:4: (lv_then_3_0= ruleStatementSequence ) + // InternalFiacre.g:5059:5: lv_then_3_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getExtendedConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_then_3_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getExtendedConditionalStatementRule()); + } + set( + current, + "then", + lv_then_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleExtendedConditionalStatement" + + + // $ANTLR start "entryRuleSelectStatement" + // InternalFiacre.g:5080:1: entryRuleSelectStatement returns [EObject current=null] : iv_ruleSelectStatement= ruleSelectStatement EOF ; + public final EObject entryRuleSelectStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleSelectStatement = null; + + + try { + // InternalFiacre.g:5080:56: (iv_ruleSelectStatement= ruleSelectStatement EOF ) + // InternalFiacre.g:5081:2: iv_ruleSelectStatement= ruleSelectStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getSelectStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleSelectStatement=ruleSelectStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleSelectStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleSelectStatement" + + + // $ANTLR start "ruleSelectStatement" + // InternalFiacre.g:5087:1: ruleSelectStatement returns [EObject current=null] : (otherlv_0= 'select' ( (lv_body_1_0= ruleUnlessStatement ) ) (otherlv_2= '|' ( (lv_index_3_0= ruleVariableDeclaration ) ) otherlv_4= 'in' ( (lv_type_5_0= ruleRangeType ) ) )? otherlv_6= 'end' (otherlv_7= 'select' )? ) ; + public final EObject ruleSelectStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + EObject lv_body_1_0 = null; + + EObject lv_index_3_0 = null; + + EObject lv_type_5_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5093:2: ( (otherlv_0= 'select' ( (lv_body_1_0= ruleUnlessStatement ) ) (otherlv_2= '|' ( (lv_index_3_0= ruleVariableDeclaration ) ) otherlv_4= 'in' ( (lv_type_5_0= ruleRangeType ) ) )? otherlv_6= 'end' (otherlv_7= 'select' )? ) ) + // InternalFiacre.g:5094:2: (otherlv_0= 'select' ( (lv_body_1_0= ruleUnlessStatement ) ) (otherlv_2= '|' ( (lv_index_3_0= ruleVariableDeclaration ) ) otherlv_4= 'in' ( (lv_type_5_0= ruleRangeType ) ) )? otherlv_6= 'end' (otherlv_7= 'select' )? ) + { + // InternalFiacre.g:5094:2: (otherlv_0= 'select' ( (lv_body_1_0= ruleUnlessStatement ) ) (otherlv_2= '|' ( (lv_index_3_0= ruleVariableDeclaration ) ) otherlv_4= 'in' ( (lv_type_5_0= ruleRangeType ) ) )? otherlv_6= 'end' (otherlv_7= 'select' )? ) + // InternalFiacre.g:5095:3: otherlv_0= 'select' ( (lv_body_1_0= ruleUnlessStatement ) ) (otherlv_2= '|' ( (lv_index_3_0= ruleVariableDeclaration ) ) otherlv_4= 'in' ( (lv_type_5_0= ruleRangeType ) ) )? otherlv_6= 'end' (otherlv_7= 'select' )? + { + otherlv_0=(Token)match(input,70,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getSelectStatementAccess().getSelectKeyword_0()); + + } + // InternalFiacre.g:5099:3: ( (lv_body_1_0= ruleUnlessStatement ) ) + // InternalFiacre.g:5100:4: (lv_body_1_0= ruleUnlessStatement ) + { + // InternalFiacre.g:5100:4: (lv_body_1_0= ruleUnlessStatement ) + // InternalFiacre.g:5101:5: lv_body_1_0= ruleUnlessStatement + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSelectStatementAccess().getBodyUnlessStatementParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_25); + lv_body_1_0=ruleUnlessStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSelectStatementRule()); + } + set( + current, + "body", + lv_body_1_0, + "fr.irit.fiacre.xtext.Fiacre.UnlessStatement"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:5118:3: (otherlv_2= '|' ( (lv_index_3_0= ruleVariableDeclaration ) ) otherlv_4= 'in' ( (lv_type_5_0= ruleRangeType ) ) )? + int alt85=2; + int LA85_0 = input.LA(1); + + if ( (LA85_0==13) ) { + alt85=1; + } + switch (alt85) { + case 1 : + // InternalFiacre.g:5119:4: otherlv_2= '|' ( (lv_index_3_0= ruleVariableDeclaration ) ) otherlv_4= 'in' ( (lv_type_5_0= ruleRangeType ) ) + { + otherlv_2=(Token)match(input,13,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getSelectStatementAccess().getVerticalLineKeyword_2_0()); + + } + // InternalFiacre.g:5123:4: ( (lv_index_3_0= ruleVariableDeclaration ) ) + // InternalFiacre.g:5124:5: (lv_index_3_0= ruleVariableDeclaration ) + { + // InternalFiacre.g:5124:5: (lv_index_3_0= ruleVariableDeclaration ) + // InternalFiacre.g:5125:6: lv_index_3_0= ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSelectStatementAccess().getIndexVariableDeclarationParserRuleCall_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_69); + lv_index_3_0=ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSelectStatementRule()); + } + set( + current, + "index", + lv_index_3_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_4=(Token)match(input,26,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getSelectStatementAccess().getInKeyword_2_2()); + + } + // InternalFiacre.g:5146:4: ( (lv_type_5_0= ruleRangeType ) ) + // InternalFiacre.g:5147:5: (lv_type_5_0= ruleRangeType ) + { + // InternalFiacre.g:5147:5: (lv_type_5_0= ruleRangeType ) + // InternalFiacre.g:5148:6: lv_type_5_0= ruleRangeType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSelectStatementAccess().getTypeRangeTypeParserRuleCall_2_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_54); + lv_type_5_0=ruleRangeType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSelectStatementRule()); + } + set( + current, + "type", + lv_type_5_0, + "fr.irit.fiacre.xtext.Fiacre.RangeType"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + otherlv_6=(Token)match(input,36,FollowSets000.FOLLOW_70); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getSelectStatementAccess().getEndKeyword_3()); + + } + // InternalFiacre.g:5170:3: (otherlv_7= 'select' )? + int alt86=2; + int LA86_0 = input.LA(1); + + if ( (LA86_0==70) ) { + alt86=1; + } + switch (alt86) { + case 1 : + // InternalFiacre.g:5171:4: otherlv_7= 'select' + { + otherlv_7=(Token)match(input,70,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getSelectStatementAccess().getSelectKeyword_4()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleSelectStatement" + + + // $ANTLR start "entryRuleWhileStatement" + // InternalFiacre.g:5180:1: entryRuleWhileStatement returns [EObject current=null] : iv_ruleWhileStatement= ruleWhileStatement EOF ; + public final EObject entryRuleWhileStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleWhileStatement = null; + + + try { + // InternalFiacre.g:5180:55: (iv_ruleWhileStatement= ruleWhileStatement EOF ) + // InternalFiacre.g:5181:2: iv_ruleWhileStatement= ruleWhileStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getWhileStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleWhileStatement=ruleWhileStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleWhileStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleWhileStatement" + + + // $ANTLR start "ruleWhileStatement" + // InternalFiacre.g:5187:1: ruleWhileStatement returns [EObject current=null] : (otherlv_0= 'while' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'do' ( (lv_body_3_0= ruleStatementSequence ) ) otherlv_4= 'end' (otherlv_5= 'while' )? ) ; + public final EObject ruleWhileStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_5=null; + EObject lv_condition_1_0 = null; + + EObject lv_body_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5193:2: ( (otherlv_0= 'while' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'do' ( (lv_body_3_0= ruleStatementSequence ) ) otherlv_4= 'end' (otherlv_5= 'while' )? ) ) + // InternalFiacre.g:5194:2: (otherlv_0= 'while' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'do' ( (lv_body_3_0= ruleStatementSequence ) ) otherlv_4= 'end' (otherlv_5= 'while' )? ) + { + // InternalFiacre.g:5194:2: (otherlv_0= 'while' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'do' ( (lv_body_3_0= ruleStatementSequence ) ) otherlv_4= 'end' (otherlv_5= 'while' )? ) + // InternalFiacre.g:5195:3: otherlv_0= 'while' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'do' ( (lv_body_3_0= ruleStatementSequence ) ) otherlv_4= 'end' (otherlv_5= 'while' )? + { + otherlv_0=(Token)match(input,71,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getWhileStatementAccess().getWhileKeyword_0()); + + } + // InternalFiacre.g:5199:3: ( (lv_condition_1_0= ruleExpression ) ) + // InternalFiacre.g:5200:4: (lv_condition_1_0= ruleExpression ) + { + // InternalFiacre.g:5200:4: (lv_condition_1_0= ruleExpression ) + // InternalFiacre.g:5201:5: lv_condition_1_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getWhileStatementAccess().getConditionExpressionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_71); + lv_condition_1_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getWhileStatementRule()); + } + set( + current, + "condition", + lv_condition_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,72,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getWhileStatementAccess().getDoKeyword_2()); + + } + // InternalFiacre.g:5222:3: ( (lv_body_3_0= ruleStatementSequence ) ) + // InternalFiacre.g:5223:4: (lv_body_3_0= ruleStatementSequence ) + { + // InternalFiacre.g:5223:4: (lv_body_3_0= ruleStatementSequence ) + // InternalFiacre.g:5224:5: lv_body_3_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getWhileStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_54); + lv_body_3_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getWhileStatementRule()); + } + set( + current, + "body", + lv_body_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_4=(Token)match(input,36,FollowSets000.FOLLOW_72); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getWhileStatementAccess().getEndKeyword_4()); + + } + // InternalFiacre.g:5245:3: (otherlv_5= 'while' )? + int alt87=2; + int LA87_0 = input.LA(1); + + if ( (LA87_0==71) ) { + alt87=1; + } + switch (alt87) { + case 1 : + // InternalFiacre.g:5246:4: otherlv_5= 'while' + { + otherlv_5=(Token)match(input,71,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getWhileStatementAccess().getWhileKeyword_5()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleWhileStatement" + + + // $ANTLR start "entryRuleForeachStatement" + // InternalFiacre.g:5255:1: entryRuleForeachStatement returns [EObject current=null] : iv_ruleForeachStatement= ruleForeachStatement EOF ; + public final EObject entryRuleForeachStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleForeachStatement = null; + + + try { + // InternalFiacre.g:5255:57: (iv_ruleForeachStatement= ruleForeachStatement EOF ) + // InternalFiacre.g:5256:2: iv_ruleForeachStatement= ruleForeachStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getForeachStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleForeachStatement=ruleForeachStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleForeachStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleForeachStatement" + + + // $ANTLR start "ruleForeachStatement" + // InternalFiacre.g:5262:1: ruleForeachStatement returns [EObject current=null] : (otherlv_0= 'foreach' ( (lv_variable_1_0= ruleVariableDeclaration ) ) otherlv_2= 'do' ( (lv_body_3_0= ruleStatementSequence ) ) otherlv_4= 'end' (otherlv_5= 'foreach' )? ) ; + public final EObject ruleForeachStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_5=null; + EObject lv_variable_1_0 = null; + + EObject lv_body_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5268:2: ( (otherlv_0= 'foreach' ( (lv_variable_1_0= ruleVariableDeclaration ) ) otherlv_2= 'do' ( (lv_body_3_0= ruleStatementSequence ) ) otherlv_4= 'end' (otherlv_5= 'foreach' )? ) ) + // InternalFiacre.g:5269:2: (otherlv_0= 'foreach' ( (lv_variable_1_0= ruleVariableDeclaration ) ) otherlv_2= 'do' ( (lv_body_3_0= ruleStatementSequence ) ) otherlv_4= 'end' (otherlv_5= 'foreach' )? ) + { + // InternalFiacre.g:5269:2: (otherlv_0= 'foreach' ( (lv_variable_1_0= ruleVariableDeclaration ) ) otherlv_2= 'do' ( (lv_body_3_0= ruleStatementSequence ) ) otherlv_4= 'end' (otherlv_5= 'foreach' )? ) + // InternalFiacre.g:5270:3: otherlv_0= 'foreach' ( (lv_variable_1_0= ruleVariableDeclaration ) ) otherlv_2= 'do' ( (lv_body_3_0= ruleStatementSequence ) ) otherlv_4= 'end' (otherlv_5= 'foreach' )? + { + otherlv_0=(Token)match(input,73,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getForeachStatementAccess().getForeachKeyword_0()); + + } + // InternalFiacre.g:5274:3: ( (lv_variable_1_0= ruleVariableDeclaration ) ) + // InternalFiacre.g:5275:4: (lv_variable_1_0= ruleVariableDeclaration ) + { + // InternalFiacre.g:5275:4: (lv_variable_1_0= ruleVariableDeclaration ) + // InternalFiacre.g:5276:5: lv_variable_1_0= ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getForeachStatementAccess().getVariableVariableDeclarationParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_71); + lv_variable_1_0=ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getForeachStatementRule()); + } + set( + current, + "variable", + lv_variable_1_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,72,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getForeachStatementAccess().getDoKeyword_2()); + + } + // InternalFiacre.g:5297:3: ( (lv_body_3_0= ruleStatementSequence ) ) + // InternalFiacre.g:5298:4: (lv_body_3_0= ruleStatementSequence ) + { + // InternalFiacre.g:5298:4: (lv_body_3_0= ruleStatementSequence ) + // InternalFiacre.g:5299:5: lv_body_3_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getForeachStatementAccess().getBodyStatementSequenceParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_54); + lv_body_3_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getForeachStatementRule()); + } + set( + current, + "body", + lv_body_3_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_4=(Token)match(input,36,FollowSets000.FOLLOW_73); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getForeachStatementAccess().getEndKeyword_4()); + + } + // InternalFiacre.g:5320:3: (otherlv_5= 'foreach' )? + int alt88=2; + int LA88_0 = input.LA(1); + + if ( (LA88_0==73) ) { + alt88=1; + } + switch (alt88) { + case 1 : + // InternalFiacre.g:5321:4: otherlv_5= 'foreach' + { + otherlv_5=(Token)match(input,73,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getForeachStatementAccess().getForeachKeyword_5()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleForeachStatement" + + + // $ANTLR start "entryRuleToStatement" + // InternalFiacre.g:5330:1: entryRuleToStatement returns [EObject current=null] : iv_ruleToStatement= ruleToStatement EOF ; + public final EObject entryRuleToStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleToStatement = null; + + + try { + // InternalFiacre.g:5330:52: (iv_ruleToStatement= ruleToStatement EOF ) + // InternalFiacre.g:5331:2: iv_ruleToStatement= ruleToStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getToStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleToStatement=ruleToStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleToStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleToStatement" + + + // $ANTLR start "ruleToStatement" + // InternalFiacre.g:5337:1: ruleToStatement returns [EObject current=null] : (otherlv_0= 'to' ( (otherlv_1= RULE_ID ) ) ) ; + public final EObject ruleToStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalFiacre.g:5343:2: ( (otherlv_0= 'to' ( (otherlv_1= RULE_ID ) ) ) ) + // InternalFiacre.g:5344:2: (otherlv_0= 'to' ( (otherlv_1= RULE_ID ) ) ) + { + // InternalFiacre.g:5344:2: (otherlv_0= 'to' ( (otherlv_1= RULE_ID ) ) ) + // InternalFiacre.g:5345:3: otherlv_0= 'to' ( (otherlv_1= RULE_ID ) ) + { + otherlv_0=(Token)match(input,74,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getToStatementAccess().getToKeyword_0()); + + } + // InternalFiacre.g:5349:3: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:5350:4: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:5350:4: (otherlv_1= RULE_ID ) + // InternalFiacre.g:5351:5: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getToStatementRule()); + } + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getToStatementAccess().getStateStateDeclarationCrossReference_1_0()); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleToStatement" + + + // $ANTLR start "entryRuleCaseStatement" + // InternalFiacre.g:5369:1: entryRuleCaseStatement returns [EObject current=null] : iv_ruleCaseStatement= ruleCaseStatement EOF ; + public final EObject entryRuleCaseStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleCaseStatement = null; + + + try { + // InternalFiacre.g:5369:54: (iv_ruleCaseStatement= ruleCaseStatement EOF ) + // InternalFiacre.g:5370:2: iv_ruleCaseStatement= ruleCaseStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getCaseStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleCaseStatement=ruleCaseStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleCaseStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleCaseStatement" + + + // $ANTLR start "ruleCaseStatement" + // InternalFiacre.g:5376:1: ruleCaseStatement returns [EObject current=null] : (otherlv_0= 'case' ( (lv_value_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_pattern_3_0= rulePattern ) ) otherlv_4= '->' ( (lv_body_5_0= ruleStatementSequence ) ) (otherlv_6= '|' ( (lv_pattern_7_0= rulePattern ) ) otherlv_8= '->' ( (lv_body_9_0= ruleStatementSequence ) ) )* otherlv_10= 'end' (otherlv_11= 'case' )? ) ; + public final EObject ruleCaseStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_10=null; + Token otherlv_11=null; + EObject lv_value_1_0 = null; + + EObject lv_pattern_3_0 = null; + + EObject lv_body_5_0 = null; + + EObject lv_pattern_7_0 = null; + + EObject lv_body_9_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5382:2: ( (otherlv_0= 'case' ( (lv_value_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_pattern_3_0= rulePattern ) ) otherlv_4= '->' ( (lv_body_5_0= ruleStatementSequence ) ) (otherlv_6= '|' ( (lv_pattern_7_0= rulePattern ) ) otherlv_8= '->' ( (lv_body_9_0= ruleStatementSequence ) ) )* otherlv_10= 'end' (otherlv_11= 'case' )? ) ) + // InternalFiacre.g:5383:2: (otherlv_0= 'case' ( (lv_value_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_pattern_3_0= rulePattern ) ) otherlv_4= '->' ( (lv_body_5_0= ruleStatementSequence ) ) (otherlv_6= '|' ( (lv_pattern_7_0= rulePattern ) ) otherlv_8= '->' ( (lv_body_9_0= ruleStatementSequence ) ) )* otherlv_10= 'end' (otherlv_11= 'case' )? ) + { + // InternalFiacre.g:5383:2: (otherlv_0= 'case' ( (lv_value_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_pattern_3_0= rulePattern ) ) otherlv_4= '->' ( (lv_body_5_0= ruleStatementSequence ) ) (otherlv_6= '|' ( (lv_pattern_7_0= rulePattern ) ) otherlv_8= '->' ( (lv_body_9_0= ruleStatementSequence ) ) )* otherlv_10= 'end' (otherlv_11= 'case' )? ) + // InternalFiacre.g:5384:3: otherlv_0= 'case' ( (lv_value_1_0= ruleExpression ) ) otherlv_2= 'of' ( (lv_pattern_3_0= rulePattern ) ) otherlv_4= '->' ( (lv_body_5_0= ruleStatementSequence ) ) (otherlv_6= '|' ( (lv_pattern_7_0= rulePattern ) ) otherlv_8= '->' ( (lv_body_9_0= ruleStatementSequence ) ) )* otherlv_10= 'end' (otherlv_11= 'case' )? + { + otherlv_0=(Token)match(input,75,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getCaseStatementAccess().getCaseKeyword_0()); + + } + // InternalFiacre.g:5388:3: ( (lv_value_1_0= ruleExpression ) ) + // InternalFiacre.g:5389:4: (lv_value_1_0= ruleExpression ) + { + // InternalFiacre.g:5389:4: (lv_value_1_0= ruleExpression ) + // InternalFiacre.g:5390:5: lv_value_1_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCaseStatementAccess().getValueExpressionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_20); + lv_value_1_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCaseStatementRule()); + } + set( + current, + "value", + lv_value_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,25,FollowSets000.FOLLOW_56); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getCaseStatementAccess().getOfKeyword_2()); + + } + // InternalFiacre.g:5411:3: ( (lv_pattern_3_0= rulePattern ) ) + // InternalFiacre.g:5412:4: (lv_pattern_3_0= rulePattern ) + { + // InternalFiacre.g:5412:4: (lv_pattern_3_0= rulePattern ) + // InternalFiacre.g:5413:5: lv_pattern_3_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_74); + lv_pattern_3_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCaseStatementRule()); + } + add( + current, + "pattern", + lv_pattern_3_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_4=(Token)match(input,76,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_4()); + + } + // InternalFiacre.g:5434:3: ( (lv_body_5_0= ruleStatementSequence ) ) + // InternalFiacre.g:5435:4: (lv_body_5_0= ruleStatementSequence ) + { + // InternalFiacre.g:5435:4: (lv_body_5_0= ruleStatementSequence ) + // InternalFiacre.g:5436:5: lv_body_5_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_5_0()); + + } + pushFollow(FollowSets000.FOLLOW_25); + lv_body_5_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCaseStatementRule()); + } + add( + current, + "body", + lv_body_5_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:5453:3: (otherlv_6= '|' ( (lv_pattern_7_0= rulePattern ) ) otherlv_8= '->' ( (lv_body_9_0= ruleStatementSequence ) ) )* + loop89: + do { + int alt89=2; + int LA89_0 = input.LA(1); + + if ( (LA89_0==13) ) { + alt89=1; + } + + + switch (alt89) { + case 1 : + // InternalFiacre.g:5454:4: otherlv_6= '|' ( (lv_pattern_7_0= rulePattern ) ) otherlv_8= '->' ( (lv_body_9_0= ruleStatementSequence ) ) + { + otherlv_6=(Token)match(input,13,FollowSets000.FOLLOW_56); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getCaseStatementAccess().getVerticalLineKeyword_6_0()); + + } + // InternalFiacre.g:5458:4: ( (lv_pattern_7_0= rulePattern ) ) + // InternalFiacre.g:5459:5: (lv_pattern_7_0= rulePattern ) + { + // InternalFiacre.g:5459:5: (lv_pattern_7_0= rulePattern ) + // InternalFiacre.g:5460:6: lv_pattern_7_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCaseStatementAccess().getPatternPatternParserRuleCall_6_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_74); + lv_pattern_7_0=rulePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCaseStatementRule()); + } + add( + current, + "pattern", + lv_pattern_7_0, + "fr.irit.fiacre.xtext.Fiacre.Pattern"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_8=(Token)match(input,76,FollowSets000.FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getCaseStatementAccess().getHyphenMinusGreaterThanSignKeyword_6_2()); + + } + // InternalFiacre.g:5481:4: ( (lv_body_9_0= ruleStatementSequence ) ) + // InternalFiacre.g:5482:5: (lv_body_9_0= ruleStatementSequence ) + { + // InternalFiacre.g:5482:5: (lv_body_9_0= ruleStatementSequence ) + // InternalFiacre.g:5483:6: lv_body_9_0= ruleStatementSequence + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCaseStatementAccess().getBodyStatementSequenceParserRuleCall_6_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_25); + lv_body_9_0=ruleStatementSequence(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCaseStatementRule()); + } + add( + current, + "body", + lv_body_9_0, + "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop89; + } + } while (true); + + otherlv_10=(Token)match(input,36,FollowSets000.FOLLOW_75); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getCaseStatementAccess().getEndKeyword_7()); + + } + // InternalFiacre.g:5505:3: (otherlv_11= 'case' )? + int alt90=2; + int LA90_0 = input.LA(1); + + if ( (LA90_0==75) ) { + alt90=1; + } + switch (alt90) { + case 1 : + // InternalFiacre.g:5506:4: otherlv_11= 'case' + { + otherlv_11=(Token)match(input,75,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getCaseStatementAccess().getCaseKeyword_8()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleCaseStatement" + + + // $ANTLR start "entryRuleLoopStatement" + // InternalFiacre.g:5515:1: entryRuleLoopStatement returns [EObject current=null] : iv_ruleLoopStatement= ruleLoopStatement EOF ; + public final EObject entryRuleLoopStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLoopStatement = null; + + + try { + // InternalFiacre.g:5515:54: (iv_ruleLoopStatement= ruleLoopStatement EOF ) + // InternalFiacre.g:5516:2: iv_ruleLoopStatement= ruleLoopStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLoopStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLoopStatement=ruleLoopStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLoopStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLoopStatement" + + + // $ANTLR start "ruleLoopStatement" + // InternalFiacre.g:5522:1: ruleLoopStatement returns [EObject current=null] : ( () otherlv_1= 'loop' ) ; + public final EObject ruleLoopStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalFiacre.g:5528:2: ( ( () otherlv_1= 'loop' ) ) + // InternalFiacre.g:5529:2: ( () otherlv_1= 'loop' ) + { + // InternalFiacre.g:5529:2: ( () otherlv_1= 'loop' ) + // InternalFiacre.g:5530:3: () otherlv_1= 'loop' + { + // InternalFiacre.g:5530:3: () + // InternalFiacre.g:5531:4: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getLoopStatementAccess().getLoopStatementAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,77,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getLoopStatementAccess().getLoopKeyword_1()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLoopStatement" + + + // $ANTLR start "entryRuleOnStatement" + // InternalFiacre.g:5548:1: entryRuleOnStatement returns [EObject current=null] : iv_ruleOnStatement= ruleOnStatement EOF ; + public final EObject entryRuleOnStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleOnStatement = null; + + + try { + // InternalFiacre.g:5548:52: (iv_ruleOnStatement= ruleOnStatement EOF ) + // InternalFiacre.g:5549:2: iv_ruleOnStatement= ruleOnStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getOnStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleOnStatement=ruleOnStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleOnStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleOnStatement" + + + // $ANTLR start "ruleOnStatement" + // InternalFiacre.g:5555:1: ruleOnStatement returns [EObject current=null] : (otherlv_0= 'on' ( (lv_condition_1_0= ruleExpression ) ) ) ; + public final EObject ruleOnStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_condition_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5561:2: ( (otherlv_0= 'on' ( (lv_condition_1_0= ruleExpression ) ) ) ) + // InternalFiacre.g:5562:2: (otherlv_0= 'on' ( (lv_condition_1_0= ruleExpression ) ) ) + { + // InternalFiacre.g:5562:2: (otherlv_0= 'on' ( (lv_condition_1_0= ruleExpression ) ) ) + // InternalFiacre.g:5563:3: otherlv_0= 'on' ( (lv_condition_1_0= ruleExpression ) ) + { + otherlv_0=(Token)match(input,78,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getOnStatementAccess().getOnKeyword_0()); + + } + // InternalFiacre.g:5567:3: ( (lv_condition_1_0= ruleExpression ) ) + // InternalFiacre.g:5568:4: (lv_condition_1_0= ruleExpression ) + { + // InternalFiacre.g:5568:4: (lv_condition_1_0= ruleExpression ) + // InternalFiacre.g:5569:5: lv_condition_1_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getOnStatementAccess().getConditionExpressionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_condition_1_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getOnStatementRule()); + } + set( + current, + "condition", + lv_condition_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleOnStatement" + + + // $ANTLR start "entryRuleWaitStatement" + // InternalFiacre.g:5590:1: entryRuleWaitStatement returns [EObject current=null] : iv_ruleWaitStatement= ruleWaitStatement EOF ; + public final EObject entryRuleWaitStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleWaitStatement = null; + + + try { + // InternalFiacre.g:5590:54: (iv_ruleWaitStatement= ruleWaitStatement EOF ) + // InternalFiacre.g:5591:2: iv_ruleWaitStatement= ruleWaitStatement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getWaitStatementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleWaitStatement=ruleWaitStatement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleWaitStatement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleWaitStatement" + + + // $ANTLR start "ruleWaitStatement" + // InternalFiacre.g:5597:1: ruleWaitStatement returns [EObject current=null] : (otherlv_0= 'wait' ( (lv_left_1_0= ruleLowerBound ) ) otherlv_2= ',' ( (lv_right_3_0= ruleUpperBound ) ) ) ; + public final EObject ruleWaitStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + EObject lv_left_1_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5603:2: ( (otherlv_0= 'wait' ( (lv_left_1_0= ruleLowerBound ) ) otherlv_2= ',' ( (lv_right_3_0= ruleUpperBound ) ) ) ) + // InternalFiacre.g:5604:2: (otherlv_0= 'wait' ( (lv_left_1_0= ruleLowerBound ) ) otherlv_2= ',' ( (lv_right_3_0= ruleUpperBound ) ) ) + { + // InternalFiacre.g:5604:2: (otherlv_0= 'wait' ( (lv_left_1_0= ruleLowerBound ) ) otherlv_2= ',' ( (lv_right_3_0= ruleUpperBound ) ) ) + // InternalFiacre.g:5605:3: otherlv_0= 'wait' ( (lv_left_1_0= ruleLowerBound ) ) otherlv_2= ',' ( (lv_right_3_0= ruleUpperBound ) ) + { + otherlv_0=(Token)match(input,79,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getWaitStatementAccess().getWaitKeyword_0()); + + } + // InternalFiacre.g:5609:3: ( (lv_left_1_0= ruleLowerBound ) ) + // InternalFiacre.g:5610:4: (lv_left_1_0= ruleLowerBound ) + { + // InternalFiacre.g:5610:4: (lv_left_1_0= ruleLowerBound ) + // InternalFiacre.g:5611:5: lv_left_1_0= ruleLowerBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getWaitStatementAccess().getLeftLowerBoundParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_left_1_0=ruleLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getWaitStatementRule()); + } + set( + current, + "left", + lv_left_1_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,17,FollowSets000.FOLLOW_44); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getWaitStatementAccess().getCommaKeyword_2()); + + } + // InternalFiacre.g:5632:3: ( (lv_right_3_0= ruleUpperBound ) ) + // InternalFiacre.g:5633:4: (lv_right_3_0= ruleUpperBound ) + { + // InternalFiacre.g:5633:4: (lv_right_3_0= ruleUpperBound ) + // InternalFiacre.g:5634:5: lv_right_3_0= ruleUpperBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getWaitStatementAccess().getRightUpperBoundParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_3_0=ruleUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getWaitStatementRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleWaitStatement" + + + // $ANTLR start "entryRuleComposition" + // InternalFiacre.g:5655:1: entryRuleComposition returns [EObject current=null] : iv_ruleComposition= ruleComposition EOF ; + public final EObject entryRuleComposition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleComposition = null; + + + try { + // InternalFiacre.g:5655:52: (iv_ruleComposition= ruleComposition EOF ) + // InternalFiacre.g:5656:2: iv_ruleComposition= ruleComposition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getCompositionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleComposition=ruleComposition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleComposition; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleComposition" + + + // $ANTLR start "ruleComposition" + // InternalFiacre.g:5662:1: ruleComposition returns [EObject current=null] : (otherlv_0= 'par' ( ( (lv_global_1_0= rulePortSet ) ) otherlv_2= 'in' )? ( (lv_blocks_3_0= ruleBlock ) ) (otherlv_4= '||' ( (lv_blocks_5_0= ruleBlock ) ) )* otherlv_6= 'end' (otherlv_7= 'par' )? ) ; + public final EObject ruleComposition() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + EObject lv_global_1_0 = null; + + EObject lv_blocks_3_0 = null; + + EObject lv_blocks_5_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5668:2: ( (otherlv_0= 'par' ( ( (lv_global_1_0= rulePortSet ) ) otherlv_2= 'in' )? ( (lv_blocks_3_0= ruleBlock ) ) (otherlv_4= '||' ( (lv_blocks_5_0= ruleBlock ) ) )* otherlv_6= 'end' (otherlv_7= 'par' )? ) ) + // InternalFiacre.g:5669:2: (otherlv_0= 'par' ( ( (lv_global_1_0= rulePortSet ) ) otherlv_2= 'in' )? ( (lv_blocks_3_0= ruleBlock ) ) (otherlv_4= '||' ( (lv_blocks_5_0= ruleBlock ) ) )* otherlv_6= 'end' (otherlv_7= 'par' )? ) + { + // InternalFiacre.g:5669:2: (otherlv_0= 'par' ( ( (lv_global_1_0= rulePortSet ) ) otherlv_2= 'in' )? ( (lv_blocks_3_0= ruleBlock ) ) (otherlv_4= '||' ( (lv_blocks_5_0= ruleBlock ) ) )* otherlv_6= 'end' (otherlv_7= 'par' )? ) + // InternalFiacre.g:5670:3: otherlv_0= 'par' ( ( (lv_global_1_0= rulePortSet ) ) otherlv_2= 'in' )? ( (lv_blocks_3_0= ruleBlock ) ) (otherlv_4= '||' ( (lv_blocks_5_0= ruleBlock ) ) )* otherlv_6= 'end' (otherlv_7= 'par' )? + { + otherlv_0=(Token)match(input,80,FollowSets000.FOLLOW_76); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getCompositionAccess().getParKeyword_0()); + + } + // InternalFiacre.g:5674:3: ( ( (lv_global_1_0= rulePortSet ) ) otherlv_2= 'in' )? + int alt91=2; + alt91 = dfa91.predict(input); + switch (alt91) { + case 1 : + // InternalFiacre.g:5675:4: ( (lv_global_1_0= rulePortSet ) ) otherlv_2= 'in' + { + // InternalFiacre.g:5675:4: ( (lv_global_1_0= rulePortSet ) ) + // InternalFiacre.g:5676:5: (lv_global_1_0= rulePortSet ) + { + // InternalFiacre.g:5676:5: (lv_global_1_0= rulePortSet ) + // InternalFiacre.g:5677:6: lv_global_1_0= rulePortSet + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCompositionAccess().getGlobalPortSetParserRuleCall_1_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_69); + lv_global_1_0=rulePortSet(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositionRule()); + } + set( + current, + "global", + lv_global_1_0, + "fr.irit.fiacre.xtext.Fiacre.PortSet"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,26,FollowSets000.FOLLOW_76); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getCompositionAccess().getInKeyword_1_1()); + + } + + } + break; + + } + + // InternalFiacre.g:5699:3: ( (lv_blocks_3_0= ruleBlock ) ) + // InternalFiacre.g:5700:4: (lv_blocks_3_0= ruleBlock ) + { + // InternalFiacre.g:5700:4: (lv_blocks_3_0= ruleBlock ) + // InternalFiacre.g:5701:5: lv_blocks_3_0= ruleBlock + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_77); + lv_blocks_3_0=ruleBlock(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositionRule()); + } + add( + current, + "blocks", + lv_blocks_3_0, + "fr.irit.fiacre.xtext.Fiacre.Block"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:5718:3: (otherlv_4= '||' ( (lv_blocks_5_0= ruleBlock ) ) )* + loop92: + do { + int alt92=2; + int LA92_0 = input.LA(1); + + if ( (LA92_0==81) ) { + alt92=1; + } + + + switch (alt92) { + case 1 : + // InternalFiacre.g:5719:4: otherlv_4= '||' ( (lv_blocks_5_0= ruleBlock ) ) + { + otherlv_4=(Token)match(input,81,FollowSets000.FOLLOW_76); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getCompositionAccess().getVerticalLineVerticalLineKeyword_3_0()); + + } + // InternalFiacre.g:5723:4: ( (lv_blocks_5_0= ruleBlock ) ) + // InternalFiacre.g:5724:5: (lv_blocks_5_0= ruleBlock ) + { + // InternalFiacre.g:5724:5: (lv_blocks_5_0= ruleBlock ) + // InternalFiacre.g:5725:6: lv_blocks_5_0= ruleBlock + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCompositionAccess().getBlocksBlockParserRuleCall_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_77); + lv_blocks_5_0=ruleBlock(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositionRule()); + } + add( + current, + "blocks", + lv_blocks_5_0, + "fr.irit.fiacre.xtext.Fiacre.Block"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop92; + } + } while (true); + + otherlv_6=(Token)match(input,36,FollowSets000.FOLLOW_78); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getCompositionAccess().getEndKeyword_4()); + + } + // InternalFiacre.g:5747:3: (otherlv_7= 'par' )? + int alt93=2; + int LA93_0 = input.LA(1); + + if ( (LA93_0==80) ) { + alt93=1; + } + switch (alt93) { + case 1 : + // InternalFiacre.g:5748:4: otherlv_7= 'par' + { + otherlv_7=(Token)match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getCompositionAccess().getParKeyword_5()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleComposition" + + + // $ANTLR start "entryRuleBlock" + // InternalFiacre.g:5757:1: entryRuleBlock returns [EObject current=null] : iv_ruleBlock= ruleBlock EOF ; + public final EObject entryRuleBlock() throws RecognitionException { + EObject current = null; + + EObject iv_ruleBlock = null; + + + try { + // InternalFiacre.g:5757:46: (iv_ruleBlock= ruleBlock EOF ) + // InternalFiacre.g:5758:2: iv_ruleBlock= ruleBlock EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getBlockRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleBlock=ruleBlock(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleBlock; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleBlock" + + + // $ANTLR start "ruleBlock" + // InternalFiacre.g:5764:1: ruleBlock returns [EObject current=null] : (this_CompositeBlock_0= ruleCompositeBlock | this_InstanceDeclaration_1= ruleInstanceDeclaration ) ; + public final EObject ruleBlock() throws RecognitionException { + EObject current = null; + + EObject this_CompositeBlock_0 = null; + + EObject this_InstanceDeclaration_1 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5770:2: ( (this_CompositeBlock_0= ruleCompositeBlock | this_InstanceDeclaration_1= ruleInstanceDeclaration ) ) + // InternalFiacre.g:5771:2: (this_CompositeBlock_0= ruleCompositeBlock | this_InstanceDeclaration_1= ruleInstanceDeclaration ) + { + // InternalFiacre.g:5771:2: (this_CompositeBlock_0= ruleCompositeBlock | this_InstanceDeclaration_1= ruleInstanceDeclaration ) + int alt94=2; + alt94 = dfa94.predict(input); + switch (alt94) { + case 1 : + // InternalFiacre.g:5772:3: this_CompositeBlock_0= ruleCompositeBlock + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getBlockAccess().getCompositeBlockParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_CompositeBlock_0=ruleCompositeBlock(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_CompositeBlock_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:5784:3: this_InstanceDeclaration_1= ruleInstanceDeclaration + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getBlockAccess().getInstanceDeclarationParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_InstanceDeclaration_1=ruleInstanceDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_InstanceDeclaration_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleBlock" + + + // $ANTLR start "entryRuleCompositeBlock" + // InternalFiacre.g:5799:1: entryRuleCompositeBlock returns [EObject current=null] : iv_ruleCompositeBlock= ruleCompositeBlock EOF ; + public final EObject entryRuleCompositeBlock() throws RecognitionException { + EObject current = null; + + EObject iv_ruleCompositeBlock = null; + + + try { + // InternalFiacre.g:5799:55: (iv_ruleCompositeBlock= ruleCompositeBlock EOF ) + // InternalFiacre.g:5800:2: iv_ruleCompositeBlock= ruleCompositeBlock EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getCompositeBlockRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleCompositeBlock=ruleCompositeBlock(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleCompositeBlock; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleCompositeBlock" + + + // $ANTLR start "ruleCompositeBlock" + // InternalFiacre.g:5806:1: ruleCompositeBlock returns [EObject current=null] : ( ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? ( (lv_composition_3_0= ruleComposition ) ) ) ; + public final EObject ruleCompositeBlock() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + EObject lv_local_0_0 = null; + + EObject lv_composition_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5812:2: ( ( ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? ( (lv_composition_3_0= ruleComposition ) ) ) ) + // InternalFiacre.g:5813:2: ( ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? ( (lv_composition_3_0= ruleComposition ) ) ) + { + // InternalFiacre.g:5813:2: ( ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? ( (lv_composition_3_0= ruleComposition ) ) ) + // InternalFiacre.g:5814:3: ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? ( (lv_composition_3_0= ruleComposition ) ) + { + // InternalFiacre.g:5814:3: ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? + int alt95=3; + int LA95_0 = input.LA(1); + + if ( (LA95_0==RULE_ID||LA95_0==RULE_INT||LA95_0==16||LA95_0==41||LA95_0==51||(LA95_0>=63 && LA95_0<=64)||(LA95_0>=82 && LA95_0<=84)||(LA95_0>=95 && LA95_0<=101)||LA95_0==103||LA95_0==105||(LA95_0>=107 && LA95_0<=110)) ) { + alt95=1; + } + else if ( (LA95_0==76) ) { + alt95=2; + } + switch (alt95) { + case 1 : + // InternalFiacre.g:5815:4: ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) + { + // InternalFiacre.g:5815:4: ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) + // InternalFiacre.g:5816:5: ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' + { + // InternalFiacre.g:5816:5: ( (lv_local_0_0= rulePortSet ) ) + // InternalFiacre.g:5817:6: (lv_local_0_0= rulePortSet ) + { + // InternalFiacre.g:5817:6: (lv_local_0_0= rulePortSet ) + // InternalFiacre.g:5818:7: lv_local_0_0= rulePortSet + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCompositeBlockAccess().getLocalPortSetParserRuleCall_0_0_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_74); + lv_local_0_0=rulePortSet(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeBlockRule()); + } + set( + current, + "local", + lv_local_0_0, + "fr.irit.fiacre.xtext.Fiacre.PortSet"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_1=(Token)match(input,76,FollowSets000.FOLLOW_39); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5841:4: otherlv_2= '->' + { + otherlv_2=(Token)match(input,76,FollowSets000.FOLLOW_39); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); + + } + + } + break; + + } + + // InternalFiacre.g:5846:3: ( (lv_composition_3_0= ruleComposition ) ) + // InternalFiacre.g:5847:4: (lv_composition_3_0= ruleComposition ) + { + // InternalFiacre.g:5847:4: (lv_composition_3_0= ruleComposition ) + // InternalFiacre.g:5848:5: lv_composition_3_0= ruleComposition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCompositeBlockAccess().getCompositionCompositionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_composition_3_0=ruleComposition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeBlockRule()); + } + set( + current, + "composition", + lv_composition_3_0, + "fr.irit.fiacre.xtext.Fiacre.Composition"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleCompositeBlock" + + + // $ANTLR start "entryRuleInstanceDeclaration" + // InternalFiacre.g:5869:1: entryRuleInstanceDeclaration returns [EObject current=null] : iv_ruleInstanceDeclaration= ruleInstanceDeclaration EOF ; + public final EObject entryRuleInstanceDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleInstanceDeclaration = null; + + + try { + // InternalFiacre.g:5869:60: (iv_ruleInstanceDeclaration= ruleInstanceDeclaration EOF ) + // InternalFiacre.g:5870:2: iv_ruleInstanceDeclaration= ruleInstanceDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getInstanceDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleInstanceDeclaration=ruleInstanceDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleInstanceDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleInstanceDeclaration" + + + // $ANTLR start "ruleInstanceDeclaration" + // InternalFiacre.g:5876:1: ruleInstanceDeclaration returns [EObject current=null] : ( ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? ( (lv_instance_3_0= ruleComponentInstance ) ) ) ; + public final EObject ruleInstanceDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + EObject lv_local_0_0 = null; + + EObject lv_instance_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5882:2: ( ( ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? ( (lv_instance_3_0= ruleComponentInstance ) ) ) ) + // InternalFiacre.g:5883:2: ( ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? ( (lv_instance_3_0= ruleComponentInstance ) ) ) + { + // InternalFiacre.g:5883:2: ( ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? ( (lv_instance_3_0= ruleComponentInstance ) ) ) + // InternalFiacre.g:5884:3: ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? ( (lv_instance_3_0= ruleComponentInstance ) ) + { + // InternalFiacre.g:5884:3: ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )? + int alt96=3; + alt96 = dfa96.predict(input); + switch (alt96) { + case 1 : + // InternalFiacre.g:5885:4: ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) + { + // InternalFiacre.g:5885:4: ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) + // InternalFiacre.g:5886:5: ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' + { + // InternalFiacre.g:5886:5: ( (lv_local_0_0= rulePortSet ) ) + // InternalFiacre.g:5887:6: (lv_local_0_0= rulePortSet ) + { + // InternalFiacre.g:5887:6: (lv_local_0_0= rulePortSet ) + // InternalFiacre.g:5888:7: lv_local_0_0= rulePortSet + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getInstanceDeclarationAccess().getLocalPortSetParserRuleCall_0_0_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_74); + lv_local_0_0=rulePortSet(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getInstanceDeclarationRule()); + } + set( + current, + "local", + lv_local_0_0, + "fr.irit.fiacre.xtext.Fiacre.PortSet"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_1=(Token)match(input,76,FollowSets000.FOLLOW_76); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:5911:4: otherlv_2= '->' + { + otherlv_2=(Token)match(input,76,FollowSets000.FOLLOW_76); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); + + } + + } + break; + + } + + // InternalFiacre.g:5916:3: ( (lv_instance_3_0= ruleComponentInstance ) ) + // InternalFiacre.g:5917:4: (lv_instance_3_0= ruleComponentInstance ) + { + // InternalFiacre.g:5917:4: (lv_instance_3_0= ruleComponentInstance ) + // InternalFiacre.g:5918:5: lv_instance_3_0= ruleComponentInstance + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getInstanceDeclarationAccess().getInstanceComponentInstanceParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_instance_3_0=ruleComponentInstance(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getInstanceDeclarationRule()); + } + set( + current, + "instance", + lv_instance_3_0, + "fr.irit.fiacre.xtext.Fiacre.ComponentInstance"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleInstanceDeclaration" + + + // $ANTLR start "entryRulePortSet" + // InternalFiacre.g:5939:1: entryRulePortSet returns [EObject current=null] : iv_rulePortSet= rulePortSet EOF ; + public final EObject entryRulePortSet() throws RecognitionException { + EObject current = null; + + EObject iv_rulePortSet = null; + + + try { + // InternalFiacre.g:5939:48: (iv_rulePortSet= rulePortSet EOF ) + // InternalFiacre.g:5940:2: iv_rulePortSet= rulePortSet EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPortSetRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePortSet=rulePortSet(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePortSet; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePortSet" + + + // $ANTLR start "rulePortSet" + // InternalFiacre.g:5946:1: rulePortSet returns [EObject current=null] : ( ( (lv_allPorts_0_0= '*' ) ) | ( ( (lv_ports_1_0= ruleExpression ) ) (otherlv_2= ',' ( (lv_ports_3_0= ruleExpression ) ) )* ) ) ; + public final EObject rulePortSet() throws RecognitionException { + EObject current = null; + + Token lv_allPorts_0_0=null; + Token otherlv_2=null; + EObject lv_ports_1_0 = null; + + EObject lv_ports_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:5952:2: ( ( ( (lv_allPorts_0_0= '*' ) ) | ( ( (lv_ports_1_0= ruleExpression ) ) (otherlv_2= ',' ( (lv_ports_3_0= ruleExpression ) ) )* ) ) ) + // InternalFiacre.g:5953:2: ( ( (lv_allPorts_0_0= '*' ) ) | ( ( (lv_ports_1_0= ruleExpression ) ) (otherlv_2= ',' ( (lv_ports_3_0= ruleExpression ) ) )* ) ) + { + // InternalFiacre.g:5953:2: ( ( (lv_allPorts_0_0= '*' ) ) | ( ( (lv_ports_1_0= ruleExpression ) ) (otherlv_2= ',' ( (lv_ports_3_0= ruleExpression ) ) )* ) ) + int alt98=2; + int LA98_0 = input.LA(1); + + if ( (LA98_0==82) ) { + alt98=1; + } + else if ( (LA98_0==RULE_ID||LA98_0==RULE_INT||LA98_0==16||LA98_0==41||LA98_0==51||(LA98_0>=63 && LA98_0<=64)||(LA98_0>=83 && LA98_0<=84)||(LA98_0>=95 && LA98_0<=101)||LA98_0==103||LA98_0==105||(LA98_0>=107 && LA98_0<=110)) ) { + alt98=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 98, 0, input); + + throw nvae; + } + switch (alt98) { + case 1 : + // InternalFiacre.g:5954:3: ( (lv_allPorts_0_0= '*' ) ) + { + // InternalFiacre.g:5954:3: ( (lv_allPorts_0_0= '*' ) ) + // InternalFiacre.g:5955:4: (lv_allPorts_0_0= '*' ) + { + // InternalFiacre.g:5955:4: (lv_allPorts_0_0= '*' ) + // InternalFiacre.g:5956:5: lv_allPorts_0_0= '*' + { + lv_allPorts_0_0=(Token)match(input,82,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_allPorts_0_0, grammarAccess.getPortSetAccess().getAllPortsAsteriskKeyword_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getPortSetRule()); + } + setWithLastConsumed(current, "allPorts", true, "*"); + + } + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:5969:3: ( ( (lv_ports_1_0= ruleExpression ) ) (otherlv_2= ',' ( (lv_ports_3_0= ruleExpression ) ) )* ) + { + // InternalFiacre.g:5969:3: ( ( (lv_ports_1_0= ruleExpression ) ) (otherlv_2= ',' ( (lv_ports_3_0= ruleExpression ) ) )* ) + // InternalFiacre.g:5970:4: ( (lv_ports_1_0= ruleExpression ) ) (otherlv_2= ',' ( (lv_ports_3_0= ruleExpression ) ) )* + { + // InternalFiacre.g:5970:4: ( (lv_ports_1_0= ruleExpression ) ) + // InternalFiacre.g:5971:5: (lv_ports_1_0= ruleExpression ) + { + // InternalFiacre.g:5971:5: (lv_ports_1_0= ruleExpression ) + // InternalFiacre.g:5972:6: lv_ports_1_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_ports_1_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPortSetRule()); + } + add( + current, + "ports", + lv_ports_1_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:5989:4: (otherlv_2= ',' ( (lv_ports_3_0= ruleExpression ) ) )* + loop97: + do { + int alt97=2; + int LA97_0 = input.LA(1); + + if ( (LA97_0==17) ) { + alt97=1; + } + + + switch (alt97) { + case 1 : + // InternalFiacre.g:5990:5: otherlv_2= ',' ( (lv_ports_3_0= ruleExpression ) ) + { + otherlv_2=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getPortSetAccess().getCommaKeyword_1_1_0()); + + } + // InternalFiacre.g:5994:5: ( (lv_ports_3_0= ruleExpression ) ) + // InternalFiacre.g:5995:6: (lv_ports_3_0= ruleExpression ) + { + // InternalFiacre.g:5995:6: (lv_ports_3_0= ruleExpression ) + // InternalFiacre.g:5996:7: lv_ports_3_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPortSetAccess().getPortsExpressionParserRuleCall_1_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_ports_3_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPortSetRule()); + } + add( + current, + "ports", + lv_ports_3_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop97; + } + } while (true); + + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePortSet" + + + // $ANTLR start "entryRuleComponentInstance" + // InternalFiacre.g:6019:1: entryRuleComponentInstance returns [EObject current=null] : iv_ruleComponentInstance= ruleComponentInstance EOF ; + public final EObject entryRuleComponentInstance() throws RecognitionException { + EObject current = null; + + EObject iv_ruleComponentInstance = null; + + + try { + // InternalFiacre.g:6019:58: (iv_ruleComponentInstance= ruleComponentInstance EOF ) + // InternalFiacre.g:6020:2: iv_ruleComponentInstance= ruleComponentInstance EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getComponentInstanceRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleComponentInstance=ruleComponentInstance(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleComponentInstance; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleComponentInstance" + + + // $ANTLR start "ruleComponentInstance" + // InternalFiacre.g:6026:1: ruleComponentInstance returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= '[' ( (lv_ports_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_ports_4_0= ruleExpression ) ) )* otherlv_5= ']' )? (otherlv_6= '(' ( (lv_parameters_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_parameters_9_0= ruleExpression ) ) )* otherlv_10= ')' )? ) ; + public final EObject ruleComponentInstance() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_10=null; + EObject lv_ports_2_0 = null; + + EObject lv_ports_4_0 = null; + + EObject lv_parameters_7_0 = null; + + EObject lv_parameters_9_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6032:2: ( ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= '[' ( (lv_ports_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_ports_4_0= ruleExpression ) ) )* otherlv_5= ']' )? (otherlv_6= '(' ( (lv_parameters_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_parameters_9_0= ruleExpression ) ) )* otherlv_10= ')' )? ) ) + // InternalFiacre.g:6033:2: ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= '[' ( (lv_ports_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_ports_4_0= ruleExpression ) ) )* otherlv_5= ']' )? (otherlv_6= '(' ( (lv_parameters_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_parameters_9_0= ruleExpression ) ) )* otherlv_10= ')' )? ) + { + // InternalFiacre.g:6033:2: ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= '[' ( (lv_ports_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_ports_4_0= ruleExpression ) ) )* otherlv_5= ']' )? (otherlv_6= '(' ( (lv_parameters_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_parameters_9_0= ruleExpression ) ) )* otherlv_10= ')' )? ) + // InternalFiacre.g:6034:3: ( (otherlv_0= RULE_ID ) ) (otherlv_1= '[' ( (lv_ports_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_ports_4_0= ruleExpression ) ) )* otherlv_5= ']' )? (otherlv_6= '(' ( (lv_parameters_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_parameters_9_0= ruleExpression ) ) )* otherlv_10= ')' )? + { + // InternalFiacre.g:6034:3: ( (otherlv_0= RULE_ID ) ) + // InternalFiacre.g:6035:4: (otherlv_0= RULE_ID ) + { + // InternalFiacre.g:6035:4: (otherlv_0= RULE_ID ) + // InternalFiacre.g:6036:5: otherlv_0= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getComponentInstanceRule()); + } + + } + otherlv_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_79); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getComponentInstanceAccess().getComponentParameterizedDeclarationCrossReference_0_0()); + + } + + } + + + } + + // InternalFiacre.g:6050:3: (otherlv_1= '[' ( (lv_ports_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_ports_4_0= ruleExpression ) ) )* otherlv_5= ']' )? + int alt100=2; + int LA100_0 = input.LA(1); + + if ( (LA100_0==41) ) { + alt100=1; + } + switch (alt100) { + case 1 : + // InternalFiacre.g:6051:4: otherlv_1= '[' ( (lv_ports_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_ports_4_0= ruleExpression ) ) )* otherlv_5= ']' + { + otherlv_1=(Token)match(input,41,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getComponentInstanceAccess().getLeftSquareBracketKeyword_1_0()); + + } + // InternalFiacre.g:6055:4: ( (lv_ports_2_0= ruleExpression ) ) + // InternalFiacre.g:6056:5: (lv_ports_2_0= ruleExpression ) + { + // InternalFiacre.g:6056:5: (lv_ports_2_0= ruleExpression ) + // InternalFiacre.g:6057:6: lv_ports_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_32); + lv_ports_2_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentInstanceRule()); + } + add( + current, + "ports", + lv_ports_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:6074:4: (otherlv_3= ',' ( (lv_ports_4_0= ruleExpression ) ) )* + loop99: + do { + int alt99=2; + int LA99_0 = input.LA(1); + + if ( (LA99_0==17) ) { + alt99=1; + } + + + switch (alt99) { + case 1 : + // InternalFiacre.g:6075:5: otherlv_3= ',' ( (lv_ports_4_0= ruleExpression ) ) + { + otherlv_3=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getComponentInstanceAccess().getCommaKeyword_1_2_0()); + + } + // InternalFiacre.g:6079:5: ( (lv_ports_4_0= ruleExpression ) ) + // InternalFiacre.g:6080:6: (lv_ports_4_0= ruleExpression ) + { + // InternalFiacre.g:6080:6: (lv_ports_4_0= ruleExpression ) + // InternalFiacre.g:6081:7: lv_ports_4_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentInstanceAccess().getPortsExpressionParserRuleCall_1_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_32); + lv_ports_4_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentInstanceRule()); + } + add( + current, + "ports", + lv_ports_4_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop99; + } + } while (true); + + otherlv_5=(Token)match(input,42,FollowSets000.FOLLOW_80); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getComponentInstanceAccess().getRightSquareBracketKeyword_1_3()); + + } + + } + break; + + } + + // InternalFiacre.g:6104:3: (otherlv_6= '(' ( (lv_parameters_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_parameters_9_0= ruleExpression ) ) )* otherlv_10= ')' )? + int alt102=2; + int LA102_0 = input.LA(1); + + if ( (LA102_0==16) ) { + alt102=1; + } + switch (alt102) { + case 1 : + // InternalFiacre.g:6105:4: otherlv_6= '(' ( (lv_parameters_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_parameters_9_0= ruleExpression ) ) )* otherlv_10= ')' + { + otherlv_6=(Token)match(input,16,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getComponentInstanceAccess().getLeftParenthesisKeyword_2_0()); + + } + // InternalFiacre.g:6109:4: ( (lv_parameters_7_0= ruleExpression ) ) + // InternalFiacre.g:6110:5: (lv_parameters_7_0= ruleExpression ) + { + // InternalFiacre.g:6110:5: (lv_parameters_7_0= ruleExpression ) + // InternalFiacre.g:6111:6: lv_parameters_7_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_7_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentInstanceRule()); + } + add( + current, + "parameters", + lv_parameters_7_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:6128:4: (otherlv_8= ',' ( (lv_parameters_9_0= ruleExpression ) ) )* + loop101: + do { + int alt101=2; + int LA101_0 = input.LA(1); + + if ( (LA101_0==17) ) { + alt101=1; + } + + + switch (alt101) { + case 1 : + // InternalFiacre.g:6129:5: otherlv_8= ',' ( (lv_parameters_9_0= ruleExpression ) ) + { + otherlv_8=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getComponentInstanceAccess().getCommaKeyword_2_2_0()); + + } + // InternalFiacre.g:6133:5: ( (lv_parameters_9_0= ruleExpression ) ) + // InternalFiacre.g:6134:6: (lv_parameters_9_0= ruleExpression ) + { + // InternalFiacre.g:6134:6: (lv_parameters_9_0= ruleExpression ) + // InternalFiacre.g:6135:7: lv_parameters_9_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComponentInstanceAccess().getParametersExpressionParserRuleCall_2_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_9_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComponentInstanceRule()); + } + add( + current, + "parameters", + lv_parameters_9_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop101; + } + } while (true); + + otherlv_10=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getComponentInstanceAccess().getRightParenthesisKeyword_2_3()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleComponentInstance" + + + // $ANTLR start "entryRuleExpression" + // InternalFiacre.g:6162:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ; + public final EObject entryRuleExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleExpression = null; + + + try { + // InternalFiacre.g:6162:51: (iv_ruleExpression= ruleExpression EOF ) + // InternalFiacre.g:6163:2: iv_ruleExpression= ruleExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleExpression=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleExpression" + + + // $ANTLR start "ruleExpression" + // InternalFiacre.g:6169:1: ruleExpression returns [EObject current=null] : this_QuantifiedExpression_0= ruleQuantifiedExpression ; + public final EObject ruleExpression() throws RecognitionException { + EObject current = null; + + EObject this_QuantifiedExpression_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6175:2: (this_QuantifiedExpression_0= ruleQuantifiedExpression ) + // InternalFiacre.g:6176:2: this_QuantifiedExpression_0= ruleQuantifiedExpression + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getExpressionAccess().getQuantifiedExpressionParserRuleCall()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_QuantifiedExpression_0=ruleQuantifiedExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_QuantifiedExpression_0; + afterParserOrEnumRuleCall(); + + } + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleExpression" + + + // $ANTLR start "entryRuleQuantifiedExpression" + // InternalFiacre.g:6190:1: entryRuleQuantifiedExpression returns [EObject current=null] : iv_ruleQuantifiedExpression= ruleQuantifiedExpression EOF ; + public final EObject entryRuleQuantifiedExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleQuantifiedExpression = null; + + + try { + // InternalFiacre.g:6190:61: (iv_ruleQuantifiedExpression= ruleQuantifiedExpression EOF ) + // InternalFiacre.g:6191:2: iv_ruleQuantifiedExpression= ruleQuantifiedExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getQuantifiedExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleQuantifiedExpression=ruleQuantifiedExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleQuantifiedExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleQuantifiedExpression" + + + // $ANTLR start "ruleQuantifiedExpression" + // InternalFiacre.g:6197:1: ruleQuantifiedExpression returns [EObject current=null] : ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) (otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) )? otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedExpression ) ) ) | this_Conditional_9= ruleConditional ) ; + public final EObject ruleQuantifiedExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + EObject lv_index_4_0 = null; + + EObject lv_type_6_0 = null; + + EObject lv_child_8_0 = null; + + EObject this_Conditional_9 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6203:2: ( ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) (otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) )? otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedExpression ) ) ) | this_Conditional_9= ruleConditional ) ) + // InternalFiacre.g:6204:2: ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) (otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) )? otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedExpression ) ) ) | this_Conditional_9= ruleConditional ) + { + // InternalFiacre.g:6204:2: ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) (otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) )? otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedExpression ) ) ) | this_Conditional_9= ruleConditional ) + int alt105=2; + int LA105_0 = input.LA(1); + + if ( ((LA105_0>=83 && LA105_0<=84)) ) { + alt105=1; + } + else if ( (LA105_0==RULE_ID||LA105_0==RULE_INT||LA105_0==16||LA105_0==41||LA105_0==51||(LA105_0>=63 && LA105_0<=64)||(LA105_0>=95 && LA105_0<=101)||LA105_0==103||LA105_0==105||(LA105_0>=107 && LA105_0<=110)) ) { + alt105=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 105, 0, input); + + throw nvae; + } + switch (alt105) { + case 1 : + // InternalFiacre.g:6205:3: ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) (otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) )? otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedExpression ) ) ) + { + // InternalFiacre.g:6205:3: ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) (otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) )? otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedExpression ) ) ) + // InternalFiacre.g:6206:4: ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) (otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) )? otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedExpression ) ) + { + // InternalFiacre.g:6206:4: ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) + int alt103=2; + int LA103_0 = input.LA(1); + + if ( (LA103_0==83) ) { + alt103=1; + } + else if ( (LA103_0==84) ) { + alt103=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 103, 0, input); + + throw nvae; + } + switch (alt103) { + case 1 : + // InternalFiacre.g:6207:5: ( () otherlv_1= 'all' ) + { + // InternalFiacre.g:6207:5: ( () otherlv_1= 'all' ) + // InternalFiacre.g:6208:6: () otherlv_1= 'all' + { + // InternalFiacre.g:6208:6: () + // InternalFiacre.g:6209:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getQuantifiedExpressionAccess().getAllExpressionAction_0_0_0_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,83,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getQuantifiedExpressionAccess().getAllKeyword_0_0_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:6224:5: ( () otherlv_3= 'exists' ) + { + // InternalFiacre.g:6224:5: ( () otherlv_3= 'exists' ) + // InternalFiacre.g:6225:6: () otherlv_3= 'exists' + { + // InternalFiacre.g:6225:6: () + // InternalFiacre.g:6226:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getQuantifiedExpressionAccess().getExistsExpressionAction_0_0_1_0(), + current); + + } + + } + + otherlv_3=(Token)match(input,84,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getQuantifiedExpressionAccess().getExistsKeyword_0_0_1_1()); + + } + + } + + + } + break; + + } + + // InternalFiacre.g:6241:4: ( (lv_index_4_0= ruleVariableDeclaration ) ) + // InternalFiacre.g:6242:5: (lv_index_4_0= ruleVariableDeclaration ) + { + // InternalFiacre.g:6242:5: (lv_index_4_0= ruleVariableDeclaration ) + // InternalFiacre.g:6243:6: lv_index_4_0= ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_81); + lv_index_4_0=ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); + } + set( + current, + "index", + lv_index_4_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:6260:4: (otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) )? + int alt104=2; + int LA104_0 = input.LA(1); + + if ( (LA104_0==26) ) { + alt104=1; + } + switch (alt104) { + case 1 : + // InternalFiacre.g:6261:5: otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) + { + otherlv_5=(Token)match(input,26,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getQuantifiedExpressionAccess().getInKeyword_0_2_0()); + + } + // InternalFiacre.g:6265:5: ( (lv_type_6_0= ruleRangeType ) ) + // InternalFiacre.g:6266:6: (lv_type_6_0= ruleRangeType ) + { + // InternalFiacre.g:6266:6: (lv_type_6_0= ruleRangeType ) + // InternalFiacre.g:6267:7: lv_type_6_0= ruleRangeType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getTypeRangeTypeParserRuleCall_0_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_82); + lv_type_6_0=ruleRangeType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); + } + set( + current, + "type", + lv_type_6_0, + "fr.irit.fiacre.xtext.Fiacre.RangeType"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + otherlv_7=(Token)match(input,65,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getQuantifiedExpressionAccess().getFullStopKeyword_0_3()); + + } + // InternalFiacre.g:6289:4: ( (lv_child_8_0= ruleQuantifiedExpression ) ) + // InternalFiacre.g:6290:5: (lv_child_8_0= ruleQuantifiedExpression ) + { + // InternalFiacre.g:6290:5: (lv_child_8_0= ruleQuantifiedExpression ) + // InternalFiacre.g:6291:6: lv_child_8_0= ruleQuantifiedExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getChildQuantifiedExpressionParserRuleCall_0_4_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_child_8_0=ruleQuantifiedExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); + } + set( + current, + "child", + lv_child_8_0, + "fr.irit.fiacre.xtext.Fiacre.QuantifiedExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:6310:3: this_Conditional_9= ruleConditional + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getConditionalParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_Conditional_9=ruleConditional(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Conditional_9; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleQuantifiedExpression" + + + // $ANTLR start "entryRuleConditional" + // InternalFiacre.g:6325:1: entryRuleConditional returns [EObject current=null] : iv_ruleConditional= ruleConditional EOF ; + public final EObject entryRuleConditional() throws RecognitionException { + EObject current = null; + + EObject iv_ruleConditional = null; + + + try { + // InternalFiacre.g:6325:52: (iv_ruleConditional= ruleConditional EOF ) + // InternalFiacre.g:6326:2: iv_ruleConditional= ruleConditional EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getConditionalRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleConditional=ruleConditional(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleConditional; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleConditional" + + + // $ANTLR start "ruleConditional" + // InternalFiacre.g:6332:1: ruleConditional returns [EObject current=null] : (this_Disjunction_0= ruleDisjunction (otherlv_1= '?' () ( (lv_then_3_0= ruleDisjunction ) ) otherlv_4= ':' ( (lv_else_5_0= ruleDisjunction ) ) )? ) ; + public final EObject ruleConditional() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_4=null; + EObject this_Disjunction_0 = null; + + EObject lv_then_3_0 = null; + + EObject lv_else_5_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6338:2: ( (this_Disjunction_0= ruleDisjunction (otherlv_1= '?' () ( (lv_then_3_0= ruleDisjunction ) ) otherlv_4= ':' ( (lv_else_5_0= ruleDisjunction ) ) )? ) ) + // InternalFiacre.g:6339:2: (this_Disjunction_0= ruleDisjunction (otherlv_1= '?' () ( (lv_then_3_0= ruleDisjunction ) ) otherlv_4= ':' ( (lv_else_5_0= ruleDisjunction ) ) )? ) + { + // InternalFiacre.g:6339:2: (this_Disjunction_0= ruleDisjunction (otherlv_1= '?' () ( (lv_then_3_0= ruleDisjunction ) ) otherlv_4= ':' ( (lv_else_5_0= ruleDisjunction ) ) )? ) + // InternalFiacre.g:6340:3: this_Disjunction_0= ruleDisjunction (otherlv_1= '?' () ( (lv_then_3_0= ruleDisjunction ) ) otherlv_4= ':' ( (lv_else_5_0= ruleDisjunction ) ) )? + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConditionalAccess().getDisjunctionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_83); + this_Disjunction_0=ruleDisjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Disjunction_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:6351:3: (otherlv_1= '?' () ( (lv_then_3_0= ruleDisjunction ) ) otherlv_4= ':' ( (lv_else_5_0= ruleDisjunction ) ) )? + int alt106=2; + int LA106_0 = input.LA(1); + + if ( (LA106_0==62) ) { + alt106=1; + } + switch (alt106) { + case 1 : + // InternalFiacre.g:6352:4: otherlv_1= '?' () ( (lv_then_3_0= ruleDisjunction ) ) otherlv_4= ':' ( (lv_else_5_0= ruleDisjunction ) ) + { + otherlv_1=(Token)match(input,62,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getConditionalAccess().getQuestionMarkKeyword_1_0()); + + } + // InternalFiacre.g:6356:4: () + // InternalFiacre.g:6357:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getConditionalAccess().getConditionalConditionAction_1_1(), + current); + + } + + } + + // InternalFiacre.g:6366:4: ( (lv_then_3_0= ruleDisjunction ) ) + // InternalFiacre.g:6367:5: (lv_then_3_0= ruleDisjunction ) + { + // InternalFiacre.g:6367:5: (lv_then_3_0= ruleDisjunction ) + // InternalFiacre.g:6368:6: lv_then_3_0= ruleDisjunction + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConditionalAccess().getThenDisjunctionParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_13); + lv_then_3_0=ruleDisjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConditionalRule()); + } + set( + current, + "then", + lv_then_3_0, + "fr.irit.fiacre.xtext.Fiacre.Disjunction"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_4=(Token)match(input,19,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getConditionalAccess().getColonKeyword_1_3()); + + } + // InternalFiacre.g:6389:4: ( (lv_else_5_0= ruleDisjunction ) ) + // InternalFiacre.g:6390:5: (lv_else_5_0= ruleDisjunction ) + { + // InternalFiacre.g:6390:5: (lv_else_5_0= ruleDisjunction ) + // InternalFiacre.g:6391:6: lv_else_5_0= ruleDisjunction + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConditionalAccess().getElseDisjunctionParserRuleCall_1_4_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_else_5_0=ruleDisjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConditionalRule()); + } + set( + current, + "else", + lv_else_5_0, + "fr.irit.fiacre.xtext.Fiacre.Disjunction"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleConditional" + + + // $ANTLR start "entryRuleDisjunction" + // InternalFiacre.g:6413:1: entryRuleDisjunction returns [EObject current=null] : iv_ruleDisjunction= ruleDisjunction EOF ; + public final EObject entryRuleDisjunction() throws RecognitionException { + EObject current = null; + + EObject iv_ruleDisjunction = null; + + + try { + // InternalFiacre.g:6413:52: (iv_ruleDisjunction= ruleDisjunction EOF ) + // InternalFiacre.g:6414:2: iv_ruleDisjunction= ruleDisjunction EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getDisjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleDisjunction=ruleDisjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleDisjunction; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleDisjunction" + + + // $ANTLR start "ruleDisjunction" + // InternalFiacre.g:6420:1: ruleDisjunction returns [EObject current=null] : (this_Implication_0= ruleImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleImplication ) ) )* ) ; + public final EObject ruleDisjunction() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_Implication_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6426:2: ( (this_Implication_0= ruleImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleImplication ) ) )* ) ) + // InternalFiacre.g:6427:2: (this_Implication_0= ruleImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleImplication ) ) )* ) + { + // InternalFiacre.g:6427:2: (this_Implication_0= ruleImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleImplication ) ) )* ) + // InternalFiacre.g:6428:3: this_Implication_0= ruleImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleImplication ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getDisjunctionAccess().getImplicationParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_84); + this_Implication_0=ruleImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Implication_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:6439:3: ( () otherlv_2= 'or' ( (lv_right_3_0= ruleImplication ) ) )* + loop107: + do { + int alt107=2; + int LA107_0 = input.LA(1); + + if ( (LA107_0==85) ) { + alt107=1; + } + + + switch (alt107) { + case 1 : + // InternalFiacre.g:6440:4: () otherlv_2= 'or' ( (lv_right_3_0= ruleImplication ) ) + { + // InternalFiacre.g:6440:4: () + // InternalFiacre.g:6441:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getDisjunctionAccess().getDisjunctionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,85,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getDisjunctionAccess().getOrKeyword_1_1()); + + } + // InternalFiacre.g:6454:4: ( (lv_right_3_0= ruleImplication ) ) + // InternalFiacre.g:6455:5: (lv_right_3_0= ruleImplication ) + { + // InternalFiacre.g:6455:5: (lv_right_3_0= ruleImplication ) + // InternalFiacre.g:6456:6: lv_right_3_0= ruleImplication + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getDisjunctionAccess().getRightImplicationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_84); + lv_right_3_0=ruleImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getDisjunctionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Implication"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop107; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleDisjunction" + + + // $ANTLR start "entryRuleImplication" + // InternalFiacre.g:6478:1: entryRuleImplication returns [EObject current=null] : iv_ruleImplication= ruleImplication EOF ; + public final EObject entryRuleImplication() throws RecognitionException { + EObject current = null; + + EObject iv_ruleImplication = null; + + + try { + // InternalFiacre.g:6478:52: (iv_ruleImplication= ruleImplication EOF ) + // InternalFiacre.g:6479:2: iv_ruleImplication= ruleImplication EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getImplicationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleImplication=ruleImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleImplication; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleImplication" + + + // $ANTLR start "ruleImplication" + // InternalFiacre.g:6485:1: ruleImplication returns [EObject current=null] : (this_Conjunction_0= ruleConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleImplication ) ) )? ) ; + public final EObject ruleImplication() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_Conjunction_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6491:2: ( (this_Conjunction_0= ruleConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleImplication ) ) )? ) ) + // InternalFiacre.g:6492:2: (this_Conjunction_0= ruleConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleImplication ) ) )? ) + { + // InternalFiacre.g:6492:2: (this_Conjunction_0= ruleConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleImplication ) ) )? ) + // InternalFiacre.g:6493:3: this_Conjunction_0= ruleConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleImplication ) ) )? + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getImplicationAccess().getConjunctionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_85); + this_Conjunction_0=ruleConjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Conjunction_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:6504:3: ( () otherlv_2= '=>' ( (lv_right_3_0= ruleImplication ) ) )? + int alt108=2; + int LA108_0 = input.LA(1); + + if ( (LA108_0==86) ) { + alt108=1; + } + switch (alt108) { + case 1 : + // InternalFiacre.g:6505:4: () otherlv_2= '=>' ( (lv_right_3_0= ruleImplication ) ) + { + // InternalFiacre.g:6505:4: () + // InternalFiacre.g:6506:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getImplicationAccess().getImplicationLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,86,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + + } + // InternalFiacre.g:6519:4: ( (lv_right_3_0= ruleImplication ) ) + // InternalFiacre.g:6520:5: (lv_right_3_0= ruleImplication ) + { + // InternalFiacre.g:6520:5: (lv_right_3_0= ruleImplication ) + // InternalFiacre.g:6521:6: lv_right_3_0= ruleImplication + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getImplicationAccess().getRightImplicationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_3_0=ruleImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getImplicationRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Implication"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleImplication" + + + // $ANTLR start "entryRuleConjunction" + // InternalFiacre.g:6543:1: entryRuleConjunction returns [EObject current=null] : iv_ruleConjunction= ruleConjunction EOF ; + public final EObject entryRuleConjunction() throws RecognitionException { + EObject current = null; + + EObject iv_ruleConjunction = null; + + + try { + // InternalFiacre.g:6543:52: (iv_ruleConjunction= ruleConjunction EOF ) + // InternalFiacre.g:6544:2: iv_ruleConjunction= ruleConjunction EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getConjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleConjunction=ruleConjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleConjunction; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleConjunction" + + + // $ANTLR start "ruleConjunction" + // InternalFiacre.g:6550:1: ruleConjunction returns [EObject current=null] : (this_Comparison_0= ruleComparison ( () otherlv_2= 'and' ( (lv_right_3_0= ruleComparison ) ) )* ) ; + public final EObject ruleConjunction() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_Comparison_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6556:2: ( (this_Comparison_0= ruleComparison ( () otherlv_2= 'and' ( (lv_right_3_0= ruleComparison ) ) )* ) ) + // InternalFiacre.g:6557:2: (this_Comparison_0= ruleComparison ( () otherlv_2= 'and' ( (lv_right_3_0= ruleComparison ) ) )* ) + { + // InternalFiacre.g:6557:2: (this_Comparison_0= ruleComparison ( () otherlv_2= 'and' ( (lv_right_3_0= ruleComparison ) ) )* ) + // InternalFiacre.g:6558:3: this_Comparison_0= ruleComparison ( () otherlv_2= 'and' ( (lv_right_3_0= ruleComparison ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConjunctionAccess().getComparisonParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_86); + this_Comparison_0=ruleComparison(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Comparison_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:6569:3: ( () otherlv_2= 'and' ( (lv_right_3_0= ruleComparison ) ) )* + loop109: + do { + int alt109=2; + int LA109_0 = input.LA(1); + + if ( (LA109_0==87) ) { + alt109=1; + } + + + switch (alt109) { + case 1 : + // InternalFiacre.g:6570:4: () otherlv_2= 'and' ( (lv_right_3_0= ruleComparison ) ) + { + // InternalFiacre.g:6570:4: () + // InternalFiacre.g:6571:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getConjunctionAccess().getConjunctionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,87,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getConjunctionAccess().getAndKeyword_1_1()); + + } + // InternalFiacre.g:6584:4: ( (lv_right_3_0= ruleComparison ) ) + // InternalFiacre.g:6585:5: (lv_right_3_0= ruleComparison ) + { + // InternalFiacre.g:6585:5: (lv_right_3_0= ruleComparison ) + // InternalFiacre.g:6586:6: lv_right_3_0= ruleComparison + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConjunctionAccess().getRightComparisonParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_86); + lv_right_3_0=ruleComparison(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConjunctionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Comparison"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop109; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleConjunction" + + + // $ANTLR start "entryRuleComparison" + // InternalFiacre.g:6608:1: entryRuleComparison returns [EObject current=null] : iv_ruleComparison= ruleComparison EOF ; + public final EObject entryRuleComparison() throws RecognitionException { + EObject current = null; + + EObject iv_ruleComparison = null; + + + try { + // InternalFiacre.g:6608:51: (iv_ruleComparison= ruleComparison EOF ) + // InternalFiacre.g:6609:2: iv_ruleComparison= ruleComparison EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getComparisonRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleComparison=ruleComparison(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleComparison; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleComparison" + + + // $ANTLR start "ruleComparison" + // InternalFiacre.g:6615:1: ruleComparison returns [EObject current=null] : (this_Addition_0= ruleAddition ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '<>' ) | ( () otherlv_6= '<' ) | ( () otherlv_8= '<=' ) | ( () otherlv_10= '>' ) | ( () otherlv_12= '>=' ) ) ( (lv_right_13_0= ruleAddition ) ) )? ) ; + public final EObject ruleComparison() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_10=null; + Token otherlv_12=null; + EObject this_Addition_0 = null; + + EObject lv_right_13_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6621:2: ( (this_Addition_0= ruleAddition ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '<>' ) | ( () otherlv_6= '<' ) | ( () otherlv_8= '<=' ) | ( () otherlv_10= '>' ) | ( () otherlv_12= '>=' ) ) ( (lv_right_13_0= ruleAddition ) ) )? ) ) + // InternalFiacre.g:6622:2: (this_Addition_0= ruleAddition ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '<>' ) | ( () otherlv_6= '<' ) | ( () otherlv_8= '<=' ) | ( () otherlv_10= '>' ) | ( () otherlv_12= '>=' ) ) ( (lv_right_13_0= ruleAddition ) ) )? ) + { + // InternalFiacre.g:6622:2: (this_Addition_0= ruleAddition ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '<>' ) | ( () otherlv_6= '<' ) | ( () otherlv_8= '<=' ) | ( () otherlv_10= '>' ) | ( () otherlv_12= '>=' ) ) ( (lv_right_13_0= ruleAddition ) ) )? ) + // InternalFiacre.g:6623:3: this_Addition_0= ruleAddition ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '<>' ) | ( () otherlv_6= '<' ) | ( () otherlv_8= '<=' ) | ( () otherlv_10= '>' ) | ( () otherlv_12= '>=' ) ) ( (lv_right_13_0= ruleAddition ) ) )? + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComparisonAccess().getAdditionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_87); + this_Addition_0=ruleAddition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Addition_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:6634:3: ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '<>' ) | ( () otherlv_6= '<' ) | ( () otherlv_8= '<=' ) | ( () otherlv_10= '>' ) | ( () otherlv_12= '>=' ) ) ( (lv_right_13_0= ruleAddition ) ) )? + int alt111=2; + int LA111_0 = input.LA(1); + + if ( (LA111_0==12||(LA111_0>=88 && LA111_0<=92)) ) { + alt111=1; + } + switch (alt111) { + case 1 : + // InternalFiacre.g:6635:4: ( ( () otherlv_2= '=' ) | ( () otherlv_4= '<>' ) | ( () otherlv_6= '<' ) | ( () otherlv_8= '<=' ) | ( () otherlv_10= '>' ) | ( () otherlv_12= '>=' ) ) ( (lv_right_13_0= ruleAddition ) ) + { + // InternalFiacre.g:6635:4: ( ( () otherlv_2= '=' ) | ( () otherlv_4= '<>' ) | ( () otherlv_6= '<' ) | ( () otherlv_8= '<=' ) | ( () otherlv_10= '>' ) | ( () otherlv_12= '>=' ) ) + int alt110=6; + switch ( input.LA(1) ) { + case 88: + { + alt110=1; + } + break; + case 89: + { + alt110=2; + } + break; + case 90: + { + alt110=3; + } + break; + case 91: + { + alt110=4; + } + break; + case 12: + { + alt110=5; + } + break; + case 92: + { + alt110=6; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 110, 0, input); + + throw nvae; + } + + switch (alt110) { + case 1 : + // InternalFiacre.g:6636:5: ( () otherlv_2= '=' ) + { + // InternalFiacre.g:6636:5: ( () otherlv_2= '=' ) + // InternalFiacre.g:6637:6: () otherlv_2= '=' + { + // InternalFiacre.g:6637:6: () + // InternalFiacre.g:6638:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonEqualLeftAction_1_0_0_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,88,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getComparisonAccess().getEqualsSignKeyword_1_0_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:6653:5: ( () otherlv_4= '<>' ) + { + // InternalFiacre.g:6653:5: ( () otherlv_4= '<>' ) + // InternalFiacre.g:6654:6: () otherlv_4= '<>' + { + // InternalFiacre.g:6654:6: () + // InternalFiacre.g:6655:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonNotEqualLeftAction_1_0_1_0(), + current); + + } + + } + + otherlv_4=(Token)match(input,89,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getComparisonAccess().getLessThanSignGreaterThanSignKeyword_1_0_1_1()); + + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:6670:5: ( () otherlv_6= '<' ) + { + // InternalFiacre.g:6670:5: ( () otherlv_6= '<' ) + // InternalFiacre.g:6671:6: () otherlv_6= '<' + { + // InternalFiacre.g:6671:6: () + // InternalFiacre.g:6672:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonLesserLeftAction_1_0_2_0(), + current); + + } + + } + + otherlv_6=(Token)match(input,90,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getComparisonAccess().getLessThanSignKeyword_1_0_2_1()); + + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:6687:5: ( () otherlv_8= '<=' ) + { + // InternalFiacre.g:6687:5: ( () otherlv_8= '<=' ) + // InternalFiacre.g:6688:6: () otherlv_8= '<=' + { + // InternalFiacre.g:6688:6: () + // InternalFiacre.g:6689:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonLesserEqualLeftAction_1_0_3_0(), + current); + + } + + } + + otherlv_8=(Token)match(input,91,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_3_1()); + + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:6704:5: ( () otherlv_10= '>' ) + { + // InternalFiacre.g:6704:5: ( () otherlv_10= '>' ) + // InternalFiacre.g:6705:6: () otherlv_10= '>' + { + // InternalFiacre.g:6705:6: () + // InternalFiacre.g:6706:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonGreaterLeftAction_1_0_4_0(), + current); + + } + + } + + otherlv_10=(Token)match(input,12,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getComparisonAccess().getGreaterThanSignKeyword_1_0_4_1()); + + } + + } + + + } + break; + case 6 : + // InternalFiacre.g:6721:5: ( () otherlv_12= '>=' ) + { + // InternalFiacre.g:6721:5: ( () otherlv_12= '>=' ) + // InternalFiacre.g:6722:6: () otherlv_12= '>=' + { + // InternalFiacre.g:6722:6: () + // InternalFiacre.g:6723:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getComparisonAccess().getComparisonGreaterEqualLeftAction_1_0_5_0(), + current); + + } + + } + + otherlv_12=(Token)match(input,92,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_12, grammarAccess.getComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_5_1()); + + } + + } + + + } + break; + + } + + // InternalFiacre.g:6738:4: ( (lv_right_13_0= ruleAddition ) ) + // InternalFiacre.g:6739:5: (lv_right_13_0= ruleAddition ) + { + // InternalFiacre.g:6739:5: (lv_right_13_0= ruleAddition ) + // InternalFiacre.g:6740:6: lv_right_13_0= ruleAddition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_13_0=ruleAddition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComparisonRule()); + } + set( + current, + "right", + lv_right_13_0, + "fr.irit.fiacre.xtext.Fiacre.Addition"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleComparison" + + + // $ANTLR start "entryRuleAddition" + // InternalFiacre.g:6762:1: entryRuleAddition returns [EObject current=null] : iv_ruleAddition= ruleAddition EOF ; + public final EObject entryRuleAddition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAddition = null; + + + try { + // InternalFiacre.g:6762:49: (iv_ruleAddition= ruleAddition EOF ) + // InternalFiacre.g:6763:2: iv_ruleAddition= ruleAddition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAdditionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleAddition=ruleAddition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAddition; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAddition" + + + // $ANTLR start "ruleAddition" + // InternalFiacre.g:6769:1: ruleAddition returns [EObject current=null] : (this_Substraction_0= ruleSubstraction ( () otherlv_2= '+' ( (lv_right_3_0= ruleSubstraction ) ) )* ) ; + public final EObject ruleAddition() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_Substraction_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6775:2: ( (this_Substraction_0= ruleSubstraction ( () otherlv_2= '+' ( (lv_right_3_0= ruleSubstraction ) ) )* ) ) + // InternalFiacre.g:6776:2: (this_Substraction_0= ruleSubstraction ( () otherlv_2= '+' ( (lv_right_3_0= ruleSubstraction ) ) )* ) + { + // InternalFiacre.g:6776:2: (this_Substraction_0= ruleSubstraction ( () otherlv_2= '+' ( (lv_right_3_0= ruleSubstraction ) ) )* ) + // InternalFiacre.g:6777:3: this_Substraction_0= ruleSubstraction ( () otherlv_2= '+' ( (lv_right_3_0= ruleSubstraction ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAdditionAccess().getSubstractionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_88); + this_Substraction_0=ruleSubstraction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Substraction_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:6788:3: ( () otherlv_2= '+' ( (lv_right_3_0= ruleSubstraction ) ) )* + loop112: + do { + int alt112=2; + int LA112_0 = input.LA(1); + + if ( (LA112_0==63) ) { + int LA112_2 = input.LA(2); + + if ( (LA112_2==RULE_ID||LA112_2==16||LA112_2==41||LA112_2==51||(LA112_2>=63 && LA112_2<=64)||(LA112_2>=95 && LA112_2<=101)||LA112_2==103||LA112_2==105||(LA112_2>=107 && LA112_2<=110)) ) { + alt112=1; + } + else if ( (LA112_2==RULE_INT) ) { + int LA112_4 = input.LA(3); + + if ( (synpred153_InternalFiacre()) ) { + alt112=1; + } + + + } + + + } + + + switch (alt112) { + case 1 : + // InternalFiacre.g:6789:4: () otherlv_2= '+' ( (lv_right_3_0= ruleSubstraction ) ) + { + // InternalFiacre.g:6789:4: () + // InternalFiacre.g:6790:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getAdditionAccess().getAdditionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,63,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getAdditionAccess().getPlusSignKeyword_1_1()); + + } + // InternalFiacre.g:6803:4: ( (lv_right_3_0= ruleSubstraction ) ) + // InternalFiacre.g:6804:5: (lv_right_3_0= ruleSubstraction ) + { + // InternalFiacre.g:6804:5: (lv_right_3_0= ruleSubstraction ) + // InternalFiacre.g:6805:6: lv_right_3_0= ruleSubstraction + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAdditionAccess().getRightSubstractionParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_88); + lv_right_3_0=ruleSubstraction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAdditionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Substraction"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop112; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAddition" + + + // $ANTLR start "entryRuleSubstraction" + // InternalFiacre.g:6827:1: entryRuleSubstraction returns [EObject current=null] : iv_ruleSubstraction= ruleSubstraction EOF ; + public final EObject entryRuleSubstraction() throws RecognitionException { + EObject current = null; + + EObject iv_ruleSubstraction = null; + + + try { + // InternalFiacre.g:6827:53: (iv_ruleSubstraction= ruleSubstraction EOF ) + // InternalFiacre.g:6828:2: iv_ruleSubstraction= ruleSubstraction EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getSubstractionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleSubstraction=ruleSubstraction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleSubstraction; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleSubstraction" + + + // $ANTLR start "ruleSubstraction" + // InternalFiacre.g:6834:1: ruleSubstraction returns [EObject current=null] : (this_Multiplication_0= ruleMultiplication ( () otherlv_2= '-' ( (lv_right_3_0= ruleMultiplication ) ) )* ) ; + public final EObject ruleSubstraction() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_Multiplication_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6840:2: ( (this_Multiplication_0= ruleMultiplication ( () otherlv_2= '-' ( (lv_right_3_0= ruleMultiplication ) ) )* ) ) + // InternalFiacre.g:6841:2: (this_Multiplication_0= ruleMultiplication ( () otherlv_2= '-' ( (lv_right_3_0= ruleMultiplication ) ) )* ) + { + // InternalFiacre.g:6841:2: (this_Multiplication_0= ruleMultiplication ( () otherlv_2= '-' ( (lv_right_3_0= ruleMultiplication ) ) )* ) + // InternalFiacre.g:6842:3: this_Multiplication_0= ruleMultiplication ( () otherlv_2= '-' ( (lv_right_3_0= ruleMultiplication ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSubstractionAccess().getMultiplicationParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_89); + this_Multiplication_0=ruleMultiplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Multiplication_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:6853:3: ( () otherlv_2= '-' ( (lv_right_3_0= ruleMultiplication ) ) )* + loop113: + do { + int alt113=2; + int LA113_0 = input.LA(1); + + if ( (LA113_0==64) ) { + int LA113_2 = input.LA(2); + + if ( (LA113_2==RULE_INT) ) { + int LA113_3 = input.LA(3); + + if ( (synpred154_InternalFiacre()) ) { + alt113=1; + } + + + } + else if ( (LA113_2==RULE_ID||LA113_2==16||LA113_2==41||LA113_2==51||(LA113_2>=63 && LA113_2<=64)||(LA113_2>=95 && LA113_2<=101)||LA113_2==103||LA113_2==105||(LA113_2>=107 && LA113_2<=110)) ) { + alt113=1; + } + + + } + + + switch (alt113) { + case 1 : + // InternalFiacre.g:6854:4: () otherlv_2= '-' ( (lv_right_3_0= ruleMultiplication ) ) + { + // InternalFiacre.g:6854:4: () + // InternalFiacre.g:6855:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getSubstractionAccess().getSubstractionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,64,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getSubstractionAccess().getHyphenMinusKeyword_1_1()); + + } + // InternalFiacre.g:6868:4: ( (lv_right_3_0= ruleMultiplication ) ) + // InternalFiacre.g:6869:5: (lv_right_3_0= ruleMultiplication ) + { + // InternalFiacre.g:6869:5: (lv_right_3_0= ruleMultiplication ) + // InternalFiacre.g:6870:6: lv_right_3_0= ruleMultiplication + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSubstractionAccess().getRightMultiplicationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_89); + lv_right_3_0=ruleMultiplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSubstractionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Multiplication"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop113; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleSubstraction" + + + // $ANTLR start "entryRuleMultiplication" + // InternalFiacre.g:6892:1: entryRuleMultiplication returns [EObject current=null] : iv_ruleMultiplication= ruleMultiplication EOF ; + public final EObject entryRuleMultiplication() throws RecognitionException { + EObject current = null; + + EObject iv_ruleMultiplication = null; + + + try { + // InternalFiacre.g:6892:55: (iv_ruleMultiplication= ruleMultiplication EOF ) + // InternalFiacre.g:6893:2: iv_ruleMultiplication= ruleMultiplication EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getMultiplicationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleMultiplication=ruleMultiplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleMultiplication; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleMultiplication" + + + // $ANTLR start "ruleMultiplication" + // InternalFiacre.g:6899:1: ruleMultiplication returns [EObject current=null] : (this_Division_0= ruleDivision ( () otherlv_2= '*' ( (lv_right_3_0= ruleDivision ) ) )* ) ; + public final EObject ruleMultiplication() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_Division_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6905:2: ( (this_Division_0= ruleDivision ( () otherlv_2= '*' ( (lv_right_3_0= ruleDivision ) ) )* ) ) + // InternalFiacre.g:6906:2: (this_Division_0= ruleDivision ( () otherlv_2= '*' ( (lv_right_3_0= ruleDivision ) ) )* ) + { + // InternalFiacre.g:6906:2: (this_Division_0= ruleDivision ( () otherlv_2= '*' ( (lv_right_3_0= ruleDivision ) ) )* ) + // InternalFiacre.g:6907:3: this_Division_0= ruleDivision ( () otherlv_2= '*' ( (lv_right_3_0= ruleDivision ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getMultiplicationAccess().getDivisionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_90); + this_Division_0=ruleDivision(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Division_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:6918:3: ( () otherlv_2= '*' ( (lv_right_3_0= ruleDivision ) ) )* + loop114: + do { + int alt114=2; + int LA114_0 = input.LA(1); + + if ( (LA114_0==82) ) { + alt114=1; + } + + + switch (alt114) { + case 1 : + // InternalFiacre.g:6919:4: () otherlv_2= '*' ( (lv_right_3_0= ruleDivision ) ) + { + // InternalFiacre.g:6919:4: () + // InternalFiacre.g:6920:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getMultiplicationAccess().getMultiplicationLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,82,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_1()); + + } + // InternalFiacre.g:6933:4: ( (lv_right_3_0= ruleDivision ) ) + // InternalFiacre.g:6934:5: (lv_right_3_0= ruleDivision ) + { + // InternalFiacre.g:6934:5: (lv_right_3_0= ruleDivision ) + // InternalFiacre.g:6935:6: lv_right_3_0= ruleDivision + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getMultiplicationAccess().getRightDivisionParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_90); + lv_right_3_0=ruleDivision(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getMultiplicationRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Division"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop114; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleMultiplication" + + + // $ANTLR start "entryRuleDivision" + // InternalFiacre.g:6957:1: entryRuleDivision returns [EObject current=null] : iv_ruleDivision= ruleDivision EOF ; + public final EObject entryRuleDivision() throws RecognitionException { + EObject current = null; + + EObject iv_ruleDivision = null; + + + try { + // InternalFiacre.g:6957:49: (iv_ruleDivision= ruleDivision EOF ) + // InternalFiacre.g:6958:2: iv_ruleDivision= ruleDivision EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getDivisionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleDivision=ruleDivision(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleDivision; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleDivision" + + + // $ANTLR start "ruleDivision" + // InternalFiacre.g:6964:1: ruleDivision returns [EObject current=null] : (this_Modulo_0= ruleModulo ( () otherlv_2= '/' ( (lv_right_3_0= ruleModulo ) ) )* ) ; + public final EObject ruleDivision() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_Modulo_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:6970:2: ( (this_Modulo_0= ruleModulo ( () otherlv_2= '/' ( (lv_right_3_0= ruleModulo ) ) )* ) ) + // InternalFiacre.g:6971:2: (this_Modulo_0= ruleModulo ( () otherlv_2= '/' ( (lv_right_3_0= ruleModulo ) ) )* ) + { + // InternalFiacre.g:6971:2: (this_Modulo_0= ruleModulo ( () otherlv_2= '/' ( (lv_right_3_0= ruleModulo ) ) )* ) + // InternalFiacre.g:6972:3: this_Modulo_0= ruleModulo ( () otherlv_2= '/' ( (lv_right_3_0= ruleModulo ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getDivisionAccess().getModuloParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_91); + this_Modulo_0=ruleModulo(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Modulo_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:6983:3: ( () otherlv_2= '/' ( (lv_right_3_0= ruleModulo ) ) )* + loop115: + do { + int alt115=2; + int LA115_0 = input.LA(1); + + if ( (LA115_0==93) ) { + alt115=1; + } + + + switch (alt115) { + case 1 : + // InternalFiacre.g:6984:4: () otherlv_2= '/' ( (lv_right_3_0= ruleModulo ) ) + { + // InternalFiacre.g:6984:4: () + // InternalFiacre.g:6985:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getDivisionAccess().getDivisionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,93,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getDivisionAccess().getSolidusKeyword_1_1()); + + } + // InternalFiacre.g:6998:4: ( (lv_right_3_0= ruleModulo ) ) + // InternalFiacre.g:6999:5: (lv_right_3_0= ruleModulo ) + { + // InternalFiacre.g:6999:5: (lv_right_3_0= ruleModulo ) + // InternalFiacre.g:7000:6: lv_right_3_0= ruleModulo + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getDivisionAccess().getRightModuloParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_91); + lv_right_3_0=ruleModulo(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getDivisionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.Modulo"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop115; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleDivision" + + + // $ANTLR start "entryRuleModulo" + // InternalFiacre.g:7022:1: entryRuleModulo returns [EObject current=null] : iv_ruleModulo= ruleModulo EOF ; + public final EObject entryRuleModulo() throws RecognitionException { + EObject current = null; + + EObject iv_ruleModulo = null; + + + try { + // InternalFiacre.g:7022:47: (iv_ruleModulo= ruleModulo EOF ) + // InternalFiacre.g:7023:2: iv_ruleModulo= ruleModulo EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getModuloRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleModulo=ruleModulo(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleModulo; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleModulo" + + + // $ANTLR start "ruleModulo" + // InternalFiacre.g:7029:1: ruleModulo returns [EObject current=null] : (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= '%' ( (lv_right_3_0= ruleUnaryExpression ) ) )* ) ; + public final EObject ruleModulo() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_UnaryExpression_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:7035:2: ( (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= '%' ( (lv_right_3_0= ruleUnaryExpression ) ) )* ) ) + // InternalFiacre.g:7036:2: (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= '%' ( (lv_right_3_0= ruleUnaryExpression ) ) )* ) + { + // InternalFiacre.g:7036:2: (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= '%' ( (lv_right_3_0= ruleUnaryExpression ) ) )* ) + // InternalFiacre.g:7037:3: this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= '%' ( (lv_right_3_0= ruleUnaryExpression ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getModuloAccess().getUnaryExpressionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_92); + this_UnaryExpression_0=ruleUnaryExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_UnaryExpression_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:7048:3: ( () otherlv_2= '%' ( (lv_right_3_0= ruleUnaryExpression ) ) )* + loop116: + do { + int alt116=2; + int LA116_0 = input.LA(1); + + if ( (LA116_0==94) ) { + alt116=1; + } + + + switch (alt116) { + case 1 : + // InternalFiacre.g:7049:4: () otherlv_2= '%' ( (lv_right_3_0= ruleUnaryExpression ) ) + { + // InternalFiacre.g:7049:4: () + // InternalFiacre.g:7050:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getModuloAccess().getModuloLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,94,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getModuloAccess().getPercentSignKeyword_1_1()); + + } + // InternalFiacre.g:7063:4: ( (lv_right_3_0= ruleUnaryExpression ) ) + // InternalFiacre.g:7064:5: (lv_right_3_0= ruleUnaryExpression ) + { + // InternalFiacre.g:7064:5: (lv_right_3_0= ruleUnaryExpression ) + // InternalFiacre.g:7065:6: lv_right_3_0= ruleUnaryExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getModuloAccess().getRightUnaryExpressionParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_92); + lv_right_3_0=ruleUnaryExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getModuloRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.UnaryExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop116; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleModulo" + + + // $ANTLR start "entryRuleUnaryExpression" + // InternalFiacre.g:7087:1: entryRuleUnaryExpression returns [EObject current=null] : iv_ruleUnaryExpression= ruleUnaryExpression EOF ; + public final EObject entryRuleUnaryExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleUnaryExpression = null; + + + try { + // InternalFiacre.g:7087:56: (iv_ruleUnaryExpression= ruleUnaryExpression EOF ) + // InternalFiacre.g:7088:2: iv_ruleUnaryExpression= ruleUnaryExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getUnaryExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleUnaryExpression=ruleUnaryExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleUnaryExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleUnaryExpression" + + + // $ANTLR start "ruleUnaryExpression" + // InternalFiacre.g:7094:1: ruleUnaryExpression returns [EObject current=null] : ( ( ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) | ( () otherlv_5= 'not' ) | ( () otherlv_7= 'first' ) | ( () otherlv_9= 'length' ) | ( () otherlv_11= '$' ) | ( () otherlv_13= 'full' ) | ( () otherlv_15= 'dequeue' ) | ( () otherlv_17= 'empty' ) ) ( (lv_child_18_0= ruleUnaryExpression ) ) ) | this_Projection_19= ruleProjection ) ; + public final EObject ruleUnaryExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token otherlv_11=null; + Token otherlv_13=null; + Token otherlv_15=null; + Token otherlv_17=null; + EObject lv_child_18_0 = null; + + EObject this_Projection_19 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:7100:2: ( ( ( ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) | ( () otherlv_5= 'not' ) | ( () otherlv_7= 'first' ) | ( () otherlv_9= 'length' ) | ( () otherlv_11= '$' ) | ( () otherlv_13= 'full' ) | ( () otherlv_15= 'dequeue' ) | ( () otherlv_17= 'empty' ) ) ( (lv_child_18_0= ruleUnaryExpression ) ) ) | this_Projection_19= ruleProjection ) ) + // InternalFiacre.g:7101:2: ( ( ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) | ( () otherlv_5= 'not' ) | ( () otherlv_7= 'first' ) | ( () otherlv_9= 'length' ) | ( () otherlv_11= '$' ) | ( () otherlv_13= 'full' ) | ( () otherlv_15= 'dequeue' ) | ( () otherlv_17= 'empty' ) ) ( (lv_child_18_0= ruleUnaryExpression ) ) ) | this_Projection_19= ruleProjection ) + { + // InternalFiacre.g:7101:2: ( ( ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) | ( () otherlv_5= 'not' ) | ( () otherlv_7= 'first' ) | ( () otherlv_9= 'length' ) | ( () otherlv_11= '$' ) | ( () otherlv_13= 'full' ) | ( () otherlv_15= 'dequeue' ) | ( () otherlv_17= 'empty' ) ) ( (lv_child_18_0= ruleUnaryExpression ) ) ) | this_Projection_19= ruleProjection ) + int alt118=2; + int LA118_0 = input.LA(1); + + if ( ((LA118_0>=63 && LA118_0<=64)||(LA118_0>=95 && LA118_0<=101)) ) { + alt118=1; + } + else if ( (LA118_0==RULE_ID||LA118_0==RULE_INT||LA118_0==16||LA118_0==41||LA118_0==51||LA118_0==103||LA118_0==105||(LA118_0>=107 && LA118_0<=110)) ) { + alt118=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 118, 0, input); + + throw nvae; + } + switch (alt118) { + case 1 : + // InternalFiacre.g:7102:3: ( ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) | ( () otherlv_5= 'not' ) | ( () otherlv_7= 'first' ) | ( () otherlv_9= 'length' ) | ( () otherlv_11= '$' ) | ( () otherlv_13= 'full' ) | ( () otherlv_15= 'dequeue' ) | ( () otherlv_17= 'empty' ) ) ( (lv_child_18_0= ruleUnaryExpression ) ) ) + { + // InternalFiacre.g:7102:3: ( ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) | ( () otherlv_5= 'not' ) | ( () otherlv_7= 'first' ) | ( () otherlv_9= 'length' ) | ( () otherlv_11= '$' ) | ( () otherlv_13= 'full' ) | ( () otherlv_15= 'dequeue' ) | ( () otherlv_17= 'empty' ) ) ( (lv_child_18_0= ruleUnaryExpression ) ) ) + // InternalFiacre.g:7103:4: ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) | ( () otherlv_5= 'not' ) | ( () otherlv_7= 'first' ) | ( () otherlv_9= 'length' ) | ( () otherlv_11= '$' ) | ( () otherlv_13= 'full' ) | ( () otherlv_15= 'dequeue' ) | ( () otherlv_17= 'empty' ) ) ( (lv_child_18_0= ruleUnaryExpression ) ) + { + // InternalFiacre.g:7103:4: ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) | ( () otherlv_5= 'not' ) | ( () otherlv_7= 'first' ) | ( () otherlv_9= 'length' ) | ( () otherlv_11= '$' ) | ( () otherlv_13= 'full' ) | ( () otherlv_15= 'dequeue' ) | ( () otherlv_17= 'empty' ) ) + int alt117=9; + switch ( input.LA(1) ) { + case 63: + { + alt117=1; + } + break; + case 64: + { + alt117=2; + } + break; + case 95: + { + alt117=3; + } + break; + case 96: + { + alt117=4; + } + break; + case 97: + { + alt117=5; + } + break; + case 98: + { + alt117=6; + } + break; + case 99: + { + alt117=7; + } + break; + case 100: + { + alt117=8; + } + break; + case 101: + { + alt117=9; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 117, 0, input); + + throw nvae; + } + + switch (alt117) { + case 1 : + // InternalFiacre.g:7104:5: ( () otherlv_1= '+' ) + { + // InternalFiacre.g:7104:5: ( () otherlv_1= '+' ) + // InternalFiacre.g:7105:6: () otherlv_1= '+' + { + // InternalFiacre.g:7105:6: () + // InternalFiacre.g:7106:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryPlusExpressionAction_0_0_0_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,63,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getUnaryExpressionAccess().getPlusSignKeyword_0_0_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:7121:5: ( () otherlv_3= '-' ) + { + // InternalFiacre.g:7121:5: ( () otherlv_3= '-' ) + // InternalFiacre.g:7122:6: () otherlv_3= '-' + { + // InternalFiacre.g:7122:6: () + // InternalFiacre.g:7123:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryMinusExpressionAction_0_0_1_0(), + current); + + } + + } + + otherlv_3=(Token)match(input,64,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getUnaryExpressionAccess().getHyphenMinusKeyword_0_0_1_1()); + + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:7138:5: ( () otherlv_5= 'not' ) + { + // InternalFiacre.g:7138:5: ( () otherlv_5= 'not' ) + // InternalFiacre.g:7139:6: () otherlv_5= 'not' + { + // InternalFiacre.g:7139:6: () + // InternalFiacre.g:7140:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryNegationExpressionAction_0_0_2_0(), + current); + + } + + } + + otherlv_5=(Token)match(input,95,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getUnaryExpressionAccess().getNotKeyword_0_0_2_1()); + + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:7155:5: ( () otherlv_7= 'first' ) + { + // InternalFiacre.g:7155:5: ( () otherlv_7= 'first' ) + // InternalFiacre.g:7156:6: () otherlv_7= 'first' + { + // InternalFiacre.g:7156:6: () + // InternalFiacre.g:7157:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryFirstExpressionAction_0_0_3_0(), + current); + + } + + } + + otherlv_7=(Token)match(input,96,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getUnaryExpressionAccess().getFirstKeyword_0_0_3_1()); + + } + + } + + + } + break; + case 5 : + // InternalFiacre.g:7172:5: ( () otherlv_9= 'length' ) + { + // InternalFiacre.g:7172:5: ( () otherlv_9= 'length' ) + // InternalFiacre.g:7173:6: () otherlv_9= 'length' + { + // InternalFiacre.g:7173:6: () + // InternalFiacre.g:7174:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryLengthExpressionAction_0_0_4_0(), + current); + + } + + } + + otherlv_9=(Token)match(input,97,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getUnaryExpressionAccess().getLengthKeyword_0_0_4_1()); + + } + + } + + + } + break; + case 6 : + // InternalFiacre.g:7189:5: ( () otherlv_11= '$' ) + { + // InternalFiacre.g:7189:5: ( () otherlv_11= '$' ) + // InternalFiacre.g:7190:6: () otherlv_11= '$' + { + // InternalFiacre.g:7190:6: () + // InternalFiacre.g:7191:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryCoerceExpressionAction_0_0_5_0(), + current); + + } + + } + + otherlv_11=(Token)match(input,98,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getUnaryExpressionAccess().getDollarSignKeyword_0_0_5_1()); + + } + + } + + + } + break; + case 7 : + // InternalFiacre.g:7206:5: ( () otherlv_13= 'full' ) + { + // InternalFiacre.g:7206:5: ( () otherlv_13= 'full' ) + // InternalFiacre.g:7207:6: () otherlv_13= 'full' + { + // InternalFiacre.g:7207:6: () + // InternalFiacre.g:7208:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryFullExpressionAction_0_0_6_0(), + current); + + } + + } + + otherlv_13=(Token)match(input,99,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_13, grammarAccess.getUnaryExpressionAccess().getFullKeyword_0_0_6_1()); + + } + + } + + + } + break; + case 8 : + // InternalFiacre.g:7223:5: ( () otherlv_15= 'dequeue' ) + { + // InternalFiacre.g:7223:5: ( () otherlv_15= 'dequeue' ) + // InternalFiacre.g:7224:6: () otherlv_15= 'dequeue' + { + // InternalFiacre.g:7224:6: () + // InternalFiacre.g:7225:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryDeQueueExpressionAction_0_0_7_0(), + current); + + } + + } + + otherlv_15=(Token)match(input,100,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_15, grammarAccess.getUnaryExpressionAccess().getDequeueKeyword_0_0_7_1()); + + } + + } + + + } + break; + case 9 : + // InternalFiacre.g:7240:5: ( () otherlv_17= 'empty' ) + { + // InternalFiacre.g:7240:5: ( () otherlv_17= 'empty' ) + // InternalFiacre.g:7241:6: () otherlv_17= 'empty' + { + // InternalFiacre.g:7241:6: () + // InternalFiacre.g:7242:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryEmptyExpressionAction_0_0_8_0(), + current); + + } + + } + + otherlv_17=(Token)match(input,101,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_17, grammarAccess.getUnaryExpressionAccess().getEmptyKeyword_0_0_8_1()); + + } + + } + + + } + break; + + } + + // InternalFiacre.g:7257:4: ( (lv_child_18_0= ruleUnaryExpression ) ) + // InternalFiacre.g:7258:5: (lv_child_18_0= ruleUnaryExpression ) + { + // InternalFiacre.g:7258:5: (lv_child_18_0= ruleUnaryExpression ) + // InternalFiacre.g:7259:6: lv_child_18_0= ruleUnaryExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_child_18_0=ruleUnaryExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnaryExpressionRule()); + } + set( + current, + "child", + lv_child_18_0, + "fr.irit.fiacre.xtext.Fiacre.UnaryExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:7278:3: this_Projection_19= ruleProjection + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getProjectionParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_Projection_19=ruleProjection(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Projection_19; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleUnaryExpression" + + + // $ANTLR start "entryRuleProjection" + // InternalFiacre.g:7293:1: entryRuleProjection returns [EObject current=null] : iv_ruleProjection= ruleProjection EOF ; + public final EObject entryRuleProjection() throws RecognitionException { + EObject current = null; + + EObject iv_ruleProjection = null; + + + try { + // InternalFiacre.g:7293:51: (iv_ruleProjection= ruleProjection EOF ) + // InternalFiacre.g:7294:2: iv_ruleProjection= ruleProjection EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getProjectionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleProjection=ruleProjection(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleProjection; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleProjection" + + + // $ANTLR start "ruleProjection" + // InternalFiacre.g:7300:1: ruleProjection returns [EObject current=null] : (this_AtomicExpression_0= ruleAtomicExpression ( () otherlv_2= '^' ( (lv_field_3_0= ruleAtomicExpression ) ) )? ) ; + public final EObject ruleProjection() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_AtomicExpression_0 = null; + + EObject lv_field_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:7306:2: ( (this_AtomicExpression_0= ruleAtomicExpression ( () otherlv_2= '^' ( (lv_field_3_0= ruleAtomicExpression ) ) )? ) ) + // InternalFiacre.g:7307:2: (this_AtomicExpression_0= ruleAtomicExpression ( () otherlv_2= '^' ( (lv_field_3_0= ruleAtomicExpression ) ) )? ) + { + // InternalFiacre.g:7307:2: (this_AtomicExpression_0= ruleAtomicExpression ( () otherlv_2= '^' ( (lv_field_3_0= ruleAtomicExpression ) ) )? ) + // InternalFiacre.g:7308:3: this_AtomicExpression_0= ruleAtomicExpression ( () otherlv_2= '^' ( (lv_field_3_0= ruleAtomicExpression ) ) )? + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProjectionAccess().getAtomicExpressionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_93); + this_AtomicExpression_0=ruleAtomicExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AtomicExpression_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:7319:3: ( () otherlv_2= '^' ( (lv_field_3_0= ruleAtomicExpression ) ) )? + int alt119=2; + int LA119_0 = input.LA(1); + + if ( (LA119_0==102) ) { + alt119=1; + } + switch (alt119) { + case 1 : + // InternalFiacre.g:7320:4: () otherlv_2= '^' ( (lv_field_3_0= ruleAtomicExpression ) ) + { + // InternalFiacre.g:7320:4: () + // InternalFiacre.g:7321:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getProjectionAccess().getProjectionChannelAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,102,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getProjectionAccess().getCircumflexAccentKeyword_1_1()); + + } + // InternalFiacre.g:7334:4: ( (lv_field_3_0= ruleAtomicExpression ) ) + // InternalFiacre.g:7335:5: (lv_field_3_0= ruleAtomicExpression ) + { + // InternalFiacre.g:7335:5: (lv_field_3_0= ruleAtomicExpression ) + // InternalFiacre.g:7336:6: lv_field_3_0= ruleAtomicExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getProjectionAccess().getFieldAtomicExpressionParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_field_3_0=ruleAtomicExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProjectionRule()); + } + set( + current, + "field", + lv_field_3_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleProjection" + + + // $ANTLR start "entryRuleAtomicExpression" + // InternalFiacre.g:7358:1: entryRuleAtomicExpression returns [EObject current=null] : iv_ruleAtomicExpression= ruleAtomicExpression EOF ; + public final EObject entryRuleAtomicExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAtomicExpression = null; + + + try { + // InternalFiacre.g:7358:57: (iv_ruleAtomicExpression= ruleAtomicExpression EOF ) + // InternalFiacre.g:7359:2: iv_ruleAtomicExpression= ruleAtomicExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAtomicExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleAtomicExpression=ruleAtomicExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAtomicExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAtomicExpression" + + + // $ANTLR start "ruleAtomicExpression" + // InternalFiacre.g:7365:1: ruleAtomicExpression returns [EObject current=null] : (this_IdentifierExpression_0= ruleIdentifierExpression | this_ReferenceExpression_1= ruleReferenceExpression | this_LiteralExpression_2= ruleLiteralExpression | this_RecordExpression_3= ruleRecordExpression | this_ArrayExpression_4= ruleArrayExpression | this_QueueExpression_5= ruleQueueExpression | this_EnqueueExpression_6= ruleEnqueueExpression | this_AppendExpression_7= ruleAppendExpression | (otherlv_8= '(' this_Expression_9= ruleExpression otherlv_10= ')' ) ) ; + public final EObject ruleAtomicExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_8=null; + Token otherlv_10=null; + EObject this_IdentifierExpression_0 = null; + + EObject this_ReferenceExpression_1 = null; + + EObject this_LiteralExpression_2 = null; + + EObject this_RecordExpression_3 = null; + + EObject this_ArrayExpression_4 = null; + + EObject this_QueueExpression_5 = null; + + EObject this_EnqueueExpression_6 = null; + + EObject this_AppendExpression_7 = null; + + EObject this_Expression_9 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:7371:2: ( (this_IdentifierExpression_0= ruleIdentifierExpression | this_ReferenceExpression_1= ruleReferenceExpression | this_LiteralExpression_2= ruleLiteralExpression | this_RecordExpression_3= ruleRecordExpression | this_ArrayExpression_4= ruleArrayExpression | this_QueueExpression_5= ruleQueueExpression | this_EnqueueExpression_6= ruleEnqueueExpression | this_AppendExpression_7= ruleAppendExpression | (otherlv_8= '(' this_Expression_9= ruleExpression otherlv_10= ')' ) ) ) + // InternalFiacre.g:7372:2: (this_IdentifierExpression_0= ruleIdentifierExpression | this_ReferenceExpression_1= ruleReferenceExpression | this_LiteralExpression_2= ruleLiteralExpression | this_RecordExpression_3= ruleRecordExpression | this_ArrayExpression_4= ruleArrayExpression | this_QueueExpression_5= ruleQueueExpression | this_EnqueueExpression_6= ruleEnqueueExpression | this_AppendExpression_7= ruleAppendExpression | (otherlv_8= '(' this_Expression_9= ruleExpression otherlv_10= ')' ) ) + { + // InternalFiacre.g:7372:2: (this_IdentifierExpression_0= ruleIdentifierExpression | this_ReferenceExpression_1= ruleReferenceExpression | this_LiteralExpression_2= ruleLiteralExpression | this_RecordExpression_3= ruleRecordExpression | this_ArrayExpression_4= ruleArrayExpression | this_QueueExpression_5= ruleQueueExpression | this_EnqueueExpression_6= ruleEnqueueExpression | this_AppendExpression_7= ruleAppendExpression | (otherlv_8= '(' this_Expression_9= ruleExpression otherlv_10= ')' ) ) + int alt120=9; + switch ( input.LA(1) ) { + case RULE_ID: + { + alt120=1; + } + break; + case 51: + { + alt120=2; + } + break; + case RULE_INT: + case 109: + case 110: + { + alt120=3; + } + break; + case 103: + { + alt120=4; + } + break; + case 41: + { + alt120=5; + } + break; + case 105: + { + alt120=6; + } + break; + case 107: + { + alt120=7; + } + break; + case 108: + { + alt120=8; + } + break; + case 16: + { + alt120=9; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 120, 0, input); + + throw nvae; + } + + switch (alt120) { + case 1 : + // InternalFiacre.g:7373:3: this_IdentifierExpression_0= ruleIdentifierExpression + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getIdentifierExpressionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_IdentifierExpression_0=ruleIdentifierExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_IdentifierExpression_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:7385:3: this_ReferenceExpression_1= ruleReferenceExpression + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getReferenceExpressionParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ReferenceExpression_1=ruleReferenceExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ReferenceExpression_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:7397:3: this_LiteralExpression_2= ruleLiteralExpression + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getLiteralExpressionParserRuleCall_2()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_LiteralExpression_2=ruleLiteralExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LiteralExpression_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 4 : + // InternalFiacre.g:7409:3: this_RecordExpression_3= ruleRecordExpression + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getRecordExpressionParserRuleCall_3()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_RecordExpression_3=ruleRecordExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_RecordExpression_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 5 : + // InternalFiacre.g:7421:3: this_ArrayExpression_4= ruleArrayExpression + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getArrayExpressionParserRuleCall_4()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ArrayExpression_4=ruleArrayExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ArrayExpression_4; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 6 : + // InternalFiacre.g:7433:3: this_QueueExpression_5= ruleQueueExpression + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getQueueExpressionParserRuleCall_5()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_QueueExpression_5=ruleQueueExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_QueueExpression_5; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 7 : + // InternalFiacre.g:7445:3: this_EnqueueExpression_6= ruleEnqueueExpression + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getEnqueueExpressionParserRuleCall_6()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_EnqueueExpression_6=ruleEnqueueExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_EnqueueExpression_6; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 8 : + // InternalFiacre.g:7457:3: this_AppendExpression_7= ruleAppendExpression + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getAppendExpressionParserRuleCall_7()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_AppendExpression_7=ruleAppendExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AppendExpression_7; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 9 : + // InternalFiacre.g:7469:3: (otherlv_8= '(' this_Expression_9= ruleExpression otherlv_10= ')' ) + { + // InternalFiacre.g:7469:3: (otherlv_8= '(' this_Expression_9= ruleExpression otherlv_10= ')' ) + // InternalFiacre.g:7470:4: otherlv_8= '(' this_Expression_9= ruleExpression otherlv_10= ')' + { + otherlv_8=(Token)match(input,16,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_8_0()); + + } + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_8_1()); + + } + pushFollow(FollowSets000.FOLLOW_62); + this_Expression_9=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Expression_9; + afterParserOrEnumRuleCall(); + + } + otherlv_10=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_8_2()); + + } + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAtomicExpression" + + + // $ANTLR start "entryRuleReferenceExpression" + // InternalFiacre.g:7494:1: entryRuleReferenceExpression returns [EObject current=null] : iv_ruleReferenceExpression= ruleReferenceExpression EOF ; + public final EObject entryRuleReferenceExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleReferenceExpression = null; + + + try { + // InternalFiacre.g:7494:60: (iv_ruleReferenceExpression= ruleReferenceExpression EOF ) + // InternalFiacre.g:7495:2: iv_ruleReferenceExpression= ruleReferenceExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getReferenceExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleReferenceExpression=ruleReferenceExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleReferenceExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleReferenceExpression" + + + // $ANTLR start "ruleReferenceExpression" + // InternalFiacre.g:7501:1: ruleReferenceExpression returns [EObject current=null] : (otherlv_0= '&' ( (otherlv_1= RULE_ID ) ) ) ; + public final EObject ruleReferenceExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalFiacre.g:7507:2: ( (otherlv_0= '&' ( (otherlv_1= RULE_ID ) ) ) ) + // InternalFiacre.g:7508:2: (otherlv_0= '&' ( (otherlv_1= RULE_ID ) ) ) + { + // InternalFiacre.g:7508:2: (otherlv_0= '&' ( (otherlv_1= RULE_ID ) ) ) + // InternalFiacre.g:7509:3: otherlv_0= '&' ( (otherlv_1= RULE_ID ) ) + { + otherlv_0=(Token)match(input,51,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getReferenceExpressionAccess().getAmpersandKeyword_0()); + + } + // InternalFiacre.g:7513:3: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:7514:4: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:7514:4: (otherlv_1= RULE_ID ) + // InternalFiacre.g:7515:5: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getReferenceExpressionRule()); + } + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseCrossReference_1_0()); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleReferenceExpression" + + + // $ANTLR start "entryRuleIdentifierExpression" + // InternalFiacre.g:7533:1: entryRuleIdentifierExpression returns [EObject current=null] : iv_ruleIdentifierExpression= ruleIdentifierExpression EOF ; + public final EObject entryRuleIdentifierExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleIdentifierExpression = null; + + + try { + // InternalFiacre.g:7533:61: (iv_ruleIdentifierExpression= ruleIdentifierExpression EOF ) + // InternalFiacre.g:7534:2: iv_ruleIdentifierExpression= ruleIdentifierExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getIdentifierExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleIdentifierExpression=ruleIdentifierExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleIdentifierExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleIdentifierExpression" + + + // $ANTLR start "ruleIdentifierExpression" + // InternalFiacre.g:7540:1: ruleIdentifierExpression returns [EObject current=null] : ( ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' ) | ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' ) | (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) )* ) ) ; + public final EObject ruleIdentifierExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + Token otherlv_8=null; + Token otherlv_11=null; + Token otherlv_13=null; + Token otherlv_14=null; + Token otherlv_16=null; + EObject lv_parameters_3_0 = null; + + EObject lv_parameters_5_0 = null; + + EObject lv_indexes_10_0 = null; + + EObject lv_indexes_12_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:7546:2: ( ( ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' ) | ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' ) | (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) )* ) ) ) + // InternalFiacre.g:7547:2: ( ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' ) | ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' ) | (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) )* ) ) + { + // InternalFiacre.g:7547:2: ( ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' ) | ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' ) | (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) )* ) ) + int alt125=2; + int LA125_0 = input.LA(1); + + if ( (LA125_0==RULE_ID) ) { + int LA125_1 = input.LA(2); + + if ( (synpred178_InternalFiacre()) ) { + alt125=1; + } + else if ( (true) ) { + alt125=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 125, 1, input); + + throw nvae; + } + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 125, 0, input); + + throw nvae; + } + switch (alt125) { + case 1 : + // InternalFiacre.g:7548:3: ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' ) + { + // InternalFiacre.g:7548:3: ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' ) + // InternalFiacre.g:7549:4: () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' + { + // InternalFiacre.g:7549:4: () + // InternalFiacre.g:7550:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getIdentifierExpressionAccess().getConstructionExpressionAction_0_0(), + current); + + } + + } + + // InternalFiacre.g:7559:4: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:7560:5: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:7560:5: (otherlv_1= RULE_ID ) + // InternalFiacre.g:7561:6: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getIdentifierExpressionRule()); + } + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_9); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_0_1_0()); + + } + + } + + + } + + otherlv_2=(Token)match(input,16,FollowSets000.FOLLOW_94); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getIdentifierExpressionAccess().getLeftParenthesisKeyword_0_2()); + + } + // InternalFiacre.g:7579:4: ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? + int alt122=2; + int LA122_0 = input.LA(1); + + if ( (LA122_0==RULE_ID||LA122_0==RULE_INT||LA122_0==16||LA122_0==41||LA122_0==51||(LA122_0>=63 && LA122_0<=64)||(LA122_0>=83 && LA122_0<=84)||(LA122_0>=95 && LA122_0<=101)||LA122_0==103||LA122_0==105||(LA122_0>=107 && LA122_0<=110)) ) { + alt122=1; + } + switch (alt122) { + case 1 : + // InternalFiacre.g:7580:5: ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* + { + // InternalFiacre.g:7580:5: ( (lv_parameters_3_0= ruleExpression ) ) + // InternalFiacre.g:7581:6: (lv_parameters_3_0= ruleExpression ) + { + // InternalFiacre.g:7581:6: (lv_parameters_3_0= ruleExpression ) + // InternalFiacre.g:7582:7: lv_parameters_3_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_3_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getIdentifierExpressionRule()); + } + add( + current, + "parameters", + lv_parameters_3_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:7599:5: (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* + loop121: + do { + int alt121=2; + int LA121_0 = input.LA(1); + + if ( (LA121_0==17) ) { + alt121=1; + } + + + switch (alt121) { + case 1 : + // InternalFiacre.g:7600:6: otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) + { + otherlv_4=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_0_3_1_0()); + + } + // InternalFiacre.g:7604:6: ( (lv_parameters_5_0= ruleExpression ) ) + // InternalFiacre.g:7605:7: (lv_parameters_5_0= ruleExpression ) + { + // InternalFiacre.g:7605:7: (lv_parameters_5_0= ruleExpression ) + // InternalFiacre.g:7606:8: lv_parameters_5_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_5_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getIdentifierExpressionRule()); + } + add( + current, + "parameters", + lv_parameters_5_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop121; + } + } while (true); + + + } + break; + + } + + otherlv_6=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getIdentifierExpressionAccess().getRightParenthesisKeyword_0_4()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:7631:3: ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' ) | (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) )* ) + { + // InternalFiacre.g:7631:3: ( ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' ) | (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) )* ) + // InternalFiacre.g:7632:4: ( (otherlv_7= RULE_ID ) ) ( (otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' ) | (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) )* + { + // InternalFiacre.g:7632:4: ( (otherlv_7= RULE_ID ) ) + // InternalFiacre.g:7633:5: (otherlv_7= RULE_ID ) + { + // InternalFiacre.g:7633:5: (otherlv_7= RULE_ID ) + // InternalFiacre.g:7634:6: otherlv_7= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getIdentifierExpressionRule()); + } + + } + otherlv_7=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_65); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseCrossReference_1_0_0()); + + } + + } + + + } + + // InternalFiacre.g:7648:4: ( (otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' ) | (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) )* + loop124: + do { + int alt124=3; + int LA124_0 = input.LA(1); + + if ( (LA124_0==65) ) { + int LA124_2 = input.LA(2); + + if ( (LA124_2==RULE_ID) ) { + int LA124_4 = input.LA(3); + + if ( (synpred181_InternalFiacre()) ) { + alt124=2; + } + + + } + + + } + else if ( (LA124_0==41) ) { + alt124=1; + } + + + switch (alt124) { + case 1 : + // InternalFiacre.g:7649:5: (otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' ) + { + // InternalFiacre.g:7649:5: (otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' ) + // InternalFiacre.g:7650:6: otherlv_8= '[' () ( (lv_indexes_10_0= ruleExpression ) ) (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* otherlv_13= ']' + { + otherlv_8=(Token)match(input,41,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getIdentifierExpressionAccess().getLeftSquareBracketKeyword_1_1_0_0()); + + } + // InternalFiacre.g:7654:6: () + // InternalFiacre.g:7655:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getIdentifierExpressionAccess().getArrayAccessExpressionChildAction_1_1_0_1(), + current); + + } + + } + + // InternalFiacre.g:7664:6: ( (lv_indexes_10_0= ruleExpression ) ) + // InternalFiacre.g:7665:7: (lv_indexes_10_0= ruleExpression ) + { + // InternalFiacre.g:7665:7: (lv_indexes_10_0= ruleExpression ) + // InternalFiacre.g:7666:8: lv_indexes_10_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_32); + lv_indexes_10_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getIdentifierExpressionRule()); + } + add( + current, + "indexes", + lv_indexes_10_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:7683:6: (otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) )* + loop123: + do { + int alt123=2; + int LA123_0 = input.LA(1); + + if ( (LA123_0==17) ) { + alt123=1; + } + + + switch (alt123) { + case 1 : + // InternalFiacre.g:7684:7: otherlv_11= ',' ( (lv_indexes_12_0= ruleExpression ) ) + { + otherlv_11=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getIdentifierExpressionAccess().getCommaKeyword_1_1_0_3_0()); + + } + // InternalFiacre.g:7688:7: ( (lv_indexes_12_0= ruleExpression ) ) + // InternalFiacre.g:7689:8: (lv_indexes_12_0= ruleExpression ) + { + // InternalFiacre.g:7689:8: (lv_indexes_12_0= ruleExpression ) + // InternalFiacre.g:7690:9: lv_indexes_12_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIdentifierExpressionAccess().getIndexesExpressionParserRuleCall_1_1_0_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_32); + lv_indexes_12_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getIdentifierExpressionRule()); + } + add( + current, + "indexes", + lv_indexes_12_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop123; + } + } while (true); + + otherlv_13=(Token)match(input,42,FollowSets000.FOLLOW_65); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_13, grammarAccess.getIdentifierExpressionAccess().getRightSquareBracketKeyword_1_1_0_4()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:7714:5: (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) + { + // InternalFiacre.g:7714:5: (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) + // InternalFiacre.g:7715:6: otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) + { + otherlv_14=(Token)match(input,65,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_14, grammarAccess.getIdentifierExpressionAccess().getFullStopKeyword_1_1_1_0()); + + } + // InternalFiacre.g:7719:6: () + // InternalFiacre.g:7720:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getIdentifierExpressionAccess().getRecordAccessExpressionChildAction_1_1_1_1(), + current); + + } + + } + + // InternalFiacre.g:7729:6: ( (otherlv_16= RULE_ID ) ) + // InternalFiacre.g:7730:7: (otherlv_16= RULE_ID ) + { + // InternalFiacre.g:7730:7: (otherlv_16= RULE_ID ) + // InternalFiacre.g:7731:8: otherlv_16= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getIdentifierExpressionRule()); + } + + } + otherlv_16=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_65); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_16, grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0()); + + } + + } + + + } + + + } + + + } + break; + + default : + break loop124; + } + } while (true); + + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleIdentifierExpression" + + + // $ANTLR start "entryRuleRecordExpression" + // InternalFiacre.g:7752:1: entryRuleRecordExpression returns [EObject current=null] : iv_ruleRecordExpression= ruleRecordExpression EOF ; + public final EObject entryRuleRecordExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRecordExpression = null; + + + try { + // InternalFiacre.g:7752:57: (iv_ruleRecordExpression= ruleRecordExpression EOF ) + // InternalFiacre.g:7753:2: iv_ruleRecordExpression= ruleRecordExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getRecordExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleRecordExpression=ruleRecordExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleRecordExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRecordExpression" + + + // $ANTLR start "ruleRecordExpression" + // InternalFiacre.g:7759:1: ruleRecordExpression returns [EObject current=null] : (otherlv_0= '{' ( (lv_fields_1_0= ruleFieldExpression ) ) (otherlv_2= ',' ( (lv_fields_3_0= ruleFieldExpression ) ) )* otherlv_4= '}' ) ; + public final EObject ruleRecordExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + EObject lv_fields_1_0 = null; + + EObject lv_fields_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:7765:2: ( (otherlv_0= '{' ( (lv_fields_1_0= ruleFieldExpression ) ) (otherlv_2= ',' ( (lv_fields_3_0= ruleFieldExpression ) ) )* otherlv_4= '}' ) ) + // InternalFiacre.g:7766:2: (otherlv_0= '{' ( (lv_fields_1_0= ruleFieldExpression ) ) (otherlv_2= ',' ( (lv_fields_3_0= ruleFieldExpression ) ) )* otherlv_4= '}' ) + { + // InternalFiacre.g:7766:2: (otherlv_0= '{' ( (lv_fields_1_0= ruleFieldExpression ) ) (otherlv_2= ',' ( (lv_fields_3_0= ruleFieldExpression ) ) )* otherlv_4= '}' ) + // InternalFiacre.g:7767:3: otherlv_0= '{' ( (lv_fields_1_0= ruleFieldExpression ) ) (otherlv_2= ',' ( (lv_fields_3_0= ruleFieldExpression ) ) )* otherlv_4= '}' + { + otherlv_0=(Token)match(input,103,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getRecordExpressionAccess().getLeftCurlyBracketKeyword_0()); + + } + // InternalFiacre.g:7771:3: ( (lv_fields_1_0= ruleFieldExpression ) ) + // InternalFiacre.g:7772:4: (lv_fields_1_0= ruleFieldExpression ) + { + // InternalFiacre.g:7772:4: (lv_fields_1_0= ruleFieldExpression ) + // InternalFiacre.g:7773:5: lv_fields_1_0= ruleFieldExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_95); + lv_fields_1_0=ruleFieldExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRecordExpressionRule()); + } + add( + current, + "fields", + lv_fields_1_0, + "fr.irit.fiacre.xtext.Fiacre.FieldExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:7790:3: (otherlv_2= ',' ( (lv_fields_3_0= ruleFieldExpression ) ) )* + loop126: + do { + int alt126=2; + int LA126_0 = input.LA(1); + + if ( (LA126_0==17) ) { + alt126=1; + } + + + switch (alt126) { + case 1 : + // InternalFiacre.g:7791:4: otherlv_2= ',' ( (lv_fields_3_0= ruleFieldExpression ) ) + { + otherlv_2=(Token)match(input,17,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getRecordExpressionAccess().getCommaKeyword_2_0()); + + } + // InternalFiacre.g:7795:4: ( (lv_fields_3_0= ruleFieldExpression ) ) + // InternalFiacre.g:7796:5: (lv_fields_3_0= ruleFieldExpression ) + { + // InternalFiacre.g:7796:5: (lv_fields_3_0= ruleFieldExpression ) + // InternalFiacre.g:7797:6: lv_fields_3_0= ruleFieldExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getRecordExpressionAccess().getFieldsFieldExpressionParserRuleCall_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_95); + lv_fields_3_0=ruleFieldExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRecordExpressionRule()); + } + add( + current, + "fields", + lv_fields_3_0, + "fr.irit.fiacre.xtext.Fiacre.FieldExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop126; + } + } while (true); + + otherlv_4=(Token)match(input,104,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getRecordExpressionAccess().getRightCurlyBracketKeyword_3()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRecordExpression" + + + // $ANTLR start "entryRuleFieldExpression" + // InternalFiacre.g:7823:1: entryRuleFieldExpression returns [EObject current=null] : iv_ruleFieldExpression= ruleFieldExpression EOF ; + public final EObject entryRuleFieldExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleFieldExpression = null; + + + try { + // InternalFiacre.g:7823:56: (iv_ruleFieldExpression= ruleFieldExpression EOF ) + // InternalFiacre.g:7824:2: iv_ruleFieldExpression= ruleFieldExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getFieldExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleFieldExpression=ruleFieldExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleFieldExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleFieldExpression" + + + // $ANTLR start "ruleFieldExpression" + // InternalFiacre.g:7830:1: ruleFieldExpression returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= ruleExpression ) ) ) ; + public final EObject ruleFieldExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + EObject lv_value_2_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:7836:2: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= ruleExpression ) ) ) ) + // InternalFiacre.g:7837:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= ruleExpression ) ) ) + { + // InternalFiacre.g:7837:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= ruleExpression ) ) ) + // InternalFiacre.g:7838:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= ruleExpression ) ) + { + // InternalFiacre.g:7838:3: ( (otherlv_0= RULE_ID ) ) + // InternalFiacre.g:7839:4: (otherlv_0= RULE_ID ) + { + // InternalFiacre.g:7839:4: (otherlv_0= RULE_ID ) + // InternalFiacre.g:7840:5: otherlv_0= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getFieldExpressionRule()); + } + + } + otherlv_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_96); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseCrossReference_0_0()); + + } + + } + + + } + + otherlv_1=(Token)match(input,88,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getFieldExpressionAccess().getEqualsSignKeyword_1()); + + } + // InternalFiacre.g:7858:3: ( (lv_value_2_0= ruleExpression ) ) + // InternalFiacre.g:7859:4: (lv_value_2_0= ruleExpression ) + { + // InternalFiacre.g:7859:4: (lv_value_2_0= ruleExpression ) + // InternalFiacre.g:7860:5: lv_value_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getFieldExpressionAccess().getValueExpressionParserRuleCall_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_value_2_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getFieldExpressionRule()); + } + set( + current, + "value", + lv_value_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleFieldExpression" + + + // $ANTLR start "entryRuleArrayExpression" + // InternalFiacre.g:7881:1: entryRuleArrayExpression returns [EObject current=null] : iv_ruleArrayExpression= ruleArrayExpression EOF ; + public final EObject entryRuleArrayExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleArrayExpression = null; + + + try { + // InternalFiacre.g:7881:56: (iv_ruleArrayExpression= ruleArrayExpression EOF ) + // InternalFiacre.g:7882:2: iv_ruleArrayExpression= ruleArrayExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getArrayExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleArrayExpression=ruleArrayExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleArrayExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleArrayExpression" + + + // $ANTLR start "ruleArrayExpression" + // InternalFiacre.g:7888:1: ruleArrayExpression returns [EObject current=null] : ( () otherlv_1= '[' ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? otherlv_5= ']' ) ; + public final EObject ruleArrayExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + EObject lv_values_2_0 = null; + + EObject lv_values_4_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:7894:2: ( ( () otherlv_1= '[' ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? otherlv_5= ']' ) ) + // InternalFiacre.g:7895:2: ( () otherlv_1= '[' ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? otherlv_5= ']' ) + { + // InternalFiacre.g:7895:2: ( () otherlv_1= '[' ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? otherlv_5= ']' ) + // InternalFiacre.g:7896:3: () otherlv_1= '[' ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? otherlv_5= ']' + { + // InternalFiacre.g:7896:3: () + // InternalFiacre.g:7897:4: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getArrayExpressionAccess().getArrayExpressionAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,41,FollowSets000.FOLLOW_97); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getArrayExpressionAccess().getLeftSquareBracketKeyword_1()); + + } + // InternalFiacre.g:7910:3: ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? + int alt128=2; + int LA128_0 = input.LA(1); + + if ( (LA128_0==RULE_ID||LA128_0==RULE_INT||LA128_0==16||LA128_0==41||LA128_0==51||(LA128_0>=63 && LA128_0<=64)||(LA128_0>=83 && LA128_0<=84)||(LA128_0>=95 && LA128_0<=101)||LA128_0==103||LA128_0==105||(LA128_0>=107 && LA128_0<=110)) ) { + alt128=1; + } + switch (alt128) { + case 1 : + // InternalFiacre.g:7911:4: ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* + { + // InternalFiacre.g:7911:4: ( (lv_values_2_0= ruleExpression ) ) + // InternalFiacre.g:7912:5: (lv_values_2_0= ruleExpression ) + { + // InternalFiacre.g:7912:5: (lv_values_2_0= ruleExpression ) + // InternalFiacre.g:7913:6: lv_values_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_32); + lv_values_2_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getArrayExpressionRule()); + } + add( + current, + "values", + lv_values_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:7930:4: (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* + loop127: + do { + int alt127=2; + int LA127_0 = input.LA(1); + + if ( (LA127_0==17) ) { + alt127=1; + } + + + switch (alt127) { + case 1 : + // InternalFiacre.g:7931:5: otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) + { + otherlv_3=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getArrayExpressionAccess().getCommaKeyword_2_1_0()); + + } + // InternalFiacre.g:7935:5: ( (lv_values_4_0= ruleExpression ) ) + // InternalFiacre.g:7936:6: (lv_values_4_0= ruleExpression ) + { + // InternalFiacre.g:7936:6: (lv_values_4_0= ruleExpression ) + // InternalFiacre.g:7937:7: lv_values_4_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getArrayExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_32); + lv_values_4_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getArrayExpressionRule()); + } + add( + current, + "values", + lv_values_4_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop127; + } + } while (true); + + + } + break; + + } + + otherlv_5=(Token)match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getArrayExpressionAccess().getRightSquareBracketKeyword_3()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleArrayExpression" + + + // $ANTLR start "entryRuleQueueExpression" + // InternalFiacre.g:7964:1: entryRuleQueueExpression returns [EObject current=null] : iv_ruleQueueExpression= ruleQueueExpression EOF ; + public final EObject entryRuleQueueExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleQueueExpression = null; + + + try { + // InternalFiacre.g:7964:56: (iv_ruleQueueExpression= ruleQueueExpression EOF ) + // InternalFiacre.g:7965:2: iv_ruleQueueExpression= ruleQueueExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getQueueExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleQueueExpression=ruleQueueExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleQueueExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleQueueExpression" + + + // $ANTLR start "ruleQueueExpression" + // InternalFiacre.g:7971:1: ruleQueueExpression returns [EObject current=null] : ( () otherlv_1= '{|' ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? otherlv_5= '|}' ) ; + public final EObject ruleQueueExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + EObject lv_values_2_0 = null; + + EObject lv_values_4_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:7977:2: ( ( () otherlv_1= '{|' ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? otherlv_5= '|}' ) ) + // InternalFiacre.g:7978:2: ( () otherlv_1= '{|' ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? otherlv_5= '|}' ) + { + // InternalFiacre.g:7978:2: ( () otherlv_1= '{|' ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? otherlv_5= '|}' ) + // InternalFiacre.g:7979:3: () otherlv_1= '{|' ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? otherlv_5= '|}' + { + // InternalFiacre.g:7979:3: () + // InternalFiacre.g:7980:4: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getQueueExpressionAccess().getQueueExpressionAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,105,FollowSets000.FOLLOW_98); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getQueueExpressionAccess().getLeftCurlyBracketVerticalLineKeyword_1()); + + } + // InternalFiacre.g:7993:3: ( ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* )? + int alt130=2; + int LA130_0 = input.LA(1); + + if ( (LA130_0==RULE_ID||LA130_0==RULE_INT||LA130_0==16||LA130_0==41||LA130_0==51||(LA130_0>=63 && LA130_0<=64)||(LA130_0>=83 && LA130_0<=84)||(LA130_0>=95 && LA130_0<=101)||LA130_0==103||LA130_0==105||(LA130_0>=107 && LA130_0<=110)) ) { + alt130=1; + } + switch (alt130) { + case 1 : + // InternalFiacre.g:7994:4: ( (lv_values_2_0= ruleExpression ) ) (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* + { + // InternalFiacre.g:7994:4: ( (lv_values_2_0= ruleExpression ) ) + // InternalFiacre.g:7995:5: (lv_values_2_0= ruleExpression ) + { + // InternalFiacre.g:7995:5: (lv_values_2_0= ruleExpression ) + // InternalFiacre.g:7996:6: lv_values_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_99); + lv_values_2_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getQueueExpressionRule()); + } + add( + current, + "values", + lv_values_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:8013:4: (otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) )* + loop129: + do { + int alt129=2; + int LA129_0 = input.LA(1); + + if ( (LA129_0==17) ) { + alt129=1; + } + + + switch (alt129) { + case 1 : + // InternalFiacre.g:8014:5: otherlv_3= ',' ( (lv_values_4_0= ruleExpression ) ) + { + otherlv_3=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getQueueExpressionAccess().getCommaKeyword_2_1_0()); + + } + // InternalFiacre.g:8018:5: ( (lv_values_4_0= ruleExpression ) ) + // InternalFiacre.g:8019:6: (lv_values_4_0= ruleExpression ) + { + // InternalFiacre.g:8019:6: (lv_values_4_0= ruleExpression ) + // InternalFiacre.g:8020:7: lv_values_4_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQueueExpressionAccess().getValuesExpressionParserRuleCall_2_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_99); + lv_values_4_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getQueueExpressionRule()); + } + add( + current, + "values", + lv_values_4_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop129; + } + } while (true); + + + } + break; + + } + + otherlv_5=(Token)match(input,106,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getQueueExpressionAccess().getVerticalLineRightCurlyBracketKeyword_3()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleQueueExpression" + + + // $ANTLR start "entryRuleEnqueueExpression" + // InternalFiacre.g:8047:1: entryRuleEnqueueExpression returns [EObject current=null] : iv_ruleEnqueueExpression= ruleEnqueueExpression EOF ; + public final EObject entryRuleEnqueueExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleEnqueueExpression = null; + + + try { + // InternalFiacre.g:8047:58: (iv_ruleEnqueueExpression= ruleEnqueueExpression EOF ) + // InternalFiacre.g:8048:2: iv_ruleEnqueueExpression= ruleEnqueueExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getEnqueueExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleEnqueueExpression=ruleEnqueueExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleEnqueueExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleEnqueueExpression" + + + // $ANTLR start "ruleEnqueueExpression" + // InternalFiacre.g:8054:1: ruleEnqueueExpression returns [EObject current=null] : (otherlv_0= 'enqueue' otherlv_1= '(' ( (lv_element_2_0= ruleExpression ) ) otherlv_3= ',' ( (lv_queue_4_0= ruleExpression ) ) otherlv_5= ')' ) ; + public final EObject ruleEnqueueExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + EObject lv_element_2_0 = null; + + EObject lv_queue_4_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:8060:2: ( (otherlv_0= 'enqueue' otherlv_1= '(' ( (lv_element_2_0= ruleExpression ) ) otherlv_3= ',' ( (lv_queue_4_0= ruleExpression ) ) otherlv_5= ')' ) ) + // InternalFiacre.g:8061:2: (otherlv_0= 'enqueue' otherlv_1= '(' ( (lv_element_2_0= ruleExpression ) ) otherlv_3= ',' ( (lv_queue_4_0= ruleExpression ) ) otherlv_5= ')' ) + { + // InternalFiacre.g:8061:2: (otherlv_0= 'enqueue' otherlv_1= '(' ( (lv_element_2_0= ruleExpression ) ) otherlv_3= ',' ( (lv_queue_4_0= ruleExpression ) ) otherlv_5= ')' ) + // InternalFiacre.g:8062:3: otherlv_0= 'enqueue' otherlv_1= '(' ( (lv_element_2_0= ruleExpression ) ) otherlv_3= ',' ( (lv_queue_4_0= ruleExpression ) ) otherlv_5= ')' + { + otherlv_0=(Token)match(input,107,FollowSets000.FOLLOW_9); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getEnqueueExpressionAccess().getEnqueueKeyword_0()); + + } + otherlv_1=(Token)match(input,16,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getEnqueueExpressionAccess().getLeftParenthesisKeyword_1()); + + } + // InternalFiacre.g:8070:3: ( (lv_element_2_0= ruleExpression ) ) + // InternalFiacre.g:8071:4: (lv_element_2_0= ruleExpression ) + { + // InternalFiacre.g:8071:4: (lv_element_2_0= ruleExpression ) + // InternalFiacre.g:8072:5: lv_element_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getEnqueueExpressionAccess().getElementExpressionParserRuleCall_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_element_2_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getEnqueueExpressionRule()); + } + set( + current, + "element", + lv_element_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_3=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getEnqueueExpressionAccess().getCommaKeyword_3()); + + } + // InternalFiacre.g:8093:3: ( (lv_queue_4_0= ruleExpression ) ) + // InternalFiacre.g:8094:4: (lv_queue_4_0= ruleExpression ) + { + // InternalFiacre.g:8094:4: (lv_queue_4_0= ruleExpression ) + // InternalFiacre.g:8095:5: lv_queue_4_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getEnqueueExpressionAccess().getQueueExpressionParserRuleCall_4_0()); + + } + pushFollow(FollowSets000.FOLLOW_62); + lv_queue_4_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getEnqueueExpressionRule()); + } + set( + current, + "queue", + lv_queue_4_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_5=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getEnqueueExpressionAccess().getRightParenthesisKeyword_5()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleEnqueueExpression" + + + // $ANTLR start "entryRuleAppendExpression" + // InternalFiacre.g:8120:1: entryRuleAppendExpression returns [EObject current=null] : iv_ruleAppendExpression= ruleAppendExpression EOF ; + public final EObject entryRuleAppendExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAppendExpression = null; + + + try { + // InternalFiacre.g:8120:57: (iv_ruleAppendExpression= ruleAppendExpression EOF ) + // InternalFiacre.g:8121:2: iv_ruleAppendExpression= ruleAppendExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAppendExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleAppendExpression=ruleAppendExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAppendExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAppendExpression" + + + // $ANTLR start "ruleAppendExpression" + // InternalFiacre.g:8127:1: ruleAppendExpression returns [EObject current=null] : (otherlv_0= 'append' otherlv_1= '(' ( (lv_left_2_0= ruleExpression ) ) otherlv_3= ',' ( (lv_right_4_0= ruleExpression ) ) otherlv_5= ')' ) ; + public final EObject ruleAppendExpression() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + EObject lv_left_2_0 = null; + + EObject lv_right_4_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:8133:2: ( (otherlv_0= 'append' otherlv_1= '(' ( (lv_left_2_0= ruleExpression ) ) otherlv_3= ',' ( (lv_right_4_0= ruleExpression ) ) otherlv_5= ')' ) ) + // InternalFiacre.g:8134:2: (otherlv_0= 'append' otherlv_1= '(' ( (lv_left_2_0= ruleExpression ) ) otherlv_3= ',' ( (lv_right_4_0= ruleExpression ) ) otherlv_5= ')' ) + { + // InternalFiacre.g:8134:2: (otherlv_0= 'append' otherlv_1= '(' ( (lv_left_2_0= ruleExpression ) ) otherlv_3= ',' ( (lv_right_4_0= ruleExpression ) ) otherlv_5= ')' ) + // InternalFiacre.g:8135:3: otherlv_0= 'append' otherlv_1= '(' ( (lv_left_2_0= ruleExpression ) ) otherlv_3= ',' ( (lv_right_4_0= ruleExpression ) ) otherlv_5= ')' + { + otherlv_0=(Token)match(input,108,FollowSets000.FOLLOW_9); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getAppendExpressionAccess().getAppendKeyword_0()); + + } + otherlv_1=(Token)match(input,16,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getAppendExpressionAccess().getLeftParenthesisKeyword_1()); + + } + // InternalFiacre.g:8143:3: ( (lv_left_2_0= ruleExpression ) ) + // InternalFiacre.g:8144:4: (lv_left_2_0= ruleExpression ) + { + // InternalFiacre.g:8144:4: (lv_left_2_0= ruleExpression ) + // InternalFiacre.g:8145:5: lv_left_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAppendExpressionAccess().getLeftExpressionParserRuleCall_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_left_2_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAppendExpressionRule()); + } + set( + current, + "left", + lv_left_2_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_3=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getAppendExpressionAccess().getCommaKeyword_3()); + + } + // InternalFiacre.g:8166:3: ( (lv_right_4_0= ruleExpression ) ) + // InternalFiacre.g:8167:4: (lv_right_4_0= ruleExpression ) + { + // InternalFiacre.g:8167:4: (lv_right_4_0= ruleExpression ) + // InternalFiacre.g:8168:5: lv_right_4_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAppendExpressionAccess().getRightExpressionParserRuleCall_4_0()); + + } + pushFollow(FollowSets000.FOLLOW_62); + lv_right_4_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAppendExpressionRule()); + } + set( + current, + "right", + lv_right_4_0, + "fr.irit.fiacre.xtext.Fiacre.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_5=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getAppendExpressionAccess().getRightParenthesisKeyword_5()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAppendExpression" + + + // $ANTLR start "entryRuleLiteralExpression" + // InternalFiacre.g:8193:1: entryRuleLiteralExpression returns [EObject current=null] : iv_ruleLiteralExpression= ruleLiteralExpression EOF ; + public final EObject entryRuleLiteralExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLiteralExpression = null; + + + try { + // InternalFiacre.g:8193:58: (iv_ruleLiteralExpression= ruleLiteralExpression EOF ) + // InternalFiacre.g:8194:2: iv_ruleLiteralExpression= ruleLiteralExpression EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLiteralExpressionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLiteralExpression=ruleLiteralExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLiteralExpression; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLiteralExpression" + + + // $ANTLR start "ruleLiteralExpression" + // InternalFiacre.g:8200:1: ruleLiteralExpression returns [EObject current=null] : (this_BooleanLiteral_0= ruleBooleanLiteral | this_NaturalLiteral_1= ruleNaturalLiteral ) ; + public final EObject ruleLiteralExpression() throws RecognitionException { + EObject current = null; + + EObject this_BooleanLiteral_0 = null; + + EObject this_NaturalLiteral_1 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:8206:2: ( (this_BooleanLiteral_0= ruleBooleanLiteral | this_NaturalLiteral_1= ruleNaturalLiteral ) ) + // InternalFiacre.g:8207:2: (this_BooleanLiteral_0= ruleBooleanLiteral | this_NaturalLiteral_1= ruleNaturalLiteral ) + { + // InternalFiacre.g:8207:2: (this_BooleanLiteral_0= ruleBooleanLiteral | this_NaturalLiteral_1= ruleNaturalLiteral ) + int alt131=2; + int LA131_0 = input.LA(1); + + if ( ((LA131_0>=109 && LA131_0<=110)) ) { + alt131=1; + } + else if ( (LA131_0==RULE_INT) ) { + alt131=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 131, 0, input); + + throw nvae; + } + switch (alt131) { + case 1 : + // InternalFiacre.g:8208:3: this_BooleanLiteral_0= ruleBooleanLiteral + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLiteralExpressionAccess().getBooleanLiteralParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_BooleanLiteral_0=ruleBooleanLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_BooleanLiteral_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:8220:3: this_NaturalLiteral_1= ruleNaturalLiteral + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLiteralExpressionAccess().getNaturalLiteralParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_NaturalLiteral_1=ruleNaturalLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_NaturalLiteral_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLiteralExpression" + + + // $ANTLR start "entryRuleBooleanLiteral" + // InternalFiacre.g:8235:1: entryRuleBooleanLiteral returns [EObject current=null] : iv_ruleBooleanLiteral= ruleBooleanLiteral EOF ; + public final EObject entryRuleBooleanLiteral() throws RecognitionException { + EObject current = null; + + EObject iv_ruleBooleanLiteral = null; + + + try { + // InternalFiacre.g:8235:55: (iv_ruleBooleanLiteral= ruleBooleanLiteral EOF ) + // InternalFiacre.g:8236:2: iv_ruleBooleanLiteral= ruleBooleanLiteral EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getBooleanLiteralRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleBooleanLiteral=ruleBooleanLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleBooleanLiteral; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleBooleanLiteral" + + + // $ANTLR start "ruleBooleanLiteral" + // InternalFiacre.g:8242:1: ruleBooleanLiteral returns [EObject current=null] : ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) ) ; + public final EObject ruleBooleanLiteral() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + + + enterRule(); + + try { + // InternalFiacre.g:8248:2: ( ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) ) ) + // InternalFiacre.g:8249:2: ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) ) + { + // InternalFiacre.g:8249:2: ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) ) + int alt132=2; + int LA132_0 = input.LA(1); + + if ( (LA132_0==109) ) { + alt132=1; + } + else if ( (LA132_0==110) ) { + alt132=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 132, 0, input); + + throw nvae; + } + switch (alt132) { + case 1 : + // InternalFiacre.g:8250:3: ( () otherlv_1= 'true' ) + { + // InternalFiacre.g:8250:3: ( () otherlv_1= 'true' ) + // InternalFiacre.g:8251:4: () otherlv_1= 'true' + { + // InternalFiacre.g:8251:4: () + // InternalFiacre.g:8252:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getBooleanLiteralAccess().getTrueLiteralAction_0_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,109,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getBooleanLiteralAccess().getTrueKeyword_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:8267:3: ( () otherlv_3= 'false' ) + { + // InternalFiacre.g:8267:3: ( () otherlv_3= 'false' ) + // InternalFiacre.g:8268:4: () otherlv_3= 'false' + { + // InternalFiacre.g:8268:4: () + // InternalFiacre.g:8269:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getBooleanLiteralAccess().getFalseLiteralAction_1_0(), + current); + + } + + } + + otherlv_3=(Token)match(input,110,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getBooleanLiteralAccess().getFalseKeyword_1_1()); + + } + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleBooleanLiteral" + + + // $ANTLR start "entryRuleNaturalLiteral" + // InternalFiacre.g:8287:1: entryRuleNaturalLiteral returns [EObject current=null] : iv_ruleNaturalLiteral= ruleNaturalLiteral EOF ; + public final EObject entryRuleNaturalLiteral() throws RecognitionException { + EObject current = null; + + EObject iv_ruleNaturalLiteral = null; + + + try { + // InternalFiacre.g:8287:55: (iv_ruleNaturalLiteral= ruleNaturalLiteral EOF ) + // InternalFiacre.g:8288:2: iv_ruleNaturalLiteral= ruleNaturalLiteral EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getNaturalLiteralRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleNaturalLiteral=ruleNaturalLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleNaturalLiteral; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleNaturalLiteral" + + + // $ANTLR start "ruleNaturalLiteral" + // InternalFiacre.g:8294:1: ruleNaturalLiteral returns [EObject current=null] : ( (lv_value_0_0= RULE_INT ) ) ; + public final EObject ruleNaturalLiteral() throws RecognitionException { + EObject current = null; + + Token lv_value_0_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:8300:2: ( ( (lv_value_0_0= RULE_INT ) ) ) + // InternalFiacre.g:8301:2: ( (lv_value_0_0= RULE_INT ) ) + { + // InternalFiacre.g:8301:2: ( (lv_value_0_0= RULE_INT ) ) + // InternalFiacre.g:8302:3: (lv_value_0_0= RULE_INT ) + { + // InternalFiacre.g:8302:3: (lv_value_0_0= RULE_INT ) + // InternalFiacre.g:8303:4: lv_value_0_0= RULE_INT + { + lv_value_0_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_value_0_0, grammarAccess.getNaturalLiteralAccess().getValueINTTerminalRuleCall_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getNaturalLiteralRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_0_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleNaturalLiteral" + + + // $ANTLR start "entryRuleLowerBound" + // InternalFiacre.g:8322:1: entryRuleLowerBound returns [EObject current=null] : iv_ruleLowerBound= ruleLowerBound EOF ; + public final EObject entryRuleLowerBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLowerBound = null; + + + try { + // InternalFiacre.g:8322:51: (iv_ruleLowerBound= ruleLowerBound EOF ) + // InternalFiacre.g:8323:2: iv_ruleLowerBound= ruleLowerBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLowerBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLowerBound=ruleLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLowerBound; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLowerBound" + + + // $ANTLR start "ruleLowerBound" + // InternalFiacre.g:8329:1: ruleLowerBound returns [EObject current=null] : (this_NaturalLowerBound_0= ruleNaturalLowerBound | this_DecimalLowerBound_1= ruleDecimalLowerBound | this_VariableLowerBound_2= ruleVariableLowerBound ) ; + public final EObject ruleLowerBound() throws RecognitionException { + EObject current = null; + + EObject this_NaturalLowerBound_0 = null; + + EObject this_DecimalLowerBound_1 = null; + + EObject this_VariableLowerBound_2 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:8335:2: ( (this_NaturalLowerBound_0= ruleNaturalLowerBound | this_DecimalLowerBound_1= ruleDecimalLowerBound | this_VariableLowerBound_2= ruleVariableLowerBound ) ) + // InternalFiacre.g:8336:2: (this_NaturalLowerBound_0= ruleNaturalLowerBound | this_DecimalLowerBound_1= ruleDecimalLowerBound | this_VariableLowerBound_2= ruleVariableLowerBound ) + { + // InternalFiacre.g:8336:2: (this_NaturalLowerBound_0= ruleNaturalLowerBound | this_DecimalLowerBound_1= ruleDecimalLowerBound | this_VariableLowerBound_2= ruleVariableLowerBound ) + int alt133=3; + int LA133_0 = input.LA(1); + + if ( (LA133_0==41) ) { + switch ( input.LA(2) ) { + case RULE_INT: + { + alt133=1; + } + break; + case RULE_ID: + { + alt133=3; + } + break; + case RULE_FLT: + { + alt133=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 133, 1, input); + + throw nvae; + } + + } + else if ( (LA133_0==42) ) { + switch ( input.LA(2) ) { + case RULE_ID: + { + alt133=3; + } + break; + case RULE_FLT: + { + alt133=2; + } + break; + case RULE_INT: + { + alt133=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 133, 2, input); + + throw nvae; + } + + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 133, 0, input); + + throw nvae; + } + switch (alt133) { + case 1 : + // InternalFiacre.g:8337:3: this_NaturalLowerBound_0= ruleNaturalLowerBound + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLowerBoundAccess().getNaturalLowerBoundParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_NaturalLowerBound_0=ruleNaturalLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_NaturalLowerBound_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:8349:3: this_DecimalLowerBound_1= ruleDecimalLowerBound + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLowerBoundAccess().getDecimalLowerBoundParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_DecimalLowerBound_1=ruleDecimalLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_DecimalLowerBound_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:8361:3: this_VariableLowerBound_2= ruleVariableLowerBound + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLowerBoundAccess().getVariableLowerBoundParserRuleCall_2()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_VariableLowerBound_2=ruleVariableLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_VariableLowerBound_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLowerBound" + + + // $ANTLR start "entryRuleUpperBound" + // InternalFiacre.g:8376:1: entryRuleUpperBound returns [EObject current=null] : iv_ruleUpperBound= ruleUpperBound EOF ; + public final EObject entryRuleUpperBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleUpperBound = null; + + + try { + // InternalFiacre.g:8376:51: (iv_ruleUpperBound= ruleUpperBound EOF ) + // InternalFiacre.g:8377:2: iv_ruleUpperBound= ruleUpperBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getUpperBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleUpperBound=ruleUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleUpperBound; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleUpperBound" + + + // $ANTLR start "ruleUpperBound" + // InternalFiacre.g:8383:1: ruleUpperBound returns [EObject current=null] : (this_NaturalUpperBound_0= ruleNaturalUpperBound | this_DecimalUpperBound_1= ruleDecimalUpperBound | this_VariableUpperBound_2= ruleVariableUpperBound | this_InfiniteUpperBound_3= ruleInfiniteUpperBound ) ; + public final EObject ruleUpperBound() throws RecognitionException { + EObject current = null; + + EObject this_NaturalUpperBound_0 = null; + + EObject this_DecimalUpperBound_1 = null; + + EObject this_VariableUpperBound_2 = null; + + EObject this_InfiniteUpperBound_3 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:8389:2: ( (this_NaturalUpperBound_0= ruleNaturalUpperBound | this_DecimalUpperBound_1= ruleDecimalUpperBound | this_VariableUpperBound_2= ruleVariableUpperBound | this_InfiniteUpperBound_3= ruleInfiniteUpperBound ) ) + // InternalFiacre.g:8390:2: (this_NaturalUpperBound_0= ruleNaturalUpperBound | this_DecimalUpperBound_1= ruleDecimalUpperBound | this_VariableUpperBound_2= ruleVariableUpperBound | this_InfiniteUpperBound_3= ruleInfiniteUpperBound ) + { + // InternalFiacre.g:8390:2: (this_NaturalUpperBound_0= ruleNaturalUpperBound | this_DecimalUpperBound_1= ruleDecimalUpperBound | this_VariableUpperBound_2= ruleVariableUpperBound | this_InfiniteUpperBound_3= ruleInfiniteUpperBound ) + int alt134=4; + switch ( input.LA(1) ) { + case RULE_INT: + { + alt134=1; + } + break; + case RULE_FLT: + { + alt134=2; + } + break; + case RULE_ID: + { + alt134=3; + } + break; + case 111: + { + alt134=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 134, 0, input); + + throw nvae; + } + + switch (alt134) { + case 1 : + // InternalFiacre.g:8391:3: this_NaturalUpperBound_0= ruleNaturalUpperBound + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUpperBoundAccess().getNaturalUpperBoundParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_NaturalUpperBound_0=ruleNaturalUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_NaturalUpperBound_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:8403:3: this_DecimalUpperBound_1= ruleDecimalUpperBound + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUpperBoundAccess().getDecimalUpperBoundParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_DecimalUpperBound_1=ruleDecimalUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_DecimalUpperBound_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:8415:3: this_VariableUpperBound_2= ruleVariableUpperBound + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUpperBoundAccess().getVariableUpperBoundParserRuleCall_2()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_VariableUpperBound_2=ruleVariableUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_VariableUpperBound_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 4 : + // InternalFiacre.g:8427:3: this_InfiniteUpperBound_3= ruleInfiniteUpperBound + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getUpperBoundAccess().getInfiniteUpperBoundParserRuleCall_3()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_InfiniteUpperBound_3=ruleInfiniteUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_InfiniteUpperBound_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleUpperBound" + + + // $ANTLR start "entryRuleNaturalLowerBound" + // InternalFiacre.g:8442:1: entryRuleNaturalLowerBound returns [EObject current=null] : iv_ruleNaturalLowerBound= ruleNaturalLowerBound EOF ; + public final EObject entryRuleNaturalLowerBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleNaturalLowerBound = null; + + + try { + // InternalFiacre.g:8442:58: (iv_ruleNaturalLowerBound= ruleNaturalLowerBound EOF ) + // InternalFiacre.g:8443:2: iv_ruleNaturalLowerBound= ruleNaturalLowerBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getNaturalLowerBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleNaturalLowerBound=ruleNaturalLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleNaturalLowerBound; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleNaturalLowerBound" + + + // $ANTLR start "ruleNaturalLowerBound" + // InternalFiacre.g:8449:1: ruleNaturalLowerBound returns [EObject current=null] : ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (lv_value_2_0= RULE_INT ) ) ) ; + public final EObject ruleNaturalLowerBound() throws RecognitionException { + EObject current = null; + + Token lv_left_0_0=null; + Token lv_right_1_0=null; + Token lv_value_2_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:8455:2: ( ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (lv_value_2_0= RULE_INT ) ) ) ) + // InternalFiacre.g:8456:2: ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (lv_value_2_0= RULE_INT ) ) ) + { + // InternalFiacre.g:8456:2: ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (lv_value_2_0= RULE_INT ) ) ) + // InternalFiacre.g:8457:3: ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (lv_value_2_0= RULE_INT ) ) + { + // InternalFiacre.g:8457:3: ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) + int alt135=2; + int LA135_0 = input.LA(1); + + if ( (LA135_0==41) ) { + alt135=1; + } + else if ( (LA135_0==42) ) { + alt135=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 135, 0, input); + + throw nvae; + } + switch (alt135) { + case 1 : + // InternalFiacre.g:8458:4: ( (lv_left_0_0= '[' ) ) + { + // InternalFiacre.g:8458:4: ( (lv_left_0_0= '[' ) ) + // InternalFiacre.g:8459:5: (lv_left_0_0= '[' ) + { + // InternalFiacre.g:8459:5: (lv_left_0_0= '[' ) + // InternalFiacre.g:8460:6: lv_left_0_0= '[' + { + lv_left_0_0=(Token)match(input,41,FollowSets000.FOLLOW_63); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_left_0_0, grammarAccess.getNaturalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getNaturalLowerBoundRule()); + } + setWithLastConsumed(current, "left", true, "["); + + } + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:8473:4: ( (lv_right_1_0= ']' ) ) + { + // InternalFiacre.g:8473:4: ( (lv_right_1_0= ']' ) ) + // InternalFiacre.g:8474:5: (lv_right_1_0= ']' ) + { + // InternalFiacre.g:8474:5: (lv_right_1_0= ']' ) + // InternalFiacre.g:8475:6: lv_right_1_0= ']' + { + lv_right_1_0=(Token)match(input,42,FollowSets000.FOLLOW_63); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_right_1_0, grammarAccess.getNaturalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getNaturalLowerBoundRule()); + } + setWithLastConsumed(current, "right", true, "]"); + + } + + } + + + } + + + } + break; + + } + + // InternalFiacre.g:8488:3: ( (lv_value_2_0= RULE_INT ) ) + // InternalFiacre.g:8489:4: (lv_value_2_0= RULE_INT ) + { + // InternalFiacre.g:8489:4: (lv_value_2_0= RULE_INT ) + // InternalFiacre.g:8490:5: lv_value_2_0= RULE_INT + { + lv_value_2_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_value_2_0, grammarAccess.getNaturalLowerBoundAccess().getValueINTTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getNaturalLowerBoundRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_2_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleNaturalLowerBound" + + + // $ANTLR start "entryRuleNaturalUpperBound" + // InternalFiacre.g:8510:1: entryRuleNaturalUpperBound returns [EObject current=null] : iv_ruleNaturalUpperBound= ruleNaturalUpperBound EOF ; + public final EObject entryRuleNaturalUpperBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleNaturalUpperBound = null; + + + try { + // InternalFiacre.g:8510:58: (iv_ruleNaturalUpperBound= ruleNaturalUpperBound EOF ) + // InternalFiacre.g:8511:2: iv_ruleNaturalUpperBound= ruleNaturalUpperBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getNaturalUpperBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleNaturalUpperBound=ruleNaturalUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleNaturalUpperBound; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleNaturalUpperBound" + + + // $ANTLR start "ruleNaturalUpperBound" + // InternalFiacre.g:8517:1: ruleNaturalUpperBound returns [EObject current=null] : ( ( (lv_value_0_0= RULE_INT ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) ; + public final EObject ruleNaturalUpperBound() throws RecognitionException { + EObject current = null; + + Token lv_value_0_0=null; + Token lv_left_1_0=null; + Token lv_right_2_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:8523:2: ( ( ( (lv_value_0_0= RULE_INT ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) ) + // InternalFiacre.g:8524:2: ( ( (lv_value_0_0= RULE_INT ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) + { + // InternalFiacre.g:8524:2: ( ( (lv_value_0_0= RULE_INT ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) + // InternalFiacre.g:8525:3: ( (lv_value_0_0= RULE_INT ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) + { + // InternalFiacre.g:8525:3: ( (lv_value_0_0= RULE_INT ) ) + // InternalFiacre.g:8526:4: (lv_value_0_0= RULE_INT ) + { + // InternalFiacre.g:8526:4: (lv_value_0_0= RULE_INT ) + // InternalFiacre.g:8527:5: lv_value_0_0= RULE_INT + { + lv_value_0_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_value_0_0, grammarAccess.getNaturalUpperBoundAccess().getValueINTTerminalRuleCall_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getNaturalUpperBoundRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_0_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + + } + + } + + + } + + // InternalFiacre.g:8543:3: ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) + int alt136=2; + int LA136_0 = input.LA(1); + + if ( (LA136_0==41) ) { + alt136=1; + } + else if ( (LA136_0==42) ) { + alt136=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 136, 0, input); + + throw nvae; + } + switch (alt136) { + case 1 : + // InternalFiacre.g:8544:4: ( (lv_left_1_0= '[' ) ) + { + // InternalFiacre.g:8544:4: ( (lv_left_1_0= '[' ) ) + // InternalFiacre.g:8545:5: (lv_left_1_0= '[' ) + { + // InternalFiacre.g:8545:5: (lv_left_1_0= '[' ) + // InternalFiacre.g:8546:6: lv_left_1_0= '[' + { + lv_left_1_0=(Token)match(input,41,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_left_1_0, grammarAccess.getNaturalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getNaturalUpperBoundRule()); + } + setWithLastConsumed(current, "left", true, "["); + + } + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:8559:4: ( (lv_right_2_0= ']' ) ) + { + // InternalFiacre.g:8559:4: ( (lv_right_2_0= ']' ) ) + // InternalFiacre.g:8560:5: (lv_right_2_0= ']' ) + { + // InternalFiacre.g:8560:5: (lv_right_2_0= ']' ) + // InternalFiacre.g:8561:6: lv_right_2_0= ']' + { + lv_right_2_0=(Token)match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_right_2_0, grammarAccess.getNaturalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getNaturalUpperBoundRule()); + } + setWithLastConsumed(current, "right", true, "]"); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleNaturalUpperBound" + + + // $ANTLR start "entryRuleDecimalLowerBound" + // InternalFiacre.g:8578:1: entryRuleDecimalLowerBound returns [EObject current=null] : iv_ruleDecimalLowerBound= ruleDecimalLowerBound EOF ; + public final EObject entryRuleDecimalLowerBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleDecimalLowerBound = null; + + + try { + // InternalFiacre.g:8578:58: (iv_ruleDecimalLowerBound= ruleDecimalLowerBound EOF ) + // InternalFiacre.g:8579:2: iv_ruleDecimalLowerBound= ruleDecimalLowerBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getDecimalLowerBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleDecimalLowerBound=ruleDecimalLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleDecimalLowerBound; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleDecimalLowerBound" + + + // $ANTLR start "ruleDecimalLowerBound" + // InternalFiacre.g:8585:1: ruleDecimalLowerBound returns [EObject current=null] : ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (lv_value_2_0= RULE_FLT ) ) ) ; + public final EObject ruleDecimalLowerBound() throws RecognitionException { + EObject current = null; + + Token lv_left_0_0=null; + Token lv_right_1_0=null; + Token lv_value_2_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:8591:2: ( ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (lv_value_2_0= RULE_FLT ) ) ) ) + // InternalFiacre.g:8592:2: ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (lv_value_2_0= RULE_FLT ) ) ) + { + // InternalFiacre.g:8592:2: ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (lv_value_2_0= RULE_FLT ) ) ) + // InternalFiacre.g:8593:3: ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (lv_value_2_0= RULE_FLT ) ) + { + // InternalFiacre.g:8593:3: ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) + int alt137=2; + int LA137_0 = input.LA(1); + + if ( (LA137_0==41) ) { + alt137=1; + } + else if ( (LA137_0==42) ) { + alt137=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 137, 0, input); + + throw nvae; + } + switch (alt137) { + case 1 : + // InternalFiacre.g:8594:4: ( (lv_left_0_0= '[' ) ) + { + // InternalFiacre.g:8594:4: ( (lv_left_0_0= '[' ) ) + // InternalFiacre.g:8595:5: (lv_left_0_0= '[' ) + { + // InternalFiacre.g:8595:5: (lv_left_0_0= '[' ) + // InternalFiacre.g:8596:6: lv_left_0_0= '[' + { + lv_left_0_0=(Token)match(input,41,FollowSets000.FOLLOW_100); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_left_0_0, grammarAccess.getDecimalLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getDecimalLowerBoundRule()); + } + setWithLastConsumed(current, "left", true, "["); + + } + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:8609:4: ( (lv_right_1_0= ']' ) ) + { + // InternalFiacre.g:8609:4: ( (lv_right_1_0= ']' ) ) + // InternalFiacre.g:8610:5: (lv_right_1_0= ']' ) + { + // InternalFiacre.g:8610:5: (lv_right_1_0= ']' ) + // InternalFiacre.g:8611:6: lv_right_1_0= ']' + { + lv_right_1_0=(Token)match(input,42,FollowSets000.FOLLOW_100); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_right_1_0, grammarAccess.getDecimalLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getDecimalLowerBoundRule()); + } + setWithLastConsumed(current, "right", true, "]"); + + } + + } + + + } + + + } + break; + + } + + // InternalFiacre.g:8624:3: ( (lv_value_2_0= RULE_FLT ) ) + // InternalFiacre.g:8625:4: (lv_value_2_0= RULE_FLT ) + { + // InternalFiacre.g:8625:4: (lv_value_2_0= RULE_FLT ) + // InternalFiacre.g:8626:5: lv_value_2_0= RULE_FLT + { + lv_value_2_0=(Token)match(input,RULE_FLT,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_value_2_0, grammarAccess.getDecimalLowerBoundAccess().getValueFLTTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getDecimalLowerBoundRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_2_0, + "fr.irit.fiacre.xtext.Fiacre.FLT"); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleDecimalLowerBound" + + + // $ANTLR start "entryRuleDecimalUpperBound" + // InternalFiacre.g:8646:1: entryRuleDecimalUpperBound returns [EObject current=null] : iv_ruleDecimalUpperBound= ruleDecimalUpperBound EOF ; + public final EObject entryRuleDecimalUpperBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleDecimalUpperBound = null; + + + try { + // InternalFiacre.g:8646:58: (iv_ruleDecimalUpperBound= ruleDecimalUpperBound EOF ) + // InternalFiacre.g:8647:2: iv_ruleDecimalUpperBound= ruleDecimalUpperBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getDecimalUpperBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleDecimalUpperBound=ruleDecimalUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleDecimalUpperBound; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleDecimalUpperBound" + + + // $ANTLR start "ruleDecimalUpperBound" + // InternalFiacre.g:8653:1: ruleDecimalUpperBound returns [EObject current=null] : ( ( (lv_value_0_0= RULE_FLT ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) ; + public final EObject ruleDecimalUpperBound() throws RecognitionException { + EObject current = null; + + Token lv_value_0_0=null; + Token lv_left_1_0=null; + Token lv_right_2_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:8659:2: ( ( ( (lv_value_0_0= RULE_FLT ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) ) + // InternalFiacre.g:8660:2: ( ( (lv_value_0_0= RULE_FLT ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) + { + // InternalFiacre.g:8660:2: ( ( (lv_value_0_0= RULE_FLT ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) + // InternalFiacre.g:8661:3: ( (lv_value_0_0= RULE_FLT ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) + { + // InternalFiacre.g:8661:3: ( (lv_value_0_0= RULE_FLT ) ) + // InternalFiacre.g:8662:4: (lv_value_0_0= RULE_FLT ) + { + // InternalFiacre.g:8662:4: (lv_value_0_0= RULE_FLT ) + // InternalFiacre.g:8663:5: lv_value_0_0= RULE_FLT + { + lv_value_0_0=(Token)match(input,RULE_FLT,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_value_0_0, grammarAccess.getDecimalUpperBoundAccess().getValueFLTTerminalRuleCall_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getDecimalUpperBoundRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_0_0, + "fr.irit.fiacre.xtext.Fiacre.FLT"); + + } + + } + + + } + + // InternalFiacre.g:8679:3: ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) + int alt138=2; + int LA138_0 = input.LA(1); + + if ( (LA138_0==41) ) { + alt138=1; + } + else if ( (LA138_0==42) ) { + alt138=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 138, 0, input); + + throw nvae; + } + switch (alt138) { + case 1 : + // InternalFiacre.g:8680:4: ( (lv_left_1_0= '[' ) ) + { + // InternalFiacre.g:8680:4: ( (lv_left_1_0= '[' ) ) + // InternalFiacre.g:8681:5: (lv_left_1_0= '[' ) + { + // InternalFiacre.g:8681:5: (lv_left_1_0= '[' ) + // InternalFiacre.g:8682:6: lv_left_1_0= '[' + { + lv_left_1_0=(Token)match(input,41,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_left_1_0, grammarAccess.getDecimalUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getDecimalUpperBoundRule()); + } + setWithLastConsumed(current, "left", true, "["); + + } + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:8695:4: ( (lv_right_2_0= ']' ) ) + { + // InternalFiacre.g:8695:4: ( (lv_right_2_0= ']' ) ) + // InternalFiacre.g:8696:5: (lv_right_2_0= ']' ) + { + // InternalFiacre.g:8696:5: (lv_right_2_0= ']' ) + // InternalFiacre.g:8697:6: lv_right_2_0= ']' + { + lv_right_2_0=(Token)match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_right_2_0, grammarAccess.getDecimalUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getDecimalUpperBoundRule()); + } + setWithLastConsumed(current, "right", true, "]"); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleDecimalUpperBound" + + + // $ANTLR start "entryRuleVariableLowerBound" + // InternalFiacre.g:8714:1: entryRuleVariableLowerBound returns [EObject current=null] : iv_ruleVariableLowerBound= ruleVariableLowerBound EOF ; + public final EObject entryRuleVariableLowerBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVariableLowerBound = null; + + + try { + // InternalFiacre.g:8714:59: (iv_ruleVariableLowerBound= ruleVariableLowerBound EOF ) + // InternalFiacre.g:8715:2: iv_ruleVariableLowerBound= ruleVariableLowerBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getVariableLowerBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleVariableLowerBound=ruleVariableLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleVariableLowerBound; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVariableLowerBound" + + + // $ANTLR start "ruleVariableLowerBound" + // InternalFiacre.g:8721:1: ruleVariableLowerBound returns [EObject current=null] : ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (otherlv_2= RULE_ID ) ) ) ; + public final EObject ruleVariableLowerBound() throws RecognitionException { + EObject current = null; + + Token lv_left_0_0=null; + Token lv_right_1_0=null; + Token otherlv_2=null; + + + enterRule(); + + try { + // InternalFiacre.g:8727:2: ( ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (otherlv_2= RULE_ID ) ) ) ) + // InternalFiacre.g:8728:2: ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (otherlv_2= RULE_ID ) ) ) + { + // InternalFiacre.g:8728:2: ( ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (otherlv_2= RULE_ID ) ) ) + // InternalFiacre.g:8729:3: ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) ( (otherlv_2= RULE_ID ) ) + { + // InternalFiacre.g:8729:3: ( ( (lv_left_0_0= '[' ) ) | ( (lv_right_1_0= ']' ) ) ) + int alt139=2; + int LA139_0 = input.LA(1); + + if ( (LA139_0==41) ) { + alt139=1; + } + else if ( (LA139_0==42) ) { + alt139=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 139, 0, input); + + throw nvae; + } + switch (alt139) { + case 1 : + // InternalFiacre.g:8730:4: ( (lv_left_0_0= '[' ) ) + { + // InternalFiacre.g:8730:4: ( (lv_left_0_0= '[' ) ) + // InternalFiacre.g:8731:5: (lv_left_0_0= '[' ) + { + // InternalFiacre.g:8731:5: (lv_left_0_0= '[' ) + // InternalFiacre.g:8732:6: lv_left_0_0= '[' + { + lv_left_0_0=(Token)match(input,41,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_left_0_0, grammarAccess.getVariableLowerBoundAccess().getLeftLeftSquareBracketKeyword_0_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getVariableLowerBoundRule()); + } + setWithLastConsumed(current, "left", true, "["); + + } + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:8745:4: ( (lv_right_1_0= ']' ) ) + { + // InternalFiacre.g:8745:4: ( (lv_right_1_0= ']' ) ) + // InternalFiacre.g:8746:5: (lv_right_1_0= ']' ) + { + // InternalFiacre.g:8746:5: (lv_right_1_0= ']' ) + // InternalFiacre.g:8747:6: lv_right_1_0= ']' + { + lv_right_1_0=(Token)match(input,42,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_right_1_0, grammarAccess.getVariableLowerBoundAccess().getRightRightSquareBracketKeyword_0_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getVariableLowerBoundRule()); + } + setWithLastConsumed(current, "right", true, "]"); + + } + + } + + + } + + + } + break; + + } + + // InternalFiacre.g:8760:3: ( (otherlv_2= RULE_ID ) ) + // InternalFiacre.g:8761:4: (otherlv_2= RULE_ID ) + { + // InternalFiacre.g:8761:4: (otherlv_2= RULE_ID ) + // InternalFiacre.g:8762:5: otherlv_2= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getVariableLowerBoundRule()); + } + + } + otherlv_2=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getVariableLowerBoundAccess().getVariableBoundDeclarationUseCrossReference_1_0()); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVariableLowerBound" + + + // $ANTLR start "entryRuleVariableUpperBound" + // InternalFiacre.g:8780:1: entryRuleVariableUpperBound returns [EObject current=null] : iv_ruleVariableUpperBound= ruleVariableUpperBound EOF ; + public final EObject entryRuleVariableUpperBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVariableUpperBound = null; + + + try { + // InternalFiacre.g:8780:59: (iv_ruleVariableUpperBound= ruleVariableUpperBound EOF ) + // InternalFiacre.g:8781:2: iv_ruleVariableUpperBound= ruleVariableUpperBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getVariableUpperBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleVariableUpperBound=ruleVariableUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleVariableUpperBound; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVariableUpperBound" + + + // $ANTLR start "ruleVariableUpperBound" + // InternalFiacre.g:8787:1: ruleVariableUpperBound returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) ; + public final EObject ruleVariableUpperBound() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_left_1_0=null; + Token lv_right_2_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:8793:2: ( ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) ) + // InternalFiacre.g:8794:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) + { + // InternalFiacre.g:8794:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) ) + // InternalFiacre.g:8795:3: ( (otherlv_0= RULE_ID ) ) ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) + { + // InternalFiacre.g:8795:3: ( (otherlv_0= RULE_ID ) ) + // InternalFiacre.g:8796:4: (otherlv_0= RULE_ID ) + { + // InternalFiacre.g:8796:4: (otherlv_0= RULE_ID ) + // InternalFiacre.g:8797:5: otherlv_0= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getVariableUpperBoundRule()); + } + + } + otherlv_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getVariableUpperBoundAccess().getVariableBoundDeclarationUseCrossReference_0_0()); + + } + + } + + + } + + // InternalFiacre.g:8811:3: ( ( (lv_left_1_0= '[' ) ) | ( (lv_right_2_0= ']' ) ) ) + int alt140=2; + int LA140_0 = input.LA(1); + + if ( (LA140_0==41) ) { + alt140=1; + } + else if ( (LA140_0==42) ) { + alt140=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 140, 0, input); + + throw nvae; + } + switch (alt140) { + case 1 : + // InternalFiacre.g:8812:4: ( (lv_left_1_0= '[' ) ) + { + // InternalFiacre.g:8812:4: ( (lv_left_1_0= '[' ) ) + // InternalFiacre.g:8813:5: (lv_left_1_0= '[' ) + { + // InternalFiacre.g:8813:5: (lv_left_1_0= '[' ) + // InternalFiacre.g:8814:6: lv_left_1_0= '[' + { + lv_left_1_0=(Token)match(input,41,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_left_1_0, grammarAccess.getVariableUpperBoundAccess().getLeftLeftSquareBracketKeyword_1_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getVariableUpperBoundRule()); + } + setWithLastConsumed(current, "left", true, "["); + + } + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:8827:4: ( (lv_right_2_0= ']' ) ) + { + // InternalFiacre.g:8827:4: ( (lv_right_2_0= ']' ) ) + // InternalFiacre.g:8828:5: (lv_right_2_0= ']' ) + { + // InternalFiacre.g:8828:5: (lv_right_2_0= ']' ) + // InternalFiacre.g:8829:6: lv_right_2_0= ']' + { + lv_right_2_0=(Token)match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_right_2_0, grammarAccess.getVariableUpperBoundAccess().getRightRightSquareBracketKeyword_1_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getVariableUpperBoundRule()); + } + setWithLastConsumed(current, "right", true, "]"); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVariableUpperBound" + + + // $ANTLR start "entryRuleInfiniteUpperBound" + // InternalFiacre.g:8846:1: entryRuleInfiniteUpperBound returns [EObject current=null] : iv_ruleInfiniteUpperBound= ruleInfiniteUpperBound EOF ; + public final EObject entryRuleInfiniteUpperBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleInfiniteUpperBound = null; + + + try { + // InternalFiacre.g:8846:59: (iv_ruleInfiniteUpperBound= ruleInfiniteUpperBound EOF ) + // InternalFiacre.g:8847:2: iv_ruleInfiniteUpperBound= ruleInfiniteUpperBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getInfiniteUpperBoundRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleInfiniteUpperBound=ruleInfiniteUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleInfiniteUpperBound; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleInfiniteUpperBound" + + + // $ANTLR start "ruleInfiniteUpperBound" + // InternalFiacre.g:8853:1: ruleInfiniteUpperBound returns [EObject current=null] : ( () otherlv_1= '...' otherlv_2= '[' ) ; + public final EObject ruleInfiniteUpperBound() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + + + enterRule(); + + try { + // InternalFiacre.g:8859:2: ( ( () otherlv_1= '...' otherlv_2= '[' ) ) + // InternalFiacre.g:8860:2: ( () otherlv_1= '...' otherlv_2= '[' ) + { + // InternalFiacre.g:8860:2: ( () otherlv_1= '...' otherlv_2= '[' ) + // InternalFiacre.g:8861:3: () otherlv_1= '...' otherlv_2= '[' + { + // InternalFiacre.g:8861:3: () + // InternalFiacre.g:8862:4: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getInfiniteUpperBoundAccess().getInfiniteUpperBoundAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,111,FollowSets000.FOLLOW_101); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getInfiniteUpperBoundAccess().getFullStopFullStopFullStopKeyword_1()); + + } + otherlv_2=(Token)match(input,41,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getInfiniteUpperBoundAccess().getLeftSquareBracketKeyword_2()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleInfiniteUpperBound" + + + // $ANTLR start "entryRuleRequirement" + // InternalFiacre.g:8883:1: entryRuleRequirement returns [EObject current=null] : iv_ruleRequirement= ruleRequirement EOF ; + public final EObject entryRuleRequirement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRequirement = null; + + + try { + // InternalFiacre.g:8883:52: (iv_ruleRequirement= ruleRequirement EOF ) + // InternalFiacre.g:8884:2: iv_ruleRequirement= ruleRequirement EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getRequirementRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleRequirement=ruleRequirement(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleRequirement; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRequirement" + + + // $ANTLR start "ruleRequirement" + // InternalFiacre.g:8890:1: ruleRequirement returns [EObject current=null] : (otherlv_0= 'assert' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '-true' ( (lv_positive_3_0= RULE_STRING ) ) )? (otherlv_4= '-false' ( (lv_negative_5_0= RULE_STRING ) ) )? ) ; + public final EObject ruleRequirement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + Token otherlv_2=null; + Token lv_positive_3_0=null; + Token otherlv_4=null; + Token lv_negative_5_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:8896:2: ( (otherlv_0= 'assert' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '-true' ( (lv_positive_3_0= RULE_STRING ) ) )? (otherlv_4= '-false' ( (lv_negative_5_0= RULE_STRING ) ) )? ) ) + // InternalFiacre.g:8897:2: (otherlv_0= 'assert' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '-true' ( (lv_positive_3_0= RULE_STRING ) ) )? (otherlv_4= '-false' ( (lv_negative_5_0= RULE_STRING ) ) )? ) + { + // InternalFiacre.g:8897:2: (otherlv_0= 'assert' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '-true' ( (lv_positive_3_0= RULE_STRING ) ) )? (otherlv_4= '-false' ( (lv_negative_5_0= RULE_STRING ) ) )? ) + // InternalFiacre.g:8898:3: otherlv_0= 'assert' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '-true' ( (lv_positive_3_0= RULE_STRING ) ) )? (otherlv_4= '-false' ( (lv_negative_5_0= RULE_STRING ) ) )? + { + otherlv_0=(Token)match(input,112,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getRequirementAccess().getAssertKeyword_0()); + + } + // InternalFiacre.g:8902:3: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:8903:4: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:8903:4: (otherlv_1= RULE_ID ) + // InternalFiacre.g:8904:5: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getRequirementRule()); + } + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_102); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getRequirementAccess().getPropertyPropertyDeclarationCrossReference_1_0()); + + } + + } + + + } + + // InternalFiacre.g:8918:3: (otherlv_2= '-true' ( (lv_positive_3_0= RULE_STRING ) ) )? + int alt141=2; + int LA141_0 = input.LA(1); + + if ( (LA141_0==113) ) { + alt141=1; + } + switch (alt141) { + case 1 : + // InternalFiacre.g:8919:4: otherlv_2= '-true' ( (lv_positive_3_0= RULE_STRING ) ) + { + otherlv_2=(Token)match(input,113,FollowSets000.FOLLOW_8); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getRequirementAccess().getTrueKeyword_2_0()); + + } + // InternalFiacre.g:8923:4: ( (lv_positive_3_0= RULE_STRING ) ) + // InternalFiacre.g:8924:5: (lv_positive_3_0= RULE_STRING ) + { + // InternalFiacre.g:8924:5: (lv_positive_3_0= RULE_STRING ) + // InternalFiacre.g:8925:6: lv_positive_3_0= RULE_STRING + { + lv_positive_3_0=(Token)match(input,RULE_STRING,FollowSets000.FOLLOW_103); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_positive_3_0, grammarAccess.getRequirementAccess().getPositiveSTRINGTerminalRuleCall_2_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getRequirementRule()); + } + setWithLastConsumed( + current, + "positive", + lv_positive_3_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + } + + } + + + } + + + } + break; + + } + + // InternalFiacre.g:8942:3: (otherlv_4= '-false' ( (lv_negative_5_0= RULE_STRING ) ) )? + int alt142=2; + int LA142_0 = input.LA(1); + + if ( (LA142_0==114) ) { + alt142=1; + } + switch (alt142) { + case 1 : + // InternalFiacre.g:8943:4: otherlv_4= '-false' ( (lv_negative_5_0= RULE_STRING ) ) + { + otherlv_4=(Token)match(input,114,FollowSets000.FOLLOW_8); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getRequirementAccess().getFalseKeyword_3_0()); + + } + // InternalFiacre.g:8947:4: ( (lv_negative_5_0= RULE_STRING ) ) + // InternalFiacre.g:8948:5: (lv_negative_5_0= RULE_STRING ) + { + // InternalFiacre.g:8948:5: (lv_negative_5_0= RULE_STRING ) + // InternalFiacre.g:8949:6: lv_negative_5_0= RULE_STRING + { + lv_negative_5_0=(Token)match(input,RULE_STRING,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_negative_5_0, grammarAccess.getRequirementAccess().getNegativeSTRINGTerminalRuleCall_3_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getRequirementRule()); + } + setWithLastConsumed( + current, + "negative", + lv_negative_5_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRequirement" + + + // $ANTLR start "entryRulePropertyDeclaration" + // InternalFiacre.g:8970:1: entryRulePropertyDeclaration returns [EObject current=null] : iv_rulePropertyDeclaration= rulePropertyDeclaration EOF ; + public final EObject entryRulePropertyDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_rulePropertyDeclaration = null; + + + try { + // InternalFiacre.g:8970:60: (iv_rulePropertyDeclaration= rulePropertyDeclaration EOF ) + // InternalFiacre.g:8971:2: iv_rulePropertyDeclaration= rulePropertyDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPropertyDeclarationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePropertyDeclaration=rulePropertyDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePropertyDeclaration; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePropertyDeclaration" + + + // $ANTLR start "rulePropertyDeclaration" + // InternalFiacre.g:8977:1: rulePropertyDeclaration returns [EObject current=null] : (otherlv_0= 'property' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_property_3_0= ruleProperty ) ) ) ; + public final EObject rulePropertyDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + Token otherlv_2=null; + EObject lv_property_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:8983:2: ( (otherlv_0= 'property' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_property_3_0= ruleProperty ) ) ) ) + // InternalFiacre.g:8984:2: (otherlv_0= 'property' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_property_3_0= ruleProperty ) ) ) + { + // InternalFiacre.g:8984:2: (otherlv_0= 'property' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_property_3_0= ruleProperty ) ) ) + // InternalFiacre.g:8985:3: otherlv_0= 'property' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'is' ( (lv_property_3_0= ruleProperty ) ) + { + otherlv_0=(Token)match(input,115,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getPropertyDeclarationAccess().getPropertyKeyword_0()); + + } + // InternalFiacre.g:8989:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalFiacre.g:8990:4: (lv_name_1_0= RULE_ID ) + { + // InternalFiacre.g:8990:4: (lv_name_1_0= RULE_ID ) + // InternalFiacre.g:8991:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_15); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getPropertyDeclarationAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getPropertyDeclarationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + otherlv_2=(Token)match(input,20,FollowSets000.FOLLOW_104); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getPropertyDeclarationAccess().getIsKeyword_2()); + + } + // InternalFiacre.g:9011:3: ( (lv_property_3_0= ruleProperty ) ) + // InternalFiacre.g:9012:4: (lv_property_3_0= ruleProperty ) + { + // InternalFiacre.g:9012:4: (lv_property_3_0= ruleProperty ) + // InternalFiacre.g:9013:5: lv_property_3_0= ruleProperty + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPropertyDeclarationAccess().getPropertyPropertyParserRuleCall_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_property_3_0=ruleProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPropertyDeclarationRule()); + } + set( + current, + "property", + lv_property_3_0, + "fr.irit.fiacre.xtext.Fiacre.Property"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePropertyDeclaration" + + + // $ANTLR start "entryRuleProperty" + // InternalFiacre.g:9034:1: entryRuleProperty returns [EObject current=null] : iv_ruleProperty= ruleProperty EOF ; + public final EObject entryRuleProperty() throws RecognitionException { + EObject current = null; + + EObject iv_ruleProperty = null; + + + try { + // InternalFiacre.g:9034:49: (iv_ruleProperty= ruleProperty EOF ) + // InternalFiacre.g:9035:2: iv_ruleProperty= ruleProperty EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPropertyRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleProperty=ruleProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleProperty; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleProperty" + + + // $ANTLR start "ruleProperty" + // InternalFiacre.g:9041:1: ruleProperty returns [EObject current=null] : this_QuantifiedProperty_0= ruleQuantifiedProperty ; + public final EObject ruleProperty() throws RecognitionException { + EObject current = null; + + EObject this_QuantifiedProperty_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9047:2: (this_QuantifiedProperty_0= ruleQuantifiedProperty ) + // InternalFiacre.g:9048:2: this_QuantifiedProperty_0= ruleQuantifiedProperty + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPropertyAccess().getQuantifiedPropertyParserRuleCall()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_QuantifiedProperty_0=ruleQuantifiedProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_QuantifiedProperty_0; + afterParserOrEnumRuleCall(); + + } + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleProperty" + + + // $ANTLR start "entryRuleQuantifiedProperty" + // InternalFiacre.g:9062:1: entryRuleQuantifiedProperty returns [EObject current=null] : iv_ruleQuantifiedProperty= ruleQuantifiedProperty EOF ; + public final EObject entryRuleQuantifiedProperty() throws RecognitionException { + EObject current = null; + + EObject iv_ruleQuantifiedProperty = null; + + + try { + // InternalFiacre.g:9062:59: (iv_ruleQuantifiedProperty= ruleQuantifiedProperty EOF ) + // InternalFiacre.g:9063:2: iv_ruleQuantifiedProperty= ruleQuantifiedProperty EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getQuantifiedPropertyRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleQuantifiedProperty=ruleQuantifiedProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleQuantifiedProperty; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleQuantifiedProperty" + + + // $ANTLR start "ruleQuantifiedProperty" + // InternalFiacre.g:9069:1: ruleQuantifiedProperty returns [EObject current=null] : ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_variable_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedProperty ) ) ) | this_PropertyDisjunction_9= rulePropertyDisjunction ) ; + public final EObject ruleQuantifiedProperty() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + EObject lv_variable_4_0 = null; + + EObject lv_type_6_0 = null; + + EObject lv_child_8_0 = null; + + EObject this_PropertyDisjunction_9 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9075:2: ( ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_variable_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedProperty ) ) ) | this_PropertyDisjunction_9= rulePropertyDisjunction ) ) + // InternalFiacre.g:9076:2: ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_variable_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedProperty ) ) ) | this_PropertyDisjunction_9= rulePropertyDisjunction ) + { + // InternalFiacre.g:9076:2: ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_variable_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedProperty ) ) ) | this_PropertyDisjunction_9= rulePropertyDisjunction ) + int alt144=2; + int LA144_0 = input.LA(1); + + if ( ((LA144_0>=83 && LA144_0<=84)) ) { + alt144=1; + } + else if ( (LA144_0==RULE_ID||LA144_0==RULE_INT||LA144_0==16||LA144_0==95||(LA144_0>=116 && LA144_0<=120)||LA144_0==127||LA144_0==129||(LA144_0>=134 && LA144_0<=135)) ) { + alt144=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 144, 0, input); + + throw nvae; + } + switch (alt144) { + case 1 : + // InternalFiacre.g:9077:3: ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_variable_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedProperty ) ) ) + { + // InternalFiacre.g:9077:3: ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_variable_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedProperty ) ) ) + // InternalFiacre.g:9078:4: ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_variable_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleQuantifiedProperty ) ) + { + // InternalFiacre.g:9078:4: ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) + int alt143=2; + int LA143_0 = input.LA(1); + + if ( (LA143_0==83) ) { + alt143=1; + } + else if ( (LA143_0==84) ) { + alt143=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 143, 0, input); + + throw nvae; + } + switch (alt143) { + case 1 : + // InternalFiacre.g:9079:5: ( () otherlv_1= 'all' ) + { + // InternalFiacre.g:9079:5: ( () otherlv_1= 'all' ) + // InternalFiacre.g:9080:6: () otherlv_1= 'all' + { + // InternalFiacre.g:9080:6: () + // InternalFiacre.g:9081:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getQuantifiedPropertyAccess().getAllPropertyAction_0_0_0_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,83,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getQuantifiedPropertyAccess().getAllKeyword_0_0_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:9096:5: ( () otherlv_3= 'exists' ) + { + // InternalFiacre.g:9096:5: ( () otherlv_3= 'exists' ) + // InternalFiacre.g:9097:6: () otherlv_3= 'exists' + { + // InternalFiacre.g:9097:6: () + // InternalFiacre.g:9098:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getQuantifiedPropertyAccess().getExistsPropertyAction_0_0_1_0(), + current); + + } + + } + + otherlv_3=(Token)match(input,84,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getQuantifiedPropertyAccess().getExistsKeyword_0_0_1_1()); + + } + + } + + + } + break; + + } + + // InternalFiacre.g:9113:4: ( (lv_variable_4_0= ruleVariableDeclaration ) ) + // InternalFiacre.g:9114:5: (lv_variable_4_0= ruleVariableDeclaration ) + { + // InternalFiacre.g:9114:5: (lv_variable_4_0= ruleVariableDeclaration ) + // InternalFiacre.g:9115:6: lv_variable_4_0= ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQuantifiedPropertyAccess().getVariableVariableDeclarationParserRuleCall_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_69); + lv_variable_4_0=ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getQuantifiedPropertyRule()); + } + set( + current, + "variable", + lv_variable_4_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_5=(Token)match(input,26,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getQuantifiedPropertyAccess().getInKeyword_0_2()); + + } + // InternalFiacre.g:9136:4: ( (lv_type_6_0= ruleRangeType ) ) + // InternalFiacre.g:9137:5: (lv_type_6_0= ruleRangeType ) + { + // InternalFiacre.g:9137:5: (lv_type_6_0= ruleRangeType ) + // InternalFiacre.g:9138:6: lv_type_6_0= ruleRangeType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQuantifiedPropertyAccess().getTypeRangeTypeParserRuleCall_0_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_82); + lv_type_6_0=ruleRangeType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getQuantifiedPropertyRule()); + } + set( + current, + "type", + lv_type_6_0, + "fr.irit.fiacre.xtext.Fiacre.RangeType"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_7=(Token)match(input,65,FollowSets000.FOLLOW_104); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getQuantifiedPropertyAccess().getFullStopKeyword_0_4()); + + } + // InternalFiacre.g:9159:4: ( (lv_child_8_0= ruleQuantifiedProperty ) ) + // InternalFiacre.g:9160:5: (lv_child_8_0= ruleQuantifiedProperty ) + { + // InternalFiacre.g:9160:5: (lv_child_8_0= ruleQuantifiedProperty ) + // InternalFiacre.g:9161:6: lv_child_8_0= ruleQuantifiedProperty + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQuantifiedPropertyAccess().getChildQuantifiedPropertyParserRuleCall_0_5_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_child_8_0=ruleQuantifiedProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getQuantifiedPropertyRule()); + } + set( + current, + "child", + lv_child_8_0, + "fr.irit.fiacre.xtext.Fiacre.QuantifiedProperty"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:9180:3: this_PropertyDisjunction_9= rulePropertyDisjunction + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQuantifiedPropertyAccess().getPropertyDisjunctionParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_PropertyDisjunction_9=rulePropertyDisjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_PropertyDisjunction_9; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleQuantifiedProperty" + + + // $ANTLR start "entryRulePropertyDisjunction" + // InternalFiacre.g:9195:1: entryRulePropertyDisjunction returns [EObject current=null] : iv_rulePropertyDisjunction= rulePropertyDisjunction EOF ; + public final EObject entryRulePropertyDisjunction() throws RecognitionException { + EObject current = null; + + EObject iv_rulePropertyDisjunction = null; + + + try { + // InternalFiacre.g:9195:60: (iv_rulePropertyDisjunction= rulePropertyDisjunction EOF ) + // InternalFiacre.g:9196:2: iv_rulePropertyDisjunction= rulePropertyDisjunction EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPropertyDisjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePropertyDisjunction=rulePropertyDisjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePropertyDisjunction; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePropertyDisjunction" + + + // $ANTLR start "rulePropertyDisjunction" + // InternalFiacre.g:9202:1: rulePropertyDisjunction returns [EObject current=null] : (this_PropertyImplication_0= rulePropertyImplication ( () otherlv_2= 'or' ( (lv_right_3_0= rulePropertyImplication ) ) )* ) ; + public final EObject rulePropertyDisjunction() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_PropertyImplication_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9208:2: ( (this_PropertyImplication_0= rulePropertyImplication ( () otherlv_2= 'or' ( (lv_right_3_0= rulePropertyImplication ) ) )* ) ) + // InternalFiacre.g:9209:2: (this_PropertyImplication_0= rulePropertyImplication ( () otherlv_2= 'or' ( (lv_right_3_0= rulePropertyImplication ) ) )* ) + { + // InternalFiacre.g:9209:2: (this_PropertyImplication_0= rulePropertyImplication ( () otherlv_2= 'or' ( (lv_right_3_0= rulePropertyImplication ) ) )* ) + // InternalFiacre.g:9210:3: this_PropertyImplication_0= rulePropertyImplication ( () otherlv_2= 'or' ( (lv_right_3_0= rulePropertyImplication ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPropertyDisjunctionAccess().getPropertyImplicationParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_84); + this_PropertyImplication_0=rulePropertyImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_PropertyImplication_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:9221:3: ( () otherlv_2= 'or' ( (lv_right_3_0= rulePropertyImplication ) ) )* + loop145: + do { + int alt145=2; + int LA145_0 = input.LA(1); + + if ( (LA145_0==85) ) { + alt145=1; + } + + + switch (alt145) { + case 1 : + // InternalFiacre.g:9222:4: () otherlv_2= 'or' ( (lv_right_3_0= rulePropertyImplication ) ) + { + // InternalFiacre.g:9222:4: () + // InternalFiacre.g:9223:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getPropertyDisjunctionAccess().getPropertyDisjunctionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,85,FollowSets000.FOLLOW_104); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getPropertyDisjunctionAccess().getOrKeyword_1_1()); + + } + // InternalFiacre.g:9236:4: ( (lv_right_3_0= rulePropertyImplication ) ) + // InternalFiacre.g:9237:5: (lv_right_3_0= rulePropertyImplication ) + { + // InternalFiacre.g:9237:5: (lv_right_3_0= rulePropertyImplication ) + // InternalFiacre.g:9238:6: lv_right_3_0= rulePropertyImplication + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPropertyDisjunctionAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_84); + lv_right_3_0=rulePropertyImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPropertyDisjunctionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.PropertyImplication"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop145; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePropertyDisjunction" + + + // $ANTLR start "entryRulePropertyImplication" + // InternalFiacre.g:9260:1: entryRulePropertyImplication returns [EObject current=null] : iv_rulePropertyImplication= rulePropertyImplication EOF ; + public final EObject entryRulePropertyImplication() throws RecognitionException { + EObject current = null; + + EObject iv_rulePropertyImplication = null; + + + try { + // InternalFiacre.g:9260:60: (iv_rulePropertyImplication= rulePropertyImplication EOF ) + // InternalFiacre.g:9261:2: iv_rulePropertyImplication= rulePropertyImplication EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPropertyImplicationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePropertyImplication=rulePropertyImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePropertyImplication; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePropertyImplication" + + + // $ANTLR start "rulePropertyImplication" + // InternalFiacre.g:9267:1: rulePropertyImplication returns [EObject current=null] : (this_PropertyConjunction_0= rulePropertyConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= rulePropertyImplication ) ) )? ) ; + public final EObject rulePropertyImplication() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_PropertyConjunction_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9273:2: ( (this_PropertyConjunction_0= rulePropertyConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= rulePropertyImplication ) ) )? ) ) + // InternalFiacre.g:9274:2: (this_PropertyConjunction_0= rulePropertyConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= rulePropertyImplication ) ) )? ) + { + // InternalFiacre.g:9274:2: (this_PropertyConjunction_0= rulePropertyConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= rulePropertyImplication ) ) )? ) + // InternalFiacre.g:9275:3: this_PropertyConjunction_0= rulePropertyConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= rulePropertyImplication ) ) )? + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPropertyImplicationAccess().getPropertyConjunctionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_85); + this_PropertyConjunction_0=rulePropertyConjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_PropertyConjunction_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:9286:3: ( () otherlv_2= '=>' ( (lv_right_3_0= rulePropertyImplication ) ) )? + int alt146=2; + int LA146_0 = input.LA(1); + + if ( (LA146_0==86) ) { + alt146=1; + } + switch (alt146) { + case 1 : + // InternalFiacre.g:9287:4: () otherlv_2= '=>' ( (lv_right_3_0= rulePropertyImplication ) ) + { + // InternalFiacre.g:9287:4: () + // InternalFiacre.g:9288:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getPropertyImplicationAccess().getPropertyImplicationLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,86,FollowSets000.FOLLOW_104); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getPropertyImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + + } + // InternalFiacre.g:9301:4: ( (lv_right_3_0= rulePropertyImplication ) ) + // InternalFiacre.g:9302:5: (lv_right_3_0= rulePropertyImplication ) + { + // InternalFiacre.g:9302:5: (lv_right_3_0= rulePropertyImplication ) + // InternalFiacre.g:9303:6: lv_right_3_0= rulePropertyImplication + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPropertyImplicationAccess().getRightPropertyImplicationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_3_0=rulePropertyImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPropertyImplicationRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.PropertyImplication"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePropertyImplication" + + + // $ANTLR start "entryRulePropertyConjunction" + // InternalFiacre.g:9325:1: entryRulePropertyConjunction returns [EObject current=null] : iv_rulePropertyConjunction= rulePropertyConjunction EOF ; + public final EObject entryRulePropertyConjunction() throws RecognitionException { + EObject current = null; + + EObject iv_rulePropertyConjunction = null; + + + try { + // InternalFiacre.g:9325:60: (iv_rulePropertyConjunction= rulePropertyConjunction EOF ) + // InternalFiacre.g:9326:2: iv_rulePropertyConjunction= rulePropertyConjunction EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPropertyConjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePropertyConjunction=rulePropertyConjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePropertyConjunction; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePropertyConjunction" + + + // $ANTLR start "rulePropertyConjunction" + // InternalFiacre.g:9332:1: rulePropertyConjunction returns [EObject current=null] : (this_PropertyNegation_0= rulePropertyNegation ( () otherlv_2= 'and' ( (lv_right_3_0= rulePropertyNegation ) ) )* ) ; + public final EObject rulePropertyConjunction() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_PropertyNegation_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9338:2: ( (this_PropertyNegation_0= rulePropertyNegation ( () otherlv_2= 'and' ( (lv_right_3_0= rulePropertyNegation ) ) )* ) ) + // InternalFiacre.g:9339:2: (this_PropertyNegation_0= rulePropertyNegation ( () otherlv_2= 'and' ( (lv_right_3_0= rulePropertyNegation ) ) )* ) + { + // InternalFiacre.g:9339:2: (this_PropertyNegation_0= rulePropertyNegation ( () otherlv_2= 'and' ( (lv_right_3_0= rulePropertyNegation ) ) )* ) + // InternalFiacre.g:9340:3: this_PropertyNegation_0= rulePropertyNegation ( () otherlv_2= 'and' ( (lv_right_3_0= rulePropertyNegation ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPropertyConjunctionAccess().getPropertyNegationParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_86); + this_PropertyNegation_0=rulePropertyNegation(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_PropertyNegation_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:9351:3: ( () otherlv_2= 'and' ( (lv_right_3_0= rulePropertyNegation ) ) )* + loop147: + do { + int alt147=2; + int LA147_0 = input.LA(1); + + if ( (LA147_0==87) ) { + alt147=1; + } + + + switch (alt147) { + case 1 : + // InternalFiacre.g:9352:4: () otherlv_2= 'and' ( (lv_right_3_0= rulePropertyNegation ) ) + { + // InternalFiacre.g:9352:4: () + // InternalFiacre.g:9353:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getPropertyConjunctionAccess().getPropertyConjunctionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,87,FollowSets000.FOLLOW_104); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getPropertyConjunctionAccess().getAndKeyword_1_1()); + + } + // InternalFiacre.g:9366:4: ( (lv_right_3_0= rulePropertyNegation ) ) + // InternalFiacre.g:9367:5: (lv_right_3_0= rulePropertyNegation ) + { + // InternalFiacre.g:9367:5: (lv_right_3_0= rulePropertyNegation ) + // InternalFiacre.g:9368:6: lv_right_3_0= rulePropertyNegation + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPropertyConjunctionAccess().getRightPropertyNegationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_86); + lv_right_3_0=rulePropertyNegation(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPropertyConjunctionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.PropertyNegation"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop147; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePropertyConjunction" + + + // $ANTLR start "entryRulePropertyNegation" + // InternalFiacre.g:9390:1: entryRulePropertyNegation returns [EObject current=null] : iv_rulePropertyNegation= rulePropertyNegation EOF ; + public final EObject entryRulePropertyNegation() throws RecognitionException { + EObject current = null; + + EObject iv_rulePropertyNegation = null; + + + try { + // InternalFiacre.g:9390:57: (iv_rulePropertyNegation= rulePropertyNegation EOF ) + // InternalFiacre.g:9391:2: iv_rulePropertyNegation= rulePropertyNegation EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPropertyNegationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePropertyNegation=rulePropertyNegation(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePropertyNegation; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePropertyNegation" + + + // $ANTLR start "rulePropertyNegation" + // InternalFiacre.g:9397:1: rulePropertyNegation returns [EObject current=null] : ( ( () otherlv_1= 'not' ( (lv_child_2_0= rulePropertyNegation ) ) ) | this_AtomicProperty_3= ruleAtomicProperty ) ; + public final EObject rulePropertyNegation() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + EObject lv_child_2_0 = null; + + EObject this_AtomicProperty_3 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9403:2: ( ( ( () otherlv_1= 'not' ( (lv_child_2_0= rulePropertyNegation ) ) ) | this_AtomicProperty_3= ruleAtomicProperty ) ) + // InternalFiacre.g:9404:2: ( ( () otherlv_1= 'not' ( (lv_child_2_0= rulePropertyNegation ) ) ) | this_AtomicProperty_3= ruleAtomicProperty ) + { + // InternalFiacre.g:9404:2: ( ( () otherlv_1= 'not' ( (lv_child_2_0= rulePropertyNegation ) ) ) | this_AtomicProperty_3= ruleAtomicProperty ) + int alt148=2; + int LA148_0 = input.LA(1); + + if ( (LA148_0==95) ) { + alt148=1; + } + else if ( (LA148_0==RULE_ID||LA148_0==RULE_INT||LA148_0==16||(LA148_0>=116 && LA148_0<=120)||LA148_0==127||LA148_0==129||(LA148_0>=134 && LA148_0<=135)) ) { + alt148=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 148, 0, input); + + throw nvae; + } + switch (alt148) { + case 1 : + // InternalFiacre.g:9405:3: ( () otherlv_1= 'not' ( (lv_child_2_0= rulePropertyNegation ) ) ) + { + // InternalFiacre.g:9405:3: ( () otherlv_1= 'not' ( (lv_child_2_0= rulePropertyNegation ) ) ) + // InternalFiacre.g:9406:4: () otherlv_1= 'not' ( (lv_child_2_0= rulePropertyNegation ) ) + { + // InternalFiacre.g:9406:4: () + // InternalFiacre.g:9407:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getPropertyNegationAccess().getPropertyNegationAction_0_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,95,FollowSets000.FOLLOW_104); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getPropertyNegationAccess().getNotKeyword_0_1()); + + } + // InternalFiacre.g:9420:4: ( (lv_child_2_0= rulePropertyNegation ) ) + // InternalFiacre.g:9421:5: (lv_child_2_0= rulePropertyNegation ) + { + // InternalFiacre.g:9421:5: (lv_child_2_0= rulePropertyNegation ) + // InternalFiacre.g:9422:6: lv_child_2_0= rulePropertyNegation + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPropertyNegationAccess().getChildPropertyNegationParserRuleCall_0_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_child_2_0=rulePropertyNegation(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPropertyNegationRule()); + } + set( + current, + "child", + lv_child_2_0, + "fr.irit.fiacre.xtext.Fiacre.PropertyNegation"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:9441:3: this_AtomicProperty_3= ruleAtomicProperty + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPropertyNegationAccess().getAtomicPropertyParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_AtomicProperty_3=ruleAtomicProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AtomicProperty_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePropertyNegation" + + + // $ANTLR start "entryRuleAtomicProperty" + // InternalFiacre.g:9456:1: entryRuleAtomicProperty returns [EObject current=null] : iv_ruleAtomicProperty= ruleAtomicProperty EOF ; + public final EObject entryRuleAtomicProperty() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAtomicProperty = null; + + + try { + // InternalFiacre.g:9456:55: (iv_ruleAtomicProperty= ruleAtomicProperty EOF ) + // InternalFiacre.g:9457:2: iv_ruleAtomicProperty= ruleAtomicProperty EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAtomicPropertyRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleAtomicProperty=ruleAtomicProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAtomicProperty; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAtomicProperty" + + + // $ANTLR start "ruleAtomicProperty" + // InternalFiacre.g:9463:1: ruleAtomicProperty returns [EObject current=null] : (this_PatternProperty_0= rulePatternProperty | (otherlv_1= '(' this_Property_2= ruleProperty otherlv_3= ')' ) ) ; + public final EObject ruleAtomicProperty() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + EObject this_PatternProperty_0 = null; + + EObject this_Property_2 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9469:2: ( (this_PatternProperty_0= rulePatternProperty | (otherlv_1= '(' this_Property_2= ruleProperty otherlv_3= ')' ) ) ) + // InternalFiacre.g:9470:2: (this_PatternProperty_0= rulePatternProperty | (otherlv_1= '(' this_Property_2= ruleProperty otherlv_3= ')' ) ) + { + // InternalFiacre.g:9470:2: (this_PatternProperty_0= rulePatternProperty | (otherlv_1= '(' this_Property_2= ruleProperty otherlv_3= ')' ) ) + int alt149=2; + alt149 = dfa149.predict(input); + switch (alt149) { + case 1 : + // InternalFiacre.g:9471:3: this_PatternProperty_0= rulePatternProperty + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicPropertyAccess().getPatternPropertyParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_PatternProperty_0=rulePatternProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_PatternProperty_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:9483:3: (otherlv_1= '(' this_Property_2= ruleProperty otherlv_3= ')' ) + { + // InternalFiacre.g:9483:3: (otherlv_1= '(' this_Property_2= ruleProperty otherlv_3= ')' ) + // InternalFiacre.g:9484:4: otherlv_1= '(' this_Property_2= ruleProperty otherlv_3= ')' + { + otherlv_1=(Token)match(input,16,FollowSets000.FOLLOW_104); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getAtomicPropertyAccess().getLeftParenthesisKeyword_1_0()); + + } + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicPropertyAccess().getPropertyParserRuleCall_1_1()); + + } + pushFollow(FollowSets000.FOLLOW_62); + this_Property_2=ruleProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Property_2; + afterParserOrEnumRuleCall(); + + } + otherlv_3=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getAtomicPropertyAccess().getRightParenthesisKeyword_1_2()); + + } + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAtomicProperty" + + + // $ANTLR start "entryRulePatternProperty" + // InternalFiacre.g:9508:1: entryRulePatternProperty returns [EObject current=null] : iv_rulePatternProperty= rulePatternProperty EOF ; + public final EObject entryRulePatternProperty() throws RecognitionException { + EObject current = null; + + EObject iv_rulePatternProperty = null; + + + try { + // InternalFiacre.g:9508:56: (iv_rulePatternProperty= rulePatternProperty EOF ) + // InternalFiacre.g:9509:2: iv_rulePatternProperty= rulePatternProperty EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPatternPropertyRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePatternProperty=rulePatternProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePatternProperty; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePatternProperty" + + + // $ANTLR start "rulePatternProperty" + // InternalFiacre.g:9515:1: rulePatternProperty returns [EObject current=null] : (this_LTLPattern_0= ruleLTLPattern | this_DeadlockFreePattern_1= ruleDeadlockFreePattern | this_InfinitelyOftenPattern_2= ruleInfinitelyOftenPattern | this_MortalPattern_3= ruleMortalPattern | this_PresencePattern_4= rulePresencePattern | this_AbsencePattern_5= ruleAbsencePattern | this_AlwaysPattern_6= ruleAlwaysPattern | this_SequencePattern_7= ruleSequencePattern ) ; + public final EObject rulePatternProperty() throws RecognitionException { + EObject current = null; + + EObject this_LTLPattern_0 = null; + + EObject this_DeadlockFreePattern_1 = null; + + EObject this_InfinitelyOftenPattern_2 = null; + + EObject this_MortalPattern_3 = null; + + EObject this_PresencePattern_4 = null; + + EObject this_AbsencePattern_5 = null; + + EObject this_AlwaysPattern_6 = null; + + EObject this_SequencePattern_7 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9521:2: ( (this_LTLPattern_0= ruleLTLPattern | this_DeadlockFreePattern_1= ruleDeadlockFreePattern | this_InfinitelyOftenPattern_2= ruleInfinitelyOftenPattern | this_MortalPattern_3= ruleMortalPattern | this_PresencePattern_4= rulePresencePattern | this_AbsencePattern_5= ruleAbsencePattern | this_AlwaysPattern_6= ruleAlwaysPattern | this_SequencePattern_7= ruleSequencePattern ) ) + // InternalFiacre.g:9522:2: (this_LTLPattern_0= ruleLTLPattern | this_DeadlockFreePattern_1= ruleDeadlockFreePattern | this_InfinitelyOftenPattern_2= ruleInfinitelyOftenPattern | this_MortalPattern_3= ruleMortalPattern | this_PresencePattern_4= rulePresencePattern | this_AbsencePattern_5= ruleAbsencePattern | this_AlwaysPattern_6= ruleAlwaysPattern | this_SequencePattern_7= ruleSequencePattern ) + { + // InternalFiacre.g:9522:2: (this_LTLPattern_0= ruleLTLPattern | this_DeadlockFreePattern_1= ruleDeadlockFreePattern | this_InfinitelyOftenPattern_2= ruleInfinitelyOftenPattern | this_MortalPattern_3= ruleMortalPattern | this_PresencePattern_4= rulePresencePattern | this_AbsencePattern_5= ruleAbsencePattern | this_AlwaysPattern_6= ruleAlwaysPattern | this_SequencePattern_7= ruleSequencePattern ) + int alt150=8; + switch ( input.LA(1) ) { + case 116: + { + alt150=1; + } + break; + case 117: + { + alt150=2; + } + break; + case 118: + { + alt150=3; + } + break; + case 119: + { + alt150=4; + } + break; + case 120: + { + alt150=5; + } + break; + case 127: + { + alt150=6; + } + break; + case 129: + { + alt150=7; + } + break; + case RULE_ID: + case RULE_INT: + case 16: + case 134: + case 135: + { + alt150=8; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 150, 0, input); + + throw nvae; + } + + switch (alt150) { + case 1 : + // InternalFiacre.g:9523:3: this_LTLPattern_0= ruleLTLPattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternPropertyAccess().getLTLPatternParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_LTLPattern_0=ruleLTLPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LTLPattern_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:9535:3: this_DeadlockFreePattern_1= ruleDeadlockFreePattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternPropertyAccess().getDeadlockFreePatternParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_DeadlockFreePattern_1=ruleDeadlockFreePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_DeadlockFreePattern_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:9547:3: this_InfinitelyOftenPattern_2= ruleInfinitelyOftenPattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternPropertyAccess().getInfinitelyOftenPatternParserRuleCall_2()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_InfinitelyOftenPattern_2=ruleInfinitelyOftenPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_InfinitelyOftenPattern_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 4 : + // InternalFiacre.g:9559:3: this_MortalPattern_3= ruleMortalPattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternPropertyAccess().getMortalPatternParserRuleCall_3()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_MortalPattern_3=ruleMortalPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_MortalPattern_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 5 : + // InternalFiacre.g:9571:3: this_PresencePattern_4= rulePresencePattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternPropertyAccess().getPresencePatternParserRuleCall_4()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_PresencePattern_4=rulePresencePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_PresencePattern_4; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 6 : + // InternalFiacre.g:9583:3: this_AbsencePattern_5= ruleAbsencePattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternPropertyAccess().getAbsencePatternParserRuleCall_5()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_AbsencePattern_5=ruleAbsencePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AbsencePattern_5; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 7 : + // InternalFiacre.g:9595:3: this_AlwaysPattern_6= ruleAlwaysPattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternPropertyAccess().getAlwaysPatternParserRuleCall_6()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_AlwaysPattern_6=ruleAlwaysPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AlwaysPattern_6; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 8 : + // InternalFiacre.g:9607:3: this_SequencePattern_7= ruleSequencePattern + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternPropertyAccess().getSequencePatternParserRuleCall_7()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_SequencePattern_7=ruleSequencePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_SequencePattern_7; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePatternProperty" + + + // $ANTLR start "entryRuleLTLPattern" + // InternalFiacre.g:9622:1: entryRuleLTLPattern returns [EObject current=null] : iv_ruleLTLPattern= ruleLTLPattern EOF ; + public final EObject entryRuleLTLPattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLTLPattern = null; + + + try { + // InternalFiacre.g:9622:51: (iv_ruleLTLPattern= ruleLTLPattern EOF ) + // InternalFiacre.g:9623:2: iv_ruleLTLPattern= ruleLTLPattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLTLPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLTLPattern=ruleLTLPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLTLPattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLTLPattern" + + + // $ANTLR start "ruleLTLPattern" + // InternalFiacre.g:9629:1: ruleLTLPattern returns [EObject current=null] : (otherlv_0= 'ltl' ( (lv_property_1_0= ruleLTLUnary ) ) ) ; + public final EObject ruleLTLPattern() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_property_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9635:2: ( (otherlv_0= 'ltl' ( (lv_property_1_0= ruleLTLUnary ) ) ) ) + // InternalFiacre.g:9636:2: (otherlv_0= 'ltl' ( (lv_property_1_0= ruleLTLUnary ) ) ) + { + // InternalFiacre.g:9636:2: (otherlv_0= 'ltl' ( (lv_property_1_0= ruleLTLUnary ) ) ) + // InternalFiacre.g:9637:3: otherlv_0= 'ltl' ( (lv_property_1_0= ruleLTLUnary ) ) + { + otherlv_0=(Token)match(input,116,FollowSets000.FOLLOW_105); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getLTLPatternAccess().getLtlKeyword_0()); + + } + // InternalFiacre.g:9641:3: ( (lv_property_1_0= ruleLTLUnary ) ) + // InternalFiacre.g:9642:4: (lv_property_1_0= ruleLTLUnary ) + { + // InternalFiacre.g:9642:4: (lv_property_1_0= ruleLTLUnary ) + // InternalFiacre.g:9643:5: lv_property_1_0= ruleLTLUnary + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLPatternAccess().getPropertyLTLUnaryParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_property_1_0=ruleLTLUnary(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLTLPatternRule()); + } + set( + current, + "property", + lv_property_1_0, + "fr.irit.fiacre.xtext.Fiacre.LTLUnary"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLTLPattern" + + + // $ANTLR start "entryRuleDeadlockFreePattern" + // InternalFiacre.g:9664:1: entryRuleDeadlockFreePattern returns [EObject current=null] : iv_ruleDeadlockFreePattern= ruleDeadlockFreePattern EOF ; + public final EObject entryRuleDeadlockFreePattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleDeadlockFreePattern = null; + + + try { + // InternalFiacre.g:9664:60: (iv_ruleDeadlockFreePattern= ruleDeadlockFreePattern EOF ) + // InternalFiacre.g:9665:2: iv_ruleDeadlockFreePattern= ruleDeadlockFreePattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getDeadlockFreePatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleDeadlockFreePattern=ruleDeadlockFreePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleDeadlockFreePattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleDeadlockFreePattern" + + + // $ANTLR start "ruleDeadlockFreePattern" + // InternalFiacre.g:9671:1: ruleDeadlockFreePattern returns [EObject current=null] : ( () otherlv_1= 'deadlockfree' ) ; + public final EObject ruleDeadlockFreePattern() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalFiacre.g:9677:2: ( ( () otherlv_1= 'deadlockfree' ) ) + // InternalFiacre.g:9678:2: ( () otherlv_1= 'deadlockfree' ) + { + // InternalFiacre.g:9678:2: ( () otherlv_1= 'deadlockfree' ) + // InternalFiacre.g:9679:3: () otherlv_1= 'deadlockfree' + { + // InternalFiacre.g:9679:3: () + // InternalFiacre.g:9680:4: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getDeadlockFreePatternAccess().getDeadlockFreePatternAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,117,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getDeadlockFreePatternAccess().getDeadlockfreeKeyword_1()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleDeadlockFreePattern" + + + // $ANTLR start "entryRuleInfinitelyOftenPattern" + // InternalFiacre.g:9697:1: entryRuleInfinitelyOftenPattern returns [EObject current=null] : iv_ruleInfinitelyOftenPattern= ruleInfinitelyOftenPattern EOF ; + public final EObject entryRuleInfinitelyOftenPattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleInfinitelyOftenPattern = null; + + + try { + // InternalFiacre.g:9697:63: (iv_ruleInfinitelyOftenPattern= ruleInfinitelyOftenPattern EOF ) + // InternalFiacre.g:9698:2: iv_ruleInfinitelyOftenPattern= ruleInfinitelyOftenPattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getInfinitelyOftenPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleInfinitelyOftenPattern=ruleInfinitelyOftenPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleInfinitelyOftenPattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleInfinitelyOftenPattern" + + + // $ANTLR start "ruleInfinitelyOftenPattern" + // InternalFiacre.g:9704:1: ruleInfinitelyOftenPattern returns [EObject current=null] : (otherlv_0= 'infinitelyoften' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) ; + public final EObject ruleInfinitelyOftenPattern() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_subject_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9710:2: ( (otherlv_0= 'infinitelyoften' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) ) + // InternalFiacre.g:9711:2: (otherlv_0= 'infinitelyoften' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:9711:2: (otherlv_0= 'infinitelyoften' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:9712:3: otherlv_0= 'infinitelyoften' ( (lv_subject_1_0= ruleAtomicObservable ) ) + { + otherlv_0=(Token)match(input,118,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getInfinitelyOftenPatternAccess().getInfinitelyoftenKeyword_0()); + + } + // InternalFiacre.g:9716:3: ( (lv_subject_1_0= ruleAtomicObservable ) ) + // InternalFiacre.g:9717:4: (lv_subject_1_0= ruleAtomicObservable ) + { + // InternalFiacre.g:9717:4: (lv_subject_1_0= ruleAtomicObservable ) + // InternalFiacre.g:9718:5: lv_subject_1_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_subject_1_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getInfinitelyOftenPatternRule()); + } + set( + current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleInfinitelyOftenPattern" + + + // $ANTLR start "entryRuleMortalPattern" + // InternalFiacre.g:9739:1: entryRuleMortalPattern returns [EObject current=null] : iv_ruleMortalPattern= ruleMortalPattern EOF ; + public final EObject entryRuleMortalPattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleMortalPattern = null; + + + try { + // InternalFiacre.g:9739:54: (iv_ruleMortalPattern= ruleMortalPattern EOF ) + // InternalFiacre.g:9740:2: iv_ruleMortalPattern= ruleMortalPattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getMortalPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleMortalPattern=ruleMortalPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleMortalPattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleMortalPattern" + + + // $ANTLR start "ruleMortalPattern" + // InternalFiacre.g:9746:1: ruleMortalPattern returns [EObject current=null] : (otherlv_0= 'mortal' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) ; + public final EObject ruleMortalPattern() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_subject_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9752:2: ( (otherlv_0= 'mortal' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) ) + // InternalFiacre.g:9753:2: (otherlv_0= 'mortal' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:9753:2: (otherlv_0= 'mortal' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:9754:3: otherlv_0= 'mortal' ( (lv_subject_1_0= ruleAtomicObservable ) ) + { + otherlv_0=(Token)match(input,119,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getMortalPatternAccess().getMortalKeyword_0()); + + } + // InternalFiacre.g:9758:3: ( (lv_subject_1_0= ruleAtomicObservable ) ) + // InternalFiacre.g:9759:4: (lv_subject_1_0= ruleAtomicObservable ) + { + // InternalFiacre.g:9759:4: (lv_subject_1_0= ruleAtomicObservable ) + // InternalFiacre.g:9760:5: lv_subject_1_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getMortalPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_subject_1_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getMortalPatternRule()); + } + set( + current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleMortalPattern" + + + // $ANTLR start "entryRulePresencePattern" + // InternalFiacre.g:9781:1: entryRulePresencePattern returns [EObject current=null] : iv_rulePresencePattern= rulePresencePattern EOF ; + public final EObject entryRulePresencePattern() throws RecognitionException { + EObject current = null; + + EObject iv_rulePresencePattern = null; + + + try { + // InternalFiacre.g:9781:56: (iv_rulePresencePattern= rulePresencePattern EOF ) + // InternalFiacre.g:9782:2: iv_rulePresencePattern= rulePresencePattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPresencePatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePresencePattern=rulePresencePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePresencePattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePresencePattern" + + + // $ANTLR start "rulePresencePattern" + // InternalFiacre.g:9788:1: rulePresencePattern returns [EObject current=null] : (otherlv_0= 'present' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( (otherlv_2= 'lasting' ( (lv_lasting_3_0= RULE_INT ) ) ) | ( (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) ) ( (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) | (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) ) (otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) )? ) | (otherlv_18= 'between' ( (lv_min_19_0= ruleAtomicObservable ) ) otherlv_20= 'and' ( (lv_max_21_0= ruleAtomicObservable ) ) ) )? ) ; + public final EObject rulePresencePattern() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token lv_lasting_3_0=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_14=null; + Token otherlv_16=null; + Token otherlv_18=null; + Token otherlv_20=null; + EObject lv_subject_1_0 = null; + + EObject lv_after_5_0 = null; + + EObject lv_lower_7_0 = null; + + EObject lv_upper_9_0 = null; + + EObject lv_until_11_0 = null; + + EObject lv_before_13_0 = null; + + EObject lv_lower_15_0 = null; + + EObject lv_upper_17_0 = null; + + EObject lv_min_19_0 = null; + + EObject lv_max_21_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:9794:2: ( (otherlv_0= 'present' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( (otherlv_2= 'lasting' ( (lv_lasting_3_0= RULE_INT ) ) ) | ( (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) ) ( (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) | (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) ) (otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) )? ) | (otherlv_18= 'between' ( (lv_min_19_0= ruleAtomicObservable ) ) otherlv_20= 'and' ( (lv_max_21_0= ruleAtomicObservable ) ) ) )? ) ) + // InternalFiacre.g:9795:2: (otherlv_0= 'present' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( (otherlv_2= 'lasting' ( (lv_lasting_3_0= RULE_INT ) ) ) | ( (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) ) ( (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) | (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) ) (otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) )? ) | (otherlv_18= 'between' ( (lv_min_19_0= ruleAtomicObservable ) ) otherlv_20= 'and' ( (lv_max_21_0= ruleAtomicObservable ) ) ) )? ) + { + // InternalFiacre.g:9795:2: (otherlv_0= 'present' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( (otherlv_2= 'lasting' ( (lv_lasting_3_0= RULE_INT ) ) ) | ( (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) ) ( (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) | (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) ) (otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) )? ) | (otherlv_18= 'between' ( (lv_min_19_0= ruleAtomicObservable ) ) otherlv_20= 'and' ( (lv_max_21_0= ruleAtomicObservable ) ) ) )? ) + // InternalFiacre.g:9796:3: otherlv_0= 'present' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( (otherlv_2= 'lasting' ( (lv_lasting_3_0= RULE_INT ) ) ) | ( (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) ) ( (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) | (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) ) (otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) )? ) | (otherlv_18= 'between' ( (lv_min_19_0= ruleAtomicObservable ) ) otherlv_20= 'and' ( (lv_max_21_0= ruleAtomicObservable ) ) ) )? + { + otherlv_0=(Token)match(input,120,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getPresencePatternAccess().getPresentKeyword_0()); + + } + // InternalFiacre.g:9800:3: ( (lv_subject_1_0= ruleAtomicObservable ) ) + // InternalFiacre.g:9801:4: (lv_subject_1_0= ruleAtomicObservable ) + { + // InternalFiacre.g:9801:4: (lv_subject_1_0= ruleAtomicObservable ) + // InternalFiacre.g:9802:5: lv_subject_1_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPresencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_107); + lv_subject_1_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:9819:3: ( (otherlv_2= 'lasting' ( (lv_lasting_3_0= RULE_INT ) ) ) | ( (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) ) ( (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) | (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) ) (otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) )? ) | (otherlv_18= 'between' ( (lv_min_19_0= ruleAtomicObservable ) ) otherlv_20= 'and' ( (lv_max_21_0= ruleAtomicObservable ) ) ) )? + int alt153=5; + switch ( input.LA(1) ) { + case 121: + { + alt153=1; + } + break; + case 122: + { + alt153=2; + } + break; + case 125: + { + alt153=3; + } + break; + case 126: + { + alt153=4; + } + break; + } + + switch (alt153) { + case 1 : + // InternalFiacre.g:9820:4: (otherlv_2= 'lasting' ( (lv_lasting_3_0= RULE_INT ) ) ) + { + // InternalFiacre.g:9820:4: (otherlv_2= 'lasting' ( (lv_lasting_3_0= RULE_INT ) ) ) + // InternalFiacre.g:9821:5: otherlv_2= 'lasting' ( (lv_lasting_3_0= RULE_INT ) ) + { + otherlv_2=(Token)match(input,121,FollowSets000.FOLLOW_63); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getPresencePatternAccess().getLastingKeyword_2_0_0()); + + } + // InternalFiacre.g:9825:5: ( (lv_lasting_3_0= RULE_INT ) ) + // InternalFiacre.g:9826:6: (lv_lasting_3_0= RULE_INT ) + { + // InternalFiacre.g:9826:6: (lv_lasting_3_0= RULE_INT ) + // InternalFiacre.g:9827:7: lv_lasting_3_0= RULE_INT + { + lv_lasting_3_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_lasting_3_0, grammarAccess.getPresencePatternAccess().getLastingINTTerminalRuleCall_2_0_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getPresencePatternRule()); + } + setWithLastConsumed( + current, + "lasting", + lv_lasting_3_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:9845:4: ( (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) ) ( (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) | (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) )? ) + { + // InternalFiacre.g:9845:4: ( (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) ) ( (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) | (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) )? ) + // InternalFiacre.g:9846:5: (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) ) ( (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) | (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) )? + { + // InternalFiacre.g:9846:5: (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:9847:6: otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) + { + otherlv_4=(Token)match(input,122,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getPresencePatternAccess().getAfterKeyword_2_1_0_0()); + + } + // InternalFiacre.g:9851:6: ( (lv_after_5_0= ruleAtomicObservable ) ) + // InternalFiacre.g:9852:7: (lv_after_5_0= ruleAtomicObservable ) + { + // InternalFiacre.g:9852:7: (lv_after_5_0= ruleAtomicObservable ) + // InternalFiacre.g:9853:8: lv_after_5_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPresencePatternAccess().getAfterAtomicObservableParserRuleCall_2_1_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_108); + lv_after_5_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + current, + "after", + lv_after_5_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + // InternalFiacre.g:9871:5: ( (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) | (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) )? + int alt151=3; + int LA151_0 = input.LA(1); + + if ( (LA151_0==123) ) { + alt151=1; + } + else if ( (LA151_0==124) ) { + alt151=2; + } + switch (alt151) { + case 1 : + // InternalFiacre.g:9872:6: (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) + { + // InternalFiacre.g:9872:6: (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) ) + // InternalFiacre.g:9873:7: otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) + { + otherlv_6=(Token)match(input,123,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getPresencePatternAccess().getWithinKeyword_2_1_1_0_0()); + + } + // InternalFiacre.g:9877:7: ( (lv_lower_7_0= ruleLowerBound ) ) + // InternalFiacre.g:9878:8: (lv_lower_7_0= ruleLowerBound ) + { + // InternalFiacre.g:9878:8: (lv_lower_7_0= ruleLowerBound ) + // InternalFiacre.g:9879:9: lv_lower_7_0= ruleLowerBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_lower_7_0=ruleLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + current, + "lower", + lv_lower_7_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_8=(Token)match(input,17,FollowSets000.FOLLOW_44); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getPresencePatternAccess().getCommaKeyword_2_1_1_0_2()); + + } + // InternalFiacre.g:9900:7: ( (lv_upper_9_0= ruleUpperBound ) ) + // InternalFiacre.g:9901:8: (lv_upper_9_0= ruleUpperBound ) + { + // InternalFiacre.g:9901:8: (lv_upper_9_0= ruleUpperBound ) + // InternalFiacre.g:9902:9: lv_upper_9_0= ruleUpperBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_0_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_upper_9_0=ruleUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + current, + "upper", + lv_upper_9_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:9921:6: (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:9921:6: (otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:9922:7: otherlv_10= 'until' ( (lv_until_11_0= ruleAtomicObservable ) ) + { + otherlv_10=(Token)match(input,124,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getPresencePatternAccess().getUntilKeyword_2_1_1_1_0()); + + } + // InternalFiacre.g:9926:7: ( (lv_until_11_0= ruleAtomicObservable ) ) + // InternalFiacre.g:9927:8: (lv_until_11_0= ruleAtomicObservable ) + { + // InternalFiacre.g:9927:8: (lv_until_11_0= ruleAtomicObservable ) + // InternalFiacre.g:9928:9: lv_until_11_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPresencePatternAccess().getUntilAtomicObservableParserRuleCall_2_1_1_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_until_11_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + current, + "until", + lv_until_11_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 3 : + // InternalFiacre.g:9949:4: ( (otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) ) (otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) )? ) + { + // InternalFiacre.g:9949:4: ( (otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) ) (otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) )? ) + // InternalFiacre.g:9950:5: (otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) ) (otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) )? + { + // InternalFiacre.g:9950:5: (otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:9951:6: otherlv_12= 'before' ( (lv_before_13_0= ruleAtomicObservable ) ) + { + otherlv_12=(Token)match(input,125,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_12, grammarAccess.getPresencePatternAccess().getBeforeKeyword_2_2_0_0()); + + } + // InternalFiacre.g:9955:6: ( (lv_before_13_0= ruleAtomicObservable ) ) + // InternalFiacre.g:9956:7: (lv_before_13_0= ruleAtomicObservable ) + { + // InternalFiacre.g:9956:7: (lv_before_13_0= ruleAtomicObservable ) + // InternalFiacre.g:9957:8: lv_before_13_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPresencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_2_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_109); + lv_before_13_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + current, + "before", + lv_before_13_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + // InternalFiacre.g:9975:5: (otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) )? + int alt152=2; + int LA152_0 = input.LA(1); + + if ( (LA152_0==123) ) { + alt152=1; + } + switch (alt152) { + case 1 : + // InternalFiacre.g:9976:6: otherlv_14= 'within' ( (lv_lower_15_0= ruleLowerBound ) ) otherlv_16= ',' ( (lv_upper_17_0= ruleUpperBound ) ) + { + otherlv_14=(Token)match(input,123,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_14, grammarAccess.getPresencePatternAccess().getWithinKeyword_2_2_1_0()); + + } + // InternalFiacre.g:9980:6: ( (lv_lower_15_0= ruleLowerBound ) ) + // InternalFiacre.g:9981:7: (lv_lower_15_0= ruleLowerBound ) + { + // InternalFiacre.g:9981:7: (lv_lower_15_0= ruleLowerBound ) + // InternalFiacre.g:9982:8: lv_lower_15_0= ruleLowerBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPresencePatternAccess().getLowerLowerBoundParserRuleCall_2_2_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_lower_15_0=ruleLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + current, + "lower", + lv_lower_15_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_16=(Token)match(input,17,FollowSets000.FOLLOW_44); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_16, grammarAccess.getPresencePatternAccess().getCommaKeyword_2_2_1_2()); + + } + // InternalFiacre.g:10003:6: ( (lv_upper_17_0= ruleUpperBound ) ) + // InternalFiacre.g:10004:7: (lv_upper_17_0= ruleUpperBound ) + { + // InternalFiacre.g:10004:7: (lv_upper_17_0= ruleUpperBound ) + // InternalFiacre.g:10005:8: lv_upper_17_0= ruleUpperBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPresencePatternAccess().getUpperUpperBoundParserRuleCall_2_2_1_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_upper_17_0=ruleUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + current, + "upper", + lv_upper_17_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 4 : + // InternalFiacre.g:10025:4: (otherlv_18= 'between' ( (lv_min_19_0= ruleAtomicObservable ) ) otherlv_20= 'and' ( (lv_max_21_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:10025:4: (otherlv_18= 'between' ( (lv_min_19_0= ruleAtomicObservable ) ) otherlv_20= 'and' ( (lv_max_21_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10026:5: otherlv_18= 'between' ( (lv_min_19_0= ruleAtomicObservable ) ) otherlv_20= 'and' ( (lv_max_21_0= ruleAtomicObservable ) ) + { + otherlv_18=(Token)match(input,126,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_18, grammarAccess.getPresencePatternAccess().getBetweenKeyword_2_3_0()); + + } + // InternalFiacre.g:10030:5: ( (lv_min_19_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10031:6: (lv_min_19_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10031:6: (lv_min_19_0= ruleAtomicObservable ) + // InternalFiacre.g:10032:7: lv_min_19_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPresencePatternAccess().getMinAtomicObservableParserRuleCall_2_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_110); + lv_min_19_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + current, + "min", + lv_min_19_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_20=(Token)match(input,87,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_20, grammarAccess.getPresencePatternAccess().getAndKeyword_2_3_2()); + + } + // InternalFiacre.g:10053:5: ( (lv_max_21_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10054:6: (lv_max_21_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10054:6: (lv_max_21_0= ruleAtomicObservable ) + // InternalFiacre.g:10055:7: lv_max_21_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPresencePatternAccess().getMaxAtomicObservableParserRuleCall_2_3_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_max_21_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPresencePatternRule()); + } + set( + current, + "max", + lv_max_21_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePresencePattern" + + + // $ANTLR start "entryRuleAbsencePattern" + // InternalFiacre.g:10078:1: entryRuleAbsencePattern returns [EObject current=null] : iv_ruleAbsencePattern= ruleAbsencePattern EOF ; + public final EObject entryRuleAbsencePattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAbsencePattern = null; + + + try { + // InternalFiacre.g:10078:55: (iv_ruleAbsencePattern= ruleAbsencePattern EOF ) + // InternalFiacre.g:10079:2: iv_ruleAbsencePattern= ruleAbsencePattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAbsencePatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleAbsencePattern=ruleAbsencePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAbsencePattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAbsencePattern" + + + // $ANTLR start "ruleAbsencePattern" + // InternalFiacre.g:10085:1: ruleAbsencePattern returns [EObject current=null] : (otherlv_0= 'absent' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( ( (otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) ) ( (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) | (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) ) (otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) )? ) | (otherlv_16= 'between' ( (lv_min_17_0= ruleAtomicObservable ) ) otherlv_18= 'and' ( (lv_max_19_0= ruleAtomicObservable ) ) ) )? ) ; + public final EObject ruleAbsencePattern() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_14=null; + Token otherlv_16=null; + Token otherlv_18=null; + EObject lv_subject_1_0 = null; + + EObject lv_after_3_0 = null; + + EObject lv_lower_5_0 = null; + + EObject lv_upper_7_0 = null; + + EObject lv_until_9_0 = null; + + EObject lv_before_11_0 = null; + + EObject lv_lower_13_0 = null; + + EObject lv_upper_15_0 = null; + + EObject lv_min_17_0 = null; + + EObject lv_max_19_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:10091:2: ( (otherlv_0= 'absent' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( ( (otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) ) ( (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) | (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) ) (otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) )? ) | (otherlv_16= 'between' ( (lv_min_17_0= ruleAtomicObservable ) ) otherlv_18= 'and' ( (lv_max_19_0= ruleAtomicObservable ) ) ) )? ) ) + // InternalFiacre.g:10092:2: (otherlv_0= 'absent' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( ( (otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) ) ( (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) | (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) ) (otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) )? ) | (otherlv_16= 'between' ( (lv_min_17_0= ruleAtomicObservable ) ) otherlv_18= 'and' ( (lv_max_19_0= ruleAtomicObservable ) ) ) )? ) + { + // InternalFiacre.g:10092:2: (otherlv_0= 'absent' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( ( (otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) ) ( (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) | (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) ) (otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) )? ) | (otherlv_16= 'between' ( (lv_min_17_0= ruleAtomicObservable ) ) otherlv_18= 'and' ( (lv_max_19_0= ruleAtomicObservable ) ) ) )? ) + // InternalFiacre.g:10093:3: otherlv_0= 'absent' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( ( (otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) ) ( (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) | (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) ) (otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) )? ) | (otherlv_16= 'between' ( (lv_min_17_0= ruleAtomicObservable ) ) otherlv_18= 'and' ( (lv_max_19_0= ruleAtomicObservable ) ) ) )? + { + otherlv_0=(Token)match(input,127,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getAbsencePatternAccess().getAbsentKeyword_0()); + + } + // InternalFiacre.g:10097:3: ( (lv_subject_1_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10098:4: (lv_subject_1_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10098:4: (lv_subject_1_0= ruleAtomicObservable ) + // InternalFiacre.g:10099:5: lv_subject_1_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAbsencePatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_111); + lv_subject_1_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:10116:3: ( ( (otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) ) ( (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) | (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) )? ) | ( (otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) ) (otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) )? ) | (otherlv_16= 'between' ( (lv_min_17_0= ruleAtomicObservable ) ) otherlv_18= 'and' ( (lv_max_19_0= ruleAtomicObservable ) ) ) )? + int alt156=4; + switch ( input.LA(1) ) { + case 122: + { + alt156=1; + } + break; + case 125: + { + alt156=2; + } + break; + case 126: + { + alt156=3; + } + break; + } + + switch (alt156) { + case 1 : + // InternalFiacre.g:10117:4: ( (otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) ) ( (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) | (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) )? ) + { + // InternalFiacre.g:10117:4: ( (otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) ) ( (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) | (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) )? ) + // InternalFiacre.g:10118:5: (otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) ) ( (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) | (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) )? + { + // InternalFiacre.g:10118:5: (otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10119:6: otherlv_2= 'after' ( (lv_after_3_0= ruleAtomicObservable ) ) + { + otherlv_2=(Token)match(input,122,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getAbsencePatternAccess().getAfterKeyword_2_0_0_0()); + + } + // InternalFiacre.g:10123:6: ( (lv_after_3_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10124:7: (lv_after_3_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10124:7: (lv_after_3_0= ruleAtomicObservable ) + // InternalFiacre.g:10125:8: lv_after_3_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAbsencePatternAccess().getAfterAtomicObservableParserRuleCall_2_0_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_108); + lv_after_3_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + current, + "after", + lv_after_3_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + // InternalFiacre.g:10143:5: ( (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) | (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) )? + int alt154=3; + int LA154_0 = input.LA(1); + + if ( (LA154_0==123) ) { + alt154=1; + } + else if ( (LA154_0==124) ) { + alt154=2; + } + switch (alt154) { + case 1 : + // InternalFiacre.g:10144:6: (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) + { + // InternalFiacre.g:10144:6: (otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) ) + // InternalFiacre.g:10145:7: otherlv_4= 'within' ( (lv_lower_5_0= ruleLowerBound ) ) otherlv_6= ',' ( (lv_upper_7_0= ruleUpperBound ) ) + { + otherlv_4=(Token)match(input,123,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getAbsencePatternAccess().getWithinKeyword_2_0_1_0_0()); + + } + // InternalFiacre.g:10149:7: ( (lv_lower_5_0= ruleLowerBound ) ) + // InternalFiacre.g:10150:8: (lv_lower_5_0= ruleLowerBound ) + { + // InternalFiacre.g:10150:8: (lv_lower_5_0= ruleLowerBound ) + // InternalFiacre.g:10151:9: lv_lower_5_0= ruleLowerBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_0_1_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_lower_5_0=ruleLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + current, + "lower", + lv_lower_5_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_6=(Token)match(input,17,FollowSets000.FOLLOW_44); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_0_1_0_2()); + + } + // InternalFiacre.g:10172:7: ( (lv_upper_7_0= ruleUpperBound ) ) + // InternalFiacre.g:10173:8: (lv_upper_7_0= ruleUpperBound ) + { + // InternalFiacre.g:10173:8: (lv_upper_7_0= ruleUpperBound ) + // InternalFiacre.g:10174:9: lv_upper_7_0= ruleUpperBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_0_1_0_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_upper_7_0=ruleUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + current, + "upper", + lv_upper_7_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:10193:6: (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:10193:6: (otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10194:7: otherlv_8= 'until' ( (lv_until_9_0= ruleAtomicObservable ) ) + { + otherlv_8=(Token)match(input,124,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getAbsencePatternAccess().getUntilKeyword_2_0_1_1_0()); + + } + // InternalFiacre.g:10198:7: ( (lv_until_9_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10199:8: (lv_until_9_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10199:8: (lv_until_9_0= ruleAtomicObservable ) + // InternalFiacre.g:10200:9: lv_until_9_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAbsencePatternAccess().getUntilAtomicObservableParserRuleCall_2_0_1_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_until_9_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + current, + "until", + lv_until_9_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:10221:4: ( (otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) ) (otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) )? ) + { + // InternalFiacre.g:10221:4: ( (otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) ) (otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) )? ) + // InternalFiacre.g:10222:5: (otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) ) (otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) )? + { + // InternalFiacre.g:10222:5: (otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10223:6: otherlv_10= 'before' ( (lv_before_11_0= ruleAtomicObservable ) ) + { + otherlv_10=(Token)match(input,125,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getAbsencePatternAccess().getBeforeKeyword_2_1_0_0()); + + } + // InternalFiacre.g:10227:6: ( (lv_before_11_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10228:7: (lv_before_11_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10228:7: (lv_before_11_0= ruleAtomicObservable ) + // InternalFiacre.g:10229:8: lv_before_11_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAbsencePatternAccess().getBeforeAtomicObservableParserRuleCall_2_1_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_112); + lv_before_11_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + current, + "before", + lv_before_11_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + // InternalFiacre.g:10247:5: (otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) )? + int alt155=2; + int LA155_0 = input.LA(1); + + if ( (LA155_0==128) ) { + alt155=1; + } + switch (alt155) { + case 1 : + // InternalFiacre.g:10248:6: otherlv_12= 'for' ( (lv_lower_13_0= ruleLowerBound ) ) otherlv_14= ',' ( (lv_upper_15_0= ruleUpperBound ) ) + { + otherlv_12=(Token)match(input,128,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_12, grammarAccess.getAbsencePatternAccess().getForKeyword_2_1_1_0()); + + } + // InternalFiacre.g:10252:6: ( (lv_lower_13_0= ruleLowerBound ) ) + // InternalFiacre.g:10253:7: (lv_lower_13_0= ruleLowerBound ) + { + // InternalFiacre.g:10253:7: (lv_lower_13_0= ruleLowerBound ) + // InternalFiacre.g:10254:8: lv_lower_13_0= ruleLowerBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAbsencePatternAccess().getLowerLowerBoundParserRuleCall_2_1_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_lower_13_0=ruleLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + current, + "lower", + lv_lower_13_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_14=(Token)match(input,17,FollowSets000.FOLLOW_44); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_14, grammarAccess.getAbsencePatternAccess().getCommaKeyword_2_1_1_2()); + + } + // InternalFiacre.g:10275:6: ( (lv_upper_15_0= ruleUpperBound ) ) + // InternalFiacre.g:10276:7: (lv_upper_15_0= ruleUpperBound ) + { + // InternalFiacre.g:10276:7: (lv_upper_15_0= ruleUpperBound ) + // InternalFiacre.g:10277:8: lv_upper_15_0= ruleUpperBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAbsencePatternAccess().getUpperUpperBoundParserRuleCall_2_1_1_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_upper_15_0=ruleUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + current, + "upper", + lv_upper_15_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 3 : + // InternalFiacre.g:10297:4: (otherlv_16= 'between' ( (lv_min_17_0= ruleAtomicObservable ) ) otherlv_18= 'and' ( (lv_max_19_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:10297:4: (otherlv_16= 'between' ( (lv_min_17_0= ruleAtomicObservable ) ) otherlv_18= 'and' ( (lv_max_19_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10298:5: otherlv_16= 'between' ( (lv_min_17_0= ruleAtomicObservable ) ) otherlv_18= 'and' ( (lv_max_19_0= ruleAtomicObservable ) ) + { + otherlv_16=(Token)match(input,126,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_16, grammarAccess.getAbsencePatternAccess().getBetweenKeyword_2_2_0()); + + } + // InternalFiacre.g:10302:5: ( (lv_min_17_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10303:6: (lv_min_17_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10303:6: (lv_min_17_0= ruleAtomicObservable ) + // InternalFiacre.g:10304:7: lv_min_17_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAbsencePatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_110); + lv_min_17_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + current, + "min", + lv_min_17_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_18=(Token)match(input,87,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_18, grammarAccess.getAbsencePatternAccess().getAndKeyword_2_2_2()); + + } + // InternalFiacre.g:10325:5: ( (lv_max_19_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10326:6: (lv_max_19_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10326:6: (lv_max_19_0= ruleAtomicObservable ) + // InternalFiacre.g:10327:7: lv_max_19_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAbsencePatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_max_19_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAbsencePatternRule()); + } + set( + current, + "max", + lv_max_19_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAbsencePattern" + + + // $ANTLR start "entryRuleAlwaysPattern" + // InternalFiacre.g:10350:1: entryRuleAlwaysPattern returns [EObject current=null] : iv_ruleAlwaysPattern= ruleAlwaysPattern EOF ; + public final EObject entryRuleAlwaysPattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAlwaysPattern = null; + + + try { + // InternalFiacre.g:10350:54: (iv_ruleAlwaysPattern= ruleAlwaysPattern EOF ) + // InternalFiacre.g:10351:2: iv_ruleAlwaysPattern= ruleAlwaysPattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAlwaysPatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleAlwaysPattern=ruleAlwaysPattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAlwaysPattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAlwaysPattern" + + + // $ANTLR start "ruleAlwaysPattern" + // InternalFiacre.g:10357:1: ruleAlwaysPattern returns [EObject current=null] : (otherlv_0= 'always' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( (otherlv_2= 'before' ( (lv_before_3_0= ruleAtomicObservable ) ) ) | (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) (otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) )? ) | (otherlv_8= 'between' ( (lv_min_9_0= ruleAtomicObservable ) ) otherlv_10= 'and' ( (lv_max_11_0= ruleAtomicObservable ) ) ) )? ) ; + public final EObject ruleAlwaysPattern() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_10=null; + EObject lv_subject_1_0 = null; + + EObject lv_before_3_0 = null; + + EObject lv_after_5_0 = null; + + EObject lv_until_7_0 = null; + + EObject lv_min_9_0 = null; + + EObject lv_max_11_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:10363:2: ( (otherlv_0= 'always' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( (otherlv_2= 'before' ( (lv_before_3_0= ruleAtomicObservable ) ) ) | (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) (otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) )? ) | (otherlv_8= 'between' ( (lv_min_9_0= ruleAtomicObservable ) ) otherlv_10= 'and' ( (lv_max_11_0= ruleAtomicObservable ) ) ) )? ) ) + // InternalFiacre.g:10364:2: (otherlv_0= 'always' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( (otherlv_2= 'before' ( (lv_before_3_0= ruleAtomicObservable ) ) ) | (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) (otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) )? ) | (otherlv_8= 'between' ( (lv_min_9_0= ruleAtomicObservable ) ) otherlv_10= 'and' ( (lv_max_11_0= ruleAtomicObservable ) ) ) )? ) + { + // InternalFiacre.g:10364:2: (otherlv_0= 'always' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( (otherlv_2= 'before' ( (lv_before_3_0= ruleAtomicObservable ) ) ) | (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) (otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) )? ) | (otherlv_8= 'between' ( (lv_min_9_0= ruleAtomicObservable ) ) otherlv_10= 'and' ( (lv_max_11_0= ruleAtomicObservable ) ) ) )? ) + // InternalFiacre.g:10365:3: otherlv_0= 'always' ( (lv_subject_1_0= ruleAtomicObservable ) ) ( (otherlv_2= 'before' ( (lv_before_3_0= ruleAtomicObservable ) ) ) | (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) (otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) )? ) | (otherlv_8= 'between' ( (lv_min_9_0= ruleAtomicObservable ) ) otherlv_10= 'and' ( (lv_max_11_0= ruleAtomicObservable ) ) ) )? + { + otherlv_0=(Token)match(input,129,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getAlwaysPatternAccess().getAlwaysKeyword_0()); + + } + // InternalFiacre.g:10369:3: ( (lv_subject_1_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10370:4: (lv_subject_1_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10370:4: (lv_subject_1_0= ruleAtomicObservable ) + // InternalFiacre.g:10371:5: lv_subject_1_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_111); + lv_subject_1_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:10388:3: ( (otherlv_2= 'before' ( (lv_before_3_0= ruleAtomicObservable ) ) ) | (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) (otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) )? ) | (otherlv_8= 'between' ( (lv_min_9_0= ruleAtomicObservable ) ) otherlv_10= 'and' ( (lv_max_11_0= ruleAtomicObservable ) ) ) )? + int alt158=4; + switch ( input.LA(1) ) { + case 125: + { + alt158=1; + } + break; + case 122: + { + alt158=2; + } + break; + case 126: + { + alt158=3; + } + break; + } + + switch (alt158) { + case 1 : + // InternalFiacre.g:10389:4: (otherlv_2= 'before' ( (lv_before_3_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:10389:4: (otherlv_2= 'before' ( (lv_before_3_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10390:5: otherlv_2= 'before' ( (lv_before_3_0= ruleAtomicObservable ) ) + { + otherlv_2=(Token)match(input,125,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getAlwaysPatternAccess().getBeforeKeyword_2_0_0()); + + } + // InternalFiacre.g:10394:5: ( (lv_before_3_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10395:6: (lv_before_3_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10395:6: (lv_before_3_0= ruleAtomicObservable ) + // InternalFiacre.g:10396:7: lv_before_3_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getBeforeAtomicObservableParserRuleCall_2_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_before_3_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + current, + "before", + lv_before_3_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:10415:4: (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) (otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) )? ) + { + // InternalFiacre.g:10415:4: (otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) (otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) )? ) + // InternalFiacre.g:10416:5: otherlv_4= 'after' ( (lv_after_5_0= ruleAtomicObservable ) ) (otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) )? + { + otherlv_4=(Token)match(input,122,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getAlwaysPatternAccess().getAfterKeyword_2_1_0()); + + } + // InternalFiacre.g:10420:5: ( (lv_after_5_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10421:6: (lv_after_5_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10421:6: (lv_after_5_0= ruleAtomicObservable ) + // InternalFiacre.g:10422:7: lv_after_5_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getAfterAtomicObservableParserRuleCall_2_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_113); + lv_after_5_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + current, + "after", + lv_after_5_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:10439:5: (otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) )? + int alt157=2; + int LA157_0 = input.LA(1); + + if ( (LA157_0==124) ) { + alt157=1; + } + switch (alt157) { + case 1 : + // InternalFiacre.g:10440:6: otherlv_6= 'until' ( (lv_until_7_0= ruleAtomicObservable ) ) + { + otherlv_6=(Token)match(input,124,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getAlwaysPatternAccess().getUntilKeyword_2_1_2_0()); + + } + // InternalFiacre.g:10444:6: ( (lv_until_7_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10445:7: (lv_until_7_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10445:7: (lv_until_7_0= ruleAtomicObservable ) + // InternalFiacre.g:10446:8: lv_until_7_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getUntilAtomicObservableParserRuleCall_2_1_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_until_7_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + current, + "until", + lv_until_7_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 3 : + // InternalFiacre.g:10466:4: (otherlv_8= 'between' ( (lv_min_9_0= ruleAtomicObservable ) ) otherlv_10= 'and' ( (lv_max_11_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:10466:4: (otherlv_8= 'between' ( (lv_min_9_0= ruleAtomicObservable ) ) otherlv_10= 'and' ( (lv_max_11_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10467:5: otherlv_8= 'between' ( (lv_min_9_0= ruleAtomicObservable ) ) otherlv_10= 'and' ( (lv_max_11_0= ruleAtomicObservable ) ) + { + otherlv_8=(Token)match(input,126,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getAlwaysPatternAccess().getBetweenKeyword_2_2_0()); + + } + // InternalFiacre.g:10471:5: ( (lv_min_9_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10472:6: (lv_min_9_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10472:6: (lv_min_9_0= ruleAtomicObservable ) + // InternalFiacre.g:10473:7: lv_min_9_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getMinAtomicObservableParserRuleCall_2_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_110); + lv_min_9_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + current, + "min", + lv_min_9_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_10=(Token)match(input,87,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getAlwaysPatternAccess().getAndKeyword_2_2_2()); + + } + // InternalFiacre.g:10494:5: ( (lv_max_11_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10495:6: (lv_max_11_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10495:6: (lv_max_11_0= ruleAtomicObservable ) + // InternalFiacre.g:10496:7: lv_max_11_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAlwaysPatternAccess().getMaxAtomicObservableParserRuleCall_2_2_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_max_11_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAlwaysPatternRule()); + } + set( + current, + "max", + lv_max_11_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAlwaysPattern" + + + // $ANTLR start "entryRuleSequencePattern" + // InternalFiacre.g:10519:1: entryRuleSequencePattern returns [EObject current=null] : iv_ruleSequencePattern= ruleSequencePattern EOF ; + public final EObject entryRuleSequencePattern() throws RecognitionException { + EObject current = null; + + EObject iv_ruleSequencePattern = null; + + + try { + // InternalFiacre.g:10519:56: (iv_ruleSequencePattern= ruleSequencePattern EOF ) + // InternalFiacre.g:10520:2: iv_ruleSequencePattern= ruleSequencePattern EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getSequencePatternRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleSequencePattern=ruleSequencePattern(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleSequencePattern; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleSequencePattern" + + + // $ANTLR start "ruleSequencePattern" + // InternalFiacre.g:10526:1: ruleSequencePattern returns [EObject current=null] : (this_AtomicObservable_0= ruleAtomicObservable ( (otherlv_1= 'leadsto' () ( (lv_follower_3_0= ruleAtomicObservable ) ) ( (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) | (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) | (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_26= 'precedes' () ( (lv_follower_28_0= ruleAtomicObservable ) ) ( (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) | (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) | (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) )? ) ) ) ; + public final EObject ruleSequencePattern() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_14=null; + Token otherlv_16=null; + Token otherlv_18=null; + Token otherlv_20=null; + Token otherlv_22=null; + Token otherlv_24=null; + Token otherlv_26=null; + Token otherlv_29=null; + Token otherlv_31=null; + Token otherlv_33=null; + Token otherlv_35=null; + Token otherlv_37=null; + EObject this_AtomicObservable_0 = null; + + EObject lv_follower_3_0 = null; + + EObject lv_before_5_0 = null; + + EObject lv_lower_7_0 = null; + + EObject lv_upper_9_0 = null; + + EObject lv_lower_11_0 = null; + + EObject lv_upper_13_0 = null; + + EObject lv_after_15_0 = null; + + EObject lv_lower_17_0 = null; + + EObject lv_upper_19_0 = null; + + EObject lv_until_21_0 = null; + + EObject lv_min_23_0 = null; + + EObject lv_max_25_0 = null; + + EObject lv_follower_28_0 = null; + + EObject lv_before_30_0 = null; + + EObject lv_after_32_0 = null; + + EObject lv_until_34_0 = null; + + EObject lv_min_36_0 = null; + + EObject lv_max_38_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:10532:2: ( (this_AtomicObservable_0= ruleAtomicObservable ( (otherlv_1= 'leadsto' () ( (lv_follower_3_0= ruleAtomicObservable ) ) ( (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) | (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) | (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_26= 'precedes' () ( (lv_follower_28_0= ruleAtomicObservable ) ) ( (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) | (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) | (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) )? ) ) ) ) + // InternalFiacre.g:10533:2: (this_AtomicObservable_0= ruleAtomicObservable ( (otherlv_1= 'leadsto' () ( (lv_follower_3_0= ruleAtomicObservable ) ) ( (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) | (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) | (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_26= 'precedes' () ( (lv_follower_28_0= ruleAtomicObservable ) ) ( (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) | (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) | (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) )? ) ) ) + { + // InternalFiacre.g:10533:2: (this_AtomicObservable_0= ruleAtomicObservable ( (otherlv_1= 'leadsto' () ( (lv_follower_3_0= ruleAtomicObservable ) ) ( (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) | (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) | (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_26= 'precedes' () ( (lv_follower_28_0= ruleAtomicObservable ) ) ( (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) | (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) | (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) )? ) ) ) + // InternalFiacre.g:10534:3: this_AtomicObservable_0= ruleAtomicObservable ( (otherlv_1= 'leadsto' () ( (lv_follower_3_0= ruleAtomicObservable ) ) ( (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) | (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) | (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_26= 'precedes' () ( (lv_follower_28_0= ruleAtomicObservable ) ) ( (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) | (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) | (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) )? ) ) + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getAtomicObservableParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_114); + this_AtomicObservable_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AtomicObservable_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:10545:3: ( (otherlv_1= 'leadsto' () ( (lv_follower_3_0= ruleAtomicObservable ) ) ( (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) | (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) | (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_26= 'precedes' () ( (lv_follower_28_0= ruleAtomicObservable ) ) ( (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) | (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) | (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) )? ) ) + int alt164=2; + int LA164_0 = input.LA(1); + + if ( (LA164_0==130) ) { + alt164=1; + } + else if ( (LA164_0==131) ) { + alt164=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 164, 0, input); + + throw nvae; + } + switch (alt164) { + case 1 : + // InternalFiacre.g:10546:4: (otherlv_1= 'leadsto' () ( (lv_follower_3_0= ruleAtomicObservable ) ) ( (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) | (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) | (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) )? ) + { + // InternalFiacre.g:10546:4: (otherlv_1= 'leadsto' () ( (lv_follower_3_0= ruleAtomicObservable ) ) ( (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) | (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) | (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) )? ) + // InternalFiacre.g:10547:5: otherlv_1= 'leadsto' () ( (lv_follower_3_0= ruleAtomicObservable ) ) ( (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) | (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) | (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) )? + { + otherlv_1=(Token)match(input,130,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getSequencePatternAccess().getLeadstoKeyword_1_0_0()); + + } + // InternalFiacre.g:10551:5: () + // InternalFiacre.g:10552:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getSequencePatternAccess().getLeadsToPatternSubjectAction_1_0_1(), + current); + + } + + } + + // InternalFiacre.g:10561:5: ( (lv_follower_3_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10562:6: (lv_follower_3_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10562:6: (lv_follower_3_0= ruleAtomicObservable ) + // InternalFiacre.g:10563:7: lv_follower_3_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_0_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_115); + lv_follower_3_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "follower", + lv_follower_3_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:10580:5: ( (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) | (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) | (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) | (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) )? + int alt161=5; + switch ( input.LA(1) ) { + case 125: + { + alt161=1; + } + break; + case 123: + { + alt161=2; + } + break; + case 122: + { + alt161=3; + } + break; + case 126: + { + alt161=4; + } + break; + } + + switch (alt161) { + case 1 : + // InternalFiacre.g:10581:6: (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) + { + // InternalFiacre.g:10581:6: (otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? ) + // InternalFiacre.g:10582:7: otherlv_4= 'before' ( (lv_before_5_0= ruleAtomicObservable ) ) (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? + { + otherlv_4=(Token)match(input,125,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_0_3_0_0()); + + } + // InternalFiacre.g:10586:7: ( (lv_before_5_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10587:8: (lv_before_5_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10587:8: (lv_before_5_0= ruleAtomicObservable ) + // InternalFiacre.g:10588:9: lv_before_5_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_0_3_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_109); + lv_before_5_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "before", + lv_before_5_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:10605:7: (otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) )? + int alt159=2; + int LA159_0 = input.LA(1); + + if ( (LA159_0==123) ) { + alt159=1; + } + switch (alt159) { + case 1 : + // InternalFiacre.g:10606:8: otherlv_6= 'within' ( (lv_lower_7_0= ruleLowerBound ) ) otherlv_8= ',' ( (lv_upper_9_0= ruleUpperBound ) ) + { + otherlv_6=(Token)match(input,123,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_0_2_0()); + + } + // InternalFiacre.g:10610:8: ( (lv_lower_7_0= ruleLowerBound ) ) + // InternalFiacre.g:10611:9: (lv_lower_7_0= ruleLowerBound ) + { + // InternalFiacre.g:10611:9: (lv_lower_7_0= ruleLowerBound ) + // InternalFiacre.g:10612:10: lv_lower_7_0= ruleLowerBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_0_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_lower_7_0=ruleLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "lower", + lv_lower_7_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_8=(Token)match(input,17,FollowSets000.FOLLOW_44); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_0_2_2()); + + } + // InternalFiacre.g:10633:8: ( (lv_upper_9_0= ruleUpperBound ) ) + // InternalFiacre.g:10634:9: (lv_upper_9_0= ruleUpperBound ) + { + // InternalFiacre.g:10634:9: (lv_upper_9_0= ruleUpperBound ) + // InternalFiacre.g:10635:10: lv_upper_9_0= ruleUpperBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_0_2_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_upper_9_0=ruleUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "upper", + lv_upper_9_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:10655:6: (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) + { + // InternalFiacre.g:10655:6: (otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) ) + // InternalFiacre.g:10656:7: otherlv_10= 'within' ( (lv_lower_11_0= ruleLowerBound ) ) otherlv_12= ',' ( (lv_upper_13_0= ruleUpperBound ) ) + { + otherlv_10=(Token)match(input,123,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_1_0()); + + } + // InternalFiacre.g:10660:7: ( (lv_lower_11_0= ruleLowerBound ) ) + // InternalFiacre.g:10661:8: (lv_lower_11_0= ruleLowerBound ) + { + // InternalFiacre.g:10661:8: (lv_lower_11_0= ruleLowerBound ) + // InternalFiacre.g:10662:9: lv_lower_11_0= ruleLowerBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_lower_11_0=ruleLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "lower", + lv_lower_11_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_12=(Token)match(input,17,FollowSets000.FOLLOW_44); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_12, grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_1_2()); + + } + // InternalFiacre.g:10683:7: ( (lv_upper_13_0= ruleUpperBound ) ) + // InternalFiacre.g:10684:8: (lv_upper_13_0= ruleUpperBound ) + { + // InternalFiacre.g:10684:8: (lv_upper_13_0= ruleUpperBound ) + // InternalFiacre.g:10685:9: lv_upper_13_0= ruleUpperBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_1_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_upper_13_0=ruleUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "upper", + lv_upper_13_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 3 : + // InternalFiacre.g:10704:6: (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) + { + // InternalFiacre.g:10704:6: (otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? ) + // InternalFiacre.g:10705:7: otherlv_14= 'after' ( (lv_after_15_0= ruleAtomicObservable ) ) ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? + { + otherlv_14=(Token)match(input,122,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_14, grammarAccess.getSequencePatternAccess().getAfterKeyword_1_0_3_2_0()); + + } + // InternalFiacre.g:10709:7: ( (lv_after_15_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10710:8: (lv_after_15_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10710:8: (lv_after_15_0= ruleAtomicObservable ) + // InternalFiacre.g:10711:9: lv_after_15_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_0_3_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_108); + lv_after_15_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "after", + lv_after_15_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:10728:7: ( (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) | (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) )? + int alt160=3; + int LA160_0 = input.LA(1); + + if ( (LA160_0==123) ) { + alt160=1; + } + else if ( (LA160_0==124) ) { + alt160=2; + } + switch (alt160) { + case 1 : + // InternalFiacre.g:10729:8: (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) + { + // InternalFiacre.g:10729:8: (otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) ) + // InternalFiacre.g:10730:9: otherlv_16= 'within' ( (lv_lower_17_0= ruleLowerBound ) ) otherlv_18= ',' ( (lv_upper_19_0= ruleUpperBound ) ) + { + otherlv_16=(Token)match(input,123,FollowSets000.FOLLOW_42); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_16, grammarAccess.getSequencePatternAccess().getWithinKeyword_1_0_3_2_2_0_0()); + + } + // InternalFiacre.g:10734:9: ( (lv_lower_17_0= ruleLowerBound ) ) + // InternalFiacre.g:10735:10: (lv_lower_17_0= ruleLowerBound ) + { + // InternalFiacre.g:10735:10: (lv_lower_17_0= ruleLowerBound ) + // InternalFiacre.g:10736:11: lv_lower_17_0= ruleLowerBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getLowerLowerBoundParserRuleCall_1_0_3_2_2_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_43); + lv_lower_17_0=ruleLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "lower", + lv_lower_17_0, + "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_18=(Token)match(input,17,FollowSets000.FOLLOW_44); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_18, grammarAccess.getSequencePatternAccess().getCommaKeyword_1_0_3_2_2_0_2()); + + } + // InternalFiacre.g:10757:9: ( (lv_upper_19_0= ruleUpperBound ) ) + // InternalFiacre.g:10758:10: (lv_upper_19_0= ruleUpperBound ) + { + // InternalFiacre.g:10758:10: (lv_upper_19_0= ruleUpperBound ) + // InternalFiacre.g:10759:11: lv_upper_19_0= ruleUpperBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getUpperUpperBoundParserRuleCall_1_0_3_2_2_0_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_upper_19_0=ruleUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "upper", + lv_upper_19_0, + "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:10778:8: (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:10778:8: (otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10779:9: otherlv_20= 'until' ( (lv_until_21_0= ruleAtomicObservable ) ) + { + otherlv_20=(Token)match(input,124,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_20, grammarAccess.getSequencePatternAccess().getUntilKeyword_1_0_3_2_2_1_0()); + + } + // InternalFiacre.g:10783:9: ( (lv_until_21_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10784:10: (lv_until_21_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10784:10: (lv_until_21_0= ruleAtomicObservable ) + // InternalFiacre.g:10785:11: lv_until_21_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_0_3_2_2_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_until_21_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "until", + lv_until_21_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 4 : + // InternalFiacre.g:10806:6: (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:10806:6: (otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10807:7: otherlv_22= 'between' ( (lv_min_23_0= ruleAtomicObservable ) ) otherlv_24= 'and' ( (lv_max_25_0= ruleAtomicObservable ) ) + { + otherlv_22=(Token)match(input,126,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_22, grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_0_3_3_0()); + + } + // InternalFiacre.g:10811:7: ( (lv_min_23_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10812:8: (lv_min_23_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10812:8: (lv_min_23_0= ruleAtomicObservable ) + // InternalFiacre.g:10813:9: lv_min_23_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_0_3_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_110); + lv_min_23_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "min", + lv_min_23_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_24=(Token)match(input,87,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_24, grammarAccess.getSequencePatternAccess().getAndKeyword_1_0_3_3_2()); + + } + // InternalFiacre.g:10834:7: ( (lv_max_25_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10835:8: (lv_max_25_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10835:8: (lv_max_25_0= ruleAtomicObservable ) + // InternalFiacre.g:10836:9: lv_max_25_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_0_3_3_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_max_25_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "max", + lv_max_25_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:10857:4: (otherlv_26= 'precedes' () ( (lv_follower_28_0= ruleAtomicObservable ) ) ( (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) | (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) | (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) )? ) + { + // InternalFiacre.g:10857:4: (otherlv_26= 'precedes' () ( (lv_follower_28_0= ruleAtomicObservable ) ) ( (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) | (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) | (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) )? ) + // InternalFiacre.g:10858:5: otherlv_26= 'precedes' () ( (lv_follower_28_0= ruleAtomicObservable ) ) ( (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) | (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) | (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) )? + { + otherlv_26=(Token)match(input,131,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_26, grammarAccess.getSequencePatternAccess().getPrecedesKeyword_1_1_0()); + + } + // InternalFiacre.g:10862:5: () + // InternalFiacre.g:10863:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getSequencePatternAccess().getPrecedesPatternSubjectAction_1_1_1(), + current); + + } + + } + + // InternalFiacre.g:10872:5: ( (lv_follower_28_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10873:6: (lv_follower_28_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10873:6: (lv_follower_28_0= ruleAtomicObservable ) + // InternalFiacre.g:10874:7: lv_follower_28_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getFollowerAtomicObservableParserRuleCall_1_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_111); + lv_follower_28_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "follower", + lv_follower_28_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:10891:5: ( (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) | (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) | (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) )? + int alt163=4; + switch ( input.LA(1) ) { + case 125: + { + alt163=1; + } + break; + case 122: + { + alt163=2; + } + break; + case 126: + { + alt163=3; + } + break; + } + + switch (alt163) { + case 1 : + // InternalFiacre.g:10892:6: (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:10892:6: (otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10893:7: otherlv_29= 'before' ( (lv_before_30_0= ruleAtomicObservable ) ) + { + otherlv_29=(Token)match(input,125,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_29, grammarAccess.getSequencePatternAccess().getBeforeKeyword_1_1_3_0_0()); + + } + // InternalFiacre.g:10897:7: ( (lv_before_30_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10898:8: (lv_before_30_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10898:8: (lv_before_30_0= ruleAtomicObservable ) + // InternalFiacre.g:10899:9: lv_before_30_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getBeforeAtomicObservableParserRuleCall_1_1_3_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_before_30_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "before", + lv_before_30_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:10918:6: (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) + { + // InternalFiacre.g:10918:6: (otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? ) + // InternalFiacre.g:10919:7: otherlv_31= 'after' ( (lv_after_32_0= ruleAtomicObservable ) ) (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? + { + otherlv_31=(Token)match(input,122,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_31, grammarAccess.getSequencePatternAccess().getAfterKeyword_1_1_3_1_0()); + + } + // InternalFiacre.g:10923:7: ( (lv_after_32_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10924:8: (lv_after_32_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10924:8: (lv_after_32_0= ruleAtomicObservable ) + // InternalFiacre.g:10925:9: lv_after_32_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getAfterAtomicObservableParserRuleCall_1_1_3_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_113); + lv_after_32_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "after", + lv_after_32_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:10942:7: (otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) )? + int alt162=2; + int LA162_0 = input.LA(1); + + if ( (LA162_0==124) ) { + alt162=1; + } + switch (alt162) { + case 1 : + // InternalFiacre.g:10943:8: otherlv_33= 'until' ( (lv_until_34_0= ruleAtomicObservable ) ) + { + otherlv_33=(Token)match(input,124,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_33, grammarAccess.getSequencePatternAccess().getUntilKeyword_1_1_3_1_2_0()); + + } + // InternalFiacre.g:10947:8: ( (lv_until_34_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10948:9: (lv_until_34_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10948:9: (lv_until_34_0= ruleAtomicObservable ) + // InternalFiacre.g:10949:10: lv_until_34_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getUntilAtomicObservableParserRuleCall_1_1_3_1_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_until_34_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "until", + lv_until_34_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 3 : + // InternalFiacre.g:10969:6: (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:10969:6: (otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:10970:7: otherlv_35= 'between' ( (lv_min_36_0= ruleAtomicObservable ) ) otherlv_37= 'and' ( (lv_max_38_0= ruleAtomicObservable ) ) + { + otherlv_35=(Token)match(input,126,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_35, grammarAccess.getSequencePatternAccess().getBetweenKeyword_1_1_3_2_0()); + + } + // InternalFiacre.g:10974:7: ( (lv_min_36_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10975:8: (lv_min_36_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10975:8: (lv_min_36_0= ruleAtomicObservable ) + // InternalFiacre.g:10976:9: lv_min_36_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getMinAtomicObservableParserRuleCall_1_1_3_2_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_110); + lv_min_36_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "min", + lv_min_36_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_37=(Token)match(input,87,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_37, grammarAccess.getSequencePatternAccess().getAndKeyword_1_1_3_2_2()); + + } + // InternalFiacre.g:10997:7: ( (lv_max_38_0= ruleAtomicObservable ) ) + // InternalFiacre.g:10998:8: (lv_max_38_0= ruleAtomicObservable ) + { + // InternalFiacre.g:10998:8: (lv_max_38_0= ruleAtomicObservable ) + // InternalFiacre.g:10999:9: lv_max_38_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSequencePatternAccess().getMaxAtomicObservableParserRuleCall_1_1_3_2_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_max_38_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSequencePatternRule()); + } + set( + current, + "max", + lv_max_38_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleSequencePattern" + + + // $ANTLR start "entryRuleLTLProperty" + // InternalFiacre.g:11024:1: entryRuleLTLProperty returns [EObject current=null] : iv_ruleLTLProperty= ruleLTLProperty EOF ; + public final EObject entryRuleLTLProperty() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLTLProperty = null; + + + try { + // InternalFiacre.g:11024:52: (iv_ruleLTLProperty= ruleLTLProperty EOF ) + // InternalFiacre.g:11025:2: iv_ruleLTLProperty= ruleLTLProperty EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLTLPropertyRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLTLProperty=ruleLTLProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLTLProperty; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLTLProperty" + + + // $ANTLR start "ruleLTLProperty" + // InternalFiacre.g:11031:1: ruleLTLProperty returns [EObject current=null] : this_LTLQuantified_0= ruleLTLQuantified ; + public final EObject ruleLTLProperty() throws RecognitionException { + EObject current = null; + + EObject this_LTLQuantified_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11037:2: (this_LTLQuantified_0= ruleLTLQuantified ) + // InternalFiacre.g:11038:2: this_LTLQuantified_0= ruleLTLQuantified + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLPropertyAccess().getLTLQuantifiedParserRuleCall()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_LTLQuantified_0=ruleLTLQuantified(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LTLQuantified_0; + afterParserOrEnumRuleCall(); + + } + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLTLProperty" + + + // $ANTLR start "entryRuleLTLQuantified" + // InternalFiacre.g:11052:1: entryRuleLTLQuantified returns [EObject current=null] : iv_ruleLTLQuantified= ruleLTLQuantified EOF ; + public final EObject entryRuleLTLQuantified() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLTLQuantified = null; + + + try { + // InternalFiacre.g:11052:54: (iv_ruleLTLQuantified= ruleLTLQuantified EOF ) + // InternalFiacre.g:11053:2: iv_ruleLTLQuantified= ruleLTLQuantified EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLTLQuantifiedRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLTLQuantified=ruleLTLQuantified(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLTLQuantified; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLTLQuantified" + + + // $ANTLR start "ruleLTLQuantified" + // InternalFiacre.g:11059:1: ruleLTLQuantified returns [EObject current=null] : ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleLTLQuantified ) ) ) | this_LTLDisjunction_9= ruleLTLDisjunction ) ; + public final EObject ruleLTLQuantified() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + EObject lv_index_4_0 = null; + + EObject lv_type_6_0 = null; + + EObject lv_child_8_0 = null; + + EObject this_LTLDisjunction_9 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11065:2: ( ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleLTLQuantified ) ) ) | this_LTLDisjunction_9= ruleLTLDisjunction ) ) + // InternalFiacre.g:11066:2: ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleLTLQuantified ) ) ) | this_LTLDisjunction_9= ruleLTLDisjunction ) + { + // InternalFiacre.g:11066:2: ( ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleLTLQuantified ) ) ) | this_LTLDisjunction_9= ruleLTLDisjunction ) + int alt166=2; + int LA166_0 = input.LA(1); + + if ( ((LA166_0>=83 && LA166_0<=84)) ) { + alt166=1; + } + else if ( (LA166_0==RULE_ID||LA166_0==RULE_INT||LA166_0==16||LA166_0==54||LA166_0==89||LA166_0==95||(LA166_0>=133 && LA166_0<=135)) ) { + alt166=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 166, 0, input); + + throw nvae; + } + switch (alt166) { + case 1 : + // InternalFiacre.g:11067:3: ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleLTLQuantified ) ) ) + { + // InternalFiacre.g:11067:3: ( ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleLTLQuantified ) ) ) + // InternalFiacre.g:11068:4: ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) ( (lv_index_4_0= ruleVariableDeclaration ) ) otherlv_5= 'in' ( (lv_type_6_0= ruleRangeType ) ) otherlv_7= '.' ( (lv_child_8_0= ruleLTLQuantified ) ) + { + // InternalFiacre.g:11068:4: ( ( () otherlv_1= 'all' ) | ( () otherlv_3= 'exists' ) ) + int alt165=2; + int LA165_0 = input.LA(1); + + if ( (LA165_0==83) ) { + alt165=1; + } + else if ( (LA165_0==84) ) { + alt165=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 165, 0, input); + + throw nvae; + } + switch (alt165) { + case 1 : + // InternalFiacre.g:11069:5: ( () otherlv_1= 'all' ) + { + // InternalFiacre.g:11069:5: ( () otherlv_1= 'all' ) + // InternalFiacre.g:11070:6: () otherlv_1= 'all' + { + // InternalFiacre.g:11070:6: () + // InternalFiacre.g:11071:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getLTLQuantifiedAccess().getLTLAllAction_0_0_0_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,83,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getLTLQuantifiedAccess().getAllKeyword_0_0_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:11086:5: ( () otherlv_3= 'exists' ) + { + // InternalFiacre.g:11086:5: ( () otherlv_3= 'exists' ) + // InternalFiacre.g:11087:6: () otherlv_3= 'exists' + { + // InternalFiacre.g:11087:6: () + // InternalFiacre.g:11088:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getLTLQuantifiedAccess().getLTLExistsAction_0_0_1_0(), + current); + + } + + } + + otherlv_3=(Token)match(input,84,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getLTLQuantifiedAccess().getExistsKeyword_0_0_1_1()); + + } + + } + + + } + break; + + } + + // InternalFiacre.g:11103:4: ( (lv_index_4_0= ruleVariableDeclaration ) ) + // InternalFiacre.g:11104:5: (lv_index_4_0= ruleVariableDeclaration ) + { + // InternalFiacre.g:11104:5: (lv_index_4_0= ruleVariableDeclaration ) + // InternalFiacre.g:11105:6: lv_index_4_0= ruleVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLQuantifiedAccess().getIndexVariableDeclarationParserRuleCall_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_69); + lv_index_4_0=ruleVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLTLQuantifiedRule()); + } + set( + current, + "index", + lv_index_4_0, + "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_5=(Token)match(input,26,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getLTLQuantifiedAccess().getInKeyword_0_2()); + + } + // InternalFiacre.g:11126:4: ( (lv_type_6_0= ruleRangeType ) ) + // InternalFiacre.g:11127:5: (lv_type_6_0= ruleRangeType ) + { + // InternalFiacre.g:11127:5: (lv_type_6_0= ruleRangeType ) + // InternalFiacre.g:11128:6: lv_type_6_0= ruleRangeType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLQuantifiedAccess().getTypeRangeTypeParserRuleCall_0_3_0()); + + } + pushFollow(FollowSets000.FOLLOW_82); + lv_type_6_0=ruleRangeType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLTLQuantifiedRule()); + } + set( + current, + "type", + lv_type_6_0, + "fr.irit.fiacre.xtext.Fiacre.RangeType"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_7=(Token)match(input,65,FollowSets000.FOLLOW_116); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getLTLQuantifiedAccess().getFullStopKeyword_0_4()); + + } + // InternalFiacre.g:11149:4: ( (lv_child_8_0= ruleLTLQuantified ) ) + // InternalFiacre.g:11150:5: (lv_child_8_0= ruleLTLQuantified ) + { + // InternalFiacre.g:11150:5: (lv_child_8_0= ruleLTLQuantified ) + // InternalFiacre.g:11151:6: lv_child_8_0= ruleLTLQuantified + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLQuantifiedAccess().getChildLTLQuantifiedParserRuleCall_0_5_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_child_8_0=ruleLTLQuantified(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLTLQuantifiedRule()); + } + set( + current, + "child", + lv_child_8_0, + "fr.irit.fiacre.xtext.Fiacre.LTLQuantified"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:11170:3: this_LTLDisjunction_9= ruleLTLDisjunction + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLQuantifiedAccess().getLTLDisjunctionParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_LTLDisjunction_9=ruleLTLDisjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LTLDisjunction_9; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLTLQuantified" + + + // $ANTLR start "entryRuleLTLDisjunction" + // InternalFiacre.g:11185:1: entryRuleLTLDisjunction returns [EObject current=null] : iv_ruleLTLDisjunction= ruleLTLDisjunction EOF ; + public final EObject entryRuleLTLDisjunction() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLTLDisjunction = null; + + + try { + // InternalFiacre.g:11185:55: (iv_ruleLTLDisjunction= ruleLTLDisjunction EOF ) + // InternalFiacre.g:11186:2: iv_ruleLTLDisjunction= ruleLTLDisjunction EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLTLDisjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLTLDisjunction=ruleLTLDisjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLTLDisjunction; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLTLDisjunction" + + + // $ANTLR start "ruleLTLDisjunction" + // InternalFiacre.g:11192:1: ruleLTLDisjunction returns [EObject current=null] : (this_LTLImplication_0= ruleLTLImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleLTLImplication ) ) )* ) ; + public final EObject ruleLTLDisjunction() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_LTLImplication_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11198:2: ( (this_LTLImplication_0= ruleLTLImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleLTLImplication ) ) )* ) ) + // InternalFiacre.g:11199:2: (this_LTLImplication_0= ruleLTLImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleLTLImplication ) ) )* ) + { + // InternalFiacre.g:11199:2: (this_LTLImplication_0= ruleLTLImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleLTLImplication ) ) )* ) + // InternalFiacre.g:11200:3: this_LTLImplication_0= ruleLTLImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleLTLImplication ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLDisjunctionAccess().getLTLImplicationParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_84); + this_LTLImplication_0=ruleLTLImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LTLImplication_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:11211:3: ( () otherlv_2= 'or' ( (lv_right_3_0= ruleLTLImplication ) ) )* + loop167: + do { + int alt167=2; + int LA167_0 = input.LA(1); + + if ( (LA167_0==85) ) { + alt167=1; + } + + + switch (alt167) { + case 1 : + // InternalFiacre.g:11212:4: () otherlv_2= 'or' ( (lv_right_3_0= ruleLTLImplication ) ) + { + // InternalFiacre.g:11212:4: () + // InternalFiacre.g:11213:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getLTLDisjunctionAccess().getLTLDisjunctionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,85,FollowSets000.FOLLOW_116); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getLTLDisjunctionAccess().getOrKeyword_1_1()); + + } + // InternalFiacre.g:11226:4: ( (lv_right_3_0= ruleLTLImplication ) ) + // InternalFiacre.g:11227:5: (lv_right_3_0= ruleLTLImplication ) + { + // InternalFiacre.g:11227:5: (lv_right_3_0= ruleLTLImplication ) + // InternalFiacre.g:11228:6: lv_right_3_0= ruleLTLImplication + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLDisjunctionAccess().getRightLTLImplicationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_84); + lv_right_3_0=ruleLTLImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLTLDisjunctionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.LTLImplication"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop167; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLTLDisjunction" + + + // $ANTLR start "entryRuleLTLImplication" + // InternalFiacre.g:11250:1: entryRuleLTLImplication returns [EObject current=null] : iv_ruleLTLImplication= ruleLTLImplication EOF ; + public final EObject entryRuleLTLImplication() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLTLImplication = null; + + + try { + // InternalFiacre.g:11250:55: (iv_ruleLTLImplication= ruleLTLImplication EOF ) + // InternalFiacre.g:11251:2: iv_ruleLTLImplication= ruleLTLImplication EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLTLImplicationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLTLImplication=ruleLTLImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLTLImplication; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLTLImplication" + + + // $ANTLR start "ruleLTLImplication" + // InternalFiacre.g:11257:1: ruleLTLImplication returns [EObject current=null] : (this_LTLConjunction_0= ruleLTLConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleLTLImplication ) ) )? ) ; + public final EObject ruleLTLImplication() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_LTLConjunction_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11263:2: ( (this_LTLConjunction_0= ruleLTLConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleLTLImplication ) ) )? ) ) + // InternalFiacre.g:11264:2: (this_LTLConjunction_0= ruleLTLConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleLTLImplication ) ) )? ) + { + // InternalFiacre.g:11264:2: (this_LTLConjunction_0= ruleLTLConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleLTLImplication ) ) )? ) + // InternalFiacre.g:11265:3: this_LTLConjunction_0= ruleLTLConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleLTLImplication ) ) )? + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLImplicationAccess().getLTLConjunctionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_85); + this_LTLConjunction_0=ruleLTLConjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LTLConjunction_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:11276:3: ( () otherlv_2= '=>' ( (lv_right_3_0= ruleLTLImplication ) ) )? + int alt168=2; + int LA168_0 = input.LA(1); + + if ( (LA168_0==86) ) { + alt168=1; + } + switch (alt168) { + case 1 : + // InternalFiacre.g:11277:4: () otherlv_2= '=>' ( (lv_right_3_0= ruleLTLImplication ) ) + { + // InternalFiacre.g:11277:4: () + // InternalFiacre.g:11278:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getLTLImplicationAccess().getLTLImplicationLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,86,FollowSets000.FOLLOW_116); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getLTLImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + + } + // InternalFiacre.g:11291:4: ( (lv_right_3_0= ruleLTLImplication ) ) + // InternalFiacre.g:11292:5: (lv_right_3_0= ruleLTLImplication ) + { + // InternalFiacre.g:11292:5: (lv_right_3_0= ruleLTLImplication ) + // InternalFiacre.g:11293:6: lv_right_3_0= ruleLTLImplication + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLImplicationAccess().getRightLTLImplicationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_3_0=ruleLTLImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLTLImplicationRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.LTLImplication"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLTLImplication" + + + // $ANTLR start "entryRuleLTLConjunction" + // InternalFiacre.g:11315:1: entryRuleLTLConjunction returns [EObject current=null] : iv_ruleLTLConjunction= ruleLTLConjunction EOF ; + public final EObject entryRuleLTLConjunction() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLTLConjunction = null; + + + try { + // InternalFiacre.g:11315:55: (iv_ruleLTLConjunction= ruleLTLConjunction EOF ) + // InternalFiacre.g:11316:2: iv_ruleLTLConjunction= ruleLTLConjunction EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLTLConjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLTLConjunction=ruleLTLConjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLTLConjunction; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLTLConjunction" + + + // $ANTLR start "ruleLTLConjunction" + // InternalFiacre.g:11322:1: ruleLTLConjunction returns [EObject current=null] : (this_LTLBinary_0= ruleLTLBinary ( () otherlv_2= 'and' ( (lv_right_3_0= ruleLTLBinary ) ) )* ) ; + public final EObject ruleLTLConjunction() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_LTLBinary_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11328:2: ( (this_LTLBinary_0= ruleLTLBinary ( () otherlv_2= 'and' ( (lv_right_3_0= ruleLTLBinary ) ) )* ) ) + // InternalFiacre.g:11329:2: (this_LTLBinary_0= ruleLTLBinary ( () otherlv_2= 'and' ( (lv_right_3_0= ruleLTLBinary ) ) )* ) + { + // InternalFiacre.g:11329:2: (this_LTLBinary_0= ruleLTLBinary ( () otherlv_2= 'and' ( (lv_right_3_0= ruleLTLBinary ) ) )* ) + // InternalFiacre.g:11330:3: this_LTLBinary_0= ruleLTLBinary ( () otherlv_2= 'and' ( (lv_right_3_0= ruleLTLBinary ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLConjunctionAccess().getLTLBinaryParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_86); + this_LTLBinary_0=ruleLTLBinary(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LTLBinary_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:11341:3: ( () otherlv_2= 'and' ( (lv_right_3_0= ruleLTLBinary ) ) )* + loop169: + do { + int alt169=2; + int LA169_0 = input.LA(1); + + if ( (LA169_0==87) ) { + alt169=1; + } + + + switch (alt169) { + case 1 : + // InternalFiacre.g:11342:4: () otherlv_2= 'and' ( (lv_right_3_0= ruleLTLBinary ) ) + { + // InternalFiacre.g:11342:4: () + // InternalFiacre.g:11343:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getLTLConjunctionAccess().getLTLConjunctionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,87,FollowSets000.FOLLOW_116); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getLTLConjunctionAccess().getAndKeyword_1_1()); + + } + // InternalFiacre.g:11356:4: ( (lv_right_3_0= ruleLTLBinary ) ) + // InternalFiacre.g:11357:5: (lv_right_3_0= ruleLTLBinary ) + { + // InternalFiacre.g:11357:5: (lv_right_3_0= ruleLTLBinary ) + // InternalFiacre.g:11358:6: lv_right_3_0= ruleLTLBinary + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLConjunctionAccess().getRightLTLBinaryParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_86); + lv_right_3_0=ruleLTLBinary(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLTLConjunctionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.LTLBinary"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop169; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLTLConjunction" + + + // $ANTLR start "entryRuleLTLBinary" + // InternalFiacre.g:11380:1: entryRuleLTLBinary returns [EObject current=null] : iv_ruleLTLBinary= ruleLTLBinary EOF ; + public final EObject entryRuleLTLBinary() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLTLBinary = null; + + + try { + // InternalFiacre.g:11380:50: (iv_ruleLTLBinary= ruleLTLBinary EOF ) + // InternalFiacre.g:11381:2: iv_ruleLTLBinary= ruleLTLBinary EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLTLBinaryRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLTLBinary=ruleLTLBinary(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLTLBinary; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLTLBinary" + + + // $ANTLR start "ruleLTLBinary" + // InternalFiacre.g:11387:1: ruleLTLBinary returns [EObject current=null] : (this_LTLUnary_0= ruleLTLUnary ( ( () otherlv_2= 'until' ( (lv_right_3_0= ruleLTLUnary ) ) ) | ( () otherlv_5= 'release' ( (lv_right_6_0= ruleLTLUnary ) ) ) )? ) ; + public final EObject ruleLTLBinary() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_5=null; + EObject this_LTLUnary_0 = null; + + EObject lv_right_3_0 = null; + + EObject lv_right_6_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11393:2: ( (this_LTLUnary_0= ruleLTLUnary ( ( () otherlv_2= 'until' ( (lv_right_3_0= ruleLTLUnary ) ) ) | ( () otherlv_5= 'release' ( (lv_right_6_0= ruleLTLUnary ) ) ) )? ) ) + // InternalFiacre.g:11394:2: (this_LTLUnary_0= ruleLTLUnary ( ( () otherlv_2= 'until' ( (lv_right_3_0= ruleLTLUnary ) ) ) | ( () otherlv_5= 'release' ( (lv_right_6_0= ruleLTLUnary ) ) ) )? ) + { + // InternalFiacre.g:11394:2: (this_LTLUnary_0= ruleLTLUnary ( ( () otherlv_2= 'until' ( (lv_right_3_0= ruleLTLUnary ) ) ) | ( () otherlv_5= 'release' ( (lv_right_6_0= ruleLTLUnary ) ) ) )? ) + // InternalFiacre.g:11395:3: this_LTLUnary_0= ruleLTLUnary ( ( () otherlv_2= 'until' ( (lv_right_3_0= ruleLTLUnary ) ) ) | ( () otherlv_5= 'release' ( (lv_right_6_0= ruleLTLUnary ) ) ) )? + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLBinaryAccess().getLTLUnaryParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_117); + this_LTLUnary_0=ruleLTLUnary(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LTLUnary_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:11406:3: ( ( () otherlv_2= 'until' ( (lv_right_3_0= ruleLTLUnary ) ) ) | ( () otherlv_5= 'release' ( (lv_right_6_0= ruleLTLUnary ) ) ) )? + int alt170=3; + int LA170_0 = input.LA(1); + + if ( (LA170_0==124) ) { + alt170=1; + } + else if ( (LA170_0==132) ) { + alt170=2; + } + switch (alt170) { + case 1 : + // InternalFiacre.g:11407:4: ( () otherlv_2= 'until' ( (lv_right_3_0= ruleLTLUnary ) ) ) + { + // InternalFiacre.g:11407:4: ( () otherlv_2= 'until' ( (lv_right_3_0= ruleLTLUnary ) ) ) + // InternalFiacre.g:11408:5: () otherlv_2= 'until' ( (lv_right_3_0= ruleLTLUnary ) ) + { + // InternalFiacre.g:11408:5: () + // InternalFiacre.g:11409:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getLTLBinaryAccess().getLTLUntilLeftAction_1_0_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,124,FollowSets000.FOLLOW_105); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getLTLBinaryAccess().getUntilKeyword_1_0_1()); + + } + // InternalFiacre.g:11422:5: ( (lv_right_3_0= ruleLTLUnary ) ) + // InternalFiacre.g:11423:6: (lv_right_3_0= ruleLTLUnary ) + { + // InternalFiacre.g:11423:6: (lv_right_3_0= ruleLTLUnary ) + // InternalFiacre.g:11424:7: lv_right_3_0= ruleLTLUnary + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_0_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_3_0=ruleLTLUnary(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLTLBinaryRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.LTLUnary"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:11443:4: ( () otherlv_5= 'release' ( (lv_right_6_0= ruleLTLUnary ) ) ) + { + // InternalFiacre.g:11443:4: ( () otherlv_5= 'release' ( (lv_right_6_0= ruleLTLUnary ) ) ) + // InternalFiacre.g:11444:5: () otherlv_5= 'release' ( (lv_right_6_0= ruleLTLUnary ) ) + { + // InternalFiacre.g:11444:5: () + // InternalFiacre.g:11445:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getLTLBinaryAccess().getLTLReleaseLeftAction_1_1_0(), + current); + + } + + } + + otherlv_5=(Token)match(input,132,FollowSets000.FOLLOW_105); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getLTLBinaryAccess().getReleaseKeyword_1_1_1()); + + } + // InternalFiacre.g:11458:5: ( (lv_right_6_0= ruleLTLUnary ) ) + // InternalFiacre.g:11459:6: (lv_right_6_0= ruleLTLUnary ) + { + // InternalFiacre.g:11459:6: (lv_right_6_0= ruleLTLUnary ) + // InternalFiacre.g:11460:7: lv_right_6_0= ruleLTLUnary + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_6_0=ruleLTLUnary(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLTLBinaryRule()); + } + set( + current, + "right", + lv_right_6_0, + "fr.irit.fiacre.xtext.Fiacre.LTLUnary"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLTLBinary" + + + // $ANTLR start "entryRuleLTLUnary" + // InternalFiacre.g:11483:1: entryRuleLTLUnary returns [EObject current=null] : iv_ruleLTLUnary= ruleLTLUnary EOF ; + public final EObject entryRuleLTLUnary() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLTLUnary = null; + + + try { + // InternalFiacre.g:11483:49: (iv_ruleLTLUnary= ruleLTLUnary EOF ) + // InternalFiacre.g:11484:2: iv_ruleLTLUnary= ruleLTLUnary EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLTLUnaryRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLTLUnary=ruleLTLUnary(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLTLUnary; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLTLUnary" + + + // $ANTLR start "ruleLTLUnary" + // InternalFiacre.g:11490:1: ruleLTLUnary returns [EObject current=null] : ( ( ( ( () otherlv_1= 'not' ) | ( () otherlv_3= 'next' ) | ( () otherlv_5= '[]' ) | ( () otherlv_7= '<>' ) ) ( (lv_operand_8_0= ruleLTLUnary ) ) ) | this_AtomicLTL_9= ruleAtomicLTL ) ; + public final EObject ruleLTLUnary() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + EObject lv_operand_8_0 = null; + + EObject this_AtomicLTL_9 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11496:2: ( ( ( ( ( () otherlv_1= 'not' ) | ( () otherlv_3= 'next' ) | ( () otherlv_5= '[]' ) | ( () otherlv_7= '<>' ) ) ( (lv_operand_8_0= ruleLTLUnary ) ) ) | this_AtomicLTL_9= ruleAtomicLTL ) ) + // InternalFiacre.g:11497:2: ( ( ( ( () otherlv_1= 'not' ) | ( () otherlv_3= 'next' ) | ( () otherlv_5= '[]' ) | ( () otherlv_7= '<>' ) ) ( (lv_operand_8_0= ruleLTLUnary ) ) ) | this_AtomicLTL_9= ruleAtomicLTL ) + { + // InternalFiacre.g:11497:2: ( ( ( ( () otherlv_1= 'not' ) | ( () otherlv_3= 'next' ) | ( () otherlv_5= '[]' ) | ( () otherlv_7= '<>' ) ) ( (lv_operand_8_0= ruleLTLUnary ) ) ) | this_AtomicLTL_9= ruleAtomicLTL ) + int alt172=2; + int LA172_0 = input.LA(1); + + if ( (LA172_0==54||LA172_0==89||LA172_0==95||LA172_0==133) ) { + alt172=1; + } + else if ( (LA172_0==RULE_ID||LA172_0==RULE_INT||LA172_0==16||(LA172_0>=134 && LA172_0<=135)) ) { + alt172=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 172, 0, input); + + throw nvae; + } + switch (alt172) { + case 1 : + // InternalFiacre.g:11498:3: ( ( ( () otherlv_1= 'not' ) | ( () otherlv_3= 'next' ) | ( () otherlv_5= '[]' ) | ( () otherlv_7= '<>' ) ) ( (lv_operand_8_0= ruleLTLUnary ) ) ) + { + // InternalFiacre.g:11498:3: ( ( ( () otherlv_1= 'not' ) | ( () otherlv_3= 'next' ) | ( () otherlv_5= '[]' ) | ( () otherlv_7= '<>' ) ) ( (lv_operand_8_0= ruleLTLUnary ) ) ) + // InternalFiacre.g:11499:4: ( ( () otherlv_1= 'not' ) | ( () otherlv_3= 'next' ) | ( () otherlv_5= '[]' ) | ( () otherlv_7= '<>' ) ) ( (lv_operand_8_0= ruleLTLUnary ) ) + { + // InternalFiacre.g:11499:4: ( ( () otherlv_1= 'not' ) | ( () otherlv_3= 'next' ) | ( () otherlv_5= '[]' ) | ( () otherlv_7= '<>' ) ) + int alt171=4; + switch ( input.LA(1) ) { + case 95: + { + alt171=1; + } + break; + case 133: + { + alt171=2; + } + break; + case 54: + { + alt171=3; + } + break; + case 89: + { + alt171=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 171, 0, input); + + throw nvae; + } + + switch (alt171) { + case 1 : + // InternalFiacre.g:11500:5: ( () otherlv_1= 'not' ) + { + // InternalFiacre.g:11500:5: ( () otherlv_1= 'not' ) + // InternalFiacre.g:11501:6: () otherlv_1= 'not' + { + // InternalFiacre.g:11501:6: () + // InternalFiacre.g:11502:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getLTLUnaryAccess().getLTLUnaryNegationAction_0_0_0_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,95,FollowSets000.FOLLOW_105); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getLTLUnaryAccess().getNotKeyword_0_0_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:11517:5: ( () otherlv_3= 'next' ) + { + // InternalFiacre.g:11517:5: ( () otherlv_3= 'next' ) + // InternalFiacre.g:11518:6: () otherlv_3= 'next' + { + // InternalFiacre.g:11518:6: () + // InternalFiacre.g:11519:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getLTLUnaryAccess().getLTLUnaryNextAction_0_0_1_0(), + current); + + } + + } + + otherlv_3=(Token)match(input,133,FollowSets000.FOLLOW_105); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getLTLUnaryAccess().getNextKeyword_0_0_1_1()); + + } + + } + + + } + break; + case 3 : + // InternalFiacre.g:11534:5: ( () otherlv_5= '[]' ) + { + // InternalFiacre.g:11534:5: ( () otherlv_5= '[]' ) + // InternalFiacre.g:11535:6: () otherlv_5= '[]' + { + // InternalFiacre.g:11535:6: () + // InternalFiacre.g:11536:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getLTLUnaryAccess().getLTLUnaryAlwaysAction_0_0_2_0(), + current); + + } + + } + + otherlv_5=(Token)match(input,54,FollowSets000.FOLLOW_105); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getLTLUnaryAccess().getLeftSquareBracketRightSquareBracketKeyword_0_0_2_1()); + + } + + } + + + } + break; + case 4 : + // InternalFiacre.g:11551:5: ( () otherlv_7= '<>' ) + { + // InternalFiacre.g:11551:5: ( () otherlv_7= '<>' ) + // InternalFiacre.g:11552:6: () otherlv_7= '<>' + { + // InternalFiacre.g:11552:6: () + // InternalFiacre.g:11553:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getLTLUnaryAccess().getLTLUnaryEventuallyAction_0_0_3_0(), + current); + + } + + } + + otherlv_7=(Token)match(input,89,FollowSets000.FOLLOW_105); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getLTLUnaryAccess().getLessThanSignGreaterThanSignKeyword_0_0_3_1()); + + } + + } + + + } + break; + + } + + // InternalFiacre.g:11568:4: ( (lv_operand_8_0= ruleLTLUnary ) ) + // InternalFiacre.g:11569:5: (lv_operand_8_0= ruleLTLUnary ) + { + // InternalFiacre.g:11569:5: (lv_operand_8_0= ruleLTLUnary ) + // InternalFiacre.g:11570:6: lv_operand_8_0= ruleLTLUnary + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLUnaryAccess().getOperandLTLUnaryParserRuleCall_0_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_operand_8_0=ruleLTLUnary(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLTLUnaryRule()); + } + set( + current, + "operand", + lv_operand_8_0, + "fr.irit.fiacre.xtext.Fiacre.LTLUnary"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:11589:3: this_AtomicLTL_9= ruleAtomicLTL + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLTLUnaryAccess().getAtomicLTLParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_AtomicLTL_9=ruleAtomicLTL(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AtomicLTL_9; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLTLUnary" + + + // $ANTLR start "entryRuleAtomicLTL" + // InternalFiacre.g:11604:1: entryRuleAtomicLTL returns [EObject current=null] : iv_ruleAtomicLTL= ruleAtomicLTL EOF ; + public final EObject entryRuleAtomicLTL() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAtomicLTL = null; + + + try { + // InternalFiacre.g:11604:50: (iv_ruleAtomicLTL= ruleAtomicLTL EOF ) + // InternalFiacre.g:11605:2: iv_ruleAtomicLTL= ruleAtomicLTL EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAtomicLTLRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleAtomicLTL=ruleAtomicLTL(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAtomicLTL; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAtomicLTL" + + + // $ANTLR start "ruleAtomicLTL" + // InternalFiacre.g:11611:1: ruleAtomicLTL returns [EObject current=null] : ( ( () ( (otherlv_1= RULE_ID ) ) ) | this_ObservableEvent_2= ruleObservableEvent | (otherlv_3= '(' this_LTLProperty_4= ruleLTLProperty otherlv_5= ')' ) ) ; + public final EObject ruleAtomicLTL() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + EObject this_ObservableEvent_2 = null; + + EObject this_LTLProperty_4 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11617:2: ( ( ( () ( (otherlv_1= RULE_ID ) ) ) | this_ObservableEvent_2= ruleObservableEvent | (otherlv_3= '(' this_LTLProperty_4= ruleLTLProperty otherlv_5= ')' ) ) ) + // InternalFiacre.g:11618:2: ( ( () ( (otherlv_1= RULE_ID ) ) ) | this_ObservableEvent_2= ruleObservableEvent | (otherlv_3= '(' this_LTLProperty_4= ruleLTLProperty otherlv_5= ')' ) ) + { + // InternalFiacre.g:11618:2: ( ( () ( (otherlv_1= RULE_ID ) ) ) | this_ObservableEvent_2= ruleObservableEvent | (otherlv_3= '(' this_LTLProperty_4= ruleLTLProperty otherlv_5= ')' ) ) + int alt173=3; + switch ( input.LA(1) ) { + case RULE_ID: + { + int LA173_1 = input.LA(2); + + if ( (LA173_1==93) ) { + alt173=2; + } + else if ( (LA173_1==EOF||LA173_1==RULE_ID||LA173_1==15||LA173_1==18||(LA173_1>=22 && LA173_1<=23)||(LA173_1>=39 && LA173_1<=40)||LA173_1==48||(LA173_1>=85 && LA173_1<=87)||LA173_1==112||LA173_1==115||LA173_1==124||LA173_1==132) ) { + alt173=1; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 173, 1, input); + + throw nvae; + } + } + break; + case RULE_INT: + case 134: + case 135: + { + alt173=2; + } + break; + case 16: + { + alt173=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 173, 0, input); + + throw nvae; + } + + switch (alt173) { + case 1 : + // InternalFiacre.g:11619:3: ( () ( (otherlv_1= RULE_ID ) ) ) + { + // InternalFiacre.g:11619:3: ( () ( (otherlv_1= RULE_ID ) ) ) + // InternalFiacre.g:11620:4: () ( (otherlv_1= RULE_ID ) ) + { + // InternalFiacre.g:11620:4: () + // InternalFiacre.g:11621:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getAtomicLTLAccess().getLTLVariableAction_0_0(), + current); + + } + + } + + // InternalFiacre.g:11630:4: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:11631:5: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:11631:5: (otherlv_1= RULE_ID ) + // InternalFiacre.g:11632:6: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getAtomicLTLRule()); + } + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseCrossReference_0_1_0()); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:11648:3: this_ObservableEvent_2= ruleObservableEvent + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicLTLAccess().getObservableEventParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ObservableEvent_2=ruleObservableEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ObservableEvent_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:11660:3: (otherlv_3= '(' this_LTLProperty_4= ruleLTLProperty otherlv_5= ')' ) + { + // InternalFiacre.g:11660:3: (otherlv_3= '(' this_LTLProperty_4= ruleLTLProperty otherlv_5= ')' ) + // InternalFiacre.g:11661:4: otherlv_3= '(' this_LTLProperty_4= ruleLTLProperty otherlv_5= ')' + { + otherlv_3=(Token)match(input,16,FollowSets000.FOLLOW_116); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getAtomicLTLAccess().getLeftParenthesisKeyword_2_0()); + + } + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicLTLAccess().getLTLPropertyParserRuleCall_2_1()); + + } + pushFollow(FollowSets000.FOLLOW_62); + this_LTLProperty_4=ruleLTLProperty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LTLProperty_4; + afterParserOrEnumRuleCall(); + + } + otherlv_5=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getAtomicLTLAccess().getRightParenthesisKeyword_2_2()); + + } + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAtomicLTL" + + + // $ANTLR start "entryRuleStateEvent" + // InternalFiacre.g:11685:1: entryRuleStateEvent returns [EObject current=null] : iv_ruleStateEvent= ruleStateEvent EOF ; + public final EObject entryRuleStateEvent() throws RecognitionException { + EObject current = null; + + EObject iv_ruleStateEvent = null; + + + try { + // InternalFiacre.g:11685:51: (iv_ruleStateEvent= ruleStateEvent EOF ) + // InternalFiacre.g:11686:2: iv_ruleStateEvent= ruleStateEvent EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStateEventRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleStateEvent=ruleStateEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleStateEvent; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleStateEvent" + + + // $ANTLR start "ruleStateEvent" + // InternalFiacre.g:11692:1: ruleStateEvent returns [EObject current=null] : (this_EnterStateEvent_0= ruleEnterStateEvent | this_LeaveStateEvent_1= ruleLeaveStateEvent ) ; + public final EObject ruleStateEvent() throws RecognitionException { + EObject current = null; + + EObject this_EnterStateEvent_0 = null; + + EObject this_LeaveStateEvent_1 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11698:2: ( (this_EnterStateEvent_0= ruleEnterStateEvent | this_LeaveStateEvent_1= ruleLeaveStateEvent ) ) + // InternalFiacre.g:11699:2: (this_EnterStateEvent_0= ruleEnterStateEvent | this_LeaveStateEvent_1= ruleLeaveStateEvent ) + { + // InternalFiacre.g:11699:2: (this_EnterStateEvent_0= ruleEnterStateEvent | this_LeaveStateEvent_1= ruleLeaveStateEvent ) + int alt174=2; + int LA174_0 = input.LA(1); + + if ( (LA174_0==134) ) { + alt174=1; + } + else if ( (LA174_0==135) ) { + alt174=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 174, 0, input); + + throw nvae; + } + switch (alt174) { + case 1 : + // InternalFiacre.g:11700:3: this_EnterStateEvent_0= ruleEnterStateEvent + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStateEventAccess().getEnterStateEventParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_EnterStateEvent_0=ruleEnterStateEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_EnterStateEvent_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:11712:3: this_LeaveStateEvent_1= ruleLeaveStateEvent + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStateEventAccess().getLeaveStateEventParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_LeaveStateEvent_1=ruleLeaveStateEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LeaveStateEvent_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleStateEvent" + + + // $ANTLR start "entryRuleEnterStateEvent" + // InternalFiacre.g:11727:1: entryRuleEnterStateEvent returns [EObject current=null] : iv_ruleEnterStateEvent= ruleEnterStateEvent EOF ; + public final EObject entryRuleEnterStateEvent() throws RecognitionException { + EObject current = null; + + EObject iv_ruleEnterStateEvent = null; + + + try { + // InternalFiacre.g:11727:56: (iv_ruleEnterStateEvent= ruleEnterStateEvent EOF ) + // InternalFiacre.g:11728:2: iv_ruleEnterStateEvent= ruleEnterStateEvent EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getEnterStateEventRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleEnterStateEvent=ruleEnterStateEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleEnterStateEvent; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleEnterStateEvent" + + + // $ANTLR start "ruleEnterStateEvent" + // InternalFiacre.g:11734:1: ruleEnterStateEvent returns [EObject current=null] : (otherlv_0= 'enter' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) ; + public final EObject ruleEnterStateEvent() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_subject_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11740:2: ( (otherlv_0= 'enter' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) ) + // InternalFiacre.g:11741:2: (otherlv_0= 'enter' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:11741:2: (otherlv_0= 'enter' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:11742:3: otherlv_0= 'enter' ( (lv_subject_1_0= ruleAtomicObservable ) ) + { + otherlv_0=(Token)match(input,134,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getEnterStateEventAccess().getEnterKeyword_0()); + + } + // InternalFiacre.g:11746:3: ( (lv_subject_1_0= ruleAtomicObservable ) ) + // InternalFiacre.g:11747:4: (lv_subject_1_0= ruleAtomicObservable ) + { + // InternalFiacre.g:11747:4: (lv_subject_1_0= ruleAtomicObservable ) + // InternalFiacre.g:11748:5: lv_subject_1_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getEnterStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_subject_1_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getEnterStateEventRule()); + } + set( + current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleEnterStateEvent" + + + // $ANTLR start "entryRuleLeaveStateEvent" + // InternalFiacre.g:11769:1: entryRuleLeaveStateEvent returns [EObject current=null] : iv_ruleLeaveStateEvent= ruleLeaveStateEvent EOF ; + public final EObject entryRuleLeaveStateEvent() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLeaveStateEvent = null; + + + try { + // InternalFiacre.g:11769:56: (iv_ruleLeaveStateEvent= ruleLeaveStateEvent EOF ) + // InternalFiacre.g:11770:2: iv_ruleLeaveStateEvent= ruleLeaveStateEvent EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLeaveStateEventRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleLeaveStateEvent=ruleLeaveStateEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLeaveStateEvent; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLeaveStateEvent" + + + // $ANTLR start "ruleLeaveStateEvent" + // InternalFiacre.g:11776:1: ruleLeaveStateEvent returns [EObject current=null] : (otherlv_0= 'leave' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) ; + public final EObject ruleLeaveStateEvent() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_subject_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11782:2: ( (otherlv_0= 'leave' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) ) + // InternalFiacre.g:11783:2: (otherlv_0= 'leave' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) + { + // InternalFiacre.g:11783:2: (otherlv_0= 'leave' ( (lv_subject_1_0= ruleAtomicObservable ) ) ) + // InternalFiacre.g:11784:3: otherlv_0= 'leave' ( (lv_subject_1_0= ruleAtomicObservable ) ) + { + otherlv_0=(Token)match(input,135,FollowSets000.FOLLOW_106); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getLeaveStateEventAccess().getLeaveKeyword_0()); + + } + // InternalFiacre.g:11788:3: ( (lv_subject_1_0= ruleAtomicObservable ) ) + // InternalFiacre.g:11789:4: (lv_subject_1_0= ruleAtomicObservable ) + { + // InternalFiacre.g:11789:4: (lv_subject_1_0= ruleAtomicObservable ) + // InternalFiacre.g:11790:5: lv_subject_1_0= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLeaveStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_subject_1_0=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLeaveStateEventRule()); + } + set( + current, + "subject", + lv_subject_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLeaveStateEvent" + + + // $ANTLR start "entryRuleObservable" + // InternalFiacre.g:11811:1: entryRuleObservable returns [EObject current=null] : iv_ruleObservable= ruleObservable EOF ; + public final EObject entryRuleObservable() throws RecognitionException { + EObject current = null; + + EObject iv_ruleObservable = null; + + + try { + // InternalFiacre.g:11811:51: (iv_ruleObservable= ruleObservable EOF ) + // InternalFiacre.g:11812:2: iv_ruleObservable= ruleObservable EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getObservableRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleObservable=ruleObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleObservable; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleObservable" + + + // $ANTLR start "ruleObservable" + // InternalFiacre.g:11818:1: ruleObservable returns [EObject current=null] : this_ObservableDisjunction_0= ruleObservableDisjunction ; + public final EObject ruleObservable() throws RecognitionException { + EObject current = null; + + EObject this_ObservableDisjunction_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11824:2: (this_ObservableDisjunction_0= ruleObservableDisjunction ) + // InternalFiacre.g:11825:2: this_ObservableDisjunction_0= ruleObservableDisjunction + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableAccess().getObservableDisjunctionParserRuleCall()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ObservableDisjunction_0=ruleObservableDisjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ObservableDisjunction_0; + afterParserOrEnumRuleCall(); + + } + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleObservable" + + + // $ANTLR start "entryRuleObservableDisjunction" + // InternalFiacre.g:11839:1: entryRuleObservableDisjunction returns [EObject current=null] : iv_ruleObservableDisjunction= ruleObservableDisjunction EOF ; + public final EObject entryRuleObservableDisjunction() throws RecognitionException { + EObject current = null; + + EObject iv_ruleObservableDisjunction = null; + + + try { + // InternalFiacre.g:11839:62: (iv_ruleObservableDisjunction= ruleObservableDisjunction EOF ) + // InternalFiacre.g:11840:2: iv_ruleObservableDisjunction= ruleObservableDisjunction EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getObservableDisjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleObservableDisjunction=ruleObservableDisjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleObservableDisjunction; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleObservableDisjunction" + + + // $ANTLR start "ruleObservableDisjunction" + // InternalFiacre.g:11846:1: ruleObservableDisjunction returns [EObject current=null] : (this_ObservableImplication_0= ruleObservableImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleObservableImplication ) ) )* ) ; + public final EObject ruleObservableDisjunction() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_ObservableImplication_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11852:2: ( (this_ObservableImplication_0= ruleObservableImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleObservableImplication ) ) )* ) ) + // InternalFiacre.g:11853:2: (this_ObservableImplication_0= ruleObservableImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleObservableImplication ) ) )* ) + { + // InternalFiacre.g:11853:2: (this_ObservableImplication_0= ruleObservableImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleObservableImplication ) ) )* ) + // InternalFiacre.g:11854:3: this_ObservableImplication_0= ruleObservableImplication ( () otherlv_2= 'or' ( (lv_right_3_0= ruleObservableImplication ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableDisjunctionAccess().getObservableImplicationParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_84); + this_ObservableImplication_0=ruleObservableImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ObservableImplication_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:11865:3: ( () otherlv_2= 'or' ( (lv_right_3_0= ruleObservableImplication ) ) )* + loop175: + do { + int alt175=2; + int LA175_0 = input.LA(1); + + if ( (LA175_0==85) ) { + alt175=1; + } + + + switch (alt175) { + case 1 : + // InternalFiacre.g:11866:4: () otherlv_2= 'or' ( (lv_right_3_0= ruleObservableImplication ) ) + { + // InternalFiacre.g:11866:4: () + // InternalFiacre.g:11867:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getObservableDisjunctionAccess().getObservableDisjunctionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,85,FollowSets000.FOLLOW_118); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getObservableDisjunctionAccess().getOrKeyword_1_1()); + + } + // InternalFiacre.g:11880:4: ( (lv_right_3_0= ruleObservableImplication ) ) + // InternalFiacre.g:11881:5: (lv_right_3_0= ruleObservableImplication ) + { + // InternalFiacre.g:11881:5: (lv_right_3_0= ruleObservableImplication ) + // InternalFiacre.g:11882:6: lv_right_3_0= ruleObservableImplication + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableDisjunctionAccess().getRightObservableImplicationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_84); + lv_right_3_0=ruleObservableImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getObservableDisjunctionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.ObservableImplication"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop175; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleObservableDisjunction" + + + // $ANTLR start "entryRuleObservableImplication" + // InternalFiacre.g:11904:1: entryRuleObservableImplication returns [EObject current=null] : iv_ruleObservableImplication= ruleObservableImplication EOF ; + public final EObject entryRuleObservableImplication() throws RecognitionException { + EObject current = null; + + EObject iv_ruleObservableImplication = null; + + + try { + // InternalFiacre.g:11904:62: (iv_ruleObservableImplication= ruleObservableImplication EOF ) + // InternalFiacre.g:11905:2: iv_ruleObservableImplication= ruleObservableImplication EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getObservableImplicationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleObservableImplication=ruleObservableImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleObservableImplication; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleObservableImplication" + + + // $ANTLR start "ruleObservableImplication" + // InternalFiacre.g:11911:1: ruleObservableImplication returns [EObject current=null] : (this_ObservableConjunction_0= ruleObservableConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleObservableImplication ) ) )? ) ; + public final EObject ruleObservableImplication() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_ObservableConjunction_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11917:2: ( (this_ObservableConjunction_0= ruleObservableConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleObservableImplication ) ) )? ) ) + // InternalFiacre.g:11918:2: (this_ObservableConjunction_0= ruleObservableConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleObservableImplication ) ) )? ) + { + // InternalFiacre.g:11918:2: (this_ObservableConjunction_0= ruleObservableConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleObservableImplication ) ) )? ) + // InternalFiacre.g:11919:3: this_ObservableConjunction_0= ruleObservableConjunction ( () otherlv_2= '=>' ( (lv_right_3_0= ruleObservableImplication ) ) )? + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableImplicationAccess().getObservableConjunctionParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_85); + this_ObservableConjunction_0=ruleObservableConjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ObservableConjunction_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:11930:3: ( () otherlv_2= '=>' ( (lv_right_3_0= ruleObservableImplication ) ) )? + int alt176=2; + int LA176_0 = input.LA(1); + + if ( (LA176_0==86) ) { + alt176=1; + } + switch (alt176) { + case 1 : + // InternalFiacre.g:11931:4: () otherlv_2= '=>' ( (lv_right_3_0= ruleObservableImplication ) ) + { + // InternalFiacre.g:11931:4: () + // InternalFiacre.g:11932:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getObservableImplicationAccess().getObservableImplicationLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,86,FollowSets000.FOLLOW_118); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getObservableImplicationAccess().getEqualsSignGreaterThanSignKeyword_1_1()); + + } + // InternalFiacre.g:11945:4: ( (lv_right_3_0= ruleObservableImplication ) ) + // InternalFiacre.g:11946:5: (lv_right_3_0= ruleObservableImplication ) + { + // InternalFiacre.g:11946:5: (lv_right_3_0= ruleObservableImplication ) + // InternalFiacre.g:11947:6: lv_right_3_0= ruleObservableImplication + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableImplicationAccess().getRightObservableImplicationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_3_0=ruleObservableImplication(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getObservableImplicationRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.ObservableImplication"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleObservableImplication" + + + // $ANTLR start "entryRuleObservableConjunction" + // InternalFiacre.g:11969:1: entryRuleObservableConjunction returns [EObject current=null] : iv_ruleObservableConjunction= ruleObservableConjunction EOF ; + public final EObject entryRuleObservableConjunction() throws RecognitionException { + EObject current = null; + + EObject iv_ruleObservableConjunction = null; + + + try { + // InternalFiacre.g:11969:62: (iv_ruleObservableConjunction= ruleObservableConjunction EOF ) + // InternalFiacre.g:11970:2: iv_ruleObservableConjunction= ruleObservableConjunction EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getObservableConjunctionRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleObservableConjunction=ruleObservableConjunction(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleObservableConjunction; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleObservableConjunction" + + + // $ANTLR start "ruleObservableConjunction" + // InternalFiacre.g:11976:1: ruleObservableConjunction returns [EObject current=null] : (this_ObservableNegation_0= ruleObservableNegation ( () otherlv_2= 'and' ( (lv_right_3_0= ruleObservableNegation ) ) )* ) ; + public final EObject ruleObservableConjunction() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_ObservableNegation_0 = null; + + EObject lv_right_3_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:11982:2: ( (this_ObservableNegation_0= ruleObservableNegation ( () otherlv_2= 'and' ( (lv_right_3_0= ruleObservableNegation ) ) )* ) ) + // InternalFiacre.g:11983:2: (this_ObservableNegation_0= ruleObservableNegation ( () otherlv_2= 'and' ( (lv_right_3_0= ruleObservableNegation ) ) )* ) + { + // InternalFiacre.g:11983:2: (this_ObservableNegation_0= ruleObservableNegation ( () otherlv_2= 'and' ( (lv_right_3_0= ruleObservableNegation ) ) )* ) + // InternalFiacre.g:11984:3: this_ObservableNegation_0= ruleObservableNegation ( () otherlv_2= 'and' ( (lv_right_3_0= ruleObservableNegation ) ) )* + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableConjunctionAccess().getObservableNegationParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_86); + this_ObservableNegation_0=ruleObservableNegation(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ObservableNegation_0; + afterParserOrEnumRuleCall(); + + } + // InternalFiacre.g:11995:3: ( () otherlv_2= 'and' ( (lv_right_3_0= ruleObservableNegation ) ) )* + loop177: + do { + int alt177=2; + int LA177_0 = input.LA(1); + + if ( (LA177_0==87) ) { + alt177=1; + } + + + switch (alt177) { + case 1 : + // InternalFiacre.g:11996:4: () otherlv_2= 'and' ( (lv_right_3_0= ruleObservableNegation ) ) + { + // InternalFiacre.g:11996:4: () + // InternalFiacre.g:11997:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getObservableConjunctionAccess().getObservableConjunctionLeftAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,87,FollowSets000.FOLLOW_118); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getObservableConjunctionAccess().getAndKeyword_1_1()); + + } + // InternalFiacre.g:12010:4: ( (lv_right_3_0= ruleObservableNegation ) ) + // InternalFiacre.g:12011:5: (lv_right_3_0= ruleObservableNegation ) + { + // InternalFiacre.g:12011:5: (lv_right_3_0= ruleObservableNegation ) + // InternalFiacre.g:12012:6: lv_right_3_0= ruleObservableNegation + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableConjunctionAccess().getRightObservableNegationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_86); + lv_right_3_0=ruleObservableNegation(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getObservableConjunctionRule()); + } + set( + current, + "right", + lv_right_3_0, + "fr.irit.fiacre.xtext.Fiacre.ObservableNegation"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop177; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleObservableConjunction" + + + // $ANTLR start "entryRuleObservableNegation" + // InternalFiacre.g:12034:1: entryRuleObservableNegation returns [EObject current=null] : iv_ruleObservableNegation= ruleObservableNegation EOF ; + public final EObject entryRuleObservableNegation() throws RecognitionException { + EObject current = null; + + EObject iv_ruleObservableNegation = null; + + + try { + // InternalFiacre.g:12034:59: (iv_ruleObservableNegation= ruleObservableNegation EOF ) + // InternalFiacre.g:12035:2: iv_ruleObservableNegation= ruleObservableNegation EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getObservableNegationRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleObservableNegation=ruleObservableNegation(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleObservableNegation; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleObservableNegation" + + + // $ANTLR start "ruleObservableNegation" + // InternalFiacre.g:12041:1: ruleObservableNegation returns [EObject current=null] : ( ( () otherlv_1= 'not' ( (lv_child_2_0= ruleObservableNegation ) ) ) | this_AtomicObservable_3= ruleAtomicObservable ) ; + public final EObject ruleObservableNegation() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + EObject lv_child_2_0 = null; + + EObject this_AtomicObservable_3 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:12047:2: ( ( ( () otherlv_1= 'not' ( (lv_child_2_0= ruleObservableNegation ) ) ) | this_AtomicObservable_3= ruleAtomicObservable ) ) + // InternalFiacre.g:12048:2: ( ( () otherlv_1= 'not' ( (lv_child_2_0= ruleObservableNegation ) ) ) | this_AtomicObservable_3= ruleAtomicObservable ) + { + // InternalFiacre.g:12048:2: ( ( () otherlv_1= 'not' ( (lv_child_2_0= ruleObservableNegation ) ) ) | this_AtomicObservable_3= ruleAtomicObservable ) + int alt178=2; + int LA178_0 = input.LA(1); + + if ( (LA178_0==95) ) { + alt178=1; + } + else if ( (LA178_0==RULE_ID||LA178_0==RULE_INT||LA178_0==16||(LA178_0>=134 && LA178_0<=135)) ) { + alt178=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 178, 0, input); + + throw nvae; + } + switch (alt178) { + case 1 : + // InternalFiacre.g:12049:3: ( () otherlv_1= 'not' ( (lv_child_2_0= ruleObservableNegation ) ) ) + { + // InternalFiacre.g:12049:3: ( () otherlv_1= 'not' ( (lv_child_2_0= ruleObservableNegation ) ) ) + // InternalFiacre.g:12050:4: () otherlv_1= 'not' ( (lv_child_2_0= ruleObservableNegation ) ) + { + // InternalFiacre.g:12050:4: () + // InternalFiacre.g:12051:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getObservableNegationAccess().getObservableNegationAction_0_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,95,FollowSets000.FOLLOW_118); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getObservableNegationAccess().getNotKeyword_0_1()); + + } + // InternalFiacre.g:12064:4: ( (lv_child_2_0= ruleObservableNegation ) ) + // InternalFiacre.g:12065:5: (lv_child_2_0= ruleObservableNegation ) + { + // InternalFiacre.g:12065:5: (lv_child_2_0= ruleObservableNegation ) + // InternalFiacre.g:12066:6: lv_child_2_0= ruleObservableNegation + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableNegationAccess().getChildObservableNegationParserRuleCall_0_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_child_2_0=ruleObservableNegation(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getObservableNegationRule()); + } + set( + current, + "child", + lv_child_2_0, + "fr.irit.fiacre.xtext.Fiacre.ObservableNegation"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:12085:3: this_AtomicObservable_3= ruleAtomicObservable + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableNegationAccess().getAtomicObservableParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_AtomicObservable_3=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AtomicObservable_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleObservableNegation" + + + // $ANTLR start "entryRuleAtomicObservable" + // InternalFiacre.g:12100:1: entryRuleAtomicObservable returns [EObject current=null] : iv_ruleAtomicObservable= ruleAtomicObservable EOF ; + public final EObject entryRuleAtomicObservable() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAtomicObservable = null; + + + try { + // InternalFiacre.g:12100:57: (iv_ruleAtomicObservable= ruleAtomicObservable EOF ) + // InternalFiacre.g:12101:2: iv_ruleAtomicObservable= ruleAtomicObservable EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAtomicObservableRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleAtomicObservable=ruleAtomicObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAtomicObservable; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAtomicObservable" + + + // $ANTLR start "ruleAtomicObservable" + // InternalFiacre.g:12107:1: ruleAtomicObservable returns [EObject current=null] : ( (otherlv_0= '(' this_Observable_1= ruleObservable otherlv_2= ')' ) | this_ObservableEvent_3= ruleObservableEvent ) ; + public final EObject ruleAtomicObservable() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + EObject this_Observable_1 = null; + + EObject this_ObservableEvent_3 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:12113:2: ( ( (otherlv_0= '(' this_Observable_1= ruleObservable otherlv_2= ')' ) | this_ObservableEvent_3= ruleObservableEvent ) ) + // InternalFiacre.g:12114:2: ( (otherlv_0= '(' this_Observable_1= ruleObservable otherlv_2= ')' ) | this_ObservableEvent_3= ruleObservableEvent ) + { + // InternalFiacre.g:12114:2: ( (otherlv_0= '(' this_Observable_1= ruleObservable otherlv_2= ')' ) | this_ObservableEvent_3= ruleObservableEvent ) + int alt179=2; + int LA179_0 = input.LA(1); + + if ( (LA179_0==16) ) { + alt179=1; + } + else if ( (LA179_0==RULE_ID||LA179_0==RULE_INT||(LA179_0>=134 && LA179_0<=135)) ) { + alt179=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 179, 0, input); + + throw nvae; + } + switch (alt179) { + case 1 : + // InternalFiacre.g:12115:3: (otherlv_0= '(' this_Observable_1= ruleObservable otherlv_2= ')' ) + { + // InternalFiacre.g:12115:3: (otherlv_0= '(' this_Observable_1= ruleObservable otherlv_2= ')' ) + // InternalFiacre.g:12116:4: otherlv_0= '(' this_Observable_1= ruleObservable otherlv_2= ')' + { + otherlv_0=(Token)match(input,16,FollowSets000.FOLLOW_118); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getAtomicObservableAccess().getLeftParenthesisKeyword_0_0()); + + } + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicObservableAccess().getObservableParserRuleCall_0_1()); + + } + pushFollow(FollowSets000.FOLLOW_62); + this_Observable_1=ruleObservable(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Observable_1; + afterParserOrEnumRuleCall(); + + } + otherlv_2=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getAtomicObservableAccess().getRightParenthesisKeyword_0_2()); + + } + + } + + + } + break; + case 2 : + // InternalFiacre.g:12137:3: this_ObservableEvent_3= ruleObservableEvent + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAtomicObservableAccess().getObservableEventParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ObservableEvent_3=ruleObservableEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ObservableEvent_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAtomicObservable" + + + // $ANTLR start "entryRuleObservableEvent" + // InternalFiacre.g:12152:1: entryRuleObservableEvent returns [EObject current=null] : iv_ruleObservableEvent= ruleObservableEvent EOF ; + public final EObject entryRuleObservableEvent() throws RecognitionException { + EObject current = null; + + EObject iv_ruleObservableEvent = null; + + + try { + // InternalFiacre.g:12152:56: (iv_ruleObservableEvent= ruleObservableEvent EOF ) + // InternalFiacre.g:12153:2: iv_ruleObservableEvent= ruleObservableEvent EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getObservableEventRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleObservableEvent=ruleObservableEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleObservableEvent; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleObservableEvent" + + + // $ANTLR start "ruleObservableEvent" + // InternalFiacre.g:12159:1: ruleObservableEvent returns [EObject current=null] : (this_PathEvent_0= rulePathEvent | this_StateEvent_1= ruleStateEvent ) ; + public final EObject ruleObservableEvent() throws RecognitionException { + EObject current = null; + + EObject this_PathEvent_0 = null; + + EObject this_StateEvent_1 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:12165:2: ( (this_PathEvent_0= rulePathEvent | this_StateEvent_1= ruleStateEvent ) ) + // InternalFiacre.g:12166:2: (this_PathEvent_0= rulePathEvent | this_StateEvent_1= ruleStateEvent ) + { + // InternalFiacre.g:12166:2: (this_PathEvent_0= rulePathEvent | this_StateEvent_1= ruleStateEvent ) + int alt180=2; + int LA180_0 = input.LA(1); + + if ( (LA180_0==RULE_ID||LA180_0==RULE_INT) ) { + alt180=1; + } + else if ( ((LA180_0>=134 && LA180_0<=135)) ) { + alt180=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 180, 0, input); + + throw nvae; + } + switch (alt180) { + case 1 : + // InternalFiacre.g:12167:3: this_PathEvent_0= rulePathEvent + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableEventAccess().getPathEventParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_PathEvent_0=rulePathEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_PathEvent_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:12179:3: this_StateEvent_1= ruleStateEvent + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getObservableEventAccess().getStateEventParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_StateEvent_1=ruleStateEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_StateEvent_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleObservableEvent" + + + // $ANTLR start "entryRulePathEvent" + // InternalFiacre.g:12194:1: entryRulePathEvent returns [EObject current=null] : iv_rulePathEvent= rulePathEvent EOF ; + public final EObject entryRulePathEvent() throws RecognitionException { + EObject current = null; + + EObject iv_rulePathEvent = null; + + + try { + // InternalFiacre.g:12194:50: (iv_rulePathEvent= rulePathEvent EOF ) + // InternalFiacre.g:12195:2: iv_rulePathEvent= rulePathEvent EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPathEventRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePathEvent=rulePathEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePathEvent; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePathEvent" + + + // $ANTLR start "rulePathEvent" + // InternalFiacre.g:12201:1: rulePathEvent returns [EObject current=null] : ( ( (lv_path_0_0= rulePath ) ) ( (lv_item_1_0= ruleSubject ) ) ) ; + public final EObject rulePathEvent() throws RecognitionException { + EObject current = null; + + EObject lv_path_0_0 = null; + + EObject lv_item_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:12207:2: ( ( ( (lv_path_0_0= rulePath ) ) ( (lv_item_1_0= ruleSubject ) ) ) ) + // InternalFiacre.g:12208:2: ( ( (lv_path_0_0= rulePath ) ) ( (lv_item_1_0= ruleSubject ) ) ) + { + // InternalFiacre.g:12208:2: ( ( (lv_path_0_0= rulePath ) ) ( (lv_item_1_0= ruleSubject ) ) ) + // InternalFiacre.g:12209:3: ( (lv_path_0_0= rulePath ) ) ( (lv_item_1_0= ruleSubject ) ) + { + // InternalFiacre.g:12209:3: ( (lv_path_0_0= rulePath ) ) + // InternalFiacre.g:12210:4: (lv_path_0_0= rulePath ) + { + // InternalFiacre.g:12210:4: (lv_path_0_0= rulePath ) + // InternalFiacre.g:12211:5: lv_path_0_0= rulePath + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPathEventAccess().getPathPathParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_119); + lv_path_0_0=rulePath(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPathEventRule()); + } + set( + current, + "path", + lv_path_0_0, + "fr.irit.fiacre.xtext.Fiacre.Path"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalFiacre.g:12228:3: ( (lv_item_1_0= ruleSubject ) ) + // InternalFiacre.g:12229:4: (lv_item_1_0= ruleSubject ) + { + // InternalFiacre.g:12229:4: (lv_item_1_0= ruleSubject ) + // InternalFiacre.g:12230:5: lv_item_1_0= ruleSubject + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPathEventAccess().getItemSubjectParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_item_1_0=ruleSubject(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPathEventRule()); + } + set( + current, + "item", + lv_item_1_0, + "fr.irit.fiacre.xtext.Fiacre.Subject"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePathEvent" + + + // $ANTLR start "entryRulePath" + // InternalFiacre.g:12251:1: entryRulePath returns [EObject current=null] : iv_rulePath= rulePath EOF ; + public final EObject entryRulePath() throws RecognitionException { + EObject current = null; + + EObject iv_rulePath = null; + + + try { + // InternalFiacre.g:12251:45: (iv_rulePath= rulePath EOF ) + // InternalFiacre.g:12252:2: iv_rulePath= rulePath EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPathRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePath=rulePath(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePath; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePath" + + + // $ANTLR start "rulePath" + // InternalFiacre.g:12258:1: rulePath returns [EObject current=null] : ( ( (lv_items_0_0= rulePathItem ) ) otherlv_1= '/' )+ ; + public final EObject rulePath() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + EObject lv_items_0_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:12264:2: ( ( ( (lv_items_0_0= rulePathItem ) ) otherlv_1= '/' )+ ) + // InternalFiacre.g:12265:2: ( ( (lv_items_0_0= rulePathItem ) ) otherlv_1= '/' )+ + { + // InternalFiacre.g:12265:2: ( ( (lv_items_0_0= rulePathItem ) ) otherlv_1= '/' )+ + int cnt181=0; + loop181: + do { + int alt181=2; + int LA181_0 = input.LA(1); + + if ( (LA181_0==RULE_ID||LA181_0==RULE_INT) ) { + alt181=1; + } + + + switch (alt181) { + case 1 : + // InternalFiacre.g:12266:3: ( (lv_items_0_0= rulePathItem ) ) otherlv_1= '/' + { + // InternalFiacre.g:12266:3: ( (lv_items_0_0= rulePathItem ) ) + // InternalFiacre.g:12267:4: (lv_items_0_0= rulePathItem ) + { + // InternalFiacre.g:12267:4: (lv_items_0_0= rulePathItem ) + // InternalFiacre.g:12268:5: lv_items_0_0= rulePathItem + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPathAccess().getItemsPathItemParserRuleCall_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_120); + lv_items_0_0=rulePathItem(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPathRule()); + } + add( + current, + "items", + lv_items_0_0, + "fr.irit.fiacre.xtext.Fiacre.PathItem"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_1=(Token)match(input,93,FollowSets000.FOLLOW_121); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getPathAccess().getSolidusKeyword_1()); + + } + + } + break; + + default : + if ( cnt181 >= 1 ) break loop181; + if (state.backtracking>0) {state.failed=true; return current;} + EarlyExitException eee = + new EarlyExitException(181, input); + throw eee; + } + cnt181++; + } while (true); + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePath" + + + // $ANTLR start "entryRulePathItem" + // InternalFiacre.g:12293:1: entryRulePathItem returns [EObject current=null] : iv_rulePathItem= rulePathItem EOF ; + public final EObject entryRulePathItem() throws RecognitionException { + EObject current = null; + + EObject iv_rulePathItem = null; + + + try { + // InternalFiacre.g:12293:49: (iv_rulePathItem= rulePathItem EOF ) + // InternalFiacre.g:12294:2: iv_rulePathItem= rulePathItem EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPathItemRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_rulePathItem=rulePathItem(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePathItem; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePathItem" + + + // $ANTLR start "rulePathItem" + // InternalFiacre.g:12300:1: rulePathItem returns [EObject current=null] : (this_NaturalItem_0= ruleNaturalItem | this_NamedItem_1= ruleNamedItem ) ; + public final EObject rulePathItem() throws RecognitionException { + EObject current = null; + + EObject this_NaturalItem_0 = null; + + EObject this_NamedItem_1 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:12306:2: ( (this_NaturalItem_0= ruleNaturalItem | this_NamedItem_1= ruleNamedItem ) ) + // InternalFiacre.g:12307:2: (this_NaturalItem_0= ruleNaturalItem | this_NamedItem_1= ruleNamedItem ) + { + // InternalFiacre.g:12307:2: (this_NaturalItem_0= ruleNaturalItem | this_NamedItem_1= ruleNamedItem ) + int alt182=2; + int LA182_0 = input.LA(1); + + if ( (LA182_0==RULE_INT) ) { + alt182=1; + } + else if ( (LA182_0==RULE_ID) ) { + alt182=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 182, 0, input); + + throw nvae; + } + switch (alt182) { + case 1 : + // InternalFiacre.g:12308:3: this_NaturalItem_0= ruleNaturalItem + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPathItemAccess().getNaturalItemParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_NaturalItem_0=ruleNaturalItem(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_NaturalItem_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:12320:3: this_NamedItem_1= ruleNamedItem + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPathItemAccess().getNamedItemParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_NamedItem_1=ruleNamedItem(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_NamedItem_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePathItem" + + + // $ANTLR start "entryRuleNaturalItem" + // InternalFiacre.g:12335:1: entryRuleNaturalItem returns [EObject current=null] : iv_ruleNaturalItem= ruleNaturalItem EOF ; + public final EObject entryRuleNaturalItem() throws RecognitionException { + EObject current = null; + + EObject iv_ruleNaturalItem = null; + + + try { + // InternalFiacre.g:12335:52: (iv_ruleNaturalItem= ruleNaturalItem EOF ) + // InternalFiacre.g:12336:2: iv_ruleNaturalItem= ruleNaturalItem EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getNaturalItemRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleNaturalItem=ruleNaturalItem(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleNaturalItem; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleNaturalItem" + + + // $ANTLR start "ruleNaturalItem" + // InternalFiacre.g:12342:1: ruleNaturalItem returns [EObject current=null] : ( (lv_value_0_0= RULE_INT ) ) ; + public final EObject ruleNaturalItem() throws RecognitionException { + EObject current = null; + + Token lv_value_0_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:12348:2: ( ( (lv_value_0_0= RULE_INT ) ) ) + // InternalFiacre.g:12349:2: ( (lv_value_0_0= RULE_INT ) ) + { + // InternalFiacre.g:12349:2: ( (lv_value_0_0= RULE_INT ) ) + // InternalFiacre.g:12350:3: (lv_value_0_0= RULE_INT ) + { + // InternalFiacre.g:12350:3: (lv_value_0_0= RULE_INT ) + // InternalFiacre.g:12351:4: lv_value_0_0= RULE_INT + { + lv_value_0_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_value_0_0, grammarAccess.getNaturalItemAccess().getValueINTTerminalRuleCall_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getNaturalItemRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_0_0, + "fr.irit.fiacre.xtext.Fiacre.INT"); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleNaturalItem" + + + // $ANTLR start "entryRuleNamedItem" + // InternalFiacre.g:12370:1: entryRuleNamedItem returns [EObject current=null] : iv_ruleNamedItem= ruleNamedItem EOF ; + public final EObject entryRuleNamedItem() throws RecognitionException { + EObject current = null; + + EObject iv_ruleNamedItem = null; + + + try { + // InternalFiacre.g:12370:50: (iv_ruleNamedItem= ruleNamedItem EOF ) + // InternalFiacre.g:12371:2: iv_ruleNamedItem= ruleNamedItem EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getNamedItemRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleNamedItem=ruleNamedItem(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleNamedItem; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleNamedItem" + + + // $ANTLR start "ruleNamedItem" + // InternalFiacre.g:12377:1: ruleNamedItem returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ; + public final EObject ruleNamedItem() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:12383:2: ( ( (otherlv_0= RULE_ID ) ) ) + // InternalFiacre.g:12384:2: ( (otherlv_0= RULE_ID ) ) + { + // InternalFiacre.g:12384:2: ( (otherlv_0= RULE_ID ) ) + // InternalFiacre.g:12385:3: (otherlv_0= RULE_ID ) + { + // InternalFiacre.g:12385:3: (otherlv_0= RULE_ID ) + // InternalFiacre.g:12386:4: otherlv_0= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getNamedItemRule()); + } + + } + otherlv_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseCrossReference_0()); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleNamedItem" + + + // $ANTLR start "entryRuleSubject" + // InternalFiacre.g:12403:1: entryRuleSubject returns [EObject current=null] : iv_ruleSubject= ruleSubject EOF ; + public final EObject entryRuleSubject() throws RecognitionException { + EObject current = null; + + EObject iv_ruleSubject = null; + + + try { + // InternalFiacre.g:12403:48: (iv_ruleSubject= ruleSubject EOF ) + // InternalFiacre.g:12404:2: iv_ruleSubject= ruleSubject EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getSubjectRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleSubject=ruleSubject(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleSubject; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleSubject" + + + // $ANTLR start "ruleSubject" + // InternalFiacre.g:12410:1: ruleSubject returns [EObject current=null] : (this_StateSubject_0= ruleStateSubject | this_ValueSubject_1= ruleValueSubject | this_TagSubject_2= ruleTagSubject | this_EventSubject_3= ruleEventSubject ) ; + public final EObject ruleSubject() throws RecognitionException { + EObject current = null; + + EObject this_StateSubject_0 = null; + + EObject this_ValueSubject_1 = null; + + EObject this_TagSubject_2 = null; + + EObject this_EventSubject_3 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:12416:2: ( (this_StateSubject_0= ruleStateSubject | this_ValueSubject_1= ruleValueSubject | this_TagSubject_2= ruleTagSubject | this_EventSubject_3= ruleEventSubject ) ) + // InternalFiacre.g:12417:2: (this_StateSubject_0= ruleStateSubject | this_ValueSubject_1= ruleValueSubject | this_TagSubject_2= ruleTagSubject | this_EventSubject_3= ruleEventSubject ) + { + // InternalFiacre.g:12417:2: (this_StateSubject_0= ruleStateSubject | this_ValueSubject_1= ruleValueSubject | this_TagSubject_2= ruleTagSubject | this_EventSubject_3= ruleEventSubject ) + int alt183=4; + switch ( input.LA(1) ) { + case 136: + { + alt183=1; + } + break; + case 137: + { + alt183=2; + } + break; + case 138: + { + alt183=3; + } + break; + case 139: + { + alt183=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 183, 0, input); + + throw nvae; + } + + switch (alt183) { + case 1 : + // InternalFiacre.g:12418:3: this_StateSubject_0= ruleStateSubject + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSubjectAccess().getStateSubjectParserRuleCall_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_StateSubject_0=ruleStateSubject(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_StateSubject_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalFiacre.g:12430:3: this_ValueSubject_1= ruleValueSubject + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSubjectAccess().getValueSubjectParserRuleCall_1()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_ValueSubject_1=ruleValueSubject(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ValueSubject_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalFiacre.g:12442:3: this_TagSubject_2= ruleTagSubject + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSubjectAccess().getTagSubjectParserRuleCall_2()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_TagSubject_2=ruleTagSubject(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_TagSubject_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 4 : + // InternalFiacre.g:12454:3: this_EventSubject_3= ruleEventSubject + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSubjectAccess().getEventSubjectParserRuleCall_3()); + + } + pushFollow(FollowSets000.FOLLOW_2); + this_EventSubject_3=ruleEventSubject(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_EventSubject_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleSubject" + + + // $ANTLR start "entryRuleStateSubject" + // InternalFiacre.g:12469:1: entryRuleStateSubject returns [EObject current=null] : iv_ruleStateSubject= ruleStateSubject EOF ; + public final EObject entryRuleStateSubject() throws RecognitionException { + EObject current = null; + + EObject iv_ruleStateSubject = null; + + + try { + // InternalFiacre.g:12469:53: (iv_ruleStateSubject= ruleStateSubject EOF ) + // InternalFiacre.g:12470:2: iv_ruleStateSubject= ruleStateSubject EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStateSubjectRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleStateSubject=ruleStateSubject(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleStateSubject; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleStateSubject" + + + // $ANTLR start "ruleStateSubject" + // InternalFiacre.g:12476:1: ruleStateSubject returns [EObject current=null] : (otherlv_0= 'state' ( (otherlv_1= RULE_ID ) ) ) ; + public final EObject ruleStateSubject() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalFiacre.g:12482:2: ( (otherlv_0= 'state' ( (otherlv_1= RULE_ID ) ) ) ) + // InternalFiacre.g:12483:2: (otherlv_0= 'state' ( (otherlv_1= RULE_ID ) ) ) + { + // InternalFiacre.g:12483:2: (otherlv_0= 'state' ( (otherlv_1= RULE_ID ) ) ) + // InternalFiacre.g:12484:3: otherlv_0= 'state' ( (otherlv_1= RULE_ID ) ) + { + otherlv_0=(Token)match(input,136,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getStateSubjectAccess().getStateKeyword_0()); + + } + // InternalFiacre.g:12488:3: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:12489:4: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:12489:4: (otherlv_1= RULE_ID ) + // InternalFiacre.g:12490:5: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getStateSubjectRule()); + } + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getStateSubjectAccess().getStateStateDeclarationCrossReference_1_0()); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleStateSubject" + + + // $ANTLR start "entryRuleValueSubject" + // InternalFiacre.g:12508:1: entryRuleValueSubject returns [EObject current=null] : iv_ruleValueSubject= ruleValueSubject EOF ; + public final EObject entryRuleValueSubject() throws RecognitionException { + EObject current = null; + + EObject iv_ruleValueSubject = null; + + + try { + // InternalFiacre.g:12508:53: (iv_ruleValueSubject= ruleValueSubject EOF ) + // InternalFiacre.g:12509:2: iv_ruleValueSubject= ruleValueSubject EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getValueSubjectRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleValueSubject=ruleValueSubject(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleValueSubject; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleValueSubject" + + + // $ANTLR start "ruleValueSubject" + // InternalFiacre.g:12515:1: ruleValueSubject returns [EObject current=null] : (otherlv_0= 'value' ( (lv_value_1_0= ruleAtomicExpression ) ) ) ; + public final EObject ruleValueSubject() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_value_1_0 = null; + + + + enterRule(); + + try { + // InternalFiacre.g:12521:2: ( (otherlv_0= 'value' ( (lv_value_1_0= ruleAtomicExpression ) ) ) ) + // InternalFiacre.g:12522:2: (otherlv_0= 'value' ( (lv_value_1_0= ruleAtomicExpression ) ) ) + { + // InternalFiacre.g:12522:2: (otherlv_0= 'value' ( (lv_value_1_0= ruleAtomicExpression ) ) ) + // InternalFiacre.g:12523:3: otherlv_0= 'value' ( (lv_value_1_0= ruleAtomicExpression ) ) + { + otherlv_0=(Token)match(input,137,FollowSets000.FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getValueSubjectAccess().getValueKeyword_0()); + + } + // InternalFiacre.g:12527:3: ( (lv_value_1_0= ruleAtomicExpression ) ) + // InternalFiacre.g:12528:4: (lv_value_1_0= ruleAtomicExpression ) + { + // InternalFiacre.g:12528:4: (lv_value_1_0= ruleAtomicExpression ) + // InternalFiacre.g:12529:5: lv_value_1_0= ruleAtomicExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getValueSubjectAccess().getValueAtomicExpressionParserRuleCall_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_value_1_0=ruleAtomicExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getValueSubjectRule()); + } + set( + current, + "value", + lv_value_1_0, + "fr.irit.fiacre.xtext.Fiacre.AtomicExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleValueSubject" + + + // $ANTLR start "entryRuleTagSubject" + // InternalFiacre.g:12550:1: entryRuleTagSubject returns [EObject current=null] : iv_ruleTagSubject= ruleTagSubject EOF ; + public final EObject entryRuleTagSubject() throws RecognitionException { + EObject current = null; + + EObject iv_ruleTagSubject = null; + + + try { + // InternalFiacre.g:12550:51: (iv_ruleTagSubject= ruleTagSubject EOF ) + // InternalFiacre.g:12551:2: iv_ruleTagSubject= ruleTagSubject EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getTagSubjectRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleTagSubject=ruleTagSubject(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleTagSubject; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleTagSubject" + + + // $ANTLR start "ruleTagSubject" + // InternalFiacre.g:12557:1: ruleTagSubject returns [EObject current=null] : (otherlv_0= 'tag' ( (otherlv_1= RULE_ID ) ) ) ; + public final EObject ruleTagSubject() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalFiacre.g:12563:2: ( (otherlv_0= 'tag' ( (otherlv_1= RULE_ID ) ) ) ) + // InternalFiacre.g:12564:2: (otherlv_0= 'tag' ( (otherlv_1= RULE_ID ) ) ) + { + // InternalFiacre.g:12564:2: (otherlv_0= 'tag' ( (otherlv_1= RULE_ID ) ) ) + // InternalFiacre.g:12565:3: otherlv_0= 'tag' ( (otherlv_1= RULE_ID ) ) + { + otherlv_0=(Token)match(input,138,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getTagSubjectAccess().getTagKeyword_0()); + + } + // InternalFiacre.g:12569:3: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:12570:4: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:12570:4: (otherlv_1= RULE_ID ) + // InternalFiacre.g:12571:5: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTagSubjectRule()); + } + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getTagSubjectAccess().getTagTaggedStatementCrossReference_1_0()); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTagSubject" + + + // $ANTLR start "entryRuleEventSubject" + // InternalFiacre.g:12589:1: entryRuleEventSubject returns [EObject current=null] : iv_ruleEventSubject= ruleEventSubject EOF ; + public final EObject entryRuleEventSubject() throws RecognitionException { + EObject current = null; + + EObject iv_ruleEventSubject = null; + + + try { + // InternalFiacre.g:12589:53: (iv_ruleEventSubject= ruleEventSubject EOF ) + // InternalFiacre.g:12590:2: iv_ruleEventSubject= ruleEventSubject EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getEventSubjectRule()); + } + pushFollow(FollowSets000.FOLLOW_1); + iv_ruleEventSubject=ruleEventSubject(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleEventSubject; + } + match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleEventSubject" + + + // $ANTLR start "ruleEventSubject" + // InternalFiacre.g:12596:1: ruleEventSubject returns [EObject current=null] : (otherlv_0= 'event' ( (lv_event_1_0= RULE_ID ) ) ) ; + public final EObject ruleEventSubject() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_event_1_0=null; + + + enterRule(); + + try { + // InternalFiacre.g:12602:2: ( (otherlv_0= 'event' ( (lv_event_1_0= RULE_ID ) ) ) ) + // InternalFiacre.g:12603:2: (otherlv_0= 'event' ( (lv_event_1_0= RULE_ID ) ) ) + { + // InternalFiacre.g:12603:2: (otherlv_0= 'event' ( (lv_event_1_0= RULE_ID ) ) ) + // InternalFiacre.g:12604:3: otherlv_0= 'event' ( (lv_event_1_0= RULE_ID ) ) + { + otherlv_0=(Token)match(input,139,FollowSets000.FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getEventSubjectAccess().getEventKeyword_0()); + + } + // InternalFiacre.g:12608:3: ( (lv_event_1_0= RULE_ID ) ) + // InternalFiacre.g:12609:4: (lv_event_1_0= RULE_ID ) + { + // InternalFiacre.g:12609:4: (lv_event_1_0= RULE_ID ) + // InternalFiacre.g:12610:5: lv_event_1_0= RULE_ID + { + lv_event_1_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_event_1_0, grammarAccess.getEventSubjectAccess().getEventIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getEventSubjectRule()); + } + setWithLastConsumed( + current, + "event", + lv_event_1_0, + "fr.irit.fiacre.xtext.Fiacre.ID"); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleEventSubject" + + // $ANTLR start synpred17_InternalFiacre + public final void synpred17_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_1=null; + Token otherlv_3=null; + EObject lv_size_2_0 = null; + + + // InternalFiacre.g:790:4: (otherlv_1= 'array' ( (lv_size_2_0= ruleExpression ) ) otherlv_3= 'of' ) + // InternalFiacre.g:790:4: otherlv_1= 'array' ( (lv_size_2_0= ruleExpression ) ) otherlv_3= 'of' + { + otherlv_1=(Token)match(input,24,FollowSets000.FOLLOW_19); if (state.failed) return ; + // InternalFiacre.g:794:4: ( (lv_size_2_0= ruleExpression ) ) + // InternalFiacre.g:795:5: (lv_size_2_0= ruleExpression ) + { + // InternalFiacre.g:795:5: (lv_size_2_0= ruleExpression ) + // InternalFiacre.g:796:6: lv_size_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getChannelTypeAccess().getSizeExpressionParserRuleCall_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_20); + lv_size_2_0=ruleExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + otherlv_3=(Token)match(input,25,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + } + // $ANTLR end synpred17_InternalFiacre + + // $ANTLR start synpred22_InternalFiacre + public final void synpred22_InternalFiacre_fragment() throws RecognitionException { + Token lv_in_4_0=null; + Token lv_out_5_0=null; + Token lv_out_6_0=null; + Token otherlv_8=null; + EObject lv_type_7_0 = null; + + + // InternalFiacre.g:819:4: ( ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) ) + // InternalFiacre.g:819:4: ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) + { + // InternalFiacre.g:819:4: ( ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) ) + // InternalFiacre.g:820:5: ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) + { + // InternalFiacre.g:820:5: ( ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) | ( (lv_out_6_0= 'out' ) ) )? + int alt189=3; + int LA189_0 = input.LA(1); + + if ( (LA189_0==26) ) { + alt189=1; + } + else if ( (LA189_0==27) ) { + alt189=2; + } + switch (alt189) { + case 1 : + // InternalFiacre.g:821:6: ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) + { + // InternalFiacre.g:821:6: ( ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? ) + // InternalFiacre.g:822:7: ( (lv_in_4_0= 'in' ) ) ( (lv_out_5_0= 'out' ) )? + { + // InternalFiacre.g:822:7: ( (lv_in_4_0= 'in' ) ) + // InternalFiacre.g:823:8: (lv_in_4_0= 'in' ) + { + // InternalFiacre.g:823:8: (lv_in_4_0= 'in' ) + // InternalFiacre.g:824:9: lv_in_4_0= 'in' + { + lv_in_4_0=(Token)match(input,26,FollowSets000.FOLLOW_21); if (state.failed) return ; + + } + + + } + + // InternalFiacre.g:836:7: ( (lv_out_5_0= 'out' ) )? + int alt188=2; + int LA188_0 = input.LA(1); + + if ( (LA188_0==27) ) { + alt188=1; + } + switch (alt188) { + case 1 : + // InternalFiacre.g:837:8: (lv_out_5_0= 'out' ) + { + // InternalFiacre.g:837:8: (lv_out_5_0= 'out' ) + // InternalFiacre.g:838:9: lv_out_5_0= 'out' + { + lv_out_5_0=(Token)match(input,27,FollowSets000.FOLLOW_22); if (state.failed) return ; + + } + + + } + break; + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:852:6: ( (lv_out_6_0= 'out' ) ) + { + // InternalFiacre.g:852:6: ( (lv_out_6_0= 'out' ) ) + // InternalFiacre.g:853:7: (lv_out_6_0= 'out' ) + { + // InternalFiacre.g:853:7: (lv_out_6_0= 'out' ) + // InternalFiacre.g:854:8: lv_out_6_0= 'out' + { + lv_out_6_0=(Token)match(input,27,FollowSets000.FOLLOW_22); if (state.failed) return ; + + } + + + } + + + } + break; + + } + + // InternalFiacre.g:867:5: ( ( (lv_type_7_0= ruleTupleType ) ) | otherlv_8= 'none' ) + int alt190=2; + int LA190_0 = input.LA(1); + + if ( (LA190_0==RULE_ID||LA190_0==RULE_INT||LA190_0==16||LA190_0==24||(LA190_0>=31 && LA190_0<=33)||LA190_0==35||(LA190_0>=37 && LA190_0<=38)||LA190_0==41||LA190_0==51||(LA190_0>=63 && LA190_0<=64)||(LA190_0>=83 && LA190_0<=84)||(LA190_0>=95 && LA190_0<=101)||LA190_0==103||LA190_0==105||(LA190_0>=107 && LA190_0<=110)) ) { + alt190=1; + } + else if ( (LA190_0==28) ) { + alt190=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 190, 0, input); + + throw nvae; + } + switch (alt190) { + case 1 : + // InternalFiacre.g:868:6: ( (lv_type_7_0= ruleTupleType ) ) + { + // InternalFiacre.g:868:6: ( (lv_type_7_0= ruleTupleType ) ) + // InternalFiacre.g:869:7: (lv_type_7_0= ruleTupleType ) + { + // InternalFiacre.g:869:7: (lv_type_7_0= ruleTupleType ) + // InternalFiacre.g:870:8: lv_type_7_0= ruleTupleType + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getChannelTypeAccess().getTypeTupleTypeParserRuleCall_2_0_1_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_type_7_0=ruleTupleType(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + case 2 : + // InternalFiacre.g:888:6: otherlv_8= 'none' + { + otherlv_8=(Token)match(input,28,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + break; + + } + + + } + + + } + } + // $ANTLR end synpred22_InternalFiacre + + // $ANTLR start synpred23_InternalFiacre + public final void synpred23_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_9=null; + + // InternalFiacre.g:895:4: (otherlv_9= 'none' ) + // InternalFiacre.g:895:4: otherlv_9= 'none' + { + otherlv_9=(Token)match(input,28,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + } + // $ANTLR end synpred23_InternalFiacre + + // $ANTLR start synpred25_InternalFiacre + public final void synpred25_InternalFiacre_fragment() throws RecognitionException { + EObject this_RangeType_1 = null; + + + // InternalFiacre.g:936:3: (this_RangeType_1= ruleRangeType ) + // InternalFiacre.g:936:3: this_RangeType_1= ruleRangeType + { + if ( state.backtracking==0 ) { + + /* */ + + } + pushFollow(FollowSets000.FOLLOW_2); + this_RangeType_1=ruleRangeType(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred25_InternalFiacre + + // $ANTLR start synpred94_InternalFiacre + public final void synpred94_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_1=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + EObject lv_patterns_3_0 = null; + + EObject lv_patterns_5_0 = null; + + EObject lv_values_7_0 = null; + + EObject lv_values_9_0 = null; + + + // InternalFiacre.g:4024:4: ( (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) ) + // InternalFiacre.g:4024:4: (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) + { + // InternalFiacre.g:4024:4: (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) + // InternalFiacre.g:4025:5: otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* + { + otherlv_1=(Token)match(input,17,FollowSets000.FOLLOW_56); if (state.failed) return ; + // InternalFiacre.g:4029:5: () + // InternalFiacre.g:4030:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + + } + + // InternalFiacre.g:4039:5: ( (lv_patterns_3_0= rulePattern ) ) + // InternalFiacre.g:4040:6: (lv_patterns_3_0= rulePattern ) + { + // InternalFiacre.g:4040:6: (lv_patterns_3_0= rulePattern ) + // InternalFiacre.g:4041:7: lv_patterns_3_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_57); + lv_patterns_3_0=rulePattern(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + // InternalFiacre.g:4058:5: (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* + loop202: + do { + int alt202=2; + int LA202_0 = input.LA(1); + + if ( (LA202_0==17) ) { + alt202=1; + } + + + switch (alt202) { + case 1 : + // InternalFiacre.g:4059:6: otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) + { + otherlv_4=(Token)match(input,17,FollowSets000.FOLLOW_56); if (state.failed) return ; + // InternalFiacre.g:4063:6: ( (lv_patterns_5_0= rulePattern ) ) + // InternalFiacre.g:4064:7: (lv_patterns_5_0= rulePattern ) + { + // InternalFiacre.g:4064:7: (lv_patterns_5_0= rulePattern ) + // InternalFiacre.g:4065:8: lv_patterns_5_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_0_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_57); + lv_patterns_5_0=rulePattern(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + default : + break loop202; + } + } while (true); + + otherlv_6=(Token)match(input,52,FollowSets000.FOLLOW_19); if (state.failed) return ; + // InternalFiacre.g:4087:5: ( (lv_values_7_0= ruleExpression ) ) + // InternalFiacre.g:4088:6: (lv_values_7_0= ruleExpression ) + { + // InternalFiacre.g:4088:6: (lv_values_7_0= ruleExpression ) + // InternalFiacre.g:4089:7: lv_values_7_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_5_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_values_7_0=ruleExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + // InternalFiacre.g:4106:5: (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* + loop203: + do { + int alt203=2; + int LA203_0 = input.LA(1); + + if ( (LA203_0==17) ) { + alt203=1; + } + + + switch (alt203) { + case 1 : + // InternalFiacre.g:4107:6: otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) + { + otherlv_8=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return ; + // InternalFiacre.g:4111:6: ( (lv_values_9_0= ruleExpression ) ) + // InternalFiacre.g:4112:7: (lv_values_9_0= ruleExpression ) + { + // InternalFiacre.g:4112:7: (lv_values_9_0= ruleExpression ) + // InternalFiacre.g:4113:8: lv_values_9_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_0_6_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_values_9_0=ruleExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + default : + break loop203; + } + } while (true); + + + } + + + } + } + // $ANTLR end synpred94_InternalFiacre + + // $ANTLR start synpred96_InternalFiacre + public final void synpred96_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_10=null; + Token otherlv_13=null; + EObject lv_values_12_0 = null; + + EObject lv_values_14_0 = null; + + + // InternalFiacre.g:4133:4: ( (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) ) + // InternalFiacre.g:4133:4: (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) + { + // InternalFiacre.g:4133:4: (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) + // InternalFiacre.g:4134:5: otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) + { + otherlv_10=(Token)match(input,52,FollowSets000.FOLLOW_19); if (state.failed) return ; + // InternalFiacre.g:4138:5: () + // InternalFiacre.g:4139:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + + } + + // InternalFiacre.g:4148:5: ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) + // InternalFiacre.g:4149:6: ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* + { + // InternalFiacre.g:4149:6: ( (lv_values_12_0= ruleExpression ) ) + // InternalFiacre.g:4150:7: (lv_values_12_0= ruleExpression ) + { + // InternalFiacre.g:4150:7: (lv_values_12_0= ruleExpression ) + // InternalFiacre.g:4151:8: lv_values_12_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_values_12_0=ruleExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + // InternalFiacre.g:4168:6: (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* + loop204: + do { + int alt204=2; + int LA204_0 = input.LA(1); + + if ( (LA204_0==17) ) { + alt204=1; + } + + + switch (alt204) { + case 1 : + // InternalFiacre.g:4169:7: otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) + { + otherlv_13=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return ; + // InternalFiacre.g:4173:7: ( (lv_values_14_0= ruleExpression ) ) + // InternalFiacre.g:4174:8: (lv_values_14_0= ruleExpression ) + { + // InternalFiacre.g:4174:8: (lv_values_14_0= ruleExpression ) + // InternalFiacre.g:4175:9: lv_values_14_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getValuesExpressionParserRuleCall_1_1_2_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_58); + lv_values_14_0=ruleExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + default : + break loop204; + } + } while (true); + + + } + + + } + + + } + } + // $ANTLR end synpred96_InternalFiacre + + // $ANTLR start synpred99_InternalFiacre + public final void synpred99_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_15=null; + Token otherlv_18=null; + Token otherlv_20=null; + Token otherlv_21=null; + Token otherlv_22=null; + EObject lv_patterns_17_0 = null; + + EObject lv_patterns_19_0 = null; + + EObject lv_exp_23_0 = null; + + + // InternalFiacre.g:4196:4: ( (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) ) + // InternalFiacre.g:4196:4: (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) + { + // InternalFiacre.g:4196:4: (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) + // InternalFiacre.g:4197:5: otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? + { + otherlv_15=(Token)match(input,17,FollowSets000.FOLLOW_56); if (state.failed) return ; + // InternalFiacre.g:4201:5: () + // InternalFiacre.g:4202:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + + } + + // InternalFiacre.g:4211:5: ( (lv_patterns_17_0= rulePattern ) ) + // InternalFiacre.g:4212:6: (lv_patterns_17_0= rulePattern ) + { + // InternalFiacre.g:4212:6: (lv_patterns_17_0= rulePattern ) + // InternalFiacre.g:4213:7: lv_patterns_17_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_57); + lv_patterns_17_0=rulePattern(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + // InternalFiacre.g:4230:5: (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* + loop205: + do { + int alt205=2; + int LA205_0 = input.LA(1); + + if ( (LA205_0==17) ) { + alt205=1; + } + + + switch (alt205) { + case 1 : + // InternalFiacre.g:4231:6: otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) + { + otherlv_18=(Token)match(input,17,FollowSets000.FOLLOW_56); if (state.failed) return ; + // InternalFiacre.g:4235:6: ( (lv_patterns_19_0= rulePattern ) ) + // InternalFiacre.g:4236:7: (lv_patterns_19_0= rulePattern ) + { + // InternalFiacre.g:4236:7: (lv_patterns_19_0= rulePattern ) + // InternalFiacre.g:4237:8: lv_patterns_19_0= rulePattern + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getPatternsPatternParserRuleCall_1_2_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_57); + lv_patterns_19_0=rulePattern(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + default : + break loop205; + } + } while (true); + + otherlv_20=(Token)match(input,52,FollowSets000.FOLLOW_59); if (state.failed) return ; + otherlv_21=(Token)match(input,59,FollowSets000.FOLLOW_60); if (state.failed) return ; + // InternalFiacre.g:4263:5: (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? + int alt206=2; + int LA206_0 = input.LA(1); + + if ( (LA206_0==60) ) { + alt206=1; + } + switch (alt206) { + case 1 : + // InternalFiacre.g:4264:6: otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) + { + otherlv_22=(Token)match(input,60,FollowSets000.FOLLOW_19); if (state.failed) return ; + // InternalFiacre.g:4268:6: ( (lv_exp_23_0= ruleExpression ) ) + // InternalFiacre.g:4269:7: (lv_exp_23_0= ruleExpression ) + { + // InternalFiacre.g:4269:7: (lv_exp_23_0= ruleExpression ) + // InternalFiacre.g:4270:8: lv_exp_23_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_2_6_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_exp_23_0=ruleExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + } + + + } + + + } + } + // $ANTLR end synpred99_InternalFiacre + + // $ANTLR start synpred101_InternalFiacre + public final void synpred101_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_24=null; + Token otherlv_26=null; + Token otherlv_27=null; + EObject lv_exp_28_0 = null; + + + // InternalFiacre.g:4290:4: ( (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) ) + // InternalFiacre.g:4290:4: (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) + { + // InternalFiacre.g:4290:4: (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) + // InternalFiacre.g:4291:5: otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? + { + otherlv_24=(Token)match(input,52,FollowSets000.FOLLOW_59); if (state.failed) return ; + // InternalFiacre.g:4295:5: () + // InternalFiacre.g:4296:6: + { + if ( state.backtracking==0 ) { + + /* */ + + } + + } + + otherlv_26=(Token)match(input,59,FollowSets000.FOLLOW_60); if (state.failed) return ; + // InternalFiacre.g:4309:5: (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? + int alt207=2; + int LA207_0 = input.LA(1); + + if ( (LA207_0==60) ) { + alt207=1; + } + switch (alt207) { + case 1 : + // InternalFiacre.g:4310:6: otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) + { + otherlv_27=(Token)match(input,60,FollowSets000.FOLLOW_19); if (state.failed) return ; + // InternalFiacre.g:4314:6: ( (lv_exp_28_0= ruleExpression ) ) + // InternalFiacre.g:4315:7: (lv_exp_28_0= ruleExpression ) + { + // InternalFiacre.g:4315:7: (lv_exp_28_0= ruleExpression ) + // InternalFiacre.g:4316:8: lv_exp_28_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPatternStatementAccess().getExpExpressionParserRuleCall_1_3_3_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_exp_28_0=ruleExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + } + + + } + + + } + } + // $ANTLR end synpred101_InternalFiacre + + // $ANTLR start synpred126_InternalFiacre + public final void synpred126_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_2=null; + EObject lv_global_1_0 = null; + + + // InternalFiacre.g:5675:4: ( ( (lv_global_1_0= rulePortSet ) ) otherlv_2= 'in' ) + // InternalFiacre.g:5675:4: ( (lv_global_1_0= rulePortSet ) ) otherlv_2= 'in' + { + // InternalFiacre.g:5675:4: ( (lv_global_1_0= rulePortSet ) ) + // InternalFiacre.g:5676:5: (lv_global_1_0= rulePortSet ) + { + // InternalFiacre.g:5676:5: (lv_global_1_0= rulePortSet ) + // InternalFiacre.g:5677:6: lv_global_1_0= rulePortSet + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCompositionAccess().getGlobalPortSetParserRuleCall_1_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_69); + lv_global_1_0=rulePortSet(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + otherlv_2=(Token)match(input,26,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + } + // $ANTLR end synpred126_InternalFiacre + + // $ANTLR start synpred129_InternalFiacre + public final void synpred129_InternalFiacre_fragment() throws RecognitionException { + EObject this_CompositeBlock_0 = null; + + + // InternalFiacre.g:5772:3: (this_CompositeBlock_0= ruleCompositeBlock ) + // InternalFiacre.g:5772:3: this_CompositeBlock_0= ruleCompositeBlock + { + if ( state.backtracking==0 ) { + + /* */ + + } + pushFollow(FollowSets000.FOLLOW_2); + this_CompositeBlock_0=ruleCompositeBlock(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred129_InternalFiacre + + // $ANTLR start synpred132_InternalFiacre + public final void synpred132_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_1=null; + EObject lv_local_0_0 = null; + + + // InternalFiacre.g:5885:4: ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) ) + // InternalFiacre.g:5885:4: ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) + { + // InternalFiacre.g:5885:4: ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) + // InternalFiacre.g:5886:5: ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' + { + // InternalFiacre.g:5886:5: ( (lv_local_0_0= rulePortSet ) ) + // InternalFiacre.g:5887:6: (lv_local_0_0= rulePortSet ) + { + // InternalFiacre.g:5887:6: (lv_local_0_0= rulePortSet ) + // InternalFiacre.g:5888:7: lv_local_0_0= rulePortSet + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getInstanceDeclarationAccess().getLocalPortSetParserRuleCall_0_0_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_74); + lv_local_0_0=rulePortSet(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + otherlv_1=(Token)match(input,76,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + + } + } + // $ANTLR end synpred132_InternalFiacre + + // $ANTLR start synpred153_InternalFiacre + public final void synpred153_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_2=null; + EObject lv_right_3_0 = null; + + + // InternalFiacre.g:6789:4: ( () otherlv_2= '+' ( (lv_right_3_0= ruleSubstraction ) ) ) + // InternalFiacre.g:6789:4: () otherlv_2= '+' ( (lv_right_3_0= ruleSubstraction ) ) + { + // InternalFiacre.g:6789:4: () + // InternalFiacre.g:6790:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + + } + + otherlv_2=(Token)match(input,63,FollowSets000.FOLLOW_19); if (state.failed) return ; + // InternalFiacre.g:6803:4: ( (lv_right_3_0= ruleSubstraction ) ) + // InternalFiacre.g:6804:5: (lv_right_3_0= ruleSubstraction ) + { + // InternalFiacre.g:6804:5: (lv_right_3_0= ruleSubstraction ) + // InternalFiacre.g:6805:6: lv_right_3_0= ruleSubstraction + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAdditionAccess().getRightSubstractionParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_3_0=ruleSubstraction(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + } + // $ANTLR end synpred153_InternalFiacre + + // $ANTLR start synpred154_InternalFiacre + public final void synpred154_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_2=null; + EObject lv_right_3_0 = null; + + + // InternalFiacre.g:6854:4: ( () otherlv_2= '-' ( (lv_right_3_0= ruleMultiplication ) ) ) + // InternalFiacre.g:6854:4: () otherlv_2= '-' ( (lv_right_3_0= ruleMultiplication ) ) + { + // InternalFiacre.g:6854:4: () + // InternalFiacre.g:6855:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + + } + + otherlv_2=(Token)match(input,64,FollowSets000.FOLLOW_19); if (state.failed) return ; + // InternalFiacre.g:6868:4: ( (lv_right_3_0= ruleMultiplication ) ) + // InternalFiacre.g:6869:5: (lv_right_3_0= ruleMultiplication ) + { + // InternalFiacre.g:6869:5: (lv_right_3_0= ruleMultiplication ) + // InternalFiacre.g:6870:6: lv_right_3_0= ruleMultiplication + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getSubstractionAccess().getRightMultiplicationParserRuleCall_1_2_0()); + + } + pushFollow(FollowSets000.FOLLOW_2); + lv_right_3_0=ruleMultiplication(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + } + // $ANTLR end synpred154_InternalFiacre + + // $ANTLR start synpred178_InternalFiacre + public final void synpred178_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_1=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + EObject lv_parameters_3_0 = null; + + EObject lv_parameters_5_0 = null; + + + // InternalFiacre.g:7548:3: ( ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' ) ) + // InternalFiacre.g:7548:3: ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' ) + { + // InternalFiacre.g:7548:3: ( () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' ) + // InternalFiacre.g:7549:4: () ( (otherlv_1= RULE_ID ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? otherlv_6= ')' + { + // InternalFiacre.g:7549:4: () + // InternalFiacre.g:7550:5: + { + if ( state.backtracking==0 ) { + + /* */ + + } + + } + + // InternalFiacre.g:7559:4: ( (otherlv_1= RULE_ID ) ) + // InternalFiacre.g:7560:5: (otherlv_1= RULE_ID ) + { + // InternalFiacre.g:7560:5: (otherlv_1= RULE_ID ) + // InternalFiacre.g:7561:6: otherlv_1= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + otherlv_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_9); if (state.failed) return ; + + } + + + } + + otherlv_2=(Token)match(input,16,FollowSets000.FOLLOW_94); if (state.failed) return ; + // InternalFiacre.g:7579:4: ( ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* )? + int alt222=2; + int LA222_0 = input.LA(1); + + if ( (LA222_0==RULE_ID||LA222_0==RULE_INT||LA222_0==16||LA222_0==41||LA222_0==51||(LA222_0>=63 && LA222_0<=64)||(LA222_0>=83 && LA222_0<=84)||(LA222_0>=95 && LA222_0<=101)||LA222_0==103||LA222_0==105||(LA222_0>=107 && LA222_0<=110)) ) { + alt222=1; + } + switch (alt222) { + case 1 : + // InternalFiacre.g:7580:5: ( (lv_parameters_3_0= ruleExpression ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* + { + // InternalFiacre.g:7580:5: ( (lv_parameters_3_0= ruleExpression ) ) + // InternalFiacre.g:7581:6: (lv_parameters_3_0= ruleExpression ) + { + // InternalFiacre.g:7581:6: (lv_parameters_3_0= ruleExpression ) + // InternalFiacre.g:7582:7: lv_parameters_3_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_0_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_3_0=ruleExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + // InternalFiacre.g:7599:5: (otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) )* + loop221: + do { + int alt221=2; + int LA221_0 = input.LA(1); + + if ( (LA221_0==17) ) { + alt221=1; + } + + + switch (alt221) { + case 1 : + // InternalFiacre.g:7600:6: otherlv_4= ',' ( (lv_parameters_5_0= ruleExpression ) ) + { + otherlv_4=(Token)match(input,17,FollowSets000.FOLLOW_19); if (state.failed) return ; + // InternalFiacre.g:7604:6: ( (lv_parameters_5_0= ruleExpression ) ) + // InternalFiacre.g:7605:7: (lv_parameters_5_0= ruleExpression ) + { + // InternalFiacre.g:7605:7: (lv_parameters_5_0= ruleExpression ) + // InternalFiacre.g:7606:8: lv_parameters_5_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIdentifierExpressionAccess().getParametersExpressionParserRuleCall_0_3_1_1_0()); + + } + pushFollow(FollowSets000.FOLLOW_11); + lv_parameters_5_0=ruleExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + default : + break loop221; + } + } while (true); + + + } + break; + + } + + otherlv_6=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + + } + } + // $ANTLR end synpred178_InternalFiacre + + // $ANTLR start synpred181_InternalFiacre + public final void synpred181_InternalFiacre_fragment() throws RecognitionException { + Token otherlv_14=null; + Token otherlv_16=null; + + // InternalFiacre.g:7714:5: ( (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) ) + // InternalFiacre.g:7714:5: (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) + { + // InternalFiacre.g:7714:5: (otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) ) + // InternalFiacre.g:7715:6: otherlv_14= '.' () ( (otherlv_16= RULE_ID ) ) + { + otherlv_14=(Token)match(input,65,FollowSets000.FOLLOW_6); if (state.failed) return ; + // InternalFiacre.g:7719:6: () + // InternalFiacre.g:7720:7: + { + if ( state.backtracking==0 ) { + + /* */ + + } + + } + + // InternalFiacre.g:7729:6: ( (otherlv_16= RULE_ID ) ) + // InternalFiacre.g:7730:7: (otherlv_16= RULE_ID ) + { + // InternalFiacre.g:7730:7: (otherlv_16= RULE_ID ) + // InternalFiacre.g:7731:8: otherlv_16= RULE_ID + { + if ( state.backtracking==0 ) { + + /* */ + + } + otherlv_16=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ; + + } + + + } + + + } + + + } + } + // $ANTLR end synpred181_InternalFiacre + + // $ANTLR start synpred208_InternalFiacre + public final void synpred208_InternalFiacre_fragment() throws RecognitionException { + EObject this_PatternProperty_0 = null; + + + // InternalFiacre.g:9471:3: (this_PatternProperty_0= rulePatternProperty ) + // InternalFiacre.g:9471:3: this_PatternProperty_0= rulePatternProperty + { + if ( state.backtracking==0 ) { + + /* */ + + } + pushFollow(FollowSets000.FOLLOW_2); + this_PatternProperty_0=rulePatternProperty(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred208_InternalFiacre + + // Delegated rules + + public final boolean synpred96_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred96_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred132_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred132_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred126_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred126_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred129_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred129_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred99_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred99_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred17_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred17_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred178_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred178_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred154_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred154_InternalFiacre_fragment(); // can never throw exception + } catch (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_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred208_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred22_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred22_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred101_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred101_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred94_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred94_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred153_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred153_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred23_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred23_InternalFiacre_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred25_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred25_InternalFiacre_fragment(); // can never throw exception + } catch (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_InternalFiacre() { + state.backtracking++; + int start = input.mark(); + try { + synpred181_InternalFiacre_fragment(); // can never 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 DFA11 dfa11 = new DFA11(this); + protected DFA16 dfa16 = new DFA16(this); + protected DFA75 dfa75 = new DFA75(this); + protected DFA91 dfa91 = new DFA91(this); + protected DFA94 dfa94 = new DFA94(this); + protected DFA96 dfa96 = new DFA96(this); + protected DFA149 dfa149 = new DFA149(this); + static final String dfa_1s = "\43\uffff"; + static final String dfa_2s = "\1\4\1\0\41\uffff"; + static final String dfa_3s = "\1\156\1\0\41\uffff"; + static final String dfa_4s = "\2\uffff\1\2\37\uffff\1\1"; + static final String dfa_5s = "\1\uffff\1\0\41\uffff}>"; + static final String[] dfa_6s = { + "\1\2\1\uffff\1\2\11\uffff\1\2\7\uffff\1\1\1\uffff\4\2\1\uffff\3\2\1\uffff\1\2\1\uffff\2\2\2\uffff\1\2\11\uffff\1\2\13\uffff\2\2\22\uffff\2\2\12\uffff\7\2\1\uffff\1\2\1\uffff\1\2\1\uffff\4\2", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); + static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s); + static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s); + static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s); + static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s); + static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s); + + class DFA11 extends DFA { + + public DFA11(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 11; + 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 "789:3: (otherlv_1= 'array' ( (lv_size_2_0= ruleExpression ) ) otherlv_3= 'of' )?"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA11_1 = input.LA(1); + + + int index11_1 = input.index(); + input.rewind(); + s = -1; + if ( (synpred17_InternalFiacre()) ) {s = 34;} + + else if ( (true) ) {s = 2;} + + + input.seek(index11_1); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 11, _s, input); + error(nvae); + throw nvae; + } + } + static final String dfa_7s = "\37\uffff"; + static final String dfa_8s = "\1\4\16\uffff\1\0\17\uffff"; + static final String dfa_9s = "\1\156\16\uffff\1\0\17\uffff"; + static final String dfa_10s = "\1\uffff\1\1\2\uffff\1\2\25\uffff\1\3\1\4\1\5\1\6\1\7"; + static final String dfa_11s = "\17\uffff\1\0\17\uffff}>"; + static final String[] dfa_12s = { + "\1\17\1\uffff\1\4\11\uffff\1\4\7\uffff\1\35\6\uffff\3\1\1\uffff\1\32\1\uffff\1\33\1\34\2\uffff\1\4\11\uffff\1\4\13\uffff\2\4\22\uffff\2\4\12\uffff\7\4\1\uffff\1\4\1\uffff\1\4\1\uffff\4\4", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + 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 DFA16 extends DFA { + + public DFA16(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 16; + 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 "923:2: (this_BasicType_0= ruleBasicType | this_RangeType_1= ruleRangeType | this_UnionType_2= ruleUnionType | this_RecordType_3= ruleRecordType | this_QueueType_4= ruleQueueType | this_ArrayType_5= ruleArrayType | this_ReferencedType_6= ruleReferencedType )"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA16_15 = input.LA(1); + + + int index16_15 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_InternalFiacre()) ) {s = 4;} + + else if ( (true) ) {s = 30;} + + + input.seek(index16_15); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 16, _s, input); + error(nvae); + throw nvae; + } + } + static final String dfa_13s = "\34\uffff"; + static final String dfa_14s = "\1\5\33\uffff"; + static final String dfa_15s = "\1\4\2\0\31\uffff"; + static final String dfa_16s = "\1\163\2\0\31\uffff"; + static final String dfa_17s = "\3\uffff\1\5\1\6\1\7\22\uffff\1\1\1\3\1\2\1\4"; + static final String dfa_18s = "\1\uffff\1\0\1\1\31\uffff}>"; + static final String[] dfa_19s = { + "\1\5\10\uffff\1\5\1\uffff\1\5\1\uffff\1\1\4\uffff\2\5\14\uffff\1\5\2\uffff\2\5\6\uffff\2\5\3\uffff\1\2\3\5\5\uffff\1\3\1\4\5\uffff\2\5\12\uffff\1\5\37\uffff\1\5\2\uffff\1\5", + "\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 DFA75 extends DFA { + + public DFA75(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 75; + 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 "4023:3: ( (otherlv_1= ',' () ( (lv_patterns_3_0= rulePattern ) ) (otherlv_4= ',' ( (lv_patterns_5_0= rulePattern ) ) )* otherlv_6= ':=' ( (lv_values_7_0= ruleExpression ) ) (otherlv_8= ',' ( (lv_values_9_0= ruleExpression ) ) )* ) | (otherlv_10= ':=' () ( ( (lv_values_12_0= ruleExpression ) ) (otherlv_13= ',' ( (lv_values_14_0= ruleExpression ) ) )* ) ) | (otherlv_15= ',' () ( (lv_patterns_17_0= rulePattern ) ) (otherlv_18= ',' ( (lv_patterns_19_0= rulePattern ) ) )* otherlv_20= ':=' otherlv_21= 'any' (otherlv_22= 'where' ( (lv_exp_23_0= ruleExpression ) ) )? ) | (otherlv_24= ':=' () otherlv_26= 'any' (otherlv_27= 'where' ( (lv_exp_28_0= ruleExpression ) ) )? ) | (otherlv_29= '!' () ( (lv_values_31_0= ruleExpression ) ) (otherlv_32= ',' ( (lv_values_33_0= ruleExpression ) ) )* ) | (otherlv_34= '?' () ( (lv_patterns_36_0= rulePattern ) ) (otherlv_37= ',' ( (lv_patterns_38_0= rulePattern ) ) )* (otherlv_39= 'where' ( (lv_exp_40_0= ruleExpression ) ) )? ) )?"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA75_1 = input.LA(1); + + + int index75_1 = input.index(); + input.rewind(); + s = -1; + if ( (synpred94_InternalFiacre()) ) {s = 24;} + + else if ( (synpred99_InternalFiacre()) ) {s = 25;} + + + input.seek(index75_1); + if ( s>=0 ) return s; + break; + case 1 : + int LA75_2 = input.LA(1); + + + int index75_2 = input.index(); + input.rewind(); + s = -1; + if ( (synpred96_InternalFiacre()) ) {s = 26;} + + else if ( (synpred101_InternalFiacre()) ) {s = 27;} + + + input.seek(index75_2); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 75, _s, input); + error(nvae); + throw nvae; + } + } + static final String dfa_20s = "\33\uffff"; + static final String dfa_21s = "\1\4\27\0\3\uffff"; + static final String dfa_22s = "\1\156\27\0\3\uffff"; + static final String dfa_23s = "\30\uffff\1\2\1\uffff\1\1"; + static final String dfa_24s = "\1\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\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\3\uffff}>"; + static final String[] dfa_25s = { + "\1\15\1\uffff\1\21\11\uffff\1\27\30\uffff\1\23\11\uffff\1\16\13\uffff\1\4\1\5\13\uffff\1\30\3\uffff\1\30\1\uffff\1\1\1\2\1\3\12\uffff\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\uffff\1\22\1\uffff\1\24\1\uffff\1\25\1\26\1\17\1\20", + "\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", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "" + }; + + static final short[] dfa_20 = DFA.unpackEncodedString(dfa_20s); + static final char[] dfa_21 = DFA.unpackEncodedStringToUnsignedChars(dfa_21s); + static final char[] dfa_22 = DFA.unpackEncodedStringToUnsignedChars(dfa_22s); + static final short[] dfa_23 = DFA.unpackEncodedString(dfa_23s); + static final short[] dfa_24 = DFA.unpackEncodedString(dfa_24s); + static final short[][] dfa_25 = unpackEncodedStringArray(dfa_25s); + + class DFA91 extends DFA { + + public DFA91(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 91; + this.eot = dfa_20; + this.eof = dfa_20; + this.min = dfa_21; + this.max = dfa_22; + this.accept = dfa_23; + this.special = dfa_24; + this.transition = dfa_25; + } + public String getDescription() { + return "5674:3: ( ( (lv_global_1_0= rulePortSet ) ) otherlv_2= 'in' )?"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA91_1 = input.LA(1); + + + int index91_1 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_1); + if ( s>=0 ) return s; + break; + case 1 : + int LA91_2 = input.LA(1); + + + int index91_2 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_2); + if ( s>=0 ) return s; + break; + case 2 : + int LA91_3 = input.LA(1); + + + int index91_3 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_3); + if ( s>=0 ) return s; + break; + case 3 : + int LA91_4 = input.LA(1); + + + int index91_4 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_4); + if ( s>=0 ) return s; + break; + case 4 : + int LA91_5 = input.LA(1); + + + int index91_5 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_5); + if ( s>=0 ) return s; + break; + case 5 : + int LA91_6 = input.LA(1); + + + int index91_6 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_6); + if ( s>=0 ) return s; + break; + case 6 : + int LA91_7 = input.LA(1); + + + int index91_7 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_7); + if ( s>=0 ) return s; + break; + case 7 : + int LA91_8 = input.LA(1); + + + int index91_8 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_8); + if ( s>=0 ) return s; + break; + case 8 : + int LA91_9 = input.LA(1); + + + int index91_9 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_9); + if ( s>=0 ) return s; + break; + case 9 : + int LA91_10 = input.LA(1); + + + int index91_10 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_10); + if ( s>=0 ) return s; + break; + case 10 : + int LA91_11 = input.LA(1); + + + int index91_11 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_11); + if ( s>=0 ) return s; + break; + case 11 : + int LA91_12 = input.LA(1); + + + int index91_12 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_12); + if ( s>=0 ) return s; + break; + case 12 : + int LA91_13 = input.LA(1); + + + int index91_13 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_13); + if ( s>=0 ) return s; + break; + case 13 : + int LA91_14 = input.LA(1); + + + int index91_14 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_14); + if ( s>=0 ) return s; + break; + case 14 : + int LA91_15 = input.LA(1); + + + int index91_15 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_15); + if ( s>=0 ) return s; + break; + case 15 : + int LA91_16 = input.LA(1); + + + int index91_16 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_16); + if ( s>=0 ) return s; + break; + case 16 : + int LA91_17 = input.LA(1); + + + int index91_17 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_17); + if ( s>=0 ) return s; + break; + case 17 : + int LA91_18 = input.LA(1); + + + int index91_18 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_18); + if ( s>=0 ) return s; + break; + case 18 : + int LA91_19 = input.LA(1); + + + int index91_19 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_19); + if ( s>=0 ) return s; + break; + case 19 : + int LA91_20 = input.LA(1); + + + int index91_20 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_20); + if ( s>=0 ) return s; + break; + case 20 : + int LA91_21 = input.LA(1); + + + int index91_21 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_21); + if ( s>=0 ) return s; + break; + case 21 : + int LA91_22 = input.LA(1); + + + int index91_22 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_22); + if ( s>=0 ) return s; + break; + case 22 : + int LA91_23 = input.LA(1); + + + int index91_23 = input.index(); + input.rewind(); + s = -1; + if ( (synpred126_InternalFiacre()) ) {s = 26;} + + else if ( (true) ) {s = 24;} + + + input.seek(index91_23); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 91, _s, input); + error(nvae); + throw nvae; + } + } + static final String dfa_26s = "\1\4\30\0\2\uffff"; + static final String dfa_27s = "\1\156\30\0\2\uffff"; + static final String dfa_28s = "\31\uffff\1\1\1\2"; + static final String dfa_29s = "\1\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\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\2\uffff}>"; + static final String[] dfa_30s = { + "\1\15\1\uffff\1\21\11\uffff\1\27\30\uffff\1\23\11\uffff\1\16\13\uffff\1\4\1\5\13\uffff\1\30\3\uffff\1\31\1\uffff\1\1\1\2\1\3\12\uffff\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\uffff\1\22\1\uffff\1\24\1\uffff\1\25\1\26\1\17\1\20", + "\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", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "" + }; + static final char[] dfa_26 = DFA.unpackEncodedStringToUnsignedChars(dfa_26s); + static final char[] dfa_27 = DFA.unpackEncodedStringToUnsignedChars(dfa_27s); + static final short[] dfa_28 = DFA.unpackEncodedString(dfa_28s); + static final short[] dfa_29 = DFA.unpackEncodedString(dfa_29s); + static final short[][] dfa_30 = unpackEncodedStringArray(dfa_30s); + + class DFA94 extends DFA { + + public DFA94(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 94; + this.eot = dfa_20; + this.eof = dfa_20; + this.min = dfa_26; + this.max = dfa_27; + this.accept = dfa_28; + this.special = dfa_29; + this.transition = dfa_30; + } + public String getDescription() { + return "5771:2: (this_CompositeBlock_0= ruleCompositeBlock | this_InstanceDeclaration_1= ruleInstanceDeclaration )"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA94_1 = input.LA(1); + + + int index94_1 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_1); + if ( s>=0 ) return s; + break; + case 1 : + int LA94_2 = input.LA(1); + + + int index94_2 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_2); + if ( s>=0 ) return s; + break; + case 2 : + int LA94_3 = input.LA(1); + + + int index94_3 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_3); + if ( s>=0 ) return s; + break; + case 3 : + int LA94_4 = input.LA(1); + + + int index94_4 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_4); + if ( s>=0 ) return s; + break; + case 4 : + int LA94_5 = input.LA(1); + + + int index94_5 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_5); + if ( s>=0 ) return s; + break; + case 5 : + int LA94_6 = input.LA(1); + + + int index94_6 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_6); + if ( s>=0 ) return s; + break; + case 6 : + int LA94_7 = input.LA(1); + + + int index94_7 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_7); + if ( s>=0 ) return s; + break; + case 7 : + int LA94_8 = input.LA(1); + + + int index94_8 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_8); + if ( s>=0 ) return s; + break; + case 8 : + int LA94_9 = input.LA(1); + + + int index94_9 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_9); + if ( s>=0 ) return s; + break; + case 9 : + int LA94_10 = input.LA(1); + + + int index94_10 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_10); + if ( s>=0 ) return s; + break; + case 10 : + int LA94_11 = input.LA(1); + + + int index94_11 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_11); + if ( s>=0 ) return s; + break; + case 11 : + int LA94_12 = input.LA(1); + + + int index94_12 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_12); + if ( s>=0 ) return s; + break; + case 12 : + int LA94_13 = input.LA(1); + + + int index94_13 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_13); + if ( s>=0 ) return s; + break; + case 13 : + int LA94_14 = input.LA(1); + + + int index94_14 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_14); + if ( s>=0 ) return s; + break; + case 14 : + int LA94_15 = input.LA(1); + + + int index94_15 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_15); + if ( s>=0 ) return s; + break; + case 15 : + int LA94_16 = input.LA(1); + + + int index94_16 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_16); + if ( s>=0 ) return s; + break; + case 16 : + int LA94_17 = input.LA(1); + + + int index94_17 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_17); + if ( s>=0 ) return s; + break; + case 17 : + int LA94_18 = input.LA(1); + + + int index94_18 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_18); + if ( s>=0 ) return s; + break; + case 18 : + int LA94_19 = input.LA(1); + + + int index94_19 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_19); + if ( s>=0 ) return s; + break; + case 19 : + int LA94_20 = input.LA(1); + + + int index94_20 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_20); + if ( s>=0 ) return s; + break; + case 20 : + int LA94_21 = input.LA(1); + + + int index94_21 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_21); + if ( s>=0 ) return s; + break; + case 21 : + int LA94_22 = input.LA(1); + + + int index94_22 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_22); + if ( s>=0 ) return s; + break; + case 22 : + int LA94_23 = input.LA(1); + + + int index94_23 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_23); + if ( s>=0 ) return s; + break; + case 23 : + int LA94_24 = input.LA(1); + + + int index94_24 = input.index(); + input.rewind(); + s = -1; + if ( (synpred129_InternalFiacre()) ) {s = 25;} + + else if ( (true) ) {s = 26;} + + + input.seek(index94_24); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 94, _s, input); + error(nvae); + throw nvae; + } + } + static final String dfa_31s = "\32\uffff"; + static final String dfa_32s = "\1\4\14\uffff\1\0\14\uffff"; + static final String dfa_33s = "\1\156\14\uffff\1\0\14\uffff"; + static final String dfa_34s = "\1\uffff\1\1\26\uffff\1\2\1\3"; + static final String dfa_35s = "\15\uffff\1\0\14\uffff}>"; + static final String[] dfa_36s = { + "\1\15\1\uffff\1\1\11\uffff\1\1\30\uffff\1\1\11\uffff\1\1\13\uffff\2\1\13\uffff\1\30\5\uffff\3\1\12\uffff\7\1\1\uffff\1\1\1\uffff\1\1\1\uffff\4\1", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s); + static final char[] dfa_32 = DFA.unpackEncodedStringToUnsignedChars(dfa_32s); + static final char[] dfa_33 = DFA.unpackEncodedStringToUnsignedChars(dfa_33s); + static final short[] dfa_34 = DFA.unpackEncodedString(dfa_34s); + static final short[] dfa_35 = DFA.unpackEncodedString(dfa_35s); + static final short[][] dfa_36 = unpackEncodedStringArray(dfa_36s); + + class DFA96 extends DFA { + + public DFA96(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 96; + this.eot = dfa_31; + this.eof = dfa_31; + this.min = dfa_32; + this.max = dfa_33; + this.accept = dfa_34; + this.special = dfa_35; + this.transition = dfa_36; + } + public String getDescription() { + return "5884:3: ( ( ( (lv_local_0_0= rulePortSet ) ) otherlv_1= '->' ) | otherlv_2= '->' )?"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA96_13 = input.LA(1); + + + int index96_13 = input.index(); + input.rewind(); + s = -1; + if ( (synpred132_InternalFiacre()) ) {s = 1;} + + else if ( (true) ) {s = 25;} + + + input.seek(index96_13); + 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_37s = "\16\uffff"; + static final String dfa_38s = "\1\4\7\uffff\1\0\5\uffff"; + static final String dfa_39s = "\1\u0087\7\uffff\1\0\5\uffff"; + static final String dfa_40s = "\1\uffff\1\1\13\uffff\1\2"; + static final String dfa_41s = "\10\uffff\1\0\5\uffff}>"; + static final String[] dfa_42s = { + "\1\1\1\uffff\1\1\11\uffff\1\10\143\uffff\5\1\6\uffff\1\1\1\uffff\1\1\4\uffff\2\1", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "" + }; + + static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s); + static final char[] dfa_38 = DFA.unpackEncodedStringToUnsignedChars(dfa_38s); + static final char[] dfa_39 = DFA.unpackEncodedStringToUnsignedChars(dfa_39s); + static final short[] dfa_40 = DFA.unpackEncodedString(dfa_40s); + static final short[] dfa_41 = DFA.unpackEncodedString(dfa_41s); + static final short[][] dfa_42 = unpackEncodedStringArray(dfa_42s); + + class DFA149 extends DFA { + + public DFA149(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 149; + this.eot = dfa_37; + this.eof = dfa_37; + this.min = dfa_38; + this.max = dfa_39; + this.accept = dfa_40; + this.special = dfa_41; + this.transition = dfa_42; + } + public String getDescription() { + return "9470:2: (this_PatternProperty_0= rulePatternProperty | (otherlv_1= '(' this_Property_2= ruleProperty otherlv_3= ')' ) )"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA149_8 = input.LA(1); + + + int index149_8 = input.index(); + input.rewind(); + s = -1; + if ( (synpred208_InternalFiacre()) ) {s = 1;} + + else if ( (true) ) {s = 13;} + + + input.seek(index149_8); + 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; + } + } + + + + private static class FollowSets000 { + 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[]{0x0001018000C0C012L,0x0009000000000000L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0001018000C08012L,0x0009000000000000L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000001002L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000002002L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0008000000040010L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000060000L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0008000000000010L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x8008026B81010050L,0x00007ABF80180001L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x8F00000040210050L,0x000060000000EEC5L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x8F00000040230050L,0x000060000000EEC5L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x8008026BBD010050L,0x00007ABF80180001L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x8008020000010050L,0x00007ABF80180001L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x8008026B99010050L,0x00007ABF80180001L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x8008026B91010050L,0x00007ABF80180001L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000040000002L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000001000002000L}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000800000002L}); + public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000002020002L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000001000020000L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000002000000002L}); + public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x00000000000A0000L}); + public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000020000110000L}); + public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000040000020000L}); + public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000110000L}); + public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000380000000000L}); + public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000300000020000L}); + public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000200000020000L}); + public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000C00000220000L}); + public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000C00000220002L}); + public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000580000200000L,0x0000000000010000L}); + public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000580000220000L,0x0000000000010000L}); + public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000004000002L}); + public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000060000000000L}); + public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x00000000000000D0L,0x0000800000000000L}); + public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x800E026B81010050L,0x00007ABF80180001L}); + public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x800C026B81010050L,0x00007ABF80180001L}); + public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000020000000010L}); + public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0010000000000002L}); + public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0020000000000002L}); + public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0040000000000002L}); + public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0080000000000002L}); + public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x6010000000020002L}); + public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x8800000000010050L,0x0000600000000001L}); + public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0010000000020000L}); + public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000020002L}); + public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0800000000000000L}); + public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x1000000000000002L}); + public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x1000000000020002L}); + public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x8800000000050050L,0x0000600000000001L}); + public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000020000000002L,0x0000000000000002L}); + public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000001000000000L,0x0000000000000030L}); + public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L}); + public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L}); + public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L}); + public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L}); + public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L}); + public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L}); + public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L}); + public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x80085A0000210050L,0x00007ABF801D1001L}); + public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000001000000000L,0x0000000000020000L}); + public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000000000002L,0x0000000000010000L}); + public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000020000010002L}); + public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000000010002L}); + public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000002L}); + public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L}); + public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x4000000000000002L}); + public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L}); + public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L}); + public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L}); + public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000000001002L,0x000000001F000000L}); + public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x8000000000000002L}); + public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L}); + public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L}); + public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000000L}); + public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L}); + public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L}); + public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x8008020000050050L,0x00007ABF80180001L}); + public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000020000L,0x0000010000000000L}); + public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); + public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x8008060000010050L,0x00007ABF80180001L}); + public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x8008020000010050L,0x00007EBF80180001L}); + public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000020000L,0x0000040000000000L}); + public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000002L,0x0006000000000000L}); + public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000000002L,0x0004000000000000L}); + public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000010050L,0x81F0000080180000L,0x00000000000000C2L}); + public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0040000000010050L,0x81F0000082000000L,0x00000000000000E2L}); + public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000010050L,0x81F0000000000000L,0x00000000000000C2L}); + public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000002L,0x6600000000000000L}); + public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000002L,0x1800000000000000L}); + public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000002L,0x0800000000000000L}); + public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L}); + public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000000000002L,0x6400000000000000L}); + public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000001L}); + public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000000002L,0x1000000000000000L}); + public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000000000000CL}); + public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000000000000002L,0x6C00000000000000L}); + public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0040000000010050L,0x81F0000082180000L,0x00000000000000E2L}); + public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000000002L,0x1000000000000000L,0x0000000000000010L}); + public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0000000000010050L,0x81F0000080000000L,0x00000000000000C2L}); + public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000F00L}); + public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L}); + public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0000000000000052L}); + } + + +} \ No newline at end of file diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/scoping/AbstractFiacreScopeProvider.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/scoping/AbstractFiacreScopeProvider.java new file mode 100644 index 0000000..0b0a495 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/scoping/AbstractFiacreScopeProvider.java @@ -0,0 +1,19 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.scoping; + +import org.eclipse.xtext.scoping.impl.DelegatingScopeProvider; + +public abstract class AbstractFiacreScopeProvider extends DelegatingScopeProvider { +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/serializer/FiacreSemanticSequencer.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/serializer/FiacreSemanticSequencer.java new file mode 100644 index 0000000..6c7555c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/serializer/FiacreSemanticSequencer.java @@ -0,0 +1,5387 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.serializer; + +import com.google.inject.Inject; +import fr.irit.fiacre.xtext.fiacre.AbsencePattern; +import fr.irit.fiacre.xtext.fiacre.Addition; +import fr.irit.fiacre.xtext.fiacre.AllExpression; +import fr.irit.fiacre.xtext.fiacre.AllProperty; +import fr.irit.fiacre.xtext.fiacre.AlwaysPattern; +import fr.irit.fiacre.xtext.fiacre.AnyPattern; +import fr.irit.fiacre.xtext.fiacre.AppendExpression; +import fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression; +import fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern; +import fr.irit.fiacre.xtext.fiacre.ArrayExpression; +import fr.irit.fiacre.xtext.fiacre.ArrayType; +import fr.irit.fiacre.xtext.fiacre.AssignAnyStatement; +import fr.irit.fiacre.xtext.fiacre.AssignStatement; +import fr.irit.fiacre.xtext.fiacre.BlockStatement; +import fr.irit.fiacre.xtext.fiacre.BooleanType; +import fr.irit.fiacre.xtext.fiacre.CaseStatement; +import fr.irit.fiacre.xtext.fiacre.ChannelDeclaration; +import fr.irit.fiacre.xtext.fiacre.ChannelType; +import fr.irit.fiacre.xtext.fiacre.ComparisonEqual; +import fr.irit.fiacre.xtext.fiacre.ComparisonGreater; +import fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual; +import fr.irit.fiacre.xtext.fiacre.ComparisonLesser; +import fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual; +import fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual; +import fr.irit.fiacre.xtext.fiacre.ComponentDeclaration; +import fr.irit.fiacre.xtext.fiacre.ComponentInstance; +import fr.irit.fiacre.xtext.fiacre.CompositeBlock; +import fr.irit.fiacre.xtext.fiacre.Composition; +import fr.irit.fiacre.xtext.fiacre.Conditional; +import fr.irit.fiacre.xtext.fiacre.ConditionalStatement; +import fr.irit.fiacre.xtext.fiacre.Conjunction; +import fr.irit.fiacre.xtext.fiacre.ConstantDeclaration; +import fr.irit.fiacre.xtext.fiacre.ConstantPattern; +import fr.irit.fiacre.xtext.fiacre.ConstructionExpression; +import fr.irit.fiacre.xtext.fiacre.ConstructorPattern; +import fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern; +import fr.irit.fiacre.xtext.fiacre.DecimalLowerBound; +import fr.irit.fiacre.xtext.fiacre.DecimalUpperBound; +import fr.irit.fiacre.xtext.fiacre.Disjunction; +import fr.irit.fiacre.xtext.fiacre.Division; +import fr.irit.fiacre.xtext.fiacre.EnqueueExpression; +import fr.irit.fiacre.xtext.fiacre.EnterStateEvent; +import fr.irit.fiacre.xtext.fiacre.EventSubject; +import fr.irit.fiacre.xtext.fiacre.ExistsExpression; +import fr.irit.fiacre.xtext.fiacre.ExistsProperty; +import fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement; +import fr.irit.fiacre.xtext.fiacre.FalseLiteral; +import fr.irit.fiacre.xtext.fiacre.FiacrePackage; +import fr.irit.fiacre.xtext.fiacre.FieldExpression; +import fr.irit.fiacre.xtext.fiacre.ForeachStatement; +import fr.irit.fiacre.xtext.fiacre.FunctionDeclaration; +import fr.irit.fiacre.xtext.fiacre.IdentifierExpression; +import fr.irit.fiacre.xtext.fiacre.IdentifierPattern; +import fr.irit.fiacre.xtext.fiacre.Implication; +import fr.irit.fiacre.xtext.fiacre.ImportDeclaration; +import fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound; +import fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern; +import fr.irit.fiacre.xtext.fiacre.InstanceDeclaration; +import fr.irit.fiacre.xtext.fiacre.IntegerPattern; +import fr.irit.fiacre.xtext.fiacre.IntegerType; +import fr.irit.fiacre.xtext.fiacre.LTLAll; +import fr.irit.fiacre.xtext.fiacre.LTLConjunction; +import fr.irit.fiacre.xtext.fiacre.LTLDisjunction; +import fr.irit.fiacre.xtext.fiacre.LTLExists; +import fr.irit.fiacre.xtext.fiacre.LTLImplication; +import fr.irit.fiacre.xtext.fiacre.LTLPattern; +import fr.irit.fiacre.xtext.fiacre.LTLRelease; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation; +import fr.irit.fiacre.xtext.fiacre.LTLUnaryNext; +import fr.irit.fiacre.xtext.fiacre.LTLUntil; +import fr.irit.fiacre.xtext.fiacre.LTLVariable; +import fr.irit.fiacre.xtext.fiacre.LeadsToPattern; +import fr.irit.fiacre.xtext.fiacre.LeaveStateEvent; +import fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration; +import fr.irit.fiacre.xtext.fiacre.LoopStatement; +import fr.irit.fiacre.xtext.fiacre.Model; +import fr.irit.fiacre.xtext.fiacre.Modulo; +import fr.irit.fiacre.xtext.fiacre.MortalPattern; +import fr.irit.fiacre.xtext.fiacre.Multiplication; +import fr.irit.fiacre.xtext.fiacre.NamedItem; +import fr.irit.fiacre.xtext.fiacre.NaturalItem; +import fr.irit.fiacre.xtext.fiacre.NaturalLiteral; +import fr.irit.fiacre.xtext.fiacre.NaturalLowerBound; +import fr.irit.fiacre.xtext.fiacre.NaturalType; +import fr.irit.fiacre.xtext.fiacre.NaturalUpperBound; +import fr.irit.fiacre.xtext.fiacre.NullStatement; +import fr.irit.fiacre.xtext.fiacre.ObservableConjunction; +import fr.irit.fiacre.xtext.fiacre.ObservableDisjunction; +import fr.irit.fiacre.xtext.fiacre.ObservableImplication; +import fr.irit.fiacre.xtext.fiacre.ObservableNegation; +import fr.irit.fiacre.xtext.fiacre.OnStatement; +import fr.irit.fiacre.xtext.fiacre.ParameterDeclaration; +import fr.irit.fiacre.xtext.fiacre.ParametersDeclaration; +import fr.irit.fiacre.xtext.fiacre.Path; +import fr.irit.fiacre.xtext.fiacre.PathEvent; +import fr.irit.fiacre.xtext.fiacre.PortDeclaration; +import fr.irit.fiacre.xtext.fiacre.PortSet; +import fr.irit.fiacre.xtext.fiacre.PortsDeclaration; +import fr.irit.fiacre.xtext.fiacre.PrecedesPattern; +import fr.irit.fiacre.xtext.fiacre.PresencePattern; +import fr.irit.fiacre.xtext.fiacre.PriorityDeclaration; +import fr.irit.fiacre.xtext.fiacre.PriorityGroup; +import fr.irit.fiacre.xtext.fiacre.ProcessDeclaration; +import fr.irit.fiacre.xtext.fiacre.Projection; +import fr.irit.fiacre.xtext.fiacre.PropertyConjunction; +import fr.irit.fiacre.xtext.fiacre.PropertyDeclaration; +import fr.irit.fiacre.xtext.fiacre.PropertyDisjunction; +import fr.irit.fiacre.xtext.fiacre.PropertyImplication; +import fr.irit.fiacre.xtext.fiacre.PropertyNegation; +import fr.irit.fiacre.xtext.fiacre.QueueExpression; +import fr.irit.fiacre.xtext.fiacre.QueueType; +import fr.irit.fiacre.xtext.fiacre.RangeType; +import fr.irit.fiacre.xtext.fiacre.ReceiveStatement; +import fr.irit.fiacre.xtext.fiacre.RecordAccessExpression; +import fr.irit.fiacre.xtext.fiacre.RecordAccessPattern; +import fr.irit.fiacre.xtext.fiacre.RecordExpression; +import fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration; +import fr.irit.fiacre.xtext.fiacre.RecordFields; +import fr.irit.fiacre.xtext.fiacre.RecordType; +import fr.irit.fiacre.xtext.fiacre.ReferenceExpression; +import fr.irit.fiacre.xtext.fiacre.ReferencedType; +import fr.irit.fiacre.xtext.fiacre.Requirement; +import fr.irit.fiacre.xtext.fiacre.ReturnStatement; +import fr.irit.fiacre.xtext.fiacre.Root; +import fr.irit.fiacre.xtext.fiacre.SelectStatement; +import fr.irit.fiacre.xtext.fiacre.SendStatement; +import fr.irit.fiacre.xtext.fiacre.StateDeclaration; +import fr.irit.fiacre.xtext.fiacre.StateSubject; +import fr.irit.fiacre.xtext.fiacre.StatementChoice; +import fr.irit.fiacre.xtext.fiacre.StatementSequence; +import fr.irit.fiacre.xtext.fiacre.Substraction; +import fr.irit.fiacre.xtext.fiacre.TagSubject; +import fr.irit.fiacre.xtext.fiacre.TaggedStatement; +import fr.irit.fiacre.xtext.fiacre.ToStatement; +import fr.irit.fiacre.xtext.fiacre.Transition; +import fr.irit.fiacre.xtext.fiacre.TransitionSource; +import fr.irit.fiacre.xtext.fiacre.TrueLiteral; +import fr.irit.fiacre.xtext.fiacre.TupleType; +import fr.irit.fiacre.xtext.fiacre.TypeDeclaration; +import fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression; +import fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression; +import fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression; +import fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression; +import fr.irit.fiacre.xtext.fiacre.UnaryFullExpression; +import fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression; +import fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression; +import fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression; +import fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression; +import fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration; +import fr.irit.fiacre.xtext.fiacre.UnionTags; +import fr.irit.fiacre.xtext.fiacre.UnionType; +import fr.irit.fiacre.xtext.fiacre.UnlessStatement; +import fr.irit.fiacre.xtext.fiacre.ValueSubject; +import fr.irit.fiacre.xtext.fiacre.VariableDeclaration; +import fr.irit.fiacre.xtext.fiacre.VariableLowerBound; +import fr.irit.fiacre.xtext.fiacre.VariableUpperBound; +import fr.irit.fiacre.xtext.fiacre.VariablesDeclaration; +import fr.irit.fiacre.xtext.fiacre.WaitStatement; +import fr.irit.fiacre.xtext.fiacre.WhileStatement; +import fr.irit.fiacre.xtext.services.FiacreGrammarAccess; +import java.util.Set; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.Action; +import org.eclipse.xtext.Parameter; +import org.eclipse.xtext.ParserRule; +import org.eclipse.xtext.serializer.ISerializationContext; +import org.eclipse.xtext.serializer.acceptor.SequenceFeeder; +import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer; +import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient; + +@SuppressWarnings("all") +public class FiacreSemanticSequencer extends AbstractDelegatingSemanticSequencer { + + @Inject + private FiacreGrammarAccess grammarAccess; + + @Override + public void sequence(ISerializationContext context, EObject semanticObject) { + EPackage epackage = semanticObject.eClass().getEPackage(); + ParserRule rule = context.getParserRule(); + Action action = context.getAssignedAction(); + Set parameters = context.getEnabledBooleanParameters(); + if (epackage == FiacrePackage.eINSTANCE) + switch (semanticObject.eClass().getClassifierID()) { + case FiacrePackage.ABSENCE_PATTERN: + sequence_AbsencePattern(context, (AbsencePattern) semanticObject); + return; + case FiacrePackage.ADDITION: + sequence_Addition(context, (Addition) semanticObject); + return; + case FiacrePackage.ALL_EXPRESSION: + sequence_QuantifiedExpression(context, (AllExpression) semanticObject); + return; + case FiacrePackage.ALL_PROPERTY: + sequence_QuantifiedProperty(context, (AllProperty) semanticObject); + return; + case FiacrePackage.ALWAYS_PATTERN: + sequence_AlwaysPattern(context, (AlwaysPattern) semanticObject); + return; + case FiacrePackage.ANY_PATTERN: + sequence_AnyPattern(context, (AnyPattern) semanticObject); + return; + case FiacrePackage.APPEND_EXPRESSION: + sequence_AppendExpression(context, (AppendExpression) semanticObject); + return; + case FiacrePackage.ARRAY_ACCESS_EXPRESSION: + sequence_IdentifierExpression(context, (ArrayAccessExpression) semanticObject); + return; + case FiacrePackage.ARRAY_ACCESS_PATTERN: + sequence_IdentifierPattern(context, (ArrayAccessPattern) semanticObject); + return; + case FiacrePackage.ARRAY_EXPRESSION: + sequence_ArrayExpression(context, (ArrayExpression) semanticObject); + return; + case FiacrePackage.ARRAY_TYPE: + sequence_ArrayType(context, (ArrayType) semanticObject); + return; + case FiacrePackage.ASSIGN_ANY_STATEMENT: + sequence_PatternStatement(context, (AssignAnyStatement) semanticObject); + return; + case FiacrePackage.ASSIGN_STATEMENT: + sequence_PatternStatement(context, (AssignStatement) semanticObject); + return; + case FiacrePackage.BLOCK_STATEMENT: + sequence_BlockStatement(context, (BlockStatement) semanticObject); + return; + case FiacrePackage.BOOLEAN_TYPE: + sequence_BasicType(context, (BooleanType) semanticObject); + return; + case FiacrePackage.CASE_STATEMENT: + sequence_CaseStatement(context, (CaseStatement) semanticObject); + return; + case FiacrePackage.CHANNEL_DECLARATION: + sequence_ChannelDeclaration(context, (ChannelDeclaration) semanticObject); + return; + case FiacrePackage.CHANNEL_TYPE: + sequence_ChannelType(context, (ChannelType) semanticObject); + return; + case FiacrePackage.COMPARISON_EQUAL: + sequence_Comparison(context, (ComparisonEqual) semanticObject); + return; + case FiacrePackage.COMPARISON_GREATER: + sequence_Comparison(context, (ComparisonGreater) semanticObject); + return; + case FiacrePackage.COMPARISON_GREATER_EQUAL: + sequence_Comparison(context, (ComparisonGreaterEqual) semanticObject); + return; + case FiacrePackage.COMPARISON_LESSER: + sequence_Comparison(context, (ComparisonLesser) semanticObject); + return; + case FiacrePackage.COMPARISON_LESSER_EQUAL: + sequence_Comparison(context, (ComparisonLesserEqual) semanticObject); + return; + case FiacrePackage.COMPARISON_NOT_EQUAL: + sequence_Comparison(context, (ComparisonNotEqual) semanticObject); + return; + case FiacrePackage.COMPONENT_DECLARATION: + sequence_ComponentDeclaration(context, (ComponentDeclaration) semanticObject); + return; + case FiacrePackage.COMPONENT_INSTANCE: + sequence_ComponentInstance(context, (ComponentInstance) semanticObject); + return; + case FiacrePackage.COMPOSITE_BLOCK: + sequence_CompositeBlock(context, (CompositeBlock) semanticObject); + return; + case FiacrePackage.COMPOSITION: + sequence_Composition(context, (Composition) semanticObject); + return; + case FiacrePackage.CONDITIONAL: + sequence_Conditional(context, (Conditional) semanticObject); + return; + case FiacrePackage.CONDITIONAL_STATEMENT: + sequence_ConditionalStatement(context, (ConditionalStatement) semanticObject); + return; + case FiacrePackage.CONJUNCTION: + sequence_Conjunction(context, (Conjunction) semanticObject); + return; + case FiacrePackage.CONSTANT_DECLARATION: + sequence_ConstantDeclaration(context, (ConstantDeclaration) semanticObject); + return; + case FiacrePackage.CONSTANT_PATTERN: + sequence_ConstantPattern(context, (ConstantPattern) semanticObject); + return; + case FiacrePackage.CONSTRUCTION_EXPRESSION: + sequence_IdentifierExpression(context, (ConstructionExpression) semanticObject); + return; + case FiacrePackage.CONSTRUCTOR_PATTERN: + sequence_IdentifierPattern(context, (ConstructorPattern) semanticObject); + return; + case FiacrePackage.DEADLOCK_FREE_PATTERN: + sequence_DeadlockFreePattern(context, (DeadlockFreePattern) semanticObject); + return; + case FiacrePackage.DECIMAL_LOWER_BOUND: + sequence_DecimalLowerBound(context, (DecimalLowerBound) semanticObject); + return; + case FiacrePackage.DECIMAL_UPPER_BOUND: + sequence_DecimalUpperBound(context, (DecimalUpperBound) semanticObject); + return; + case FiacrePackage.DISJUNCTION: + sequence_Disjunction(context, (Disjunction) semanticObject); + return; + case FiacrePackage.DIVISION: + sequence_Division(context, (Division) semanticObject); + return; + case FiacrePackage.ENQUEUE_EXPRESSION: + sequence_EnqueueExpression(context, (EnqueueExpression) semanticObject); + return; + case FiacrePackage.ENTER_STATE_EVENT: + sequence_EnterStateEvent(context, (EnterStateEvent) semanticObject); + return; + case FiacrePackage.EVENT_SUBJECT: + sequence_EventSubject(context, (EventSubject) semanticObject); + return; + case FiacrePackage.EXISTS_EXPRESSION: + sequence_QuantifiedExpression(context, (ExistsExpression) semanticObject); + return; + case FiacrePackage.EXISTS_PROPERTY: + sequence_QuantifiedProperty(context, (ExistsProperty) semanticObject); + return; + case FiacrePackage.EXTENDED_CONDITIONAL_STATEMENT: + sequence_ExtendedConditionalStatement(context, (ExtendedConditionalStatement) semanticObject); + return; + case FiacrePackage.FALSE_LITERAL: + sequence_BooleanLiteral(context, (FalseLiteral) semanticObject); + return; + case FiacrePackage.FIELD_EXPRESSION: + sequence_FieldExpression(context, (FieldExpression) semanticObject); + return; + case FiacrePackage.FOREACH_STATEMENT: + sequence_ForeachStatement(context, (ForeachStatement) semanticObject); + return; + case FiacrePackage.FUNCTION_DECLARATION: + sequence_FunctionDeclaration(context, (FunctionDeclaration) semanticObject); + return; + case FiacrePackage.IDENTIFIER_EXPRESSION: + sequence_IdentifierExpression(context, (IdentifierExpression) semanticObject); + return; + case FiacrePackage.IDENTIFIER_PATTERN: + sequence_IdentifierPattern(context, (IdentifierPattern) semanticObject); + return; + case FiacrePackage.IMPLICATION: + sequence_Implication(context, (Implication) semanticObject); + return; + case FiacrePackage.IMPORT_DECLARATION: + sequence_ImportDeclaration(context, (ImportDeclaration) semanticObject); + return; + case FiacrePackage.INFINITE_UPPER_BOUND: + sequence_InfiniteUpperBound(context, (InfiniteUpperBound) semanticObject); + return; + case FiacrePackage.INFINITELY_OFTEN_PATTERN: + sequence_InfinitelyOftenPattern(context, (InfinitelyOftenPattern) semanticObject); + return; + case FiacrePackage.INSTANCE_DECLARATION: + sequence_InstanceDeclaration(context, (InstanceDeclaration) semanticObject); + return; + case FiacrePackage.INTEGER_PATTERN: + sequence_IntegerPattern(context, (IntegerPattern) semanticObject); + return; + case FiacrePackage.INTEGER_TYPE: + sequence_BasicType(context, (IntegerType) semanticObject); + return; + case FiacrePackage.LTL_ALL: + sequence_LTLQuantified(context, (LTLAll) semanticObject); + return; + case FiacrePackage.LTL_CONJUNCTION: + sequence_LTLConjunction(context, (LTLConjunction) semanticObject); + return; + case FiacrePackage.LTL_DISJUNCTION: + sequence_LTLDisjunction(context, (LTLDisjunction) semanticObject); + return; + case FiacrePackage.LTL_EXISTS: + sequence_LTLQuantified(context, (LTLExists) semanticObject); + return; + case FiacrePackage.LTL_IMPLICATION: + sequence_LTLImplication(context, (LTLImplication) semanticObject); + return; + case FiacrePackage.LTL_PATTERN: + sequence_LTLPattern(context, (LTLPattern) semanticObject); + return; + case FiacrePackage.LTL_RELEASE: + sequence_LTLBinary(context, (LTLRelease) semanticObject); + return; + case FiacrePackage.LTL_UNARY_ALWAYS: + sequence_LTLUnary(context, (LTLUnaryAlways) semanticObject); + return; + case FiacrePackage.LTL_UNARY_EVENTUALLY: + sequence_LTLUnary(context, (LTLUnaryEventually) semanticObject); + return; + case FiacrePackage.LTL_UNARY_NEGATION: + sequence_LTLUnary(context, (LTLUnaryNegation) semanticObject); + return; + case FiacrePackage.LTL_UNARY_NEXT: + sequence_LTLUnary(context, (LTLUnaryNext) semanticObject); + return; + case FiacrePackage.LTL_UNTIL: + sequence_LTLBinary(context, (LTLUntil) semanticObject); + return; + case FiacrePackage.LTL_VARIABLE: + sequence_AtomicLTL(context, (LTLVariable) semanticObject); + return; + case FiacrePackage.LEADS_TO_PATTERN: + sequence_SequencePattern(context, (LeadsToPattern) semanticObject); + return; + case FiacrePackage.LEAVE_STATE_EVENT: + sequence_LeaveStateEvent(context, (LeaveStateEvent) semanticObject); + return; + case FiacrePackage.LOCAL_PORTS_DECLARATION: + sequence_LocalPortsDeclaration(context, (LocalPortsDeclaration) semanticObject); + return; + case FiacrePackage.LOOP_STATEMENT: + sequence_LoopStatement(context, (LoopStatement) semanticObject); + return; + case FiacrePackage.MODEL: + sequence_Model(context, (Model) semanticObject); + return; + case FiacrePackage.MODULO: + sequence_Modulo(context, (Modulo) semanticObject); + return; + case FiacrePackage.MORTAL_PATTERN: + sequence_MortalPattern(context, (MortalPattern) semanticObject); + return; + case FiacrePackage.MULTIPLICATION: + sequence_Multiplication(context, (Multiplication) semanticObject); + return; + case FiacrePackage.NAMED_ITEM: + sequence_NamedItem(context, (NamedItem) semanticObject); + return; + case FiacrePackage.NATURAL_ITEM: + sequence_NaturalItem(context, (NaturalItem) semanticObject); + return; + case FiacrePackage.NATURAL_LITERAL: + sequence_NaturalLiteral(context, (NaturalLiteral) semanticObject); + return; + case FiacrePackage.NATURAL_LOWER_BOUND: + sequence_NaturalLowerBound(context, (NaturalLowerBound) semanticObject); + return; + case FiacrePackage.NATURAL_TYPE: + sequence_BasicType(context, (NaturalType) semanticObject); + return; + case FiacrePackage.NATURAL_UPPER_BOUND: + sequence_NaturalUpperBound(context, (NaturalUpperBound) semanticObject); + return; + case FiacrePackage.NULL_STATEMENT: + sequence_NullStatement(context, (NullStatement) semanticObject); + return; + case FiacrePackage.OBSERVABLE_CONJUNCTION: + sequence_ObservableConjunction(context, (ObservableConjunction) semanticObject); + return; + case FiacrePackage.OBSERVABLE_DISJUNCTION: + sequence_ObservableDisjunction(context, (ObservableDisjunction) semanticObject); + return; + case FiacrePackage.OBSERVABLE_IMPLICATION: + sequence_ObservableImplication(context, (ObservableImplication) semanticObject); + return; + case FiacrePackage.OBSERVABLE_NEGATION: + sequence_ObservableNegation(context, (ObservableNegation) semanticObject); + return; + case FiacrePackage.ON_STATEMENT: + sequence_OnStatement(context, (OnStatement) semanticObject); + return; + case FiacrePackage.PARAMETER_DECLARATION: + sequence_ParameterDeclaration(context, (ParameterDeclaration) semanticObject); + return; + case FiacrePackage.PARAMETERS_DECLARATION: + sequence_ParametersDeclaration(context, (ParametersDeclaration) semanticObject); + return; + case FiacrePackage.PATH: + sequence_Path(context, (Path) semanticObject); + return; + case FiacrePackage.PATH_EVENT: + sequence_PathEvent(context, (PathEvent) semanticObject); + return; + case FiacrePackage.PORT_DECLARATION: + sequence_PortDeclaration(context, (PortDeclaration) semanticObject); + return; + case FiacrePackage.PORT_SET: + sequence_PortSet(context, (PortSet) semanticObject); + return; + case FiacrePackage.PORTS_DECLARATION: + sequence_PortsDeclaration(context, (PortsDeclaration) semanticObject); + return; + case FiacrePackage.PRECEDES_PATTERN: + sequence_SequencePattern(context, (PrecedesPattern) semanticObject); + return; + case FiacrePackage.PRESENCE_PATTERN: + sequence_PresencePattern(context, (PresencePattern) semanticObject); + return; + case FiacrePackage.PRIORITY_DECLARATION: + sequence_PriorityDeclaration(context, (PriorityDeclaration) semanticObject); + return; + case FiacrePackage.PRIORITY_GROUP: + sequence_PriorityGroup(context, (PriorityGroup) semanticObject); + return; + case FiacrePackage.PROCESS_DECLARATION: + sequence_ProcessDeclaration(context, (ProcessDeclaration) semanticObject); + return; + case FiacrePackage.PROJECTION: + sequence_Projection(context, (Projection) semanticObject); + return; + case FiacrePackage.PROPERTY_CONJUNCTION: + sequence_PropertyConjunction(context, (PropertyConjunction) semanticObject); + return; + case FiacrePackage.PROPERTY_DECLARATION: + sequence_PropertyDeclaration(context, (PropertyDeclaration) semanticObject); + return; + case FiacrePackage.PROPERTY_DISJUNCTION: + sequence_PropertyDisjunction(context, (PropertyDisjunction) semanticObject); + return; + case FiacrePackage.PROPERTY_IMPLICATION: + sequence_PropertyImplication(context, (PropertyImplication) semanticObject); + return; + case FiacrePackage.PROPERTY_NEGATION: + sequence_PropertyNegation(context, (PropertyNegation) semanticObject); + return; + case FiacrePackage.QUEUE_EXPRESSION: + sequence_QueueExpression(context, (QueueExpression) semanticObject); + return; + case FiacrePackage.QUEUE_TYPE: + sequence_QueueType(context, (QueueType) semanticObject); + return; + case FiacrePackage.RANGE_TYPE: + sequence_RangeType(context, (RangeType) semanticObject); + return; + case FiacrePackage.RECEIVE_STATEMENT: + sequence_PatternStatement(context, (ReceiveStatement) semanticObject); + return; + case FiacrePackage.RECORD_ACCESS_EXPRESSION: + sequence_IdentifierExpression(context, (RecordAccessExpression) semanticObject); + return; + case FiacrePackage.RECORD_ACCESS_PATTERN: + sequence_IdentifierPattern(context, (RecordAccessPattern) semanticObject); + return; + case FiacrePackage.RECORD_EXPRESSION: + sequence_RecordExpression(context, (RecordExpression) semanticObject); + return; + case FiacrePackage.RECORD_FIELD_DECLARATION: + sequence_RecordFieldDeclaration(context, (RecordFieldDeclaration) semanticObject); + return; + case FiacrePackage.RECORD_FIELDS: + sequence_RecordFields(context, (RecordFields) semanticObject); + return; + case FiacrePackage.RECORD_TYPE: + sequence_RecordType(context, (RecordType) semanticObject); + return; + case FiacrePackage.REFERENCE_EXPRESSION: + sequence_ReferenceExpression(context, (ReferenceExpression) semanticObject); + return; + case FiacrePackage.REFERENCED_TYPE: + sequence_ReferencedType(context, (ReferencedType) semanticObject); + return; + case FiacrePackage.REQUIREMENT: + sequence_Requirement(context, (Requirement) semanticObject); + return; + case FiacrePackage.RETURN_STATEMENT: + sequence_ReturnStatement(context, (ReturnStatement) semanticObject); + return; + case FiacrePackage.ROOT: + sequence_Root(context, (Root) semanticObject); + return; + case FiacrePackage.SELECT_STATEMENT: + sequence_SelectStatement(context, (SelectStatement) semanticObject); + return; + case FiacrePackage.SEND_STATEMENT: + sequence_PatternStatement(context, (SendStatement) semanticObject); + return; + case FiacrePackage.STATE_DECLARATION: + sequence_StateDeclaration(context, (StateDeclaration) semanticObject); + return; + case FiacrePackage.STATE_SUBJECT: + sequence_StateSubject(context, (StateSubject) semanticObject); + return; + case FiacrePackage.STATEMENT_CHOICE: + sequence_StatementChoice(context, (StatementChoice) semanticObject); + return; + case FiacrePackage.STATEMENT_SEQUENCE: + sequence_StatementSequence(context, (StatementSequence) semanticObject); + return; + case FiacrePackage.SUBSTRACTION: + sequence_Substraction(context, (Substraction) semanticObject); + return; + case FiacrePackage.TAG_SUBJECT: + sequence_TagSubject(context, (TagSubject) semanticObject); + return; + case FiacrePackage.TAGGED_STATEMENT: + sequence_TaggedStatement(context, (TaggedStatement) semanticObject); + return; + case FiacrePackage.TO_STATEMENT: + sequence_ToStatement(context, (ToStatement) semanticObject); + return; + case FiacrePackage.TRANSITION: + sequence_Transition(context, (Transition) semanticObject); + return; + case FiacrePackage.TRANSITION_SOURCE: + sequence_TransitionSource(context, (TransitionSource) semanticObject); + return; + case FiacrePackage.TRUE_LITERAL: + sequence_BooleanLiteral(context, (TrueLiteral) semanticObject); + return; + case FiacrePackage.TUPLE_TYPE: + sequence_TupleType(context, (TupleType) semanticObject); + return; + case FiacrePackage.TYPE_DECLARATION: + sequence_TypeDeclaration(context, (TypeDeclaration) semanticObject); + return; + case FiacrePackage.UNARY_COERCE_EXPRESSION: + sequence_UnaryExpression(context, (UnaryCoerceExpression) semanticObject); + return; + case FiacrePackage.UNARY_DE_QUEUE_EXPRESSION: + sequence_UnaryExpression(context, (UnaryDeQueueExpression) semanticObject); + return; + case FiacrePackage.UNARY_EMPTY_EXPRESSION: + sequence_UnaryExpression(context, (UnaryEmptyExpression) semanticObject); + return; + case FiacrePackage.UNARY_FIRST_EXPRESSION: + sequence_UnaryExpression(context, (UnaryFirstExpression) semanticObject); + return; + case FiacrePackage.UNARY_FULL_EXPRESSION: + sequence_UnaryExpression(context, (UnaryFullExpression) semanticObject); + return; + case FiacrePackage.UNARY_LENGTH_EXPRESSION: + sequence_UnaryExpression(context, (UnaryLengthExpression) semanticObject); + return; + case FiacrePackage.UNARY_MINUS_EXPRESSION: + sequence_UnaryExpression(context, (UnaryMinusExpression) semanticObject); + return; + case FiacrePackage.UNARY_NEGATION_EXPRESSION: + sequence_UnaryExpression(context, (UnaryNegationExpression) semanticObject); + return; + case FiacrePackage.UNARY_PLUS_EXPRESSION: + sequence_UnaryExpression(context, (UnaryPlusExpression) semanticObject); + return; + case FiacrePackage.UNION_TAG_DECLARATION: + sequence_UnionTagDeclaration(context, (UnionTagDeclaration) semanticObject); + return; + case FiacrePackage.UNION_TAGS: + sequence_UnionTags(context, (UnionTags) semanticObject); + return; + case FiacrePackage.UNION_TYPE: + sequence_UnionType(context, (UnionType) semanticObject); + return; + case FiacrePackage.UNLESS_STATEMENT: + sequence_UnlessStatement(context, (UnlessStatement) semanticObject); + return; + case FiacrePackage.VALUE_SUBJECT: + sequence_ValueSubject(context, (ValueSubject) semanticObject); + return; + case FiacrePackage.VARIABLE_DECLARATION: + sequence_VariableDeclaration(context, (VariableDeclaration) semanticObject); + return; + case FiacrePackage.VARIABLE_LOWER_BOUND: + sequence_VariableLowerBound(context, (VariableLowerBound) semanticObject); + return; + case FiacrePackage.VARIABLE_UPPER_BOUND: + sequence_VariableUpperBound(context, (VariableUpperBound) semanticObject); + return; + case FiacrePackage.VARIABLES_DECLARATION: + sequence_VariablesDeclaration(context, (VariablesDeclaration) semanticObject); + return; + case FiacrePackage.WAIT_STATEMENT: + sequence_WaitStatement(context, (WaitStatement) semanticObject); + return; + case FiacrePackage.WHILE_STATEMENT: + sequence_WhileStatement(context, (WhileStatement) semanticObject); + return; + } + if (errorAcceptor != null) + errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); + } + + /** + * Contexts: + * Property returns AbsencePattern + * QuantifiedProperty returns AbsencePattern + * PropertyDisjunction returns AbsencePattern + * PropertyDisjunction.PropertyDisjunction_1_0 returns AbsencePattern + * PropertyImplication returns AbsencePattern + * PropertyImplication.PropertyImplication_1_0 returns AbsencePattern + * PropertyConjunction returns AbsencePattern + * PropertyConjunction.PropertyConjunction_1_0 returns AbsencePattern + * PropertyNegation returns AbsencePattern + * AtomicProperty returns AbsencePattern + * PatternProperty returns AbsencePattern + * AbsencePattern returns AbsencePattern + * + * Constraint: + * ( + * subject=AtomicObservable + * ( + * (after=AtomicObservable ((lower=LowerBound upper=UpperBound) | until=AtomicObservable)?) | + * (before=AtomicObservable (lower=LowerBound upper=UpperBound)?) | + * (min=AtomicObservable max=AtomicObservable) + * )? + * ) + */ + protected void sequence_AbsencePattern(ISerializationContext context, AbsencePattern semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns Addition + * QuantifiedExpression returns Addition + * Conditional returns Addition + * Conditional.Conditional_1_1 returns Addition + * Disjunction returns Addition + * Disjunction.Disjunction_1_0 returns Addition + * Implication returns Addition + * Implication.Implication_1_0 returns Addition + * Conjunction returns Addition + * Conjunction.Conjunction_1_0 returns Addition + * Comparison returns Addition + * Comparison.ComparisonEqual_1_0_0_0 returns Addition + * Comparison.ComparisonNotEqual_1_0_1_0 returns Addition + * Comparison.ComparisonLesser_1_0_2_0 returns Addition + * Comparison.ComparisonLesserEqual_1_0_3_0 returns Addition + * Comparison.ComparisonGreater_1_0_4_0 returns Addition + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns Addition + * Addition returns Addition + * Addition.Addition_1_0 returns Addition + * Substraction returns Addition + * Substraction.Substraction_1_0 returns Addition + * Multiplication returns Addition + * Multiplication.Multiplication_1_0 returns Addition + * Division returns Addition + * Division.Division_1_0 returns Addition + * Modulo returns Addition + * Modulo.Modulo_1_0 returns Addition + * UnaryExpression returns Addition + * Projection returns Addition + * Projection.Projection_1_0 returns Addition + * AtomicExpression returns Addition + * + * Constraint: + * (left=Addition_Addition_1_0 right=Substraction) + */ + protected void sequence_Addition(ISerializationContext context, Addition semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getAddition_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getAddition_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getAddition_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getAddition_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getAdditionAccess().getAdditionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getAdditionAccess().getRightSubstractionParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Property returns AlwaysPattern + * QuantifiedProperty returns AlwaysPattern + * PropertyDisjunction returns AlwaysPattern + * PropertyDisjunction.PropertyDisjunction_1_0 returns AlwaysPattern + * PropertyImplication returns AlwaysPattern + * PropertyImplication.PropertyImplication_1_0 returns AlwaysPattern + * PropertyConjunction returns AlwaysPattern + * PropertyConjunction.PropertyConjunction_1_0 returns AlwaysPattern + * PropertyNegation returns AlwaysPattern + * AtomicProperty returns AlwaysPattern + * PatternProperty returns AlwaysPattern + * AlwaysPattern returns AlwaysPattern + * + * Constraint: + * ( + * subject=AtomicObservable + * (before=AtomicObservable | (after=AtomicObservable until=AtomicObservable?) | (min=AtomicObservable max=AtomicObservable))? + * ) + */ + protected void sequence_AlwaysPattern(ISerializationContext context, AlwaysPattern semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns AnyPattern + * UnlessStatement.UnlessStatement_1_0 returns AnyPattern + * StatementChoice returns AnyPattern + * StatementChoice.StatementChoice_1_0 returns AnyPattern + * StatementSequence returns AnyPattern + * StatementSequence.StatementSequence_1_0 returns AnyPattern + * Statement returns AnyPattern + * PatternStatement returns AnyPattern + * PatternStatement.AssignStatement_1_0_1 returns AnyPattern + * PatternStatement.AssignStatement_1_1_1 returns AnyPattern + * PatternStatement.AssignAnyStatement_1_2_1 returns AnyPattern + * PatternStatement.AssignAnyStatement_1_3_1 returns AnyPattern + * PatternStatement.SendStatement_1_4_1 returns AnyPattern + * PatternStatement.ReceiveStatement_1_5_1 returns AnyPattern + * Pattern returns AnyPattern + * AnyPattern returns AnyPattern + * + * Constraint: + * {AnyPattern} + */ + protected void sequence_AnyPattern(ISerializationContext context, AnyPattern semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns AppendExpression + * QuantifiedExpression returns AppendExpression + * Conditional returns AppendExpression + * Conditional.Conditional_1_1 returns AppendExpression + * Disjunction returns AppendExpression + * Disjunction.Disjunction_1_0 returns AppendExpression + * Implication returns AppendExpression + * Implication.Implication_1_0 returns AppendExpression + * Conjunction returns AppendExpression + * Conjunction.Conjunction_1_0 returns AppendExpression + * Comparison returns AppendExpression + * Comparison.ComparisonEqual_1_0_0_0 returns AppendExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns AppendExpression + * Comparison.ComparisonLesser_1_0_2_0 returns AppendExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns AppendExpression + * Comparison.ComparisonGreater_1_0_4_0 returns AppendExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns AppendExpression + * Addition returns AppendExpression + * Addition.Addition_1_0 returns AppendExpression + * Substraction returns AppendExpression + * Substraction.Substraction_1_0 returns AppendExpression + * Multiplication returns AppendExpression + * Multiplication.Multiplication_1_0 returns AppendExpression + * Division returns AppendExpression + * Division.Division_1_0 returns AppendExpression + * Modulo returns AppendExpression + * Modulo.Modulo_1_0 returns AppendExpression + * UnaryExpression returns AppendExpression + * Projection returns AppendExpression + * Projection.Projection_1_0 returns AppendExpression + * AtomicExpression returns AppendExpression + * AppendExpression returns AppendExpression + * + * Constraint: + * (left=Expression right=Expression) + */ + protected void sequence_AppendExpression(ISerializationContext context, AppendExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getAppendExpression_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getAppendExpression_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getAppendExpression_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getAppendExpression_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getAppendExpressionAccess().getLeftExpressionParserRuleCall_2_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getAppendExpressionAccess().getRightExpressionParserRuleCall_4_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns ArrayExpression + * QuantifiedExpression returns ArrayExpression + * Conditional returns ArrayExpression + * Conditional.Conditional_1_1 returns ArrayExpression + * Disjunction returns ArrayExpression + * Disjunction.Disjunction_1_0 returns ArrayExpression + * Implication returns ArrayExpression + * Implication.Implication_1_0 returns ArrayExpression + * Conjunction returns ArrayExpression + * Conjunction.Conjunction_1_0 returns ArrayExpression + * Comparison returns ArrayExpression + * Comparison.ComparisonEqual_1_0_0_0 returns ArrayExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns ArrayExpression + * Comparison.ComparisonLesser_1_0_2_0 returns ArrayExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ArrayExpression + * Comparison.ComparisonGreater_1_0_4_0 returns ArrayExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ArrayExpression + * Addition returns ArrayExpression + * Addition.Addition_1_0 returns ArrayExpression + * Substraction returns ArrayExpression + * Substraction.Substraction_1_0 returns ArrayExpression + * Multiplication returns ArrayExpression + * Multiplication.Multiplication_1_0 returns ArrayExpression + * Division returns ArrayExpression + * Division.Division_1_0 returns ArrayExpression + * Modulo returns ArrayExpression + * Modulo.Modulo_1_0 returns ArrayExpression + * UnaryExpression returns ArrayExpression + * Projection returns ArrayExpression + * Projection.Projection_1_0 returns ArrayExpression + * ValueExpression returns ArrayExpression + * AtomicExpression returns ArrayExpression + * ArrayExpression returns ArrayExpression + * + * Constraint: + * (values+=Expression values+=Expression*)? + */ + protected void sequence_ArrayExpression(ISerializationContext context, ArrayExpression semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Type returns ArrayType + * TupleType returns ArrayType + * TupleType.TupleType_1_0 returns ArrayType + * ArrayType returns ArrayType + * + * Constraint: + * (size=Expression type=Type) + */ + protected void sequence_ArrayType(ISerializationContext context, ArrayType semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getArrayType_Size()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getArrayType_Size())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getArrayType_Type()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getArrayType_Type())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getArrayTypeAccess().getSizeExpressionParserRuleCall_1_0(), semanticObject.getSize()); + feeder.accept(grammarAccess.getArrayTypeAccess().getTypeTypeParserRuleCall_3_0(), semanticObject.getType()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLVariable + * LTLQuantified returns LTLVariable + * LTLDisjunction returns LTLVariable + * LTLDisjunction.LTLDisjunction_1_0 returns LTLVariable + * LTLImplication returns LTLVariable + * LTLImplication.LTLImplication_1_0 returns LTLVariable + * LTLConjunction returns LTLVariable + * LTLConjunction.LTLConjunction_1_0 returns LTLVariable + * LTLBinary returns LTLVariable + * LTLBinary.LTLUntil_1_0_0 returns LTLVariable + * LTLBinary.LTLRelease_1_1_0 returns LTLVariable + * LTLUnary returns LTLVariable + * AtomicLTL returns LTLVariable + * + * Constraint: + * declaration=[PropertyDeclarationUse|ID] + */ + protected void sequence_AtomicLTL(ISerializationContext context, LTLVariable semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLVariable_Declaration()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLVariable_Declaration())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getAtomicLTLAccess().getDeclarationPropertyDeclarationUseIDTerminalRuleCall_0_1_0_1(), semanticObject.getDeclaration()); + feeder.finish(); + } + + + /** + * Contexts: + * Type returns BooleanType + * TupleType returns BooleanType + * TupleType.TupleType_1_0 returns BooleanType + * BasicType returns BooleanType + * + * Constraint: + * {BooleanType} + */ + protected void sequence_BasicType(ISerializationContext context, BooleanType semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Type returns IntegerType + * TupleType returns IntegerType + * TupleType.TupleType_1_0 returns IntegerType + * BasicType returns IntegerType + * + * Constraint: + * {IntegerType} + */ + protected void sequence_BasicType(ISerializationContext context, IntegerType semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Type returns NaturalType + * TupleType returns NaturalType + * TupleType.TupleType_1_0 returns NaturalType + * BasicType returns NaturalType + * + * Constraint: + * {NaturalType} + */ + protected void sequence_BasicType(ISerializationContext context, NaturalType semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns BlockStatement + * UnlessStatement.UnlessStatement_1_0 returns BlockStatement + * StatementChoice returns BlockStatement + * StatementChoice.StatementChoice_1_0 returns BlockStatement + * StatementSequence returns BlockStatement + * StatementSequence.StatementSequence_1_0 returns BlockStatement + * Statement returns BlockStatement + * BlockStatement returns BlockStatement + * + * Constraint: + * body=StatementSequence + */ + protected void sequence_BlockStatement(ISerializationContext context, BlockStatement semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getBlockStatement_Body()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getBlockStatement_Body())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getBlockStatementAccess().getBodyStatementSequenceParserRuleCall_1_0(), semanticObject.getBody()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns FalseLiteral + * QuantifiedExpression returns FalseLiteral + * Conditional returns FalseLiteral + * Conditional.Conditional_1_1 returns FalseLiteral + * Disjunction returns FalseLiteral + * Disjunction.Disjunction_1_0 returns FalseLiteral + * Implication returns FalseLiteral + * Implication.Implication_1_0 returns FalseLiteral + * Conjunction returns FalseLiteral + * Conjunction.Conjunction_1_0 returns FalseLiteral + * Comparison returns FalseLiteral + * Comparison.ComparisonEqual_1_0_0_0 returns FalseLiteral + * Comparison.ComparisonNotEqual_1_0_1_0 returns FalseLiteral + * Comparison.ComparisonLesser_1_0_2_0 returns FalseLiteral + * Comparison.ComparisonLesserEqual_1_0_3_0 returns FalseLiteral + * Comparison.ComparisonGreater_1_0_4_0 returns FalseLiteral + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns FalseLiteral + * Addition returns FalseLiteral + * Addition.Addition_1_0 returns FalseLiteral + * Substraction returns FalseLiteral + * Substraction.Substraction_1_0 returns FalseLiteral + * Multiplication returns FalseLiteral + * Multiplication.Multiplication_1_0 returns FalseLiteral + * Division returns FalseLiteral + * Division.Division_1_0 returns FalseLiteral + * Modulo returns FalseLiteral + * Modulo.Modulo_1_0 returns FalseLiteral + * UnaryExpression returns FalseLiteral + * Projection returns FalseLiteral + * Projection.Projection_1_0 returns FalseLiteral + * ValueExpression returns FalseLiteral + * AtomicExpression returns FalseLiteral + * LiteralExpression returns FalseLiteral + * BooleanLiteral returns FalseLiteral + * + * Constraint: + * {FalseLiteral} + */ + protected void sequence_BooleanLiteral(ISerializationContext context, FalseLiteral semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns TrueLiteral + * QuantifiedExpression returns TrueLiteral + * Conditional returns TrueLiteral + * Conditional.Conditional_1_1 returns TrueLiteral + * Disjunction returns TrueLiteral + * Disjunction.Disjunction_1_0 returns TrueLiteral + * Implication returns TrueLiteral + * Implication.Implication_1_0 returns TrueLiteral + * Conjunction returns TrueLiteral + * Conjunction.Conjunction_1_0 returns TrueLiteral + * Comparison returns TrueLiteral + * Comparison.ComparisonEqual_1_0_0_0 returns TrueLiteral + * Comparison.ComparisonNotEqual_1_0_1_0 returns TrueLiteral + * Comparison.ComparisonLesser_1_0_2_0 returns TrueLiteral + * Comparison.ComparisonLesserEqual_1_0_3_0 returns TrueLiteral + * Comparison.ComparisonGreater_1_0_4_0 returns TrueLiteral + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns TrueLiteral + * Addition returns TrueLiteral + * Addition.Addition_1_0 returns TrueLiteral + * Substraction returns TrueLiteral + * Substraction.Substraction_1_0 returns TrueLiteral + * Multiplication returns TrueLiteral + * Multiplication.Multiplication_1_0 returns TrueLiteral + * Division returns TrueLiteral + * Division.Division_1_0 returns TrueLiteral + * Modulo returns TrueLiteral + * Modulo.Modulo_1_0 returns TrueLiteral + * UnaryExpression returns TrueLiteral + * Projection returns TrueLiteral + * Projection.Projection_1_0 returns TrueLiteral + * ValueExpression returns TrueLiteral + * AtomicExpression returns TrueLiteral + * LiteralExpression returns TrueLiteral + * BooleanLiteral returns TrueLiteral + * + * Constraint: + * {TrueLiteral} + */ + protected void sequence_BooleanLiteral(ISerializationContext context, TrueLiteral semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns CaseStatement + * UnlessStatement.UnlessStatement_1_0 returns CaseStatement + * StatementChoice returns CaseStatement + * StatementChoice.StatementChoice_1_0 returns CaseStatement + * StatementSequence returns CaseStatement + * StatementSequence.StatementSequence_1_0 returns CaseStatement + * Statement returns CaseStatement + * CaseStatement returns CaseStatement + * + * Constraint: + * (value=Expression pattern+=Pattern body+=StatementSequence (pattern+=Pattern body+=StatementSequence)*) + */ + protected void sequence_CaseStatement(ISerializationContext context, CaseStatement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * NamedElement returns ChannelDeclaration + * TypeDeclarationUse returns ChannelDeclaration + * Declaration returns ChannelDeclaration + * ChannelDeclaration returns ChannelDeclaration + * + * Constraint: + * (name=ID value=ChannelType) + */ + protected void sequence_ChannelDeclaration(ISerializationContext context, ChannelDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getChannelDeclaration_Value()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getChannelDeclaration_Value())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getChannelDeclarationAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getChannelDeclarationAccess().getValueChannelTypeParserRuleCall_3_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * ChannelType returns ChannelType + * + * Constraint: + * (size=Expression? ((in?='in' out?='out'?) | out?='out')? type=TupleType?) + */ + protected void sequence_ChannelType(ISerializationContext context, ChannelType semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns ComparisonEqual + * QuantifiedExpression returns ComparisonEqual + * Conditional returns ComparisonEqual + * Conditional.Conditional_1_1 returns ComparisonEqual + * Disjunction returns ComparisonEqual + * Disjunction.Disjunction_1_0 returns ComparisonEqual + * Implication returns ComparisonEqual + * Implication.Implication_1_0 returns ComparisonEqual + * Conjunction returns ComparisonEqual + * Conjunction.Conjunction_1_0 returns ComparisonEqual + * Comparison returns ComparisonEqual + * Comparison.ComparisonEqual_1_0_0_0 returns ComparisonEqual + * Comparison.ComparisonNotEqual_1_0_1_0 returns ComparisonEqual + * Comparison.ComparisonLesser_1_0_2_0 returns ComparisonEqual + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ComparisonEqual + * Comparison.ComparisonGreater_1_0_4_0 returns ComparisonEqual + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ComparisonEqual + * Addition returns ComparisonEqual + * Addition.Addition_1_0 returns ComparisonEqual + * Substraction returns ComparisonEqual + * Substraction.Substraction_1_0 returns ComparisonEqual + * Multiplication returns ComparisonEqual + * Multiplication.Multiplication_1_0 returns ComparisonEqual + * Division returns ComparisonEqual + * Division.Division_1_0 returns ComparisonEqual + * Modulo returns ComparisonEqual + * Modulo.Modulo_1_0 returns ComparisonEqual + * UnaryExpression returns ComparisonEqual + * Projection returns ComparisonEqual + * Projection.Projection_1_0 returns ComparisonEqual + * AtomicExpression returns ComparisonEqual + * + * Constraint: + * (left=Comparison_ComparisonEqual_1_0_0_0 right=Addition) + */ + protected void sequence_Comparison(ISerializationContext context, ComparisonEqual semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonEqual_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonEqual_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonEqual_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonEqual_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getComparisonAccess().getComparisonEqualLeftAction_1_0_0_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns ComparisonGreater + * QuantifiedExpression returns ComparisonGreater + * Conditional returns ComparisonGreater + * Conditional.Conditional_1_1 returns ComparisonGreater + * Disjunction returns ComparisonGreater + * Disjunction.Disjunction_1_0 returns ComparisonGreater + * Implication returns ComparisonGreater + * Implication.Implication_1_0 returns ComparisonGreater + * Conjunction returns ComparisonGreater + * Conjunction.Conjunction_1_0 returns ComparisonGreater + * Comparison returns ComparisonGreater + * Comparison.ComparisonEqual_1_0_0_0 returns ComparisonGreater + * Comparison.ComparisonNotEqual_1_0_1_0 returns ComparisonGreater + * Comparison.ComparisonLesser_1_0_2_0 returns ComparisonGreater + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ComparisonGreater + * Comparison.ComparisonGreater_1_0_4_0 returns ComparisonGreater + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ComparisonGreater + * Addition returns ComparisonGreater + * Addition.Addition_1_0 returns ComparisonGreater + * Substraction returns ComparisonGreater + * Substraction.Substraction_1_0 returns ComparisonGreater + * Multiplication returns ComparisonGreater + * Multiplication.Multiplication_1_0 returns ComparisonGreater + * Division returns ComparisonGreater + * Division.Division_1_0 returns ComparisonGreater + * Modulo returns ComparisonGreater + * Modulo.Modulo_1_0 returns ComparisonGreater + * UnaryExpression returns ComparisonGreater + * Projection returns ComparisonGreater + * Projection.Projection_1_0 returns ComparisonGreater + * AtomicExpression returns ComparisonGreater + * + * Constraint: + * (left=Comparison_ComparisonGreater_1_0_4_0 right=Addition) + */ + protected void sequence_Comparison(ISerializationContext context, ComparisonGreater semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonGreater_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonGreater_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonGreater_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonGreater_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getComparisonAccess().getComparisonGreaterLeftAction_1_0_4_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns ComparisonGreaterEqual + * QuantifiedExpression returns ComparisonGreaterEqual + * Conditional returns ComparisonGreaterEqual + * Conditional.Conditional_1_1 returns ComparisonGreaterEqual + * Disjunction returns ComparisonGreaterEqual + * Disjunction.Disjunction_1_0 returns ComparisonGreaterEqual + * Implication returns ComparisonGreaterEqual + * Implication.Implication_1_0 returns ComparisonGreaterEqual + * Conjunction returns ComparisonGreaterEqual + * Conjunction.Conjunction_1_0 returns ComparisonGreaterEqual + * Comparison returns ComparisonGreaterEqual + * Comparison.ComparisonEqual_1_0_0_0 returns ComparisonGreaterEqual + * Comparison.ComparisonNotEqual_1_0_1_0 returns ComparisonGreaterEqual + * Comparison.ComparisonLesser_1_0_2_0 returns ComparisonGreaterEqual + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ComparisonGreaterEqual + * Comparison.ComparisonGreater_1_0_4_0 returns ComparisonGreaterEqual + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ComparisonGreaterEqual + * Addition returns ComparisonGreaterEqual + * Addition.Addition_1_0 returns ComparisonGreaterEqual + * Substraction returns ComparisonGreaterEqual + * Substraction.Substraction_1_0 returns ComparisonGreaterEqual + * Multiplication returns ComparisonGreaterEqual + * Multiplication.Multiplication_1_0 returns ComparisonGreaterEqual + * Division returns ComparisonGreaterEqual + * Division.Division_1_0 returns ComparisonGreaterEqual + * Modulo returns ComparisonGreaterEqual + * Modulo.Modulo_1_0 returns ComparisonGreaterEqual + * UnaryExpression returns ComparisonGreaterEqual + * Projection returns ComparisonGreaterEqual + * Projection.Projection_1_0 returns ComparisonGreaterEqual + * AtomicExpression returns ComparisonGreaterEqual + * + * Constraint: + * (left=Comparison_ComparisonGreaterEqual_1_0_5_0 right=Addition) + */ + protected void sequence_Comparison(ISerializationContext context, ComparisonGreaterEqual semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonGreaterEqual_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getComparisonAccess().getComparisonGreaterEqualLeftAction_1_0_5_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns ComparisonLesser + * QuantifiedExpression returns ComparisonLesser + * Conditional returns ComparisonLesser + * Conditional.Conditional_1_1 returns ComparisonLesser + * Disjunction returns ComparisonLesser + * Disjunction.Disjunction_1_0 returns ComparisonLesser + * Implication returns ComparisonLesser + * Implication.Implication_1_0 returns ComparisonLesser + * Conjunction returns ComparisonLesser + * Conjunction.Conjunction_1_0 returns ComparisonLesser + * Comparison returns ComparisonLesser + * Comparison.ComparisonEqual_1_0_0_0 returns ComparisonLesser + * Comparison.ComparisonNotEqual_1_0_1_0 returns ComparisonLesser + * Comparison.ComparisonLesser_1_0_2_0 returns ComparisonLesser + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ComparisonLesser + * Comparison.ComparisonGreater_1_0_4_0 returns ComparisonLesser + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ComparisonLesser + * Addition returns ComparisonLesser + * Addition.Addition_1_0 returns ComparisonLesser + * Substraction returns ComparisonLesser + * Substraction.Substraction_1_0 returns ComparisonLesser + * Multiplication returns ComparisonLesser + * Multiplication.Multiplication_1_0 returns ComparisonLesser + * Division returns ComparisonLesser + * Division.Division_1_0 returns ComparisonLesser + * Modulo returns ComparisonLesser + * Modulo.Modulo_1_0 returns ComparisonLesser + * UnaryExpression returns ComparisonLesser + * Projection returns ComparisonLesser + * Projection.Projection_1_0 returns ComparisonLesser + * AtomicExpression returns ComparisonLesser + * + * Constraint: + * (left=Comparison_ComparisonLesser_1_0_2_0 right=Addition) + */ + protected void sequence_Comparison(ISerializationContext context, ComparisonLesser semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonLesser_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonLesser_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonLesser_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonLesser_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getComparisonAccess().getComparisonLesserLeftAction_1_0_2_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns ComparisonLesserEqual + * QuantifiedExpression returns ComparisonLesserEqual + * Conditional returns ComparisonLesserEqual + * Conditional.Conditional_1_1 returns ComparisonLesserEqual + * Disjunction returns ComparisonLesserEqual + * Disjunction.Disjunction_1_0 returns ComparisonLesserEqual + * Implication returns ComparisonLesserEqual + * Implication.Implication_1_0 returns ComparisonLesserEqual + * Conjunction returns ComparisonLesserEqual + * Conjunction.Conjunction_1_0 returns ComparisonLesserEqual + * Comparison returns ComparisonLesserEqual + * Comparison.ComparisonEqual_1_0_0_0 returns ComparisonLesserEqual + * Comparison.ComparisonNotEqual_1_0_1_0 returns ComparisonLesserEqual + * Comparison.ComparisonLesser_1_0_2_0 returns ComparisonLesserEqual + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ComparisonLesserEqual + * Comparison.ComparisonGreater_1_0_4_0 returns ComparisonLesserEqual + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ComparisonLesserEqual + * Addition returns ComparisonLesserEqual + * Addition.Addition_1_0 returns ComparisonLesserEqual + * Substraction returns ComparisonLesserEqual + * Substraction.Substraction_1_0 returns ComparisonLesserEqual + * Multiplication returns ComparisonLesserEqual + * Multiplication.Multiplication_1_0 returns ComparisonLesserEqual + * Division returns ComparisonLesserEqual + * Division.Division_1_0 returns ComparisonLesserEqual + * Modulo returns ComparisonLesserEqual + * Modulo.Modulo_1_0 returns ComparisonLesserEqual + * UnaryExpression returns ComparisonLesserEqual + * Projection returns ComparisonLesserEqual + * Projection.Projection_1_0 returns ComparisonLesserEqual + * AtomicExpression returns ComparisonLesserEqual + * + * Constraint: + * (left=Comparison_ComparisonLesserEqual_1_0_3_0 right=Addition) + */ + protected void sequence_Comparison(ISerializationContext context, ComparisonLesserEqual semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonLesserEqual_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonLesserEqual_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getComparisonAccess().getComparisonLesserEqualLeftAction_1_0_3_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns ComparisonNotEqual + * QuantifiedExpression returns ComparisonNotEqual + * Conditional returns ComparisonNotEqual + * Conditional.Conditional_1_1 returns ComparisonNotEqual + * Disjunction returns ComparisonNotEqual + * Disjunction.Disjunction_1_0 returns ComparisonNotEqual + * Implication returns ComparisonNotEqual + * Implication.Implication_1_0 returns ComparisonNotEqual + * Conjunction returns ComparisonNotEqual + * Conjunction.Conjunction_1_0 returns ComparisonNotEqual + * Comparison returns ComparisonNotEqual + * Comparison.ComparisonEqual_1_0_0_0 returns ComparisonNotEqual + * Comparison.ComparisonNotEqual_1_0_1_0 returns ComparisonNotEqual + * Comparison.ComparisonLesser_1_0_2_0 returns ComparisonNotEqual + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ComparisonNotEqual + * Comparison.ComparisonGreater_1_0_4_0 returns ComparisonNotEqual + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ComparisonNotEqual + * Addition returns ComparisonNotEqual + * Addition.Addition_1_0 returns ComparisonNotEqual + * Substraction returns ComparisonNotEqual + * Substraction.Substraction_1_0 returns ComparisonNotEqual + * Multiplication returns ComparisonNotEqual + * Multiplication.Multiplication_1_0 returns ComparisonNotEqual + * Division returns ComparisonNotEqual + * Division.Division_1_0 returns ComparisonNotEqual + * Modulo returns ComparisonNotEqual + * Modulo.Modulo_1_0 returns ComparisonNotEqual + * UnaryExpression returns ComparisonNotEqual + * Projection returns ComparisonNotEqual + * Projection.Projection_1_0 returns ComparisonNotEqual + * AtomicExpression returns ComparisonNotEqual + * + * Constraint: + * (left=Comparison_ComparisonNotEqual_1_0_1_0 right=Addition) + */ + protected void sequence_Comparison(ISerializationContext context, ComparisonNotEqual semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonNotEqual_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonNotEqual_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getComparisonNotEqual_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getComparisonNotEqual_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getComparisonAccess().getComparisonNotEqualLeftAction_1_0_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getComparisonAccess().getRightAdditionParserRuleCall_1_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * RootDeclaration returns ComponentDeclaration + * NamedElement returns ComponentDeclaration + * PathDeclarationUse returns ComponentDeclaration + * Declaration returns ComponentDeclaration + * ParameterizedDeclaration returns ComponentDeclaration + * ComponentDeclaration returns ComponentDeclaration + * + * Constraint: + * ( + * name=ID + * (ports+=PortsDeclaration ports+=PortsDeclaration*)? + * (parameters+=ParametersDeclaration parameters+=ParametersDeclaration*)? + * (variables+=VariablesDeclaration variables+=VariablesDeclaration*)? + * (localPorts+=LocalPortsDeclaration localPorts+=LocalPortsDeclaration*)? + * (priorities+=PriorityDeclaration priorities+=PriorityDeclaration*)? + * prelude=StatementSequence? + * body=Composition + * ) + */ + protected void sequence_ComponentDeclaration(ISerializationContext context, ComponentDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ComponentInstance returns ComponentInstance + * + * Constraint: + * (component=[ParameterizedDeclaration|ID] (ports+=Expression ports+=Expression*)? (parameters+=Expression parameters+=Expression*)?) + */ + protected void sequence_ComponentInstance(ISerializationContext context, ComponentInstance semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Block returns CompositeBlock + * CompositeBlock returns CompositeBlock + * + * Constraint: + * (local=PortSet? composition=Composition) + */ + protected void sequence_CompositeBlock(ISerializationContext context, CompositeBlock semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Composition returns Composition + * + * Constraint: + * (global=PortSet? blocks+=Block blocks+=Block*) + */ + protected void sequence_Composition(ISerializationContext context, Composition semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns ConditionalStatement + * UnlessStatement.UnlessStatement_1_0 returns ConditionalStatement + * StatementChoice returns ConditionalStatement + * StatementChoice.StatementChoice_1_0 returns ConditionalStatement + * StatementSequence returns ConditionalStatement + * StatementSequence.StatementSequence_1_0 returns ConditionalStatement + * Statement returns ConditionalStatement + * ConditionalStatement returns ConditionalStatement + * + * Constraint: + * (condition=Expression then=StatementSequence elseif+=ExtendedConditionalStatement* else=StatementSequence?) + */ + protected void sequence_ConditionalStatement(ISerializationContext context, ConditionalStatement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns Conditional + * QuantifiedExpression returns Conditional + * Conditional returns Conditional + * Conditional.Conditional_1_1 returns Conditional + * Disjunction returns Conditional + * Disjunction.Disjunction_1_0 returns Conditional + * Implication returns Conditional + * Implication.Implication_1_0 returns Conditional + * Conjunction returns Conditional + * Conjunction.Conjunction_1_0 returns Conditional + * Comparison returns Conditional + * Comparison.ComparisonEqual_1_0_0_0 returns Conditional + * Comparison.ComparisonNotEqual_1_0_1_0 returns Conditional + * Comparison.ComparisonLesser_1_0_2_0 returns Conditional + * Comparison.ComparisonLesserEqual_1_0_3_0 returns Conditional + * Comparison.ComparisonGreater_1_0_4_0 returns Conditional + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns Conditional + * Addition returns Conditional + * Addition.Addition_1_0 returns Conditional + * Substraction returns Conditional + * Substraction.Substraction_1_0 returns Conditional + * Multiplication returns Conditional + * Multiplication.Multiplication_1_0 returns Conditional + * Division returns Conditional + * Division.Division_1_0 returns Conditional + * Modulo returns Conditional + * Modulo.Modulo_1_0 returns Conditional + * UnaryExpression returns Conditional + * Projection returns Conditional + * Projection.Projection_1_0 returns Conditional + * AtomicExpression returns Conditional + * + * Constraint: + * (condition=Conditional_Conditional_1_1 then=Disjunction else=Disjunction) + */ + protected void sequence_Conditional(ISerializationContext context, Conditional semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getConditional_Condition()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getConditional_Condition())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getConditional_Then()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getConditional_Then())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getConditional_Else()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getConditional_Else())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getConditionalAccess().getConditionalConditionAction_1_1(), semanticObject.getCondition()); + feeder.accept(grammarAccess.getConditionalAccess().getThenDisjunctionParserRuleCall_1_2_0(), semanticObject.getThen()); + feeder.accept(grammarAccess.getConditionalAccess().getElseDisjunctionParserRuleCall_1_4_0(), semanticObject.getElse()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns Conjunction + * QuantifiedExpression returns Conjunction + * Conditional returns Conjunction + * Conditional.Conditional_1_1 returns Conjunction + * Disjunction returns Conjunction + * Disjunction.Disjunction_1_0 returns Conjunction + * Implication returns Conjunction + * Implication.Implication_1_0 returns Conjunction + * Conjunction returns Conjunction + * Conjunction.Conjunction_1_0 returns Conjunction + * Comparison returns Conjunction + * Comparison.ComparisonEqual_1_0_0_0 returns Conjunction + * Comparison.ComparisonNotEqual_1_0_1_0 returns Conjunction + * Comparison.ComparisonLesser_1_0_2_0 returns Conjunction + * Comparison.ComparisonLesserEqual_1_0_3_0 returns Conjunction + * Comparison.ComparisonGreater_1_0_4_0 returns Conjunction + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns Conjunction + * Addition returns Conjunction + * Addition.Addition_1_0 returns Conjunction + * Substraction returns Conjunction + * Substraction.Substraction_1_0 returns Conjunction + * Multiplication returns Conjunction + * Multiplication.Multiplication_1_0 returns Conjunction + * Division returns Conjunction + * Division.Division_1_0 returns Conjunction + * Modulo returns Conjunction + * Modulo.Modulo_1_0 returns Conjunction + * UnaryExpression returns Conjunction + * Projection returns Conjunction + * Projection.Projection_1_0 returns Conjunction + * AtomicExpression returns Conjunction + * + * Constraint: + * (left=Conjunction_Conjunction_1_0 right=Comparison) + */ + protected void sequence_Conjunction(ISerializationContext context, Conjunction semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getConjunction_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getConjunction_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getConjunction_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getConjunction_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getConjunctionAccess().getConjunctionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getConjunctionAccess().getRightComparisonParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * NamedElement returns ConstantDeclaration + * ConstantDeclarationUse returns ConstantDeclaration + * ExpressionDeclarationUse returns ConstantDeclaration + * BoundDeclarationUse returns ConstantDeclaration + * Declaration returns ConstantDeclaration + * ConstantDeclaration returns ConstantDeclaration + * + * Constraint: + * (name=ID type=Type value=Expression) + */ + protected void sequence_ConstantDeclaration(ISerializationContext context, ConstantDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getConstantDeclaration_Type()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getConstantDeclaration_Type())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getConstantDeclaration_Value()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getConstantDeclaration_Value())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getConstantDeclarationAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getConstantDeclarationAccess().getTypeTypeParserRuleCall_3_0(), semanticObject.getType()); + feeder.accept(grammarAccess.getConstantDeclarationAccess().getValueExpressionParserRuleCall_5_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * UnlessStatement returns ConstantPattern + * UnlessStatement.UnlessStatement_1_0 returns ConstantPattern + * StatementChoice returns ConstantPattern + * StatementChoice.StatementChoice_1_0 returns ConstantPattern + * StatementSequence returns ConstantPattern + * StatementSequence.StatementSequence_1_0 returns ConstantPattern + * Statement returns ConstantPattern + * PatternStatement returns ConstantPattern + * PatternStatement.AssignStatement_1_0_1 returns ConstantPattern + * PatternStatement.AssignStatement_1_1_1 returns ConstantPattern + * PatternStatement.AssignAnyStatement_1_2_1 returns ConstantPattern + * PatternStatement.AssignAnyStatement_1_3_1 returns ConstantPattern + * PatternStatement.SendStatement_1_4_1 returns ConstantPattern + * PatternStatement.ReceiveStatement_1_5_1 returns ConstantPattern + * Pattern returns ConstantPattern + * ConstantPattern returns ConstantPattern + * + * Constraint: + * value=LiteralExpression + */ + protected void sequence_ConstantPattern(ISerializationContext context, ConstantPattern semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getConstantPattern_Value()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getConstantPattern_Value())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getConstantPatternAccess().getValueLiteralExpressionParserRuleCall_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * Property returns DeadlockFreePattern + * QuantifiedProperty returns DeadlockFreePattern + * PropertyDisjunction returns DeadlockFreePattern + * PropertyDisjunction.PropertyDisjunction_1_0 returns DeadlockFreePattern + * PropertyImplication returns DeadlockFreePattern + * PropertyImplication.PropertyImplication_1_0 returns DeadlockFreePattern + * PropertyConjunction returns DeadlockFreePattern + * PropertyConjunction.PropertyConjunction_1_0 returns DeadlockFreePattern + * PropertyNegation returns DeadlockFreePattern + * AtomicProperty returns DeadlockFreePattern + * PatternProperty returns DeadlockFreePattern + * DeadlockFreePattern returns DeadlockFreePattern + * + * Constraint: + * {DeadlockFreePattern} + */ + protected void sequence_DeadlockFreePattern(ISerializationContext context, DeadlockFreePattern semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * LowerBound returns DecimalLowerBound + * DecimalLowerBound returns DecimalLowerBound + * + * Constraint: + * ((left?='[' | right?=']') value=FLT) + */ + protected void sequence_DecimalLowerBound(ISerializationContext context, DecimalLowerBound semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UpperBound returns DecimalUpperBound + * DecimalUpperBound returns DecimalUpperBound + * + * Constraint: + * (value=FLT (left?='[' | right?=']')) + */ + protected void sequence_DecimalUpperBound(ISerializationContext context, DecimalUpperBound semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns Disjunction + * QuantifiedExpression returns Disjunction + * Conditional returns Disjunction + * Conditional.Conditional_1_1 returns Disjunction + * Disjunction returns Disjunction + * Disjunction.Disjunction_1_0 returns Disjunction + * Implication returns Disjunction + * Implication.Implication_1_0 returns Disjunction + * Conjunction returns Disjunction + * Conjunction.Conjunction_1_0 returns Disjunction + * Comparison returns Disjunction + * Comparison.ComparisonEqual_1_0_0_0 returns Disjunction + * Comparison.ComparisonNotEqual_1_0_1_0 returns Disjunction + * Comparison.ComparisonLesser_1_0_2_0 returns Disjunction + * Comparison.ComparisonLesserEqual_1_0_3_0 returns Disjunction + * Comparison.ComparisonGreater_1_0_4_0 returns Disjunction + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns Disjunction + * Addition returns Disjunction + * Addition.Addition_1_0 returns Disjunction + * Substraction returns Disjunction + * Substraction.Substraction_1_0 returns Disjunction + * Multiplication returns Disjunction + * Multiplication.Multiplication_1_0 returns Disjunction + * Division returns Disjunction + * Division.Division_1_0 returns Disjunction + * Modulo returns Disjunction + * Modulo.Modulo_1_0 returns Disjunction + * UnaryExpression returns Disjunction + * Projection returns Disjunction + * Projection.Projection_1_0 returns Disjunction + * AtomicExpression returns Disjunction + * + * Constraint: + * (left=Disjunction_Disjunction_1_0 right=Implication) + */ + protected void sequence_Disjunction(ISerializationContext context, Disjunction semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getDisjunction_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getDisjunction_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getDisjunction_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getDisjunction_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getDisjunctionAccess().getDisjunctionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getDisjunctionAccess().getRightImplicationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns Division + * QuantifiedExpression returns Division + * Conditional returns Division + * Conditional.Conditional_1_1 returns Division + * Disjunction returns Division + * Disjunction.Disjunction_1_0 returns Division + * Implication returns Division + * Implication.Implication_1_0 returns Division + * Conjunction returns Division + * Conjunction.Conjunction_1_0 returns Division + * Comparison returns Division + * Comparison.ComparisonEqual_1_0_0_0 returns Division + * Comparison.ComparisonNotEqual_1_0_1_0 returns Division + * Comparison.ComparisonLesser_1_0_2_0 returns Division + * Comparison.ComparisonLesserEqual_1_0_3_0 returns Division + * Comparison.ComparisonGreater_1_0_4_0 returns Division + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns Division + * Addition returns Division + * Addition.Addition_1_0 returns Division + * Substraction returns Division + * Substraction.Substraction_1_0 returns Division + * Multiplication returns Division + * Multiplication.Multiplication_1_0 returns Division + * Division returns Division + * Division.Division_1_0 returns Division + * Modulo returns Division + * Modulo.Modulo_1_0 returns Division + * UnaryExpression returns Division + * Projection returns Division + * Projection.Projection_1_0 returns Division + * AtomicExpression returns Division + * + * Constraint: + * (left=Division_Division_1_0 right=Modulo) + */ + protected void sequence_Division(ISerializationContext context, Division semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getDivision_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getDivision_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getDivision_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getDivision_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getDivisionAccess().getDivisionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getDivisionAccess().getRightModuloParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns EnqueueExpression + * QuantifiedExpression returns EnqueueExpression + * Conditional returns EnqueueExpression + * Conditional.Conditional_1_1 returns EnqueueExpression + * Disjunction returns EnqueueExpression + * Disjunction.Disjunction_1_0 returns EnqueueExpression + * Implication returns EnqueueExpression + * Implication.Implication_1_0 returns EnqueueExpression + * Conjunction returns EnqueueExpression + * Conjunction.Conjunction_1_0 returns EnqueueExpression + * Comparison returns EnqueueExpression + * Comparison.ComparisonEqual_1_0_0_0 returns EnqueueExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns EnqueueExpression + * Comparison.ComparisonLesser_1_0_2_0 returns EnqueueExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns EnqueueExpression + * Comparison.ComparisonGreater_1_0_4_0 returns EnqueueExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns EnqueueExpression + * Addition returns EnqueueExpression + * Addition.Addition_1_0 returns EnqueueExpression + * Substraction returns EnqueueExpression + * Substraction.Substraction_1_0 returns EnqueueExpression + * Multiplication returns EnqueueExpression + * Multiplication.Multiplication_1_0 returns EnqueueExpression + * Division returns EnqueueExpression + * Division.Division_1_0 returns EnqueueExpression + * Modulo returns EnqueueExpression + * Modulo.Modulo_1_0 returns EnqueueExpression + * UnaryExpression returns EnqueueExpression + * Projection returns EnqueueExpression + * Projection.Projection_1_0 returns EnqueueExpression + * AtomicExpression returns EnqueueExpression + * EnqueueExpression returns EnqueueExpression + * + * Constraint: + * (element=Expression queue=Expression) + */ + protected void sequence_EnqueueExpression(ISerializationContext context, EnqueueExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getEnqueueExpression_Element()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getEnqueueExpression_Element())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getEnqueueExpression_Queue()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getEnqueueExpression_Queue())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getEnqueueExpressionAccess().getElementExpressionParserRuleCall_2_0(), semanticObject.getElement()); + feeder.accept(grammarAccess.getEnqueueExpressionAccess().getQueueExpressionParserRuleCall_4_0(), semanticObject.getQueue()); + feeder.finish(); + } + + + /** + * Contexts: + * SequencePattern.LeadsToPattern_1_0_1 returns EnterStateEvent + * SequencePattern.PrecedesPattern_1_1_1 returns EnterStateEvent + * LTLProperty returns EnterStateEvent + * LTLQuantified returns EnterStateEvent + * LTLDisjunction returns EnterStateEvent + * LTLDisjunction.LTLDisjunction_1_0 returns EnterStateEvent + * LTLImplication returns EnterStateEvent + * LTLImplication.LTLImplication_1_0 returns EnterStateEvent + * LTLConjunction returns EnterStateEvent + * LTLConjunction.LTLConjunction_1_0 returns EnterStateEvent + * LTLBinary returns EnterStateEvent + * LTLBinary.LTLUntil_1_0_0 returns EnterStateEvent + * LTLBinary.LTLRelease_1_1_0 returns EnterStateEvent + * LTLUnary returns EnterStateEvent + * AtomicLTL returns EnterStateEvent + * StateEvent returns EnterStateEvent + * EnterStateEvent returns EnterStateEvent + * Observable returns EnterStateEvent + * ObservableDisjunction returns EnterStateEvent + * ObservableDisjunction.ObservableDisjunction_1_0 returns EnterStateEvent + * ObservableImplication returns EnterStateEvent + * ObservableImplication.ObservableImplication_1_0 returns EnterStateEvent + * ObservableConjunction returns EnterStateEvent + * ObservableConjunction.ObservableConjunction_1_0 returns EnterStateEvent + * ObservableNegation returns EnterStateEvent + * AtomicObservable returns EnterStateEvent + * ObservableEvent returns EnterStateEvent + * + * Constraint: + * subject=AtomicObservable + */ + protected void sequence_EnterStateEvent(ISerializationContext context, EnterStateEvent semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getStateEvent_Subject()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getStateEvent_Subject())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getEnterStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0(), semanticObject.getSubject()); + feeder.finish(); + } + + + /** + * Contexts: + * Subject returns EventSubject + * EventSubject returns EventSubject + * + * Constraint: + * event=ID + */ + protected void sequence_EventSubject(ISerializationContext context, EventSubject semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getEventSubject_Event()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getEventSubject_Event())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getEventSubjectAccess().getEventIDTerminalRuleCall_1_0(), semanticObject.getEvent()); + feeder.finish(); + } + + + /** + * Contexts: + * ExtendedConditionalStatement returns ExtendedConditionalStatement + * + * Constraint: + * (condition=Expression then=StatementSequence) + */ + protected void sequence_ExtendedConditionalStatement(ISerializationContext context, ExtendedConditionalStatement semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Condition())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getExtendedConditionalStatement_Then())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getExtendedConditionalStatementAccess().getConditionExpressionParserRuleCall_1_0(), semanticObject.getCondition()); + feeder.accept(grammarAccess.getExtendedConditionalStatementAccess().getThenStatementSequenceParserRuleCall_3_0(), semanticObject.getThen()); + feeder.finish(); + } + + + /** + * Contexts: + * FieldExpression returns FieldExpression + * + * Constraint: + * (field=[RecordFieldDeclarationUse|ID] value=Expression) + */ + protected void sequence_FieldExpression(ISerializationContext context, FieldExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getFieldExpression_Field()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getFieldExpression_Field())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getFieldExpression_Value()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getFieldExpression_Value())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getFieldExpressionAccess().getFieldRecordFieldDeclarationUseIDTerminalRuleCall_0_0_1(), semanticObject.getField()); + feeder.accept(grammarAccess.getFieldExpressionAccess().getValueExpressionParserRuleCall_2_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * UnlessStatement returns ForeachStatement + * UnlessStatement.UnlessStatement_1_0 returns ForeachStatement + * StatementChoice returns ForeachStatement + * StatementChoice.StatementChoice_1_0 returns ForeachStatement + * StatementSequence returns ForeachStatement + * StatementSequence.StatementSequence_1_0 returns ForeachStatement + * Statement returns ForeachStatement + * ForeachStatement returns ForeachStatement + * + * Constraint: + * (variable=VariableDeclaration body=StatementSequence) + */ + protected void sequence_ForeachStatement(ISerializationContext context, ForeachStatement semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getForeachStatement_Variable()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getForeachStatement_Variable())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getForeachStatement_Body()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getForeachStatement_Body())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getForeachStatementAccess().getVariableVariableDeclarationParserRuleCall_1_0(), semanticObject.getVariable()); + feeder.accept(grammarAccess.getForeachStatementAccess().getBodyStatementSequenceParserRuleCall_3_0(), semanticObject.getBody()); + feeder.finish(); + } + + + /** + * Contexts: + * NamedElement returns FunctionDeclaration + * ExpressionDeclarationUse returns FunctionDeclaration + * Declaration returns FunctionDeclaration + * ParameterizedDeclaration returns FunctionDeclaration + * FunctionDeclaration returns FunctionDeclaration + * + * Constraint: + * ( + * name=ID + * (parameters+=ParametersDeclaration parameters+=ParametersDeclaration*)? + * type=Type + * (variables+=VariablesDeclaration variables+=VariablesDeclaration*)? + * statement=Statement + * ) + */ + protected void sequence_FunctionDeclaration(ISerializationContext context, FunctionDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns ArrayAccessExpression + * QuantifiedExpression returns ArrayAccessExpression + * Conditional returns ArrayAccessExpression + * Conditional.Conditional_1_1 returns ArrayAccessExpression + * Disjunction returns ArrayAccessExpression + * Disjunction.Disjunction_1_0 returns ArrayAccessExpression + * Implication returns ArrayAccessExpression + * Implication.Implication_1_0 returns ArrayAccessExpression + * Conjunction returns ArrayAccessExpression + * Conjunction.Conjunction_1_0 returns ArrayAccessExpression + * Comparison returns ArrayAccessExpression + * Comparison.ComparisonEqual_1_0_0_0 returns ArrayAccessExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns ArrayAccessExpression + * Comparison.ComparisonLesser_1_0_2_0 returns ArrayAccessExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ArrayAccessExpression + * Comparison.ComparisonGreater_1_0_4_0 returns ArrayAccessExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ArrayAccessExpression + * Addition returns ArrayAccessExpression + * Addition.Addition_1_0 returns ArrayAccessExpression + * Substraction returns ArrayAccessExpression + * Substraction.Substraction_1_0 returns ArrayAccessExpression + * Multiplication returns ArrayAccessExpression + * Multiplication.Multiplication_1_0 returns ArrayAccessExpression + * Division returns ArrayAccessExpression + * Division.Division_1_0 returns ArrayAccessExpression + * Modulo returns ArrayAccessExpression + * Modulo.Modulo_1_0 returns ArrayAccessExpression + * UnaryExpression returns ArrayAccessExpression + * Projection returns ArrayAccessExpression + * Projection.Projection_1_0 returns ArrayAccessExpression + * ValueExpression returns ArrayAccessExpression + * AtomicExpression returns ArrayAccessExpression + * IdentifierExpression returns ArrayAccessExpression + * IdentifierExpression.ArrayAccessExpression_1_1_0_1 returns ArrayAccessExpression + * IdentifierExpression.RecordAccessExpression_1_1_1_1 returns ArrayAccessExpression + * + * Constraint: + * (child=IdentifierExpression_ArrayAccessExpression_1_1_0_1 indexes+=Expression indexes+=Expression*) + */ + protected void sequence_IdentifierExpression(ISerializationContext context, ArrayAccessExpression semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns ConstructionExpression + * QuantifiedExpression returns ConstructionExpression + * Conditional returns ConstructionExpression + * Conditional.Conditional_1_1 returns ConstructionExpression + * Disjunction returns ConstructionExpression + * Disjunction.Disjunction_1_0 returns ConstructionExpression + * Implication returns ConstructionExpression + * Implication.Implication_1_0 returns ConstructionExpression + * Conjunction returns ConstructionExpression + * Conjunction.Conjunction_1_0 returns ConstructionExpression + * Comparison returns ConstructionExpression + * Comparison.ComparisonEqual_1_0_0_0 returns ConstructionExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns ConstructionExpression + * Comparison.ComparisonLesser_1_0_2_0 returns ConstructionExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ConstructionExpression + * Comparison.ComparisonGreater_1_0_4_0 returns ConstructionExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ConstructionExpression + * Addition returns ConstructionExpression + * Addition.Addition_1_0 returns ConstructionExpression + * Substraction returns ConstructionExpression + * Substraction.Substraction_1_0 returns ConstructionExpression + * Multiplication returns ConstructionExpression + * Multiplication.Multiplication_1_0 returns ConstructionExpression + * Division returns ConstructionExpression + * Division.Division_1_0 returns ConstructionExpression + * Modulo returns ConstructionExpression + * Modulo.Modulo_1_0 returns ConstructionExpression + * UnaryExpression returns ConstructionExpression + * Projection returns ConstructionExpression + * Projection.Projection_1_0 returns ConstructionExpression + * ValueExpression returns ConstructionExpression + * AtomicExpression returns ConstructionExpression + * IdentifierExpression returns ConstructionExpression + * + * Constraint: + * (declaration=[ExpressionDeclarationUse|ID] (parameters+=Expression parameters+=Expression*)?) + */ + protected void sequence_IdentifierExpression(ISerializationContext context, ConstructionExpression semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns IdentifierExpression + * QuantifiedExpression returns IdentifierExpression + * Conditional returns IdentifierExpression + * Conditional.Conditional_1_1 returns IdentifierExpression + * Disjunction returns IdentifierExpression + * Disjunction.Disjunction_1_0 returns IdentifierExpression + * Implication returns IdentifierExpression + * Implication.Implication_1_0 returns IdentifierExpression + * Conjunction returns IdentifierExpression + * Conjunction.Conjunction_1_0 returns IdentifierExpression + * Comparison returns IdentifierExpression + * Comparison.ComparisonEqual_1_0_0_0 returns IdentifierExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns IdentifierExpression + * Comparison.ComparisonLesser_1_0_2_0 returns IdentifierExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns IdentifierExpression + * Comparison.ComparisonGreater_1_0_4_0 returns IdentifierExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns IdentifierExpression + * Addition returns IdentifierExpression + * Addition.Addition_1_0 returns IdentifierExpression + * Substraction returns IdentifierExpression + * Substraction.Substraction_1_0 returns IdentifierExpression + * Multiplication returns IdentifierExpression + * Multiplication.Multiplication_1_0 returns IdentifierExpression + * Division returns IdentifierExpression + * Division.Division_1_0 returns IdentifierExpression + * Modulo returns IdentifierExpression + * Modulo.Modulo_1_0 returns IdentifierExpression + * UnaryExpression returns IdentifierExpression + * Projection returns IdentifierExpression + * Projection.Projection_1_0 returns IdentifierExpression + * ValueExpression returns IdentifierExpression + * AtomicExpression returns IdentifierExpression + * IdentifierExpression returns IdentifierExpression + * IdentifierExpression.ArrayAccessExpression_1_1_0_1 returns IdentifierExpression + * IdentifierExpression.RecordAccessExpression_1_1_1_1 returns IdentifierExpression + * + * Constraint: + * declaration=[ExpressionDeclarationUse|ID] + */ + protected void sequence_IdentifierExpression(ISerializationContext context, IdentifierExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getIdentifierExpression_Declaration()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getIdentifierExpression_Declaration())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getIdentifierExpressionAccess().getDeclarationExpressionDeclarationUseIDTerminalRuleCall_1_0_0_1(), semanticObject.getDeclaration()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns RecordAccessExpression + * QuantifiedExpression returns RecordAccessExpression + * Conditional returns RecordAccessExpression + * Conditional.Conditional_1_1 returns RecordAccessExpression + * Disjunction returns RecordAccessExpression + * Disjunction.Disjunction_1_0 returns RecordAccessExpression + * Implication returns RecordAccessExpression + * Implication.Implication_1_0 returns RecordAccessExpression + * Conjunction returns RecordAccessExpression + * Conjunction.Conjunction_1_0 returns RecordAccessExpression + * Comparison returns RecordAccessExpression + * Comparison.ComparisonEqual_1_0_0_0 returns RecordAccessExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns RecordAccessExpression + * Comparison.ComparisonLesser_1_0_2_0 returns RecordAccessExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns RecordAccessExpression + * Comparison.ComparisonGreater_1_0_4_0 returns RecordAccessExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns RecordAccessExpression + * Addition returns RecordAccessExpression + * Addition.Addition_1_0 returns RecordAccessExpression + * Substraction returns RecordAccessExpression + * Substraction.Substraction_1_0 returns RecordAccessExpression + * Multiplication returns RecordAccessExpression + * Multiplication.Multiplication_1_0 returns RecordAccessExpression + * Division returns RecordAccessExpression + * Division.Division_1_0 returns RecordAccessExpression + * Modulo returns RecordAccessExpression + * Modulo.Modulo_1_0 returns RecordAccessExpression + * UnaryExpression returns RecordAccessExpression + * Projection returns RecordAccessExpression + * Projection.Projection_1_0 returns RecordAccessExpression + * ValueExpression returns RecordAccessExpression + * AtomicExpression returns RecordAccessExpression + * IdentifierExpression returns RecordAccessExpression + * IdentifierExpression.ArrayAccessExpression_1_1_0_1 returns RecordAccessExpression + * IdentifierExpression.RecordAccessExpression_1_1_1_1 returns RecordAccessExpression + * + * Constraint: + * (child=IdentifierExpression_RecordAccessExpression_1_1_1_1 field=[RecordFieldDeclaration|ID]) + */ + protected void sequence_IdentifierExpression(ISerializationContext context, RecordAccessExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getRecordAccessExpression_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getRecordAccessExpression_Child())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getRecordAccessExpression_Field()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getRecordAccessExpression_Field())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getIdentifierExpressionAccess().getRecordAccessExpressionChildAction_1_1_1_1(), semanticObject.getChild()); + feeder.accept(grammarAccess.getIdentifierExpressionAccess().getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1(), semanticObject.getField()); + feeder.finish(); + } + + + /** + * Contexts: + * UnlessStatement returns ArrayAccessPattern + * UnlessStatement.UnlessStatement_1_0 returns ArrayAccessPattern + * StatementChoice returns ArrayAccessPattern + * StatementChoice.StatementChoice_1_0 returns ArrayAccessPattern + * StatementSequence returns ArrayAccessPattern + * StatementSequence.StatementSequence_1_0 returns ArrayAccessPattern + * Statement returns ArrayAccessPattern + * PatternStatement returns ArrayAccessPattern + * PatternStatement.AssignStatement_1_0_1 returns ArrayAccessPattern + * PatternStatement.AssignStatement_1_1_1 returns ArrayAccessPattern + * PatternStatement.AssignAnyStatement_1_2_1 returns ArrayAccessPattern + * PatternStatement.AssignAnyStatement_1_3_1 returns ArrayAccessPattern + * PatternStatement.SendStatement_1_4_1 returns ArrayAccessPattern + * PatternStatement.ReceiveStatement_1_5_1 returns ArrayAccessPattern + * Pattern returns ArrayAccessPattern + * IdentifierPattern returns ArrayAccessPattern + * IdentifierPattern.ArrayAccessPattern_1_1_0_1 returns ArrayAccessPattern + * IdentifierPattern.RecordAccessPattern_1_1_1_1 returns ArrayAccessPattern + * + * Constraint: + * (source=IdentifierPattern_ArrayAccessPattern_1_1_0_1 index=Expression) + */ + protected void sequence_IdentifierPattern(ISerializationContext context, ArrayAccessPattern semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getArrayAccessPattern_Source()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getArrayAccessPattern_Source())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getArrayAccessPattern_Index()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getArrayAccessPattern_Index())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getIdentifierPatternAccess().getArrayAccessPatternSourceAction_1_1_0_1(), semanticObject.getSource()); + feeder.accept(grammarAccess.getIdentifierPatternAccess().getIndexExpressionParserRuleCall_1_1_0_2_0(), semanticObject.getIndex()); + feeder.finish(); + } + + + /** + * Contexts: + * UnlessStatement returns ConstructorPattern + * UnlessStatement.UnlessStatement_1_0 returns ConstructorPattern + * StatementChoice returns ConstructorPattern + * StatementChoice.StatementChoice_1_0 returns ConstructorPattern + * StatementSequence returns ConstructorPattern + * StatementSequence.StatementSequence_1_0 returns ConstructorPattern + * Statement returns ConstructorPattern + * PatternStatement returns ConstructorPattern + * PatternStatement.AssignStatement_1_0_1 returns ConstructorPattern + * PatternStatement.AssignStatement_1_1_1 returns ConstructorPattern + * PatternStatement.AssignAnyStatement_1_2_1 returns ConstructorPattern + * PatternStatement.AssignAnyStatement_1_3_1 returns ConstructorPattern + * PatternStatement.SendStatement_1_4_1 returns ConstructorPattern + * PatternStatement.ReceiveStatement_1_5_1 returns ConstructorPattern + * Pattern returns ConstructorPattern + * IdentifierPattern returns ConstructorPattern + * + * Constraint: + * (declaration=[PatternDeclarationUse|ID] (parameters+=Pattern parameters+=Pattern*)?) + */ + protected void sequence_IdentifierPattern(ISerializationContext context, ConstructorPattern semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns IdentifierPattern + * UnlessStatement.UnlessStatement_1_0 returns IdentifierPattern + * StatementChoice returns IdentifierPattern + * StatementChoice.StatementChoice_1_0 returns IdentifierPattern + * StatementSequence returns IdentifierPattern + * StatementSequence.StatementSequence_1_0 returns IdentifierPattern + * Statement returns IdentifierPattern + * PatternStatement returns IdentifierPattern + * PatternStatement.AssignStatement_1_0_1 returns IdentifierPattern + * PatternStatement.AssignStatement_1_1_1 returns IdentifierPattern + * PatternStatement.AssignAnyStatement_1_2_1 returns IdentifierPattern + * PatternStatement.AssignAnyStatement_1_3_1 returns IdentifierPattern + * PatternStatement.SendStatement_1_4_1 returns IdentifierPattern + * PatternStatement.ReceiveStatement_1_5_1 returns IdentifierPattern + * Pattern returns IdentifierPattern + * IdentifierPattern returns IdentifierPattern + * IdentifierPattern.ArrayAccessPattern_1_1_0_1 returns IdentifierPattern + * IdentifierPattern.RecordAccessPattern_1_1_1_1 returns IdentifierPattern + * + * Constraint: + * declaration=[PatternDeclarationUse|ID] + */ + protected void sequence_IdentifierPattern(ISerializationContext context, IdentifierPattern semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getIdentifierPattern_Declaration()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getIdentifierPattern_Declaration())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getIdentifierPatternAccess().getDeclarationPatternDeclarationUseIDTerminalRuleCall_1_0_0_1(), semanticObject.getDeclaration()); + feeder.finish(); + } + + + /** + * Contexts: + * UnlessStatement returns RecordAccessPattern + * UnlessStatement.UnlessStatement_1_0 returns RecordAccessPattern + * StatementChoice returns RecordAccessPattern + * StatementChoice.StatementChoice_1_0 returns RecordAccessPattern + * StatementSequence returns RecordAccessPattern + * StatementSequence.StatementSequence_1_0 returns RecordAccessPattern + * Statement returns RecordAccessPattern + * PatternStatement returns RecordAccessPattern + * PatternStatement.AssignStatement_1_0_1 returns RecordAccessPattern + * PatternStatement.AssignStatement_1_1_1 returns RecordAccessPattern + * PatternStatement.AssignAnyStatement_1_2_1 returns RecordAccessPattern + * PatternStatement.AssignAnyStatement_1_3_1 returns RecordAccessPattern + * PatternStatement.SendStatement_1_4_1 returns RecordAccessPattern + * PatternStatement.ReceiveStatement_1_5_1 returns RecordAccessPattern + * Pattern returns RecordAccessPattern + * IdentifierPattern returns RecordAccessPattern + * IdentifierPattern.ArrayAccessPattern_1_1_0_1 returns RecordAccessPattern + * IdentifierPattern.RecordAccessPattern_1_1_1_1 returns RecordAccessPattern + * + * Constraint: + * (source=IdentifierPattern_RecordAccessPattern_1_1_1_1 field=[RecordFieldDeclaration|ID]) + */ + protected void sequence_IdentifierPattern(ISerializationContext context, RecordAccessPattern semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getRecordAccessPattern_Source()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getRecordAccessPattern_Source())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getRecordAccessPattern_Field()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getRecordAccessPattern_Field())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getIdentifierPatternAccess().getRecordAccessPatternSourceAction_1_1_1_1(), semanticObject.getSource()); + feeder.accept(grammarAccess.getIdentifierPatternAccess().getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1(), semanticObject.getField()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns Implication + * QuantifiedExpression returns Implication + * Conditional returns Implication + * Conditional.Conditional_1_1 returns Implication + * Disjunction returns Implication + * Disjunction.Disjunction_1_0 returns Implication + * Implication returns Implication + * Implication.Implication_1_0 returns Implication + * Conjunction returns Implication + * Conjunction.Conjunction_1_0 returns Implication + * Comparison returns Implication + * Comparison.ComparisonEqual_1_0_0_0 returns Implication + * Comparison.ComparisonNotEqual_1_0_1_0 returns Implication + * Comparison.ComparisonLesser_1_0_2_0 returns Implication + * Comparison.ComparisonLesserEqual_1_0_3_0 returns Implication + * Comparison.ComparisonGreater_1_0_4_0 returns Implication + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns Implication + * Addition returns Implication + * Addition.Addition_1_0 returns Implication + * Substraction returns Implication + * Substraction.Substraction_1_0 returns Implication + * Multiplication returns Implication + * Multiplication.Multiplication_1_0 returns Implication + * Division returns Implication + * Division.Division_1_0 returns Implication + * Modulo returns Implication + * Modulo.Modulo_1_0 returns Implication + * UnaryExpression returns Implication + * Projection returns Implication + * Projection.Projection_1_0 returns Implication + * AtomicExpression returns Implication + * + * Constraint: + * (left=Implication_Implication_1_0 right=Implication) + */ + protected void sequence_Implication(ISerializationContext context, Implication semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getImplication_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getImplication_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getImplication_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getImplication_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getImplicationAccess().getImplicationLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getImplicationAccess().getRightImplicationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * ImportDeclaration returns ImportDeclaration + * + * Constraint: + * importURI=STRING + */ + protected void sequence_ImportDeclaration(ISerializationContext context, ImportDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getImportDeclaration_ImportURI()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getImportDeclaration_ImportURI())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getImportDeclarationAccess().getImportURISTRINGTerminalRuleCall_1_0(), semanticObject.getImportURI()); + feeder.finish(); + } + + + /** + * Contexts: + * UpperBound returns InfiniteUpperBound + * InfiniteUpperBound returns InfiniteUpperBound + * + * Constraint: + * {InfiniteUpperBound} + */ + protected void sequence_InfiniteUpperBound(ISerializationContext context, InfiniteUpperBound semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Property returns InfinitelyOftenPattern + * QuantifiedProperty returns InfinitelyOftenPattern + * PropertyDisjunction returns InfinitelyOftenPattern + * PropertyDisjunction.PropertyDisjunction_1_0 returns InfinitelyOftenPattern + * PropertyImplication returns InfinitelyOftenPattern + * PropertyImplication.PropertyImplication_1_0 returns InfinitelyOftenPattern + * PropertyConjunction returns InfinitelyOftenPattern + * PropertyConjunction.PropertyConjunction_1_0 returns InfinitelyOftenPattern + * PropertyNegation returns InfinitelyOftenPattern + * AtomicProperty returns InfinitelyOftenPattern + * PatternProperty returns InfinitelyOftenPattern + * InfinitelyOftenPattern returns InfinitelyOftenPattern + * + * Constraint: + * subject=AtomicObservable + */ + protected void sequence_InfinitelyOftenPattern(ISerializationContext context, InfinitelyOftenPattern semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getInfinitelyOftenPattern_Subject())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getInfinitelyOftenPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0(), semanticObject.getSubject()); + feeder.finish(); + } + + + /** + * Contexts: + * PathDeclarationUse returns InstanceDeclaration + * Block returns InstanceDeclaration + * InstanceDeclaration returns InstanceDeclaration + * + * Constraint: + * (local=PortSet? instance=ComponentInstance) + */ + protected void sequence_InstanceDeclaration(ISerializationContext context, InstanceDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns IntegerPattern + * UnlessStatement.UnlessStatement_1_0 returns IntegerPattern + * StatementChoice returns IntegerPattern + * StatementChoice.StatementChoice_1_0 returns IntegerPattern + * StatementSequence returns IntegerPattern + * StatementSequence.StatementSequence_1_0 returns IntegerPattern + * Statement returns IntegerPattern + * PatternStatement returns IntegerPattern + * PatternStatement.AssignStatement_1_0_1 returns IntegerPattern + * PatternStatement.AssignStatement_1_1_1 returns IntegerPattern + * PatternStatement.AssignAnyStatement_1_2_1 returns IntegerPattern + * PatternStatement.AssignAnyStatement_1_3_1 returns IntegerPattern + * PatternStatement.SendStatement_1_4_1 returns IntegerPattern + * PatternStatement.ReceiveStatement_1_5_1 returns IntegerPattern + * Pattern returns IntegerPattern + * IntegerPattern returns IntegerPattern + * + * Constraint: + * (negative?='-'? value=INT) + */ + protected void sequence_IntegerPattern(ISerializationContext context, IntegerPattern semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * LTLProperty returns LTLRelease + * LTLQuantified returns LTLRelease + * LTLDisjunction returns LTLRelease + * LTLDisjunction.LTLDisjunction_1_0 returns LTLRelease + * LTLImplication returns LTLRelease + * LTLImplication.LTLImplication_1_0 returns LTLRelease + * LTLConjunction returns LTLRelease + * LTLConjunction.LTLConjunction_1_0 returns LTLRelease + * LTLBinary returns LTLRelease + * LTLBinary.LTLUntil_1_0_0 returns LTLRelease + * LTLBinary.LTLRelease_1_1_0 returns LTLRelease + * LTLUnary returns LTLRelease + * AtomicLTL returns LTLRelease + * + * Constraint: + * (left=LTLBinary_LTLRelease_1_1_0 right=LTLUnary) + */ + protected void sequence_LTLBinary(ISerializationContext context, LTLRelease semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLRelease_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLRelease_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLRelease_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLRelease_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLBinaryAccess().getLTLReleaseLeftAction_1_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLUntil + * LTLQuantified returns LTLUntil + * LTLDisjunction returns LTLUntil + * LTLDisjunction.LTLDisjunction_1_0 returns LTLUntil + * LTLImplication returns LTLUntil + * LTLImplication.LTLImplication_1_0 returns LTLUntil + * LTLConjunction returns LTLUntil + * LTLConjunction.LTLConjunction_1_0 returns LTLUntil + * LTLBinary returns LTLUntil + * LTLBinary.LTLUntil_1_0_0 returns LTLUntil + * LTLBinary.LTLRelease_1_1_0 returns LTLUntil + * LTLUnary returns LTLUntil + * AtomicLTL returns LTLUntil + * + * Constraint: + * (left=LTLBinary_LTLUntil_1_0_0 right=LTLUnary) + */ + protected void sequence_LTLBinary(ISerializationContext context, LTLUntil semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLUntil_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLUntil_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLUntil_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLUntil_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLBinaryAccess().getLTLUntilLeftAction_1_0_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getLTLBinaryAccess().getRightLTLUnaryParserRuleCall_1_0_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLConjunction + * LTLQuantified returns LTLConjunction + * LTLDisjunction returns LTLConjunction + * LTLDisjunction.LTLDisjunction_1_0 returns LTLConjunction + * LTLImplication returns LTLConjunction + * LTLImplication.LTLImplication_1_0 returns LTLConjunction + * LTLConjunction returns LTLConjunction + * LTLConjunction.LTLConjunction_1_0 returns LTLConjunction + * LTLBinary returns LTLConjunction + * LTLBinary.LTLUntil_1_0_0 returns LTLConjunction + * LTLBinary.LTLRelease_1_1_0 returns LTLConjunction + * LTLUnary returns LTLConjunction + * AtomicLTL returns LTLConjunction + * + * Constraint: + * (left=LTLConjunction_LTLConjunction_1_0 right=LTLBinary) + */ + protected void sequence_LTLConjunction(ISerializationContext context, LTLConjunction semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLConjunction_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLConjunction_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLConjunction_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLConjunction_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLConjunctionAccess().getLTLConjunctionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getLTLConjunctionAccess().getRightLTLBinaryParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLDisjunction + * LTLQuantified returns LTLDisjunction + * LTLDisjunction returns LTLDisjunction + * LTLDisjunction.LTLDisjunction_1_0 returns LTLDisjunction + * LTLImplication returns LTLDisjunction + * LTLImplication.LTLImplication_1_0 returns LTLDisjunction + * LTLConjunction returns LTLDisjunction + * LTLConjunction.LTLConjunction_1_0 returns LTLDisjunction + * LTLBinary returns LTLDisjunction + * LTLBinary.LTLUntil_1_0_0 returns LTLDisjunction + * LTLBinary.LTLRelease_1_1_0 returns LTLDisjunction + * LTLUnary returns LTLDisjunction + * AtomicLTL returns LTLDisjunction + * + * Constraint: + * (left=LTLDisjunction_LTLDisjunction_1_0 right=LTLImplication) + */ + protected void sequence_LTLDisjunction(ISerializationContext context, LTLDisjunction semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLDisjunction_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLDisjunction_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLDisjunction_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLDisjunction_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLDisjunctionAccess().getLTLDisjunctionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getLTLDisjunctionAccess().getRightLTLImplicationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLImplication + * LTLQuantified returns LTLImplication + * LTLDisjunction returns LTLImplication + * LTLDisjunction.LTLDisjunction_1_0 returns LTLImplication + * LTLImplication returns LTLImplication + * LTLImplication.LTLImplication_1_0 returns LTLImplication + * LTLConjunction returns LTLImplication + * LTLConjunction.LTLConjunction_1_0 returns LTLImplication + * LTLBinary returns LTLImplication + * LTLBinary.LTLUntil_1_0_0 returns LTLImplication + * LTLBinary.LTLRelease_1_1_0 returns LTLImplication + * LTLUnary returns LTLImplication + * AtomicLTL returns LTLImplication + * + * Constraint: + * (left=LTLImplication_LTLImplication_1_0 right=LTLImplication) + */ + protected void sequence_LTLImplication(ISerializationContext context, LTLImplication semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLImplication_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLImplication_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLImplication_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLImplication_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLImplicationAccess().getLTLImplicationLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getLTLImplicationAccess().getRightLTLImplicationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Property returns LTLPattern + * QuantifiedProperty returns LTLPattern + * PropertyDisjunction returns LTLPattern + * PropertyDisjunction.PropertyDisjunction_1_0 returns LTLPattern + * PropertyImplication returns LTLPattern + * PropertyImplication.PropertyImplication_1_0 returns LTLPattern + * PropertyConjunction returns LTLPattern + * PropertyConjunction.PropertyConjunction_1_0 returns LTLPattern + * PropertyNegation returns LTLPattern + * AtomicProperty returns LTLPattern + * PatternProperty returns LTLPattern + * LTLPattern returns LTLPattern + * + * Constraint: + * property=LTLUnary + */ + protected void sequence_LTLPattern(ISerializationContext context, LTLPattern semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLPattern_Property()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLPattern_Property())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLPatternAccess().getPropertyLTLUnaryParserRuleCall_1_0(), semanticObject.getProperty()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLAll + * LTLQuantified returns LTLAll + * LTLDisjunction returns LTLAll + * LTLDisjunction.LTLDisjunction_1_0 returns LTLAll + * LTLImplication returns LTLAll + * LTLImplication.LTLImplication_1_0 returns LTLAll + * LTLConjunction returns LTLAll + * LTLConjunction.LTLConjunction_1_0 returns LTLAll + * LTLBinary returns LTLAll + * LTLBinary.LTLUntil_1_0_0 returns LTLAll + * LTLBinary.LTLRelease_1_1_0 returns LTLAll + * LTLUnary returns LTLAll + * AtomicLTL returns LTLAll + * + * Constraint: + * (index=VariableDeclaration type=RangeType child=LTLQuantified) + */ + protected void sequence_LTLQuantified(ISerializationContext context, LTLAll semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLAll_Index()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLAll_Index())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLAll_Type()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLAll_Type())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLAll_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLAll_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLQuantifiedAccess().getIndexVariableDeclarationParserRuleCall_0_1_0(), semanticObject.getIndex()); + feeder.accept(grammarAccess.getLTLQuantifiedAccess().getTypeRangeTypeParserRuleCall_0_3_0(), semanticObject.getType()); + feeder.accept(grammarAccess.getLTLQuantifiedAccess().getChildLTLQuantifiedParserRuleCall_0_5_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLExists + * LTLQuantified returns LTLExists + * LTLDisjunction returns LTLExists + * LTLDisjunction.LTLDisjunction_1_0 returns LTLExists + * LTLImplication returns LTLExists + * LTLImplication.LTLImplication_1_0 returns LTLExists + * LTLConjunction returns LTLExists + * LTLConjunction.LTLConjunction_1_0 returns LTLExists + * LTLBinary returns LTLExists + * LTLBinary.LTLUntil_1_0_0 returns LTLExists + * LTLBinary.LTLRelease_1_1_0 returns LTLExists + * LTLUnary returns LTLExists + * AtomicLTL returns LTLExists + * + * Constraint: + * (index=VariableDeclaration type=RangeType child=LTLQuantified) + */ + protected void sequence_LTLQuantified(ISerializationContext context, LTLExists semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLExists_Index()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLExists_Index())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLExists_Type()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLExists_Type())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLExists_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLExists_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLQuantifiedAccess().getIndexVariableDeclarationParserRuleCall_0_1_0(), semanticObject.getIndex()); + feeder.accept(grammarAccess.getLTLQuantifiedAccess().getTypeRangeTypeParserRuleCall_0_3_0(), semanticObject.getType()); + feeder.accept(grammarAccess.getLTLQuantifiedAccess().getChildLTLQuantifiedParserRuleCall_0_5_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLUnaryAlways + * LTLQuantified returns LTLUnaryAlways + * LTLDisjunction returns LTLUnaryAlways + * LTLDisjunction.LTLDisjunction_1_0 returns LTLUnaryAlways + * LTLImplication returns LTLUnaryAlways + * LTLImplication.LTLImplication_1_0 returns LTLUnaryAlways + * LTLConjunction returns LTLUnaryAlways + * LTLConjunction.LTLConjunction_1_0 returns LTLUnaryAlways + * LTLBinary returns LTLUnaryAlways + * LTLBinary.LTLUntil_1_0_0 returns LTLUnaryAlways + * LTLBinary.LTLRelease_1_1_0 returns LTLUnaryAlways + * LTLUnary returns LTLUnaryAlways + * AtomicLTL returns LTLUnaryAlways + * + * Constraint: + * operand=LTLUnary + */ + protected void sequence_LTLUnary(ISerializationContext context, LTLUnaryAlways semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLUnaryAlways_Operand())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLUnaryAccess().getOperandLTLUnaryParserRuleCall_0_1_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLUnaryEventually + * LTLQuantified returns LTLUnaryEventually + * LTLDisjunction returns LTLUnaryEventually + * LTLDisjunction.LTLDisjunction_1_0 returns LTLUnaryEventually + * LTLImplication returns LTLUnaryEventually + * LTLImplication.LTLImplication_1_0 returns LTLUnaryEventually + * LTLConjunction returns LTLUnaryEventually + * LTLConjunction.LTLConjunction_1_0 returns LTLUnaryEventually + * LTLBinary returns LTLUnaryEventually + * LTLBinary.LTLUntil_1_0_0 returns LTLUnaryEventually + * LTLBinary.LTLRelease_1_1_0 returns LTLUnaryEventually + * LTLUnary returns LTLUnaryEventually + * AtomicLTL returns LTLUnaryEventually + * + * Constraint: + * operand=LTLUnary + */ + protected void sequence_LTLUnary(ISerializationContext context, LTLUnaryEventually semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLUnaryEventually_Operand())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLUnaryAccess().getOperandLTLUnaryParserRuleCall_0_1_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLUnaryNegation + * LTLQuantified returns LTLUnaryNegation + * LTLDisjunction returns LTLUnaryNegation + * LTLDisjunction.LTLDisjunction_1_0 returns LTLUnaryNegation + * LTLImplication returns LTLUnaryNegation + * LTLImplication.LTLImplication_1_0 returns LTLUnaryNegation + * LTLConjunction returns LTLUnaryNegation + * LTLConjunction.LTLConjunction_1_0 returns LTLUnaryNegation + * LTLBinary returns LTLUnaryNegation + * LTLBinary.LTLUntil_1_0_0 returns LTLUnaryNegation + * LTLBinary.LTLRelease_1_1_0 returns LTLUnaryNegation + * LTLUnary returns LTLUnaryNegation + * AtomicLTL returns LTLUnaryNegation + * + * Constraint: + * operand=LTLUnary + */ + protected void sequence_LTLUnary(ISerializationContext context, LTLUnaryNegation semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLUnaryNegation_Operand())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLUnaryAccess().getOperandLTLUnaryParserRuleCall_0_1_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * LTLProperty returns LTLUnaryNext + * LTLQuantified returns LTLUnaryNext + * LTLDisjunction returns LTLUnaryNext + * LTLDisjunction.LTLDisjunction_1_0 returns LTLUnaryNext + * LTLImplication returns LTLUnaryNext + * LTLImplication.LTLImplication_1_0 returns LTLUnaryNext + * LTLConjunction returns LTLUnaryNext + * LTLConjunction.LTLConjunction_1_0 returns LTLUnaryNext + * LTLBinary returns LTLUnaryNext + * LTLBinary.LTLUntil_1_0_0 returns LTLUnaryNext + * LTLBinary.LTLRelease_1_1_0 returns LTLUnaryNext + * LTLUnary returns LTLUnaryNext + * AtomicLTL returns LTLUnaryNext + * + * Constraint: + * operand=LTLUnary + */ + protected void sequence_LTLUnary(ISerializationContext context, LTLUnaryNext semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getLTLUnaryNext_Operand())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLTLUnaryAccess().getOperandLTLUnaryParserRuleCall_0_1_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * SequencePattern.LeadsToPattern_1_0_1 returns LeaveStateEvent + * SequencePattern.PrecedesPattern_1_1_1 returns LeaveStateEvent + * LTLProperty returns LeaveStateEvent + * LTLQuantified returns LeaveStateEvent + * LTLDisjunction returns LeaveStateEvent + * LTLDisjunction.LTLDisjunction_1_0 returns LeaveStateEvent + * LTLImplication returns LeaveStateEvent + * LTLImplication.LTLImplication_1_0 returns LeaveStateEvent + * LTLConjunction returns LeaveStateEvent + * LTLConjunction.LTLConjunction_1_0 returns LeaveStateEvent + * LTLBinary returns LeaveStateEvent + * LTLBinary.LTLUntil_1_0_0 returns LeaveStateEvent + * LTLBinary.LTLRelease_1_1_0 returns LeaveStateEvent + * LTLUnary returns LeaveStateEvent + * AtomicLTL returns LeaveStateEvent + * StateEvent returns LeaveStateEvent + * LeaveStateEvent returns LeaveStateEvent + * Observable returns LeaveStateEvent + * ObservableDisjunction returns LeaveStateEvent + * ObservableDisjunction.ObservableDisjunction_1_0 returns LeaveStateEvent + * ObservableImplication returns LeaveStateEvent + * ObservableImplication.ObservableImplication_1_0 returns LeaveStateEvent + * ObservableConjunction returns LeaveStateEvent + * ObservableConjunction.ObservableConjunction_1_0 returns LeaveStateEvent + * ObservableNegation returns LeaveStateEvent + * AtomicObservable returns LeaveStateEvent + * ObservableEvent returns LeaveStateEvent + * + * Constraint: + * subject=AtomicObservable + */ + protected void sequence_LeaveStateEvent(ISerializationContext context, LeaveStateEvent semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getStateEvent_Subject()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getStateEvent_Subject())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLeaveStateEventAccess().getSubjectAtomicObservableParserRuleCall_1_0(), semanticObject.getSubject()); + feeder.finish(); + } + + + /** + * Contexts: + * LocalPortsDeclaration returns LocalPortsDeclaration + * + * Constraint: + * (ports+=PortDeclaration ports+=PortDeclaration* type=ChannelType (left=LowerBound right=UpperBound)?) + */ + protected void sequence_LocalPortsDeclaration(ISerializationContext context, LocalPortsDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns LoopStatement + * UnlessStatement.UnlessStatement_1_0 returns LoopStatement + * StatementChoice returns LoopStatement + * StatementChoice.StatementChoice_1_0 returns LoopStatement + * StatementSequence returns LoopStatement + * StatementSequence.StatementSequence_1_0 returns LoopStatement + * Statement returns LoopStatement + * LoopStatement returns LoopStatement + * + * Constraint: + * {LoopStatement} + */ + protected void sequence_LoopStatement(ISerializationContext context, LoopStatement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Model returns Model + * + * Constraint: + * (imports+=ImportDeclaration* (declarations+=Declaration | requirements+=Requirement | root+=Root)*) + */ + protected void sequence_Model(ISerializationContext context, Model semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns Modulo + * QuantifiedExpression returns Modulo + * Conditional returns Modulo + * Conditional.Conditional_1_1 returns Modulo + * Disjunction returns Modulo + * Disjunction.Disjunction_1_0 returns Modulo + * Implication returns Modulo + * Implication.Implication_1_0 returns Modulo + * Conjunction returns Modulo + * Conjunction.Conjunction_1_0 returns Modulo + * Comparison returns Modulo + * Comparison.ComparisonEqual_1_0_0_0 returns Modulo + * Comparison.ComparisonNotEqual_1_0_1_0 returns Modulo + * Comparison.ComparisonLesser_1_0_2_0 returns Modulo + * Comparison.ComparisonLesserEqual_1_0_3_0 returns Modulo + * Comparison.ComparisonGreater_1_0_4_0 returns Modulo + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns Modulo + * Addition returns Modulo + * Addition.Addition_1_0 returns Modulo + * Substraction returns Modulo + * Substraction.Substraction_1_0 returns Modulo + * Multiplication returns Modulo + * Multiplication.Multiplication_1_0 returns Modulo + * Division returns Modulo + * Division.Division_1_0 returns Modulo + * Modulo returns Modulo + * Modulo.Modulo_1_0 returns Modulo + * UnaryExpression returns Modulo + * Projection returns Modulo + * Projection.Projection_1_0 returns Modulo + * AtomicExpression returns Modulo + * + * Constraint: + * (left=Modulo_Modulo_1_0 right=UnaryExpression) + */ + protected void sequence_Modulo(ISerializationContext context, Modulo semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getModulo_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getModulo_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getModulo_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getModulo_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getModuloAccess().getModuloLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getModuloAccess().getRightUnaryExpressionParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Property returns MortalPattern + * QuantifiedProperty returns MortalPattern + * PropertyDisjunction returns MortalPattern + * PropertyDisjunction.PropertyDisjunction_1_0 returns MortalPattern + * PropertyImplication returns MortalPattern + * PropertyImplication.PropertyImplication_1_0 returns MortalPattern + * PropertyConjunction returns MortalPattern + * PropertyConjunction.PropertyConjunction_1_0 returns MortalPattern + * PropertyNegation returns MortalPattern + * AtomicProperty returns MortalPattern + * PatternProperty returns MortalPattern + * MortalPattern returns MortalPattern + * + * Constraint: + * subject=AtomicObservable + */ + protected void sequence_MortalPattern(ISerializationContext context, MortalPattern semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getMortalPattern_Subject()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getMortalPattern_Subject())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getMortalPatternAccess().getSubjectAtomicObservableParserRuleCall_1_0(), semanticObject.getSubject()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns Multiplication + * QuantifiedExpression returns Multiplication + * Conditional returns Multiplication + * Conditional.Conditional_1_1 returns Multiplication + * Disjunction returns Multiplication + * Disjunction.Disjunction_1_0 returns Multiplication + * Implication returns Multiplication + * Implication.Implication_1_0 returns Multiplication + * Conjunction returns Multiplication + * Conjunction.Conjunction_1_0 returns Multiplication + * Comparison returns Multiplication + * Comparison.ComparisonEqual_1_0_0_0 returns Multiplication + * Comparison.ComparisonNotEqual_1_0_1_0 returns Multiplication + * Comparison.ComparisonLesser_1_0_2_0 returns Multiplication + * Comparison.ComparisonLesserEqual_1_0_3_0 returns Multiplication + * Comparison.ComparisonGreater_1_0_4_0 returns Multiplication + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns Multiplication + * Addition returns Multiplication + * Addition.Addition_1_0 returns Multiplication + * Substraction returns Multiplication + * Substraction.Substraction_1_0 returns Multiplication + * Multiplication returns Multiplication + * Multiplication.Multiplication_1_0 returns Multiplication + * Division returns Multiplication + * Division.Division_1_0 returns Multiplication + * Modulo returns Multiplication + * Modulo.Modulo_1_0 returns Multiplication + * UnaryExpression returns Multiplication + * Projection returns Multiplication + * Projection.Projection_1_0 returns Multiplication + * AtomicExpression returns Multiplication + * + * Constraint: + * (left=Multiplication_Multiplication_1_0 right=Division) + */ + protected void sequence_Multiplication(ISerializationContext context, Multiplication semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getMultiplication_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getMultiplication_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getMultiplication_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getMultiplication_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getMultiplicationAccess().getMultiplicationLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getMultiplicationAccess().getRightDivisionParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * PathItem returns NamedItem + * NamedItem returns NamedItem + * + * Constraint: + * declaration=[PathDeclarationUse|ID] + */ + protected void sequence_NamedItem(ISerializationContext context, NamedItem semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNamedItem_Declaration()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNamedItem_Declaration())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getNamedItemAccess().getDeclarationPathDeclarationUseIDTerminalRuleCall_0_1(), semanticObject.getDeclaration()); + feeder.finish(); + } + + + /** + * Contexts: + * PathItem returns NaturalItem + * NaturalItem returns NaturalItem + * + * Constraint: + * value=INT + */ + protected void sequence_NaturalItem(ISerializationContext context, NaturalItem semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNaturalItem_Value()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNaturalItem_Value())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getNaturalItemAccess().getValueINTTerminalRuleCall_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns NaturalLiteral + * QuantifiedExpression returns NaturalLiteral + * Conditional returns NaturalLiteral + * Conditional.Conditional_1_1 returns NaturalLiteral + * Disjunction returns NaturalLiteral + * Disjunction.Disjunction_1_0 returns NaturalLiteral + * Implication returns NaturalLiteral + * Implication.Implication_1_0 returns NaturalLiteral + * Conjunction returns NaturalLiteral + * Conjunction.Conjunction_1_0 returns NaturalLiteral + * Comparison returns NaturalLiteral + * Comparison.ComparisonEqual_1_0_0_0 returns NaturalLiteral + * Comparison.ComparisonNotEqual_1_0_1_0 returns NaturalLiteral + * Comparison.ComparisonLesser_1_0_2_0 returns NaturalLiteral + * Comparison.ComparisonLesserEqual_1_0_3_0 returns NaturalLiteral + * Comparison.ComparisonGreater_1_0_4_0 returns NaturalLiteral + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns NaturalLiteral + * Addition returns NaturalLiteral + * Addition.Addition_1_0 returns NaturalLiteral + * Substraction returns NaturalLiteral + * Substraction.Substraction_1_0 returns NaturalLiteral + * Multiplication returns NaturalLiteral + * Multiplication.Multiplication_1_0 returns NaturalLiteral + * Division returns NaturalLiteral + * Division.Division_1_0 returns NaturalLiteral + * Modulo returns NaturalLiteral + * Modulo.Modulo_1_0 returns NaturalLiteral + * UnaryExpression returns NaturalLiteral + * Projection returns NaturalLiteral + * Projection.Projection_1_0 returns NaturalLiteral + * ValueExpression returns NaturalLiteral + * AtomicExpression returns NaturalLiteral + * LiteralExpression returns NaturalLiteral + * NaturalLiteral returns NaturalLiteral + * + * Constraint: + * value=INT + */ + protected void sequence_NaturalLiteral(ISerializationContext context, NaturalLiteral semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNaturalLiteral_Value()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNaturalLiteral_Value())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getNaturalLiteralAccess().getValueINTTerminalRuleCall_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * LowerBound returns NaturalLowerBound + * NaturalLowerBound returns NaturalLowerBound + * + * Constraint: + * ((left?='[' | right?=']') value=INT) + */ + protected void sequence_NaturalLowerBound(ISerializationContext context, NaturalLowerBound semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UpperBound returns NaturalUpperBound + * NaturalUpperBound returns NaturalUpperBound + * + * Constraint: + * (value=INT (left?='[' | right?=']')) + */ + protected void sequence_NaturalUpperBound(ISerializationContext context, NaturalUpperBound semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns NullStatement + * UnlessStatement.UnlessStatement_1_0 returns NullStatement + * StatementChoice returns NullStatement + * StatementChoice.StatementChoice_1_0 returns NullStatement + * StatementSequence returns NullStatement + * StatementSequence.StatementSequence_1_0 returns NullStatement + * Statement returns NullStatement + * NullStatement returns NullStatement + * + * Constraint: + * {NullStatement} + */ + protected void sequence_NullStatement(ISerializationContext context, NullStatement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * SequencePattern.LeadsToPattern_1_0_1 returns ObservableConjunction + * SequencePattern.PrecedesPattern_1_1_1 returns ObservableConjunction + * Observable returns ObservableConjunction + * ObservableDisjunction returns ObservableConjunction + * ObservableDisjunction.ObservableDisjunction_1_0 returns ObservableConjunction + * ObservableImplication returns ObservableConjunction + * ObservableImplication.ObservableImplication_1_0 returns ObservableConjunction + * ObservableConjunction returns ObservableConjunction + * ObservableConjunction.ObservableConjunction_1_0 returns ObservableConjunction + * ObservableNegation returns ObservableConjunction + * AtomicObservable returns ObservableConjunction + * + * Constraint: + * (left=ObservableConjunction_ObservableConjunction_1_0 right=ObservableNegation) + */ + protected void sequence_ObservableConjunction(ISerializationContext context, ObservableConjunction semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getObservableConjunction_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getObservableConjunction_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getObservableConjunction_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getObservableConjunction_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getObservableConjunctionAccess().getObservableConjunctionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getObservableConjunctionAccess().getRightObservableNegationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * SequencePattern.LeadsToPattern_1_0_1 returns ObservableDisjunction + * SequencePattern.PrecedesPattern_1_1_1 returns ObservableDisjunction + * Observable returns ObservableDisjunction + * ObservableDisjunction returns ObservableDisjunction + * ObservableDisjunction.ObservableDisjunction_1_0 returns ObservableDisjunction + * ObservableImplication returns ObservableDisjunction + * ObservableImplication.ObservableImplication_1_0 returns ObservableDisjunction + * ObservableConjunction returns ObservableDisjunction + * ObservableConjunction.ObservableConjunction_1_0 returns ObservableDisjunction + * ObservableNegation returns ObservableDisjunction + * AtomicObservable returns ObservableDisjunction + * + * Constraint: + * (left=ObservableDisjunction_ObservableDisjunction_1_0 right=ObservableImplication) + */ + protected void sequence_ObservableDisjunction(ISerializationContext context, ObservableDisjunction semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getObservableDisjunction_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getObservableDisjunction_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getObservableDisjunction_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getObservableDisjunction_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getObservableDisjunctionAccess().getObservableDisjunctionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getObservableDisjunctionAccess().getRightObservableImplicationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * SequencePattern.LeadsToPattern_1_0_1 returns ObservableImplication + * SequencePattern.PrecedesPattern_1_1_1 returns ObservableImplication + * Observable returns ObservableImplication + * ObservableDisjunction returns ObservableImplication + * ObservableDisjunction.ObservableDisjunction_1_0 returns ObservableImplication + * ObservableImplication returns ObservableImplication + * ObservableImplication.ObservableImplication_1_0 returns ObservableImplication + * ObservableConjunction returns ObservableImplication + * ObservableConjunction.ObservableConjunction_1_0 returns ObservableImplication + * ObservableNegation returns ObservableImplication + * AtomicObservable returns ObservableImplication + * + * Constraint: + * (left=ObservableImplication_ObservableImplication_1_0 right=ObservableImplication) + */ + protected void sequence_ObservableImplication(ISerializationContext context, ObservableImplication semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getObservableImplication_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getObservableImplication_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getObservableImplication_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getObservableImplication_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getObservableImplicationAccess().getObservableImplicationLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getObservableImplicationAccess().getRightObservableImplicationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * SequencePattern.LeadsToPattern_1_0_1 returns ObservableNegation + * SequencePattern.PrecedesPattern_1_1_1 returns ObservableNegation + * Observable returns ObservableNegation + * ObservableDisjunction returns ObservableNegation + * ObservableDisjunction.ObservableDisjunction_1_0 returns ObservableNegation + * ObservableImplication returns ObservableNegation + * ObservableImplication.ObservableImplication_1_0 returns ObservableNegation + * ObservableConjunction returns ObservableNegation + * ObservableConjunction.ObservableConjunction_1_0 returns ObservableNegation + * ObservableNegation returns ObservableNegation + * AtomicObservable returns ObservableNegation + * + * Constraint: + * child=ObservableNegation + */ + protected void sequence_ObservableNegation(ISerializationContext context, ObservableNegation semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getObservableNegation_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getObservableNegation_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getObservableNegationAccess().getChildObservableNegationParserRuleCall_0_2_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * UnlessStatement returns OnStatement + * UnlessStatement.UnlessStatement_1_0 returns OnStatement + * StatementChoice returns OnStatement + * StatementChoice.StatementChoice_1_0 returns OnStatement + * StatementSequence returns OnStatement + * StatementSequence.StatementSequence_1_0 returns OnStatement + * Statement returns OnStatement + * OnStatement returns OnStatement + * + * Constraint: + * condition=Expression + */ + protected void sequence_OnStatement(ISerializationContext context, OnStatement semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getOnStatement_Condition()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getOnStatement_Condition())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getOnStatementAccess().getConditionExpressionParserRuleCall_1_0(), semanticObject.getCondition()); + feeder.finish(); + } + + + /** + * Contexts: + * NamedElement returns ParameterDeclaration + * ExpressionDeclarationUse returns ParameterDeclaration + * ReferenceDeclarationUse returns ParameterDeclaration + * PatternDeclarationUse returns ParameterDeclaration + * ParameterDeclaration returns ParameterDeclaration + * + * Constraint: + * ((reference?='&' (array?='[' size=Expression)?)? name=ID) + */ + protected void sequence_ParameterDeclaration(ISerializationContext context, ParameterDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ParametersDeclaration returns ParametersDeclaration + * + * Constraint: + * (parameters+=ParameterDeclaration parameters+=ParameterDeclaration* read?='read'? write?='write'? type=Type) + */ + protected void sequence_ParametersDeclaration(ISerializationContext context, ParametersDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * SequencePattern.LeadsToPattern_1_0_1 returns PathEvent + * SequencePattern.PrecedesPattern_1_1_1 returns PathEvent + * LTLProperty returns PathEvent + * LTLQuantified returns PathEvent + * LTLDisjunction returns PathEvent + * LTLDisjunction.LTLDisjunction_1_0 returns PathEvent + * LTLImplication returns PathEvent + * LTLImplication.LTLImplication_1_0 returns PathEvent + * LTLConjunction returns PathEvent + * LTLConjunction.LTLConjunction_1_0 returns PathEvent + * LTLBinary returns PathEvent + * LTLBinary.LTLUntil_1_0_0 returns PathEvent + * LTLBinary.LTLRelease_1_1_0 returns PathEvent + * LTLUnary returns PathEvent + * AtomicLTL returns PathEvent + * Observable returns PathEvent + * ObservableDisjunction returns PathEvent + * ObservableDisjunction.ObservableDisjunction_1_0 returns PathEvent + * ObservableImplication returns PathEvent + * ObservableImplication.ObservableImplication_1_0 returns PathEvent + * ObservableConjunction returns PathEvent + * ObservableConjunction.ObservableConjunction_1_0 returns PathEvent + * ObservableNegation returns PathEvent + * AtomicObservable returns PathEvent + * ObservableEvent returns PathEvent + * PathEvent returns PathEvent + * + * Constraint: + * (path=Path item=Subject) + */ + protected void sequence_PathEvent(ISerializationContext context, PathEvent semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getPathEvent_Path()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getPathEvent_Path())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getPathEvent_Item()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getPathEvent_Item())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getPathEventAccess().getPathPathParserRuleCall_0_0(), semanticObject.getPath()); + feeder.accept(grammarAccess.getPathEventAccess().getItemSubjectParserRuleCall_1_0(), semanticObject.getItem()); + feeder.finish(); + } + + + /** + * Contexts: + * Path returns Path + * + * Constraint: + * items+=PathItem+ + */ + protected void sequence_Path(ISerializationContext context, Path semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns AssignAnyStatement + * UnlessStatement.UnlessStatement_1_0 returns AssignAnyStatement + * StatementChoice returns AssignAnyStatement + * StatementChoice.StatementChoice_1_0 returns AssignAnyStatement + * StatementSequence returns AssignAnyStatement + * StatementSequence.StatementSequence_1_0 returns AssignAnyStatement + * Statement returns AssignAnyStatement + * PatternStatement returns AssignAnyStatement + * + * Constraint: + * ( + * (patterns+=PatternStatement_AssignAnyStatement_1_2_1 patterns+=Pattern patterns+=Pattern* exp=Expression?) | + * (patterns+=PatternStatement_AssignAnyStatement_1_3_1 exp=Expression?) + * ) + */ + protected void sequence_PatternStatement(ISerializationContext context, AssignAnyStatement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns AssignStatement + * UnlessStatement.UnlessStatement_1_0 returns AssignStatement + * StatementChoice returns AssignStatement + * StatementChoice.StatementChoice_1_0 returns AssignStatement + * StatementSequence returns AssignStatement + * StatementSequence.StatementSequence_1_0 returns AssignStatement + * Statement returns AssignStatement + * PatternStatement returns AssignStatement + * + * Constraint: + * ( + * (patterns+=PatternStatement_AssignStatement_1_0_1 patterns+=Pattern patterns+=Pattern* values+=Expression values+=Expression*) | + * (patterns+=PatternStatement_AssignStatement_1_1_1 values+=Expression values+=Expression*) + * ) + */ + protected void sequence_PatternStatement(ISerializationContext context, AssignStatement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns ReceiveStatement + * UnlessStatement.UnlessStatement_1_0 returns ReceiveStatement + * StatementChoice returns ReceiveStatement + * StatementChoice.StatementChoice_1_0 returns ReceiveStatement + * StatementSequence returns ReceiveStatement + * StatementSequence.StatementSequence_1_0 returns ReceiveStatement + * Statement returns ReceiveStatement + * PatternStatement returns ReceiveStatement + * + * Constraint: + * (port=PatternStatement_ReceiveStatement_1_5_1 patterns+=Pattern patterns+=Pattern* exp=Expression?) + */ + protected void sequence_PatternStatement(ISerializationContext context, ReceiveStatement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns SendStatement + * UnlessStatement.UnlessStatement_1_0 returns SendStatement + * StatementChoice returns SendStatement + * StatementChoice.StatementChoice_1_0 returns SendStatement + * StatementSequence returns SendStatement + * StatementSequence.StatementSequence_1_0 returns SendStatement + * Statement returns SendStatement + * PatternStatement returns SendStatement + * + * Constraint: + * (port=PatternStatement_SendStatement_1_4_1 values+=Expression values+=Expression*) + */ + protected void sequence_PatternStatement(ISerializationContext context, SendStatement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * NamedElement returns PortDeclaration + * ExpressionDeclarationUse returns PortDeclaration + * PatternDeclarationUse returns PortDeclaration + * PortDeclaration returns PortDeclaration + * + * Constraint: + * name=ID + */ + protected void sequence_PortDeclaration(ISerializationContext context, PortDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getPortDeclarationAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Contexts: + * PortSet returns PortSet + * + * Constraint: + * (allPorts?='*' | (ports+=Expression ports+=Expression*)) + */ + protected void sequence_PortSet(ISerializationContext context, PortSet semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * PortsDeclaration returns PortsDeclaration + * + * Constraint: + * (ports+=PortDeclaration ports+=PortDeclaration* type=ChannelType) + */ + protected void sequence_PortsDeclaration(ISerializationContext context, PortsDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Property returns PresencePattern + * QuantifiedProperty returns PresencePattern + * PropertyDisjunction returns PresencePattern + * PropertyDisjunction.PropertyDisjunction_1_0 returns PresencePattern + * PropertyImplication returns PresencePattern + * PropertyImplication.PropertyImplication_1_0 returns PresencePattern + * PropertyConjunction returns PresencePattern + * PropertyConjunction.PropertyConjunction_1_0 returns PresencePattern + * PropertyNegation returns PresencePattern + * AtomicProperty returns PresencePattern + * PatternProperty returns PresencePattern + * PresencePattern returns PresencePattern + * + * Constraint: + * ( + * subject=AtomicObservable + * ( + * lasting=INT | + * (after=AtomicObservable ((lower=LowerBound upper=UpperBound) | until=AtomicObservable)?) | + * (before=AtomicObservable (lower=LowerBound upper=UpperBound)?) | + * (min=AtomicObservable max=AtomicObservable) + * )? + * ) + */ + protected void sequence_PresencePattern(ISerializationContext context, PresencePattern semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * PriorityDeclaration returns PriorityDeclaration + * + * Constraint: + * (groups+=PriorityGroup groups+=PriorityGroup+) + */ + protected void sequence_PriorityDeclaration(ISerializationContext context, PriorityDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * PriorityGroup returns PriorityGroup + * + * Constraint: + * (ports+=[PortDeclaration|ID] ports+=[PortDeclaration|ID]*) + */ + protected void sequence_PriorityGroup(ISerializationContext context, PriorityGroup semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * RootDeclaration returns ProcessDeclaration + * NamedElement returns ProcessDeclaration + * PathDeclarationUse returns ProcessDeclaration + * Declaration returns ProcessDeclaration + * ParameterizedDeclaration returns ProcessDeclaration + * ProcessDeclaration returns ProcessDeclaration + * + * Constraint: + * ( + * name=ID + * (ports+=PortsDeclaration ports+=PortsDeclaration*)? + * (parameters+=ParametersDeclaration parameters+=ParametersDeclaration*)? + * (localPorts+=PortsDeclaration localPorts+=PortsDeclaration*)? + * (priorities+=PriorityDeclaration priorities+=PriorityDeclaration*)? + * states+=StateDeclaration + * states+=StateDeclaration* + * (variables+=VariablesDeclaration variables+=VariablesDeclaration*)? + * prelude=StatementSequence? + * transitions+=Transition+ + * ) + */ + protected void sequence_ProcessDeclaration(ISerializationContext context, ProcessDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns Projection + * QuantifiedExpression returns Projection + * Conditional returns Projection + * Conditional.Conditional_1_1 returns Projection + * Disjunction returns Projection + * Disjunction.Disjunction_1_0 returns Projection + * Implication returns Projection + * Implication.Implication_1_0 returns Projection + * Conjunction returns Projection + * Conjunction.Conjunction_1_0 returns Projection + * Comparison returns Projection + * Comparison.ComparisonEqual_1_0_0_0 returns Projection + * Comparison.ComparisonNotEqual_1_0_1_0 returns Projection + * Comparison.ComparisonLesser_1_0_2_0 returns Projection + * Comparison.ComparisonLesserEqual_1_0_3_0 returns Projection + * Comparison.ComparisonGreater_1_0_4_0 returns Projection + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns Projection + * Addition returns Projection + * Addition.Addition_1_0 returns Projection + * Substraction returns Projection + * Substraction.Substraction_1_0 returns Projection + * Multiplication returns Projection + * Multiplication.Multiplication_1_0 returns Projection + * Division returns Projection + * Division.Division_1_0 returns Projection + * Modulo returns Projection + * Modulo.Modulo_1_0 returns Projection + * UnaryExpression returns Projection + * Projection returns Projection + * Projection.Projection_1_0 returns Projection + * AtomicExpression returns Projection + * + * Constraint: + * (channel=Projection_Projection_1_0 field=AtomicExpression) + */ + protected void sequence_Projection(ISerializationContext context, Projection semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getProjection_Channel()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getProjection_Channel())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getProjection_Field()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getProjection_Field())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getProjectionAccess().getProjectionChannelAction_1_0(), semanticObject.getChannel()); + feeder.accept(grammarAccess.getProjectionAccess().getFieldAtomicExpressionParserRuleCall_1_2_0(), semanticObject.getField()); + feeder.finish(); + } + + + /** + * Contexts: + * Property returns PropertyConjunction + * QuantifiedProperty returns PropertyConjunction + * PropertyDisjunction returns PropertyConjunction + * PropertyDisjunction.PropertyDisjunction_1_0 returns PropertyConjunction + * PropertyImplication returns PropertyConjunction + * PropertyImplication.PropertyImplication_1_0 returns PropertyConjunction + * PropertyConjunction returns PropertyConjunction + * PropertyConjunction.PropertyConjunction_1_0 returns PropertyConjunction + * PropertyNegation returns PropertyConjunction + * AtomicProperty returns PropertyConjunction + * + * Constraint: + * (left=PropertyConjunction_PropertyConjunction_1_0 right=PropertyNegation) + */ + protected void sequence_PropertyConjunction(ISerializationContext context, PropertyConjunction semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getPropertyConjunction_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getPropertyConjunction_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getPropertyConjunction_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getPropertyConjunction_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getPropertyConjunctionAccess().getPropertyConjunctionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getPropertyConjunctionAccess().getRightPropertyNegationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * NamedElement returns PropertyDeclaration + * PropertyDeclarationUse returns PropertyDeclaration + * Declaration returns PropertyDeclaration + * PropertyDeclaration returns PropertyDeclaration + * + * Constraint: + * (name=ID property=Property) + */ + protected void sequence_PropertyDeclaration(ISerializationContext context, PropertyDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getPropertyDeclaration_Property()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getPropertyDeclaration_Property())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getPropertyDeclarationAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getPropertyDeclarationAccess().getPropertyPropertyParserRuleCall_3_0(), semanticObject.getProperty()); + feeder.finish(); + } + + + /** + * Contexts: + * Property returns PropertyDisjunction + * QuantifiedProperty returns PropertyDisjunction + * PropertyDisjunction returns PropertyDisjunction + * PropertyDisjunction.PropertyDisjunction_1_0 returns PropertyDisjunction + * PropertyImplication returns PropertyDisjunction + * PropertyImplication.PropertyImplication_1_0 returns PropertyDisjunction + * PropertyConjunction returns PropertyDisjunction + * PropertyConjunction.PropertyConjunction_1_0 returns PropertyDisjunction + * PropertyNegation returns PropertyDisjunction + * AtomicProperty returns PropertyDisjunction + * + * Constraint: + * (left=PropertyDisjunction_PropertyDisjunction_1_0 right=PropertyImplication) + */ + protected void sequence_PropertyDisjunction(ISerializationContext context, PropertyDisjunction semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getPropertyDisjunction_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getPropertyDisjunction_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getPropertyDisjunction_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getPropertyDisjunction_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getPropertyDisjunctionAccess().getPropertyDisjunctionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getPropertyDisjunctionAccess().getRightPropertyImplicationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Property returns PropertyImplication + * QuantifiedProperty returns PropertyImplication + * PropertyDisjunction returns PropertyImplication + * PropertyDisjunction.PropertyDisjunction_1_0 returns PropertyImplication + * PropertyImplication returns PropertyImplication + * PropertyImplication.PropertyImplication_1_0 returns PropertyImplication + * PropertyConjunction returns PropertyImplication + * PropertyConjunction.PropertyConjunction_1_0 returns PropertyImplication + * PropertyNegation returns PropertyImplication + * AtomicProperty returns PropertyImplication + * + * Constraint: + * (left=PropertyImplication_PropertyImplication_1_0 right=PropertyImplication) + */ + protected void sequence_PropertyImplication(ISerializationContext context, PropertyImplication semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getPropertyImplication_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getPropertyImplication_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getPropertyImplication_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getPropertyImplication_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getPropertyImplicationAccess().getPropertyImplicationLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getPropertyImplicationAccess().getRightPropertyImplicationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Property returns PropertyNegation + * QuantifiedProperty returns PropertyNegation + * PropertyDisjunction returns PropertyNegation + * PropertyDisjunction.PropertyDisjunction_1_0 returns PropertyNegation + * PropertyImplication returns PropertyNegation + * PropertyImplication.PropertyImplication_1_0 returns PropertyNegation + * PropertyConjunction returns PropertyNegation + * PropertyConjunction.PropertyConjunction_1_0 returns PropertyNegation + * PropertyNegation returns PropertyNegation + * AtomicProperty returns PropertyNegation + * + * Constraint: + * child=PropertyNegation + */ + protected void sequence_PropertyNegation(ISerializationContext context, PropertyNegation semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getPropertyNegation_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getPropertyNegation_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getPropertyNegationAccess().getChildPropertyNegationParserRuleCall_0_2_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns AllExpression + * QuantifiedExpression returns AllExpression + * Conditional returns AllExpression + * Conditional.Conditional_1_1 returns AllExpression + * Disjunction returns AllExpression + * Disjunction.Disjunction_1_0 returns AllExpression + * Implication returns AllExpression + * Implication.Implication_1_0 returns AllExpression + * Conjunction returns AllExpression + * Conjunction.Conjunction_1_0 returns AllExpression + * Comparison returns AllExpression + * Comparison.ComparisonEqual_1_0_0_0 returns AllExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns AllExpression + * Comparison.ComparisonLesser_1_0_2_0 returns AllExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns AllExpression + * Comparison.ComparisonGreater_1_0_4_0 returns AllExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns AllExpression + * Addition returns AllExpression + * Addition.Addition_1_0 returns AllExpression + * Substraction returns AllExpression + * Substraction.Substraction_1_0 returns AllExpression + * Multiplication returns AllExpression + * Multiplication.Multiplication_1_0 returns AllExpression + * Division returns AllExpression + * Division.Division_1_0 returns AllExpression + * Modulo returns AllExpression + * Modulo.Modulo_1_0 returns AllExpression + * UnaryExpression returns AllExpression + * Projection returns AllExpression + * Projection.Projection_1_0 returns AllExpression + * AtomicExpression returns AllExpression + * + * Constraint: + * (index=VariableDeclaration type=RangeType? child=QuantifiedExpression) + */ + protected void sequence_QuantifiedExpression(ISerializationContext context, AllExpression semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns ExistsExpression + * QuantifiedExpression returns ExistsExpression + * Conditional returns ExistsExpression + * Conditional.Conditional_1_1 returns ExistsExpression + * Disjunction returns ExistsExpression + * Disjunction.Disjunction_1_0 returns ExistsExpression + * Implication returns ExistsExpression + * Implication.Implication_1_0 returns ExistsExpression + * Conjunction returns ExistsExpression + * Conjunction.Conjunction_1_0 returns ExistsExpression + * Comparison returns ExistsExpression + * Comparison.ComparisonEqual_1_0_0_0 returns ExistsExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns ExistsExpression + * Comparison.ComparisonLesser_1_0_2_0 returns ExistsExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ExistsExpression + * Comparison.ComparisonGreater_1_0_4_0 returns ExistsExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ExistsExpression + * Addition returns ExistsExpression + * Addition.Addition_1_0 returns ExistsExpression + * Substraction returns ExistsExpression + * Substraction.Substraction_1_0 returns ExistsExpression + * Multiplication returns ExistsExpression + * Multiplication.Multiplication_1_0 returns ExistsExpression + * Division returns ExistsExpression + * Division.Division_1_0 returns ExistsExpression + * Modulo returns ExistsExpression + * Modulo.Modulo_1_0 returns ExistsExpression + * UnaryExpression returns ExistsExpression + * Projection returns ExistsExpression + * Projection.Projection_1_0 returns ExistsExpression + * AtomicExpression returns ExistsExpression + * + * Constraint: + * (index=VariableDeclaration type=RangeType? child=QuantifiedExpression) + */ + protected void sequence_QuantifiedExpression(ISerializationContext context, ExistsExpression semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Property returns AllProperty + * QuantifiedProperty returns AllProperty + * PropertyDisjunction returns AllProperty + * PropertyDisjunction.PropertyDisjunction_1_0 returns AllProperty + * PropertyImplication returns AllProperty + * PropertyImplication.PropertyImplication_1_0 returns AllProperty + * PropertyConjunction returns AllProperty + * PropertyConjunction.PropertyConjunction_1_0 returns AllProperty + * PropertyNegation returns AllProperty + * AtomicProperty returns AllProperty + * + * Constraint: + * (variable=VariableDeclaration type=RangeType child=QuantifiedProperty) + */ + protected void sequence_QuantifiedProperty(ISerializationContext context, AllProperty semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getAllProperty_Variable()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getAllProperty_Variable())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getAllProperty_Type()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getAllProperty_Type())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getAllProperty_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getAllProperty_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getQuantifiedPropertyAccess().getVariableVariableDeclarationParserRuleCall_0_1_0(), semanticObject.getVariable()); + feeder.accept(grammarAccess.getQuantifiedPropertyAccess().getTypeRangeTypeParserRuleCall_0_3_0(), semanticObject.getType()); + feeder.accept(grammarAccess.getQuantifiedPropertyAccess().getChildQuantifiedPropertyParserRuleCall_0_5_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Property returns ExistsProperty + * QuantifiedProperty returns ExistsProperty + * PropertyDisjunction returns ExistsProperty + * PropertyDisjunction.PropertyDisjunction_1_0 returns ExistsProperty + * PropertyImplication returns ExistsProperty + * PropertyImplication.PropertyImplication_1_0 returns ExistsProperty + * PropertyConjunction returns ExistsProperty + * PropertyConjunction.PropertyConjunction_1_0 returns ExistsProperty + * PropertyNegation returns ExistsProperty + * AtomicProperty returns ExistsProperty + * + * Constraint: + * (variable=VariableDeclaration type=RangeType child=QuantifiedProperty) + */ + protected void sequence_QuantifiedProperty(ISerializationContext context, ExistsProperty semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getExistsProperty_Variable()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getExistsProperty_Variable())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getExistsProperty_Type()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getExistsProperty_Type())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getExistsProperty_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getExistsProperty_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getQuantifiedPropertyAccess().getVariableVariableDeclarationParserRuleCall_0_1_0(), semanticObject.getVariable()); + feeder.accept(grammarAccess.getQuantifiedPropertyAccess().getTypeRangeTypeParserRuleCall_0_3_0(), semanticObject.getType()); + feeder.accept(grammarAccess.getQuantifiedPropertyAccess().getChildQuantifiedPropertyParserRuleCall_0_5_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns QueueExpression + * QuantifiedExpression returns QueueExpression + * Conditional returns QueueExpression + * Conditional.Conditional_1_1 returns QueueExpression + * Disjunction returns QueueExpression + * Disjunction.Disjunction_1_0 returns QueueExpression + * Implication returns QueueExpression + * Implication.Implication_1_0 returns QueueExpression + * Conjunction returns QueueExpression + * Conjunction.Conjunction_1_0 returns QueueExpression + * Comparison returns QueueExpression + * Comparison.ComparisonEqual_1_0_0_0 returns QueueExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns QueueExpression + * Comparison.ComparisonLesser_1_0_2_0 returns QueueExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns QueueExpression + * Comparison.ComparisonGreater_1_0_4_0 returns QueueExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns QueueExpression + * Addition returns QueueExpression + * Addition.Addition_1_0 returns QueueExpression + * Substraction returns QueueExpression + * Substraction.Substraction_1_0 returns QueueExpression + * Multiplication returns QueueExpression + * Multiplication.Multiplication_1_0 returns QueueExpression + * Division returns QueueExpression + * Division.Division_1_0 returns QueueExpression + * Modulo returns QueueExpression + * Modulo.Modulo_1_0 returns QueueExpression + * UnaryExpression returns QueueExpression + * Projection returns QueueExpression + * Projection.Projection_1_0 returns QueueExpression + * ValueExpression returns QueueExpression + * AtomicExpression returns QueueExpression + * QueueExpression returns QueueExpression + * + * Constraint: + * (values+=Expression values+=Expression*)? + */ + protected void sequence_QueueExpression(ISerializationContext context, QueueExpression semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Type returns QueueType + * TupleType returns QueueType + * TupleType.TupleType_1_0 returns QueueType + * QueueType returns QueueType + * + * Constraint: + * (size=Expression type=Type) + */ + protected void sequence_QueueType(ISerializationContext context, QueueType semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getQueueType_Size()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getQueueType_Size())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getQueueType_Type()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getQueueType_Type())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getQueueTypeAccess().getSizeExpressionParserRuleCall_1_0(), semanticObject.getSize()); + feeder.accept(grammarAccess.getQueueTypeAccess().getTypeTypeParserRuleCall_3_0(), semanticObject.getType()); + feeder.finish(); + } + + + /** + * Contexts: + * Type returns RangeType + * TupleType returns RangeType + * TupleType.TupleType_1_0 returns RangeType + * RangeType returns RangeType + * + * Constraint: + * (minimum=Expression maximum=Expression) + */ + protected void sequence_RangeType(ISerializationContext context, RangeType semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getRangeType_Minimum()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getRangeType_Minimum())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getRangeType_Maximum()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getRangeType_Maximum())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getRangeTypeAccess().getMinimumExpressionParserRuleCall_0_0(), semanticObject.getMinimum()); + feeder.accept(grammarAccess.getRangeTypeAccess().getMaximumExpressionParserRuleCall_2_0(), semanticObject.getMaximum()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns RecordExpression + * QuantifiedExpression returns RecordExpression + * Conditional returns RecordExpression + * Conditional.Conditional_1_1 returns RecordExpression + * Disjunction returns RecordExpression + * Disjunction.Disjunction_1_0 returns RecordExpression + * Implication returns RecordExpression + * Implication.Implication_1_0 returns RecordExpression + * Conjunction returns RecordExpression + * Conjunction.Conjunction_1_0 returns RecordExpression + * Comparison returns RecordExpression + * Comparison.ComparisonEqual_1_0_0_0 returns RecordExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns RecordExpression + * Comparison.ComparisonLesser_1_0_2_0 returns RecordExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns RecordExpression + * Comparison.ComparisonGreater_1_0_4_0 returns RecordExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns RecordExpression + * Addition returns RecordExpression + * Addition.Addition_1_0 returns RecordExpression + * Substraction returns RecordExpression + * Substraction.Substraction_1_0 returns RecordExpression + * Multiplication returns RecordExpression + * Multiplication.Multiplication_1_0 returns RecordExpression + * Division returns RecordExpression + * Division.Division_1_0 returns RecordExpression + * Modulo returns RecordExpression + * Modulo.Modulo_1_0 returns RecordExpression + * UnaryExpression returns RecordExpression + * Projection returns RecordExpression + * Projection.Projection_1_0 returns RecordExpression + * ValueExpression returns RecordExpression + * AtomicExpression returns RecordExpression + * RecordExpression returns RecordExpression + * + * Constraint: + * (fields+=FieldExpression fields+=FieldExpression*) + */ + protected void sequence_RecordExpression(ISerializationContext context, RecordExpression semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * NamedElement returns RecordFieldDeclaration + * RecordFieldDeclarationUse returns RecordFieldDeclaration + * RecordFieldDeclaration returns RecordFieldDeclaration + * + * Constraint: + * name=ID + */ + protected void sequence_RecordFieldDeclaration(ISerializationContext context, RecordFieldDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getRecordFieldDeclarationAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Contexts: + * RecordFields returns RecordFields + * + * Constraint: + * (fields+=RecordFieldDeclaration fields+=RecordFieldDeclaration* type=Type) + */ + protected void sequence_RecordFields(ISerializationContext context, RecordFields semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Type returns RecordType + * TupleType returns RecordType + * TupleType.TupleType_1_0 returns RecordType + * RecordType returns RecordType + * + * Constraint: + * (fields+=RecordFields fields+=RecordFields*) + */ + protected void sequence_RecordType(ISerializationContext context, RecordType semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns ReferenceExpression + * QuantifiedExpression returns ReferenceExpression + * Conditional returns ReferenceExpression + * Conditional.Conditional_1_1 returns ReferenceExpression + * Disjunction returns ReferenceExpression + * Disjunction.Disjunction_1_0 returns ReferenceExpression + * Implication returns ReferenceExpression + * Implication.Implication_1_0 returns ReferenceExpression + * Conjunction returns ReferenceExpression + * Conjunction.Conjunction_1_0 returns ReferenceExpression + * Comparison returns ReferenceExpression + * Comparison.ComparisonEqual_1_0_0_0 returns ReferenceExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns ReferenceExpression + * Comparison.ComparisonLesser_1_0_2_0 returns ReferenceExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns ReferenceExpression + * Comparison.ComparisonGreater_1_0_4_0 returns ReferenceExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns ReferenceExpression + * Addition returns ReferenceExpression + * Addition.Addition_1_0 returns ReferenceExpression + * Substraction returns ReferenceExpression + * Substraction.Substraction_1_0 returns ReferenceExpression + * Multiplication returns ReferenceExpression + * Multiplication.Multiplication_1_0 returns ReferenceExpression + * Division returns ReferenceExpression + * Division.Division_1_0 returns ReferenceExpression + * Modulo returns ReferenceExpression + * Modulo.Modulo_1_0 returns ReferenceExpression + * UnaryExpression returns ReferenceExpression + * Projection returns ReferenceExpression + * Projection.Projection_1_0 returns ReferenceExpression + * AtomicExpression returns ReferenceExpression + * ReferenceExpression returns ReferenceExpression + * + * Constraint: + * declaration=[ReferenceDeclarationUse|ID] + */ + protected void sequence_ReferenceExpression(ISerializationContext context, ReferenceExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getReferenceExpression_Declaration()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getReferenceExpression_Declaration())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getReferenceExpressionAccess().getDeclarationReferenceDeclarationUseIDTerminalRuleCall_1_0_1(), semanticObject.getDeclaration()); + feeder.finish(); + } + + + /** + * Contexts: + * Type returns ReferencedType + * TupleType returns ReferencedType + * TupleType.TupleType_1_0 returns ReferencedType + * ReferencedType returns ReferencedType + * + * Constraint: + * type=[TypeDeclarationUse|ID] + */ + protected void sequence_ReferencedType(ISerializationContext context, ReferencedType semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getReferencedType_Type()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getReferencedType_Type())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getReferencedTypeAccess().getTypeTypeDeclarationUseIDTerminalRuleCall_0_1(), semanticObject.getType()); + feeder.finish(); + } + + + /** + * Contexts: + * Requirement returns Requirement + * + * Constraint: + * (property=[PropertyDeclaration|ID] positive=STRING? negative=STRING?) + */ + protected void sequence_Requirement(ISerializationContext context, Requirement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns ReturnStatement + * UnlessStatement.UnlessStatement_1_0 returns ReturnStatement + * StatementChoice returns ReturnStatement + * StatementChoice.StatementChoice_1_0 returns ReturnStatement + * StatementSequence returns ReturnStatement + * StatementSequence.StatementSequence_1_0 returns ReturnStatement + * Statement returns ReturnStatement + * ReturnStatement returns ReturnStatement + * + * Constraint: + * expression=Expression + */ + protected void sequence_ReturnStatement(ISerializationContext context, ReturnStatement semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getReturnStatement_Expression()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getReturnStatement_Expression())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getReturnStatementAccess().getExpressionExpressionParserRuleCall_1_0(), semanticObject.getExpression()); + feeder.finish(); + } + + + /** + * Contexts: + * Root returns Root + * + * Constraint: + * (declaration=[RootDeclaration|ID] (observed+=[RootDeclaration|ID] observed+=[RootDeclaration|ID]*)?) + */ + protected void sequence_Root(ISerializationContext context, Root semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns SelectStatement + * UnlessStatement.UnlessStatement_1_0 returns SelectStatement + * StatementChoice returns SelectStatement + * StatementChoice.StatementChoice_1_0 returns SelectStatement + * StatementSequence returns SelectStatement + * StatementSequence.StatementSequence_1_0 returns SelectStatement + * Statement returns SelectStatement + * SelectStatement returns SelectStatement + * + * Constraint: + * (body=UnlessStatement (index=VariableDeclaration type=RangeType)?) + */ + protected void sequence_SelectStatement(ISerializationContext context, SelectStatement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Property returns LeadsToPattern + * QuantifiedProperty returns LeadsToPattern + * PropertyDisjunction returns LeadsToPattern + * PropertyDisjunction.PropertyDisjunction_1_0 returns LeadsToPattern + * PropertyImplication returns LeadsToPattern + * PropertyImplication.PropertyImplication_1_0 returns LeadsToPattern + * PropertyConjunction returns LeadsToPattern + * PropertyConjunction.PropertyConjunction_1_0 returns LeadsToPattern + * PropertyNegation returns LeadsToPattern + * AtomicProperty returns LeadsToPattern + * PatternProperty returns LeadsToPattern + * SequencePattern returns LeadsToPattern + * + * Constraint: + * ( + * subject=SequencePattern_LeadsToPattern_1_0_1 + * follower=AtomicObservable + * ( + * (before=AtomicObservable (lower=LowerBound upper=UpperBound)?) | + * (lower=LowerBound upper=UpperBound) | + * (after=AtomicObservable ((lower=LowerBound upper=UpperBound) | until=AtomicObservable)?) | + * (min=AtomicObservable max=AtomicObservable) + * )? + * ) + */ + protected void sequence_SequencePattern(ISerializationContext context, LeadsToPattern semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Property returns PrecedesPattern + * QuantifiedProperty returns PrecedesPattern + * PropertyDisjunction returns PrecedesPattern + * PropertyDisjunction.PropertyDisjunction_1_0 returns PrecedesPattern + * PropertyImplication returns PrecedesPattern + * PropertyImplication.PropertyImplication_1_0 returns PrecedesPattern + * PropertyConjunction returns PrecedesPattern + * PropertyConjunction.PropertyConjunction_1_0 returns PrecedesPattern + * PropertyNegation returns PrecedesPattern + * AtomicProperty returns PrecedesPattern + * PatternProperty returns PrecedesPattern + * SequencePattern returns PrecedesPattern + * + * Constraint: + * ( + * subject=SequencePattern_PrecedesPattern_1_1_1 + * follower=AtomicObservable + * (before=AtomicObservable | (after=AtomicObservable until=AtomicObservable?) | (min=AtomicObservable max=AtomicObservable))? + * ) + */ + protected void sequence_SequencePattern(ISerializationContext context, PrecedesPattern semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * NamedElement returns StateDeclaration + * StateDeclaration returns StateDeclaration + * + * Constraint: + * name=ID + */ + protected void sequence_StateDeclaration(ISerializationContext context, StateDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getStateDeclarationAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Contexts: + * Subject returns StateSubject + * StateSubject returns StateSubject + * + * Constraint: + * state=[StateDeclaration|ID] + */ + protected void sequence_StateSubject(ISerializationContext context, StateSubject semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getStateSubject_State()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getStateSubject_State())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getStateSubjectAccess().getStateStateDeclarationIDTerminalRuleCall_1_0_1(), semanticObject.getState()); + feeder.finish(); + } + + + /** + * Contexts: + * UnlessStatement returns StatementChoice + * UnlessStatement.UnlessStatement_1_0 returns StatementChoice + * StatementChoice returns StatementChoice + * StatementChoice.StatementChoice_1_0 returns StatementChoice + * + * Constraint: + * (choices+=StatementChoice_StatementChoice_1_0 choices+=StatementSequence) + */ + protected void sequence_StatementChoice(ISerializationContext context, StatementChoice semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns StatementSequence + * UnlessStatement.UnlessStatement_1_0 returns StatementSequence + * StatementChoice returns StatementSequence + * StatementChoice.StatementChoice_1_0 returns StatementSequence + * StatementSequence returns StatementSequence + * StatementSequence.StatementSequence_1_0 returns StatementSequence + * + * Constraint: + * (statements+=StatementSequence_StatementSequence_1_0 statements+=Statement) + */ + protected void sequence_StatementSequence(ISerializationContext context, StatementSequence semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Expression returns Substraction + * QuantifiedExpression returns Substraction + * Conditional returns Substraction + * Conditional.Conditional_1_1 returns Substraction + * Disjunction returns Substraction + * Disjunction.Disjunction_1_0 returns Substraction + * Implication returns Substraction + * Implication.Implication_1_0 returns Substraction + * Conjunction returns Substraction + * Conjunction.Conjunction_1_0 returns Substraction + * Comparison returns Substraction + * Comparison.ComparisonEqual_1_0_0_0 returns Substraction + * Comparison.ComparisonNotEqual_1_0_1_0 returns Substraction + * Comparison.ComparisonLesser_1_0_2_0 returns Substraction + * Comparison.ComparisonLesserEqual_1_0_3_0 returns Substraction + * Comparison.ComparisonGreater_1_0_4_0 returns Substraction + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns Substraction + * Addition returns Substraction + * Addition.Addition_1_0 returns Substraction + * Substraction returns Substraction + * Substraction.Substraction_1_0 returns Substraction + * Multiplication returns Substraction + * Multiplication.Multiplication_1_0 returns Substraction + * Division returns Substraction + * Division.Division_1_0 returns Substraction + * Modulo returns Substraction + * Modulo.Modulo_1_0 returns Substraction + * UnaryExpression returns Substraction + * Projection returns Substraction + * Projection.Projection_1_0 returns Substraction + * AtomicExpression returns Substraction + * + * Constraint: + * (left=Substraction_Substraction_1_0 right=Multiplication) + */ + protected void sequence_Substraction(ISerializationContext context, Substraction semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getSubstraction_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getSubstraction_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getSubstraction_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getSubstraction_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getSubstractionAccess().getSubstractionLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getSubstractionAccess().getRightMultiplicationParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * Subject returns TagSubject + * TagSubject returns TagSubject + * + * Constraint: + * tag=[TaggedStatement|ID] + */ + protected void sequence_TagSubject(ISerializationContext context, TagSubject semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getTagSubject_Tag()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getTagSubject_Tag())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getTagSubjectAccess().getTagTaggedStatementIDTerminalRuleCall_1_0_1(), semanticObject.getTag()); + feeder.finish(); + } + + + /** + * Contexts: + * UnlessStatement returns TaggedStatement + * UnlessStatement.UnlessStatement_1_0 returns TaggedStatement + * StatementChoice returns TaggedStatement + * StatementChoice.StatementChoice_1_0 returns TaggedStatement + * StatementSequence returns TaggedStatement + * StatementSequence.StatementSequence_1_0 returns TaggedStatement + * Statement returns TaggedStatement + * TaggedStatement returns TaggedStatement + * + * Constraint: + * name=ID + */ + protected void sequence_TaggedStatement(ISerializationContext context, TaggedStatement semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getTaggedStatement_Name()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getTaggedStatement_Name())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getTaggedStatementAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Contexts: + * UnlessStatement returns ToStatement + * UnlessStatement.UnlessStatement_1_0 returns ToStatement + * StatementChoice returns ToStatement + * StatementChoice.StatementChoice_1_0 returns ToStatement + * StatementSequence returns ToStatement + * StatementSequence.StatementSequence_1_0 returns ToStatement + * Statement returns ToStatement + * ToStatement returns ToStatement + * + * Constraint: + * state=[StateDeclaration|ID] + */ + protected void sequence_ToStatement(ISerializationContext context, ToStatement semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getToStatement_State()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getToStatement_State())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getToStatementAccess().getStateStateDeclarationIDTerminalRuleCall_1_0_1(), semanticObject.getState()); + feeder.finish(); + } + + + /** + * Contexts: + * TransitionSource returns TransitionSource + * + * Constraint: + * origin=[StateDeclaration|ID] + */ + protected void sequence_TransitionSource(ISerializationContext context, TransitionSource semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getTransitionSource_Origin()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getTransitionSource_Origin())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getTransitionSourceAccess().getOriginStateDeclarationIDTerminalRuleCall_1_0_1(), semanticObject.getOrigin()); + feeder.finish(); + } + + + /** + * Contexts: + * Transition returns Transition + * + * Constraint: + * (source=TransitionSource action=StatementSequence) + */ + protected void sequence_Transition(ISerializationContext context, Transition semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getTransition_Source()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getTransition_Source())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getTransition_Action()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getTransition_Action())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getTransitionAccess().getSourceTransitionSourceParserRuleCall_0_0(), semanticObject.getSource()); + feeder.accept(grammarAccess.getTransitionAccess().getActionStatementSequenceParserRuleCall_1_0(), semanticObject.getAction()); + feeder.finish(); + } + + + /** + * Contexts: + * TupleType returns TupleType + * TupleType.TupleType_1_0 returns TupleType + * + * Constraint: + * (types+=TupleType_TupleType_1_0 types+=Type) + */ + protected void sequence_TupleType(ISerializationContext context, TupleType semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * NamedElement returns TypeDeclaration + * TypeDeclarationUse returns TypeDeclaration + * Declaration returns TypeDeclaration + * TypeDeclaration returns TypeDeclaration + * + * Constraint: + * (name=ID value=Type) + */ + protected void sequence_TypeDeclaration(ISerializationContext context, TypeDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getTypeDeclaration_Value()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getTypeDeclaration_Value())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getTypeDeclarationAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getTypeDeclarationAccess().getValueTypeParserRuleCall_3_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns UnaryCoerceExpression + * QuantifiedExpression returns UnaryCoerceExpression + * Conditional returns UnaryCoerceExpression + * Conditional.Conditional_1_1 returns UnaryCoerceExpression + * Disjunction returns UnaryCoerceExpression + * Disjunction.Disjunction_1_0 returns UnaryCoerceExpression + * Implication returns UnaryCoerceExpression + * Implication.Implication_1_0 returns UnaryCoerceExpression + * Conjunction returns UnaryCoerceExpression + * Conjunction.Conjunction_1_0 returns UnaryCoerceExpression + * Comparison returns UnaryCoerceExpression + * Comparison.ComparisonEqual_1_0_0_0 returns UnaryCoerceExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns UnaryCoerceExpression + * Comparison.ComparisonLesser_1_0_2_0 returns UnaryCoerceExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns UnaryCoerceExpression + * Comparison.ComparisonGreater_1_0_4_0 returns UnaryCoerceExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns UnaryCoerceExpression + * Addition returns UnaryCoerceExpression + * Addition.Addition_1_0 returns UnaryCoerceExpression + * Substraction returns UnaryCoerceExpression + * Substraction.Substraction_1_0 returns UnaryCoerceExpression + * Multiplication returns UnaryCoerceExpression + * Multiplication.Multiplication_1_0 returns UnaryCoerceExpression + * Division returns UnaryCoerceExpression + * Division.Division_1_0 returns UnaryCoerceExpression + * Modulo returns UnaryCoerceExpression + * Modulo.Modulo_1_0 returns UnaryCoerceExpression + * UnaryExpression returns UnaryCoerceExpression + * Projection returns UnaryCoerceExpression + * Projection.Projection_1_0 returns UnaryCoerceExpression + * AtomicExpression returns UnaryCoerceExpression + * + * Constraint: + * child=UnaryExpression + */ + protected void sequence_UnaryExpression(ISerializationContext context, UnaryCoerceExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getUnaryCoerceExpression_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns UnaryDeQueueExpression + * QuantifiedExpression returns UnaryDeQueueExpression + * Conditional returns UnaryDeQueueExpression + * Conditional.Conditional_1_1 returns UnaryDeQueueExpression + * Disjunction returns UnaryDeQueueExpression + * Disjunction.Disjunction_1_0 returns UnaryDeQueueExpression + * Implication returns UnaryDeQueueExpression + * Implication.Implication_1_0 returns UnaryDeQueueExpression + * Conjunction returns UnaryDeQueueExpression + * Conjunction.Conjunction_1_0 returns UnaryDeQueueExpression + * Comparison returns UnaryDeQueueExpression + * Comparison.ComparisonEqual_1_0_0_0 returns UnaryDeQueueExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns UnaryDeQueueExpression + * Comparison.ComparisonLesser_1_0_2_0 returns UnaryDeQueueExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns UnaryDeQueueExpression + * Comparison.ComparisonGreater_1_0_4_0 returns UnaryDeQueueExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns UnaryDeQueueExpression + * Addition returns UnaryDeQueueExpression + * Addition.Addition_1_0 returns UnaryDeQueueExpression + * Substraction returns UnaryDeQueueExpression + * Substraction.Substraction_1_0 returns UnaryDeQueueExpression + * Multiplication returns UnaryDeQueueExpression + * Multiplication.Multiplication_1_0 returns UnaryDeQueueExpression + * Division returns UnaryDeQueueExpression + * Division.Division_1_0 returns UnaryDeQueueExpression + * Modulo returns UnaryDeQueueExpression + * Modulo.Modulo_1_0 returns UnaryDeQueueExpression + * UnaryExpression returns UnaryDeQueueExpression + * Projection returns UnaryDeQueueExpression + * Projection.Projection_1_0 returns UnaryDeQueueExpression + * AtomicExpression returns UnaryDeQueueExpression + * + * Constraint: + * child=UnaryExpression + */ + protected void sequence_UnaryExpression(ISerializationContext context, UnaryDeQueueExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getUnaryDeQueueExpression_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns UnaryEmptyExpression + * QuantifiedExpression returns UnaryEmptyExpression + * Conditional returns UnaryEmptyExpression + * Conditional.Conditional_1_1 returns UnaryEmptyExpression + * Disjunction returns UnaryEmptyExpression + * Disjunction.Disjunction_1_0 returns UnaryEmptyExpression + * Implication returns UnaryEmptyExpression + * Implication.Implication_1_0 returns UnaryEmptyExpression + * Conjunction returns UnaryEmptyExpression + * Conjunction.Conjunction_1_0 returns UnaryEmptyExpression + * Comparison returns UnaryEmptyExpression + * Comparison.ComparisonEqual_1_0_0_0 returns UnaryEmptyExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns UnaryEmptyExpression + * Comparison.ComparisonLesser_1_0_2_0 returns UnaryEmptyExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns UnaryEmptyExpression + * Comparison.ComparisonGreater_1_0_4_0 returns UnaryEmptyExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns UnaryEmptyExpression + * Addition returns UnaryEmptyExpression + * Addition.Addition_1_0 returns UnaryEmptyExpression + * Substraction returns UnaryEmptyExpression + * Substraction.Substraction_1_0 returns UnaryEmptyExpression + * Multiplication returns UnaryEmptyExpression + * Multiplication.Multiplication_1_0 returns UnaryEmptyExpression + * Division returns UnaryEmptyExpression + * Division.Division_1_0 returns UnaryEmptyExpression + * Modulo returns UnaryEmptyExpression + * Modulo.Modulo_1_0 returns UnaryEmptyExpression + * UnaryExpression returns UnaryEmptyExpression + * Projection returns UnaryEmptyExpression + * Projection.Projection_1_0 returns UnaryEmptyExpression + * AtomicExpression returns UnaryEmptyExpression + * + * Constraint: + * child=UnaryExpression + */ + protected void sequence_UnaryExpression(ISerializationContext context, UnaryEmptyExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getUnaryEmptyExpression_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns UnaryFirstExpression + * QuantifiedExpression returns UnaryFirstExpression + * Conditional returns UnaryFirstExpression + * Conditional.Conditional_1_1 returns UnaryFirstExpression + * Disjunction returns UnaryFirstExpression + * Disjunction.Disjunction_1_0 returns UnaryFirstExpression + * Implication returns UnaryFirstExpression + * Implication.Implication_1_0 returns UnaryFirstExpression + * Conjunction returns UnaryFirstExpression + * Conjunction.Conjunction_1_0 returns UnaryFirstExpression + * Comparison returns UnaryFirstExpression + * Comparison.ComparisonEqual_1_0_0_0 returns UnaryFirstExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns UnaryFirstExpression + * Comparison.ComparisonLesser_1_0_2_0 returns UnaryFirstExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns UnaryFirstExpression + * Comparison.ComparisonGreater_1_0_4_0 returns UnaryFirstExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns UnaryFirstExpression + * Addition returns UnaryFirstExpression + * Addition.Addition_1_0 returns UnaryFirstExpression + * Substraction returns UnaryFirstExpression + * Substraction.Substraction_1_0 returns UnaryFirstExpression + * Multiplication returns UnaryFirstExpression + * Multiplication.Multiplication_1_0 returns UnaryFirstExpression + * Division returns UnaryFirstExpression + * Division.Division_1_0 returns UnaryFirstExpression + * Modulo returns UnaryFirstExpression + * Modulo.Modulo_1_0 returns UnaryFirstExpression + * UnaryExpression returns UnaryFirstExpression + * Projection returns UnaryFirstExpression + * Projection.Projection_1_0 returns UnaryFirstExpression + * AtomicExpression returns UnaryFirstExpression + * + * Constraint: + * child=UnaryExpression + */ + protected void sequence_UnaryExpression(ISerializationContext context, UnaryFirstExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getUnaryFirstExpression_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns UnaryFullExpression + * QuantifiedExpression returns UnaryFullExpression + * Conditional returns UnaryFullExpression + * Conditional.Conditional_1_1 returns UnaryFullExpression + * Disjunction returns UnaryFullExpression + * Disjunction.Disjunction_1_0 returns UnaryFullExpression + * Implication returns UnaryFullExpression + * Implication.Implication_1_0 returns UnaryFullExpression + * Conjunction returns UnaryFullExpression + * Conjunction.Conjunction_1_0 returns UnaryFullExpression + * Comparison returns UnaryFullExpression + * Comparison.ComparisonEqual_1_0_0_0 returns UnaryFullExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns UnaryFullExpression + * Comparison.ComparisonLesser_1_0_2_0 returns UnaryFullExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns UnaryFullExpression + * Comparison.ComparisonGreater_1_0_4_0 returns UnaryFullExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns UnaryFullExpression + * Addition returns UnaryFullExpression + * Addition.Addition_1_0 returns UnaryFullExpression + * Substraction returns UnaryFullExpression + * Substraction.Substraction_1_0 returns UnaryFullExpression + * Multiplication returns UnaryFullExpression + * Multiplication.Multiplication_1_0 returns UnaryFullExpression + * Division returns UnaryFullExpression + * Division.Division_1_0 returns UnaryFullExpression + * Modulo returns UnaryFullExpression + * Modulo.Modulo_1_0 returns UnaryFullExpression + * UnaryExpression returns UnaryFullExpression + * Projection returns UnaryFullExpression + * Projection.Projection_1_0 returns UnaryFullExpression + * AtomicExpression returns UnaryFullExpression + * + * Constraint: + * child=UnaryExpression + */ + protected void sequence_UnaryExpression(ISerializationContext context, UnaryFullExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getUnaryFullExpression_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getUnaryFullExpression_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns UnaryLengthExpression + * QuantifiedExpression returns UnaryLengthExpression + * Conditional returns UnaryLengthExpression + * Conditional.Conditional_1_1 returns UnaryLengthExpression + * Disjunction returns UnaryLengthExpression + * Disjunction.Disjunction_1_0 returns UnaryLengthExpression + * Implication returns UnaryLengthExpression + * Implication.Implication_1_0 returns UnaryLengthExpression + * Conjunction returns UnaryLengthExpression + * Conjunction.Conjunction_1_0 returns UnaryLengthExpression + * Comparison returns UnaryLengthExpression + * Comparison.ComparisonEqual_1_0_0_0 returns UnaryLengthExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns UnaryLengthExpression + * Comparison.ComparisonLesser_1_0_2_0 returns UnaryLengthExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns UnaryLengthExpression + * Comparison.ComparisonGreater_1_0_4_0 returns UnaryLengthExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns UnaryLengthExpression + * Addition returns UnaryLengthExpression + * Addition.Addition_1_0 returns UnaryLengthExpression + * Substraction returns UnaryLengthExpression + * Substraction.Substraction_1_0 returns UnaryLengthExpression + * Multiplication returns UnaryLengthExpression + * Multiplication.Multiplication_1_0 returns UnaryLengthExpression + * Division returns UnaryLengthExpression + * Division.Division_1_0 returns UnaryLengthExpression + * Modulo returns UnaryLengthExpression + * Modulo.Modulo_1_0 returns UnaryLengthExpression + * UnaryExpression returns UnaryLengthExpression + * Projection returns UnaryLengthExpression + * Projection.Projection_1_0 returns UnaryLengthExpression + * AtomicExpression returns UnaryLengthExpression + * + * Constraint: + * child=UnaryExpression + */ + protected void sequence_UnaryExpression(ISerializationContext context, UnaryLengthExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getUnaryLengthExpression_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns UnaryMinusExpression + * QuantifiedExpression returns UnaryMinusExpression + * Conditional returns UnaryMinusExpression + * Conditional.Conditional_1_1 returns UnaryMinusExpression + * Disjunction returns UnaryMinusExpression + * Disjunction.Disjunction_1_0 returns UnaryMinusExpression + * Implication returns UnaryMinusExpression + * Implication.Implication_1_0 returns UnaryMinusExpression + * Conjunction returns UnaryMinusExpression + * Conjunction.Conjunction_1_0 returns UnaryMinusExpression + * Comparison returns UnaryMinusExpression + * Comparison.ComparisonEqual_1_0_0_0 returns UnaryMinusExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns UnaryMinusExpression + * Comparison.ComparisonLesser_1_0_2_0 returns UnaryMinusExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns UnaryMinusExpression + * Comparison.ComparisonGreater_1_0_4_0 returns UnaryMinusExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns UnaryMinusExpression + * Addition returns UnaryMinusExpression + * Addition.Addition_1_0 returns UnaryMinusExpression + * Substraction returns UnaryMinusExpression + * Substraction.Substraction_1_0 returns UnaryMinusExpression + * Multiplication returns UnaryMinusExpression + * Multiplication.Multiplication_1_0 returns UnaryMinusExpression + * Division returns UnaryMinusExpression + * Division.Division_1_0 returns UnaryMinusExpression + * Modulo returns UnaryMinusExpression + * Modulo.Modulo_1_0 returns UnaryMinusExpression + * UnaryExpression returns UnaryMinusExpression + * Projection returns UnaryMinusExpression + * Projection.Projection_1_0 returns UnaryMinusExpression + * AtomicExpression returns UnaryMinusExpression + * + * Constraint: + * child=UnaryExpression + */ + protected void sequence_UnaryExpression(ISerializationContext context, UnaryMinusExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getUnaryMinusExpression_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns UnaryNegationExpression + * QuantifiedExpression returns UnaryNegationExpression + * Conditional returns UnaryNegationExpression + * Conditional.Conditional_1_1 returns UnaryNegationExpression + * Disjunction returns UnaryNegationExpression + * Disjunction.Disjunction_1_0 returns UnaryNegationExpression + * Implication returns UnaryNegationExpression + * Implication.Implication_1_0 returns UnaryNegationExpression + * Conjunction returns UnaryNegationExpression + * Conjunction.Conjunction_1_0 returns UnaryNegationExpression + * Comparison returns UnaryNegationExpression + * Comparison.ComparisonEqual_1_0_0_0 returns UnaryNegationExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns UnaryNegationExpression + * Comparison.ComparisonLesser_1_0_2_0 returns UnaryNegationExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns UnaryNegationExpression + * Comparison.ComparisonGreater_1_0_4_0 returns UnaryNegationExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns UnaryNegationExpression + * Addition returns UnaryNegationExpression + * Addition.Addition_1_0 returns UnaryNegationExpression + * Substraction returns UnaryNegationExpression + * Substraction.Substraction_1_0 returns UnaryNegationExpression + * Multiplication returns UnaryNegationExpression + * Multiplication.Multiplication_1_0 returns UnaryNegationExpression + * Division returns UnaryNegationExpression + * Division.Division_1_0 returns UnaryNegationExpression + * Modulo returns UnaryNegationExpression + * Modulo.Modulo_1_0 returns UnaryNegationExpression + * UnaryExpression returns UnaryNegationExpression + * Projection returns UnaryNegationExpression + * Projection.Projection_1_0 returns UnaryNegationExpression + * AtomicExpression returns UnaryNegationExpression + * + * Constraint: + * child=UnaryExpression + */ + protected void sequence_UnaryExpression(ISerializationContext context, UnaryNegationExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getUnaryNegationExpression_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * Expression returns UnaryPlusExpression + * QuantifiedExpression returns UnaryPlusExpression + * Conditional returns UnaryPlusExpression + * Conditional.Conditional_1_1 returns UnaryPlusExpression + * Disjunction returns UnaryPlusExpression + * Disjunction.Disjunction_1_0 returns UnaryPlusExpression + * Implication returns UnaryPlusExpression + * Implication.Implication_1_0 returns UnaryPlusExpression + * Conjunction returns UnaryPlusExpression + * Conjunction.Conjunction_1_0 returns UnaryPlusExpression + * Comparison returns UnaryPlusExpression + * Comparison.ComparisonEqual_1_0_0_0 returns UnaryPlusExpression + * Comparison.ComparisonNotEqual_1_0_1_0 returns UnaryPlusExpression + * Comparison.ComparisonLesser_1_0_2_0 returns UnaryPlusExpression + * Comparison.ComparisonLesserEqual_1_0_3_0 returns UnaryPlusExpression + * Comparison.ComparisonGreater_1_0_4_0 returns UnaryPlusExpression + * Comparison.ComparisonGreaterEqual_1_0_5_0 returns UnaryPlusExpression + * Addition returns UnaryPlusExpression + * Addition.Addition_1_0 returns UnaryPlusExpression + * Substraction returns UnaryPlusExpression + * Substraction.Substraction_1_0 returns UnaryPlusExpression + * Multiplication returns UnaryPlusExpression + * Multiplication.Multiplication_1_0 returns UnaryPlusExpression + * Division returns UnaryPlusExpression + * Division.Division_1_0 returns UnaryPlusExpression + * Modulo returns UnaryPlusExpression + * Modulo.Modulo_1_0 returns UnaryPlusExpression + * UnaryExpression returns UnaryPlusExpression + * Projection returns UnaryPlusExpression + * Projection.Projection_1_0 returns UnaryPlusExpression + * AtomicExpression returns UnaryPlusExpression + * + * Constraint: + * child=UnaryExpression + */ + protected void sequence_UnaryExpression(ISerializationContext context, UnaryPlusExpression semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getUnaryPlusExpression_Child())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getChildUnaryExpressionParserRuleCall_0_1_0(), semanticObject.getChild()); + feeder.finish(); + } + + + /** + * Contexts: + * NamedElement returns UnionTagDeclaration + * ExpressionDeclarationUse returns UnionTagDeclaration + * UnionTagDeclarationUse returns UnionTagDeclaration + * PatternDeclarationUse returns UnionTagDeclaration + * UnionTagDeclaration returns UnionTagDeclaration + * + * Constraint: + * name=ID + */ + protected void sequence_UnionTagDeclaration(ISerializationContext context, UnionTagDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getUnionTagDeclarationAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Contexts: + * UnionTags returns UnionTags + * + * Constraint: + * (tags+=UnionTagDeclaration tags+=UnionTagDeclaration* type=Type?) + */ + protected void sequence_UnionTags(ISerializationContext context, UnionTags semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Type returns UnionType + * TupleType returns UnionType + * TupleType.TupleType_1_0 returns UnionType + * UnionType returns UnionType + * + * Constraint: + * (tags+=UnionTags tags+=UnionTags*) + */ + protected void sequence_UnionType(ISerializationContext context, UnionType semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns UnlessStatement + * UnlessStatement.UnlessStatement_1_0 returns UnlessStatement + * + * Constraint: + * (followers+=UnlessStatement_UnlessStatement_1_0 followers+=StatementChoice) + */ + protected void sequence_UnlessStatement(ISerializationContext context, UnlessStatement semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Subject returns ValueSubject + * ValueSubject returns ValueSubject + * + * Constraint: + * value=AtomicExpression + */ + protected void sequence_ValueSubject(ISerializationContext context, ValueSubject semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getValueSubject_Value()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getValueSubject_Value())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getValueSubjectAccess().getValueAtomicExpressionParserRuleCall_1_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * NamedElement returns VariableDeclaration + * ExpressionDeclarationUse returns VariableDeclaration + * ReferenceDeclarationUse returns VariableDeclaration + * PatternDeclarationUse returns VariableDeclaration + * BoundDeclarationUse returns VariableDeclaration + * PropertyDeclarationUse returns VariableDeclaration + * VariableDeclaration returns VariableDeclaration + * + * Constraint: + * name=ID + */ + protected void sequence_VariableDeclaration(ISerializationContext context, VariableDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getNamedElement_Name())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVariableDeclarationAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Contexts: + * LowerBound returns VariableLowerBound + * VariableLowerBound returns VariableLowerBound + * + * Constraint: + * ((left?='[' | right?=']') variable=[BoundDeclarationUse|ID]) + */ + protected void sequence_VariableLowerBound(ISerializationContext context, VariableLowerBound semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UpperBound returns VariableUpperBound + * VariableUpperBound returns VariableUpperBound + * + * Constraint: + * (variable=[BoundDeclarationUse|ID] (left?='[' | right?=']')) + */ + protected void sequence_VariableUpperBound(ISerializationContext context, VariableUpperBound semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VariablesDeclaration returns VariablesDeclaration + * + * Constraint: + * (variables+=VariableDeclaration variables+=VariableDeclaration* type=Type value=Expression?) + */ + protected void sequence_VariablesDeclaration(ISerializationContext context, VariablesDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * UnlessStatement returns WaitStatement + * UnlessStatement.UnlessStatement_1_0 returns WaitStatement + * StatementChoice returns WaitStatement + * StatementChoice.StatementChoice_1_0 returns WaitStatement + * StatementSequence returns WaitStatement + * StatementSequence.StatementSequence_1_0 returns WaitStatement + * Statement returns WaitStatement + * WaitStatement returns WaitStatement + * + * Constraint: + * (left=LowerBound right=UpperBound) + */ + protected void sequence_WaitStatement(ISerializationContext context, WaitStatement semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getWaitStatement_Left()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getWaitStatement_Left())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getWaitStatement_Right()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getWaitStatement_Right())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getWaitStatementAccess().getLeftLowerBoundParserRuleCall_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getWaitStatementAccess().getRightUpperBoundParserRuleCall_3_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * UnlessStatement returns WhileStatement + * UnlessStatement.UnlessStatement_1_0 returns WhileStatement + * StatementChoice returns WhileStatement + * StatementChoice.StatementChoice_1_0 returns WhileStatement + * StatementSequence returns WhileStatement + * StatementSequence.StatementSequence_1_0 returns WhileStatement + * Statement returns WhileStatement + * WhileStatement returns WhileStatement + * + * Constraint: + * (condition=Expression body=StatementSequence) + */ + protected void sequence_WhileStatement(ISerializationContext context, WhileStatement semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getWhileStatement_Condition()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getWhileStatement_Condition())); + if (transientValues.isValueTransient(semanticObject, FiacrePackage.eINSTANCE.getWhileStatement_Body()) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FiacrePackage.eINSTANCE.getWhileStatement_Body())); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getWhileStatementAccess().getConditionExpressionParserRuleCall_1_0(), semanticObject.getCondition()); + feeder.accept(grammarAccess.getWhileStatementAccess().getBodyStatementSequenceParserRuleCall_3_0(), semanticObject.getBody()); + feeder.finish(); + } + + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/serializer/FiacreSyntacticSequencer.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/serializer/FiacreSyntacticSequencer.java new file mode 100644 index 0000000..03ba383 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/serializer/FiacreSyntacticSequencer.java @@ -0,0 +1,492 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.serializer; + +import com.google.inject.Inject; +import fr.irit.fiacre.xtext.services.FiacreGrammarAccess; +import java.util.List; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.IGrammarAccess; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.nodemodel.INode; +import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias; +import org.eclipse.xtext.serializer.analysis.GrammarAlias.AlternativeAlias; +import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias; +import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable; +import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition; +import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer; + +@SuppressWarnings("all") +public class FiacreSyntacticSequencer extends AbstractSyntacticSequencer { + + protected FiacreGrammarAccess grammarAccess; + protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_8_0_a; + protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_8_0_p; + protected AbstractElementAlias match_AtomicLTL_LeftParenthesisKeyword_2_0_a; + protected AbstractElementAlias match_AtomicLTL_LeftParenthesisKeyword_2_0_p; + protected AbstractElementAlias match_AtomicObservable_LeftParenthesisKeyword_0_0_a; + protected AbstractElementAlias match_AtomicObservable_LeftParenthesisKeyword_0_0_p; + protected AbstractElementAlias match_AtomicProperty_LeftParenthesisKeyword_1_0_a; + protected AbstractElementAlias match_AtomicProperty_LeftParenthesisKeyword_1_0_p; + protected AbstractElementAlias match_CaseStatement_CaseKeyword_8_q; + protected AbstractElementAlias match_ChannelType_NoneKeyword_2_0_1_1_or_NoneKeyword_2_1_or_SyncKeyword_2_2; + protected AbstractElementAlias match_CompositeBlock_HyphenMinusGreaterThanSignKeyword_0_1_q; + protected AbstractElementAlias match_Composition_ParKeyword_5_q; + protected AbstractElementAlias match_ConditionalStatement_IfKeyword_7_q; + protected AbstractElementAlias match_ForeachStatement_ForeachKeyword_5_q; + protected AbstractElementAlias match_InstanceDeclaration_HyphenMinusGreaterThanSignKeyword_0_1_q; + protected AbstractElementAlias match_Pattern_LeftParenthesisKeyword_3_0_a; + protected AbstractElementAlias match_RecordType_RecordKeyword_4_q; + protected AbstractElementAlias match_SelectStatement_SelectKeyword_4_q; + protected AbstractElementAlias match_UnionType_UnionKeyword_4_q; + protected AbstractElementAlias match_WhileStatement_WhileKeyword_5_q; + + @Inject + protected void init(IGrammarAccess access) { + grammarAccess = (FiacreGrammarAccess) access; + match_AtomicExpression_LeftParenthesisKeyword_8_0_a = new TokenAlias(true, true, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_8_0()); + match_AtomicExpression_LeftParenthesisKeyword_8_0_p = new TokenAlias(true, false, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_8_0()); + match_AtomicLTL_LeftParenthesisKeyword_2_0_a = new TokenAlias(true, true, grammarAccess.getAtomicLTLAccess().getLeftParenthesisKeyword_2_0()); + match_AtomicLTL_LeftParenthesisKeyword_2_0_p = new TokenAlias(true, false, grammarAccess.getAtomicLTLAccess().getLeftParenthesisKeyword_2_0()); + match_AtomicObservable_LeftParenthesisKeyword_0_0_a = new TokenAlias(true, true, grammarAccess.getAtomicObservableAccess().getLeftParenthesisKeyword_0_0()); + match_AtomicObservable_LeftParenthesisKeyword_0_0_p = new TokenAlias(true, false, grammarAccess.getAtomicObservableAccess().getLeftParenthesisKeyword_0_0()); + match_AtomicProperty_LeftParenthesisKeyword_1_0_a = new TokenAlias(true, true, grammarAccess.getAtomicPropertyAccess().getLeftParenthesisKeyword_1_0()); + match_AtomicProperty_LeftParenthesisKeyword_1_0_p = new TokenAlias(true, false, grammarAccess.getAtomicPropertyAccess().getLeftParenthesisKeyword_1_0()); + match_CaseStatement_CaseKeyword_8_q = new TokenAlias(false, true, grammarAccess.getCaseStatementAccess().getCaseKeyword_8()); + match_ChannelType_NoneKeyword_2_0_1_1_or_NoneKeyword_2_1_or_SyncKeyword_2_2 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getChannelTypeAccess().getNoneKeyword_2_0_1_1()), new TokenAlias(false, false, grammarAccess.getChannelTypeAccess().getNoneKeyword_2_1()), new TokenAlias(false, false, grammarAccess.getChannelTypeAccess().getSyncKeyword_2_2())); + match_CompositeBlock_HyphenMinusGreaterThanSignKeyword_0_1_q = new TokenAlias(false, true, grammarAccess.getCompositeBlockAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); + match_Composition_ParKeyword_5_q = new TokenAlias(false, true, grammarAccess.getCompositionAccess().getParKeyword_5()); + match_ConditionalStatement_IfKeyword_7_q = new TokenAlias(false, true, grammarAccess.getConditionalStatementAccess().getIfKeyword_7()); + match_ForeachStatement_ForeachKeyword_5_q = new TokenAlias(false, true, grammarAccess.getForeachStatementAccess().getForeachKeyword_5()); + match_InstanceDeclaration_HyphenMinusGreaterThanSignKeyword_0_1_q = new TokenAlias(false, true, grammarAccess.getInstanceDeclarationAccess().getHyphenMinusGreaterThanSignKeyword_0_1()); + match_Pattern_LeftParenthesisKeyword_3_0_a = new TokenAlias(true, true, grammarAccess.getPatternAccess().getLeftParenthesisKeyword_3_0()); + match_RecordType_RecordKeyword_4_q = new TokenAlias(false, true, grammarAccess.getRecordTypeAccess().getRecordKeyword_4()); + match_SelectStatement_SelectKeyword_4_q = new TokenAlias(false, true, grammarAccess.getSelectStatementAccess().getSelectKeyword_4()); + match_UnionType_UnionKeyword_4_q = new TokenAlias(false, true, grammarAccess.getUnionTypeAccess().getUnionKeyword_4()); + match_WhileStatement_WhileKeyword_5_q = new TokenAlias(false, true, grammarAccess.getWhileStatementAccess().getWhileKeyword_5()); + } + + @Override + protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) { + return ""; + } + + + @Override + protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) { + if (transition.getAmbiguousSyntaxes().isEmpty()) return; + List transitionNodes = collectNodes(fromNode, toNode); + for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) { + List syntaxNodes = getNodesFor(transitionNodes, syntax); + if (match_AtomicExpression_LeftParenthesisKeyword_8_0_a.equals(syntax)) + emit_AtomicExpression_LeftParenthesisKeyword_8_0_a(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_AtomicExpression_LeftParenthesisKeyword_8_0_p.equals(syntax)) + emit_AtomicExpression_LeftParenthesisKeyword_8_0_p(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_AtomicLTL_LeftParenthesisKeyword_2_0_a.equals(syntax)) + emit_AtomicLTL_LeftParenthesisKeyword_2_0_a(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_AtomicLTL_LeftParenthesisKeyword_2_0_p.equals(syntax)) + emit_AtomicLTL_LeftParenthesisKeyword_2_0_p(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_AtomicObservable_LeftParenthesisKeyword_0_0_a.equals(syntax)) + emit_AtomicObservable_LeftParenthesisKeyword_0_0_a(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_AtomicObservable_LeftParenthesisKeyword_0_0_p.equals(syntax)) + emit_AtomicObservable_LeftParenthesisKeyword_0_0_p(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_AtomicProperty_LeftParenthesisKeyword_1_0_a.equals(syntax)) + emit_AtomicProperty_LeftParenthesisKeyword_1_0_a(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_AtomicProperty_LeftParenthesisKeyword_1_0_p.equals(syntax)) + emit_AtomicProperty_LeftParenthesisKeyword_1_0_p(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_CaseStatement_CaseKeyword_8_q.equals(syntax)) + emit_CaseStatement_CaseKeyword_8_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_ChannelType_NoneKeyword_2_0_1_1_or_NoneKeyword_2_1_or_SyncKeyword_2_2.equals(syntax)) + emit_ChannelType_NoneKeyword_2_0_1_1_or_NoneKeyword_2_1_or_SyncKeyword_2_2(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_CompositeBlock_HyphenMinusGreaterThanSignKeyword_0_1_q.equals(syntax)) + emit_CompositeBlock_HyphenMinusGreaterThanSignKeyword_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_Composition_ParKeyword_5_q.equals(syntax)) + emit_Composition_ParKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_ConditionalStatement_IfKeyword_7_q.equals(syntax)) + emit_ConditionalStatement_IfKeyword_7_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_ForeachStatement_ForeachKeyword_5_q.equals(syntax)) + emit_ForeachStatement_ForeachKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_InstanceDeclaration_HyphenMinusGreaterThanSignKeyword_0_1_q.equals(syntax)) + emit_InstanceDeclaration_HyphenMinusGreaterThanSignKeyword_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_Pattern_LeftParenthesisKeyword_3_0_a.equals(syntax)) + emit_Pattern_LeftParenthesisKeyword_3_0_a(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_RecordType_RecordKeyword_4_q.equals(syntax)) + emit_RecordType_RecordKeyword_4_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_SelectStatement_SelectKeyword_4_q.equals(syntax)) + emit_SelectStatement_SelectKeyword_4_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_UnionType_UnionKeyword_4_q.equals(syntax)) + emit_UnionType_UnionKeyword_4_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_WhileStatement_WhileKeyword_5_q.equals(syntax)) + emit_WhileStatement_WhileKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes); + else acceptNodes(getLastNavigableState(), syntaxNodes); + } + } + + /** + * Ambiguous syntax: + * '('* + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) '$' child=UnaryExpression + * (rule start) (ambiguity) '&' declaration=[ReferenceDeclarationUse|ID] + * (rule start) (ambiguity) '+' child=UnaryExpression + * (rule start) (ambiguity) '-' child=UnaryExpression + * (rule start) (ambiguity) '[' ']' '?' (rule start) + * (rule start) (ambiguity) '[' ']' (rule start) + * (rule start) (ambiguity) '[' values+=Expression + * (rule start) (ambiguity) 'all' index=VariableDeclaration + * (rule start) (ambiguity) 'append' '(' left=Expression + * (rule start) (ambiguity) 'dequeue' child=UnaryExpression + * (rule start) (ambiguity) 'empty' child=UnaryExpression + * (rule start) (ambiguity) 'enqueue' '(' element=Expression + * (rule start) (ambiguity) 'exists' index=VariableDeclaration + * (rule start) (ambiguity) 'false' '?' (rule start) + * (rule start) (ambiguity) 'false' (rule start) + * (rule start) (ambiguity) 'first' child=UnaryExpression + * (rule start) (ambiguity) 'full' child=UnaryExpression + * (rule start) (ambiguity) 'length' child=UnaryExpression + * (rule start) (ambiguity) 'not' child=UnaryExpression + * (rule start) (ambiguity) 'true' '?' (rule start) + * (rule start) (ambiguity) 'true' (rule start) + * (rule start) (ambiguity) '{' fields+=FieldExpression + * (rule start) (ambiguity) '{|' '|}' '?' (rule start) + * (rule start) (ambiguity) '{|' '|}' (rule start) + * (rule start) (ambiguity) '{|' values+=Expression + * (rule start) (ambiguity) declaration=[ExpressionDeclarationUse|ID] + * (rule start) (ambiguity) value=INT + * (rule start) (ambiguity) {Addition.left=} + * (rule start) (ambiguity) {ArrayAccessExpression.child=} + * (rule start) (ambiguity) {ComparisonEqual.left=} + * (rule start) (ambiguity) {ComparisonGreater.left=} + * (rule start) (ambiguity) {ComparisonGreaterEqual.left=} + * (rule start) (ambiguity) {ComparisonLesser.left=} + * (rule start) (ambiguity) {ComparisonLesserEqual.left=} + * (rule start) (ambiguity) {ComparisonNotEqual.left=} + * (rule start) (ambiguity) {Conditional.condition=} + * (rule start) (ambiguity) {Conjunction.left=} + * (rule start) (ambiguity) {Disjunction.left=} + * (rule start) (ambiguity) {Division.left=} + * (rule start) (ambiguity) {Implication.left=} + * (rule start) (ambiguity) {Modulo.left=} + * (rule start) (ambiguity) {Multiplication.left=} + * (rule start) (ambiguity) {Projection.channel=} + * (rule start) (ambiguity) {RecordAccessExpression.child=} + * (rule start) (ambiguity) {Substraction.left=} + */ + protected void emit_AtomicExpression_LeftParenthesisKeyword_8_0_a(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('+ + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) '$' child=UnaryExpression + * (rule start) (ambiguity) '+' child=UnaryExpression + * (rule start) (ambiguity) '-' child=UnaryExpression + * (rule start) (ambiguity) 'all' index=VariableDeclaration + * (rule start) (ambiguity) 'dequeue' child=UnaryExpression + * (rule start) (ambiguity) 'empty' child=UnaryExpression + * (rule start) (ambiguity) 'exists' index=VariableDeclaration + * (rule start) (ambiguity) 'first' child=UnaryExpression + * (rule start) (ambiguity) 'full' child=UnaryExpression + * (rule start) (ambiguity) 'length' child=UnaryExpression + * (rule start) (ambiguity) 'not' child=UnaryExpression + * (rule start) (ambiguity) {Addition.left=} + * (rule start) (ambiguity) {ComparisonEqual.left=} + * (rule start) (ambiguity) {ComparisonGreater.left=} + * (rule start) (ambiguity) {ComparisonGreaterEqual.left=} + * (rule start) (ambiguity) {ComparisonLesser.left=} + * (rule start) (ambiguity) {ComparisonLesserEqual.left=} + * (rule start) (ambiguity) {ComparisonNotEqual.left=} + * (rule start) (ambiguity) {Conditional.condition=} + * (rule start) (ambiguity) {Conjunction.left=} + * (rule start) (ambiguity) {Disjunction.left=} + * (rule start) (ambiguity) {Division.left=} + * (rule start) (ambiguity) {Implication.left=} + * (rule start) (ambiguity) {Modulo.left=} + * (rule start) (ambiguity) {Multiplication.left=} + * (rule start) (ambiguity) {Projection.channel=} + * (rule start) (ambiguity) {Substraction.left=} + */ + protected void emit_AtomicExpression_LeftParenthesisKeyword_8_0_p(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('* + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) '<>' operand=LTLUnary + * (rule start) (ambiguity) '[]' operand=LTLUnary + * (rule start) (ambiguity) 'all' index=VariableDeclaration + * (rule start) (ambiguity) 'enter' subject=AtomicObservable + * (rule start) (ambiguity) 'exists' index=VariableDeclaration + * (rule start) (ambiguity) 'leave' subject=AtomicObservable + * (rule start) (ambiguity) 'next' operand=LTLUnary + * (rule start) (ambiguity) 'not' operand=LTLUnary + * (rule start) (ambiguity) declaration=[PropertyDeclarationUse|ID] + * (rule start) (ambiguity) path=Path + * (rule start) (ambiguity) {LTLConjunction.left=} + * (rule start) (ambiguity) {LTLDisjunction.left=} + * (rule start) (ambiguity) {LTLImplication.left=} + * (rule start) (ambiguity) {LTLRelease.left=} + * (rule start) (ambiguity) {LTLUntil.left=} + */ + protected void emit_AtomicLTL_LeftParenthesisKeyword_2_0_a(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('+ + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) '<>' operand=LTLUnary + * (rule start) (ambiguity) '[]' operand=LTLUnary + * (rule start) (ambiguity) 'all' index=VariableDeclaration + * (rule start) (ambiguity) 'exists' index=VariableDeclaration + * (rule start) (ambiguity) 'next' operand=LTLUnary + * (rule start) (ambiguity) 'not' operand=LTLUnary + * (rule start) (ambiguity) {LTLConjunction.left=} + * (rule start) (ambiguity) {LTLDisjunction.left=} + * (rule start) (ambiguity) {LTLImplication.left=} + * (rule start) (ambiguity) {LTLRelease.left=} + * (rule start) (ambiguity) {LTLUntil.left=} + */ + protected void emit_AtomicLTL_LeftParenthesisKeyword_2_0_p(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('* + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) 'enter' subject=AtomicObservable + * (rule start) (ambiguity) 'leave' subject=AtomicObservable + * (rule start) (ambiguity) 'not' child=ObservableNegation + * (rule start) (ambiguity) path=Path + * (rule start) (ambiguity) {ObservableConjunction.left=} + * (rule start) (ambiguity) {ObservableDisjunction.left=} + * (rule start) (ambiguity) {ObservableImplication.left=} + */ + protected void emit_AtomicObservable_LeftParenthesisKeyword_0_0_a(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('+ + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) 'not' child=ObservableNegation + * (rule start) (ambiguity) {ObservableConjunction.left=} + * (rule start) (ambiguity) {ObservableDisjunction.left=} + * (rule start) (ambiguity) {ObservableImplication.left=} + */ + protected void emit_AtomicObservable_LeftParenthesisKeyword_0_0_p(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('* + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) 'absent' subject=AtomicObservable + * (rule start) (ambiguity) 'all' variable=VariableDeclaration + * (rule start) (ambiguity) 'always' subject=AtomicObservable + * (rule start) (ambiguity) 'deadlockfree' (rule start) + * (rule start) (ambiguity) 'exists' variable=VariableDeclaration + * (rule start) (ambiguity) 'infinitelyoften' subject=AtomicObservable + * (rule start) (ambiguity) 'ltl' property=LTLUnary + * (rule start) (ambiguity) 'mortal' subject=AtomicObservable + * (rule start) (ambiguity) 'not' child=PropertyNegation + * (rule start) (ambiguity) 'present' subject=AtomicObservable + * (rule start) (ambiguity) {LeadsToPattern.subject=} + * (rule start) (ambiguity) {PrecedesPattern.subject=} + * (rule start) (ambiguity) {PropertyConjunction.left=} + * (rule start) (ambiguity) {PropertyDisjunction.left=} + * (rule start) (ambiguity) {PropertyImplication.left=} + */ + protected void emit_AtomicProperty_LeftParenthesisKeyword_1_0_a(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('+ + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) 'all' variable=VariableDeclaration + * (rule start) (ambiguity) 'exists' variable=VariableDeclaration + * (rule start) (ambiguity) 'not' child=PropertyNegation + * (rule start) (ambiguity) {PropertyConjunction.left=} + * (rule start) (ambiguity) {PropertyDisjunction.left=} + * (rule start) (ambiguity) {PropertyImplication.left=} + */ + protected void emit_AtomicProperty_LeftParenthesisKeyword_1_0_p(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'case'? + * + * This ambiguous syntax occurs at: + * body+=StatementSequence 'end' (ambiguity) (rule end) + */ + protected void emit_CaseStatement_CaseKeyword_8_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'none' | 'none' | 'sync' + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) (rule start) + * size=Expression 'of' (ambiguity) (rule end) + */ + protected void emit_ChannelType_NoneKeyword_2_0_1_1_or_NoneKeyword_2_1_or_SyncKeyword_2_2(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '->'? + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) composition=Composition + */ + protected void emit_CompositeBlock_HyphenMinusGreaterThanSignKeyword_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'par'? + * + * This ambiguous syntax occurs at: + * blocks+=Block 'end' (ambiguity) (rule end) + */ + protected void emit_Composition_ParKeyword_5_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'if'? + * + * This ambiguous syntax occurs at: + * else=StatementSequence 'end' (ambiguity) (rule end) + * elseif+=ExtendedConditionalStatement 'end' (ambiguity) (rule end) + * then=StatementSequence 'end' (ambiguity) (rule end) + */ + protected void emit_ConditionalStatement_IfKeyword_7_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'foreach'? + * + * This ambiguous syntax occurs at: + * body=StatementSequence 'end' (ambiguity) (rule end) + */ + protected void emit_ForeachStatement_ForeachKeyword_5_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '->'? + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) instance=ComponentInstance + */ + protected void emit_InstanceDeclaration_HyphenMinusGreaterThanSignKeyword_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('* + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) '+' value=INT + * (rule start) (ambiguity) 'any' '!' (rule start) + * (rule start) (ambiguity) 'any' ',' (rule start) + * (rule start) (ambiguity) 'any' ':=' (rule start) + * (rule start) (ambiguity) 'any' '?' (rule start) + * (rule start) (ambiguity) 'any' (rule start) + * (rule start) (ambiguity) declaration=[PatternDeclarationUse|ID] + * (rule start) (ambiguity) negative?='-' + * (rule start) (ambiguity) value=LiteralExpression + * (rule start) (ambiguity) {ArrayAccessPattern.source=} + * (rule start) (ambiguity) {RecordAccessPattern.source=} + */ + protected void emit_Pattern_LeftParenthesisKeyword_3_0_a(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'record'? + * + * This ambiguous syntax occurs at: + * fields+=RecordFields 'end' (ambiguity) (rule end) + */ + protected void emit_RecordType_RecordKeyword_4_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'select'? + * + * This ambiguous syntax occurs at: + * body=UnlessStatement 'end' (ambiguity) (rule end) + * type=RangeType 'end' (ambiguity) (rule end) + */ + protected void emit_SelectStatement_SelectKeyword_4_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'union'? + * + * This ambiguous syntax occurs at: + * tags+=UnionTags 'end' (ambiguity) (rule end) + */ + protected void emit_UnionType_UnionKeyword_4_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'while'? + * + * This ambiguous syntax occurs at: + * body=StatementSequence 'end' (ambiguity) (rule end) + */ + protected void emit_WhileStatement_WhileKeyword_5_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/services/FiacreGrammarAccess.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/services/FiacreGrammarAccess.java new file mode 100644 index 0000000..9f886cf --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/services/FiacreGrammarAccess.java @@ -0,0 +1,10118 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.services; + +import com.google.inject.Inject; +import com.google.inject.Singleton; +import java.util.List; +import org.eclipse.xtext.Action; +import org.eclipse.xtext.Alternatives; +import org.eclipse.xtext.Assignment; +import org.eclipse.xtext.CrossReference; +import org.eclipse.xtext.Grammar; +import org.eclipse.xtext.GrammarUtil; +import org.eclipse.xtext.Group; +import org.eclipse.xtext.Keyword; +import org.eclipse.xtext.ParserRule; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.TerminalRule; +import org.eclipse.xtext.common.services.TerminalsGrammarAccess; +import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder; +import org.eclipse.xtext.service.GrammarProvider; + +@Singleton +public class FiacreGrammarAccess extends AbstractGrammarElementFinder { + + public class ModelElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Model"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cModelAction_0 = (Action)cGroup.eContents().get(0); + private final Assignment cImportsAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cImportsImportDeclarationParserRuleCall_1_0 = (RuleCall)cImportsAssignment_1.eContents().get(0); + private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); + private final Assignment cDeclarationsAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0); + private final RuleCall cDeclarationsDeclarationParserRuleCall_2_0_0 = (RuleCall)cDeclarationsAssignment_2_0.eContents().get(0); + private final Assignment cRequirementsAssignment_2_1 = (Assignment)cAlternatives_2.eContents().get(1); + private final RuleCall cRequirementsRequirementParserRuleCall_2_1_0 = (RuleCall)cRequirementsAssignment_2_1.eContents().get(0); + private final Assignment cRootAssignment_2_2 = (Assignment)cAlternatives_2.eContents().get(2); + private final RuleCall cRootRootParserRuleCall_2_2_0 = (RuleCall)cRootAssignment_2_2.eContents().get(0); + + //Model: + // {Model} imports+=ImportDeclaration* (declarations+=Declaration | requirements+=Requirement + // / * added alternative root * / | root+=Root)* + // // ((root=[RootDeclaration])? (declarations+=Declaration | requirements+=Requirement)*) + //; + @Override public ParserRule getRule() { return rule; } + + //{Model} imports+=ImportDeclaration* (declarations+=Declaration | requirements+=Requirement / * added alternative root * / + //| root+=Root)* + public Group getGroup() { return cGroup; } + + //{Model} + public Action getModelAction_0() { return cModelAction_0; } + + //imports+=ImportDeclaration* + public Assignment getImportsAssignment_1() { return cImportsAssignment_1; } + + //ImportDeclaration + public RuleCall getImportsImportDeclarationParserRuleCall_1_0() { return cImportsImportDeclarationParserRuleCall_1_0; } + + //(declarations+=Declaration | requirements+=Requirement / * added alternative root * / | root+=Root)* + public Alternatives getAlternatives_2() { return cAlternatives_2; } + + //declarations+=Declaration + public Assignment getDeclarationsAssignment_2_0() { return cDeclarationsAssignment_2_0; } + + //Declaration + public RuleCall getDeclarationsDeclarationParserRuleCall_2_0_0() { return cDeclarationsDeclarationParserRuleCall_2_0_0; } + + //requirements+=Requirement + public Assignment getRequirementsAssignment_2_1() { return cRequirementsAssignment_2_1; } + + //Requirement + public RuleCall getRequirementsRequirementParserRuleCall_2_1_0() { return cRequirementsRequirementParserRuleCall_2_1_0; } + + //root+=Root + public Assignment getRootAssignment_2_2() { return cRootAssignment_2_2; } + + //Root + public RuleCall getRootRootParserRuleCall_2_2_0() { return cRootRootParserRuleCall_2_2_0; } + } + public class RootDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.RootDeclaration"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cComponentDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cProcessDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //RootDeclaration: + // ComponentDeclaration + // | ProcessDeclaration; + @Override public ParserRule getRule() { return rule; } + + //ComponentDeclaration | ProcessDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //ComponentDeclaration + public RuleCall getComponentDeclarationParserRuleCall_0() { return cComponentDeclarationParserRuleCall_0; } + + //ProcessDeclaration + public RuleCall getProcessDeclarationParserRuleCall_1() { return cProcessDeclarationParserRuleCall_1; } + } + public class RootElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Root"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cRootAction_0 = (Action)cGroup.eContents().get(0); + private final Assignment cDeclarationAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cDeclarationRootDeclarationCrossReference_1_0 = (CrossReference)cDeclarationAssignment_1.eContents().get(0); + private final RuleCall cDeclarationRootDeclarationIDTerminalRuleCall_1_0_1 = (RuleCall)cDeclarationRootDeclarationCrossReference_1_0.eContents().get(1); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cGreaterThanSignKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); + private final Assignment cObservedAssignment_2_1_0 = (Assignment)cGroup_2_1.eContents().get(0); + private final CrossReference cObservedRootDeclarationCrossReference_2_1_0_0 = (CrossReference)cObservedAssignment_2_1_0.eContents().get(0); + private final RuleCall cObservedRootDeclarationIDTerminalRuleCall_2_1_0_0_1 = (RuleCall)cObservedRootDeclarationCrossReference_2_1_0_0.eContents().get(1); + private final Group cGroup_2_1_1 = (Group)cGroup_2_1.eContents().get(1); + private final Keyword cVerticalLineKeyword_2_1_1_0 = (Keyword)cGroup_2_1_1.eContents().get(0); + private final Assignment cObservedAssignment_2_1_1_1 = (Assignment)cGroup_2_1_1.eContents().get(1); + private final CrossReference cObservedRootDeclarationCrossReference_2_1_1_1_0 = (CrossReference)cObservedAssignment_2_1_1_1.eContents().get(0); + private final RuleCall cObservedRootDeclarationIDTerminalRuleCall_2_1_1_1_0_1 = (RuleCall)cObservedRootDeclarationCrossReference_2_1_1_1_0.eContents().get(1); + + //Root: + // {Root} declaration=[RootDeclaration] ('>' (observed+=[RootDeclaration] ('|' observed+=[RootDeclaration])*))?; + @Override public ParserRule getRule() { return rule; } + + //{Root} declaration=[RootDeclaration] ('>' (observed+=[RootDeclaration] ('|' observed+=[RootDeclaration])*))? + public Group getGroup() { return cGroup; } + + //{Root} + public Action getRootAction_0() { return cRootAction_0; } + + //declaration=[RootDeclaration] + public Assignment getDeclarationAssignment_1() { return cDeclarationAssignment_1; } + + //[RootDeclaration] + public CrossReference getDeclarationRootDeclarationCrossReference_1_0() { return cDeclarationRootDeclarationCrossReference_1_0; } + + //ID + public RuleCall getDeclarationRootDeclarationIDTerminalRuleCall_1_0_1() { return cDeclarationRootDeclarationIDTerminalRuleCall_1_0_1; } + + //('>' (observed+=[RootDeclaration] ('|' observed+=[RootDeclaration])*))? + public Group getGroup_2() { return cGroup_2; } + + //'>' + public Keyword getGreaterThanSignKeyword_2_0() { return cGreaterThanSignKeyword_2_0; } + + //(observed+=[RootDeclaration] ('|' observed+=[RootDeclaration])*) + public Group getGroup_2_1() { return cGroup_2_1; } + + //observed+=[RootDeclaration] + public Assignment getObservedAssignment_2_1_0() { return cObservedAssignment_2_1_0; } + + //[RootDeclaration] + public CrossReference getObservedRootDeclarationCrossReference_2_1_0_0() { return cObservedRootDeclarationCrossReference_2_1_0_0; } + + //ID + public RuleCall getObservedRootDeclarationIDTerminalRuleCall_2_1_0_0_1() { return cObservedRootDeclarationIDTerminalRuleCall_2_1_0_0_1; } + + //('|' observed+=[RootDeclaration])* + public Group getGroup_2_1_1() { return cGroup_2_1_1; } + + //'|' + public Keyword getVerticalLineKeyword_2_1_1_0() { return cVerticalLineKeyword_2_1_1_0; } + + //observed+=[RootDeclaration] + public Assignment getObservedAssignment_2_1_1_1() { return cObservedAssignment_2_1_1_1; } + + //[RootDeclaration] + public CrossReference getObservedRootDeclarationCrossReference_2_1_1_1_0() { return cObservedRootDeclarationCrossReference_2_1_1_1_0; } + + //ID + public RuleCall getObservedRootDeclarationIDTerminalRuleCall_2_1_1_1_0_1() { return cObservedRootDeclarationIDTerminalRuleCall_2_1_1_1_0_1; } + } + public class NamedElementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.NamedElement"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cPortDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cParameterDeclarationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cVariableDeclarationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cStateDeclarationParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + private final RuleCall cRecordFieldDeclarationParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); + private final RuleCall cUnionTagDeclarationParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); + + //NamedElement: + // Declaration + // //| GenericDeclaration + // | PortDeclaration + // | ParameterDeclaration + // | VariableDeclaration + // | StateDeclaration + // | RecordFieldDeclaration + // | UnionTagDeclaration + // //ajout Faiez + // // | TagDeclaration + //; + @Override public ParserRule getRule() { return rule; } + + //Declaration //| GenericDeclaration + //| PortDeclaration | ParameterDeclaration | VariableDeclaration | StateDeclaration | RecordFieldDeclaration | + //UnionTagDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //Declaration + public RuleCall getDeclarationParserRuleCall_0() { return cDeclarationParserRuleCall_0; } + + //PortDeclaration + public RuleCall getPortDeclarationParserRuleCall_1() { return cPortDeclarationParserRuleCall_1; } + + //ParameterDeclaration + public RuleCall getParameterDeclarationParserRuleCall_2() { return cParameterDeclarationParserRuleCall_2; } + + //VariableDeclaration + public RuleCall getVariableDeclarationParserRuleCall_3() { return cVariableDeclarationParserRuleCall_3; } + + //StateDeclaration + public RuleCall getStateDeclarationParserRuleCall_4() { return cStateDeclarationParserRuleCall_4; } + + //RecordFieldDeclaration + public RuleCall getRecordFieldDeclarationParserRuleCall_5() { return cRecordFieldDeclarationParserRuleCall_5; } + + //UnionTagDeclaration + public RuleCall getUnionTagDeclarationParserRuleCall_6() { return cUnionTagDeclarationParserRuleCall_6; } + } + public class TypeDeclarationUseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.TypeDeclarationUse"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cTypeDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cChannelDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //TypeDeclarationUse: + // TypeDeclaration + // //| GenericTypeDeclaration + // | ChannelDeclaration + // //| GenericConstantDeclaration + //; + @Override public ParserRule getRule() { return rule; } + + //TypeDeclaration //| GenericTypeDeclaration + //| ChannelDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //TypeDeclaration + public RuleCall getTypeDeclarationParserRuleCall_0() { return cTypeDeclarationParserRuleCall_0; } + + //ChannelDeclaration + public RuleCall getChannelDeclarationParserRuleCall_1() { return cChannelDeclarationParserRuleCall_1; } + } + public class ConstantDeclarationUseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ConstantDeclarationUse"); + private final RuleCall cConstantDeclarationParserRuleCall = (RuleCall)rule.eContents().get(1); + + //ConstantDeclarationUse: + // ConstantDeclaration + // //| GenericConstantDeclaration + //; + @Override public ParserRule getRule() { return rule; } + + //ConstantDeclaration + public RuleCall getConstantDeclarationParserRuleCall() { return cConstantDeclarationParserRuleCall; } + } + public class ExpressionDeclarationUseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ExpressionDeclarationUse"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cVariableDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cConstantDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cParameterDeclarationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cPortDeclarationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cUnionTagDeclarationParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + private final RuleCall cFunctionDeclarationParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); + + //ExpressionDeclarationUse: + // VariableDeclaration + // | ConstantDeclaration + // //| GenericConstantDeclaration + // | ParameterDeclaration + // | PortDeclaration + // | UnionTagDeclaration + // //| GenericDeclaration + // | FunctionDeclaration; + @Override public ParserRule getRule() { return rule; } + + //VariableDeclaration | ConstantDeclaration //| GenericConstantDeclaration + //| ParameterDeclaration | PortDeclaration | UnionTagDeclaration //| GenericDeclaration + //| FunctionDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //VariableDeclaration + public RuleCall getVariableDeclarationParserRuleCall_0() { return cVariableDeclarationParserRuleCall_0; } + + //ConstantDeclaration + public RuleCall getConstantDeclarationParserRuleCall_1() { return cConstantDeclarationParserRuleCall_1; } + + //ParameterDeclaration + public RuleCall getParameterDeclarationParserRuleCall_2() { return cParameterDeclarationParserRuleCall_2; } + + //PortDeclaration + public RuleCall getPortDeclarationParserRuleCall_3() { return cPortDeclarationParserRuleCall_3; } + + //UnionTagDeclaration + public RuleCall getUnionTagDeclarationParserRuleCall_4() { return cUnionTagDeclarationParserRuleCall_4; } + + //FunctionDeclaration + public RuleCall getFunctionDeclarationParserRuleCall_5() { return cFunctionDeclarationParserRuleCall_5; } + } + public class ReferenceDeclarationUseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ReferenceDeclarationUse"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cVariableDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cParameterDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //ReferenceDeclarationUse: + // VariableDeclaration + // | ParameterDeclaration; + @Override public ParserRule getRule() { return rule; } + + //VariableDeclaration | ParameterDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //VariableDeclaration + public RuleCall getVariableDeclarationParserRuleCall_0() { return cVariableDeclarationParserRuleCall_0; } + + //ParameterDeclaration + public RuleCall getParameterDeclarationParserRuleCall_1() { return cParameterDeclarationParserRuleCall_1; } + } + public class UnionTagDeclarationUseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.UnionTagDeclarationUse"); + private final RuleCall cUnionTagDeclarationParserRuleCall = (RuleCall)rule.eContents().get(1); + + //UnionTagDeclarationUse: + // UnionTagDeclaration + // //| GenericUnionTagDeclaration + //; + @Override public ParserRule getRule() { return rule; } + + //UnionTagDeclaration + public RuleCall getUnionTagDeclarationParserRuleCall() { return cUnionTagDeclarationParserRuleCall; } + } + public class RecordFieldDeclarationUseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.RecordFieldDeclarationUse"); + private final RuleCall cRecordFieldDeclarationParserRuleCall = (RuleCall)rule.eContents().get(1); + + //RecordFieldDeclarationUse: + // RecordFieldDeclaration + // //| GenericRecordFieldDeclaration + //; + @Override public ParserRule getRule() { return rule; } + + //RecordFieldDeclaration + public RuleCall getRecordFieldDeclarationParserRuleCall() { return cRecordFieldDeclarationParserRuleCall; } + } + public class PatternDeclarationUseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PatternDeclarationUse"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cVariableDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cParameterDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cPortDeclarationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cUnionTagDeclarationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + + //PatternDeclarationUse: + // VariableDeclaration + // | ParameterDeclaration + // | PortDeclaration + // | UnionTagDeclaration + // //| GenericUnionTagDeclaration + //; + @Override public ParserRule getRule() { return rule; } + + //VariableDeclaration | ParameterDeclaration | PortDeclaration | UnionTagDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //VariableDeclaration + public RuleCall getVariableDeclarationParserRuleCall_0() { return cVariableDeclarationParserRuleCall_0; } + + //ParameterDeclaration + public RuleCall getParameterDeclarationParserRuleCall_1() { return cParameterDeclarationParserRuleCall_1; } + + //PortDeclaration + public RuleCall getPortDeclarationParserRuleCall_2() { return cPortDeclarationParserRuleCall_2; } + + //UnionTagDeclaration + public RuleCall getUnionTagDeclarationParserRuleCall_3() { return cUnionTagDeclarationParserRuleCall_3; } + } + public class BoundDeclarationUseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.BoundDeclarationUse"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cVariableDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cConstantDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //BoundDeclarationUse: + // VariableDeclaration + // //| GenericConstantDeclaration + // | ConstantDeclaration; + @Override public ParserRule getRule() { return rule; } + + //VariableDeclaration //| GenericConstantDeclaration + //| ConstantDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //VariableDeclaration + public RuleCall getVariableDeclarationParserRuleCall_0() { return cVariableDeclarationParserRuleCall_0; } + + //ConstantDeclaration + public RuleCall getConstantDeclarationParserRuleCall_1() { return cConstantDeclarationParserRuleCall_1; } + } + public class PathDeclarationUseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PathDeclarationUse"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cComponentDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cInstanceDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cProcessDeclarationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + + //PathDeclarationUse: + // ComponentDeclaration + // | InstanceDeclaration + // | ProcessDeclaration; + @Override public ParserRule getRule() { return rule; } + + //ComponentDeclaration | InstanceDeclaration | ProcessDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //ComponentDeclaration + public RuleCall getComponentDeclarationParserRuleCall_0() { return cComponentDeclarationParserRuleCall_0; } + + //InstanceDeclaration + public RuleCall getInstanceDeclarationParserRuleCall_1() { return cInstanceDeclarationParserRuleCall_1; } + + //ProcessDeclaration + public RuleCall getProcessDeclarationParserRuleCall_2() { return cProcessDeclarationParserRuleCall_2; } + } + public class PropertyDeclarationUseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PropertyDeclarationUse"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cPropertyDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cVariableDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //PropertyDeclarationUse: + // PropertyDeclaration + // | VariableDeclaration; + @Override public ParserRule getRule() { return rule; } + + //PropertyDeclaration | VariableDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //PropertyDeclaration + public RuleCall getPropertyDeclarationParserRuleCall_0() { return cPropertyDeclarationParserRuleCall_0; } + + //VariableDeclaration + public RuleCall getVariableDeclarationParserRuleCall_1() { return cVariableDeclarationParserRuleCall_1; } + } + public class ImportDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ImportDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cIncludeKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cImportURIAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cImportURISTRINGTerminalRuleCall_1_0 = (RuleCall)cImportURIAssignment_1.eContents().get(0); + + //ImportDeclaration: + // '#include' importURI=STRING; + @Override public ParserRule getRule() { return rule; } + + //'#include' importURI=STRING + public Group getGroup() { return cGroup; } + + //'#include' + public Keyword getIncludeKeyword_0() { return cIncludeKeyword_0; } + + //importURI=STRING + public Assignment getImportURIAssignment_1() { return cImportURIAssignment_1; } + + //STRING + public RuleCall getImportURISTRINGTerminalRuleCall_1_0() { return cImportURISTRINGTerminalRuleCall_1_0; } + } + public class DeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Declaration"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cTypeDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cChannelDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cConstantDeclarationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cParameterizedDeclarationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cPropertyDeclarationParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + + //Declaration: + // TypeDeclaration + // | ChannelDeclaration + // | ConstantDeclaration + // | ParameterizedDeclaration + // | PropertyDeclaration; + @Override public ParserRule getRule() { return rule; } + + //TypeDeclaration | ChannelDeclaration | ConstantDeclaration | ParameterizedDeclaration | PropertyDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //TypeDeclaration + public RuleCall getTypeDeclarationParserRuleCall_0() { return cTypeDeclarationParserRuleCall_0; } + + //ChannelDeclaration + public RuleCall getChannelDeclarationParserRuleCall_1() { return cChannelDeclarationParserRuleCall_1; } + + //ConstantDeclaration + public RuleCall getConstantDeclarationParserRuleCall_2() { return cConstantDeclarationParserRuleCall_2; } + + //ParameterizedDeclaration + public RuleCall getParameterizedDeclarationParserRuleCall_3() { return cParameterizedDeclarationParserRuleCall_3; } + + //PropertyDeclaration + public RuleCall getPropertyDeclarationParserRuleCall_4() { return cPropertyDeclarationParserRuleCall_4; } + } + public class ParameterizedDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ParameterizedDeclaration"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cProcessDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cComponentDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cFunctionDeclarationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + + //ParameterizedDeclaration: + // ProcessDeclaration + // | ComponentDeclaration + // //added + // | FunctionDeclaration; + @Override public ParserRule getRule() { return rule; } + + //ProcessDeclaration | ComponentDeclaration //added + //| FunctionDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //ProcessDeclaration + public RuleCall getProcessDeclarationParserRuleCall_0() { return cProcessDeclarationParserRuleCall_0; } + + //ComponentDeclaration + public RuleCall getComponentDeclarationParserRuleCall_1() { return cComponentDeclarationParserRuleCall_1; } + + //FunctionDeclaration + public RuleCall getFunctionDeclarationParserRuleCall_2() { return cFunctionDeclarationParserRuleCall_2; } + } + public class FunctionDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.FunctionDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cFunctionKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cLeftParenthesisKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); + private final Assignment cParametersAssignment_2_1_0 = (Assignment)cGroup_2_1.eContents().get(0); + private final RuleCall cParametersParametersDeclarationParserRuleCall_2_1_0_0 = (RuleCall)cParametersAssignment_2_1_0.eContents().get(0); + private final Group cGroup_2_1_1 = (Group)cGroup_2_1.eContents().get(1); + private final Keyword cCommaKeyword_2_1_1_0 = (Keyword)cGroup_2_1_1.eContents().get(0); + private final Assignment cParametersAssignment_2_1_1_1 = (Assignment)cGroup_2_1_1.eContents().get(1); + private final RuleCall cParametersParametersDeclarationParserRuleCall_2_1_1_1_0 = (RuleCall)cParametersAssignment_2_1_1_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2); + private final Keyword cColonKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cTypeAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final RuleCall cTypeTypeParserRuleCall_4_0 = (RuleCall)cTypeAssignment_4.eContents().get(0); + private final Keyword cIsKeyword_5 = (Keyword)cGroup.eContents().get(5); + private final Group cGroup_6 = (Group)cGroup.eContents().get(6); + private final Keyword cVarKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0); + private final Assignment cVariablesAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1); + private final RuleCall cVariablesVariablesDeclarationParserRuleCall_6_1_0 = (RuleCall)cVariablesAssignment_6_1.eContents().get(0); + private final Group cGroup_6_2 = (Group)cGroup_6.eContents().get(2); + private final Keyword cCommaKeyword_6_2_0 = (Keyword)cGroup_6_2.eContents().get(0); + private final Assignment cVariablesAssignment_6_2_1 = (Assignment)cGroup_6_2.eContents().get(1); + private final RuleCall cVariablesVariablesDeclarationParserRuleCall_6_2_1_0 = (RuleCall)cVariablesAssignment_6_2_1.eContents().get(0); + private final Assignment cStatementAssignment_7 = (Assignment)cGroup.eContents().get(7); + private final RuleCall cStatementStatementParserRuleCall_7_0 = (RuleCall)cStatementAssignment_7.eContents().get(0); + + //FunctionDeclaration: + // 'function' name=ID ('(' (parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)*)? ')') + // ':' type=Type + // 'is' ('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? + // statement=Statement; + @Override public ParserRule getRule() { return rule; } + + //'function' name=ID ('(' (parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)*)? ')') ':' type=Type + //'is' ('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? statement=Statement + public Group getGroup() { return cGroup; } + + //'function' + public Keyword getFunctionKeyword_0() { return cFunctionKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + + //('(' (parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)*)? ')') + public Group getGroup_2() { return cGroup_2; } + + //'(' + public Keyword getLeftParenthesisKeyword_2_0() { return cLeftParenthesisKeyword_2_0; } + + //(parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)*)? + public Group getGroup_2_1() { return cGroup_2_1; } + + //parameters+=ParametersDeclaration + public Assignment getParametersAssignment_2_1_0() { return cParametersAssignment_2_1_0; } + + //ParametersDeclaration + public RuleCall getParametersParametersDeclarationParserRuleCall_2_1_0_0() { return cParametersParametersDeclarationParserRuleCall_2_1_0_0; } + + //(',' parameters+=ParametersDeclaration)* + public Group getGroup_2_1_1() { return cGroup_2_1_1; } + + //',' + public Keyword getCommaKeyword_2_1_1_0() { return cCommaKeyword_2_1_1_0; } + + //parameters+=ParametersDeclaration + public Assignment getParametersAssignment_2_1_1_1() { return cParametersAssignment_2_1_1_1; } + + //ParametersDeclaration + public RuleCall getParametersParametersDeclarationParserRuleCall_2_1_1_1_0() { return cParametersParametersDeclarationParserRuleCall_2_1_1_1_0; } + + //')' + public Keyword getRightParenthesisKeyword_2_2() { return cRightParenthesisKeyword_2_2; } + + //':' + public Keyword getColonKeyword_3() { return cColonKeyword_3; } + + //type=Type + public Assignment getTypeAssignment_4() { return cTypeAssignment_4; } + + //Type + public RuleCall getTypeTypeParserRuleCall_4_0() { return cTypeTypeParserRuleCall_4_0; } + + //'is' + public Keyword getIsKeyword_5() { return cIsKeyword_5; } + + //('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? + public Group getGroup_6() { return cGroup_6; } + + //'var' + public Keyword getVarKeyword_6_0() { return cVarKeyword_6_0; } + + //variables+=VariablesDeclaration + public Assignment getVariablesAssignment_6_1() { return cVariablesAssignment_6_1; } + + //VariablesDeclaration + public RuleCall getVariablesVariablesDeclarationParserRuleCall_6_1_0() { return cVariablesVariablesDeclarationParserRuleCall_6_1_0; } + + //(',' variables+=VariablesDeclaration)* + public Group getGroup_6_2() { return cGroup_6_2; } + + //',' + public Keyword getCommaKeyword_6_2_0() { return cCommaKeyword_6_2_0; } + + //variables+=VariablesDeclaration + public Assignment getVariablesAssignment_6_2_1() { return cVariablesAssignment_6_2_1; } + + //VariablesDeclaration + public RuleCall getVariablesVariablesDeclarationParserRuleCall_6_2_1_0() { return cVariablesVariablesDeclarationParserRuleCall_6_2_1_0; } + + //statement=Statement + public Assignment getStatementAssignment_7() { return cStatementAssignment_7; } + + //Statement + public RuleCall getStatementStatementParserRuleCall_7_0() { return cStatementStatementParserRuleCall_7_0; } + } + public class TypeDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.TypeDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cTypeKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cIsKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cValueAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cValueTypeParserRuleCall_3_0 = (RuleCall)cValueAssignment_3.eContents().get(0); + + //TypeDeclaration: + // 'type' name=ID 'is' value=Type; + @Override public ParserRule getRule() { return rule; } + + //'type' name=ID 'is' value=Type + public Group getGroup() { return cGroup; } + + //'type' + public Keyword getTypeKeyword_0() { return cTypeKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + + //'is' + public Keyword getIsKeyword_2() { return cIsKeyword_2; } + + //value=Type + public Assignment getValueAssignment_3() { return cValueAssignment_3; } + + //Type + public RuleCall getValueTypeParserRuleCall_3_0() { return cValueTypeParserRuleCall_3_0; } + } + public class ChannelDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ChannelDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cChannelKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cIsKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cValueAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cValueChannelTypeParserRuleCall_3_0 = (RuleCall)cValueAssignment_3.eContents().get(0); + + //ChannelDeclaration: + // 'channel' name=ID 'is' value=ChannelType; + @Override public ParserRule getRule() { return rule; } + + //'channel' name=ID 'is' value=ChannelType + public Group getGroup() { return cGroup; } + + //'channel' + public Keyword getChannelKeyword_0() { return cChannelKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + + //'is' + public Keyword getIsKeyword_2() { return cIsKeyword_2; } + + //value=ChannelType + public Assignment getValueAssignment_3() { return cValueAssignment_3; } + + //ChannelType + public RuleCall getValueChannelTypeParserRuleCall_3_0() { return cValueChannelTypeParserRuleCall_3_0; } + } + public class ChannelTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ChannelType"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cChannelTypeAction_0 = (Action)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cArrayKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cSizeAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cSizeExpressionParserRuleCall_1_1_0 = (RuleCall)cSizeAssignment_1_1.eContents().get(0); + private final Keyword cOfKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); + private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); + private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0); + private final Alternatives cAlternatives_2_0_0 = (Alternatives)cGroup_2_0.eContents().get(0); + private final Group cGroup_2_0_0_0 = (Group)cAlternatives_2_0_0.eContents().get(0); + private final Assignment cInAssignment_2_0_0_0_0 = (Assignment)cGroup_2_0_0_0.eContents().get(0); + private final Keyword cInInKeyword_2_0_0_0_0_0 = (Keyword)cInAssignment_2_0_0_0_0.eContents().get(0); + private final Assignment cOutAssignment_2_0_0_0_1 = (Assignment)cGroup_2_0_0_0.eContents().get(1); + private final Keyword cOutOutKeyword_2_0_0_0_1_0 = (Keyword)cOutAssignment_2_0_0_0_1.eContents().get(0); + private final Assignment cOutAssignment_2_0_0_1 = (Assignment)cAlternatives_2_0_0.eContents().get(1); + private final Keyword cOutOutKeyword_2_0_0_1_0 = (Keyword)cOutAssignment_2_0_0_1.eContents().get(0); + private final Alternatives cAlternatives_2_0_1 = (Alternatives)cGroup_2_0.eContents().get(1); + private final Assignment cTypeAssignment_2_0_1_0 = (Assignment)cAlternatives_2_0_1.eContents().get(0); + private final RuleCall cTypeTupleTypeParserRuleCall_2_0_1_0_0 = (RuleCall)cTypeAssignment_2_0_1_0.eContents().get(0); + private final Keyword cNoneKeyword_2_0_1_1 = (Keyword)cAlternatives_2_0_1.eContents().get(1); + private final Keyword cNoneKeyword_2_1 = (Keyword)cAlternatives_2.eContents().get(1); + private final Keyword cSyncKeyword_2_2 = (Keyword)cAlternatives_2.eContents().get(2); + + //ChannelType: + // {ChannelType} ('array' size=Expression 'of')? ((in?='in' out?='out'? | out?='out')? (type=TupleType | 'none') | 'none' + // | 'sync'); + @Override public ParserRule getRule() { return rule; } + + //{ChannelType} ('array' size=Expression 'of')? ((in?='in' out?='out'? | out?='out')? (type=TupleType | 'none') | 'none' | + //'sync') + public Group getGroup() { return cGroup; } + + //{ChannelType} + public Action getChannelTypeAction_0() { return cChannelTypeAction_0; } + + //('array' size=Expression 'of')? + public Group getGroup_1() { return cGroup_1; } + + //'array' + public Keyword getArrayKeyword_1_0() { return cArrayKeyword_1_0; } + + //size=Expression + public Assignment getSizeAssignment_1_1() { return cSizeAssignment_1_1; } + + //Expression + public RuleCall getSizeExpressionParserRuleCall_1_1_0() { return cSizeExpressionParserRuleCall_1_1_0; } + + //'of' + public Keyword getOfKeyword_1_2() { return cOfKeyword_1_2; } + + //((in?='in' out?='out'? | out?='out')? (type=TupleType | 'none') | 'none' | 'sync') + public Alternatives getAlternatives_2() { return cAlternatives_2; } + + //(in?='in' out?='out'? | out?='out')? (type=TupleType | 'none') + public Group getGroup_2_0() { return cGroup_2_0; } + + //(in?='in' out?='out'? | out?='out')? + public Alternatives getAlternatives_2_0_0() { return cAlternatives_2_0_0; } + + //in?='in' out?='out'? + public Group getGroup_2_0_0_0() { return cGroup_2_0_0_0; } + + //in?='in' + public Assignment getInAssignment_2_0_0_0_0() { return cInAssignment_2_0_0_0_0; } + + //'in' + public Keyword getInInKeyword_2_0_0_0_0_0() { return cInInKeyword_2_0_0_0_0_0; } + + //out?='out'? + public Assignment getOutAssignment_2_0_0_0_1() { return cOutAssignment_2_0_0_0_1; } + + //'out' + public Keyword getOutOutKeyword_2_0_0_0_1_0() { return cOutOutKeyword_2_0_0_0_1_0; } + + //out?='out' + public Assignment getOutAssignment_2_0_0_1() { return cOutAssignment_2_0_0_1; } + + //'out' + public Keyword getOutOutKeyword_2_0_0_1_0() { return cOutOutKeyword_2_0_0_1_0; } + + //(type=TupleType | 'none') + public Alternatives getAlternatives_2_0_1() { return cAlternatives_2_0_1; } + + //type=TupleType + public Assignment getTypeAssignment_2_0_1_0() { return cTypeAssignment_2_0_1_0; } + + //TupleType + public RuleCall getTypeTupleTypeParserRuleCall_2_0_1_0_0() { return cTypeTupleTypeParserRuleCall_2_0_1_0_0; } + + //'none' + public Keyword getNoneKeyword_2_0_1_1() { return cNoneKeyword_2_0_1_1; } + + //'none' + public Keyword getNoneKeyword_2_1() { return cNoneKeyword_2_1; } + + //'sync' + public Keyword getSyncKeyword_2_2() { return cSyncKeyword_2_2; } + } + public class TypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Type"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cBasicTypeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cRangeTypeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cUnionTypeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cRecordTypeParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cQueueTypeParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + private final RuleCall cArrayTypeParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); + private final RuleCall cReferencedTypeParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); + + //Type: + // BasicType + // | RangeType + // | UnionType + // | RecordType + // | QueueType + // | ArrayType + // | ReferencedType + // // | TupleType + //; + @Override public ParserRule getRule() { return rule; } + + //BasicType | RangeType | UnionType | RecordType | QueueType | ArrayType | ReferencedType + public Alternatives getAlternatives() { return cAlternatives; } + + //BasicType + public RuleCall getBasicTypeParserRuleCall_0() { return cBasicTypeParserRuleCall_0; } + + //RangeType + public RuleCall getRangeTypeParserRuleCall_1() { return cRangeTypeParserRuleCall_1; } + + //UnionType + public RuleCall getUnionTypeParserRuleCall_2() { return cUnionTypeParserRuleCall_2; } + + //RecordType + public RuleCall getRecordTypeParserRuleCall_3() { return cRecordTypeParserRuleCall_3; } + + //QueueType + public RuleCall getQueueTypeParserRuleCall_4() { return cQueueTypeParserRuleCall_4; } + + //ArrayType + public RuleCall getArrayTypeParserRuleCall_5() { return cArrayTypeParserRuleCall_5; } + + //ReferencedType + public RuleCall getReferencedTypeParserRuleCall_6() { return cReferencedTypeParserRuleCall_6; } + } + public class TupleTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.TupleType"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cTypeParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cTupleTypeTypesAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cNumberSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cTypesAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cTypesTypeParserRuleCall_1_2_0 = (RuleCall)cTypesAssignment_1_2.eContents().get(0); + + //TupleType Type: + // Type ({TupleType.types+=current} '#' types+=Type)* + @Override public ParserRule getRule() { return rule; } + + //Type ({TupleType.types+=current} '#' types+=Type)* + public Group getGroup() { return cGroup; } + + //Type + public RuleCall getTypeParserRuleCall_0() { return cTypeParserRuleCall_0; } + + //({TupleType.types+=current} '#' types+=Type)* + public Group getGroup_1() { return cGroup_1; } + + //{TupleType.types+=current} + public Action getTupleTypeTypesAction_1_0() { return cTupleTypeTypesAction_1_0; } + + //'#' + public Keyword getNumberSignKeyword_1_1() { return cNumberSignKeyword_1_1; } + + //types+=Type + public Assignment getTypesAssignment_1_2() { return cTypesAssignment_1_2; } + + //Type + public RuleCall getTypesTypeParserRuleCall_1_2_0() { return cTypesTypeParserRuleCall_1_2_0; } + } + public class BasicTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.BasicType"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cNaturalTypeAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Keyword cNatKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Action cIntegerTypeAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cIntKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2); + private final Action cBooleanTypeAction_2_0 = (Action)cGroup_2.eContents().get(0); + private final Keyword cBoolKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1); + + //BasicType: + // {NaturalType} 'nat' + // | {IntegerType} 'int' + // | {BooleanType} 'bool'; + @Override public ParserRule getRule() { return rule; } + + //{NaturalType} 'nat' | {IntegerType} 'int' | {BooleanType} 'bool' + public Alternatives getAlternatives() { return cAlternatives; } + + //{NaturalType} 'nat' + public Group getGroup_0() { return cGroup_0; } + + //{NaturalType} + public Action getNaturalTypeAction_0_0() { return cNaturalTypeAction_0_0; } + + //'nat' + public Keyword getNatKeyword_0_1() { return cNatKeyword_0_1; } + + //{IntegerType} 'int' + public Group getGroup_1() { return cGroup_1; } + + //{IntegerType} + public Action getIntegerTypeAction_1_0() { return cIntegerTypeAction_1_0; } + + //'int' + public Keyword getIntKeyword_1_1() { return cIntKeyword_1_1; } + + //{BooleanType} 'bool' + public Group getGroup_2() { return cGroup_2; } + + //{BooleanType} + public Action getBooleanTypeAction_2_0() { return cBooleanTypeAction_2_0; } + + //'bool' + public Keyword getBoolKeyword_2_1() { return cBoolKeyword_2_1; } + } + public class RangeTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.RangeType"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cMinimumAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cMinimumExpressionParserRuleCall_0_0 = (RuleCall)cMinimumAssignment_0.eContents().get(0); + private final Keyword cFullStopFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cMaximumAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cMaximumExpressionParserRuleCall_2_0 = (RuleCall)cMaximumAssignment_2.eContents().get(0); + + //// changed + //RangeType: + // minimum=Expression '..' maximum=Expression; + @Override public ParserRule getRule() { return rule; } + + //minimum=Expression '..' maximum=Expression + public Group getGroup() { return cGroup; } + + //minimum=Expression + public Assignment getMinimumAssignment_0() { return cMinimumAssignment_0; } + + //Expression + public RuleCall getMinimumExpressionParserRuleCall_0_0() { return cMinimumExpressionParserRuleCall_0_0; } + + //'..' + public Keyword getFullStopFullStopKeyword_1() { return cFullStopFullStopKeyword_1; } + + //maximum=Expression + public Assignment getMaximumAssignment_2() { return cMaximumAssignment_2; } + + //Expression + public RuleCall getMaximumExpressionParserRuleCall_2_0() { return cMaximumExpressionParserRuleCall_2_0; } + } + public class UnionTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.UnionType"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cUnionKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cTagsAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cTagsUnionTagsParserRuleCall_1_0 = (RuleCall)cTagsAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cVerticalLineKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cTagsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cTagsUnionTagsParserRuleCall_2_1_0 = (RuleCall)cTagsAssignment_2_1.eContents().get(0); + private final Keyword cEndKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Keyword cUnionKeyword_4 = (Keyword)cGroup.eContents().get(4); + + //UnionType: + // 'union' tags+=UnionTags ('|' tags+=UnionTags)* 'end' 'union'?; + @Override public ParserRule getRule() { return rule; } + + //'union' tags+=UnionTags ('|' tags+=UnionTags)* 'end' 'union'? + public Group getGroup() { return cGroup; } + + //'union' + public Keyword getUnionKeyword_0() { return cUnionKeyword_0; } + + //tags+=UnionTags + public Assignment getTagsAssignment_1() { return cTagsAssignment_1; } + + //UnionTags + public RuleCall getTagsUnionTagsParserRuleCall_1_0() { return cTagsUnionTagsParserRuleCall_1_0; } + + //('|' tags+=UnionTags)* + public Group getGroup_2() { return cGroup_2; } + + //'|' + public Keyword getVerticalLineKeyword_2_0() { return cVerticalLineKeyword_2_0; } + + //tags+=UnionTags + public Assignment getTagsAssignment_2_1() { return cTagsAssignment_2_1; } + + //UnionTags + public RuleCall getTagsUnionTagsParserRuleCall_2_1_0() { return cTagsUnionTagsParserRuleCall_2_1_0; } + + //'end' + public Keyword getEndKeyword_3() { return cEndKeyword_3; } + + //'union'? + public Keyword getUnionKeyword_4() { return cUnionKeyword_4; } + } + public class UnionTagsElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.UnionTags"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cTagsAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cTagsUnionTagDeclarationParserRuleCall_0_0 = (RuleCall)cTagsAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cTagsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cTagsUnionTagDeclarationParserRuleCall_1_1_0 = (RuleCall)cTagsAssignment_1_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cOfKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cTypeAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cTypeTypeParserRuleCall_2_1_0 = (RuleCall)cTypeAssignment_2_1.eContents().get(0); + + //UnionTags: + // tags+=UnionTagDeclaration (',' tags+=UnionTagDeclaration)* ('of' type=Type)?; + @Override public ParserRule getRule() { return rule; } + + //tags+=UnionTagDeclaration (',' tags+=UnionTagDeclaration)* ('of' type=Type)? + public Group getGroup() { return cGroup; } + + //tags+=UnionTagDeclaration + public Assignment getTagsAssignment_0() { return cTagsAssignment_0; } + + //UnionTagDeclaration + public RuleCall getTagsUnionTagDeclarationParserRuleCall_0_0() { return cTagsUnionTagDeclarationParserRuleCall_0_0; } + + //(',' tags+=UnionTagDeclaration)* + public Group getGroup_1() { return cGroup_1; } + + //',' + public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; } + + //tags+=UnionTagDeclaration + public Assignment getTagsAssignment_1_1() { return cTagsAssignment_1_1; } + + //UnionTagDeclaration + public RuleCall getTagsUnionTagDeclarationParserRuleCall_1_1_0() { return cTagsUnionTagDeclarationParserRuleCall_1_1_0; } + + //('of' type=Type)? + public Group getGroup_2() { return cGroup_2; } + + //'of' + public Keyword getOfKeyword_2_0() { return cOfKeyword_2_0; } + + //type=Type + public Assignment getTypeAssignment_2_1() { return cTypeAssignment_2_1; } + + //Type + public RuleCall getTypeTypeParserRuleCall_2_1_0() { return cTypeTypeParserRuleCall_2_1_0; } + } + public class UnionTagDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.UnionTagDeclaration"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + //UnionTagDeclaration: + // name=ID; + @Override public ParserRule getRule() { return rule; } + + //name=ID + public Assignment getNameAssignment() { return cNameAssignment; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } + } + public class RecordTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.RecordType"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cRecordKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cFieldsAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cFieldsRecordFieldsParserRuleCall_1_0 = (RuleCall)cFieldsAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cFieldsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cFieldsRecordFieldsParserRuleCall_2_1_0 = (RuleCall)cFieldsAssignment_2_1.eContents().get(0); + private final Keyword cEndKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Keyword cRecordKeyword_4 = (Keyword)cGroup.eContents().get(4); + + //RecordType: + // 'record' fields+=RecordFields (',' fields+=RecordFields)* 'end' 'record'?; + @Override public ParserRule getRule() { return rule; } + + //'record' fields+=RecordFields (',' fields+=RecordFields)* 'end' 'record'? + public Group getGroup() { return cGroup; } + + //'record' + public Keyword getRecordKeyword_0() { return cRecordKeyword_0; } + + //fields+=RecordFields + public Assignment getFieldsAssignment_1() { return cFieldsAssignment_1; } + + //RecordFields + public RuleCall getFieldsRecordFieldsParserRuleCall_1_0() { return cFieldsRecordFieldsParserRuleCall_1_0; } + + //(',' fields+=RecordFields)* + public Group getGroup_2() { return cGroup_2; } + + //',' + public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; } + + //fields+=RecordFields + public Assignment getFieldsAssignment_2_1() { return cFieldsAssignment_2_1; } + + //RecordFields + public RuleCall getFieldsRecordFieldsParserRuleCall_2_1_0() { return cFieldsRecordFieldsParserRuleCall_2_1_0; } + + //'end' + public Keyword getEndKeyword_3() { return cEndKeyword_3; } + + //'record'? + public Keyword getRecordKeyword_4() { return cRecordKeyword_4; } + } + public class RecordFieldsElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.RecordFields"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cFieldsAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cFieldsRecordFieldDeclarationParserRuleCall_0_0 = (RuleCall)cFieldsAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cFieldsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cFieldsRecordFieldDeclarationParserRuleCall_1_1_0 = (RuleCall)cFieldsAssignment_1_1.eContents().get(0); + private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTypeTypeParserRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0); + + //RecordFields: + // fields+=RecordFieldDeclaration (',' fields+=RecordFieldDeclaration)* ':' type=Type; + @Override public ParserRule getRule() { return rule; } + + //fields+=RecordFieldDeclaration (',' fields+=RecordFieldDeclaration)* ':' type=Type + public Group getGroup() { return cGroup; } + + //fields+=RecordFieldDeclaration + public Assignment getFieldsAssignment_0() { return cFieldsAssignment_0; } + + //RecordFieldDeclaration + public RuleCall getFieldsRecordFieldDeclarationParserRuleCall_0_0() { return cFieldsRecordFieldDeclarationParserRuleCall_0_0; } + + //(',' fields+=RecordFieldDeclaration)* + public Group getGroup_1() { return cGroup_1; } + + //',' + public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; } + + //fields+=RecordFieldDeclaration + public Assignment getFieldsAssignment_1_1() { return cFieldsAssignment_1_1; } + + //RecordFieldDeclaration + public RuleCall getFieldsRecordFieldDeclarationParserRuleCall_1_1_0() { return cFieldsRecordFieldDeclarationParserRuleCall_1_1_0; } + + //':' + public Keyword getColonKeyword_2() { return cColonKeyword_2; } + + //type=Type + public Assignment getTypeAssignment_3() { return cTypeAssignment_3; } + + //Type + public RuleCall getTypeTypeParserRuleCall_3_0() { return cTypeTypeParserRuleCall_3_0; } + } + public class RecordFieldDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.RecordFieldDeclaration"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + //RecordFieldDeclaration: + // name=ID; + @Override public ParserRule getRule() { return rule; } + + //name=ID + public Assignment getNameAssignment() { return cNameAssignment; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } + } + public class QueueTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.QueueType"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cQueueKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cSizeAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cSizeExpressionParserRuleCall_1_0 = (RuleCall)cSizeAssignment_1.eContents().get(0); + private final Keyword cOfKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTypeTypeParserRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0); + + //QueueType: + // 'queue' size=Expression 'of' type=Type; + @Override public ParserRule getRule() { return rule; } + + //'queue' size=Expression 'of' type=Type + public Group getGroup() { return cGroup; } + + //'queue' + public Keyword getQueueKeyword_0() { return cQueueKeyword_0; } + + //size=Expression + public Assignment getSizeAssignment_1() { return cSizeAssignment_1; } + + //Expression + public RuleCall getSizeExpressionParserRuleCall_1_0() { return cSizeExpressionParserRuleCall_1_0; } + + //'of' + public Keyword getOfKeyword_2() { return cOfKeyword_2; } + + //type=Type + public Assignment getTypeAssignment_3() { return cTypeAssignment_3; } + + //Type + public RuleCall getTypeTypeParserRuleCall_3_0() { return cTypeTypeParserRuleCall_3_0; } + } + public class ArrayTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ArrayType"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cArrayKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cSizeAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cSizeExpressionParserRuleCall_1_0 = (RuleCall)cSizeAssignment_1.eContents().get(0); + private final Keyword cOfKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTypeTypeParserRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0); + + //ArrayType: + // 'array' size=Expression 'of' type=Type; + @Override public ParserRule getRule() { return rule; } + + //'array' size=Expression 'of' type=Type + public Group getGroup() { return cGroup; } + + //'array' + public Keyword getArrayKeyword_0() { return cArrayKeyword_0; } + + //size=Expression + public Assignment getSizeAssignment_1() { return cSizeAssignment_1; } + + //Expression + public RuleCall getSizeExpressionParserRuleCall_1_0() { return cSizeExpressionParserRuleCall_1_0; } + + //'of' + public Keyword getOfKeyword_2() { return cOfKeyword_2; } + + //type=Type + public Assignment getTypeAssignment_3() { return cTypeAssignment_3; } + + //Type + public RuleCall getTypeTypeParserRuleCall_3_0() { return cTypeTypeParserRuleCall_3_0; } + } + public class ReferencedTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ReferencedType"); + private final Assignment cTypeAssignment = (Assignment)rule.eContents().get(1); + private final CrossReference cTypeTypeDeclarationUseCrossReference_0 = (CrossReference)cTypeAssignment.eContents().get(0); + private final RuleCall cTypeTypeDeclarationUseIDTerminalRuleCall_0_1 = (RuleCall)cTypeTypeDeclarationUseCrossReference_0.eContents().get(1); + + //ReferencedType: + // type=[TypeDeclarationUse]; + @Override public ParserRule getRule() { return rule; } + + //type=[TypeDeclarationUse] + public Assignment getTypeAssignment() { return cTypeAssignment; } + + //[TypeDeclarationUse] + public CrossReference getTypeTypeDeclarationUseCrossReference_0() { return cTypeTypeDeclarationUseCrossReference_0; } + + //ID + public RuleCall getTypeTypeDeclarationUseIDTerminalRuleCall_0_1() { return cTypeTypeDeclarationUseIDTerminalRuleCall_0_1; } + } + public class ConstantDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ConstantDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cConstKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTypeTypeParserRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0); + private final Keyword cIsKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Assignment cValueAssignment_5 = (Assignment)cGroup.eContents().get(5); + private final RuleCall cValueExpressionParserRuleCall_5_0 = (RuleCall)cValueAssignment_5.eContents().get(0); + + /// * ChannelDeclaration: + // 'channel' name=ID 'is' channel=ChannelType + //; * / ConstantDeclaration: + // 'const' name=ID ':' type=Type 'is' value=Expression; + @Override public ParserRule getRule() { return rule; } + + //'const' name=ID ':' type=Type 'is' value=Expression + public Group getGroup() { return cGroup; } + + //'const' + public Keyword getConstKeyword_0() { return cConstKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + + //':' + public Keyword getColonKeyword_2() { return cColonKeyword_2; } + + //type=Type + public Assignment getTypeAssignment_3() { return cTypeAssignment_3; } + + //Type + public RuleCall getTypeTypeParserRuleCall_3_0() { return cTypeTypeParserRuleCall_3_0; } + + //'is' + public Keyword getIsKeyword_4() { return cIsKeyword_4; } + + //value=Expression + public Assignment getValueAssignment_5() { return cValueAssignment_5; } + + //Expression + public RuleCall getValueExpressionParserRuleCall_5_0() { return cValueExpressionParserRuleCall_5_0; } + } + public class ProcessDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ProcessDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cProcessKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cLeftSquareBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cPortsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cPortsPortsDeclarationParserRuleCall_2_1_0 = (RuleCall)cPortsAssignment_2_1.eContents().get(0); + private final Group cGroup_2_2 = (Group)cGroup_2.eContents().get(2); + private final Keyword cCommaKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0); + private final Assignment cPortsAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1); + private final RuleCall cPortsPortsDeclarationParserRuleCall_2_2_1_0 = (RuleCall)cPortsAssignment_2_2_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cLeftParenthesisKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Assignment cParametersAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); + private final RuleCall cParametersParametersDeclarationParserRuleCall_3_1_0 = (RuleCall)cParametersAssignment_3_1.eContents().get(0); + private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2); + private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0); + private final Assignment cParametersAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1); + private final RuleCall cParametersParametersDeclarationParserRuleCall_3_2_1_0 = (RuleCall)cParametersAssignment_3_2_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3); + private final Keyword cIsKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Group cGroup_5 = (Group)cGroup.eContents().get(5); + private final Keyword cPortKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0); + private final Assignment cLocalPortsAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1); + private final RuleCall cLocalPortsPortsDeclarationParserRuleCall_5_1_0 = (RuleCall)cLocalPortsAssignment_5_1.eContents().get(0); + private final Group cGroup_5_2 = (Group)cGroup_5.eContents().get(2); + private final Keyword cCommaKeyword_5_2_0 = (Keyword)cGroup_5_2.eContents().get(0); + private final Assignment cLocalPortsAssignment_5_2_1 = (Assignment)cGroup_5_2.eContents().get(1); + private final RuleCall cLocalPortsPortsDeclarationParserRuleCall_5_2_1_0 = (RuleCall)cLocalPortsAssignment_5_2_1.eContents().get(0); + private final Group cGroup_6 = (Group)cGroup.eContents().get(6); + private final Keyword cPriorityKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0); + private final Assignment cPrioritiesAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1); + private final RuleCall cPrioritiesPriorityDeclarationParserRuleCall_6_1_0 = (RuleCall)cPrioritiesAssignment_6_1.eContents().get(0); + private final Group cGroup_6_2 = (Group)cGroup_6.eContents().get(2); + private final Keyword cCommaKeyword_6_2_0 = (Keyword)cGroup_6_2.eContents().get(0); + private final Assignment cPrioritiesAssignment_6_2_1 = (Assignment)cGroup_6_2.eContents().get(1); + private final RuleCall cPrioritiesPriorityDeclarationParserRuleCall_6_2_1_0 = (RuleCall)cPrioritiesAssignment_6_2_1.eContents().get(0); + private final Keyword cStatesKeyword_7 = (Keyword)cGroup.eContents().get(7); + private final Assignment cStatesAssignment_8 = (Assignment)cGroup.eContents().get(8); + private final RuleCall cStatesStateDeclarationParserRuleCall_8_0 = (RuleCall)cStatesAssignment_8.eContents().get(0); + private final Group cGroup_9 = (Group)cGroup.eContents().get(9); + private final Keyword cCommaKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0); + private final Assignment cStatesAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1); + private final RuleCall cStatesStateDeclarationParserRuleCall_9_1_0 = (RuleCall)cStatesAssignment_9_1.eContents().get(0); + private final Group cGroup_10 = (Group)cGroup.eContents().get(10); + private final Keyword cVarKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0); + private final Assignment cVariablesAssignment_10_1 = (Assignment)cGroup_10.eContents().get(1); + private final RuleCall cVariablesVariablesDeclarationParserRuleCall_10_1_0 = (RuleCall)cVariablesAssignment_10_1.eContents().get(0); + private final Group cGroup_10_2 = (Group)cGroup_10.eContents().get(2); + private final Keyword cCommaKeyword_10_2_0 = (Keyword)cGroup_10_2.eContents().get(0); + private final Assignment cVariablesAssignment_10_2_1 = (Assignment)cGroup_10_2.eContents().get(1); + private final RuleCall cVariablesVariablesDeclarationParserRuleCall_10_2_1_0 = (RuleCall)cVariablesAssignment_10_2_1.eContents().get(0); + private final Group cGroup_11 = (Group)cGroup.eContents().get(11); + private final Keyword cInitKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0); + private final Assignment cPreludeAssignment_11_1 = (Assignment)cGroup_11.eContents().get(1); + private final RuleCall cPreludeStatementSequenceParserRuleCall_11_1_0 = (RuleCall)cPreludeAssignment_11_1.eContents().get(0); + private final Assignment cTransitionsAssignment_12 = (Assignment)cGroup.eContents().get(12); + private final RuleCall cTransitionsTransitionParserRuleCall_12_0 = (RuleCall)cTransitionsAssignment_12.eContents().get(0); + + //ProcessDeclaration: + // 'process' name=ID ('[' ports+=PortsDeclaration (',' ports+=PortsDeclaration)* ']')? ('(' + // parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)* ')')? + // 'is' ('port' localPorts+=PortsDeclaration (',' localPorts+=PortsDeclaration)*)? ('priority' + // priorities+=PriorityDeclaration (',' priorities+=PriorityDeclaration)*)? + // 'states' states+=StateDeclaration (',' states+=StateDeclaration)* ('var' variables+=VariablesDeclaration (',' + // variables+=VariablesDeclaration)*)? ('init' prelude=StatementSequence)? + // transitions+=Transition+; + @Override public ParserRule getRule() { return rule; } + + //'process' name=ID ('[' ports+=PortsDeclaration (',' ports+=PortsDeclaration)* ']')? ('(' + //parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)* ')')? 'is' ('port' + //localPorts+=PortsDeclaration (',' localPorts+=PortsDeclaration)*)? ('priority' priorities+=PriorityDeclaration (',' + //priorities+=PriorityDeclaration)*)? 'states' states+=StateDeclaration (',' states+=StateDeclaration)* ('var' + //variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? ('init' prelude=StatementSequence)? + //transitions+=Transition+ + public Group getGroup() { return cGroup; } + + //'process' + public Keyword getProcessKeyword_0() { return cProcessKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + + //('[' ports+=PortsDeclaration (',' ports+=PortsDeclaration)* ']')? + public Group getGroup_2() { return cGroup_2; } + + //'[' + public Keyword getLeftSquareBracketKeyword_2_0() { return cLeftSquareBracketKeyword_2_0; } + + //ports+=PortsDeclaration + public Assignment getPortsAssignment_2_1() { return cPortsAssignment_2_1; } + + //PortsDeclaration + public RuleCall getPortsPortsDeclarationParserRuleCall_2_1_0() { return cPortsPortsDeclarationParserRuleCall_2_1_0; } + + //(',' ports+=PortsDeclaration)* + public Group getGroup_2_2() { return cGroup_2_2; } + + //',' + public Keyword getCommaKeyword_2_2_0() { return cCommaKeyword_2_2_0; } + + //ports+=PortsDeclaration + public Assignment getPortsAssignment_2_2_1() { return cPortsAssignment_2_2_1; } + + //PortsDeclaration + public RuleCall getPortsPortsDeclarationParserRuleCall_2_2_1_0() { return cPortsPortsDeclarationParserRuleCall_2_2_1_0; } + + //']' + public Keyword getRightSquareBracketKeyword_2_3() { return cRightSquareBracketKeyword_2_3; } + + //('(' parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)* ')')? + public Group getGroup_3() { return cGroup_3; } + + //'(' + public Keyword getLeftParenthesisKeyword_3_0() { return cLeftParenthesisKeyword_3_0; } + + //parameters+=ParametersDeclaration + public Assignment getParametersAssignment_3_1() { return cParametersAssignment_3_1; } + + //ParametersDeclaration + public RuleCall getParametersParametersDeclarationParserRuleCall_3_1_0() { return cParametersParametersDeclarationParserRuleCall_3_1_0; } + + //(',' parameters+=ParametersDeclaration)* + public Group getGroup_3_2() { return cGroup_3_2; } + + //',' + public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; } + + //parameters+=ParametersDeclaration + public Assignment getParametersAssignment_3_2_1() { return cParametersAssignment_3_2_1; } + + //ParametersDeclaration + public RuleCall getParametersParametersDeclarationParserRuleCall_3_2_1_0() { return cParametersParametersDeclarationParserRuleCall_3_2_1_0; } + + //')' + public Keyword getRightParenthesisKeyword_3_3() { return cRightParenthesisKeyword_3_3; } + + //'is' + public Keyword getIsKeyword_4() { return cIsKeyword_4; } + + //('port' localPorts+=PortsDeclaration (',' localPorts+=PortsDeclaration)*)? + public Group getGroup_5() { return cGroup_5; } + + //'port' + public Keyword getPortKeyword_5_0() { return cPortKeyword_5_0; } + + //localPorts+=PortsDeclaration + public Assignment getLocalPortsAssignment_5_1() { return cLocalPortsAssignment_5_1; } + + //PortsDeclaration + public RuleCall getLocalPortsPortsDeclarationParserRuleCall_5_1_0() { return cLocalPortsPortsDeclarationParserRuleCall_5_1_0; } + + //(',' localPorts+=PortsDeclaration)* + public Group getGroup_5_2() { return cGroup_5_2; } + + //',' + public Keyword getCommaKeyword_5_2_0() { return cCommaKeyword_5_2_0; } + + //localPorts+=PortsDeclaration + public Assignment getLocalPortsAssignment_5_2_1() { return cLocalPortsAssignment_5_2_1; } + + //PortsDeclaration + public RuleCall getLocalPortsPortsDeclarationParserRuleCall_5_2_1_0() { return cLocalPortsPortsDeclarationParserRuleCall_5_2_1_0; } + + //('priority' priorities+=PriorityDeclaration (',' priorities+=PriorityDeclaration)*)? + public Group getGroup_6() { return cGroup_6; } + + //'priority' + public Keyword getPriorityKeyword_6_0() { return cPriorityKeyword_6_0; } + + //priorities+=PriorityDeclaration + public Assignment getPrioritiesAssignment_6_1() { return cPrioritiesAssignment_6_1; } + + //PriorityDeclaration + public RuleCall getPrioritiesPriorityDeclarationParserRuleCall_6_1_0() { return cPrioritiesPriorityDeclarationParserRuleCall_6_1_0; } + + //(',' priorities+=PriorityDeclaration)* + public Group getGroup_6_2() { return cGroup_6_2; } + + //',' + public Keyword getCommaKeyword_6_2_0() { return cCommaKeyword_6_2_0; } + + //priorities+=PriorityDeclaration + public Assignment getPrioritiesAssignment_6_2_1() { return cPrioritiesAssignment_6_2_1; } + + //PriorityDeclaration + public RuleCall getPrioritiesPriorityDeclarationParserRuleCall_6_2_1_0() { return cPrioritiesPriorityDeclarationParserRuleCall_6_2_1_0; } + + //'states' + public Keyword getStatesKeyword_7() { return cStatesKeyword_7; } + + //states+=StateDeclaration + public Assignment getStatesAssignment_8() { return cStatesAssignment_8; } + + //StateDeclaration + public RuleCall getStatesStateDeclarationParserRuleCall_8_0() { return cStatesStateDeclarationParserRuleCall_8_0; } + + //(',' states+=StateDeclaration)* + public Group getGroup_9() { return cGroup_9; } + + //',' + public Keyword getCommaKeyword_9_0() { return cCommaKeyword_9_0; } + + //states+=StateDeclaration + public Assignment getStatesAssignment_9_1() { return cStatesAssignment_9_1; } + + //StateDeclaration + public RuleCall getStatesStateDeclarationParserRuleCall_9_1_0() { return cStatesStateDeclarationParserRuleCall_9_1_0; } + + //('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? + public Group getGroup_10() { return cGroup_10; } + + //'var' + public Keyword getVarKeyword_10_0() { return cVarKeyword_10_0; } + + //variables+=VariablesDeclaration + public Assignment getVariablesAssignment_10_1() { return cVariablesAssignment_10_1; } + + //VariablesDeclaration + public RuleCall getVariablesVariablesDeclarationParserRuleCall_10_1_0() { return cVariablesVariablesDeclarationParserRuleCall_10_1_0; } + + //(',' variables+=VariablesDeclaration)* + public Group getGroup_10_2() { return cGroup_10_2; } + + //',' + public Keyword getCommaKeyword_10_2_0() { return cCommaKeyword_10_2_0; } + + //variables+=VariablesDeclaration + public Assignment getVariablesAssignment_10_2_1() { return cVariablesAssignment_10_2_1; } + + //VariablesDeclaration + public RuleCall getVariablesVariablesDeclarationParserRuleCall_10_2_1_0() { return cVariablesVariablesDeclarationParserRuleCall_10_2_1_0; } + + //('init' prelude=StatementSequence)? + public Group getGroup_11() { return cGroup_11; } + + //'init' + public Keyword getInitKeyword_11_0() { return cInitKeyword_11_0; } + + //prelude=StatementSequence + public Assignment getPreludeAssignment_11_1() { return cPreludeAssignment_11_1; } + + //StatementSequence + public RuleCall getPreludeStatementSequenceParserRuleCall_11_1_0() { return cPreludeStatementSequenceParserRuleCall_11_1_0; } + + //transitions+=Transition+ + public Assignment getTransitionsAssignment_12() { return cTransitionsAssignment_12; } + + //Transition + public RuleCall getTransitionsTransitionParserRuleCall_12_0() { return cTransitionsTransitionParserRuleCall_12_0; } + } + public class StateDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.StateDeclaration"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + ////GenericDeclaration: + //// ('type' GenericTypeDeclaration) + //// | ('const' GenericConstantDeclaration) + //// | (('constr0' | 'constr1') GenericUnionTagDeclaration) + //// | ('field' GenericRecordFieldDeclaration) + ////; + //// + ////GenericTypeDeclaration: + //// name=ID + ////; + //// + ////GenericConstantDeclaration: + //// name=ID + ////; + //// + ////GenericUnionTagDeclaration: + //// name=ID + ////; + //// + ////GenericRecordFieldDeclaration: + //// name=ID + ////; + //StateDeclaration: + // name=ID; + @Override public ParserRule getRule() { return rule; } + + //name=ID + public Assignment getNameAssignment() { return cNameAssignment; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } + } + public class TransitionSourceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.TransitionSource"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cFromKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cOriginAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cOriginStateDeclarationCrossReference_1_0 = (CrossReference)cOriginAssignment_1.eContents().get(0); + private final RuleCall cOriginStateDeclarationIDTerminalRuleCall_1_0_1 = (RuleCall)cOriginStateDeclarationCrossReference_1_0.eContents().get(1); + + //TransitionSource: + // 'from' origin=[StateDeclaration]; + @Override public ParserRule getRule() { return rule; } + + //'from' origin=[StateDeclaration] + public Group getGroup() { return cGroup; } + + //'from' + public Keyword getFromKeyword_0() { return cFromKeyword_0; } + + //origin=[StateDeclaration] + public Assignment getOriginAssignment_1() { return cOriginAssignment_1; } + + //[StateDeclaration] + public CrossReference getOriginStateDeclarationCrossReference_1_0() { return cOriginStateDeclarationCrossReference_1_0; } + + //ID + public RuleCall getOriginStateDeclarationIDTerminalRuleCall_1_0_1() { return cOriginStateDeclarationIDTerminalRuleCall_1_0_1; } + } + public class TransitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Transition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cSourceAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cSourceTransitionSourceParserRuleCall_0_0 = (RuleCall)cSourceAssignment_0.eContents().get(0); + private final Assignment cActionAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cActionStatementSequenceParserRuleCall_1_0 = (RuleCall)cActionAssignment_1.eContents().get(0); + + //Transition: + // source=TransitionSource action=StatementSequence; + @Override public ParserRule getRule() { return rule; } + + //source=TransitionSource action=StatementSequence + public Group getGroup() { return cGroup; } + + //source=TransitionSource + public Assignment getSourceAssignment_0() { return cSourceAssignment_0; } + + //TransitionSource + public RuleCall getSourceTransitionSourceParserRuleCall_0_0() { return cSourceTransitionSourceParserRuleCall_0_0; } + + //action=StatementSequence + public Assignment getActionAssignment_1() { return cActionAssignment_1; } + + //StatementSequence + public RuleCall getActionStatementSequenceParserRuleCall_1_0() { return cActionStatementSequenceParserRuleCall_1_0; } + } + public class ComponentDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ComponentDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cComponentKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cLeftSquareBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cPortsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cPortsPortsDeclarationParserRuleCall_2_1_0 = (RuleCall)cPortsAssignment_2_1.eContents().get(0); + private final Group cGroup_2_2 = (Group)cGroup_2.eContents().get(2); + private final Keyword cCommaKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0); + private final Assignment cPortsAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1); + private final RuleCall cPortsPortsDeclarationParserRuleCall_2_2_1_0 = (RuleCall)cPortsAssignment_2_2_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cLeftParenthesisKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Assignment cParametersAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); + private final RuleCall cParametersParametersDeclarationParserRuleCall_3_1_0 = (RuleCall)cParametersAssignment_3_1.eContents().get(0); + private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2); + private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0); + private final Assignment cParametersAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1); + private final RuleCall cParametersParametersDeclarationParserRuleCall_3_2_1_0 = (RuleCall)cParametersAssignment_3_2_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3); + private final Keyword cIsKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Group cGroup_5 = (Group)cGroup.eContents().get(5); + private final Keyword cVarKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0); + private final Assignment cVariablesAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1); + private final RuleCall cVariablesVariablesDeclarationParserRuleCall_5_1_0 = (RuleCall)cVariablesAssignment_5_1.eContents().get(0); + private final Group cGroup_5_2 = (Group)cGroup_5.eContents().get(2); + private final Keyword cCommaKeyword_5_2_0 = (Keyword)cGroup_5_2.eContents().get(0); + private final Assignment cVariablesAssignment_5_2_1 = (Assignment)cGroup_5_2.eContents().get(1); + private final RuleCall cVariablesVariablesDeclarationParserRuleCall_5_2_1_0 = (RuleCall)cVariablesAssignment_5_2_1.eContents().get(0); + private final Group cGroup_6 = (Group)cGroup.eContents().get(6); + private final Keyword cPortKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0); + private final Assignment cLocalPortsAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1); + private final RuleCall cLocalPortsLocalPortsDeclarationParserRuleCall_6_1_0 = (RuleCall)cLocalPortsAssignment_6_1.eContents().get(0); + private final Group cGroup_6_2 = (Group)cGroup_6.eContents().get(2); + private final Keyword cCommaKeyword_6_2_0 = (Keyword)cGroup_6_2.eContents().get(0); + private final Assignment cLocalPortsAssignment_6_2_1 = (Assignment)cGroup_6_2.eContents().get(1); + private final RuleCall cLocalPortsLocalPortsDeclarationParserRuleCall_6_2_1_0 = (RuleCall)cLocalPortsAssignment_6_2_1.eContents().get(0); + private final Group cGroup_7 = (Group)cGroup.eContents().get(7); + private final Keyword cPriorityKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0); + private final Assignment cPrioritiesAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1); + private final RuleCall cPrioritiesPriorityDeclarationParserRuleCall_7_1_0 = (RuleCall)cPrioritiesAssignment_7_1.eContents().get(0); + private final Group cGroup_7_2 = (Group)cGroup_7.eContents().get(2); + private final Keyword cCommaKeyword_7_2_0 = (Keyword)cGroup_7_2.eContents().get(0); + private final Assignment cPrioritiesAssignment_7_2_1 = (Assignment)cGroup_7_2.eContents().get(1); + private final RuleCall cPrioritiesPriorityDeclarationParserRuleCall_7_2_1_0 = (RuleCall)cPrioritiesAssignment_7_2_1.eContents().get(0); + private final Group cGroup_8 = (Group)cGroup.eContents().get(8); + private final Keyword cInitKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0); + private final Assignment cPreludeAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1); + private final RuleCall cPreludeStatementSequenceParserRuleCall_8_1_0 = (RuleCall)cPreludeAssignment_8_1.eContents().get(0); + private final Assignment cBodyAssignment_9 = (Assignment)cGroup.eContents().get(9); + private final RuleCall cBodyCompositionParserRuleCall_9_0 = (RuleCall)cBodyAssignment_9.eContents().get(0); + + //ComponentDeclaration: + // 'component' name=ID ('[' ports+=PortsDeclaration (',' ports+=PortsDeclaration)* ']')? ('(' + // parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)* ')')? + // 'is' ('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? ('port' + // localPorts+=LocalPortsDeclaration (',' localPorts+=LocalPortsDeclaration)*)? ('priority' + // priorities+=PriorityDeclaration (',' priorities+=PriorityDeclaration)*)? ('init' prelude=StatementSequence)? + // body=Composition; + @Override public ParserRule getRule() { return rule; } + + //'component' name=ID ('[' ports+=PortsDeclaration (',' ports+=PortsDeclaration)* ']')? ('(' + //parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)* ')')? 'is' ('var' + //variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? ('port' localPorts+=LocalPortsDeclaration (',' + //localPorts+=LocalPortsDeclaration)*)? ('priority' priorities+=PriorityDeclaration (',' + //priorities+=PriorityDeclaration)*)? ('init' prelude=StatementSequence)? body=Composition + public Group getGroup() { return cGroup; } + + //'component' + public Keyword getComponentKeyword_0() { return cComponentKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + + //('[' ports+=PortsDeclaration (',' ports+=PortsDeclaration)* ']')? + public Group getGroup_2() { return cGroup_2; } + + //'[' + public Keyword getLeftSquareBracketKeyword_2_0() { return cLeftSquareBracketKeyword_2_0; } + + //ports+=PortsDeclaration + public Assignment getPortsAssignment_2_1() { return cPortsAssignment_2_1; } + + //PortsDeclaration + public RuleCall getPortsPortsDeclarationParserRuleCall_2_1_0() { return cPortsPortsDeclarationParserRuleCall_2_1_0; } + + //(',' ports+=PortsDeclaration)* + public Group getGroup_2_2() { return cGroup_2_2; } + + //',' + public Keyword getCommaKeyword_2_2_0() { return cCommaKeyword_2_2_0; } + + //ports+=PortsDeclaration + public Assignment getPortsAssignment_2_2_1() { return cPortsAssignment_2_2_1; } + + //PortsDeclaration + public RuleCall getPortsPortsDeclarationParserRuleCall_2_2_1_0() { return cPortsPortsDeclarationParserRuleCall_2_2_1_0; } + + //']' + public Keyword getRightSquareBracketKeyword_2_3() { return cRightSquareBracketKeyword_2_3; } + + //('(' parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)* ')')? + public Group getGroup_3() { return cGroup_3; } + + //'(' + public Keyword getLeftParenthesisKeyword_3_0() { return cLeftParenthesisKeyword_3_0; } + + //parameters+=ParametersDeclaration + public Assignment getParametersAssignment_3_1() { return cParametersAssignment_3_1; } + + //ParametersDeclaration + public RuleCall getParametersParametersDeclarationParserRuleCall_3_1_0() { return cParametersParametersDeclarationParserRuleCall_3_1_0; } + + //(',' parameters+=ParametersDeclaration)* + public Group getGroup_3_2() { return cGroup_3_2; } + + //',' + public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; } + + //parameters+=ParametersDeclaration + public Assignment getParametersAssignment_3_2_1() { return cParametersAssignment_3_2_1; } + + //ParametersDeclaration + public RuleCall getParametersParametersDeclarationParserRuleCall_3_2_1_0() { return cParametersParametersDeclarationParserRuleCall_3_2_1_0; } + + //')' + public Keyword getRightParenthesisKeyword_3_3() { return cRightParenthesisKeyword_3_3; } + + //'is' + public Keyword getIsKeyword_4() { return cIsKeyword_4; } + + //('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? + public Group getGroup_5() { return cGroup_5; } + + //'var' + public Keyword getVarKeyword_5_0() { return cVarKeyword_5_0; } + + //variables+=VariablesDeclaration + public Assignment getVariablesAssignment_5_1() { return cVariablesAssignment_5_1; } + + //VariablesDeclaration + public RuleCall getVariablesVariablesDeclarationParserRuleCall_5_1_0() { return cVariablesVariablesDeclarationParserRuleCall_5_1_0; } + + //(',' variables+=VariablesDeclaration)* + public Group getGroup_5_2() { return cGroup_5_2; } + + //',' + public Keyword getCommaKeyword_5_2_0() { return cCommaKeyword_5_2_0; } + + //variables+=VariablesDeclaration + public Assignment getVariablesAssignment_5_2_1() { return cVariablesAssignment_5_2_1; } + + //VariablesDeclaration + public RuleCall getVariablesVariablesDeclarationParserRuleCall_5_2_1_0() { return cVariablesVariablesDeclarationParserRuleCall_5_2_1_0; } + + //('port' localPorts+=LocalPortsDeclaration (',' localPorts+=LocalPortsDeclaration)*)? + public Group getGroup_6() { return cGroup_6; } + + //'port' + public Keyword getPortKeyword_6_0() { return cPortKeyword_6_0; } + + //localPorts+=LocalPortsDeclaration + public Assignment getLocalPortsAssignment_6_1() { return cLocalPortsAssignment_6_1; } + + //LocalPortsDeclaration + public RuleCall getLocalPortsLocalPortsDeclarationParserRuleCall_6_1_0() { return cLocalPortsLocalPortsDeclarationParserRuleCall_6_1_0; } + + //(',' localPorts+=LocalPortsDeclaration)* + public Group getGroup_6_2() { return cGroup_6_2; } + + //',' + public Keyword getCommaKeyword_6_2_0() { return cCommaKeyword_6_2_0; } + + //localPorts+=LocalPortsDeclaration + public Assignment getLocalPortsAssignment_6_2_1() { return cLocalPortsAssignment_6_2_1; } + + //LocalPortsDeclaration + public RuleCall getLocalPortsLocalPortsDeclarationParserRuleCall_6_2_1_0() { return cLocalPortsLocalPortsDeclarationParserRuleCall_6_2_1_0; } + + //('priority' priorities+=PriorityDeclaration (',' priorities+=PriorityDeclaration)*)? + public Group getGroup_7() { return cGroup_7; } + + //'priority' + public Keyword getPriorityKeyword_7_0() { return cPriorityKeyword_7_0; } + + //priorities+=PriorityDeclaration + public Assignment getPrioritiesAssignment_7_1() { return cPrioritiesAssignment_7_1; } + + //PriorityDeclaration + public RuleCall getPrioritiesPriorityDeclarationParserRuleCall_7_1_0() { return cPrioritiesPriorityDeclarationParserRuleCall_7_1_0; } + + //(',' priorities+=PriorityDeclaration)* + public Group getGroup_7_2() { return cGroup_7_2; } + + //',' + public Keyword getCommaKeyword_7_2_0() { return cCommaKeyword_7_2_0; } + + //priorities+=PriorityDeclaration + public Assignment getPrioritiesAssignment_7_2_1() { return cPrioritiesAssignment_7_2_1; } + + //PriorityDeclaration + public RuleCall getPrioritiesPriorityDeclarationParserRuleCall_7_2_1_0() { return cPrioritiesPriorityDeclarationParserRuleCall_7_2_1_0; } + + //('init' prelude=StatementSequence)? + public Group getGroup_8() { return cGroup_8; } + + //'init' + public Keyword getInitKeyword_8_0() { return cInitKeyword_8_0; } + + //prelude=StatementSequence + public Assignment getPreludeAssignment_8_1() { return cPreludeAssignment_8_1; } + + //StatementSequence + public RuleCall getPreludeStatementSequenceParserRuleCall_8_1_0() { return cPreludeStatementSequenceParserRuleCall_8_1_0; } + + //body=Composition + public Assignment getBodyAssignment_9() { return cBodyAssignment_9; } + + //Composition + public RuleCall getBodyCompositionParserRuleCall_9_0() { return cBodyCompositionParserRuleCall_9_0; } + } + public class PortsDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PortsDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cPortsAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cPortsPortDeclarationParserRuleCall_0_0 = (RuleCall)cPortsAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cPortsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cPortsPortDeclarationParserRuleCall_1_1_0 = (RuleCall)cPortsAssignment_1_1.eContents().get(0); + private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTypeChannelTypeParserRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0); + + //PortsDeclaration: + // ports+=PortDeclaration (',' ports+=PortDeclaration)* ':' type=ChannelType; + @Override public ParserRule getRule() { return rule; } + + //ports+=PortDeclaration (',' ports+=PortDeclaration)* ':' type=ChannelType + public Group getGroup() { return cGroup; } + + //ports+=PortDeclaration + public Assignment getPortsAssignment_0() { return cPortsAssignment_0; } + + //PortDeclaration + public RuleCall getPortsPortDeclarationParserRuleCall_0_0() { return cPortsPortDeclarationParserRuleCall_0_0; } + + //(',' ports+=PortDeclaration)* + public Group getGroup_1() { return cGroup_1; } + + //',' + public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; } + + //ports+=PortDeclaration + public Assignment getPortsAssignment_1_1() { return cPortsAssignment_1_1; } + + //PortDeclaration + public RuleCall getPortsPortDeclarationParserRuleCall_1_1_0() { return cPortsPortDeclarationParserRuleCall_1_1_0; } + + //':' + public Keyword getColonKeyword_2() { return cColonKeyword_2; } + + //type=ChannelType + public Assignment getTypeAssignment_3() { return cTypeAssignment_3; } + + //ChannelType + public RuleCall getTypeChannelTypeParserRuleCall_3_0() { return cTypeChannelTypeParserRuleCall_3_0; } + } + public class PortDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PortDeclaration"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + //PortDeclaration: + // name=ID; + @Override public ParserRule getRule() { return rule; } + + //name=ID + public Assignment getNameAssignment() { return cNameAssignment; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } + } + public class LocalPortsDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LocalPortsDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cPortsAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cPortsPortDeclarationParserRuleCall_0_0 = (RuleCall)cPortsAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cPortsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cPortsPortDeclarationParserRuleCall_1_1_0 = (RuleCall)cPortsAssignment_1_1.eContents().get(0); + private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTypeChannelTypeParserRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cInKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Assignment cLeftAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); + private final RuleCall cLeftLowerBoundParserRuleCall_4_1_0 = (RuleCall)cLeftAssignment_4_1.eContents().get(0); + private final Keyword cCommaKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2); + private final Assignment cRightAssignment_4_3 = (Assignment)cGroup_4.eContents().get(3); + private final RuleCall cRightUpperBoundParserRuleCall_4_3_0 = (RuleCall)cRightAssignment_4_3.eContents().get(0); + + //LocalPortsDeclaration: + // ports+=PortDeclaration (',' ports+=PortDeclaration)* ':' type=ChannelType ('in' left=LowerBound ',' + // right=UpperBound)?; + @Override public ParserRule getRule() { return rule; } + + //ports+=PortDeclaration (',' ports+=PortDeclaration)* ':' type=ChannelType ('in' left=LowerBound ',' right=UpperBound)? + public Group getGroup() { return cGroup; } + + //ports+=PortDeclaration + public Assignment getPortsAssignment_0() { return cPortsAssignment_0; } + + //PortDeclaration + public RuleCall getPortsPortDeclarationParserRuleCall_0_0() { return cPortsPortDeclarationParserRuleCall_0_0; } + + //(',' ports+=PortDeclaration)* + public Group getGroup_1() { return cGroup_1; } + + //',' + public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; } + + //ports+=PortDeclaration + public Assignment getPortsAssignment_1_1() { return cPortsAssignment_1_1; } + + //PortDeclaration + public RuleCall getPortsPortDeclarationParserRuleCall_1_1_0() { return cPortsPortDeclarationParserRuleCall_1_1_0; } + + //':' + public Keyword getColonKeyword_2() { return cColonKeyword_2; } + + //type=ChannelType + public Assignment getTypeAssignment_3() { return cTypeAssignment_3; } + + //ChannelType + public RuleCall getTypeChannelTypeParserRuleCall_3_0() { return cTypeChannelTypeParserRuleCall_3_0; } + + //('in' left=LowerBound ',' right=UpperBound)? + public Group getGroup_4() { return cGroup_4; } + + //'in' + public Keyword getInKeyword_4_0() { return cInKeyword_4_0; } + + //left=LowerBound + public Assignment getLeftAssignment_4_1() { return cLeftAssignment_4_1; } + + //LowerBound + public RuleCall getLeftLowerBoundParserRuleCall_4_1_0() { return cLeftLowerBoundParserRuleCall_4_1_0; } + + //',' + public Keyword getCommaKeyword_4_2() { return cCommaKeyword_4_2; } + + //right=UpperBound + public Assignment getRightAssignment_4_3() { return cRightAssignment_4_3; } + + //UpperBound + public RuleCall getRightUpperBoundParserRuleCall_4_3_0() { return cRightUpperBoundParserRuleCall_4_3_0; } + } + public class ParametersDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ParametersDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cParametersAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cParametersParameterDeclarationParserRuleCall_0_0 = (RuleCall)cParametersAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cParametersAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cParametersParameterDeclarationParserRuleCall_1_1_0 = (RuleCall)cParametersAssignment_1_1.eContents().get(0); + private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cReadAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final Keyword cReadReadKeyword_3_0 = (Keyword)cReadAssignment_3.eContents().get(0); + private final Assignment cWriteAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final Keyword cWriteWriteKeyword_4_0 = (Keyword)cWriteAssignment_4.eContents().get(0); + private final Assignment cTypeAssignment_5 = (Assignment)cGroup.eContents().get(5); + private final RuleCall cTypeTypeParserRuleCall_5_0 = (RuleCall)cTypeAssignment_5.eContents().get(0); + + //ParametersDeclaration: + // parameters+=ParameterDeclaration (',' parameters+=ParameterDeclaration)* ':' read?='read'? write?='write'? type=Type; + @Override public ParserRule getRule() { return rule; } + + //parameters+=ParameterDeclaration (',' parameters+=ParameterDeclaration)* ':' read?='read'? write?='write'? type=Type + public Group getGroup() { return cGroup; } + + //parameters+=ParameterDeclaration + public Assignment getParametersAssignment_0() { return cParametersAssignment_0; } + + //ParameterDeclaration + public RuleCall getParametersParameterDeclarationParserRuleCall_0_0() { return cParametersParameterDeclarationParserRuleCall_0_0; } + + //(',' parameters+=ParameterDeclaration)* + public Group getGroup_1() { return cGroup_1; } + + //',' + public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; } + + //parameters+=ParameterDeclaration + public Assignment getParametersAssignment_1_1() { return cParametersAssignment_1_1; } + + //ParameterDeclaration + public RuleCall getParametersParameterDeclarationParserRuleCall_1_1_0() { return cParametersParameterDeclarationParserRuleCall_1_1_0; } + + //':' + public Keyword getColonKeyword_2() { return cColonKeyword_2; } + + //read?='read'? + public Assignment getReadAssignment_3() { return cReadAssignment_3; } + + //'read' + public Keyword getReadReadKeyword_3_0() { return cReadReadKeyword_3_0; } + + //write?='write'? + public Assignment getWriteAssignment_4() { return cWriteAssignment_4; } + + //'write' + public Keyword getWriteWriteKeyword_4_0() { return cWriteWriteKeyword_4_0; } + + //type=Type + public Assignment getTypeAssignment_5() { return cTypeAssignment_5; } + + //Type + public RuleCall getTypeTypeParserRuleCall_5_0() { return cTypeTypeParserRuleCall_5_0; } + } + public class ParameterDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ParameterDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cGroup.eContents().get(0); + private final Assignment cReferenceAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0); + private final Keyword cReferenceAmpersandKeyword_0_0_0 = (Keyword)cReferenceAssignment_0_0.eContents().get(0); + private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1); + private final Assignment cArrayAssignment_0_1_0 = (Assignment)cGroup_0_1.eContents().get(0); + private final Keyword cArrayLeftSquareBracketKeyword_0_1_0_0 = (Keyword)cArrayAssignment_0_1_0.eContents().get(0); + private final Assignment cSizeAssignment_0_1_1 = (Assignment)cGroup_0_1.eContents().get(1); + private final RuleCall cSizeExpressionParserRuleCall_0_1_1_0 = (RuleCall)cSizeAssignment_0_1_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_0_1_2 = (Keyword)cGroup_0_1.eContents().get(2); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + + //ParameterDeclaration: + // (reference?='&' (array?='[' size=Expression ']')?)? name=ID; + @Override public ParserRule getRule() { return rule; } + + //(reference?='&' (array?='[' size=Expression ']')?)? name=ID + public Group getGroup() { return cGroup; } + + //(reference?='&' (array?='[' size=Expression ']')?)? + public Group getGroup_0() { return cGroup_0; } + + //reference?='&' + public Assignment getReferenceAssignment_0_0() { return cReferenceAssignment_0_0; } + + //'&' + public Keyword getReferenceAmpersandKeyword_0_0_0() { return cReferenceAmpersandKeyword_0_0_0; } + + //(array?='[' size=Expression ']')? + public Group getGroup_0_1() { return cGroup_0_1; } + + //array?='[' + public Assignment getArrayAssignment_0_1_0() { return cArrayAssignment_0_1_0; } + + //'[' + public Keyword getArrayLeftSquareBracketKeyword_0_1_0_0() { return cArrayLeftSquareBracketKeyword_0_1_0_0; } + + //size=Expression + public Assignment getSizeAssignment_0_1_1() { return cSizeAssignment_0_1_1; } + + //Expression + public RuleCall getSizeExpressionParserRuleCall_0_1_1_0() { return cSizeExpressionParserRuleCall_0_1_1_0; } + + //']' + public Keyword getRightSquareBracketKeyword_0_1_2() { return cRightSquareBracketKeyword_0_1_2; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + } + public class VariablesDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.VariablesDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cVariablesAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cVariablesVariableDeclarationParserRuleCall_0_0 = (RuleCall)cVariablesAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cVariablesAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cVariablesVariableDeclarationParserRuleCall_1_1_0 = (RuleCall)cVariablesAssignment_1_1.eContents().get(0); + private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTypeTypeParserRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cColonEqualsSignKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Assignment cValueAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); + private final RuleCall cValueExpressionParserRuleCall_4_1_0 = (RuleCall)cValueAssignment_4_1.eContents().get(0); + + //VariablesDeclaration: + // variables+=VariableDeclaration (',' variables+=VariableDeclaration)* ':' type=Type (':=' value=Expression)?; + @Override public ParserRule getRule() { return rule; } + + //variables+=VariableDeclaration (',' variables+=VariableDeclaration)* ':' type=Type (':=' value=Expression)? + public Group getGroup() { return cGroup; } + + //variables+=VariableDeclaration + public Assignment getVariablesAssignment_0() { return cVariablesAssignment_0; } + + //VariableDeclaration + public RuleCall getVariablesVariableDeclarationParserRuleCall_0_0() { return cVariablesVariableDeclarationParserRuleCall_0_0; } + + //(',' variables+=VariableDeclaration)* + public Group getGroup_1() { return cGroup_1; } + + //',' + public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; } + + //variables+=VariableDeclaration + public Assignment getVariablesAssignment_1_1() { return cVariablesAssignment_1_1; } + + //VariableDeclaration + public RuleCall getVariablesVariableDeclarationParserRuleCall_1_1_0() { return cVariablesVariableDeclarationParserRuleCall_1_1_0; } + + //':' + public Keyword getColonKeyword_2() { return cColonKeyword_2; } + + //type=Type + public Assignment getTypeAssignment_3() { return cTypeAssignment_3; } + + //Type + public RuleCall getTypeTypeParserRuleCall_3_0() { return cTypeTypeParserRuleCall_3_0; } + + //(':=' value=Expression)? + public Group getGroup_4() { return cGroup_4; } + + //':=' + public Keyword getColonEqualsSignKeyword_4_0() { return cColonEqualsSignKeyword_4_0; } + + //value=Expression + public Assignment getValueAssignment_4_1() { return cValueAssignment_4_1; } + + //Expression + public RuleCall getValueExpressionParserRuleCall_4_1_0() { return cValueExpressionParserRuleCall_4_1_0; } + } + public class VariableDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.VariableDeclaration"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + //VariableDeclaration: + // name=ID; + @Override public ParserRule getRule() { return rule; } + + //name=ID + public Assignment getNameAssignment() { return cNameAssignment; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } + } + public class PriorityDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PriorityDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cGroupsAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cGroupsPriorityGroupParserRuleCall_0_0 = (RuleCall)cGroupsAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cGreaterThanSignKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cGroupsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cGroupsPriorityGroupParserRuleCall_1_1_0 = (RuleCall)cGroupsAssignment_1_1.eContents().get(0); + + //PriorityDeclaration: + // groups+=PriorityGroup ('>' groups+=PriorityGroup)+; + @Override public ParserRule getRule() { return rule; } + + //groups+=PriorityGroup ('>' groups+=PriorityGroup)+ + public Group getGroup() { return cGroup; } + + //groups+=PriorityGroup + public Assignment getGroupsAssignment_0() { return cGroupsAssignment_0; } + + //PriorityGroup + public RuleCall getGroupsPriorityGroupParserRuleCall_0_0() { return cGroupsPriorityGroupParserRuleCall_0_0; } + + //('>' groups+=PriorityGroup)+ + public Group getGroup_1() { return cGroup_1; } + + //'>' + public Keyword getGreaterThanSignKeyword_1_0() { return cGreaterThanSignKeyword_1_0; } + + //groups+=PriorityGroup + public Assignment getGroupsAssignment_1_1() { return cGroupsAssignment_1_1; } + + //PriorityGroup + public RuleCall getGroupsPriorityGroupParserRuleCall_1_1_0() { return cGroupsPriorityGroupParserRuleCall_1_1_0; } + } + public class PriorityGroupElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PriorityGroup"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cPortsAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cPortsPortDeclarationCrossReference_0_0 = (CrossReference)cPortsAssignment_0.eContents().get(0); + private final RuleCall cPortsPortDeclarationIDTerminalRuleCall_0_0_1 = (RuleCall)cPortsPortDeclarationCrossReference_0_0.eContents().get(1); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cVerticalLineKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cPortsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final CrossReference cPortsPortDeclarationCrossReference_1_1_0 = (CrossReference)cPortsAssignment_1_1.eContents().get(0); + private final RuleCall cPortsPortDeclarationIDTerminalRuleCall_1_1_0_1 = (RuleCall)cPortsPortDeclarationCrossReference_1_1_0.eContents().get(1); + + //PriorityGroup: + // ports+=[PortDeclaration] ('|' ports+=[PortDeclaration])*; + @Override public ParserRule getRule() { return rule; } + + //ports+=[PortDeclaration] ('|' ports+=[PortDeclaration])* + public Group getGroup() { return cGroup; } + + //ports+=[PortDeclaration] + public Assignment getPortsAssignment_0() { return cPortsAssignment_0; } + + //[PortDeclaration] + public CrossReference getPortsPortDeclarationCrossReference_0_0() { return cPortsPortDeclarationCrossReference_0_0; } + + //ID + public RuleCall getPortsPortDeclarationIDTerminalRuleCall_0_0_1() { return cPortsPortDeclarationIDTerminalRuleCall_0_0_1; } + + //('|' ports+=[PortDeclaration])* + public Group getGroup_1() { return cGroup_1; } + + //'|' + public Keyword getVerticalLineKeyword_1_0() { return cVerticalLineKeyword_1_0; } + + //ports+=[PortDeclaration] + public Assignment getPortsAssignment_1_1() { return cPortsAssignment_1_1; } + + //[PortDeclaration] + public CrossReference getPortsPortDeclarationCrossReference_1_1_0() { return cPortsPortDeclarationCrossReference_1_1_0; } + + //ID + public RuleCall getPortsPortDeclarationIDTerminalRuleCall_1_1_0_1() { return cPortsPortDeclarationIDTerminalRuleCall_1_1_0_1; } + } + public class UnlessStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.UnlessStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cStatementChoiceParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cUnlessStatementFollowersAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cUnlessKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cFollowersAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cFollowersStatementChoiceParserRuleCall_1_2_0 = (RuleCall)cFollowersAssignment_1_2.eContents().get(0); + + //UnlessStatement Statement: + // StatementChoice ({UnlessStatement.followers+=current} 'unless' followers+=StatementChoice)* + @Override public ParserRule getRule() { return rule; } + + //StatementChoice ({UnlessStatement.followers+=current} 'unless' followers+=StatementChoice)* + public Group getGroup() { return cGroup; } + + //StatementChoice + public RuleCall getStatementChoiceParserRuleCall_0() { return cStatementChoiceParserRuleCall_0; } + + //({UnlessStatement.followers+=current} 'unless' followers+=StatementChoice)* + public Group getGroup_1() { return cGroup_1; } + + //{UnlessStatement.followers+=current} + public Action getUnlessStatementFollowersAction_1_0() { return cUnlessStatementFollowersAction_1_0; } + + //'unless' + public Keyword getUnlessKeyword_1_1() { return cUnlessKeyword_1_1; } + + //followers+=StatementChoice + public Assignment getFollowersAssignment_1_2() { return cFollowersAssignment_1_2; } + + //StatementChoice + public RuleCall getFollowersStatementChoiceParserRuleCall_1_2_0() { return cFollowersStatementChoiceParserRuleCall_1_2_0; } + } + public class StatementChoiceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.StatementChoice"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cStatementSequenceParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cStatementChoiceChoicesAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cLeftSquareBracketRightSquareBracketKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cChoicesAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cChoicesStatementSequenceParserRuleCall_1_2_0 = (RuleCall)cChoicesAssignment_1_2.eContents().get(0); + + //StatementChoice Statement: + // StatementSequence ({StatementChoice.choices+=current} '[]' choices+=StatementSequence)* + @Override public ParserRule getRule() { return rule; } + + //StatementSequence ({StatementChoice.choices+=current} '[]' choices+=StatementSequence)* + public Group getGroup() { return cGroup; } + + //StatementSequence + public RuleCall getStatementSequenceParserRuleCall_0() { return cStatementSequenceParserRuleCall_0; } + + //({StatementChoice.choices+=current} '[]' choices+=StatementSequence)* + public Group getGroup_1() { return cGroup_1; } + + //{StatementChoice.choices+=current} + public Action getStatementChoiceChoicesAction_1_0() { return cStatementChoiceChoicesAction_1_0; } + + //'[]' + public Keyword getLeftSquareBracketRightSquareBracketKeyword_1_1() { return cLeftSquareBracketRightSquareBracketKeyword_1_1; } + + //choices+=StatementSequence + public Assignment getChoicesAssignment_1_2() { return cChoicesAssignment_1_2; } + + //StatementSequence + public RuleCall getChoicesStatementSequenceParserRuleCall_1_2_0() { return cChoicesStatementSequenceParserRuleCall_1_2_0; } + } + public class StatementSequenceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.StatementSequence"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cStatementParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cStatementSequenceStatementsAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cSemicolonKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cStatementsAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cStatementsStatementParserRuleCall_1_2_0 = (RuleCall)cStatementsAssignment_1_2.eContents().get(0); + + //StatementSequence Statement: + // Statement ({StatementSequence.statements+=current} ';' statements+=Statement)* + @Override public ParserRule getRule() { return rule; } + + //Statement ({StatementSequence.statements+=current} ';' statements+=Statement)* + public Group getGroup() { return cGroup; } + + //Statement + public RuleCall getStatementParserRuleCall_0() { return cStatementParserRuleCall_0; } + + //({StatementSequence.statements+=current} ';' statements+=Statement)* + public Group getGroup_1() { return cGroup_1; } + + //{StatementSequence.statements+=current} + public Action getStatementSequenceStatementsAction_1_0() { return cStatementSequenceStatementsAction_1_0; } + + //';' + public Keyword getSemicolonKeyword_1_1() { return cSemicolonKeyword_1_1; } + + //statements+=Statement + public Assignment getStatementsAssignment_1_2() { return cStatementsAssignment_1_2; } + + //Statement + public RuleCall getStatementsStatementParserRuleCall_1_2_0() { return cStatementsStatementParserRuleCall_1_2_0; } + } + public class StatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Statement"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cNullStatementParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cTaggedStatementParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cPatternStatementParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cConditionalStatementParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cSelectStatementParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + private final RuleCall cWhileStatementParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); + private final RuleCall cForeachStatementParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); + private final RuleCall cToStatementParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7); + private final RuleCall cCaseStatementParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8); + private final RuleCall cLoopStatementParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9); + private final RuleCall cOnStatementParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10); + private final RuleCall cWaitStatementParserRuleCall_11 = (RuleCall)cAlternatives.eContents().get(11); + private final RuleCall cReturnStatementParserRuleCall_12 = (RuleCall)cAlternatives.eContents().get(12); + private final RuleCall cBlockStatementParserRuleCall_13 = (RuleCall)cAlternatives.eContents().get(13); + + //Statement: + // NullStatement + // | TaggedStatement + // | PatternStatement + // | ConditionalStatement + // | SelectStatement + // | WhileStatement + // | ForeachStatement + // | ToStatement + // | CaseStatement + // | LoopStatement + // | OnStatement + // | WaitStatement + // | ReturnStatement + // | BlockStatement; + @Override public ParserRule getRule() { return rule; } + + //NullStatement | TaggedStatement | PatternStatement | ConditionalStatement | SelectStatement | WhileStatement | + //ForeachStatement | ToStatement | CaseStatement | LoopStatement | OnStatement | WaitStatement | ReturnStatement | + //BlockStatement + public Alternatives getAlternatives() { return cAlternatives; } + + //NullStatement + public RuleCall getNullStatementParserRuleCall_0() { return cNullStatementParserRuleCall_0; } + + //TaggedStatement + public RuleCall getTaggedStatementParserRuleCall_1() { return cTaggedStatementParserRuleCall_1; } + + //PatternStatement + public RuleCall getPatternStatementParserRuleCall_2() { return cPatternStatementParserRuleCall_2; } + + //ConditionalStatement + public RuleCall getConditionalStatementParserRuleCall_3() { return cConditionalStatementParserRuleCall_3; } + + //SelectStatement + public RuleCall getSelectStatementParserRuleCall_4() { return cSelectStatementParserRuleCall_4; } + + //WhileStatement + public RuleCall getWhileStatementParserRuleCall_5() { return cWhileStatementParserRuleCall_5; } + + //ForeachStatement + public RuleCall getForeachStatementParserRuleCall_6() { return cForeachStatementParserRuleCall_6; } + + //ToStatement + public RuleCall getToStatementParserRuleCall_7() { return cToStatementParserRuleCall_7; } + + //CaseStatement + public RuleCall getCaseStatementParserRuleCall_8() { return cCaseStatementParserRuleCall_8; } + + //LoopStatement + public RuleCall getLoopStatementParserRuleCall_9() { return cLoopStatementParserRuleCall_9; } + + //OnStatement + public RuleCall getOnStatementParserRuleCall_10() { return cOnStatementParserRuleCall_10; } + + //WaitStatement + public RuleCall getWaitStatementParserRuleCall_11() { return cWaitStatementParserRuleCall_11; } + + //ReturnStatement + public RuleCall getReturnStatementParserRuleCall_12() { return cReturnStatementParserRuleCall_12; } + + //BlockStatement + public RuleCall getBlockStatementParserRuleCall_13() { return cBlockStatementParserRuleCall_13; } + } + public class BlockStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.BlockStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cBeginKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cBodyAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cBodyStatementSequenceParserRuleCall_1_0 = (RuleCall)cBodyAssignment_1.eContents().get(0); + private final Keyword cEndKeyword_2 = (Keyword)cGroup.eContents().get(2); + + //BlockStatement: + // 'begin' body=StatementSequence 'end'; + @Override public ParserRule getRule() { return rule; } + + //'begin' body=StatementSequence 'end' + public Group getGroup() { return cGroup; } + + //'begin' + public Keyword getBeginKeyword_0() { return cBeginKeyword_0; } + + //body=StatementSequence + public Assignment getBodyAssignment_1() { return cBodyAssignment_1; } + + //StatementSequence + public RuleCall getBodyStatementSequenceParserRuleCall_1_0() { return cBodyStatementSequenceParserRuleCall_1_0; } + + //'end' + public Keyword getEndKeyword_2() { return cEndKeyword_2; } + } + public class ReturnStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ReturnStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cReturnKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cExpressionExpressionParserRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0); + + //ReturnStatement: + // 'return' expression=Expression; + @Override public ParserRule getRule() { return rule; } + + //'return' expression=Expression + public Group getGroup() { return cGroup; } + + //'return' + public Keyword getReturnKeyword_0() { return cReturnKeyword_0; } + + //expression=Expression + public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; } + + //Expression + public RuleCall getExpressionExpressionParserRuleCall_1_0() { return cExpressionExpressionParserRuleCall_1_0; } + } + public class NullStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.NullStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cNullStatementAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cNullKeyword_1 = (Keyword)cGroup.eContents().get(1); + + //NullStatement: + // {NullStatement} 'null'; + @Override public ParserRule getRule() { return rule; } + + //{NullStatement} 'null' + public Group getGroup() { return cGroup; } + + //{NullStatement} + public Action getNullStatementAction_0() { return cNullStatementAction_0; } + + //'null' + public Keyword getNullKeyword_1() { return cNullKeyword_1; } + } + public class TaggedStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.TaggedStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cNumberSignKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + + //TaggedStatement: + // '#' name=ID //tag=TagDeclaration + //; + @Override public ParserRule getRule() { return rule; } + + //'#' name=ID + public Group getGroup() { return cGroup; } + + //'#' + public Keyword getNumberSignKeyword_0() { return cNumberSignKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + } + public class PatternStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PatternStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cPatternParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); + private final Keyword cCommaKeyword_1_0_0 = (Keyword)cGroup_1_0.eContents().get(0); + private final Action cAssignStatementPatternsAction_1_0_1 = (Action)cGroup_1_0.eContents().get(1); + private final Assignment cPatternsAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2); + private final RuleCall cPatternsPatternParserRuleCall_1_0_2_0 = (RuleCall)cPatternsAssignment_1_0_2.eContents().get(0); + private final Group cGroup_1_0_3 = (Group)cGroup_1_0.eContents().get(3); + private final Keyword cCommaKeyword_1_0_3_0 = (Keyword)cGroup_1_0_3.eContents().get(0); + private final Assignment cPatternsAssignment_1_0_3_1 = (Assignment)cGroup_1_0_3.eContents().get(1); + private final RuleCall cPatternsPatternParserRuleCall_1_0_3_1_0 = (RuleCall)cPatternsAssignment_1_0_3_1.eContents().get(0); + private final Keyword cColonEqualsSignKeyword_1_0_4 = (Keyword)cGroup_1_0.eContents().get(4); + private final Assignment cValuesAssignment_1_0_5 = (Assignment)cGroup_1_0.eContents().get(5); + private final RuleCall cValuesExpressionParserRuleCall_1_0_5_0 = (RuleCall)cValuesAssignment_1_0_5.eContents().get(0); + private final Group cGroup_1_0_6 = (Group)cGroup_1_0.eContents().get(6); + private final Keyword cCommaKeyword_1_0_6_0 = (Keyword)cGroup_1_0_6.eContents().get(0); + private final Assignment cValuesAssignment_1_0_6_1 = (Assignment)cGroup_1_0_6.eContents().get(1); + private final RuleCall cValuesExpressionParserRuleCall_1_0_6_1_0 = (RuleCall)cValuesAssignment_1_0_6_1.eContents().get(0); + private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); + private final Keyword cColonEqualsSignKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0); + private final Action cAssignStatementPatternsAction_1_1_1 = (Action)cGroup_1_1.eContents().get(1); + private final Group cGroup_1_1_2 = (Group)cGroup_1_1.eContents().get(2); + private final Assignment cValuesAssignment_1_1_2_0 = (Assignment)cGroup_1_1_2.eContents().get(0); + private final RuleCall cValuesExpressionParserRuleCall_1_1_2_0_0 = (RuleCall)cValuesAssignment_1_1_2_0.eContents().get(0); + private final Group cGroup_1_1_2_1 = (Group)cGroup_1_1_2.eContents().get(1); + private final Keyword cCommaKeyword_1_1_2_1_0 = (Keyword)cGroup_1_1_2_1.eContents().get(0); + private final Assignment cValuesAssignment_1_1_2_1_1 = (Assignment)cGroup_1_1_2_1.eContents().get(1); + private final RuleCall cValuesExpressionParserRuleCall_1_1_2_1_1_0 = (RuleCall)cValuesAssignment_1_1_2_1_1.eContents().get(0); + private final Group cGroup_1_2 = (Group)cAlternatives_1.eContents().get(2); + private final Keyword cCommaKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0); + private final Action cAssignAnyStatementPatternsAction_1_2_1 = (Action)cGroup_1_2.eContents().get(1); + private final Assignment cPatternsAssignment_1_2_2 = (Assignment)cGroup_1_2.eContents().get(2); + private final RuleCall cPatternsPatternParserRuleCall_1_2_2_0 = (RuleCall)cPatternsAssignment_1_2_2.eContents().get(0); + private final Group cGroup_1_2_3 = (Group)cGroup_1_2.eContents().get(3); + private final Keyword cCommaKeyword_1_2_3_0 = (Keyword)cGroup_1_2_3.eContents().get(0); + private final Assignment cPatternsAssignment_1_2_3_1 = (Assignment)cGroup_1_2_3.eContents().get(1); + private final RuleCall cPatternsPatternParserRuleCall_1_2_3_1_0 = (RuleCall)cPatternsAssignment_1_2_3_1.eContents().get(0); + private final Keyword cColonEqualsSignKeyword_1_2_4 = (Keyword)cGroup_1_2.eContents().get(4); + private final Keyword cAnyKeyword_1_2_5 = (Keyword)cGroup_1_2.eContents().get(5); + private final Group cGroup_1_2_6 = (Group)cGroup_1_2.eContents().get(6); + private final Keyword cWhereKeyword_1_2_6_0 = (Keyword)cGroup_1_2_6.eContents().get(0); + private final Assignment cExpAssignment_1_2_6_1 = (Assignment)cGroup_1_2_6.eContents().get(1); + private final RuleCall cExpExpressionParserRuleCall_1_2_6_1_0 = (RuleCall)cExpAssignment_1_2_6_1.eContents().get(0); + private final Group cGroup_1_3 = (Group)cAlternatives_1.eContents().get(3); + private final Keyword cColonEqualsSignKeyword_1_3_0 = (Keyword)cGroup_1_3.eContents().get(0); + private final Action cAssignAnyStatementPatternsAction_1_3_1 = (Action)cGroup_1_3.eContents().get(1); + private final Keyword cAnyKeyword_1_3_2 = (Keyword)cGroup_1_3.eContents().get(2); + private final Group cGroup_1_3_3 = (Group)cGroup_1_3.eContents().get(3); + private final Keyword cWhereKeyword_1_3_3_0 = (Keyword)cGroup_1_3_3.eContents().get(0); + private final Assignment cExpAssignment_1_3_3_1 = (Assignment)cGroup_1_3_3.eContents().get(1); + private final RuleCall cExpExpressionParserRuleCall_1_3_3_1_0 = (RuleCall)cExpAssignment_1_3_3_1.eContents().get(0); + private final Group cGroup_1_4 = (Group)cAlternatives_1.eContents().get(4); + private final Keyword cExclamationMarkKeyword_1_4_0 = (Keyword)cGroup_1_4.eContents().get(0); + private final Action cSendStatementPortAction_1_4_1 = (Action)cGroup_1_4.eContents().get(1); + private final Assignment cValuesAssignment_1_4_2 = (Assignment)cGroup_1_4.eContents().get(2); + private final RuleCall cValuesExpressionParserRuleCall_1_4_2_0 = (RuleCall)cValuesAssignment_1_4_2.eContents().get(0); + private final Group cGroup_1_4_3 = (Group)cGroup_1_4.eContents().get(3); + private final Keyword cCommaKeyword_1_4_3_0 = (Keyword)cGroup_1_4_3.eContents().get(0); + private final Assignment cValuesAssignment_1_4_3_1 = (Assignment)cGroup_1_4_3.eContents().get(1); + private final RuleCall cValuesExpressionParserRuleCall_1_4_3_1_0 = (RuleCall)cValuesAssignment_1_4_3_1.eContents().get(0); + private final Group cGroup_1_5 = (Group)cAlternatives_1.eContents().get(5); + private final Keyword cQuestionMarkKeyword_1_5_0 = (Keyword)cGroup_1_5.eContents().get(0); + private final Action cReceiveStatementPortAction_1_5_1 = (Action)cGroup_1_5.eContents().get(1); + private final Assignment cPatternsAssignment_1_5_2 = (Assignment)cGroup_1_5.eContents().get(2); + private final RuleCall cPatternsPatternParserRuleCall_1_5_2_0 = (RuleCall)cPatternsAssignment_1_5_2.eContents().get(0); + private final Group cGroup_1_5_3 = (Group)cGroup_1_5.eContents().get(3); + private final Keyword cCommaKeyword_1_5_3_0 = (Keyword)cGroup_1_5_3.eContents().get(0); + private final Assignment cPatternsAssignment_1_5_3_1 = (Assignment)cGroup_1_5_3.eContents().get(1); + private final RuleCall cPatternsPatternParserRuleCall_1_5_3_1_0 = (RuleCall)cPatternsAssignment_1_5_3_1.eContents().get(0); + private final Group cGroup_1_5_4 = (Group)cGroup_1_5.eContents().get(4); + private final Keyword cWhereKeyword_1_5_4_0 = (Keyword)cGroup_1_5_4.eContents().get(0); + private final Assignment cExpAssignment_1_5_4_1 = (Assignment)cGroup_1_5_4.eContents().get(1); + private final RuleCall cExpExpressionParserRuleCall_1_5_4_1_0 = (RuleCall)cExpAssignment_1_5_4_1.eContents().get(0); + + ////TagDeclaration: + //// name=ID + ////; + //PatternStatement: + // Pattern (',' {AssignStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' values+=Expression + // (',' values+=Expression)* | ':=' {AssignStatement.patterns+=current} (values+=Expression (',' values+=Expression)*) | + // ',' {AssignAnyStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' 'any' ('where' + // exp=Expression)? | ':=' {AssignAnyStatement.patterns+=current} 'any' ('where' exp=Expression)? | '!' + // {SendStatement.port=current} values+=Expression (',' values+=Expression)* | '?' {ReceiveStatement.port=current} + // patterns+=Pattern (',' patterns+=Pattern)* ('where' exp=Expression)?)?; + @Override public ParserRule getRule() { return rule; } + + //Pattern (',' {AssignStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' values+=Expression (',' + //values+=Expression)* | ':=' {AssignStatement.patterns+=current} (values+=Expression (',' values+=Expression)*) | ',' + //{AssignAnyStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' 'any' ('where' exp=Expression)? + //| ':=' {AssignAnyStatement.patterns+=current} 'any' ('where' exp=Expression)? | '!' {SendStatement.port=current} + //values+=Expression (',' values+=Expression)* | '?' {ReceiveStatement.port=current} patterns+=Pattern (',' + //patterns+=Pattern)* ('where' exp=Expression)?)? + public Group getGroup() { return cGroup; } + + //Pattern + public RuleCall getPatternParserRuleCall_0() { return cPatternParserRuleCall_0; } + + //(',' {AssignStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' values+=Expression (',' + //values+=Expression)* | ':=' {AssignStatement.patterns+=current} (values+=Expression (',' values+=Expression)*) | ',' + //{AssignAnyStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' 'any' ('where' exp=Expression)? + //| ':=' {AssignAnyStatement.patterns+=current} 'any' ('where' exp=Expression)? | '!' {SendStatement.port=current} + //values+=Expression (',' values+=Expression)* | '?' {ReceiveStatement.port=current} patterns+=Pattern (',' + //patterns+=Pattern)* ('where' exp=Expression)?)? + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //',' {AssignStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' values+=Expression (',' + //values+=Expression)* + public Group getGroup_1_0() { return cGroup_1_0; } + + //',' + public Keyword getCommaKeyword_1_0_0() { return cCommaKeyword_1_0_0; } + + //{AssignStatement.patterns+=current} + public Action getAssignStatementPatternsAction_1_0_1() { return cAssignStatementPatternsAction_1_0_1; } + + //patterns+=Pattern + public Assignment getPatternsAssignment_1_0_2() { return cPatternsAssignment_1_0_2; } + + //Pattern + public RuleCall getPatternsPatternParserRuleCall_1_0_2_0() { return cPatternsPatternParserRuleCall_1_0_2_0; } + + //(',' patterns+=Pattern)* + public Group getGroup_1_0_3() { return cGroup_1_0_3; } + + //',' + public Keyword getCommaKeyword_1_0_3_0() { return cCommaKeyword_1_0_3_0; } + + //patterns+=Pattern + public Assignment getPatternsAssignment_1_0_3_1() { return cPatternsAssignment_1_0_3_1; } + + //Pattern + public RuleCall getPatternsPatternParserRuleCall_1_0_3_1_0() { return cPatternsPatternParserRuleCall_1_0_3_1_0; } + + //':=' + public Keyword getColonEqualsSignKeyword_1_0_4() { return cColonEqualsSignKeyword_1_0_4; } + + //values+=Expression + public Assignment getValuesAssignment_1_0_5() { return cValuesAssignment_1_0_5; } + + //Expression + public RuleCall getValuesExpressionParserRuleCall_1_0_5_0() { return cValuesExpressionParserRuleCall_1_0_5_0; } + + //(',' values+=Expression)* + public Group getGroup_1_0_6() { return cGroup_1_0_6; } + + //',' + public Keyword getCommaKeyword_1_0_6_0() { return cCommaKeyword_1_0_6_0; } + + //values+=Expression + public Assignment getValuesAssignment_1_0_6_1() { return cValuesAssignment_1_0_6_1; } + + //Expression + public RuleCall getValuesExpressionParserRuleCall_1_0_6_1_0() { return cValuesExpressionParserRuleCall_1_0_6_1_0; } + + //':=' {AssignStatement.patterns+=current} (values+=Expression (',' values+=Expression)*) + public Group getGroup_1_1() { return cGroup_1_1; } + + //':=' + public Keyword getColonEqualsSignKeyword_1_1_0() { return cColonEqualsSignKeyword_1_1_0; } + + //{AssignStatement.patterns+=current} + public Action getAssignStatementPatternsAction_1_1_1() { return cAssignStatementPatternsAction_1_1_1; } + + //(values+=Expression (',' values+=Expression)*) + public Group getGroup_1_1_2() { return cGroup_1_1_2; } + + //values+=Expression + public Assignment getValuesAssignment_1_1_2_0() { return cValuesAssignment_1_1_2_0; } + + //Expression + public RuleCall getValuesExpressionParserRuleCall_1_1_2_0_0() { return cValuesExpressionParserRuleCall_1_1_2_0_0; } + + //(',' values+=Expression)* + public Group getGroup_1_1_2_1() { return cGroup_1_1_2_1; } + + //',' + public Keyword getCommaKeyword_1_1_2_1_0() { return cCommaKeyword_1_1_2_1_0; } + + //values+=Expression + public Assignment getValuesAssignment_1_1_2_1_1() { return cValuesAssignment_1_1_2_1_1; } + + //Expression + public RuleCall getValuesExpressionParserRuleCall_1_1_2_1_1_0() { return cValuesExpressionParserRuleCall_1_1_2_1_1_0; } + + //',' {AssignAnyStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' 'any' ('where' + //exp=Expression)? + public Group getGroup_1_2() { return cGroup_1_2; } + + //',' + public Keyword getCommaKeyword_1_2_0() { return cCommaKeyword_1_2_0; } + + //{AssignAnyStatement.patterns+=current} + public Action getAssignAnyStatementPatternsAction_1_2_1() { return cAssignAnyStatementPatternsAction_1_2_1; } + + //patterns+=Pattern + public Assignment getPatternsAssignment_1_2_2() { return cPatternsAssignment_1_2_2; } + + //Pattern + public RuleCall getPatternsPatternParserRuleCall_1_2_2_0() { return cPatternsPatternParserRuleCall_1_2_2_0; } + + //(',' patterns+=Pattern)* + public Group getGroup_1_2_3() { return cGroup_1_2_3; } + + //',' + public Keyword getCommaKeyword_1_2_3_0() { return cCommaKeyword_1_2_3_0; } + + //patterns+=Pattern + public Assignment getPatternsAssignment_1_2_3_1() { return cPatternsAssignment_1_2_3_1; } + + //Pattern + public RuleCall getPatternsPatternParserRuleCall_1_2_3_1_0() { return cPatternsPatternParserRuleCall_1_2_3_1_0; } + + //':=' + public Keyword getColonEqualsSignKeyword_1_2_4() { return cColonEqualsSignKeyword_1_2_4; } + + //'any' + public Keyword getAnyKeyword_1_2_5() { return cAnyKeyword_1_2_5; } + + //('where' exp=Expression)? + public Group getGroup_1_2_6() { return cGroup_1_2_6; } + + //'where' + public Keyword getWhereKeyword_1_2_6_0() { return cWhereKeyword_1_2_6_0; } + + //exp=Expression + public Assignment getExpAssignment_1_2_6_1() { return cExpAssignment_1_2_6_1; } + + //Expression + public RuleCall getExpExpressionParserRuleCall_1_2_6_1_0() { return cExpExpressionParserRuleCall_1_2_6_1_0; } + + //':=' {AssignAnyStatement.patterns+=current} 'any' ('where' exp=Expression)? + public Group getGroup_1_3() { return cGroup_1_3; } + + //':=' + public Keyword getColonEqualsSignKeyword_1_3_0() { return cColonEqualsSignKeyword_1_3_0; } + + //{AssignAnyStatement.patterns+=current} + public Action getAssignAnyStatementPatternsAction_1_3_1() { return cAssignAnyStatementPatternsAction_1_3_1; } + + //'any' + public Keyword getAnyKeyword_1_3_2() { return cAnyKeyword_1_3_2; } + + //('where' exp=Expression)? + public Group getGroup_1_3_3() { return cGroup_1_3_3; } + + //'where' + public Keyword getWhereKeyword_1_3_3_0() { return cWhereKeyword_1_3_3_0; } + + //exp=Expression + public Assignment getExpAssignment_1_3_3_1() { return cExpAssignment_1_3_3_1; } + + //Expression + public RuleCall getExpExpressionParserRuleCall_1_3_3_1_0() { return cExpExpressionParserRuleCall_1_3_3_1_0; } + + //'!' {SendStatement.port=current} values+=Expression (',' values+=Expression)* + public Group getGroup_1_4() { return cGroup_1_4; } + + //'!' + public Keyword getExclamationMarkKeyword_1_4_0() { return cExclamationMarkKeyword_1_4_0; } + + //{SendStatement.port=current} + public Action getSendStatementPortAction_1_4_1() { return cSendStatementPortAction_1_4_1; } + + //values+=Expression + public Assignment getValuesAssignment_1_4_2() { return cValuesAssignment_1_4_2; } + + //Expression + public RuleCall getValuesExpressionParserRuleCall_1_4_2_0() { return cValuesExpressionParserRuleCall_1_4_2_0; } + + //(',' values+=Expression)* + public Group getGroup_1_4_3() { return cGroup_1_4_3; } + + //',' + public Keyword getCommaKeyword_1_4_3_0() { return cCommaKeyword_1_4_3_0; } + + //values+=Expression + public Assignment getValuesAssignment_1_4_3_1() { return cValuesAssignment_1_4_3_1; } + + //Expression + public RuleCall getValuesExpressionParserRuleCall_1_4_3_1_0() { return cValuesExpressionParserRuleCall_1_4_3_1_0; } + + //'?' {ReceiveStatement.port=current} patterns+=Pattern (',' patterns+=Pattern)* ('where' exp=Expression)? + public Group getGroup_1_5() { return cGroup_1_5; } + + //'?' + public Keyword getQuestionMarkKeyword_1_5_0() { return cQuestionMarkKeyword_1_5_0; } + + //{ReceiveStatement.port=current} + public Action getReceiveStatementPortAction_1_5_1() { return cReceiveStatementPortAction_1_5_1; } + + //patterns+=Pattern + public Assignment getPatternsAssignment_1_5_2() { return cPatternsAssignment_1_5_2; } + + //Pattern + public RuleCall getPatternsPatternParserRuleCall_1_5_2_0() { return cPatternsPatternParserRuleCall_1_5_2_0; } + + //(',' patterns+=Pattern)* + public Group getGroup_1_5_3() { return cGroup_1_5_3; } + + //',' + public Keyword getCommaKeyword_1_5_3_0() { return cCommaKeyword_1_5_3_0; } + + //patterns+=Pattern + public Assignment getPatternsAssignment_1_5_3_1() { return cPatternsAssignment_1_5_3_1; } + + //Pattern + public RuleCall getPatternsPatternParserRuleCall_1_5_3_1_0() { return cPatternsPatternParserRuleCall_1_5_3_1_0; } + + //('where' exp=Expression)? + public Group getGroup_1_5_4() { return cGroup_1_5_4; } + + //'where' + public Keyword getWhereKeyword_1_5_4_0() { return cWhereKeyword_1_5_4_0; } + + //exp=Expression + public Assignment getExpAssignment_1_5_4_1() { return cExpAssignment_1_5_4_1; } + + //Expression + public RuleCall getExpExpressionParserRuleCall_1_5_4_1_0() { return cExpExpressionParserRuleCall_1_5_4_1_0; } + } + public class PatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Pattern"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cAnyPatternParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cIntegerPatternParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cConstantPatternParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3); + private final Keyword cLeftParenthesisKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final RuleCall cPatternParserRuleCall_3_1 = (RuleCall)cGroup_3.eContents().get(1); + private final Keyword cRightParenthesisKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2); + private final RuleCall cIdentifierPatternParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + + //Pattern: + // AnyPattern + // | IntegerPattern + // | ConstantPattern + // | '(' Pattern ')' + // | IdentifierPattern; + @Override public ParserRule getRule() { return rule; } + + //AnyPattern | IntegerPattern | ConstantPattern | '(' Pattern ')' | IdentifierPattern + public Alternatives getAlternatives() { return cAlternatives; } + + //AnyPattern + public RuleCall getAnyPatternParserRuleCall_0() { return cAnyPatternParserRuleCall_0; } + + //IntegerPattern + public RuleCall getIntegerPatternParserRuleCall_1() { return cIntegerPatternParserRuleCall_1; } + + //ConstantPattern + public RuleCall getConstantPatternParserRuleCall_2() { return cConstantPatternParserRuleCall_2; } + + //'(' Pattern ')' + public Group getGroup_3() { return cGroup_3; } + + //'(' + public Keyword getLeftParenthesisKeyword_3_0() { return cLeftParenthesisKeyword_3_0; } + + //Pattern + public RuleCall getPatternParserRuleCall_3_1() { return cPatternParserRuleCall_3_1; } + + //')' + public Keyword getRightParenthesisKeyword_3_2() { return cRightParenthesisKeyword_3_2; } + + //IdentifierPattern + public RuleCall getIdentifierPatternParserRuleCall_4() { return cIdentifierPatternParserRuleCall_4; } + } + public class AnyPatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.AnyPattern"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cAnyPatternAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cAnyKeyword_1 = (Keyword)cGroup.eContents().get(1); + + //AnyPattern: + // {AnyPattern} 'any'; + @Override public ParserRule getRule() { return rule; } + + //{AnyPattern} 'any' + public Group getGroup() { return cGroup; } + + //{AnyPattern} + public Action getAnyPatternAction_0() { return cAnyPatternAction_0; } + + //'any' + public Keyword getAnyKeyword_1() { return cAnyKeyword_1; } + } + public class ConstantPatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ConstantPattern"); + private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cValueLiteralExpressionParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); + + //ConstantPattern: + // value=LiteralExpression; + @Override public ParserRule getRule() { return rule; } + + //value=LiteralExpression + public Assignment getValueAssignment() { return cValueAssignment; } + + //LiteralExpression + public RuleCall getValueLiteralExpressionParserRuleCall_0() { return cValueLiteralExpressionParserRuleCall_0; } + } + public class IntegerPatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.IntegerPattern"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final Keyword cPlusSignKeyword_0_0 = (Keyword)cAlternatives_0.eContents().get(0); + private final Assignment cNegativeAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1); + private final Keyword cNegativeHyphenMinusKeyword_0_1_0 = (Keyword)cNegativeAssignment_0_1.eContents().get(0); + private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cValueINTTerminalRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0); + + //IntegerPattern: + // ('+' | negative?='-') value=INT; + @Override public ParserRule getRule() { return rule; } + + //('+' | negative?='-') value=INT + public Group getGroup() { return cGroup; } + + //('+' | negative?='-') + public Alternatives getAlternatives_0() { return cAlternatives_0; } + + //'+' + public Keyword getPlusSignKeyword_0_0() { return cPlusSignKeyword_0_0; } + + //negative?='-' + public Assignment getNegativeAssignment_0_1() { return cNegativeAssignment_0_1; } + + //'-' + public Keyword getNegativeHyphenMinusKeyword_0_1_0() { return cNegativeHyphenMinusKeyword_0_1_0; } + + //value=INT + public Assignment getValueAssignment_1() { return cValueAssignment_1; } + + //INT + public RuleCall getValueINTTerminalRuleCall_1_0() { return cValueINTTerminalRuleCall_1_0; } + } + public class IdentifierPatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.IdentifierPattern"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cConstructorPatternAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Assignment cDeclarationAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final CrossReference cDeclarationPatternDeclarationUseCrossReference_0_1_0 = (CrossReference)cDeclarationAssignment_0_1.eContents().get(0); + private final RuleCall cDeclarationPatternDeclarationUseIDTerminalRuleCall_0_1_0_1 = (RuleCall)cDeclarationPatternDeclarationUseCrossReference_0_1_0.eContents().get(1); + private final Keyword cLeftParenthesisKeyword_0_2 = (Keyword)cGroup_0.eContents().get(2); + private final Group cGroup_0_3 = (Group)cGroup_0.eContents().get(3); + private final Assignment cParametersAssignment_0_3_0 = (Assignment)cGroup_0_3.eContents().get(0); + private final RuleCall cParametersPatternParserRuleCall_0_3_0_0 = (RuleCall)cParametersAssignment_0_3_0.eContents().get(0); + private final Group cGroup_0_3_1 = (Group)cGroup_0_3.eContents().get(1); + private final Keyword cCommaKeyword_0_3_1_0 = (Keyword)cGroup_0_3_1.eContents().get(0); + private final Assignment cParametersAssignment_0_3_1_1 = (Assignment)cGroup_0_3_1.eContents().get(1); + private final RuleCall cParametersPatternParserRuleCall_0_3_1_1_0 = (RuleCall)cParametersAssignment_0_3_1_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_0_4 = (Keyword)cGroup_0.eContents().get(4); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Assignment cDeclarationAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0); + private final CrossReference cDeclarationPatternDeclarationUseCrossReference_1_0_0 = (CrossReference)cDeclarationAssignment_1_0.eContents().get(0); + private final RuleCall cDeclarationPatternDeclarationUseIDTerminalRuleCall_1_0_0_1 = (RuleCall)cDeclarationPatternDeclarationUseCrossReference_1_0_0.eContents().get(1); + private final Alternatives cAlternatives_1_1 = (Alternatives)cGroup_1.eContents().get(1); + private final Group cGroup_1_1_0 = (Group)cAlternatives_1_1.eContents().get(0); + private final Keyword cLeftSquareBracketKeyword_1_1_0_0 = (Keyword)cGroup_1_1_0.eContents().get(0); + private final Action cArrayAccessPatternSourceAction_1_1_0_1 = (Action)cGroup_1_1_0.eContents().get(1); + private final Assignment cIndexAssignment_1_1_0_2 = (Assignment)cGroup_1_1_0.eContents().get(2); + private final RuleCall cIndexExpressionParserRuleCall_1_1_0_2_0 = (RuleCall)cIndexAssignment_1_1_0_2.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_1_1_0_3 = (Keyword)cGroup_1_1_0.eContents().get(3); + private final Group cGroup_1_1_1 = (Group)cAlternatives_1_1.eContents().get(1); + private final Keyword cFullStopKeyword_1_1_1_0 = (Keyword)cGroup_1_1_1.eContents().get(0); + private final Action cRecordAccessPatternSourceAction_1_1_1_1 = (Action)cGroup_1_1_1.eContents().get(1); + private final Assignment cFieldAssignment_1_1_1_2 = (Assignment)cGroup_1_1_1.eContents().get(2); + private final CrossReference cFieldRecordFieldDeclarationCrossReference_1_1_1_2_0 = (CrossReference)cFieldAssignment_1_1_1_2.eContents().get(0); + private final RuleCall cFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1 = (RuleCall)cFieldRecordFieldDeclarationCrossReference_1_1_1_2_0.eContents().get(1); + + //IdentifierPattern: + // {ConstructorPattern} declaration=[PatternDeclarationUse] '(' (parameters+=Pattern (',' parameters+=Pattern)*)? ')' | + // declaration=[PatternDeclarationUse] ('[' {ArrayAccessPattern.source=current} index=Expression ']' | '.' + // {RecordAccessPattern.source=current} field=[RecordFieldDeclaration])*; + @Override public ParserRule getRule() { return rule; } + + //{ConstructorPattern} declaration=[PatternDeclarationUse] '(' (parameters+=Pattern (',' parameters+=Pattern)*)? ')' | + //declaration=[PatternDeclarationUse] ('[' {ArrayAccessPattern.source=current} index=Expression ']' | '.' + //{RecordAccessPattern.source=current} field=[RecordFieldDeclaration])* + public Alternatives getAlternatives() { return cAlternatives; } + + //{ConstructorPattern} declaration=[PatternDeclarationUse] '(' (parameters+=Pattern (',' parameters+=Pattern)*)? ')' + public Group getGroup_0() { return cGroup_0; } + + //{ConstructorPattern} + public Action getConstructorPatternAction_0_0() { return cConstructorPatternAction_0_0; } + + //declaration=[PatternDeclarationUse] + public Assignment getDeclarationAssignment_0_1() { return cDeclarationAssignment_0_1; } + + //[PatternDeclarationUse] + public CrossReference getDeclarationPatternDeclarationUseCrossReference_0_1_0() { return cDeclarationPatternDeclarationUseCrossReference_0_1_0; } + + //ID + public RuleCall getDeclarationPatternDeclarationUseIDTerminalRuleCall_0_1_0_1() { return cDeclarationPatternDeclarationUseIDTerminalRuleCall_0_1_0_1; } + + //'(' + public Keyword getLeftParenthesisKeyword_0_2() { return cLeftParenthesisKeyword_0_2; } + + //(parameters+=Pattern (',' parameters+=Pattern)*)? + public Group getGroup_0_3() { return cGroup_0_3; } + + //parameters+=Pattern + public Assignment getParametersAssignment_0_3_0() { return cParametersAssignment_0_3_0; } + + //Pattern + public RuleCall getParametersPatternParserRuleCall_0_3_0_0() { return cParametersPatternParserRuleCall_0_3_0_0; } + + //(',' parameters+=Pattern)* + public Group getGroup_0_3_1() { return cGroup_0_3_1; } + + //',' + public Keyword getCommaKeyword_0_3_1_0() { return cCommaKeyword_0_3_1_0; } + + //parameters+=Pattern + public Assignment getParametersAssignment_0_3_1_1() { return cParametersAssignment_0_3_1_1; } + + //Pattern + public RuleCall getParametersPatternParserRuleCall_0_3_1_1_0() { return cParametersPatternParserRuleCall_0_3_1_1_0; } + + //')' + public Keyword getRightParenthesisKeyword_0_4() { return cRightParenthesisKeyword_0_4; } + + //declaration=[PatternDeclarationUse] ('[' {ArrayAccessPattern.source=current} index=Expression ']' | '.' + //{RecordAccessPattern.source=current} field=[RecordFieldDeclaration])* + public Group getGroup_1() { return cGroup_1; } + + //declaration=[PatternDeclarationUse] + public Assignment getDeclarationAssignment_1_0() { return cDeclarationAssignment_1_0; } + + //[PatternDeclarationUse] + public CrossReference getDeclarationPatternDeclarationUseCrossReference_1_0_0() { return cDeclarationPatternDeclarationUseCrossReference_1_0_0; } + + //ID + public RuleCall getDeclarationPatternDeclarationUseIDTerminalRuleCall_1_0_0_1() { return cDeclarationPatternDeclarationUseIDTerminalRuleCall_1_0_0_1; } + + //('[' {ArrayAccessPattern.source=current} index=Expression ']' | '.' {RecordAccessPattern.source=current} + //field=[RecordFieldDeclaration])* + public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; } + + //'[' {ArrayAccessPattern.source=current} index=Expression ']' + public Group getGroup_1_1_0() { return cGroup_1_1_0; } + + //'[' + public Keyword getLeftSquareBracketKeyword_1_1_0_0() { return cLeftSquareBracketKeyword_1_1_0_0; } + + //{ArrayAccessPattern.source=current} + public Action getArrayAccessPatternSourceAction_1_1_0_1() { return cArrayAccessPatternSourceAction_1_1_0_1; } + + //index=Expression + public Assignment getIndexAssignment_1_1_0_2() { return cIndexAssignment_1_1_0_2; } + + //Expression + public RuleCall getIndexExpressionParserRuleCall_1_1_0_2_0() { return cIndexExpressionParserRuleCall_1_1_0_2_0; } + + //']' + public Keyword getRightSquareBracketKeyword_1_1_0_3() { return cRightSquareBracketKeyword_1_1_0_3; } + + //'.' {RecordAccessPattern.source=current} field=[RecordFieldDeclaration] + public Group getGroup_1_1_1() { return cGroup_1_1_1; } + + //'.' + public Keyword getFullStopKeyword_1_1_1_0() { return cFullStopKeyword_1_1_1_0; } + + //{RecordAccessPattern.source=current} + public Action getRecordAccessPatternSourceAction_1_1_1_1() { return cRecordAccessPatternSourceAction_1_1_1_1; } + + //field=[RecordFieldDeclaration] + public Assignment getFieldAssignment_1_1_1_2() { return cFieldAssignment_1_1_1_2; } + + //[RecordFieldDeclaration] + public CrossReference getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0() { return cFieldRecordFieldDeclarationCrossReference_1_1_1_2_0; } + + //ID + public RuleCall getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1() { return cFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1; } + } + public class ConditionalStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ConditionalStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cConditionExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0); + private final Keyword cThenKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cThenAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cThenStatementSequenceParserRuleCall_3_0 = (RuleCall)cThenAssignment_3.eContents().get(0); + private final Assignment cElseifAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final RuleCall cElseifExtendedConditionalStatementParserRuleCall_4_0 = (RuleCall)cElseifAssignment_4.eContents().get(0); + private final Group cGroup_5 = (Group)cGroup.eContents().get(5); + private final Keyword cElseKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0); + private final Assignment cElseAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1); + private final RuleCall cElseStatementSequenceParserRuleCall_5_1_0 = (RuleCall)cElseAssignment_5_1.eContents().get(0); + private final Keyword cEndKeyword_6 = (Keyword)cGroup.eContents().get(6); + private final Keyword cIfKeyword_7 = (Keyword)cGroup.eContents().get(7); + + //ConditionalStatement: + // 'if' condition=Expression + // 'then' then=StatementSequence elseif+=ExtendedConditionalStatement* ('else' else=StatementSequence)? 'end' 'if'?; + @Override public ParserRule getRule() { return rule; } + + //'if' condition=Expression 'then' then=StatementSequence elseif+=ExtendedConditionalStatement* ('else' + //else=StatementSequence)? 'end' 'if'? + public Group getGroup() { return cGroup; } + + //'if' + public Keyword getIfKeyword_0() { return cIfKeyword_0; } + + //condition=Expression + public Assignment getConditionAssignment_1() { return cConditionAssignment_1; } + + //Expression + public RuleCall getConditionExpressionParserRuleCall_1_0() { return cConditionExpressionParserRuleCall_1_0; } + + //'then' + public Keyword getThenKeyword_2() { return cThenKeyword_2; } + + //then=StatementSequence + public Assignment getThenAssignment_3() { return cThenAssignment_3; } + + //StatementSequence + public RuleCall getThenStatementSequenceParserRuleCall_3_0() { return cThenStatementSequenceParserRuleCall_3_0; } + + //elseif+=ExtendedConditionalStatement* + public Assignment getElseifAssignment_4() { return cElseifAssignment_4; } + + //ExtendedConditionalStatement + public RuleCall getElseifExtendedConditionalStatementParserRuleCall_4_0() { return cElseifExtendedConditionalStatementParserRuleCall_4_0; } + + //('else' else=StatementSequence)? + public Group getGroup_5() { return cGroup_5; } + + //'else' + public Keyword getElseKeyword_5_0() { return cElseKeyword_5_0; } + + //else=StatementSequence + public Assignment getElseAssignment_5_1() { return cElseAssignment_5_1; } + + //StatementSequence + public RuleCall getElseStatementSequenceParserRuleCall_5_1_0() { return cElseStatementSequenceParserRuleCall_5_1_0; } + + //'end' + public Keyword getEndKeyword_6() { return cEndKeyword_6; } + + //'if'? + public Keyword getIfKeyword_7() { return cIfKeyword_7; } + } + public class ExtendedConditionalStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ExtendedConditionalStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cElsifKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cConditionExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0); + private final Keyword cThenKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cThenAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cThenStatementSequenceParserRuleCall_3_0 = (RuleCall)cThenAssignment_3.eContents().get(0); + + //ExtendedConditionalStatement: + // 'elsif' condition=Expression 'then' then=StatementSequence; + @Override public ParserRule getRule() { return rule; } + + //'elsif' condition=Expression 'then' then=StatementSequence + public Group getGroup() { return cGroup; } + + //'elsif' + public Keyword getElsifKeyword_0() { return cElsifKeyword_0; } + + //condition=Expression + public Assignment getConditionAssignment_1() { return cConditionAssignment_1; } + + //Expression + public RuleCall getConditionExpressionParserRuleCall_1_0() { return cConditionExpressionParserRuleCall_1_0; } + + //'then' + public Keyword getThenKeyword_2() { return cThenKeyword_2; } + + //then=StatementSequence + public Assignment getThenAssignment_3() { return cThenAssignment_3; } + + //StatementSequence + public RuleCall getThenStatementSequenceParserRuleCall_3_0() { return cThenStatementSequenceParserRuleCall_3_0; } + } + public class SelectStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.SelectStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cSelectKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cBodyAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cBodyUnlessStatementParserRuleCall_1_0 = (RuleCall)cBodyAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cVerticalLineKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cIndexAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cIndexVariableDeclarationParserRuleCall_2_1_0 = (RuleCall)cIndexAssignment_2_1.eContents().get(0); + private final Keyword cInKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2); + private final Assignment cTypeAssignment_2_3 = (Assignment)cGroup_2.eContents().get(3); + private final RuleCall cTypeRangeTypeParserRuleCall_2_3_0 = (RuleCall)cTypeAssignment_2_3.eContents().get(0); + private final Keyword cEndKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Keyword cSelectKeyword_4 = (Keyword)cGroup.eContents().get(4); + + //SelectStatement: + // 'select' + // body=UnlessStatement ('|' index=VariableDeclaration 'in' type=RangeType)? + // 'end' 'select'?; + @Override public ParserRule getRule() { return rule; } + + //'select' body=UnlessStatement ('|' index=VariableDeclaration 'in' type=RangeType)? 'end' 'select'? + public Group getGroup() { return cGroup; } + + //'select' + public Keyword getSelectKeyword_0() { return cSelectKeyword_0; } + + //body=UnlessStatement + public Assignment getBodyAssignment_1() { return cBodyAssignment_1; } + + //UnlessStatement + public RuleCall getBodyUnlessStatementParserRuleCall_1_0() { return cBodyUnlessStatementParserRuleCall_1_0; } + + //('|' index=VariableDeclaration 'in' type=RangeType)? + public Group getGroup_2() { return cGroup_2; } + + //'|' + public Keyword getVerticalLineKeyword_2_0() { return cVerticalLineKeyword_2_0; } + + //index=VariableDeclaration + public Assignment getIndexAssignment_2_1() { return cIndexAssignment_2_1; } + + //VariableDeclaration + public RuleCall getIndexVariableDeclarationParserRuleCall_2_1_0() { return cIndexVariableDeclarationParserRuleCall_2_1_0; } + + //'in' + public Keyword getInKeyword_2_2() { return cInKeyword_2_2; } + + //type=RangeType + public Assignment getTypeAssignment_2_3() { return cTypeAssignment_2_3; } + + //RangeType + public RuleCall getTypeRangeTypeParserRuleCall_2_3_0() { return cTypeRangeTypeParserRuleCall_2_3_0; } + + //'end' + public Keyword getEndKeyword_3() { return cEndKeyword_3; } + + //'select'? + public Keyword getSelectKeyword_4() { return cSelectKeyword_4; } + } + public class WhileStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.WhileStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cWhileKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cConditionExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0); + private final Keyword cDoKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cBodyStatementSequenceParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); + private final Keyword cEndKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Keyword cWhileKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //WhileStatement: + // 'while' condition=Expression 'do' body=StatementSequence 'end' 'while'?; + @Override public ParserRule getRule() { return rule; } + + //'while' condition=Expression 'do' body=StatementSequence 'end' 'while'? + public Group getGroup() { return cGroup; } + + //'while' + public Keyword getWhileKeyword_0() { return cWhileKeyword_0; } + + //condition=Expression + public Assignment getConditionAssignment_1() { return cConditionAssignment_1; } + + //Expression + public RuleCall getConditionExpressionParserRuleCall_1_0() { return cConditionExpressionParserRuleCall_1_0; } + + //'do' + public Keyword getDoKeyword_2() { return cDoKeyword_2; } + + //body=StatementSequence + public Assignment getBodyAssignment_3() { return cBodyAssignment_3; } + + //StatementSequence + public RuleCall getBodyStatementSequenceParserRuleCall_3_0() { return cBodyStatementSequenceParserRuleCall_3_0; } + + //'end' + public Keyword getEndKeyword_4() { return cEndKeyword_4; } + + //'while'? + public Keyword getWhileKeyword_5() { return cWhileKeyword_5; } + } + public class ForeachStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ForeachStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cForeachKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cVariableAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cVariableVariableDeclarationParserRuleCall_1_0 = (RuleCall)cVariableAssignment_1.eContents().get(0); + private final Keyword cDoKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cBodyStatementSequenceParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); + private final Keyword cEndKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Keyword cForeachKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //ForeachStatement: + // 'foreach' variable=VariableDeclaration 'do' body=StatementSequence 'end' 'foreach'?; + @Override public ParserRule getRule() { return rule; } + + //'foreach' variable=VariableDeclaration 'do' body=StatementSequence 'end' 'foreach'? + public Group getGroup() { return cGroup; } + + //'foreach' + public Keyword getForeachKeyword_0() { return cForeachKeyword_0; } + + //variable=VariableDeclaration + public Assignment getVariableAssignment_1() { return cVariableAssignment_1; } + + //VariableDeclaration + public RuleCall getVariableVariableDeclarationParserRuleCall_1_0() { return cVariableVariableDeclarationParserRuleCall_1_0; } + + //'do' + public Keyword getDoKeyword_2() { return cDoKeyword_2; } + + //body=StatementSequence + public Assignment getBodyAssignment_3() { return cBodyAssignment_3; } + + //StatementSequence + public RuleCall getBodyStatementSequenceParserRuleCall_3_0() { return cBodyStatementSequenceParserRuleCall_3_0; } + + //'end' + public Keyword getEndKeyword_4() { return cEndKeyword_4; } + + //'foreach'? + public Keyword getForeachKeyword_5() { return cForeachKeyword_5; } + } + public class ToStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ToStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cToKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cStateAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cStateStateDeclarationCrossReference_1_0 = (CrossReference)cStateAssignment_1.eContents().get(0); + private final RuleCall cStateStateDeclarationIDTerminalRuleCall_1_0_1 = (RuleCall)cStateStateDeclarationCrossReference_1_0.eContents().get(1); + + //ToStatement: + // 'to' state=[StateDeclaration]; + @Override public ParserRule getRule() { return rule; } + + //'to' state=[StateDeclaration] + public Group getGroup() { return cGroup; } + + //'to' + public Keyword getToKeyword_0() { return cToKeyword_0; } + + //state=[StateDeclaration] + public Assignment getStateAssignment_1() { return cStateAssignment_1; } + + //[StateDeclaration] + public CrossReference getStateStateDeclarationCrossReference_1_0() { return cStateStateDeclarationCrossReference_1_0; } + + //ID + public RuleCall getStateStateDeclarationIDTerminalRuleCall_1_0_1() { return cStateStateDeclarationIDTerminalRuleCall_1_0_1; } + } + public class CaseStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.CaseStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cCaseKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cValueExpressionParserRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0); + private final Keyword cOfKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cPatternAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cPatternPatternParserRuleCall_3_0 = (RuleCall)cPatternAssignment_3.eContents().get(0); + private final Keyword cHyphenMinusGreaterThanSignKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Assignment cBodyAssignment_5 = (Assignment)cGroup.eContents().get(5); + private final RuleCall cBodyStatementSequenceParserRuleCall_5_0 = (RuleCall)cBodyAssignment_5.eContents().get(0); + private final Group cGroup_6 = (Group)cGroup.eContents().get(6); + private final Keyword cVerticalLineKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0); + private final Assignment cPatternAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1); + private final RuleCall cPatternPatternParserRuleCall_6_1_0 = (RuleCall)cPatternAssignment_6_1.eContents().get(0); + private final Keyword cHyphenMinusGreaterThanSignKeyword_6_2 = (Keyword)cGroup_6.eContents().get(2); + private final Assignment cBodyAssignment_6_3 = (Assignment)cGroup_6.eContents().get(3); + private final RuleCall cBodyStatementSequenceParserRuleCall_6_3_0 = (RuleCall)cBodyAssignment_6_3.eContents().get(0); + private final Keyword cEndKeyword_7 = (Keyword)cGroup.eContents().get(7); + private final Keyword cCaseKeyword_8 = (Keyword)cGroup.eContents().get(8); + + //CaseStatement: + // 'case' value=Expression 'of' + // pattern+=Pattern '->' body+=StatementSequence ('|' pattern+=Pattern '->' body+=StatementSequence)* + // 'end' 'case'?; + @Override public ParserRule getRule() { return rule; } + + //'case' value=Expression 'of' pattern+=Pattern '->' body+=StatementSequence ('|' pattern+=Pattern '->' + //body+=StatementSequence)* 'end' 'case'? + public Group getGroup() { return cGroup; } + + //'case' + public Keyword getCaseKeyword_0() { return cCaseKeyword_0; } + + //value=Expression + public Assignment getValueAssignment_1() { return cValueAssignment_1; } + + //Expression + public RuleCall getValueExpressionParserRuleCall_1_0() { return cValueExpressionParserRuleCall_1_0; } + + //'of' + public Keyword getOfKeyword_2() { return cOfKeyword_2; } + + //pattern+=Pattern + public Assignment getPatternAssignment_3() { return cPatternAssignment_3; } + + //Pattern + public RuleCall getPatternPatternParserRuleCall_3_0() { return cPatternPatternParserRuleCall_3_0; } + + //'->' + public Keyword getHyphenMinusGreaterThanSignKeyword_4() { return cHyphenMinusGreaterThanSignKeyword_4; } + + //body+=StatementSequence + public Assignment getBodyAssignment_5() { return cBodyAssignment_5; } + + //StatementSequence + public RuleCall getBodyStatementSequenceParserRuleCall_5_0() { return cBodyStatementSequenceParserRuleCall_5_0; } + + //('|' pattern+=Pattern '->' body+=StatementSequence)* + public Group getGroup_6() { return cGroup_6; } + + //'|' + public Keyword getVerticalLineKeyword_6_0() { return cVerticalLineKeyword_6_0; } + + //pattern+=Pattern + public Assignment getPatternAssignment_6_1() { return cPatternAssignment_6_1; } + + //Pattern + public RuleCall getPatternPatternParserRuleCall_6_1_0() { return cPatternPatternParserRuleCall_6_1_0; } + + //'->' + public Keyword getHyphenMinusGreaterThanSignKeyword_6_2() { return cHyphenMinusGreaterThanSignKeyword_6_2; } + + //body+=StatementSequence + public Assignment getBodyAssignment_6_3() { return cBodyAssignment_6_3; } + + //StatementSequence + public RuleCall getBodyStatementSequenceParserRuleCall_6_3_0() { return cBodyStatementSequenceParserRuleCall_6_3_0; } + + //'end' + public Keyword getEndKeyword_7() { return cEndKeyword_7; } + + //'case'? + public Keyword getCaseKeyword_8() { return cCaseKeyword_8; } + } + public class LoopStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LoopStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cLoopStatementAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cLoopKeyword_1 = (Keyword)cGroup.eContents().get(1); + + //LoopStatement: + // {LoopStatement} 'loop'; + @Override public ParserRule getRule() { return rule; } + + //{LoopStatement} 'loop' + public Group getGroup() { return cGroup; } + + //{LoopStatement} + public Action getLoopStatementAction_0() { return cLoopStatementAction_0; } + + //'loop' + public Keyword getLoopKeyword_1() { return cLoopKeyword_1; } + } + public class OnStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.OnStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cOnKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cConditionExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0); + + //OnStatement: + // 'on' condition=Expression; + @Override public ParserRule getRule() { return rule; } + + //'on' condition=Expression + public Group getGroup() { return cGroup; } + + //'on' + public Keyword getOnKeyword_0() { return cOnKeyword_0; } + + //condition=Expression + public Assignment getConditionAssignment_1() { return cConditionAssignment_1; } + + //Expression + public RuleCall getConditionExpressionParserRuleCall_1_0() { return cConditionExpressionParserRuleCall_1_0; } + } + public class WaitStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.WaitStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cWaitKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cLeftAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cLeftLowerBoundParserRuleCall_1_0 = (RuleCall)cLeftAssignment_1.eContents().get(0); + private final Keyword cCommaKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cRightAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cRightUpperBoundParserRuleCall_3_0 = (RuleCall)cRightAssignment_3.eContents().get(0); + + //WaitStatement: + // 'wait' left=LowerBound ',' right=UpperBound; + @Override public ParserRule getRule() { return rule; } + + //'wait' left=LowerBound ',' right=UpperBound + public Group getGroup() { return cGroup; } + + //'wait' + public Keyword getWaitKeyword_0() { return cWaitKeyword_0; } + + //left=LowerBound + public Assignment getLeftAssignment_1() { return cLeftAssignment_1; } + + //LowerBound + public RuleCall getLeftLowerBoundParserRuleCall_1_0() { return cLeftLowerBoundParserRuleCall_1_0; } + + //',' + public Keyword getCommaKeyword_2() { return cCommaKeyword_2; } + + //right=UpperBound + public Assignment getRightAssignment_3() { return cRightAssignment_3; } + + //UpperBound + public RuleCall getRightUpperBoundParserRuleCall_3_0() { return cRightUpperBoundParserRuleCall_3_0; } + } + public class CompositionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Composition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cParKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Assignment cGlobalAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0); + private final RuleCall cGlobalPortSetParserRuleCall_1_0_0 = (RuleCall)cGlobalAssignment_1_0.eContents().get(0); + private final Keyword cInKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cBlocksAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cBlocksBlockParserRuleCall_2_0 = (RuleCall)cBlocksAssignment_2.eContents().get(0); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cVerticalLineVerticalLineKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Assignment cBlocksAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); + private final RuleCall cBlocksBlockParserRuleCall_3_1_0 = (RuleCall)cBlocksAssignment_3_1.eContents().get(0); + private final Keyword cEndKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Keyword cParKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //Composition: // added ? + // 'par' (global=PortSet 'in')? blocks+=Block ('||' blocks+=Block)* //('|' index=VariableDeclaration 'in' type=RangeType)? + // 'end' 'par'?; + @Override public ParserRule getRule() { return rule; } + + //// added ? + //'par' (global=PortSet 'in')? blocks+=Block ('||' blocks+=Block)* //('|' index=VariableDeclaration 'in' type=RangeType)? + //'end' 'par'? + public Group getGroup() { return cGroup; } + + //// added ? + //'par' + public Keyword getParKeyword_0() { return cParKeyword_0; } + + //(global=PortSet 'in')? + public Group getGroup_1() { return cGroup_1; } + + //global=PortSet + public Assignment getGlobalAssignment_1_0() { return cGlobalAssignment_1_0; } + + //PortSet + public RuleCall getGlobalPortSetParserRuleCall_1_0_0() { return cGlobalPortSetParserRuleCall_1_0_0; } + + //'in' + public Keyword getInKeyword_1_1() { return cInKeyword_1_1; } + + //blocks+=Block + public Assignment getBlocksAssignment_2() { return cBlocksAssignment_2; } + + //Block + public RuleCall getBlocksBlockParserRuleCall_2_0() { return cBlocksBlockParserRuleCall_2_0; } + + //('||' blocks+=Block)* + public Group getGroup_3() { return cGroup_3; } + + //'||' + public Keyword getVerticalLineVerticalLineKeyword_3_0() { return cVerticalLineVerticalLineKeyword_3_0; } + + //blocks+=Block + public Assignment getBlocksAssignment_3_1() { return cBlocksAssignment_3_1; } + + //Block + public RuleCall getBlocksBlockParserRuleCall_3_1_0() { return cBlocksBlockParserRuleCall_3_1_0; } + + ////('|' index=VariableDeclaration 'in' type=RangeType)? + //'end' + public Keyword getEndKeyword_4() { return cEndKeyword_4; } + + //'par'? + public Keyword getParKeyword_5() { return cParKeyword_5; } + } + public class BlockElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Block"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cCompositeBlockParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cInstanceDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //Block: + // CompositeBlock | InstanceDeclaration; + @Override public ParserRule getRule() { return rule; } + + //CompositeBlock | InstanceDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //CompositeBlock + public RuleCall getCompositeBlockParserRuleCall_0() { return cCompositeBlockParserRuleCall_0; } + + //InstanceDeclaration + public RuleCall getInstanceDeclarationParserRuleCall_1() { return cInstanceDeclarationParserRuleCall_1; } + } + public class CompositeBlockElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.CompositeBlock"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0); + private final Assignment cLocalAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0); + private final RuleCall cLocalPortSetParserRuleCall_0_0_0_0 = (RuleCall)cLocalAssignment_0_0_0.eContents().get(0); + private final Keyword cHyphenMinusGreaterThanSignKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1); + private final Keyword cHyphenMinusGreaterThanSignKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1); + private final Assignment cCompositionAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cCompositionCompositionParserRuleCall_1_0 = (RuleCall)cCompositionAssignment_1.eContents().get(0); + + //CompositeBlock: + // (local=PortSet '->' | '->')? composition=Composition; + @Override public ParserRule getRule() { return rule; } + + //(local=PortSet '->' | '->')? composition=Composition + public Group getGroup() { return cGroup; } + + //(local=PortSet '->' | '->')? + public Alternatives getAlternatives_0() { return cAlternatives_0; } + + //local=PortSet '->' + public Group getGroup_0_0() { return cGroup_0_0; } + + //local=PortSet + public Assignment getLocalAssignment_0_0_0() { return cLocalAssignment_0_0_0; } + + //PortSet + public RuleCall getLocalPortSetParserRuleCall_0_0_0_0() { return cLocalPortSetParserRuleCall_0_0_0_0; } + + //'->' + public Keyword getHyphenMinusGreaterThanSignKeyword_0_0_1() { return cHyphenMinusGreaterThanSignKeyword_0_0_1; } + + //'->' + public Keyword getHyphenMinusGreaterThanSignKeyword_0_1() { return cHyphenMinusGreaterThanSignKeyword_0_1; } + + //composition=Composition + public Assignment getCompositionAssignment_1() { return cCompositionAssignment_1; } + + //Composition + public RuleCall getCompositionCompositionParserRuleCall_1_0() { return cCompositionCompositionParserRuleCall_1_0; } + } + public class InstanceDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.InstanceDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0); + private final Assignment cLocalAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0); + private final RuleCall cLocalPortSetParserRuleCall_0_0_0_0 = (RuleCall)cLocalAssignment_0_0_0.eContents().get(0); + private final Keyword cHyphenMinusGreaterThanSignKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1); + private final Keyword cHyphenMinusGreaterThanSignKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1); + private final Assignment cInstanceAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cInstanceComponentInstanceParserRuleCall_1_0 = (RuleCall)cInstanceAssignment_1.eContents().get(0); + + //InstanceDeclaration: + // (local=PortSet '->' | '->')? instance=ComponentInstance; + @Override public ParserRule getRule() { return rule; } + + //(local=PortSet '->' | '->')? instance=ComponentInstance + public Group getGroup() { return cGroup; } + + //(local=PortSet '->' | '->')? + public Alternatives getAlternatives_0() { return cAlternatives_0; } + + //local=PortSet '->' + public Group getGroup_0_0() { return cGroup_0_0; } + + //local=PortSet + public Assignment getLocalAssignment_0_0_0() { return cLocalAssignment_0_0_0; } + + //PortSet + public RuleCall getLocalPortSetParserRuleCall_0_0_0_0() { return cLocalPortSetParserRuleCall_0_0_0_0; } + + //'->' + public Keyword getHyphenMinusGreaterThanSignKeyword_0_0_1() { return cHyphenMinusGreaterThanSignKeyword_0_0_1; } + + //'->' + public Keyword getHyphenMinusGreaterThanSignKeyword_0_1() { return cHyphenMinusGreaterThanSignKeyword_0_1; } + + //instance=ComponentInstance + public Assignment getInstanceAssignment_1() { return cInstanceAssignment_1; } + + //ComponentInstance + public RuleCall getInstanceComponentInstanceParserRuleCall_1_0() { return cInstanceComponentInstanceParserRuleCall_1_0; } + } + public class PortSetElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PortSet"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Assignment cAllPortsAssignment_0 = (Assignment)cAlternatives.eContents().get(0); + private final Keyword cAllPortsAsteriskKeyword_0_0 = (Keyword)cAllPortsAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Assignment cPortsAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0); + private final RuleCall cPortsExpressionParserRuleCall_1_0_0 = (RuleCall)cPortsAssignment_1_0.eContents().get(0); + private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1); + private final Keyword cCommaKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0); + private final Assignment cPortsAssignment_1_1_1 = (Assignment)cGroup_1_1.eContents().get(1); + private final RuleCall cPortsExpressionParserRuleCall_1_1_1_0 = (RuleCall)cPortsAssignment_1_1_1.eContents().get(0); + + //PortSet: + // allPorts?='*' + // | ports+=Expression (',' ports+=Expression)*; + @Override public ParserRule getRule() { return rule; } + + //allPorts?='*' | ports+=Expression (',' ports+=Expression)* + public Alternatives getAlternatives() { return cAlternatives; } + + //allPorts?='*' + public Assignment getAllPortsAssignment_0() { return cAllPortsAssignment_0; } + + //'*' + public Keyword getAllPortsAsteriskKeyword_0_0() { return cAllPortsAsteriskKeyword_0_0; } + + //ports+=Expression (',' ports+=Expression)* + public Group getGroup_1() { return cGroup_1; } + + //ports+=Expression + public Assignment getPortsAssignment_1_0() { return cPortsAssignment_1_0; } + + //Expression + public RuleCall getPortsExpressionParserRuleCall_1_0_0() { return cPortsExpressionParserRuleCall_1_0_0; } + + //(',' ports+=Expression)* + public Group getGroup_1_1() { return cGroup_1_1; } + + //',' + public Keyword getCommaKeyword_1_1_0() { return cCommaKeyword_1_1_0; } + + //ports+=Expression + public Assignment getPortsAssignment_1_1_1() { return cPortsAssignment_1_1_1; } + + //Expression + public RuleCall getPortsExpressionParserRuleCall_1_1_1_0() { return cPortsExpressionParserRuleCall_1_1_1_0; } + } + public class ComponentInstanceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ComponentInstance"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cComponentAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cComponentParameterizedDeclarationCrossReference_0_0 = (CrossReference)cComponentAssignment_0.eContents().get(0); + private final RuleCall cComponentParameterizedDeclarationIDTerminalRuleCall_0_0_1 = (RuleCall)cComponentParameterizedDeclarationCrossReference_0_0.eContents().get(1); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cLeftSquareBracketKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cPortsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cPortsExpressionParserRuleCall_1_1_0 = (RuleCall)cPortsAssignment_1_1.eContents().get(0); + private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2); + private final Keyword cCommaKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0); + private final Assignment cPortsAssignment_1_2_1 = (Assignment)cGroup_1_2.eContents().get(1); + private final RuleCall cPortsExpressionParserRuleCall_1_2_1_0 = (RuleCall)cPortsAssignment_1_2_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_1_3 = (Keyword)cGroup_1.eContents().get(3); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cLeftParenthesisKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cParametersAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cParametersExpressionParserRuleCall_2_1_0 = (RuleCall)cParametersAssignment_2_1.eContents().get(0); + private final Group cGroup_2_2 = (Group)cGroup_2.eContents().get(2); + private final Keyword cCommaKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0); + private final Assignment cParametersAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1); + private final RuleCall cParametersExpressionParserRuleCall_2_2_1_0 = (RuleCall)cParametersAssignment_2_2_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3); + + //ComponentInstance: + // component=[ParameterizedDeclaration] ('[' ports+=Expression (',' ports+=Expression)* ']')? ('(' parameters+=Expression + // (',' parameters+=Expression)* ')')?; + @Override public ParserRule getRule() { return rule; } + + //component=[ParameterizedDeclaration] ('[' ports+=Expression (',' ports+=Expression)* ']')? ('(' parameters+=Expression + //(',' parameters+=Expression)* ')')? + public Group getGroup() { return cGroup; } + + //component=[ParameterizedDeclaration] + public Assignment getComponentAssignment_0() { return cComponentAssignment_0; } + + //[ParameterizedDeclaration] + public CrossReference getComponentParameterizedDeclarationCrossReference_0_0() { return cComponentParameterizedDeclarationCrossReference_0_0; } + + //ID + public RuleCall getComponentParameterizedDeclarationIDTerminalRuleCall_0_0_1() { return cComponentParameterizedDeclarationIDTerminalRuleCall_0_0_1; } + + //('[' ports+=Expression (',' ports+=Expression)* ']')? + public Group getGroup_1() { return cGroup_1; } + + //'[' + public Keyword getLeftSquareBracketKeyword_1_0() { return cLeftSquareBracketKeyword_1_0; } + + //ports+=Expression + public Assignment getPortsAssignment_1_1() { return cPortsAssignment_1_1; } + + //Expression + public RuleCall getPortsExpressionParserRuleCall_1_1_0() { return cPortsExpressionParserRuleCall_1_1_0; } + + //(',' ports+=Expression)* + public Group getGroup_1_2() { return cGroup_1_2; } + + //',' + public Keyword getCommaKeyword_1_2_0() { return cCommaKeyword_1_2_0; } + + //ports+=Expression + public Assignment getPortsAssignment_1_2_1() { return cPortsAssignment_1_2_1; } + + //Expression + public RuleCall getPortsExpressionParserRuleCall_1_2_1_0() { return cPortsExpressionParserRuleCall_1_2_1_0; } + + //']' + public Keyword getRightSquareBracketKeyword_1_3() { return cRightSquareBracketKeyword_1_3; } + + //('(' parameters+=Expression (',' parameters+=Expression)* ')')? + public Group getGroup_2() { return cGroup_2; } + + //'(' + public Keyword getLeftParenthesisKeyword_2_0() { return cLeftParenthesisKeyword_2_0; } + + //parameters+=Expression + public Assignment getParametersAssignment_2_1() { return cParametersAssignment_2_1; } + + //Expression + public RuleCall getParametersExpressionParserRuleCall_2_1_0() { return cParametersExpressionParserRuleCall_2_1_0; } + + //(',' parameters+=Expression)* + public Group getGroup_2_2() { return cGroup_2_2; } + + //',' + public Keyword getCommaKeyword_2_2_0() { return cCommaKeyword_2_2_0; } + + //parameters+=Expression + public Assignment getParametersAssignment_2_2_1() { return cParametersAssignment_2_2_1; } + + //Expression + public RuleCall getParametersExpressionParserRuleCall_2_2_1_0() { return cParametersExpressionParserRuleCall_2_2_1_0; } + + //')' + public Keyword getRightParenthesisKeyword_2_3() { return cRightParenthesisKeyword_2_3; } + } + public class ExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Expression"); + private final RuleCall cQuantifiedExpressionParserRuleCall = (RuleCall)rule.eContents().get(1); + + ////GenericInstance: + //// TypeInstance + //// | ConstantInstance + //// | UnionTagInstance + //// | RecordFieldInstance + ////; + //// + ////TypeInstance: + //// 'type' type=Type + ////; + //// + ////ConstantInstance: + //// 'const' (const=[ConstantDeclarationUse] | value=LiteralExpression) + ////; + //// + ////UnionTagInstance: + //// (constr0?='constr0' | constr1?='constr1') head=[UnionTagDeclarationUse] + ////; + //// + ////RecordFieldInstance: + //// 'field' field=[RecordFieldDeclarationUse] + ////; + //Expression: + // QuantifiedExpression; + @Override public ParserRule getRule() { return rule; } + + //QuantifiedExpression + public RuleCall getQuantifiedExpressionParserRuleCall() { return cQuantifiedExpressionParserRuleCall; } + } + public class QuantifiedExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.QuantifiedExpression"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Alternatives cAlternatives_0_0 = (Alternatives)cGroup_0.eContents().get(0); + private final Group cGroup_0_0_0 = (Group)cAlternatives_0_0.eContents().get(0); + private final Action cAllExpressionAction_0_0_0_0 = (Action)cGroup_0_0_0.eContents().get(0); + private final Keyword cAllKeyword_0_0_0_1 = (Keyword)cGroup_0_0_0.eContents().get(1); + private final Group cGroup_0_0_1 = (Group)cAlternatives_0_0.eContents().get(1); + private final Action cExistsExpressionAction_0_0_1_0 = (Action)cGroup_0_0_1.eContents().get(0); + private final Keyword cExistsKeyword_0_0_1_1 = (Keyword)cGroup_0_0_1.eContents().get(1); + private final Assignment cIndexAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final RuleCall cIndexVariableDeclarationParserRuleCall_0_1_0 = (RuleCall)cIndexAssignment_0_1.eContents().get(0); + private final Group cGroup_0_2 = (Group)cGroup_0.eContents().get(2); + private final Keyword cInKeyword_0_2_0 = (Keyword)cGroup_0_2.eContents().get(0); + private final Assignment cTypeAssignment_0_2_1 = (Assignment)cGroup_0_2.eContents().get(1); + private final RuleCall cTypeRangeTypeParserRuleCall_0_2_1_0 = (RuleCall)cTypeAssignment_0_2_1.eContents().get(0); + private final Keyword cFullStopKeyword_0_3 = (Keyword)cGroup_0.eContents().get(3); + private final Assignment cChildAssignment_0_4 = (Assignment)cGroup_0.eContents().get(4); + private final RuleCall cChildQuantifiedExpressionParserRuleCall_0_4_0 = (RuleCall)cChildAssignment_0_4.eContents().get(0); + private final RuleCall cConditionalParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //QuantifiedExpression Expression: + // ({AllExpression} 'all' | {ExistsExpression} 'exists') index=VariableDeclaration ('in' type=RangeType)? '.' + // child=QuantifiedExpression + // | Conditional + @Override public ParserRule getRule() { return rule; } + + //({AllExpression} 'all' | {ExistsExpression} 'exists') index=VariableDeclaration ('in' type=RangeType)? '.' + //child=QuantifiedExpression | Conditional + public Alternatives getAlternatives() { return cAlternatives; } + + //({AllExpression} 'all' | {ExistsExpression} 'exists') index=VariableDeclaration ('in' type=RangeType)? '.' + //child=QuantifiedExpression + public Group getGroup_0() { return cGroup_0; } + + //({AllExpression} 'all' | {ExistsExpression} 'exists') + public Alternatives getAlternatives_0_0() { return cAlternatives_0_0; } + + //{AllExpression} 'all' + public Group getGroup_0_0_0() { return cGroup_0_0_0; } + + //{AllExpression} + public Action getAllExpressionAction_0_0_0_0() { return cAllExpressionAction_0_0_0_0; } + + //'all' + public Keyword getAllKeyword_0_0_0_1() { return cAllKeyword_0_0_0_1; } + + //{ExistsExpression} 'exists' + public Group getGroup_0_0_1() { return cGroup_0_0_1; } + + //{ExistsExpression} + public Action getExistsExpressionAction_0_0_1_0() { return cExistsExpressionAction_0_0_1_0; } + + //'exists' + public Keyword getExistsKeyword_0_0_1_1() { return cExistsKeyword_0_0_1_1; } + + //index=VariableDeclaration + public Assignment getIndexAssignment_0_1() { return cIndexAssignment_0_1; } + + //VariableDeclaration + public RuleCall getIndexVariableDeclarationParserRuleCall_0_1_0() { return cIndexVariableDeclarationParserRuleCall_0_1_0; } + + //('in' type=RangeType)? + public Group getGroup_0_2() { return cGroup_0_2; } + + //'in' + public Keyword getInKeyword_0_2_0() { return cInKeyword_0_2_0; } + + //type=RangeType + public Assignment getTypeAssignment_0_2_1() { return cTypeAssignment_0_2_1; } + + //RangeType + public RuleCall getTypeRangeTypeParserRuleCall_0_2_1_0() { return cTypeRangeTypeParserRuleCall_0_2_1_0; } + + //'.' + public Keyword getFullStopKeyword_0_3() { return cFullStopKeyword_0_3; } + + //child=QuantifiedExpression + public Assignment getChildAssignment_0_4() { return cChildAssignment_0_4; } + + //QuantifiedExpression + public RuleCall getChildQuantifiedExpressionParserRuleCall_0_4_0() { return cChildQuantifiedExpressionParserRuleCall_0_4_0; } + + //Conditional + public RuleCall getConditionalParserRuleCall_1() { return cConditionalParserRuleCall_1; } + } + public class ConditionalElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Conditional"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cDisjunctionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cQuestionMarkKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Action cConditionalConditionAction_1_1 = (Action)cGroup_1.eContents().get(1); + private final Assignment cThenAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cThenDisjunctionParserRuleCall_1_2_0 = (RuleCall)cThenAssignment_1_2.eContents().get(0); + private final Keyword cColonKeyword_1_3 = (Keyword)cGroup_1.eContents().get(3); + private final Assignment cElseAssignment_1_4 = (Assignment)cGroup_1.eContents().get(4); + private final RuleCall cElseDisjunctionParserRuleCall_1_4_0 = (RuleCall)cElseAssignment_1_4.eContents().get(0); + + //Conditional Expression: + // Disjunction ('?' {Conditional.condition=current} then=Disjunction ':' else=Disjunction)? + @Override public ParserRule getRule() { return rule; } + + //Disjunction ('?' {Conditional.condition=current} then=Disjunction ':' else=Disjunction)? + public Group getGroup() { return cGroup; } + + //Disjunction + public RuleCall getDisjunctionParserRuleCall_0() { return cDisjunctionParserRuleCall_0; } + + //('?' {Conditional.condition=current} then=Disjunction ':' else=Disjunction)? + public Group getGroup_1() { return cGroup_1; } + + //'?' + public Keyword getQuestionMarkKeyword_1_0() { return cQuestionMarkKeyword_1_0; } + + //{Conditional.condition=current} + public Action getConditionalConditionAction_1_1() { return cConditionalConditionAction_1_1; } + + //then=Disjunction + public Assignment getThenAssignment_1_2() { return cThenAssignment_1_2; } + + //Disjunction + public RuleCall getThenDisjunctionParserRuleCall_1_2_0() { return cThenDisjunctionParserRuleCall_1_2_0; } + + //':' + public Keyword getColonKeyword_1_3() { return cColonKeyword_1_3; } + + //else=Disjunction + public Assignment getElseAssignment_1_4() { return cElseAssignment_1_4; } + + //Disjunction + public RuleCall getElseDisjunctionParserRuleCall_1_4_0() { return cElseDisjunctionParserRuleCall_1_4_0; } + } + public class DisjunctionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Disjunction"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cImplicationParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cDisjunctionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cOrKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightImplicationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //Disjunction Expression: + // Implication ({Disjunction.left=current} 'or' right=Implication)* + @Override public ParserRule getRule() { return rule; } + + //Implication ({Disjunction.left=current} 'or' right=Implication)* + public Group getGroup() { return cGroup; } + + //Implication + public RuleCall getImplicationParserRuleCall_0() { return cImplicationParserRuleCall_0; } + + //({Disjunction.left=current} 'or' right=Implication)* + public Group getGroup_1() { return cGroup_1; } + + //{Disjunction.left=current} + public Action getDisjunctionLeftAction_1_0() { return cDisjunctionLeftAction_1_0; } + + //'or' + public Keyword getOrKeyword_1_1() { return cOrKeyword_1_1; } + + //right=Implication + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //Implication + public RuleCall getRightImplicationParserRuleCall_1_2_0() { return cRightImplicationParserRuleCall_1_2_0; } + } + public class ImplicationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Implication"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cConjunctionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cImplicationLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cEqualsSignGreaterThanSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightImplicationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //Implication Expression: + // Conjunction ({Implication.left=current} '=>' right=Implication)? + @Override public ParserRule getRule() { return rule; } + + //Conjunction ({Implication.left=current} '=>' right=Implication)? + public Group getGroup() { return cGroup; } + + //Conjunction + public RuleCall getConjunctionParserRuleCall_0() { return cConjunctionParserRuleCall_0; } + + //({Implication.left=current} '=>' right=Implication)? + public Group getGroup_1() { return cGroup_1; } + + //{Implication.left=current} + public Action getImplicationLeftAction_1_0() { return cImplicationLeftAction_1_0; } + + //'=>' + public Keyword getEqualsSignGreaterThanSignKeyword_1_1() { return cEqualsSignGreaterThanSignKeyword_1_1; } + + //right=Implication + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //Implication + public RuleCall getRightImplicationParserRuleCall_1_2_0() { return cRightImplicationParserRuleCall_1_2_0; } + } + public class ConjunctionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Conjunction"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cComparisonParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cConjunctionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cAndKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightComparisonParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //Conjunction Expression: + // Comparison ({Conjunction.left=current} 'and' right=Comparison)* + @Override public ParserRule getRule() { return rule; } + + //Comparison ({Conjunction.left=current} 'and' right=Comparison)* + public Group getGroup() { return cGroup; } + + //Comparison + public RuleCall getComparisonParserRuleCall_0() { return cComparisonParserRuleCall_0; } + + //({Conjunction.left=current} 'and' right=Comparison)* + public Group getGroup_1() { return cGroup_1; } + + //{Conjunction.left=current} + public Action getConjunctionLeftAction_1_0() { return cConjunctionLeftAction_1_0; } + + //'and' + public Keyword getAndKeyword_1_1() { return cAndKeyword_1_1; } + + //right=Comparison + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //Comparison + public RuleCall getRightComparisonParserRuleCall_1_2_0() { return cRightComparisonParserRuleCall_1_2_0; } + } + public class ComparisonElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Comparison"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cAdditionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Alternatives cAlternatives_1_0 = (Alternatives)cGroup_1.eContents().get(0); + private final Group cGroup_1_0_0 = (Group)cAlternatives_1_0.eContents().get(0); + private final Action cComparisonEqualLeftAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0); + private final Keyword cEqualsSignKeyword_1_0_0_1 = (Keyword)cGroup_1_0_0.eContents().get(1); + private final Group cGroup_1_0_1 = (Group)cAlternatives_1_0.eContents().get(1); + private final Action cComparisonNotEqualLeftAction_1_0_1_0 = (Action)cGroup_1_0_1.eContents().get(0); + private final Keyword cLessThanSignGreaterThanSignKeyword_1_0_1_1 = (Keyword)cGroup_1_0_1.eContents().get(1); + private final Group cGroup_1_0_2 = (Group)cAlternatives_1_0.eContents().get(2); + private final Action cComparisonLesserLeftAction_1_0_2_0 = (Action)cGroup_1_0_2.eContents().get(0); + private final Keyword cLessThanSignKeyword_1_0_2_1 = (Keyword)cGroup_1_0_2.eContents().get(1); + private final Group cGroup_1_0_3 = (Group)cAlternatives_1_0.eContents().get(3); + private final Action cComparisonLesserEqualLeftAction_1_0_3_0 = (Action)cGroup_1_0_3.eContents().get(0); + private final Keyword cLessThanSignEqualsSignKeyword_1_0_3_1 = (Keyword)cGroup_1_0_3.eContents().get(1); + private final Group cGroup_1_0_4 = (Group)cAlternatives_1_0.eContents().get(4); + private final Action cComparisonGreaterLeftAction_1_0_4_0 = (Action)cGroup_1_0_4.eContents().get(0); + private final Keyword cGreaterThanSignKeyword_1_0_4_1 = (Keyword)cGroup_1_0_4.eContents().get(1); + private final Group cGroup_1_0_5 = (Group)cAlternatives_1_0.eContents().get(5); + private final Action cComparisonGreaterEqualLeftAction_1_0_5_0 = (Action)cGroup_1_0_5.eContents().get(0); + private final Keyword cGreaterThanSignEqualsSignKeyword_1_0_5_1 = (Keyword)cGroup_1_0_5.eContents().get(1); + private final Assignment cRightAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cRightAdditionParserRuleCall_1_1_0 = (RuleCall)cRightAssignment_1_1.eContents().get(0); + + //Comparison Expression: + // Addition (({ComparisonEqual.left=current} '=' + // | {ComparisonNotEqual.left=current} '<>' + // | {ComparisonLesser.left=current} '<' + // | {ComparisonLesserEqual.left=current} '<=' + // | {ComparisonGreater.left=current} '>' + // | {ComparisonGreaterEqual.left=current} '>=') right=Addition)? + @Override public ParserRule getRule() { return rule; } + + //Addition (({ComparisonEqual.left=current} '=' | {ComparisonNotEqual.left=current} '<>' | {ComparisonLesser.left=current} + //'<' | {ComparisonLesserEqual.left=current} '<=' | {ComparisonGreater.left=current} '>' | + //{ComparisonGreaterEqual.left=current} '>=') right=Addition)? + public Group getGroup() { return cGroup; } + + //Addition + public RuleCall getAdditionParserRuleCall_0() { return cAdditionParserRuleCall_0; } + + //(({ComparisonEqual.left=current} '=' | {ComparisonNotEqual.left=current} '<>' | {ComparisonLesser.left=current} '<' | + //{ComparisonLesserEqual.left=current} '<=' | {ComparisonGreater.left=current} '>' | + //{ComparisonGreaterEqual.left=current} '>=') right=Addition)? + public Group getGroup_1() { return cGroup_1; } + + //({ComparisonEqual.left=current} '=' | {ComparisonNotEqual.left=current} '<>' | {ComparisonLesser.left=current} '<' | + //{ComparisonLesserEqual.left=current} '<=' | {ComparisonGreater.left=current} '>' | + //{ComparisonGreaterEqual.left=current} '>=') + public Alternatives getAlternatives_1_0() { return cAlternatives_1_0; } + + //{ComparisonEqual.left=current} '=' + public Group getGroup_1_0_0() { return cGroup_1_0_0; } + + //{ComparisonEqual.left=current} + public Action getComparisonEqualLeftAction_1_0_0_0() { return cComparisonEqualLeftAction_1_0_0_0; } + + //'=' + public Keyword getEqualsSignKeyword_1_0_0_1() { return cEqualsSignKeyword_1_0_0_1; } + + //{ComparisonNotEqual.left=current} '<>' + public Group getGroup_1_0_1() { return cGroup_1_0_1; } + + //{ComparisonNotEqual.left=current} + public Action getComparisonNotEqualLeftAction_1_0_1_0() { return cComparisonNotEqualLeftAction_1_0_1_0; } + + //'<>' + public Keyword getLessThanSignGreaterThanSignKeyword_1_0_1_1() { return cLessThanSignGreaterThanSignKeyword_1_0_1_1; } + + //{ComparisonLesser.left=current} '<' + public Group getGroup_1_0_2() { return cGroup_1_0_2; } + + //{ComparisonLesser.left=current} + public Action getComparisonLesserLeftAction_1_0_2_0() { return cComparisonLesserLeftAction_1_0_2_0; } + + //'<' + public Keyword getLessThanSignKeyword_1_0_2_1() { return cLessThanSignKeyword_1_0_2_1; } + + //{ComparisonLesserEqual.left=current} '<=' + public Group getGroup_1_0_3() { return cGroup_1_0_3; } + + //{ComparisonLesserEqual.left=current} + public Action getComparisonLesserEqualLeftAction_1_0_3_0() { return cComparisonLesserEqualLeftAction_1_0_3_0; } + + //'<=' + public Keyword getLessThanSignEqualsSignKeyword_1_0_3_1() { return cLessThanSignEqualsSignKeyword_1_0_3_1; } + + //{ComparisonGreater.left=current} '>' + public Group getGroup_1_0_4() { return cGroup_1_0_4; } + + //{ComparisonGreater.left=current} + public Action getComparisonGreaterLeftAction_1_0_4_0() { return cComparisonGreaterLeftAction_1_0_4_0; } + + //'>' + public Keyword getGreaterThanSignKeyword_1_0_4_1() { return cGreaterThanSignKeyword_1_0_4_1; } + + //{ComparisonGreaterEqual.left=current} '>=' + public Group getGroup_1_0_5() { return cGroup_1_0_5; } + + //{ComparisonGreaterEqual.left=current} + public Action getComparisonGreaterEqualLeftAction_1_0_5_0() { return cComparisonGreaterEqualLeftAction_1_0_5_0; } + + //'>=' + public Keyword getGreaterThanSignEqualsSignKeyword_1_0_5_1() { return cGreaterThanSignEqualsSignKeyword_1_0_5_1; } + + //right=Addition + public Assignment getRightAssignment_1_1() { return cRightAssignment_1_1; } + + //Addition + public RuleCall getRightAdditionParserRuleCall_1_1_0() { return cRightAdditionParserRuleCall_1_1_0; } + } + public class AdditionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Addition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cSubstractionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cAdditionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cPlusSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightSubstractionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //Addition Expression: + // Substraction ({Addition.left=current} '+' right=Substraction)* + @Override public ParserRule getRule() { return rule; } + + //Substraction ({Addition.left=current} '+' right=Substraction)* + public Group getGroup() { return cGroup; } + + //Substraction + public RuleCall getSubstractionParserRuleCall_0() { return cSubstractionParserRuleCall_0; } + + //({Addition.left=current} '+' right=Substraction)* + public Group getGroup_1() { return cGroup_1; } + + //{Addition.left=current} + public Action getAdditionLeftAction_1_0() { return cAdditionLeftAction_1_0; } + + //'+' + public Keyword getPlusSignKeyword_1_1() { return cPlusSignKeyword_1_1; } + + //right=Substraction + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //Substraction + public RuleCall getRightSubstractionParserRuleCall_1_2_0() { return cRightSubstractionParserRuleCall_1_2_0; } + } + public class SubstractionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Substraction"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cMultiplicationParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cSubstractionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cHyphenMinusKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightMultiplicationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //Substraction Expression: + // Multiplication ({Substraction.left=current} '-' right=Multiplication)* + @Override public ParserRule getRule() { return rule; } + + //Multiplication ({Substraction.left=current} '-' right=Multiplication)* + public Group getGroup() { return cGroup; } + + //Multiplication + public RuleCall getMultiplicationParserRuleCall_0() { return cMultiplicationParserRuleCall_0; } + + //({Substraction.left=current} '-' right=Multiplication)* + public Group getGroup_1() { return cGroup_1; } + + //{Substraction.left=current} + public Action getSubstractionLeftAction_1_0() { return cSubstractionLeftAction_1_0; } + + //'-' + public Keyword getHyphenMinusKeyword_1_1() { return cHyphenMinusKeyword_1_1; } + + //right=Multiplication + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //Multiplication + public RuleCall getRightMultiplicationParserRuleCall_1_2_0() { return cRightMultiplicationParserRuleCall_1_2_0; } + } + public class MultiplicationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Multiplication"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cDivisionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cMultiplicationLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cAsteriskKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightDivisionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //Multiplication Expression: + // Division ({Multiplication.left=current} '*' right=Division)* + @Override public ParserRule getRule() { return rule; } + + //Division ({Multiplication.left=current} '*' right=Division)* + public Group getGroup() { return cGroup; } + + //Division + public RuleCall getDivisionParserRuleCall_0() { return cDivisionParserRuleCall_0; } + + //({Multiplication.left=current} '*' right=Division)* + public Group getGroup_1() { return cGroup_1; } + + //{Multiplication.left=current} + public Action getMultiplicationLeftAction_1_0() { return cMultiplicationLeftAction_1_0; } + + //'*' + public Keyword getAsteriskKeyword_1_1() { return cAsteriskKeyword_1_1; } + + //right=Division + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //Division + public RuleCall getRightDivisionParserRuleCall_1_2_0() { return cRightDivisionParserRuleCall_1_2_0; } + } + public class DivisionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Division"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cModuloParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cDivisionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cSolidusKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightModuloParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //Division Expression: + // Modulo ({Division.left=current} '/' right=Modulo)* + @Override public ParserRule getRule() { return rule; } + + //Modulo ({Division.left=current} '/' right=Modulo)* + public Group getGroup() { return cGroup; } + + //Modulo + public RuleCall getModuloParserRuleCall_0() { return cModuloParserRuleCall_0; } + + //({Division.left=current} '/' right=Modulo)* + public Group getGroup_1() { return cGroup_1; } + + //{Division.left=current} + public Action getDivisionLeftAction_1_0() { return cDivisionLeftAction_1_0; } + + //'/' + public Keyword getSolidusKeyword_1_1() { return cSolidusKeyword_1_1; } + + //right=Modulo + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //Modulo + public RuleCall getRightModuloParserRuleCall_1_2_0() { return cRightModuloParserRuleCall_1_2_0; } + } + public class ModuloElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Modulo"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cUnaryExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cModuloLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cPercentSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightUnaryExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //Modulo Expression: + // UnaryExpression ({Modulo.left=current} '%' right=UnaryExpression)* + @Override public ParserRule getRule() { return rule; } + + //UnaryExpression ({Modulo.left=current} '%' right=UnaryExpression)* + public Group getGroup() { return cGroup; } + + //UnaryExpression + public RuleCall getUnaryExpressionParserRuleCall_0() { return cUnaryExpressionParserRuleCall_0; } + + //({Modulo.left=current} '%' right=UnaryExpression)* + public Group getGroup_1() { return cGroup_1; } + + //{Modulo.left=current} + public Action getModuloLeftAction_1_0() { return cModuloLeftAction_1_0; } + + //'%' + public Keyword getPercentSignKeyword_1_1() { return cPercentSignKeyword_1_1; } + + //right=UnaryExpression + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //UnaryExpression + public RuleCall getRightUnaryExpressionParserRuleCall_1_2_0() { return cRightUnaryExpressionParserRuleCall_1_2_0; } + } + public class UnaryExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.UnaryExpression"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Alternatives cAlternatives_0_0 = (Alternatives)cGroup_0.eContents().get(0); + private final Group cGroup_0_0_0 = (Group)cAlternatives_0_0.eContents().get(0); + private final Action cUnaryPlusExpressionAction_0_0_0_0 = (Action)cGroup_0_0_0.eContents().get(0); + private final Keyword cPlusSignKeyword_0_0_0_1 = (Keyword)cGroup_0_0_0.eContents().get(1); + private final Group cGroup_0_0_1 = (Group)cAlternatives_0_0.eContents().get(1); + private final Action cUnaryMinusExpressionAction_0_0_1_0 = (Action)cGroup_0_0_1.eContents().get(0); + private final Keyword cHyphenMinusKeyword_0_0_1_1 = (Keyword)cGroup_0_0_1.eContents().get(1); + private final Group cGroup_0_0_2 = (Group)cAlternatives_0_0.eContents().get(2); + private final Action cUnaryNegationExpressionAction_0_0_2_0 = (Action)cGroup_0_0_2.eContents().get(0); + private final Keyword cNotKeyword_0_0_2_1 = (Keyword)cGroup_0_0_2.eContents().get(1); + private final Group cGroup_0_0_3 = (Group)cAlternatives_0_0.eContents().get(3); + private final Action cUnaryFirstExpressionAction_0_0_3_0 = (Action)cGroup_0_0_3.eContents().get(0); + private final Keyword cFirstKeyword_0_0_3_1 = (Keyword)cGroup_0_0_3.eContents().get(1); + private final Group cGroup_0_0_4 = (Group)cAlternatives_0_0.eContents().get(4); + private final Action cUnaryLengthExpressionAction_0_0_4_0 = (Action)cGroup_0_0_4.eContents().get(0); + private final Keyword cLengthKeyword_0_0_4_1 = (Keyword)cGroup_0_0_4.eContents().get(1); + private final Group cGroup_0_0_5 = (Group)cAlternatives_0_0.eContents().get(5); + private final Action cUnaryCoerceExpressionAction_0_0_5_0 = (Action)cGroup_0_0_5.eContents().get(0); + private final Keyword cDollarSignKeyword_0_0_5_1 = (Keyword)cGroup_0_0_5.eContents().get(1); + private final Group cGroup_0_0_6 = (Group)cAlternatives_0_0.eContents().get(6); + private final Action cUnaryFullExpressionAction_0_0_6_0 = (Action)cGroup_0_0_6.eContents().get(0); + private final Keyword cFullKeyword_0_0_6_1 = (Keyword)cGroup_0_0_6.eContents().get(1); + private final Group cGroup_0_0_7 = (Group)cAlternatives_0_0.eContents().get(7); + private final Action cUnaryDeQueueExpressionAction_0_0_7_0 = (Action)cGroup_0_0_7.eContents().get(0); + private final Keyword cDequeueKeyword_0_0_7_1 = (Keyword)cGroup_0_0_7.eContents().get(1); + private final Group cGroup_0_0_8 = (Group)cAlternatives_0_0.eContents().get(8); + private final Action cUnaryEmptyExpressionAction_0_0_8_0 = (Action)cGroup_0_0_8.eContents().get(0); + private final Keyword cEmptyKeyword_0_0_8_1 = (Keyword)cGroup_0_0_8.eContents().get(1); + private final Assignment cChildAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final RuleCall cChildUnaryExpressionParserRuleCall_0_1_0 = (RuleCall)cChildAssignment_0_1.eContents().get(0); + private final RuleCall cProjectionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //UnaryExpression Expression: + // ({UnaryPlusExpression} '+' + // | {UnaryMinusExpression} '-' + // | {UnaryNegationExpression} 'not' + // | {UnaryFirstExpression} 'first' + // | {UnaryLengthExpression} 'length' + // | {UnaryCoerceExpression} '$' + // | {UnaryFullExpression} 'full' + // | {UnaryDeQueueExpression} 'dequeue' + // | {UnaryEmptyExpression} 'empty') child=UnaryExpression | Projection + @Override public ParserRule getRule() { return rule; } + + //({UnaryPlusExpression} '+' | {UnaryMinusExpression} '-' | {UnaryNegationExpression} 'not' | {UnaryFirstExpression} + //'first' | {UnaryLengthExpression} 'length' | {UnaryCoerceExpression} '$' | {UnaryFullExpression} 'full' | + //{UnaryDeQueueExpression} 'dequeue' | {UnaryEmptyExpression} 'empty') child=UnaryExpression | Projection + public Alternatives getAlternatives() { return cAlternatives; } + + //({UnaryPlusExpression} '+' | {UnaryMinusExpression} '-' | {UnaryNegationExpression} 'not' | {UnaryFirstExpression} + //'first' | {UnaryLengthExpression} 'length' | {UnaryCoerceExpression} '$' | {UnaryFullExpression} 'full' | + //{UnaryDeQueueExpression} 'dequeue' | {UnaryEmptyExpression} 'empty') child=UnaryExpression + public Group getGroup_0() { return cGroup_0; } + + //({UnaryPlusExpression} '+' | {UnaryMinusExpression} '-' | {UnaryNegationExpression} 'not' | {UnaryFirstExpression} + //'first' | {UnaryLengthExpression} 'length' | {UnaryCoerceExpression} '$' | {UnaryFullExpression} 'full' | + //{UnaryDeQueueExpression} 'dequeue' | {UnaryEmptyExpression} 'empty') + public Alternatives getAlternatives_0_0() { return cAlternatives_0_0; } + + //{UnaryPlusExpression} '+' + public Group getGroup_0_0_0() { return cGroup_0_0_0; } + + //{UnaryPlusExpression} + public Action getUnaryPlusExpressionAction_0_0_0_0() { return cUnaryPlusExpressionAction_0_0_0_0; } + + //'+' + public Keyword getPlusSignKeyword_0_0_0_1() { return cPlusSignKeyword_0_0_0_1; } + + //{UnaryMinusExpression} '-' + public Group getGroup_0_0_1() { return cGroup_0_0_1; } + + //{UnaryMinusExpression} + public Action getUnaryMinusExpressionAction_0_0_1_0() { return cUnaryMinusExpressionAction_0_0_1_0; } + + //'-' + public Keyword getHyphenMinusKeyword_0_0_1_1() { return cHyphenMinusKeyword_0_0_1_1; } + + //{UnaryNegationExpression} 'not' + public Group getGroup_0_0_2() { return cGroup_0_0_2; } + + //{UnaryNegationExpression} + public Action getUnaryNegationExpressionAction_0_0_2_0() { return cUnaryNegationExpressionAction_0_0_2_0; } + + //'not' + public Keyword getNotKeyword_0_0_2_1() { return cNotKeyword_0_0_2_1; } + + //{UnaryFirstExpression} 'first' + public Group getGroup_0_0_3() { return cGroup_0_0_3; } + + //{UnaryFirstExpression} + public Action getUnaryFirstExpressionAction_0_0_3_0() { return cUnaryFirstExpressionAction_0_0_3_0; } + + //'first' + public Keyword getFirstKeyword_0_0_3_1() { return cFirstKeyword_0_0_3_1; } + + //{UnaryLengthExpression} 'length' + public Group getGroup_0_0_4() { return cGroup_0_0_4; } + + //{UnaryLengthExpression} + public Action getUnaryLengthExpressionAction_0_0_4_0() { return cUnaryLengthExpressionAction_0_0_4_0; } + + //'length' + public Keyword getLengthKeyword_0_0_4_1() { return cLengthKeyword_0_0_4_1; } + + //{UnaryCoerceExpression} '$' + public Group getGroup_0_0_5() { return cGroup_0_0_5; } + + //{UnaryCoerceExpression} + public Action getUnaryCoerceExpressionAction_0_0_5_0() { return cUnaryCoerceExpressionAction_0_0_5_0; } + + //'$' + public Keyword getDollarSignKeyword_0_0_5_1() { return cDollarSignKeyword_0_0_5_1; } + + //{UnaryFullExpression} 'full' + public Group getGroup_0_0_6() { return cGroup_0_0_6; } + + //{UnaryFullExpression} + public Action getUnaryFullExpressionAction_0_0_6_0() { return cUnaryFullExpressionAction_0_0_6_0; } + + //'full' + public Keyword getFullKeyword_0_0_6_1() { return cFullKeyword_0_0_6_1; } + + //{UnaryDeQueueExpression} 'dequeue' + public Group getGroup_0_0_7() { return cGroup_0_0_7; } + + //{UnaryDeQueueExpression} + public Action getUnaryDeQueueExpressionAction_0_0_7_0() { return cUnaryDeQueueExpressionAction_0_0_7_0; } + + //'dequeue' + public Keyword getDequeueKeyword_0_0_7_1() { return cDequeueKeyword_0_0_7_1; } + + //{UnaryEmptyExpression} 'empty' + public Group getGroup_0_0_8() { return cGroup_0_0_8; } + + //{UnaryEmptyExpression} + public Action getUnaryEmptyExpressionAction_0_0_8_0() { return cUnaryEmptyExpressionAction_0_0_8_0; } + + //'empty' + public Keyword getEmptyKeyword_0_0_8_1() { return cEmptyKeyword_0_0_8_1; } + + //child=UnaryExpression + public Assignment getChildAssignment_0_1() { return cChildAssignment_0_1; } + + //UnaryExpression + public RuleCall getChildUnaryExpressionParserRuleCall_0_1_0() { return cChildUnaryExpressionParserRuleCall_0_1_0; } + + //Projection + public RuleCall getProjectionParserRuleCall_1() { return cProjectionParserRuleCall_1; } + } + public class ProjectionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Projection"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cAtomicExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cProjectionChannelAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cCircumflexAccentKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cFieldAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cFieldAtomicExpressionParserRuleCall_1_2_0 = (RuleCall)cFieldAssignment_1_2.eContents().get(0); + + //Projection Expression: + // AtomicExpression ({Projection.channel=current} '^' + // field=AtomicExpression)? + @Override public ParserRule getRule() { return rule; } + + //AtomicExpression ({Projection.channel=current} '^' field=AtomicExpression)? + public Group getGroup() { return cGroup; } + + //AtomicExpression + public RuleCall getAtomicExpressionParserRuleCall_0() { return cAtomicExpressionParserRuleCall_0; } + + //({Projection.channel=current} '^' field=AtomicExpression)? + public Group getGroup_1() { return cGroup_1; } + + //{Projection.channel=current} + public Action getProjectionChannelAction_1_0() { return cProjectionChannelAction_1_0; } + + //'^' + public Keyword getCircumflexAccentKeyword_1_1() { return cCircumflexAccentKeyword_1_1; } + + //field=AtomicExpression + public Assignment getFieldAssignment_1_2() { return cFieldAssignment_1_2; } + + //AtomicExpression + public RuleCall getFieldAtomicExpressionParserRuleCall_1_2_0() { return cFieldAtomicExpressionParserRuleCall_1_2_0; } + } + public class ValueExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ValueExpression"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cIdentifierExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cLiteralExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cRecordExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cArrayExpressionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cQueueExpressionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + + //// Added to manage the type of current value of a fiacre value during execution + //ValueExpression: + // IdentifierExpression + // | LiteralExpression + // | RecordExpression + // | ArrayExpression + // | QueueExpression; + @Override public ParserRule getRule() { return rule; } + + //IdentifierExpression | LiteralExpression | RecordExpression | ArrayExpression | QueueExpression + public Alternatives getAlternatives() { return cAlternatives; } + + //IdentifierExpression + public RuleCall getIdentifierExpressionParserRuleCall_0() { return cIdentifierExpressionParserRuleCall_0; } + + //LiteralExpression + public RuleCall getLiteralExpressionParserRuleCall_1() { return cLiteralExpressionParserRuleCall_1; } + + //RecordExpression + public RuleCall getRecordExpressionParserRuleCall_2() { return cRecordExpressionParserRuleCall_2; } + + //ArrayExpression + public RuleCall getArrayExpressionParserRuleCall_3() { return cArrayExpressionParserRuleCall_3; } + + //QueueExpression + public RuleCall getQueueExpressionParserRuleCall_4() { return cQueueExpressionParserRuleCall_4; } + } + public class AtomicExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.AtomicExpression"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cIdentifierExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cReferenceExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cLiteralExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cRecordExpressionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cArrayExpressionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + private final RuleCall cQueueExpressionParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); + private final RuleCall cEnqueueExpressionParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); + private final RuleCall cAppendExpressionParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7); + private final Group cGroup_8 = (Group)cAlternatives.eContents().get(8); + private final Keyword cLeftParenthesisKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0); + private final RuleCall cExpressionParserRuleCall_8_1 = (RuleCall)cGroup_8.eContents().get(1); + private final Keyword cRightParenthesisKeyword_8_2 = (Keyword)cGroup_8.eContents().get(2); + + //AtomicExpression Expression: + // IdentifierExpression + // | ReferenceExpression + // | LiteralExpression + // | RecordExpression + // | ArrayExpression + // | QueueExpression + // | EnqueueExpression + // | AppendExpression + // | '(' Expression ')' + @Override public ParserRule getRule() { return rule; } + + //IdentifierExpression | ReferenceExpression | LiteralExpression | RecordExpression | ArrayExpression | QueueExpression | + //EnqueueExpression | AppendExpression | '(' Expression ')' + public Alternatives getAlternatives() { return cAlternatives; } + + //IdentifierExpression + public RuleCall getIdentifierExpressionParserRuleCall_0() { return cIdentifierExpressionParserRuleCall_0; } + + //ReferenceExpression + public RuleCall getReferenceExpressionParserRuleCall_1() { return cReferenceExpressionParserRuleCall_1; } + + //LiteralExpression + public RuleCall getLiteralExpressionParserRuleCall_2() { return cLiteralExpressionParserRuleCall_2; } + + //RecordExpression + public RuleCall getRecordExpressionParserRuleCall_3() { return cRecordExpressionParserRuleCall_3; } + + //ArrayExpression + public RuleCall getArrayExpressionParserRuleCall_4() { return cArrayExpressionParserRuleCall_4; } + + //QueueExpression + public RuleCall getQueueExpressionParserRuleCall_5() { return cQueueExpressionParserRuleCall_5; } + + //EnqueueExpression + public RuleCall getEnqueueExpressionParserRuleCall_6() { return cEnqueueExpressionParserRuleCall_6; } + + //AppendExpression + public RuleCall getAppendExpressionParserRuleCall_7() { return cAppendExpressionParserRuleCall_7; } + + //'(' Expression ')' + public Group getGroup_8() { return cGroup_8; } + + //'(' + public Keyword getLeftParenthesisKeyword_8_0() { return cLeftParenthesisKeyword_8_0; } + + //Expression + public RuleCall getExpressionParserRuleCall_8_1() { return cExpressionParserRuleCall_8_1; } + + //')' + public Keyword getRightParenthesisKeyword_8_2() { return cRightParenthesisKeyword_8_2; } + } + public class ReferenceExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ReferenceExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cAmpersandKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cDeclarationAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cDeclarationReferenceDeclarationUseCrossReference_1_0 = (CrossReference)cDeclarationAssignment_1.eContents().get(0); + private final RuleCall cDeclarationReferenceDeclarationUseIDTerminalRuleCall_1_0_1 = (RuleCall)cDeclarationReferenceDeclarationUseCrossReference_1_0.eContents().get(1); + + //ReferenceExpression: + // '&' declaration=[ReferenceDeclarationUse]; + @Override public ParserRule getRule() { return rule; } + + //'&' declaration=[ReferenceDeclarationUse] + public Group getGroup() { return cGroup; } + + //'&' + public Keyword getAmpersandKeyword_0() { return cAmpersandKeyword_0; } + + //declaration=[ReferenceDeclarationUse] + public Assignment getDeclarationAssignment_1() { return cDeclarationAssignment_1; } + + //[ReferenceDeclarationUse] + public CrossReference getDeclarationReferenceDeclarationUseCrossReference_1_0() { return cDeclarationReferenceDeclarationUseCrossReference_1_0; } + + //ID + public RuleCall getDeclarationReferenceDeclarationUseIDTerminalRuleCall_1_0_1() { return cDeclarationReferenceDeclarationUseIDTerminalRuleCall_1_0_1; } + } + public class IdentifierExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.IdentifierExpression"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cConstructionExpressionAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Assignment cDeclarationAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final CrossReference cDeclarationExpressionDeclarationUseCrossReference_0_1_0 = (CrossReference)cDeclarationAssignment_0_1.eContents().get(0); + private final RuleCall cDeclarationExpressionDeclarationUseIDTerminalRuleCall_0_1_0_1 = (RuleCall)cDeclarationExpressionDeclarationUseCrossReference_0_1_0.eContents().get(1); + private final Keyword cLeftParenthesisKeyword_0_2 = (Keyword)cGroup_0.eContents().get(2); + private final Group cGroup_0_3 = (Group)cGroup_0.eContents().get(3); + private final Assignment cParametersAssignment_0_3_0 = (Assignment)cGroup_0_3.eContents().get(0); + private final RuleCall cParametersExpressionParserRuleCall_0_3_0_0 = (RuleCall)cParametersAssignment_0_3_0.eContents().get(0); + private final Group cGroup_0_3_1 = (Group)cGroup_0_3.eContents().get(1); + private final Keyword cCommaKeyword_0_3_1_0 = (Keyword)cGroup_0_3_1.eContents().get(0); + private final Assignment cParametersAssignment_0_3_1_1 = (Assignment)cGroup_0_3_1.eContents().get(1); + private final RuleCall cParametersExpressionParserRuleCall_0_3_1_1_0 = (RuleCall)cParametersAssignment_0_3_1_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_0_4 = (Keyword)cGroup_0.eContents().get(4); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Assignment cDeclarationAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0); + private final CrossReference cDeclarationExpressionDeclarationUseCrossReference_1_0_0 = (CrossReference)cDeclarationAssignment_1_0.eContents().get(0); + private final RuleCall cDeclarationExpressionDeclarationUseIDTerminalRuleCall_1_0_0_1 = (RuleCall)cDeclarationExpressionDeclarationUseCrossReference_1_0_0.eContents().get(1); + private final Alternatives cAlternatives_1_1 = (Alternatives)cGroup_1.eContents().get(1); + private final Group cGroup_1_1_0 = (Group)cAlternatives_1_1.eContents().get(0); + private final Keyword cLeftSquareBracketKeyword_1_1_0_0 = (Keyword)cGroup_1_1_0.eContents().get(0); + private final Action cArrayAccessExpressionChildAction_1_1_0_1 = (Action)cGroup_1_1_0.eContents().get(1); + private final Assignment cIndexesAssignment_1_1_0_2 = (Assignment)cGroup_1_1_0.eContents().get(2); + private final RuleCall cIndexesExpressionParserRuleCall_1_1_0_2_0 = (RuleCall)cIndexesAssignment_1_1_0_2.eContents().get(0); + private final Group cGroup_1_1_0_3 = (Group)cGroup_1_1_0.eContents().get(3); + private final Keyword cCommaKeyword_1_1_0_3_0 = (Keyword)cGroup_1_1_0_3.eContents().get(0); + private final Assignment cIndexesAssignment_1_1_0_3_1 = (Assignment)cGroup_1_1_0_3.eContents().get(1); + private final RuleCall cIndexesExpressionParserRuleCall_1_1_0_3_1_0 = (RuleCall)cIndexesAssignment_1_1_0_3_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_1_1_0_4 = (Keyword)cGroup_1_1_0.eContents().get(4); + private final Group cGroup_1_1_1 = (Group)cAlternatives_1_1.eContents().get(1); + private final Keyword cFullStopKeyword_1_1_1_0 = (Keyword)cGroup_1_1_1.eContents().get(0); + private final Action cRecordAccessExpressionChildAction_1_1_1_1 = (Action)cGroup_1_1_1.eContents().get(1); + private final Assignment cFieldAssignment_1_1_1_2 = (Assignment)cGroup_1_1_1.eContents().get(2); + private final CrossReference cFieldRecordFieldDeclarationCrossReference_1_1_1_2_0 = (CrossReference)cFieldAssignment_1_1_1_2.eContents().get(0); + private final RuleCall cFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1 = (RuleCall)cFieldRecordFieldDeclarationCrossReference_1_1_1_2_0.eContents().get(1); + + //IdentifierExpression: + // {ConstructionExpression} declaration=[ExpressionDeclarationUse] '(' (parameters+=Expression (',' + // parameters+=Expression)*)? ')' | declaration=[ExpressionDeclarationUse] ('[' {ArrayAccessExpression.child=current} + // indexes+=Expression (',' indexes+=Expression)* ']' | '.' {RecordAccessExpression.child=current} + // field=[RecordFieldDeclaration])*; + @Override public ParserRule getRule() { return rule; } + + //{ConstructionExpression} declaration=[ExpressionDeclarationUse] '(' (parameters+=Expression (',' + //parameters+=Expression)*)? ')' | declaration=[ExpressionDeclarationUse] ('[' {ArrayAccessExpression.child=current} + //indexes+=Expression (',' indexes+=Expression)* ']' | '.' {RecordAccessExpression.child=current} + //field=[RecordFieldDeclaration])* + public Alternatives getAlternatives() { return cAlternatives; } + + //{ConstructionExpression} declaration=[ExpressionDeclarationUse] '(' (parameters+=Expression (',' + //parameters+=Expression)*)? ')' + public Group getGroup_0() { return cGroup_0; } + + //{ConstructionExpression} + public Action getConstructionExpressionAction_0_0() { return cConstructionExpressionAction_0_0; } + + //declaration=[ExpressionDeclarationUse] + public Assignment getDeclarationAssignment_0_1() { return cDeclarationAssignment_0_1; } + + //[ExpressionDeclarationUse] + public CrossReference getDeclarationExpressionDeclarationUseCrossReference_0_1_0() { return cDeclarationExpressionDeclarationUseCrossReference_0_1_0; } + + //ID + public RuleCall getDeclarationExpressionDeclarationUseIDTerminalRuleCall_0_1_0_1() { return cDeclarationExpressionDeclarationUseIDTerminalRuleCall_0_1_0_1; } + + //'(' + public Keyword getLeftParenthesisKeyword_0_2() { return cLeftParenthesisKeyword_0_2; } + + //(parameters+=Expression (',' parameters+=Expression)*)? + public Group getGroup_0_3() { return cGroup_0_3; } + + //parameters+=Expression + public Assignment getParametersAssignment_0_3_0() { return cParametersAssignment_0_3_0; } + + //Expression + public RuleCall getParametersExpressionParserRuleCall_0_3_0_0() { return cParametersExpressionParserRuleCall_0_3_0_0; } + + //(',' parameters+=Expression)* + public Group getGroup_0_3_1() { return cGroup_0_3_1; } + + //',' + public Keyword getCommaKeyword_0_3_1_0() { return cCommaKeyword_0_3_1_0; } + + //parameters+=Expression + public Assignment getParametersAssignment_0_3_1_1() { return cParametersAssignment_0_3_1_1; } + + //Expression + public RuleCall getParametersExpressionParserRuleCall_0_3_1_1_0() { return cParametersExpressionParserRuleCall_0_3_1_1_0; } + + //')' + public Keyword getRightParenthesisKeyword_0_4() { return cRightParenthesisKeyword_0_4; } + + //declaration=[ExpressionDeclarationUse] ('[' {ArrayAccessExpression.child=current} indexes+=Expression (',' + //indexes+=Expression)* ']' | '.' {RecordAccessExpression.child=current} field=[RecordFieldDeclaration])* + public Group getGroup_1() { return cGroup_1; } + + //declaration=[ExpressionDeclarationUse] + public Assignment getDeclarationAssignment_1_0() { return cDeclarationAssignment_1_0; } + + //[ExpressionDeclarationUse] + public CrossReference getDeclarationExpressionDeclarationUseCrossReference_1_0_0() { return cDeclarationExpressionDeclarationUseCrossReference_1_0_0; } + + //ID + public RuleCall getDeclarationExpressionDeclarationUseIDTerminalRuleCall_1_0_0_1() { return cDeclarationExpressionDeclarationUseIDTerminalRuleCall_1_0_0_1; } + + //('[' {ArrayAccessExpression.child=current} indexes+=Expression (',' indexes+=Expression)* ']' | '.' + //{RecordAccessExpression.child=current} field=[RecordFieldDeclaration])* + public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; } + + //'[' {ArrayAccessExpression.child=current} indexes+=Expression (',' indexes+=Expression)* ']' + public Group getGroup_1_1_0() { return cGroup_1_1_0; } + + //'[' + public Keyword getLeftSquareBracketKeyword_1_1_0_0() { return cLeftSquareBracketKeyword_1_1_0_0; } + + //{ArrayAccessExpression.child=current} + public Action getArrayAccessExpressionChildAction_1_1_0_1() { return cArrayAccessExpressionChildAction_1_1_0_1; } + + //indexes+=Expression + public Assignment getIndexesAssignment_1_1_0_2() { return cIndexesAssignment_1_1_0_2; } + + //Expression + public RuleCall getIndexesExpressionParserRuleCall_1_1_0_2_0() { return cIndexesExpressionParserRuleCall_1_1_0_2_0; } + + //(',' indexes+=Expression)* + public Group getGroup_1_1_0_3() { return cGroup_1_1_0_3; } + + //',' + public Keyword getCommaKeyword_1_1_0_3_0() { return cCommaKeyword_1_1_0_3_0; } + + //indexes+=Expression + public Assignment getIndexesAssignment_1_1_0_3_1() { return cIndexesAssignment_1_1_0_3_1; } + + //Expression + public RuleCall getIndexesExpressionParserRuleCall_1_1_0_3_1_0() { return cIndexesExpressionParserRuleCall_1_1_0_3_1_0; } + + //']' + public Keyword getRightSquareBracketKeyword_1_1_0_4() { return cRightSquareBracketKeyword_1_1_0_4; } + + //'.' {RecordAccessExpression.child=current} field=[RecordFieldDeclaration] + public Group getGroup_1_1_1() { return cGroup_1_1_1; } + + //'.' + public Keyword getFullStopKeyword_1_1_1_0() { return cFullStopKeyword_1_1_1_0; } + + //{RecordAccessExpression.child=current} + public Action getRecordAccessExpressionChildAction_1_1_1_1() { return cRecordAccessExpressionChildAction_1_1_1_1; } + + //field=[RecordFieldDeclaration] + public Assignment getFieldAssignment_1_1_1_2() { return cFieldAssignment_1_1_1_2; } + + //[RecordFieldDeclaration] + public CrossReference getFieldRecordFieldDeclarationCrossReference_1_1_1_2_0() { return cFieldRecordFieldDeclarationCrossReference_1_1_1_2_0; } + + //ID + public RuleCall getFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1() { return cFieldRecordFieldDeclarationIDTerminalRuleCall_1_1_1_2_0_1; } + } + public class RecordExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.RecordExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cLeftCurlyBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cFieldsAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cFieldsFieldExpressionParserRuleCall_1_0 = (RuleCall)cFieldsAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cFieldsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cFieldsFieldExpressionParserRuleCall_2_1_0 = (RuleCall)cFieldsAssignment_2_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); + + //RecordExpression: + // '{' fields+=FieldExpression (',' fields+=FieldExpression)* '}'; + @Override public ParserRule getRule() { return rule; } + + //'{' fields+=FieldExpression (',' fields+=FieldExpression)* '}' + public Group getGroup() { return cGroup; } + + //'{' + public Keyword getLeftCurlyBracketKeyword_0() { return cLeftCurlyBracketKeyword_0; } + + //fields+=FieldExpression + public Assignment getFieldsAssignment_1() { return cFieldsAssignment_1; } + + //FieldExpression + public RuleCall getFieldsFieldExpressionParserRuleCall_1_0() { return cFieldsFieldExpressionParserRuleCall_1_0; } + + //(',' fields+=FieldExpression)* + public Group getGroup_2() { return cGroup_2; } + + //',' + public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; } + + //fields+=FieldExpression + public Assignment getFieldsAssignment_2_1() { return cFieldsAssignment_2_1; } + + //FieldExpression + public RuleCall getFieldsFieldExpressionParserRuleCall_2_1_0() { return cFieldsFieldExpressionParserRuleCall_2_1_0; } + + //'}' + public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; } + } + public class FieldExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.FieldExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cFieldAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cFieldRecordFieldDeclarationUseCrossReference_0_0 = (CrossReference)cFieldAssignment_0.eContents().get(0); + private final RuleCall cFieldRecordFieldDeclarationUseIDTerminalRuleCall_0_0_1 = (RuleCall)cFieldRecordFieldDeclarationUseCrossReference_0_0.eContents().get(1); + private final Keyword cEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cValueExpressionParserRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0); + + //FieldExpression: + // field=[RecordFieldDeclarationUse] '=' value=Expression // TODO : Inconsistent + //; + @Override public ParserRule getRule() { return rule; } + + ////FZ je l'ai repris + //field=[RecordFieldDeclarationUse] '=' value=Expression + public Group getGroup() { return cGroup; } + + ////FZ je l'ai repris + //field=[RecordFieldDeclarationUse] + public Assignment getFieldAssignment_0() { return cFieldAssignment_0; } + + //[RecordFieldDeclarationUse] + public CrossReference getFieldRecordFieldDeclarationUseCrossReference_0_0() { return cFieldRecordFieldDeclarationUseCrossReference_0_0; } + + //ID + public RuleCall getFieldRecordFieldDeclarationUseIDTerminalRuleCall_0_0_1() { return cFieldRecordFieldDeclarationUseIDTerminalRuleCall_0_0_1; } + + //'=' + public Keyword getEqualsSignKeyword_1() { return cEqualsSignKeyword_1; } + + //value=Expression + public Assignment getValueAssignment_2() { return cValueAssignment_2; } + + //Expression + public RuleCall getValueExpressionParserRuleCall_2_0() { return cValueExpressionParserRuleCall_2_0; } + } + public class ArrayExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ArrayExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cArrayExpressionAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Assignment cValuesAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); + private final RuleCall cValuesExpressionParserRuleCall_2_0_0 = (RuleCall)cValuesAssignment_2_0.eContents().get(0); + private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); + private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); + private final Assignment cValuesAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); + private final RuleCall cValuesExpressionParserRuleCall_2_1_1_0 = (RuleCall)cValuesAssignment_2_1_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); + + ////ArrayExpression returns Expression : + //// '[' Expression + //// ( + //// {ExplicitArrayExpression.values+=current} (',' values+=Expression)* + //// | + //// ({ImplicitArrayExpression.body+=current} '|' index=VariableDeclaration 'in' type=RangeType) + //// ) + //// ']' + ////; + //ArrayExpression: + // {ArrayExpression} '[' (values+=Expression (',' values+=Expression)*)? ']'; + @Override public ParserRule getRule() { return rule; } + + //{ArrayExpression} '[' (values+=Expression (',' values+=Expression)*)? ']' + public Group getGroup() { return cGroup; } + + //{ArrayExpression} + public Action getArrayExpressionAction_0() { return cArrayExpressionAction_0; } + + //'[' + public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; } + + //(values+=Expression (',' values+=Expression)*)? + public Group getGroup_2() { return cGroup_2; } + + //values+=Expression + public Assignment getValuesAssignment_2_0() { return cValuesAssignment_2_0; } + + //Expression + public RuleCall getValuesExpressionParserRuleCall_2_0_0() { return cValuesExpressionParserRuleCall_2_0_0; } + + //(',' values+=Expression)* + public Group getGroup_2_1() { return cGroup_2_1; } + + //',' + public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; } + + //values+=Expression + public Assignment getValuesAssignment_2_1_1() { return cValuesAssignment_2_1_1; } + + //Expression + public RuleCall getValuesExpressionParserRuleCall_2_1_1_0() { return cValuesExpressionParserRuleCall_2_1_1_0; } + + //']' + public Keyword getRightSquareBracketKeyword_3() { return cRightSquareBracketKeyword_3; } + } + public class QueueExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.QueueExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cQueueExpressionAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cLeftCurlyBracketVerticalLineKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Assignment cValuesAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); + private final RuleCall cValuesExpressionParserRuleCall_2_0_0 = (RuleCall)cValuesAssignment_2_0.eContents().get(0); + private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); + private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); + private final Assignment cValuesAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); + private final RuleCall cValuesExpressionParserRuleCall_2_1_1_0 = (RuleCall)cValuesAssignment_2_1_1.eContents().get(0); + private final Keyword cVerticalLineRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); + + //QueueExpression: + // {QueueExpression} '{|' (values+=Expression (',' values+=Expression)*)? '|}'; + @Override public ParserRule getRule() { return rule; } + + //{QueueExpression} '{|' (values+=Expression (',' values+=Expression)*)? '|}' + public Group getGroup() { return cGroup; } + + //{QueueExpression} + public Action getQueueExpressionAction_0() { return cQueueExpressionAction_0; } + + //'{|' + public Keyword getLeftCurlyBracketVerticalLineKeyword_1() { return cLeftCurlyBracketVerticalLineKeyword_1; } + + //(values+=Expression (',' values+=Expression)*)? + public Group getGroup_2() { return cGroup_2; } + + //values+=Expression + public Assignment getValuesAssignment_2_0() { return cValuesAssignment_2_0; } + + //Expression + public RuleCall getValuesExpressionParserRuleCall_2_0_0() { return cValuesExpressionParserRuleCall_2_0_0; } + + //(',' values+=Expression)* + public Group getGroup_2_1() { return cGroup_2_1; } + + //',' + public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; } + + //values+=Expression + public Assignment getValuesAssignment_2_1_1() { return cValuesAssignment_2_1_1; } + + //Expression + public RuleCall getValuesExpressionParserRuleCall_2_1_1_0() { return cValuesExpressionParserRuleCall_2_1_1_0; } + + //'|}' + public Keyword getVerticalLineRightCurlyBracketKeyword_3() { return cVerticalLineRightCurlyBracketKeyword_3; } + } + public class EnqueueExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.EnqueueExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cEnqueueKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cElementAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cElementExpressionParserRuleCall_2_0 = (RuleCall)cElementAssignment_2.eContents().get(0); + private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cQueueAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final RuleCall cQueueExpressionParserRuleCall_4_0 = (RuleCall)cQueueAssignment_4.eContents().get(0); + private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //EnqueueExpression: + // 'enqueue' '(' element=Expression ',' queue=Expression ')'; + @Override public ParserRule getRule() { return rule; } + + //'enqueue' '(' element=Expression ',' queue=Expression ')' + public Group getGroup() { return cGroup; } + + //'enqueue' + public Keyword getEnqueueKeyword_0() { return cEnqueueKeyword_0; } + + //'(' + public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } + + //element=Expression + public Assignment getElementAssignment_2() { return cElementAssignment_2; } + + //Expression + public RuleCall getElementExpressionParserRuleCall_2_0() { return cElementExpressionParserRuleCall_2_0; } + + //',' + public Keyword getCommaKeyword_3() { return cCommaKeyword_3; } + + //queue=Expression + public Assignment getQueueAssignment_4() { return cQueueAssignment_4; } + + //Expression + public RuleCall getQueueExpressionParserRuleCall_4_0() { return cQueueExpressionParserRuleCall_4_0; } + + //')' + public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; } + } + public class AppendExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.AppendExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cAppendKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cLeftAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cLeftExpressionParserRuleCall_2_0 = (RuleCall)cLeftAssignment_2.eContents().get(0); + private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cRightAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final RuleCall cRightExpressionParserRuleCall_4_0 = (RuleCall)cRightAssignment_4.eContents().get(0); + private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //AppendExpression: + // 'append' '(' left=Expression ',' right=Expression ')'; + @Override public ParserRule getRule() { return rule; } + + //'append' '(' left=Expression ',' right=Expression ')' + public Group getGroup() { return cGroup; } + + //'append' + public Keyword getAppendKeyword_0() { return cAppendKeyword_0; } + + //'(' + public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } + + //left=Expression + public Assignment getLeftAssignment_2() { return cLeftAssignment_2; } + + //Expression + public RuleCall getLeftExpressionParserRuleCall_2_0() { return cLeftExpressionParserRuleCall_2_0; } + + //',' + public Keyword getCommaKeyword_3() { return cCommaKeyword_3; } + + //right=Expression + public Assignment getRightAssignment_4() { return cRightAssignment_4; } + + //Expression + public RuleCall getRightExpressionParserRuleCall_4_0() { return cRightExpressionParserRuleCall_4_0; } + + //')' + public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; } + } + public class LiteralExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LiteralExpression"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cBooleanLiteralParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cNaturalLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //LiteralExpression: + // BooleanLiteral + // | NaturalLiteral; + @Override public ParserRule getRule() { return rule; } + + //BooleanLiteral | NaturalLiteral + public Alternatives getAlternatives() { return cAlternatives; } + + //BooleanLiteral + public RuleCall getBooleanLiteralParserRuleCall_0() { return cBooleanLiteralParserRuleCall_0; } + + //NaturalLiteral + public RuleCall getNaturalLiteralParserRuleCall_1() { return cNaturalLiteralParserRuleCall_1; } + } + public class BooleanLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.BooleanLiteral"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cTrueLiteralAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Keyword cTrueKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Action cFalseLiteralAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cFalseKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + + //BooleanLiteral: + // {TrueLiteral} 'true' | {FalseLiteral} 'false'; + @Override public ParserRule getRule() { return rule; } + + //{TrueLiteral} 'true' | {FalseLiteral} 'false' + public Alternatives getAlternatives() { return cAlternatives; } + + //{TrueLiteral} 'true' + public Group getGroup_0() { return cGroup_0; } + + //{TrueLiteral} + public Action getTrueLiteralAction_0_0() { return cTrueLiteralAction_0_0; } + + //'true' + public Keyword getTrueKeyword_0_1() { return cTrueKeyword_0_1; } + + //{FalseLiteral} 'false' + public Group getGroup_1() { return cGroup_1; } + + //{FalseLiteral} + public Action getFalseLiteralAction_1_0() { return cFalseLiteralAction_1_0; } + + //'false' + public Keyword getFalseKeyword_1_1() { return cFalseKeyword_1_1; } + } + public class NaturalLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.NaturalLiteral"); + private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cValueINTTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); + + //NaturalLiteral: + // value=INT; + @Override public ParserRule getRule() { return rule; } + + //value=INT + public Assignment getValueAssignment() { return cValueAssignment; } + + //INT + public RuleCall getValueINTTerminalRuleCall_0() { return cValueINTTerminalRuleCall_0; } + } + public class LowerBoundElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LowerBound"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cNaturalLowerBoundParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cDecimalLowerBoundParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cVariableLowerBoundParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + + //LowerBound: + // NaturalLowerBound + // | DecimalLowerBound + // | VariableLowerBound; + @Override public ParserRule getRule() { return rule; } + + //NaturalLowerBound | DecimalLowerBound | VariableLowerBound + public Alternatives getAlternatives() { return cAlternatives; } + + //NaturalLowerBound + public RuleCall getNaturalLowerBoundParserRuleCall_0() { return cNaturalLowerBoundParserRuleCall_0; } + + //DecimalLowerBound + public RuleCall getDecimalLowerBoundParserRuleCall_1() { return cDecimalLowerBoundParserRuleCall_1; } + + //VariableLowerBound + public RuleCall getVariableLowerBoundParserRuleCall_2() { return cVariableLowerBoundParserRuleCall_2; } + } + public class UpperBoundElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.UpperBound"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cNaturalUpperBoundParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cDecimalUpperBoundParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cVariableUpperBoundParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cInfiniteUpperBoundParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + + //UpperBound: + // NaturalUpperBound + // | DecimalUpperBound + // | VariableUpperBound + // | InfiniteUpperBound; + @Override public ParserRule getRule() { return rule; } + + //NaturalUpperBound | DecimalUpperBound | VariableUpperBound | InfiniteUpperBound + public Alternatives getAlternatives() { return cAlternatives; } + + //NaturalUpperBound + public RuleCall getNaturalUpperBoundParserRuleCall_0() { return cNaturalUpperBoundParserRuleCall_0; } + + //DecimalUpperBound + public RuleCall getDecimalUpperBoundParserRuleCall_1() { return cDecimalUpperBoundParserRuleCall_1; } + + //VariableUpperBound + public RuleCall getVariableUpperBoundParserRuleCall_2() { return cVariableUpperBoundParserRuleCall_2; } + + //InfiniteUpperBound + public RuleCall getInfiniteUpperBoundParserRuleCall_3() { return cInfiniteUpperBoundParserRuleCall_3; } + } + public class NaturalLowerBoundElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.NaturalLowerBound"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final Assignment cLeftAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0); + private final Keyword cLeftLeftSquareBracketKeyword_0_0_0 = (Keyword)cLeftAssignment_0_0.eContents().get(0); + private final Assignment cRightAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1); + private final Keyword cRightRightSquareBracketKeyword_0_1_0 = (Keyword)cRightAssignment_0_1.eContents().get(0); + private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cValueINTTerminalRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0); + + //NaturalLowerBound: + // (left?='[' | right?=']') value=INT; + @Override public ParserRule getRule() { return rule; } + + //(left?='[' | right?=']') value=INT + public Group getGroup() { return cGroup; } + + //(left?='[' | right?=']') + public Alternatives getAlternatives_0() { return cAlternatives_0; } + + //left?='[' + public Assignment getLeftAssignment_0_0() { return cLeftAssignment_0_0; } + + //'[' + public Keyword getLeftLeftSquareBracketKeyword_0_0_0() { return cLeftLeftSquareBracketKeyword_0_0_0; } + + //right?=']' + public Assignment getRightAssignment_0_1() { return cRightAssignment_0_1; } + + //']' + public Keyword getRightRightSquareBracketKeyword_0_1_0() { return cRightRightSquareBracketKeyword_0_1_0; } + + //value=INT + public Assignment getValueAssignment_1() { return cValueAssignment_1; } + + //INT + public RuleCall getValueINTTerminalRuleCall_1_0() { return cValueINTTerminalRuleCall_1_0; } + } + public class NaturalUpperBoundElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.NaturalUpperBound"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cValueAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cValueINTTerminalRuleCall_0_0 = (RuleCall)cValueAssignment_0.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Assignment cLeftAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0); + private final Keyword cLeftLeftSquareBracketKeyword_1_0_0 = (Keyword)cLeftAssignment_1_0.eContents().get(0); + private final Assignment cRightAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1); + private final Keyword cRightRightSquareBracketKeyword_1_1_0 = (Keyword)cRightAssignment_1_1.eContents().get(0); + + //NaturalUpperBound: + // value=INT (left?='[' | right?=']'); + @Override public ParserRule getRule() { return rule; } + + //value=INT (left?='[' | right?=']') + public Group getGroup() { return cGroup; } + + //value=INT + public Assignment getValueAssignment_0() { return cValueAssignment_0; } + + //INT + public RuleCall getValueINTTerminalRuleCall_0_0() { return cValueINTTerminalRuleCall_0_0; } + + //(left?='[' | right?=']') + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //left?='[' + public Assignment getLeftAssignment_1_0() { return cLeftAssignment_1_0; } + + //'[' + public Keyword getLeftLeftSquareBracketKeyword_1_0_0() { return cLeftLeftSquareBracketKeyword_1_0_0; } + + //right?=']' + public Assignment getRightAssignment_1_1() { return cRightAssignment_1_1; } + + //']' + public Keyword getRightRightSquareBracketKeyword_1_1_0() { return cRightRightSquareBracketKeyword_1_1_0; } + } + public class DecimalLowerBoundElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.DecimalLowerBound"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final Assignment cLeftAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0); + private final Keyword cLeftLeftSquareBracketKeyword_0_0_0 = (Keyword)cLeftAssignment_0_0.eContents().get(0); + private final Assignment cRightAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1); + private final Keyword cRightRightSquareBracketKeyword_0_1_0 = (Keyword)cRightAssignment_0_1.eContents().get(0); + private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cValueFLTTerminalRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0); + + //DecimalLowerBound: + // (left?='[' | right?=']') value=FLT; + @Override public ParserRule getRule() { return rule; } + + //(left?='[' | right?=']') value=FLT + public Group getGroup() { return cGroup; } + + //(left?='[' | right?=']') + public Alternatives getAlternatives_0() { return cAlternatives_0; } + + //left?='[' + public Assignment getLeftAssignment_0_0() { return cLeftAssignment_0_0; } + + //'[' + public Keyword getLeftLeftSquareBracketKeyword_0_0_0() { return cLeftLeftSquareBracketKeyword_0_0_0; } + + //right?=']' + public Assignment getRightAssignment_0_1() { return cRightAssignment_0_1; } + + //']' + public Keyword getRightRightSquareBracketKeyword_0_1_0() { return cRightRightSquareBracketKeyword_0_1_0; } + + //value=FLT + public Assignment getValueAssignment_1() { return cValueAssignment_1; } + + //FLT + public RuleCall getValueFLTTerminalRuleCall_1_0() { return cValueFLTTerminalRuleCall_1_0; } + } + public class DecimalUpperBoundElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.DecimalUpperBound"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cValueAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cValueFLTTerminalRuleCall_0_0 = (RuleCall)cValueAssignment_0.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Assignment cLeftAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0); + private final Keyword cLeftLeftSquareBracketKeyword_1_0_0 = (Keyword)cLeftAssignment_1_0.eContents().get(0); + private final Assignment cRightAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1); + private final Keyword cRightRightSquareBracketKeyword_1_1_0 = (Keyword)cRightAssignment_1_1.eContents().get(0); + + //DecimalUpperBound: + // value=FLT (left?='[' | right?=']'); + @Override public ParserRule getRule() { return rule; } + + //value=FLT (left?='[' | right?=']') + public Group getGroup() { return cGroup; } + + //value=FLT + public Assignment getValueAssignment_0() { return cValueAssignment_0; } + + //FLT + public RuleCall getValueFLTTerminalRuleCall_0_0() { return cValueFLTTerminalRuleCall_0_0; } + + //(left?='[' | right?=']') + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //left?='[' + public Assignment getLeftAssignment_1_0() { return cLeftAssignment_1_0; } + + //'[' + public Keyword getLeftLeftSquareBracketKeyword_1_0_0() { return cLeftLeftSquareBracketKeyword_1_0_0; } + + //right?=']' + public Assignment getRightAssignment_1_1() { return cRightAssignment_1_1; } + + //']' + public Keyword getRightRightSquareBracketKeyword_1_1_0() { return cRightRightSquareBracketKeyword_1_1_0; } + } + public class VariableLowerBoundElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.VariableLowerBound"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final Assignment cLeftAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0); + private final Keyword cLeftLeftSquareBracketKeyword_0_0_0 = (Keyword)cLeftAssignment_0_0.eContents().get(0); + private final Assignment cRightAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1); + private final Keyword cRightRightSquareBracketKeyword_0_1_0 = (Keyword)cRightAssignment_0_1.eContents().get(0); + private final Assignment cVariableAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cVariableBoundDeclarationUseCrossReference_1_0 = (CrossReference)cVariableAssignment_1.eContents().get(0); + private final RuleCall cVariableBoundDeclarationUseIDTerminalRuleCall_1_0_1 = (RuleCall)cVariableBoundDeclarationUseCrossReference_1_0.eContents().get(1); + + //VariableLowerBound: + // (left?='[' | right?=']') variable=[BoundDeclarationUse]; + @Override public ParserRule getRule() { return rule; } + + //(left?='[' | right?=']') variable=[BoundDeclarationUse] + public Group getGroup() { return cGroup; } + + //(left?='[' | right?=']') + public Alternatives getAlternatives_0() { return cAlternatives_0; } + + //left?='[' + public Assignment getLeftAssignment_0_0() { return cLeftAssignment_0_0; } + + //'[' + public Keyword getLeftLeftSquareBracketKeyword_0_0_0() { return cLeftLeftSquareBracketKeyword_0_0_0; } + + //right?=']' + public Assignment getRightAssignment_0_1() { return cRightAssignment_0_1; } + + //']' + public Keyword getRightRightSquareBracketKeyword_0_1_0() { return cRightRightSquareBracketKeyword_0_1_0; } + + //variable=[BoundDeclarationUse] + public Assignment getVariableAssignment_1() { return cVariableAssignment_1; } + + //[BoundDeclarationUse] + public CrossReference getVariableBoundDeclarationUseCrossReference_1_0() { return cVariableBoundDeclarationUseCrossReference_1_0; } + + //ID + public RuleCall getVariableBoundDeclarationUseIDTerminalRuleCall_1_0_1() { return cVariableBoundDeclarationUseIDTerminalRuleCall_1_0_1; } + } + public class VariableUpperBoundElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.VariableUpperBound"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cVariableAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cVariableBoundDeclarationUseCrossReference_0_0 = (CrossReference)cVariableAssignment_0.eContents().get(0); + private final RuleCall cVariableBoundDeclarationUseIDTerminalRuleCall_0_0_1 = (RuleCall)cVariableBoundDeclarationUseCrossReference_0_0.eContents().get(1); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Assignment cLeftAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0); + private final Keyword cLeftLeftSquareBracketKeyword_1_0_0 = (Keyword)cLeftAssignment_1_0.eContents().get(0); + private final Assignment cRightAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1); + private final Keyword cRightRightSquareBracketKeyword_1_1_0 = (Keyword)cRightAssignment_1_1.eContents().get(0); + + //VariableUpperBound: + // variable=[BoundDeclarationUse] (left?='[' | right?=']'); + @Override public ParserRule getRule() { return rule; } + + //variable=[BoundDeclarationUse] (left?='[' | right?=']') + public Group getGroup() { return cGroup; } + + //variable=[BoundDeclarationUse] + public Assignment getVariableAssignment_0() { return cVariableAssignment_0; } + + //[BoundDeclarationUse] + public CrossReference getVariableBoundDeclarationUseCrossReference_0_0() { return cVariableBoundDeclarationUseCrossReference_0_0; } + + //ID + public RuleCall getVariableBoundDeclarationUseIDTerminalRuleCall_0_0_1() { return cVariableBoundDeclarationUseIDTerminalRuleCall_0_0_1; } + + //(left?='[' | right?=']') + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //left?='[' + public Assignment getLeftAssignment_1_0() { return cLeftAssignment_1_0; } + + //'[' + public Keyword getLeftLeftSquareBracketKeyword_1_0_0() { return cLeftLeftSquareBracketKeyword_1_0_0; } + + //right?=']' + public Assignment getRightAssignment_1_1() { return cRightAssignment_1_1; } + + //']' + public Keyword getRightRightSquareBracketKeyword_1_1_0() { return cRightRightSquareBracketKeyword_1_1_0; } + } + public class InfiniteUpperBoundElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.InfiniteUpperBound"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cInfiniteUpperBoundAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cFullStopFullStopFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Keyword cLeftSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + + //InfiniteUpperBound: + // {InfiniteUpperBound} '...' '['; + @Override public ParserRule getRule() { return rule; } + + //{InfiniteUpperBound} '...' '[' + public Group getGroup() { return cGroup; } + + //{InfiniteUpperBound} + public Action getInfiniteUpperBoundAction_0() { return cInfiniteUpperBoundAction_0; } + + //'...' + public Keyword getFullStopFullStopFullStopKeyword_1() { return cFullStopFullStopFullStopKeyword_1; } + + //'[' + public Keyword getLeftSquareBracketKeyword_2() { return cLeftSquareBracketKeyword_2; } + } + public class RequirementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Requirement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cAssertKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cPropertyAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cPropertyPropertyDeclarationCrossReference_1_0 = (CrossReference)cPropertyAssignment_1.eContents().get(0); + private final RuleCall cPropertyPropertyDeclarationIDTerminalRuleCall_1_0_1 = (RuleCall)cPropertyPropertyDeclarationCrossReference_1_0.eContents().get(1); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cTrueKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cPositiveAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cPositiveSTRINGTerminalRuleCall_2_1_0 = (RuleCall)cPositiveAssignment_2_1.eContents().get(0); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cFalseKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Assignment cNegativeAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); + private final RuleCall cNegativeSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cNegativeAssignment_3_1.eContents().get(0); + + //Requirement: + // 'assert' property=[PropertyDeclaration] ('-true' positive=STRING)? ('-false' negative=STRING)?; + @Override public ParserRule getRule() { return rule; } + + //'assert' property=[PropertyDeclaration] ('-true' positive=STRING)? ('-false' negative=STRING)? + public Group getGroup() { return cGroup; } + + //'assert' + public Keyword getAssertKeyword_0() { return cAssertKeyword_0; } + + //property=[PropertyDeclaration] + public Assignment getPropertyAssignment_1() { return cPropertyAssignment_1; } + + //[PropertyDeclaration] + public CrossReference getPropertyPropertyDeclarationCrossReference_1_0() { return cPropertyPropertyDeclarationCrossReference_1_0; } + + //ID + public RuleCall getPropertyPropertyDeclarationIDTerminalRuleCall_1_0_1() { return cPropertyPropertyDeclarationIDTerminalRuleCall_1_0_1; } + + //('-true' positive=STRING)? + public Group getGroup_2() { return cGroup_2; } + + //'-true' + public Keyword getTrueKeyword_2_0() { return cTrueKeyword_2_0; } + + //positive=STRING + public Assignment getPositiveAssignment_2_1() { return cPositiveAssignment_2_1; } + + //STRING + public RuleCall getPositiveSTRINGTerminalRuleCall_2_1_0() { return cPositiveSTRINGTerminalRuleCall_2_1_0; } + + //('-false' negative=STRING)? + public Group getGroup_3() { return cGroup_3; } + + //'-false' + public Keyword getFalseKeyword_3_0() { return cFalseKeyword_3_0; } + + //negative=STRING + public Assignment getNegativeAssignment_3_1() { return cNegativeAssignment_3_1; } + + //STRING + public RuleCall getNegativeSTRINGTerminalRuleCall_3_1_0() { return cNegativeSTRINGTerminalRuleCall_3_1_0; } + } + public class PropertyDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PropertyDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cPropertyKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cIsKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cPropertyAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cPropertyPropertyParserRuleCall_3_0 = (RuleCall)cPropertyAssignment_3.eContents().get(0); + + //PropertyDeclaration: + // 'property' name=ID 'is' property=Property; + @Override public ParserRule getRule() { return rule; } + + //'property' name=ID 'is' property=Property + public Group getGroup() { return cGroup; } + + //'property' + public Keyword getPropertyKeyword_0() { return cPropertyKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + + //'is' + public Keyword getIsKeyword_2() { return cIsKeyword_2; } + + //property=Property + public Assignment getPropertyAssignment_3() { return cPropertyAssignment_3; } + + //Property + public RuleCall getPropertyPropertyParserRuleCall_3_0() { return cPropertyPropertyParserRuleCall_3_0; } + } + public class PropertyElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Property"); + private final RuleCall cQuantifiedPropertyParserRuleCall = (RuleCall)rule.eContents().get(1); + + //Property: + // QuantifiedProperty; + @Override public ParserRule getRule() { return rule; } + + //QuantifiedProperty + public RuleCall getQuantifiedPropertyParserRuleCall() { return cQuantifiedPropertyParserRuleCall; } + } + public class QuantifiedPropertyElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.QuantifiedProperty"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Alternatives cAlternatives_0_0 = (Alternatives)cGroup_0.eContents().get(0); + private final Group cGroup_0_0_0 = (Group)cAlternatives_0_0.eContents().get(0); + private final Action cAllPropertyAction_0_0_0_0 = (Action)cGroup_0_0_0.eContents().get(0); + private final Keyword cAllKeyword_0_0_0_1 = (Keyword)cGroup_0_0_0.eContents().get(1); + private final Group cGroup_0_0_1 = (Group)cAlternatives_0_0.eContents().get(1); + private final Action cExistsPropertyAction_0_0_1_0 = (Action)cGroup_0_0_1.eContents().get(0); + private final Keyword cExistsKeyword_0_0_1_1 = (Keyword)cGroup_0_0_1.eContents().get(1); + private final Assignment cVariableAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final RuleCall cVariableVariableDeclarationParserRuleCall_0_1_0 = (RuleCall)cVariableAssignment_0_1.eContents().get(0); + private final Keyword cInKeyword_0_2 = (Keyword)cGroup_0.eContents().get(2); + private final Assignment cTypeAssignment_0_3 = (Assignment)cGroup_0.eContents().get(3); + private final RuleCall cTypeRangeTypeParserRuleCall_0_3_0 = (RuleCall)cTypeAssignment_0_3.eContents().get(0); + private final Keyword cFullStopKeyword_0_4 = (Keyword)cGroup_0.eContents().get(4); + private final Assignment cChildAssignment_0_5 = (Assignment)cGroup_0.eContents().get(5); + private final RuleCall cChildQuantifiedPropertyParserRuleCall_0_5_0 = (RuleCall)cChildAssignment_0_5.eContents().get(0); + private final RuleCall cPropertyDisjunctionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //QuantifiedProperty Property: + // ({AllProperty} 'all' | {ExistsProperty} 'exists') variable=VariableDeclaration + // 'in' type=RangeType '.' child=QuantifiedProperty | PropertyDisjunction + @Override public ParserRule getRule() { return rule; } + + //({AllProperty} 'all' | {ExistsProperty} 'exists') variable=VariableDeclaration 'in' type=RangeType '.' + //child=QuantifiedProperty | PropertyDisjunction + public Alternatives getAlternatives() { return cAlternatives; } + + //({AllProperty} 'all' | {ExistsProperty} 'exists') variable=VariableDeclaration 'in' type=RangeType '.' + //child=QuantifiedProperty + public Group getGroup_0() { return cGroup_0; } + + //({AllProperty} 'all' | {ExistsProperty} 'exists') + public Alternatives getAlternatives_0_0() { return cAlternatives_0_0; } + + //{AllProperty} 'all' + public Group getGroup_0_0_0() { return cGroup_0_0_0; } + + //{AllProperty} + public Action getAllPropertyAction_0_0_0_0() { return cAllPropertyAction_0_0_0_0; } + + //'all' + public Keyword getAllKeyword_0_0_0_1() { return cAllKeyword_0_0_0_1; } + + //{ExistsProperty} 'exists' + public Group getGroup_0_0_1() { return cGroup_0_0_1; } + + //{ExistsProperty} + public Action getExistsPropertyAction_0_0_1_0() { return cExistsPropertyAction_0_0_1_0; } + + //'exists' + public Keyword getExistsKeyword_0_0_1_1() { return cExistsKeyword_0_0_1_1; } + + //variable=VariableDeclaration + public Assignment getVariableAssignment_0_1() { return cVariableAssignment_0_1; } + + //VariableDeclaration + public RuleCall getVariableVariableDeclarationParserRuleCall_0_1_0() { return cVariableVariableDeclarationParserRuleCall_0_1_0; } + + //'in' + public Keyword getInKeyword_0_2() { return cInKeyword_0_2; } + + //type=RangeType + public Assignment getTypeAssignment_0_3() { return cTypeAssignment_0_3; } + + //RangeType + public RuleCall getTypeRangeTypeParserRuleCall_0_3_0() { return cTypeRangeTypeParserRuleCall_0_3_0; } + + //'.' + public Keyword getFullStopKeyword_0_4() { return cFullStopKeyword_0_4; } + + //child=QuantifiedProperty + public Assignment getChildAssignment_0_5() { return cChildAssignment_0_5; } + + //QuantifiedProperty + public RuleCall getChildQuantifiedPropertyParserRuleCall_0_5_0() { return cChildQuantifiedPropertyParserRuleCall_0_5_0; } + + //PropertyDisjunction + public RuleCall getPropertyDisjunctionParserRuleCall_1() { return cPropertyDisjunctionParserRuleCall_1; } + } + public class PropertyDisjunctionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PropertyDisjunction"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cPropertyImplicationParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cPropertyDisjunctionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cOrKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightPropertyImplicationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //PropertyDisjunction Property: + // PropertyImplication ({PropertyDisjunction.left=current} 'or' right=PropertyImplication)* + @Override public ParserRule getRule() { return rule; } + + //PropertyImplication ({PropertyDisjunction.left=current} 'or' right=PropertyImplication)* + public Group getGroup() { return cGroup; } + + //PropertyImplication + public RuleCall getPropertyImplicationParserRuleCall_0() { return cPropertyImplicationParserRuleCall_0; } + + //({PropertyDisjunction.left=current} 'or' right=PropertyImplication)* + public Group getGroup_1() { return cGroup_1; } + + //{PropertyDisjunction.left=current} + public Action getPropertyDisjunctionLeftAction_1_0() { return cPropertyDisjunctionLeftAction_1_0; } + + //'or' + public Keyword getOrKeyword_1_1() { return cOrKeyword_1_1; } + + //right=PropertyImplication + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //PropertyImplication + public RuleCall getRightPropertyImplicationParserRuleCall_1_2_0() { return cRightPropertyImplicationParserRuleCall_1_2_0; } + } + public class PropertyImplicationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PropertyImplication"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cPropertyConjunctionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cPropertyImplicationLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cEqualsSignGreaterThanSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightPropertyImplicationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //PropertyImplication Property: + // PropertyConjunction ({PropertyImplication.left=current} '=>' right=PropertyImplication)? + @Override public ParserRule getRule() { return rule; } + + //PropertyConjunction ({PropertyImplication.left=current} '=>' right=PropertyImplication)? + public Group getGroup() { return cGroup; } + + //PropertyConjunction + public RuleCall getPropertyConjunctionParserRuleCall_0() { return cPropertyConjunctionParserRuleCall_0; } + + //({PropertyImplication.left=current} '=>' right=PropertyImplication)? + public Group getGroup_1() { return cGroup_1; } + + //{PropertyImplication.left=current} + public Action getPropertyImplicationLeftAction_1_0() { return cPropertyImplicationLeftAction_1_0; } + + //'=>' + public Keyword getEqualsSignGreaterThanSignKeyword_1_1() { return cEqualsSignGreaterThanSignKeyword_1_1; } + + //right=PropertyImplication + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //PropertyImplication + public RuleCall getRightPropertyImplicationParserRuleCall_1_2_0() { return cRightPropertyImplicationParserRuleCall_1_2_0; } + } + public class PropertyConjunctionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PropertyConjunction"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cPropertyNegationParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cPropertyConjunctionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cAndKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightPropertyNegationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //PropertyConjunction Property: + // PropertyNegation ({PropertyConjunction.left=current} 'and' right=PropertyNegation)* + @Override public ParserRule getRule() { return rule; } + + //PropertyNegation ({PropertyConjunction.left=current} 'and' right=PropertyNegation)* + public Group getGroup() { return cGroup; } + + //PropertyNegation + public RuleCall getPropertyNegationParserRuleCall_0() { return cPropertyNegationParserRuleCall_0; } + + //({PropertyConjunction.left=current} 'and' right=PropertyNegation)* + public Group getGroup_1() { return cGroup_1; } + + //{PropertyConjunction.left=current} + public Action getPropertyConjunctionLeftAction_1_0() { return cPropertyConjunctionLeftAction_1_0; } + + //'and' + public Keyword getAndKeyword_1_1() { return cAndKeyword_1_1; } + + //right=PropertyNegation + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //PropertyNegation + public RuleCall getRightPropertyNegationParserRuleCall_1_2_0() { return cRightPropertyNegationParserRuleCall_1_2_0; } + } + public class PropertyNegationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PropertyNegation"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cPropertyNegationAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Keyword cNotKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); + private final Assignment cChildAssignment_0_2 = (Assignment)cGroup_0.eContents().get(2); + private final RuleCall cChildPropertyNegationParserRuleCall_0_2_0 = (RuleCall)cChildAssignment_0_2.eContents().get(0); + private final RuleCall cAtomicPropertyParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //PropertyNegation Property: + // {PropertyNegation} 'not' child=PropertyNegation | AtomicProperty + @Override public ParserRule getRule() { return rule; } + + //{PropertyNegation} 'not' child=PropertyNegation | AtomicProperty + public Alternatives getAlternatives() { return cAlternatives; } + + //{PropertyNegation} 'not' child=PropertyNegation + public Group getGroup_0() { return cGroup_0; } + + //{PropertyNegation} + public Action getPropertyNegationAction_0_0() { return cPropertyNegationAction_0_0; } + + //'not' + public Keyword getNotKeyword_0_1() { return cNotKeyword_0_1; } + + //child=PropertyNegation + public Assignment getChildAssignment_0_2() { return cChildAssignment_0_2; } + + //PropertyNegation + public RuleCall getChildPropertyNegationParserRuleCall_0_2_0() { return cChildPropertyNegationParserRuleCall_0_2_0; } + + //AtomicProperty + public RuleCall getAtomicPropertyParserRuleCall_1() { return cAtomicPropertyParserRuleCall_1; } + } + public class AtomicPropertyElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.AtomicProperty"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cPatternPropertyParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Keyword cLeftParenthesisKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final RuleCall cPropertyParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1); + private final Keyword cRightParenthesisKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); + + //AtomicProperty Property: + // PatternProperty | '(' Property ')' + @Override public ParserRule getRule() { return rule; } + + //PatternProperty | '(' Property ')' + public Alternatives getAlternatives() { return cAlternatives; } + + //PatternProperty + public RuleCall getPatternPropertyParserRuleCall_0() { return cPatternPropertyParserRuleCall_0; } + + //'(' Property ')' + public Group getGroup_1() { return cGroup_1; } + + //'(' + public Keyword getLeftParenthesisKeyword_1_0() { return cLeftParenthesisKeyword_1_0; } + + //Property + public RuleCall getPropertyParserRuleCall_1_1() { return cPropertyParserRuleCall_1_1; } + + //')' + public Keyword getRightParenthesisKeyword_1_2() { return cRightParenthesisKeyword_1_2; } + } + public class PatternPropertyElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PatternProperty"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cLTLPatternParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cDeadlockFreePatternParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cInfinitelyOftenPatternParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cMortalPatternParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cPresencePatternParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + private final RuleCall cAbsencePatternParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); + private final RuleCall cAlwaysPatternParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); + private final RuleCall cSequencePatternParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7); + + //PatternProperty: + // LTLPattern | DeadlockFreePattern | InfinitelyOftenPattern | MortalPattern | PresencePattern | AbsencePattern | + // AlwaysPattern | SequencePattern; + @Override public ParserRule getRule() { return rule; } + + //LTLPattern | DeadlockFreePattern | InfinitelyOftenPattern | MortalPattern | PresencePattern | AbsencePattern | + //AlwaysPattern | SequencePattern + public Alternatives getAlternatives() { return cAlternatives; } + + //LTLPattern + public RuleCall getLTLPatternParserRuleCall_0() { return cLTLPatternParserRuleCall_0; } + + //DeadlockFreePattern + public RuleCall getDeadlockFreePatternParserRuleCall_1() { return cDeadlockFreePatternParserRuleCall_1; } + + //InfinitelyOftenPattern + public RuleCall getInfinitelyOftenPatternParserRuleCall_2() { return cInfinitelyOftenPatternParserRuleCall_2; } + + //MortalPattern + public RuleCall getMortalPatternParserRuleCall_3() { return cMortalPatternParserRuleCall_3; } + + //PresencePattern + public RuleCall getPresencePatternParserRuleCall_4() { return cPresencePatternParserRuleCall_4; } + + //AbsencePattern + public RuleCall getAbsencePatternParserRuleCall_5() { return cAbsencePatternParserRuleCall_5; } + + //AlwaysPattern + public RuleCall getAlwaysPatternParserRuleCall_6() { return cAlwaysPatternParserRuleCall_6; } + + //SequencePattern + public RuleCall getSequencePatternParserRuleCall_7() { return cSequencePatternParserRuleCall_7; } + } + public class LTLPatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LTLPattern"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cLtlKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cPropertyAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cPropertyLTLUnaryParserRuleCall_1_0 = (RuleCall)cPropertyAssignment_1.eContents().get(0); + + //LTLPattern: + // 'ltl' property=LTLUnary; + @Override public ParserRule getRule() { return rule; } + + //'ltl' property=LTLUnary + public Group getGroup() { return cGroup; } + + //'ltl' + public Keyword getLtlKeyword_0() { return cLtlKeyword_0; } + + //property=LTLUnary + public Assignment getPropertyAssignment_1() { return cPropertyAssignment_1; } + + //LTLUnary + public RuleCall getPropertyLTLUnaryParserRuleCall_1_0() { return cPropertyLTLUnaryParserRuleCall_1_0; } + } + public class DeadlockFreePatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.DeadlockFreePattern"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cDeadlockFreePatternAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cDeadlockfreeKeyword_1 = (Keyword)cGroup.eContents().get(1); + + //DeadlockFreePattern: + // {DeadlockFreePattern} 'deadlockfree'; + @Override public ParserRule getRule() { return rule; } + + //{DeadlockFreePattern} 'deadlockfree' + public Group getGroup() { return cGroup; } + + //{DeadlockFreePattern} + public Action getDeadlockFreePatternAction_0() { return cDeadlockFreePatternAction_0; } + + //'deadlockfree' + public Keyword getDeadlockfreeKeyword_1() { return cDeadlockfreeKeyword_1; } + } + public class InfinitelyOftenPatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.InfinitelyOftenPattern"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cInfinitelyoftenKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cSubjectAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cSubjectAtomicObservableParserRuleCall_1_0 = (RuleCall)cSubjectAssignment_1.eContents().get(0); + + //InfinitelyOftenPattern: + // 'infinitelyoften' subject=AtomicObservable; + @Override public ParserRule getRule() { return rule; } + + //'infinitelyoften' subject=AtomicObservable + public Group getGroup() { return cGroup; } + + //'infinitelyoften' + public Keyword getInfinitelyoftenKeyword_0() { return cInfinitelyoftenKeyword_0; } + + //subject=AtomicObservable + public Assignment getSubjectAssignment_1() { return cSubjectAssignment_1; } + + //AtomicObservable + public RuleCall getSubjectAtomicObservableParserRuleCall_1_0() { return cSubjectAtomicObservableParserRuleCall_1_0; } + } + public class MortalPatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.MortalPattern"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cMortalKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cSubjectAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cSubjectAtomicObservableParserRuleCall_1_0 = (RuleCall)cSubjectAssignment_1.eContents().get(0); + + //MortalPattern: + // 'mortal' subject=AtomicObservable; + @Override public ParserRule getRule() { return rule; } + + //'mortal' subject=AtomicObservable + public Group getGroup() { return cGroup; } + + //'mortal' + public Keyword getMortalKeyword_0() { return cMortalKeyword_0; } + + //subject=AtomicObservable + public Assignment getSubjectAssignment_1() { return cSubjectAssignment_1; } + + //AtomicObservable + public RuleCall getSubjectAtomicObservableParserRuleCall_1_0() { return cSubjectAtomicObservableParserRuleCall_1_0; } + } + public class PresencePatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PresencePattern"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cPresentKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cSubjectAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cSubjectAtomicObservableParserRuleCall_1_0 = (RuleCall)cSubjectAssignment_1.eContents().get(0); + private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); + private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0); + private final Keyword cLastingKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0); + private final Assignment cLastingAssignment_2_0_1 = (Assignment)cGroup_2_0.eContents().get(1); + private final RuleCall cLastingINTTerminalRuleCall_2_0_1_0 = (RuleCall)cLastingAssignment_2_0_1.eContents().get(0); + private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1); + private final Group cGroup_2_1_0 = (Group)cGroup_2_1.eContents().get(0); + private final Keyword cAfterKeyword_2_1_0_0 = (Keyword)cGroup_2_1_0.eContents().get(0); + private final Assignment cAfterAssignment_2_1_0_1 = (Assignment)cGroup_2_1_0.eContents().get(1); + private final RuleCall cAfterAtomicObservableParserRuleCall_2_1_0_1_0 = (RuleCall)cAfterAssignment_2_1_0_1.eContents().get(0); + private final Alternatives cAlternatives_2_1_1 = (Alternatives)cGroup_2_1.eContents().get(1); + private final Group cGroup_2_1_1_0 = (Group)cAlternatives_2_1_1.eContents().get(0); + private final Keyword cWithinKeyword_2_1_1_0_0 = (Keyword)cGroup_2_1_1_0.eContents().get(0); + private final Assignment cLowerAssignment_2_1_1_0_1 = (Assignment)cGroup_2_1_1_0.eContents().get(1); + private final RuleCall cLowerLowerBoundParserRuleCall_2_1_1_0_1_0 = (RuleCall)cLowerAssignment_2_1_1_0_1.eContents().get(0); + private final Keyword cCommaKeyword_2_1_1_0_2 = (Keyword)cGroup_2_1_1_0.eContents().get(2); + private final Assignment cUpperAssignment_2_1_1_0_3 = (Assignment)cGroup_2_1_1_0.eContents().get(3); + private final RuleCall cUpperUpperBoundParserRuleCall_2_1_1_0_3_0 = (RuleCall)cUpperAssignment_2_1_1_0_3.eContents().get(0); + private final Group cGroup_2_1_1_1 = (Group)cAlternatives_2_1_1.eContents().get(1); + private final Keyword cUntilKeyword_2_1_1_1_0 = (Keyword)cGroup_2_1_1_1.eContents().get(0); + private final Assignment cUntilAssignment_2_1_1_1_1 = (Assignment)cGroup_2_1_1_1.eContents().get(1); + private final RuleCall cUntilAtomicObservableParserRuleCall_2_1_1_1_1_0 = (RuleCall)cUntilAssignment_2_1_1_1_1.eContents().get(0); + private final Group cGroup_2_2 = (Group)cAlternatives_2.eContents().get(2); + private final Group cGroup_2_2_0 = (Group)cGroup_2_2.eContents().get(0); + private final Keyword cBeforeKeyword_2_2_0_0 = (Keyword)cGroup_2_2_0.eContents().get(0); + private final Assignment cBeforeAssignment_2_2_0_1 = (Assignment)cGroup_2_2_0.eContents().get(1); + private final RuleCall cBeforeAtomicObservableParserRuleCall_2_2_0_1_0 = (RuleCall)cBeforeAssignment_2_2_0_1.eContents().get(0); + private final Group cGroup_2_2_1 = (Group)cGroup_2_2.eContents().get(1); + private final Keyword cWithinKeyword_2_2_1_0 = (Keyword)cGroup_2_2_1.eContents().get(0); + private final Assignment cLowerAssignment_2_2_1_1 = (Assignment)cGroup_2_2_1.eContents().get(1); + private final RuleCall cLowerLowerBoundParserRuleCall_2_2_1_1_0 = (RuleCall)cLowerAssignment_2_2_1_1.eContents().get(0); + private final Keyword cCommaKeyword_2_2_1_2 = (Keyword)cGroup_2_2_1.eContents().get(2); + private final Assignment cUpperAssignment_2_2_1_3 = (Assignment)cGroup_2_2_1.eContents().get(3); + private final RuleCall cUpperUpperBoundParserRuleCall_2_2_1_3_0 = (RuleCall)cUpperAssignment_2_2_1_3.eContents().get(0); + private final Group cGroup_2_3 = (Group)cAlternatives_2.eContents().get(3); + private final Keyword cBetweenKeyword_2_3_0 = (Keyword)cGroup_2_3.eContents().get(0); + private final Assignment cMinAssignment_2_3_1 = (Assignment)cGroup_2_3.eContents().get(1); + private final RuleCall cMinAtomicObservableParserRuleCall_2_3_1_0 = (RuleCall)cMinAssignment_2_3_1.eContents().get(0); + private final Keyword cAndKeyword_2_3_2 = (Keyword)cGroup_2_3.eContents().get(2); + private final Assignment cMaxAssignment_2_3_3 = (Assignment)cGroup_2_3.eContents().get(3); + private final RuleCall cMaxAtomicObservableParserRuleCall_2_3_3_0 = (RuleCall)cMaxAssignment_2_3_3.eContents().get(0); + + //PresencePattern: + // 'present' subject=AtomicObservable ('lasting' lasting=INT | ('after' after=AtomicObservable) ('within' + // lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? + // | ('before' before=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound)? + // | 'between' min=AtomicObservable 'and' max=AtomicObservable)?; + @Override public ParserRule getRule() { return rule; } + + //'present' subject=AtomicObservable ('lasting' lasting=INT | ('after' after=AtomicObservable) ('within' lower=LowerBound + //',' upper=UpperBound | 'until' until=AtomicObservable)? | ('before' before=AtomicObservable) ('within' lower=LowerBound + //',' upper=UpperBound)? | 'between' min=AtomicObservable 'and' max=AtomicObservable)? + public Group getGroup() { return cGroup; } + + //'present' + public Keyword getPresentKeyword_0() { return cPresentKeyword_0; } + + //subject=AtomicObservable + public Assignment getSubjectAssignment_1() { return cSubjectAssignment_1; } + + //AtomicObservable + public RuleCall getSubjectAtomicObservableParserRuleCall_1_0() { return cSubjectAtomicObservableParserRuleCall_1_0; } + + //('lasting' lasting=INT | ('after' after=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound | 'until' + //until=AtomicObservable)? | ('before' before=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound)? | + //'between' min=AtomicObservable 'and' max=AtomicObservable)? + public Alternatives getAlternatives_2() { return cAlternatives_2; } + + //'lasting' lasting=INT + public Group getGroup_2_0() { return cGroup_2_0; } + + //'lasting' + public Keyword getLastingKeyword_2_0_0() { return cLastingKeyword_2_0_0; } + + //lasting=INT + public Assignment getLastingAssignment_2_0_1() { return cLastingAssignment_2_0_1; } + + //INT + public RuleCall getLastingINTTerminalRuleCall_2_0_1_0() { return cLastingINTTerminalRuleCall_2_0_1_0; } + + //('after' after=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? + public Group getGroup_2_1() { return cGroup_2_1; } + + //('after' after=AtomicObservable) + public Group getGroup_2_1_0() { return cGroup_2_1_0; } + + //'after' + public Keyword getAfterKeyword_2_1_0_0() { return cAfterKeyword_2_1_0_0; } + + //after=AtomicObservable + public Assignment getAfterAssignment_2_1_0_1() { return cAfterAssignment_2_1_0_1; } + + //AtomicObservable + public RuleCall getAfterAtomicObservableParserRuleCall_2_1_0_1_0() { return cAfterAtomicObservableParserRuleCall_2_1_0_1_0; } + + //('within' lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? + public Alternatives getAlternatives_2_1_1() { return cAlternatives_2_1_1; } + + //'within' lower=LowerBound ',' upper=UpperBound + public Group getGroup_2_1_1_0() { return cGroup_2_1_1_0; } + + //'within' + public Keyword getWithinKeyword_2_1_1_0_0() { return cWithinKeyword_2_1_1_0_0; } + + //lower=LowerBound + public Assignment getLowerAssignment_2_1_1_0_1() { return cLowerAssignment_2_1_1_0_1; } + + //LowerBound + public RuleCall getLowerLowerBoundParserRuleCall_2_1_1_0_1_0() { return cLowerLowerBoundParserRuleCall_2_1_1_0_1_0; } + + //',' + public Keyword getCommaKeyword_2_1_1_0_2() { return cCommaKeyword_2_1_1_0_2; } + + //upper=UpperBound + public Assignment getUpperAssignment_2_1_1_0_3() { return cUpperAssignment_2_1_1_0_3; } + + //UpperBound + public RuleCall getUpperUpperBoundParserRuleCall_2_1_1_0_3_0() { return cUpperUpperBoundParserRuleCall_2_1_1_0_3_0; } + + //'until' until=AtomicObservable + public Group getGroup_2_1_1_1() { return cGroup_2_1_1_1; } + + //'until' + public Keyword getUntilKeyword_2_1_1_1_0() { return cUntilKeyword_2_1_1_1_0; } + + //until=AtomicObservable + public Assignment getUntilAssignment_2_1_1_1_1() { return cUntilAssignment_2_1_1_1_1; } + + //AtomicObservable + public RuleCall getUntilAtomicObservableParserRuleCall_2_1_1_1_1_0() { return cUntilAtomicObservableParserRuleCall_2_1_1_1_1_0; } + + //('before' before=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound)? + public Group getGroup_2_2() { return cGroup_2_2; } + + //('before' before=AtomicObservable) + public Group getGroup_2_2_0() { return cGroup_2_2_0; } + + //'before' + public Keyword getBeforeKeyword_2_2_0_0() { return cBeforeKeyword_2_2_0_0; } + + //before=AtomicObservable + public Assignment getBeforeAssignment_2_2_0_1() { return cBeforeAssignment_2_2_0_1; } + + //AtomicObservable + public RuleCall getBeforeAtomicObservableParserRuleCall_2_2_0_1_0() { return cBeforeAtomicObservableParserRuleCall_2_2_0_1_0; } + + //('within' lower=LowerBound ',' upper=UpperBound)? + public Group getGroup_2_2_1() { return cGroup_2_2_1; } + + //'within' + public Keyword getWithinKeyword_2_2_1_0() { return cWithinKeyword_2_2_1_0; } + + //lower=LowerBound + public Assignment getLowerAssignment_2_2_1_1() { return cLowerAssignment_2_2_1_1; } + + //LowerBound + public RuleCall getLowerLowerBoundParserRuleCall_2_2_1_1_0() { return cLowerLowerBoundParserRuleCall_2_2_1_1_0; } + + //',' + public Keyword getCommaKeyword_2_2_1_2() { return cCommaKeyword_2_2_1_2; } + + //upper=UpperBound + public Assignment getUpperAssignment_2_2_1_3() { return cUpperAssignment_2_2_1_3; } + + //UpperBound + public RuleCall getUpperUpperBoundParserRuleCall_2_2_1_3_0() { return cUpperUpperBoundParserRuleCall_2_2_1_3_0; } + + //'between' min=AtomicObservable 'and' max=AtomicObservable + public Group getGroup_2_3() { return cGroup_2_3; } + + //'between' + public Keyword getBetweenKeyword_2_3_0() { return cBetweenKeyword_2_3_0; } + + //min=AtomicObservable + public Assignment getMinAssignment_2_3_1() { return cMinAssignment_2_3_1; } + + //AtomicObservable + public RuleCall getMinAtomicObservableParserRuleCall_2_3_1_0() { return cMinAtomicObservableParserRuleCall_2_3_1_0; } + + //'and' + public Keyword getAndKeyword_2_3_2() { return cAndKeyword_2_3_2; } + + //max=AtomicObservable + public Assignment getMaxAssignment_2_3_3() { return cMaxAssignment_2_3_3; } + + //AtomicObservable + public RuleCall getMaxAtomicObservableParserRuleCall_2_3_3_0() { return cMaxAtomicObservableParserRuleCall_2_3_3_0; } + } + public class AbsencePatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.AbsencePattern"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cAbsentKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cSubjectAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cSubjectAtomicObservableParserRuleCall_1_0 = (RuleCall)cSubjectAssignment_1.eContents().get(0); + private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); + private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0); + private final Group cGroup_2_0_0 = (Group)cGroup_2_0.eContents().get(0); + private final Keyword cAfterKeyword_2_0_0_0 = (Keyword)cGroup_2_0_0.eContents().get(0); + private final Assignment cAfterAssignment_2_0_0_1 = (Assignment)cGroup_2_0_0.eContents().get(1); + private final RuleCall cAfterAtomicObservableParserRuleCall_2_0_0_1_0 = (RuleCall)cAfterAssignment_2_0_0_1.eContents().get(0); + private final Alternatives cAlternatives_2_0_1 = (Alternatives)cGroup_2_0.eContents().get(1); + private final Group cGroup_2_0_1_0 = (Group)cAlternatives_2_0_1.eContents().get(0); + private final Keyword cWithinKeyword_2_0_1_0_0 = (Keyword)cGroup_2_0_1_0.eContents().get(0); + private final Assignment cLowerAssignment_2_0_1_0_1 = (Assignment)cGroup_2_0_1_0.eContents().get(1); + private final RuleCall cLowerLowerBoundParserRuleCall_2_0_1_0_1_0 = (RuleCall)cLowerAssignment_2_0_1_0_1.eContents().get(0); + private final Keyword cCommaKeyword_2_0_1_0_2 = (Keyword)cGroup_2_0_1_0.eContents().get(2); + private final Assignment cUpperAssignment_2_0_1_0_3 = (Assignment)cGroup_2_0_1_0.eContents().get(3); + private final RuleCall cUpperUpperBoundParserRuleCall_2_0_1_0_3_0 = (RuleCall)cUpperAssignment_2_0_1_0_3.eContents().get(0); + private final Group cGroup_2_0_1_1 = (Group)cAlternatives_2_0_1.eContents().get(1); + private final Keyword cUntilKeyword_2_0_1_1_0 = (Keyword)cGroup_2_0_1_1.eContents().get(0); + private final Assignment cUntilAssignment_2_0_1_1_1 = (Assignment)cGroup_2_0_1_1.eContents().get(1); + private final RuleCall cUntilAtomicObservableParserRuleCall_2_0_1_1_1_0 = (RuleCall)cUntilAssignment_2_0_1_1_1.eContents().get(0); + private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1); + private final Group cGroup_2_1_0 = (Group)cGroup_2_1.eContents().get(0); + private final Keyword cBeforeKeyword_2_1_0_0 = (Keyword)cGroup_2_1_0.eContents().get(0); + private final Assignment cBeforeAssignment_2_1_0_1 = (Assignment)cGroup_2_1_0.eContents().get(1); + private final RuleCall cBeforeAtomicObservableParserRuleCall_2_1_0_1_0 = (RuleCall)cBeforeAssignment_2_1_0_1.eContents().get(0); + private final Group cGroup_2_1_1 = (Group)cGroup_2_1.eContents().get(1); + private final Keyword cForKeyword_2_1_1_0 = (Keyword)cGroup_2_1_1.eContents().get(0); + private final Assignment cLowerAssignment_2_1_1_1 = (Assignment)cGroup_2_1_1.eContents().get(1); + private final RuleCall cLowerLowerBoundParserRuleCall_2_1_1_1_0 = (RuleCall)cLowerAssignment_2_1_1_1.eContents().get(0); + private final Keyword cCommaKeyword_2_1_1_2 = (Keyword)cGroup_2_1_1.eContents().get(2); + private final Assignment cUpperAssignment_2_1_1_3 = (Assignment)cGroup_2_1_1.eContents().get(3); + private final RuleCall cUpperUpperBoundParserRuleCall_2_1_1_3_0 = (RuleCall)cUpperAssignment_2_1_1_3.eContents().get(0); + private final Group cGroup_2_2 = (Group)cAlternatives_2.eContents().get(2); + private final Keyword cBetweenKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0); + private final Assignment cMinAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1); + private final RuleCall cMinAtomicObservableParserRuleCall_2_2_1_0 = (RuleCall)cMinAssignment_2_2_1.eContents().get(0); + private final Keyword cAndKeyword_2_2_2 = (Keyword)cGroup_2_2.eContents().get(2); + private final Assignment cMaxAssignment_2_2_3 = (Assignment)cGroup_2_2.eContents().get(3); + private final RuleCall cMaxAtomicObservableParserRuleCall_2_2_3_0 = (RuleCall)cMaxAssignment_2_2_3.eContents().get(0); + + //AbsencePattern: + // 'absent' subject=AtomicObservable (('after' after=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound | + // 'until' until=AtomicObservable)? + // | ('before' before=AtomicObservable) ('for' lower=LowerBound ',' upper=UpperBound)? + // | 'between' min=AtomicObservable 'and' max=AtomicObservable)?; + @Override public ParserRule getRule() { return rule; } + + //'absent' subject=AtomicObservable (('after' after=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound | + //'until' until=AtomicObservable)? | ('before' before=AtomicObservable) ('for' lower=LowerBound ',' upper=UpperBound)? | + //'between' min=AtomicObservable 'and' max=AtomicObservable)? + public Group getGroup() { return cGroup; } + + //'absent' + public Keyword getAbsentKeyword_0() { return cAbsentKeyword_0; } + + //subject=AtomicObservable + public Assignment getSubjectAssignment_1() { return cSubjectAssignment_1; } + + //AtomicObservable + public RuleCall getSubjectAtomicObservableParserRuleCall_1_0() { return cSubjectAtomicObservableParserRuleCall_1_0; } + + //(('after' after=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? | + //('before' before=AtomicObservable) ('for' lower=LowerBound ',' upper=UpperBound)? | 'between' min=AtomicObservable + //'and' max=AtomicObservable)? + public Alternatives getAlternatives_2() { return cAlternatives_2; } + + //('after' after=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? + public Group getGroup_2_0() { return cGroup_2_0; } + + //('after' after=AtomicObservable) + public Group getGroup_2_0_0() { return cGroup_2_0_0; } + + //'after' + public Keyword getAfterKeyword_2_0_0_0() { return cAfterKeyword_2_0_0_0; } + + //after=AtomicObservable + public Assignment getAfterAssignment_2_0_0_1() { return cAfterAssignment_2_0_0_1; } + + //AtomicObservable + public RuleCall getAfterAtomicObservableParserRuleCall_2_0_0_1_0() { return cAfterAtomicObservableParserRuleCall_2_0_0_1_0; } + + //('within' lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? + public Alternatives getAlternatives_2_0_1() { return cAlternatives_2_0_1; } + + //'within' lower=LowerBound ',' upper=UpperBound + public Group getGroup_2_0_1_0() { return cGroup_2_0_1_0; } + + //'within' + public Keyword getWithinKeyword_2_0_1_0_0() { return cWithinKeyword_2_0_1_0_0; } + + //lower=LowerBound + public Assignment getLowerAssignment_2_0_1_0_1() { return cLowerAssignment_2_0_1_0_1; } + + //LowerBound + public RuleCall getLowerLowerBoundParserRuleCall_2_0_1_0_1_0() { return cLowerLowerBoundParserRuleCall_2_0_1_0_1_0; } + + //',' + public Keyword getCommaKeyword_2_0_1_0_2() { return cCommaKeyword_2_0_1_0_2; } + + //upper=UpperBound + public Assignment getUpperAssignment_2_0_1_0_3() { return cUpperAssignment_2_0_1_0_3; } + + //UpperBound + public RuleCall getUpperUpperBoundParserRuleCall_2_0_1_0_3_0() { return cUpperUpperBoundParserRuleCall_2_0_1_0_3_0; } + + //'until' until=AtomicObservable + public Group getGroup_2_0_1_1() { return cGroup_2_0_1_1; } + + //'until' + public Keyword getUntilKeyword_2_0_1_1_0() { return cUntilKeyword_2_0_1_1_0; } + + //until=AtomicObservable + public Assignment getUntilAssignment_2_0_1_1_1() { return cUntilAssignment_2_0_1_1_1; } + + //AtomicObservable + public RuleCall getUntilAtomicObservableParserRuleCall_2_0_1_1_1_0() { return cUntilAtomicObservableParserRuleCall_2_0_1_1_1_0; } + + //('before' before=AtomicObservable) ('for' lower=LowerBound ',' upper=UpperBound)? + public Group getGroup_2_1() { return cGroup_2_1; } + + //('before' before=AtomicObservable) + public Group getGroup_2_1_0() { return cGroup_2_1_0; } + + //'before' + public Keyword getBeforeKeyword_2_1_0_0() { return cBeforeKeyword_2_1_0_0; } + + //before=AtomicObservable + public Assignment getBeforeAssignment_2_1_0_1() { return cBeforeAssignment_2_1_0_1; } + + //AtomicObservable + public RuleCall getBeforeAtomicObservableParserRuleCall_2_1_0_1_0() { return cBeforeAtomicObservableParserRuleCall_2_1_0_1_0; } + + //('for' lower=LowerBound ',' upper=UpperBound)? + public Group getGroup_2_1_1() { return cGroup_2_1_1; } + + //'for' + public Keyword getForKeyword_2_1_1_0() { return cForKeyword_2_1_1_0; } + + //lower=LowerBound + public Assignment getLowerAssignment_2_1_1_1() { return cLowerAssignment_2_1_1_1; } + + //LowerBound + public RuleCall getLowerLowerBoundParserRuleCall_2_1_1_1_0() { return cLowerLowerBoundParserRuleCall_2_1_1_1_0; } + + //',' + public Keyword getCommaKeyword_2_1_1_2() { return cCommaKeyword_2_1_1_2; } + + //upper=UpperBound + public Assignment getUpperAssignment_2_1_1_3() { return cUpperAssignment_2_1_1_3; } + + //UpperBound + public RuleCall getUpperUpperBoundParserRuleCall_2_1_1_3_0() { return cUpperUpperBoundParserRuleCall_2_1_1_3_0; } + + //'between' min=AtomicObservable 'and' max=AtomicObservable + public Group getGroup_2_2() { return cGroup_2_2; } + + //'between' + public Keyword getBetweenKeyword_2_2_0() { return cBetweenKeyword_2_2_0; } + + //min=AtomicObservable + public Assignment getMinAssignment_2_2_1() { return cMinAssignment_2_2_1; } + + //AtomicObservable + public RuleCall getMinAtomicObservableParserRuleCall_2_2_1_0() { return cMinAtomicObservableParserRuleCall_2_2_1_0; } + + //'and' + public Keyword getAndKeyword_2_2_2() { return cAndKeyword_2_2_2; } + + //max=AtomicObservable + public Assignment getMaxAssignment_2_2_3() { return cMaxAssignment_2_2_3; } + + //AtomicObservable + public RuleCall getMaxAtomicObservableParserRuleCall_2_2_3_0() { return cMaxAtomicObservableParserRuleCall_2_2_3_0; } + } + public class AlwaysPatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.AlwaysPattern"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cAlwaysKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cSubjectAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cSubjectAtomicObservableParserRuleCall_1_0 = (RuleCall)cSubjectAssignment_1.eContents().get(0); + private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); + private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0); + private final Keyword cBeforeKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0); + private final Assignment cBeforeAssignment_2_0_1 = (Assignment)cGroup_2_0.eContents().get(1); + private final RuleCall cBeforeAtomicObservableParserRuleCall_2_0_1_0 = (RuleCall)cBeforeAssignment_2_0_1.eContents().get(0); + private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1); + private final Keyword cAfterKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); + private final Assignment cAfterAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); + private final RuleCall cAfterAtomicObservableParserRuleCall_2_1_1_0 = (RuleCall)cAfterAssignment_2_1_1.eContents().get(0); + private final Group cGroup_2_1_2 = (Group)cGroup_2_1.eContents().get(2); + private final Keyword cUntilKeyword_2_1_2_0 = (Keyword)cGroup_2_1_2.eContents().get(0); + private final Assignment cUntilAssignment_2_1_2_1 = (Assignment)cGroup_2_1_2.eContents().get(1); + private final RuleCall cUntilAtomicObservableParserRuleCall_2_1_2_1_0 = (RuleCall)cUntilAssignment_2_1_2_1.eContents().get(0); + private final Group cGroup_2_2 = (Group)cAlternatives_2.eContents().get(2); + private final Keyword cBetweenKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0); + private final Assignment cMinAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1); + private final RuleCall cMinAtomicObservableParserRuleCall_2_2_1_0 = (RuleCall)cMinAssignment_2_2_1.eContents().get(0); + private final Keyword cAndKeyword_2_2_2 = (Keyword)cGroup_2_2.eContents().get(2); + private final Assignment cMaxAssignment_2_2_3 = (Assignment)cGroup_2_2.eContents().get(3); + private final RuleCall cMaxAtomicObservableParserRuleCall_2_2_3_0 = (RuleCall)cMaxAssignment_2_2_3.eContents().get(0); + + //AlwaysPattern: + // 'always' subject=AtomicObservable ('before' before=AtomicObservable | 'after' after=AtomicObservable ('until' + // until=AtomicObservable)? | 'between' min=AtomicObservable 'and' max=AtomicObservable)?; + @Override public ParserRule getRule() { return rule; } + + //'always' subject=AtomicObservable ('before' before=AtomicObservable | 'after' after=AtomicObservable ('until' + //until=AtomicObservable)? | 'between' min=AtomicObservable 'and' max=AtomicObservable)? + public Group getGroup() { return cGroup; } + + //'always' + public Keyword getAlwaysKeyword_0() { return cAlwaysKeyword_0; } + + //subject=AtomicObservable + public Assignment getSubjectAssignment_1() { return cSubjectAssignment_1; } + + //AtomicObservable + public RuleCall getSubjectAtomicObservableParserRuleCall_1_0() { return cSubjectAtomicObservableParserRuleCall_1_0; } + + //('before' before=AtomicObservable | 'after' after=AtomicObservable ('until' until=AtomicObservable)? | 'between' + //min=AtomicObservable 'and' max=AtomicObservable)? + public Alternatives getAlternatives_2() { return cAlternatives_2; } + + //'before' before=AtomicObservable + public Group getGroup_2_0() { return cGroup_2_0; } + + //'before' + public Keyword getBeforeKeyword_2_0_0() { return cBeforeKeyword_2_0_0; } + + //before=AtomicObservable + public Assignment getBeforeAssignment_2_0_1() { return cBeforeAssignment_2_0_1; } + + //AtomicObservable + public RuleCall getBeforeAtomicObservableParserRuleCall_2_0_1_0() { return cBeforeAtomicObservableParserRuleCall_2_0_1_0; } + + //'after' after=AtomicObservable ('until' until=AtomicObservable)? + public Group getGroup_2_1() { return cGroup_2_1; } + + //'after' + public Keyword getAfterKeyword_2_1_0() { return cAfterKeyword_2_1_0; } + + //after=AtomicObservable + public Assignment getAfterAssignment_2_1_1() { return cAfterAssignment_2_1_1; } + + //AtomicObservable + public RuleCall getAfterAtomicObservableParserRuleCall_2_1_1_0() { return cAfterAtomicObservableParserRuleCall_2_1_1_0; } + + //('until' until=AtomicObservable)? + public Group getGroup_2_1_2() { return cGroup_2_1_2; } + + //'until' + public Keyword getUntilKeyword_2_1_2_0() { return cUntilKeyword_2_1_2_0; } + + //until=AtomicObservable + public Assignment getUntilAssignment_2_1_2_1() { return cUntilAssignment_2_1_2_1; } + + //AtomicObservable + public RuleCall getUntilAtomicObservableParserRuleCall_2_1_2_1_0() { return cUntilAtomicObservableParserRuleCall_2_1_2_1_0; } + + //'between' min=AtomicObservable 'and' max=AtomicObservable + public Group getGroup_2_2() { return cGroup_2_2; } + + //'between' + public Keyword getBetweenKeyword_2_2_0() { return cBetweenKeyword_2_2_0; } + + //min=AtomicObservable + public Assignment getMinAssignment_2_2_1() { return cMinAssignment_2_2_1; } + + //AtomicObservable + public RuleCall getMinAtomicObservableParserRuleCall_2_2_1_0() { return cMinAtomicObservableParserRuleCall_2_2_1_0; } + + //'and' + public Keyword getAndKeyword_2_2_2() { return cAndKeyword_2_2_2; } + + //max=AtomicObservable + public Assignment getMaxAssignment_2_2_3() { return cMaxAssignment_2_2_3; } + + //AtomicObservable + public RuleCall getMaxAtomicObservableParserRuleCall_2_2_3_0() { return cMaxAtomicObservableParserRuleCall_2_2_3_0; } + } + public class SequencePatternElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.SequencePattern"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cAtomicObservableParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); + private final Keyword cLeadstoKeyword_1_0_0 = (Keyword)cGroup_1_0.eContents().get(0); + private final Action cLeadsToPatternSubjectAction_1_0_1 = (Action)cGroup_1_0.eContents().get(1); + private final Assignment cFollowerAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2); + private final RuleCall cFollowerAtomicObservableParserRuleCall_1_0_2_0 = (RuleCall)cFollowerAssignment_1_0_2.eContents().get(0); + private final Alternatives cAlternatives_1_0_3 = (Alternatives)cGroup_1_0.eContents().get(3); + private final Group cGroup_1_0_3_0 = (Group)cAlternatives_1_0_3.eContents().get(0); + private final Keyword cBeforeKeyword_1_0_3_0_0 = (Keyword)cGroup_1_0_3_0.eContents().get(0); + private final Assignment cBeforeAssignment_1_0_3_0_1 = (Assignment)cGroup_1_0_3_0.eContents().get(1); + private final RuleCall cBeforeAtomicObservableParserRuleCall_1_0_3_0_1_0 = (RuleCall)cBeforeAssignment_1_0_3_0_1.eContents().get(0); + private final Group cGroup_1_0_3_0_2 = (Group)cGroup_1_0_3_0.eContents().get(2); + private final Keyword cWithinKeyword_1_0_3_0_2_0 = (Keyword)cGroup_1_0_3_0_2.eContents().get(0); + private final Assignment cLowerAssignment_1_0_3_0_2_1 = (Assignment)cGroup_1_0_3_0_2.eContents().get(1); + private final RuleCall cLowerLowerBoundParserRuleCall_1_0_3_0_2_1_0 = (RuleCall)cLowerAssignment_1_0_3_0_2_1.eContents().get(0); + private final Keyword cCommaKeyword_1_0_3_0_2_2 = (Keyword)cGroup_1_0_3_0_2.eContents().get(2); + private final Assignment cUpperAssignment_1_0_3_0_2_3 = (Assignment)cGroup_1_0_3_0_2.eContents().get(3); + private final RuleCall cUpperUpperBoundParserRuleCall_1_0_3_0_2_3_0 = (RuleCall)cUpperAssignment_1_0_3_0_2_3.eContents().get(0); + private final Group cGroup_1_0_3_1 = (Group)cAlternatives_1_0_3.eContents().get(1); + private final Keyword cWithinKeyword_1_0_3_1_0 = (Keyword)cGroup_1_0_3_1.eContents().get(0); + private final Assignment cLowerAssignment_1_0_3_1_1 = (Assignment)cGroup_1_0_3_1.eContents().get(1); + private final RuleCall cLowerLowerBoundParserRuleCall_1_0_3_1_1_0 = (RuleCall)cLowerAssignment_1_0_3_1_1.eContents().get(0); + private final Keyword cCommaKeyword_1_0_3_1_2 = (Keyword)cGroup_1_0_3_1.eContents().get(2); + private final Assignment cUpperAssignment_1_0_3_1_3 = (Assignment)cGroup_1_0_3_1.eContents().get(3); + private final RuleCall cUpperUpperBoundParserRuleCall_1_0_3_1_3_0 = (RuleCall)cUpperAssignment_1_0_3_1_3.eContents().get(0); + private final Group cGroup_1_0_3_2 = (Group)cAlternatives_1_0_3.eContents().get(2); + private final Keyword cAfterKeyword_1_0_3_2_0 = (Keyword)cGroup_1_0_3_2.eContents().get(0); + private final Assignment cAfterAssignment_1_0_3_2_1 = (Assignment)cGroup_1_0_3_2.eContents().get(1); + private final RuleCall cAfterAtomicObservableParserRuleCall_1_0_3_2_1_0 = (RuleCall)cAfterAssignment_1_0_3_2_1.eContents().get(0); + private final Alternatives cAlternatives_1_0_3_2_2 = (Alternatives)cGroup_1_0_3_2.eContents().get(2); + private final Group cGroup_1_0_3_2_2_0 = (Group)cAlternatives_1_0_3_2_2.eContents().get(0); + private final Keyword cWithinKeyword_1_0_3_2_2_0_0 = (Keyword)cGroup_1_0_3_2_2_0.eContents().get(0); + private final Assignment cLowerAssignment_1_0_3_2_2_0_1 = (Assignment)cGroup_1_0_3_2_2_0.eContents().get(1); + private final RuleCall cLowerLowerBoundParserRuleCall_1_0_3_2_2_0_1_0 = (RuleCall)cLowerAssignment_1_0_3_2_2_0_1.eContents().get(0); + private final Keyword cCommaKeyword_1_0_3_2_2_0_2 = (Keyword)cGroup_1_0_3_2_2_0.eContents().get(2); + private final Assignment cUpperAssignment_1_0_3_2_2_0_3 = (Assignment)cGroup_1_0_3_2_2_0.eContents().get(3); + private final RuleCall cUpperUpperBoundParserRuleCall_1_0_3_2_2_0_3_0 = (RuleCall)cUpperAssignment_1_0_3_2_2_0_3.eContents().get(0); + private final Group cGroup_1_0_3_2_2_1 = (Group)cAlternatives_1_0_3_2_2.eContents().get(1); + private final Keyword cUntilKeyword_1_0_3_2_2_1_0 = (Keyword)cGroup_1_0_3_2_2_1.eContents().get(0); + private final Assignment cUntilAssignment_1_0_3_2_2_1_1 = (Assignment)cGroup_1_0_3_2_2_1.eContents().get(1); + private final RuleCall cUntilAtomicObservableParserRuleCall_1_0_3_2_2_1_1_0 = (RuleCall)cUntilAssignment_1_0_3_2_2_1_1.eContents().get(0); + private final Group cGroup_1_0_3_3 = (Group)cAlternatives_1_0_3.eContents().get(3); + private final Keyword cBetweenKeyword_1_0_3_3_0 = (Keyword)cGroup_1_0_3_3.eContents().get(0); + private final Assignment cMinAssignment_1_0_3_3_1 = (Assignment)cGroup_1_0_3_3.eContents().get(1); + private final RuleCall cMinAtomicObservableParserRuleCall_1_0_3_3_1_0 = (RuleCall)cMinAssignment_1_0_3_3_1.eContents().get(0); + private final Keyword cAndKeyword_1_0_3_3_2 = (Keyword)cGroup_1_0_3_3.eContents().get(2); + private final Assignment cMaxAssignment_1_0_3_3_3 = (Assignment)cGroup_1_0_3_3.eContents().get(3); + private final RuleCall cMaxAtomicObservableParserRuleCall_1_0_3_3_3_0 = (RuleCall)cMaxAssignment_1_0_3_3_3.eContents().get(0); + private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); + private final Keyword cPrecedesKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0); + private final Action cPrecedesPatternSubjectAction_1_1_1 = (Action)cGroup_1_1.eContents().get(1); + private final Assignment cFollowerAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); + private final RuleCall cFollowerAtomicObservableParserRuleCall_1_1_2_0 = (RuleCall)cFollowerAssignment_1_1_2.eContents().get(0); + private final Alternatives cAlternatives_1_1_3 = (Alternatives)cGroup_1_1.eContents().get(3); + private final Group cGroup_1_1_3_0 = (Group)cAlternatives_1_1_3.eContents().get(0); + private final Keyword cBeforeKeyword_1_1_3_0_0 = (Keyword)cGroup_1_1_3_0.eContents().get(0); + private final Assignment cBeforeAssignment_1_1_3_0_1 = (Assignment)cGroup_1_1_3_0.eContents().get(1); + private final RuleCall cBeforeAtomicObservableParserRuleCall_1_1_3_0_1_0 = (RuleCall)cBeforeAssignment_1_1_3_0_1.eContents().get(0); + private final Group cGroup_1_1_3_1 = (Group)cAlternatives_1_1_3.eContents().get(1); + private final Keyword cAfterKeyword_1_1_3_1_0 = (Keyword)cGroup_1_1_3_1.eContents().get(0); + private final Assignment cAfterAssignment_1_1_3_1_1 = (Assignment)cGroup_1_1_3_1.eContents().get(1); + private final RuleCall cAfterAtomicObservableParserRuleCall_1_1_3_1_1_0 = (RuleCall)cAfterAssignment_1_1_3_1_1.eContents().get(0); + private final Group cGroup_1_1_3_1_2 = (Group)cGroup_1_1_3_1.eContents().get(2); + private final Keyword cUntilKeyword_1_1_3_1_2_0 = (Keyword)cGroup_1_1_3_1_2.eContents().get(0); + private final Assignment cUntilAssignment_1_1_3_1_2_1 = (Assignment)cGroup_1_1_3_1_2.eContents().get(1); + private final RuleCall cUntilAtomicObservableParserRuleCall_1_1_3_1_2_1_0 = (RuleCall)cUntilAssignment_1_1_3_1_2_1.eContents().get(0); + private final Group cGroup_1_1_3_2 = (Group)cAlternatives_1_1_3.eContents().get(2); + private final Keyword cBetweenKeyword_1_1_3_2_0 = (Keyword)cGroup_1_1_3_2.eContents().get(0); + private final Assignment cMinAssignment_1_1_3_2_1 = (Assignment)cGroup_1_1_3_2.eContents().get(1); + private final RuleCall cMinAtomicObservableParserRuleCall_1_1_3_2_1_0 = (RuleCall)cMinAssignment_1_1_3_2_1.eContents().get(0); + private final Keyword cAndKeyword_1_1_3_2_2 = (Keyword)cGroup_1_1_3_2.eContents().get(2); + private final Assignment cMaxAssignment_1_1_3_2_3 = (Assignment)cGroup_1_1_3_2.eContents().get(3); + private final RuleCall cMaxAtomicObservableParserRuleCall_1_1_3_2_3_0 = (RuleCall)cMaxAssignment_1_1_3_2_3.eContents().get(0); + + //SequencePattern: + // AtomicObservable ('leadsto' {LeadsToPattern.subject=current} follower=AtomicObservable ('before' + // before=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound)? | 'within' lower=LowerBound ',' + // upper=UpperBound | 'after' after=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound | 'until' + // until=AtomicObservable)? + // | 'between' min=AtomicObservable 'and' max=AtomicObservable)? + // | 'precedes' {PrecedesPattern.subject=current} follower=AtomicObservable ('before' before=AtomicObservable | 'after' + // after=AtomicObservable ('until' until=AtomicObservable)? | 'between' min=AtomicObservable 'and' + // max=AtomicObservable)?); + @Override public ParserRule getRule() { return rule; } + + //AtomicObservable ('leadsto' {LeadsToPattern.subject=current} follower=AtomicObservable ('before' before=AtomicObservable + //('within' lower=LowerBound ',' upper=UpperBound)? | 'within' lower=LowerBound ',' upper=UpperBound | 'after' + //after=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? | 'between' + //min=AtomicObservable 'and' max=AtomicObservable)? | 'precedes' {PrecedesPattern.subject=current} + //follower=AtomicObservable ('before' before=AtomicObservable | 'after' after=AtomicObservable ('until' + //until=AtomicObservable)? | 'between' min=AtomicObservable 'and' max=AtomicObservable)?) + public Group getGroup() { return cGroup; } + + //AtomicObservable + public RuleCall getAtomicObservableParserRuleCall_0() { return cAtomicObservableParserRuleCall_0; } + + //('leadsto' {LeadsToPattern.subject=current} follower=AtomicObservable ('before' before=AtomicObservable ('within' + //lower=LowerBound ',' upper=UpperBound)? | 'within' lower=LowerBound ',' upper=UpperBound | 'after' + //after=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? | 'between' + //min=AtomicObservable 'and' max=AtomicObservable)? | 'precedes' {PrecedesPattern.subject=current} + //follower=AtomicObservable ('before' before=AtomicObservable | 'after' after=AtomicObservable ('until' + //until=AtomicObservable)? | 'between' min=AtomicObservable 'and' max=AtomicObservable)?) + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //'leadsto' {LeadsToPattern.subject=current} follower=AtomicObservable ('before' before=AtomicObservable ('within' + //lower=LowerBound ',' upper=UpperBound)? | 'within' lower=LowerBound ',' upper=UpperBound | 'after' + //after=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? | 'between' + //min=AtomicObservable 'and' max=AtomicObservable)? + public Group getGroup_1_0() { return cGroup_1_0; } + + //'leadsto' + public Keyword getLeadstoKeyword_1_0_0() { return cLeadstoKeyword_1_0_0; } + + //{LeadsToPattern.subject=current} + public Action getLeadsToPatternSubjectAction_1_0_1() { return cLeadsToPatternSubjectAction_1_0_1; } + + //follower=AtomicObservable + public Assignment getFollowerAssignment_1_0_2() { return cFollowerAssignment_1_0_2; } + + //AtomicObservable + public RuleCall getFollowerAtomicObservableParserRuleCall_1_0_2_0() { return cFollowerAtomicObservableParserRuleCall_1_0_2_0; } + + //('before' before=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound)? | 'within' lower=LowerBound ',' + //upper=UpperBound | 'after' after=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound | 'until' + //until=AtomicObservable)? | 'between' min=AtomicObservable 'and' max=AtomicObservable)? + public Alternatives getAlternatives_1_0_3() { return cAlternatives_1_0_3; } + + //'before' before=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound)? + public Group getGroup_1_0_3_0() { return cGroup_1_0_3_0; } + + //'before' + public Keyword getBeforeKeyword_1_0_3_0_0() { return cBeforeKeyword_1_0_3_0_0; } + + //before=AtomicObservable + public Assignment getBeforeAssignment_1_0_3_0_1() { return cBeforeAssignment_1_0_3_0_1; } + + //AtomicObservable + public RuleCall getBeforeAtomicObservableParserRuleCall_1_0_3_0_1_0() { return cBeforeAtomicObservableParserRuleCall_1_0_3_0_1_0; } + + //('within' lower=LowerBound ',' upper=UpperBound)? + public Group getGroup_1_0_3_0_2() { return cGroup_1_0_3_0_2; } + + //'within' + public Keyword getWithinKeyword_1_0_3_0_2_0() { return cWithinKeyword_1_0_3_0_2_0; } + + //lower=LowerBound + public Assignment getLowerAssignment_1_0_3_0_2_1() { return cLowerAssignment_1_0_3_0_2_1; } + + //LowerBound + public RuleCall getLowerLowerBoundParserRuleCall_1_0_3_0_2_1_0() { return cLowerLowerBoundParserRuleCall_1_0_3_0_2_1_0; } + + //',' + public Keyword getCommaKeyword_1_0_3_0_2_2() { return cCommaKeyword_1_0_3_0_2_2; } + + //upper=UpperBound + public Assignment getUpperAssignment_1_0_3_0_2_3() { return cUpperAssignment_1_0_3_0_2_3; } + + //UpperBound + public RuleCall getUpperUpperBoundParserRuleCall_1_0_3_0_2_3_0() { return cUpperUpperBoundParserRuleCall_1_0_3_0_2_3_0; } + + //'within' lower=LowerBound ',' upper=UpperBound + public Group getGroup_1_0_3_1() { return cGroup_1_0_3_1; } + + //'within' + public Keyword getWithinKeyword_1_0_3_1_0() { return cWithinKeyword_1_0_3_1_0; } + + //lower=LowerBound + public Assignment getLowerAssignment_1_0_3_1_1() { return cLowerAssignment_1_0_3_1_1; } + + //LowerBound + public RuleCall getLowerLowerBoundParserRuleCall_1_0_3_1_1_0() { return cLowerLowerBoundParserRuleCall_1_0_3_1_1_0; } + + //',' + public Keyword getCommaKeyword_1_0_3_1_2() { return cCommaKeyword_1_0_3_1_2; } + + //upper=UpperBound + public Assignment getUpperAssignment_1_0_3_1_3() { return cUpperAssignment_1_0_3_1_3; } + + //UpperBound + public RuleCall getUpperUpperBoundParserRuleCall_1_0_3_1_3_0() { return cUpperUpperBoundParserRuleCall_1_0_3_1_3_0; } + + //'after' after=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? + public Group getGroup_1_0_3_2() { return cGroup_1_0_3_2; } + + //'after' + public Keyword getAfterKeyword_1_0_3_2_0() { return cAfterKeyword_1_0_3_2_0; } + + //after=AtomicObservable + public Assignment getAfterAssignment_1_0_3_2_1() { return cAfterAssignment_1_0_3_2_1; } + + //AtomicObservable + public RuleCall getAfterAtomicObservableParserRuleCall_1_0_3_2_1_0() { return cAfterAtomicObservableParserRuleCall_1_0_3_2_1_0; } + + //('within' lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? + public Alternatives getAlternatives_1_0_3_2_2() { return cAlternatives_1_0_3_2_2; } + + //'within' lower=LowerBound ',' upper=UpperBound + public Group getGroup_1_0_3_2_2_0() { return cGroup_1_0_3_2_2_0; } + + //'within' + public Keyword getWithinKeyword_1_0_3_2_2_0_0() { return cWithinKeyword_1_0_3_2_2_0_0; } + + //lower=LowerBound + public Assignment getLowerAssignment_1_0_3_2_2_0_1() { return cLowerAssignment_1_0_3_2_2_0_1; } + + //LowerBound + public RuleCall getLowerLowerBoundParserRuleCall_1_0_3_2_2_0_1_0() { return cLowerLowerBoundParserRuleCall_1_0_3_2_2_0_1_0; } + + //',' + public Keyword getCommaKeyword_1_0_3_2_2_0_2() { return cCommaKeyword_1_0_3_2_2_0_2; } + + //upper=UpperBound + public Assignment getUpperAssignment_1_0_3_2_2_0_3() { return cUpperAssignment_1_0_3_2_2_0_3; } + + //UpperBound + public RuleCall getUpperUpperBoundParserRuleCall_1_0_3_2_2_0_3_0() { return cUpperUpperBoundParserRuleCall_1_0_3_2_2_0_3_0; } + + //'until' until=AtomicObservable + public Group getGroup_1_0_3_2_2_1() { return cGroup_1_0_3_2_2_1; } + + //'until' + public Keyword getUntilKeyword_1_0_3_2_2_1_0() { return cUntilKeyword_1_0_3_2_2_1_0; } + + //until=AtomicObservable + public Assignment getUntilAssignment_1_0_3_2_2_1_1() { return cUntilAssignment_1_0_3_2_2_1_1; } + + //AtomicObservable + public RuleCall getUntilAtomicObservableParserRuleCall_1_0_3_2_2_1_1_0() { return cUntilAtomicObservableParserRuleCall_1_0_3_2_2_1_1_0; } + + //'between' min=AtomicObservable 'and' max=AtomicObservable + public Group getGroup_1_0_3_3() { return cGroup_1_0_3_3; } + + //'between' + public Keyword getBetweenKeyword_1_0_3_3_0() { return cBetweenKeyword_1_0_3_3_0; } + + //min=AtomicObservable + public Assignment getMinAssignment_1_0_3_3_1() { return cMinAssignment_1_0_3_3_1; } + + //AtomicObservable + public RuleCall getMinAtomicObservableParserRuleCall_1_0_3_3_1_0() { return cMinAtomicObservableParserRuleCall_1_0_3_3_1_0; } + + //'and' + public Keyword getAndKeyword_1_0_3_3_2() { return cAndKeyword_1_0_3_3_2; } + + //max=AtomicObservable + public Assignment getMaxAssignment_1_0_3_3_3() { return cMaxAssignment_1_0_3_3_3; } + + //AtomicObservable + public RuleCall getMaxAtomicObservableParserRuleCall_1_0_3_3_3_0() { return cMaxAtomicObservableParserRuleCall_1_0_3_3_3_0; } + + //'precedes' {PrecedesPattern.subject=current} follower=AtomicObservable ('before' before=AtomicObservable | 'after' + //after=AtomicObservable ('until' until=AtomicObservable)? | 'between' min=AtomicObservable 'and' max=AtomicObservable)? + public Group getGroup_1_1() { return cGroup_1_1; } + + //'precedes' + public Keyword getPrecedesKeyword_1_1_0() { return cPrecedesKeyword_1_1_0; } + + //{PrecedesPattern.subject=current} + public Action getPrecedesPatternSubjectAction_1_1_1() { return cPrecedesPatternSubjectAction_1_1_1; } + + //follower=AtomicObservable + public Assignment getFollowerAssignment_1_1_2() { return cFollowerAssignment_1_1_2; } + + //AtomicObservable + public RuleCall getFollowerAtomicObservableParserRuleCall_1_1_2_0() { return cFollowerAtomicObservableParserRuleCall_1_1_2_0; } + + //('before' before=AtomicObservable | 'after' after=AtomicObservable ('until' until=AtomicObservable)? | 'between' + //min=AtomicObservable 'and' max=AtomicObservable)? + public Alternatives getAlternatives_1_1_3() { return cAlternatives_1_1_3; } + + //'before' before=AtomicObservable + public Group getGroup_1_1_3_0() { return cGroup_1_1_3_0; } + + //'before' + public Keyword getBeforeKeyword_1_1_3_0_0() { return cBeforeKeyword_1_1_3_0_0; } + + //before=AtomicObservable + public Assignment getBeforeAssignment_1_1_3_0_1() { return cBeforeAssignment_1_1_3_0_1; } + + //AtomicObservable + public RuleCall getBeforeAtomicObservableParserRuleCall_1_1_3_0_1_0() { return cBeforeAtomicObservableParserRuleCall_1_1_3_0_1_0; } + + //'after' after=AtomicObservable ('until' until=AtomicObservable)? + public Group getGroup_1_1_3_1() { return cGroup_1_1_3_1; } + + //'after' + public Keyword getAfterKeyword_1_1_3_1_0() { return cAfterKeyword_1_1_3_1_0; } + + //after=AtomicObservable + public Assignment getAfterAssignment_1_1_3_1_1() { return cAfterAssignment_1_1_3_1_1; } + + //AtomicObservable + public RuleCall getAfterAtomicObservableParserRuleCall_1_1_3_1_1_0() { return cAfterAtomicObservableParserRuleCall_1_1_3_1_1_0; } + + //('until' until=AtomicObservable)? + public Group getGroup_1_1_3_1_2() { return cGroup_1_1_3_1_2; } + + //'until' + public Keyword getUntilKeyword_1_1_3_1_2_0() { return cUntilKeyword_1_1_3_1_2_0; } + + //until=AtomicObservable + public Assignment getUntilAssignment_1_1_3_1_2_1() { return cUntilAssignment_1_1_3_1_2_1; } + + //AtomicObservable + public RuleCall getUntilAtomicObservableParserRuleCall_1_1_3_1_2_1_0() { return cUntilAtomicObservableParserRuleCall_1_1_3_1_2_1_0; } + + //'between' min=AtomicObservable 'and' max=AtomicObservable + public Group getGroup_1_1_3_2() { return cGroup_1_1_3_2; } + + //'between' + public Keyword getBetweenKeyword_1_1_3_2_0() { return cBetweenKeyword_1_1_3_2_0; } + + //min=AtomicObservable + public Assignment getMinAssignment_1_1_3_2_1() { return cMinAssignment_1_1_3_2_1; } + + //AtomicObservable + public RuleCall getMinAtomicObservableParserRuleCall_1_1_3_2_1_0() { return cMinAtomicObservableParserRuleCall_1_1_3_2_1_0; } + + //'and' + public Keyword getAndKeyword_1_1_3_2_2() { return cAndKeyword_1_1_3_2_2; } + + //max=AtomicObservable + public Assignment getMaxAssignment_1_1_3_2_3() { return cMaxAssignment_1_1_3_2_3; } + + //AtomicObservable + public RuleCall getMaxAtomicObservableParserRuleCall_1_1_3_2_3_0() { return cMaxAtomicObservableParserRuleCall_1_1_3_2_3_0; } + } + public class LTLPropertyElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LTLProperty"); + private final RuleCall cLTLQuantifiedParserRuleCall = (RuleCall)rule.eContents().get(1); + + //LTLProperty: + // LTLQuantified; + @Override public ParserRule getRule() { return rule; } + + //LTLQuantified + public RuleCall getLTLQuantifiedParserRuleCall() { return cLTLQuantifiedParserRuleCall; } + } + public class LTLQuantifiedElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LTLQuantified"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Alternatives cAlternatives_0_0 = (Alternatives)cGroup_0.eContents().get(0); + private final Group cGroup_0_0_0 = (Group)cAlternatives_0_0.eContents().get(0); + private final Action cLTLAllAction_0_0_0_0 = (Action)cGroup_0_0_0.eContents().get(0); + private final Keyword cAllKeyword_0_0_0_1 = (Keyword)cGroup_0_0_0.eContents().get(1); + private final Group cGroup_0_0_1 = (Group)cAlternatives_0_0.eContents().get(1); + private final Action cLTLExistsAction_0_0_1_0 = (Action)cGroup_0_0_1.eContents().get(0); + private final Keyword cExistsKeyword_0_0_1_1 = (Keyword)cGroup_0_0_1.eContents().get(1); + private final Assignment cIndexAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final RuleCall cIndexVariableDeclarationParserRuleCall_0_1_0 = (RuleCall)cIndexAssignment_0_1.eContents().get(0); + private final Keyword cInKeyword_0_2 = (Keyword)cGroup_0.eContents().get(2); + private final Assignment cTypeAssignment_0_3 = (Assignment)cGroup_0.eContents().get(3); + private final RuleCall cTypeRangeTypeParserRuleCall_0_3_0 = (RuleCall)cTypeAssignment_0_3.eContents().get(0); + private final Keyword cFullStopKeyword_0_4 = (Keyword)cGroup_0.eContents().get(4); + private final Assignment cChildAssignment_0_5 = (Assignment)cGroup_0.eContents().get(5); + private final RuleCall cChildLTLQuantifiedParserRuleCall_0_5_0 = (RuleCall)cChildAssignment_0_5.eContents().get(0); + private final RuleCall cLTLDisjunctionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //LTLQuantified LTLProperty: + // ({LTLAll} 'all' | {LTLExists} 'exists') index=VariableDeclaration + // 'in' type=RangeType '.' child=LTLQuantified | LTLDisjunction + @Override public ParserRule getRule() { return rule; } + + //({LTLAll} 'all' | {LTLExists} 'exists') index=VariableDeclaration 'in' type=RangeType '.' child=LTLQuantified | + //LTLDisjunction + public Alternatives getAlternatives() { return cAlternatives; } + + //({LTLAll} 'all' | {LTLExists} 'exists') index=VariableDeclaration 'in' type=RangeType '.' child=LTLQuantified + public Group getGroup_0() { return cGroup_0; } + + //({LTLAll} 'all' | {LTLExists} 'exists') + public Alternatives getAlternatives_0_0() { return cAlternatives_0_0; } + + //{LTLAll} 'all' + public Group getGroup_0_0_0() { return cGroup_0_0_0; } + + //{LTLAll} + public Action getLTLAllAction_0_0_0_0() { return cLTLAllAction_0_0_0_0; } + + //'all' + public Keyword getAllKeyword_0_0_0_1() { return cAllKeyword_0_0_0_1; } + + //{LTLExists} 'exists' + public Group getGroup_0_0_1() { return cGroup_0_0_1; } + + //{LTLExists} + public Action getLTLExistsAction_0_0_1_0() { return cLTLExistsAction_0_0_1_0; } + + //'exists' + public Keyword getExistsKeyword_0_0_1_1() { return cExistsKeyword_0_0_1_1; } + + //index=VariableDeclaration + public Assignment getIndexAssignment_0_1() { return cIndexAssignment_0_1; } + + //VariableDeclaration + public RuleCall getIndexVariableDeclarationParserRuleCall_0_1_0() { return cIndexVariableDeclarationParserRuleCall_0_1_0; } + + //'in' + public Keyword getInKeyword_0_2() { return cInKeyword_0_2; } + + //type=RangeType + public Assignment getTypeAssignment_0_3() { return cTypeAssignment_0_3; } + + //RangeType + public RuleCall getTypeRangeTypeParserRuleCall_0_3_0() { return cTypeRangeTypeParserRuleCall_0_3_0; } + + //'.' + public Keyword getFullStopKeyword_0_4() { return cFullStopKeyword_0_4; } + + //child=LTLQuantified + public Assignment getChildAssignment_0_5() { return cChildAssignment_0_5; } + + //LTLQuantified + public RuleCall getChildLTLQuantifiedParserRuleCall_0_5_0() { return cChildLTLQuantifiedParserRuleCall_0_5_0; } + + //LTLDisjunction + public RuleCall getLTLDisjunctionParserRuleCall_1() { return cLTLDisjunctionParserRuleCall_1; } + } + public class LTLDisjunctionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LTLDisjunction"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cLTLImplicationParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cLTLDisjunctionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cOrKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightLTLImplicationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //LTLDisjunction LTLProperty: + // LTLImplication ({LTLDisjunction.left=current} 'or' right=LTLImplication)* + @Override public ParserRule getRule() { return rule; } + + //LTLImplication ({LTLDisjunction.left=current} 'or' right=LTLImplication)* + public Group getGroup() { return cGroup; } + + //LTLImplication + public RuleCall getLTLImplicationParserRuleCall_0() { return cLTLImplicationParserRuleCall_0; } + + //({LTLDisjunction.left=current} 'or' right=LTLImplication)* + public Group getGroup_1() { return cGroup_1; } + + //{LTLDisjunction.left=current} + public Action getLTLDisjunctionLeftAction_1_0() { return cLTLDisjunctionLeftAction_1_0; } + + //'or' + public Keyword getOrKeyword_1_1() { return cOrKeyword_1_1; } + + //right=LTLImplication + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //LTLImplication + public RuleCall getRightLTLImplicationParserRuleCall_1_2_0() { return cRightLTLImplicationParserRuleCall_1_2_0; } + } + public class LTLImplicationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LTLImplication"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cLTLConjunctionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cLTLImplicationLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cEqualsSignGreaterThanSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightLTLImplicationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //LTLImplication LTLProperty: + // LTLConjunction ({LTLImplication.left=current} '=>' right=LTLImplication)? + @Override public ParserRule getRule() { return rule; } + + //LTLConjunction ({LTLImplication.left=current} '=>' right=LTLImplication)? + public Group getGroup() { return cGroup; } + + //LTLConjunction + public RuleCall getLTLConjunctionParserRuleCall_0() { return cLTLConjunctionParserRuleCall_0; } + + //({LTLImplication.left=current} '=>' right=LTLImplication)? + public Group getGroup_1() { return cGroup_1; } + + //{LTLImplication.left=current} + public Action getLTLImplicationLeftAction_1_0() { return cLTLImplicationLeftAction_1_0; } + + //'=>' + public Keyword getEqualsSignGreaterThanSignKeyword_1_1() { return cEqualsSignGreaterThanSignKeyword_1_1; } + + //right=LTLImplication + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //LTLImplication + public RuleCall getRightLTLImplicationParserRuleCall_1_2_0() { return cRightLTLImplicationParserRuleCall_1_2_0; } + } + public class LTLConjunctionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LTLConjunction"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cLTLBinaryParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cLTLConjunctionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cAndKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightLTLBinaryParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //LTLConjunction LTLProperty: + // LTLBinary ({LTLConjunction.left=current} 'and' right=LTLBinary)* + @Override public ParserRule getRule() { return rule; } + + //LTLBinary ({LTLConjunction.left=current} 'and' right=LTLBinary)* + public Group getGroup() { return cGroup; } + + //LTLBinary + public RuleCall getLTLBinaryParserRuleCall_0() { return cLTLBinaryParserRuleCall_0; } + + //({LTLConjunction.left=current} 'and' right=LTLBinary)* + public Group getGroup_1() { return cGroup_1; } + + //{LTLConjunction.left=current} + public Action getLTLConjunctionLeftAction_1_0() { return cLTLConjunctionLeftAction_1_0; } + + //'and' + public Keyword getAndKeyword_1_1() { return cAndKeyword_1_1; } + + //right=LTLBinary + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //LTLBinary + public RuleCall getRightLTLBinaryParserRuleCall_1_2_0() { return cRightLTLBinaryParserRuleCall_1_2_0; } + } + public class LTLBinaryElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LTLBinary"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cLTLUnaryParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); + private final Action cLTLUntilLeftAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0); + private final Keyword cUntilKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1); + private final Assignment cRightAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2); + private final RuleCall cRightLTLUnaryParserRuleCall_1_0_2_0 = (RuleCall)cRightAssignment_1_0_2.eContents().get(0); + private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); + private final Action cLTLReleaseLeftAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0); + private final Keyword cReleaseKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); + private final Assignment cRightAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); + private final RuleCall cRightLTLUnaryParserRuleCall_1_1_2_0 = (RuleCall)cRightAssignment_1_1_2.eContents().get(0); + + //LTLBinary LTLProperty: + // LTLUnary ({LTLUntil.left=current} 'until' right=LTLUnary | {LTLRelease.left=current} 'release' right=LTLUnary)? + @Override public ParserRule getRule() { return rule; } + + //LTLUnary ({LTLUntil.left=current} 'until' right=LTLUnary | {LTLRelease.left=current} 'release' right=LTLUnary)? + public Group getGroup() { return cGroup; } + + //LTLUnary + public RuleCall getLTLUnaryParserRuleCall_0() { return cLTLUnaryParserRuleCall_0; } + + //({LTLUntil.left=current} 'until' right=LTLUnary | {LTLRelease.left=current} 'release' right=LTLUnary)? + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //{LTLUntil.left=current} 'until' right=LTLUnary + public Group getGroup_1_0() { return cGroup_1_0; } + + //{LTLUntil.left=current} + public Action getLTLUntilLeftAction_1_0_0() { return cLTLUntilLeftAction_1_0_0; } + + //'until' + public Keyword getUntilKeyword_1_0_1() { return cUntilKeyword_1_0_1; } + + //right=LTLUnary + public Assignment getRightAssignment_1_0_2() { return cRightAssignment_1_0_2; } + + //LTLUnary + public RuleCall getRightLTLUnaryParserRuleCall_1_0_2_0() { return cRightLTLUnaryParserRuleCall_1_0_2_0; } + + //{LTLRelease.left=current} 'release' right=LTLUnary + public Group getGroup_1_1() { return cGroup_1_1; } + + //{LTLRelease.left=current} + public Action getLTLReleaseLeftAction_1_1_0() { return cLTLReleaseLeftAction_1_1_0; } + + //'release' + public Keyword getReleaseKeyword_1_1_1() { return cReleaseKeyword_1_1_1; } + + //right=LTLUnary + public Assignment getRightAssignment_1_1_2() { return cRightAssignment_1_1_2; } + + //LTLUnary + public RuleCall getRightLTLUnaryParserRuleCall_1_1_2_0() { return cRightLTLUnaryParserRuleCall_1_1_2_0; } + } + public class LTLUnaryElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LTLUnary"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Alternatives cAlternatives_0_0 = (Alternatives)cGroup_0.eContents().get(0); + private final Group cGroup_0_0_0 = (Group)cAlternatives_0_0.eContents().get(0); + private final Action cLTLUnaryNegationAction_0_0_0_0 = (Action)cGroup_0_0_0.eContents().get(0); + private final Keyword cNotKeyword_0_0_0_1 = (Keyword)cGroup_0_0_0.eContents().get(1); + private final Group cGroup_0_0_1 = (Group)cAlternatives_0_0.eContents().get(1); + private final Action cLTLUnaryNextAction_0_0_1_0 = (Action)cGroup_0_0_1.eContents().get(0); + private final Keyword cNextKeyword_0_0_1_1 = (Keyword)cGroup_0_0_1.eContents().get(1); + private final Group cGroup_0_0_2 = (Group)cAlternatives_0_0.eContents().get(2); + private final Action cLTLUnaryAlwaysAction_0_0_2_0 = (Action)cGroup_0_0_2.eContents().get(0); + private final Keyword cLeftSquareBracketRightSquareBracketKeyword_0_0_2_1 = (Keyword)cGroup_0_0_2.eContents().get(1); + private final Group cGroup_0_0_3 = (Group)cAlternatives_0_0.eContents().get(3); + private final Action cLTLUnaryEventuallyAction_0_0_3_0 = (Action)cGroup_0_0_3.eContents().get(0); + private final Keyword cLessThanSignGreaterThanSignKeyword_0_0_3_1 = (Keyword)cGroup_0_0_3.eContents().get(1); + private final Assignment cOperandAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final RuleCall cOperandLTLUnaryParserRuleCall_0_1_0 = (RuleCall)cOperandAssignment_0_1.eContents().get(0); + private final RuleCall cAtomicLTLParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //LTLUnary LTLProperty: + // ({LTLUnaryNegation} 'not' | {LTLUnaryNext} 'next' | {LTLUnaryAlways} '[]' | {LTLUnaryEventually} '<>') + // operand=LTLUnary | AtomicLTL + @Override public ParserRule getRule() { return rule; } + + //({LTLUnaryNegation} 'not' | {LTLUnaryNext} 'next' | {LTLUnaryAlways} '[]' | {LTLUnaryEventually} '<>') operand=LTLUnary + //| AtomicLTL + public Alternatives getAlternatives() { return cAlternatives; } + + //({LTLUnaryNegation} 'not' | {LTLUnaryNext} 'next' | {LTLUnaryAlways} '[]' | {LTLUnaryEventually} '<>') operand=LTLUnary + public Group getGroup_0() { return cGroup_0; } + + //({LTLUnaryNegation} 'not' | {LTLUnaryNext} 'next' | {LTLUnaryAlways} '[]' | {LTLUnaryEventually} '<>') + public Alternatives getAlternatives_0_0() { return cAlternatives_0_0; } + + //{LTLUnaryNegation} 'not' + public Group getGroup_0_0_0() { return cGroup_0_0_0; } + + //{LTLUnaryNegation} + public Action getLTLUnaryNegationAction_0_0_0_0() { return cLTLUnaryNegationAction_0_0_0_0; } + + //'not' + public Keyword getNotKeyword_0_0_0_1() { return cNotKeyword_0_0_0_1; } + + //{LTLUnaryNext} 'next' + public Group getGroup_0_0_1() { return cGroup_0_0_1; } + + //{LTLUnaryNext} + public Action getLTLUnaryNextAction_0_0_1_0() { return cLTLUnaryNextAction_0_0_1_0; } + + //'next' + public Keyword getNextKeyword_0_0_1_1() { return cNextKeyword_0_0_1_1; } + + //{LTLUnaryAlways} '[]' + public Group getGroup_0_0_2() { return cGroup_0_0_2; } + + //{LTLUnaryAlways} + public Action getLTLUnaryAlwaysAction_0_0_2_0() { return cLTLUnaryAlwaysAction_0_0_2_0; } + + //'[]' + public Keyword getLeftSquareBracketRightSquareBracketKeyword_0_0_2_1() { return cLeftSquareBracketRightSquareBracketKeyword_0_0_2_1; } + + //{LTLUnaryEventually} '<>' + public Group getGroup_0_0_3() { return cGroup_0_0_3; } + + //{LTLUnaryEventually} + public Action getLTLUnaryEventuallyAction_0_0_3_0() { return cLTLUnaryEventuallyAction_0_0_3_0; } + + //'<>' + public Keyword getLessThanSignGreaterThanSignKeyword_0_0_3_1() { return cLessThanSignGreaterThanSignKeyword_0_0_3_1; } + + //operand=LTLUnary + public Assignment getOperandAssignment_0_1() { return cOperandAssignment_0_1; } + + //LTLUnary + public RuleCall getOperandLTLUnaryParserRuleCall_0_1_0() { return cOperandLTLUnaryParserRuleCall_0_1_0; } + + //AtomicLTL + public RuleCall getAtomicLTLParserRuleCall_1() { return cAtomicLTLParserRuleCall_1; } + } + public class AtomicLTLElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.AtomicLTL"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cLTLVariableAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Assignment cDeclarationAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final CrossReference cDeclarationPropertyDeclarationUseCrossReference_0_1_0 = (CrossReference)cDeclarationAssignment_0_1.eContents().get(0); + private final RuleCall cDeclarationPropertyDeclarationUseIDTerminalRuleCall_0_1_0_1 = (RuleCall)cDeclarationPropertyDeclarationUseCrossReference_0_1_0.eContents().get(1); + private final RuleCall cObservableEventParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2); + private final Keyword cLeftParenthesisKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final RuleCall cLTLPropertyParserRuleCall_2_1 = (RuleCall)cGroup_2.eContents().get(1); + private final Keyword cRightParenthesisKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2); + + //AtomicLTL LTLProperty: + // {LTLVariable} declaration=[PropertyDeclarationUse] | ObservableEvent + // | '(' LTLProperty ')' + @Override public ParserRule getRule() { return rule; } + + //{LTLVariable} declaration=[PropertyDeclarationUse] | ObservableEvent | '(' LTLProperty ')' + public Alternatives getAlternatives() { return cAlternatives; } + + //{LTLVariable} declaration=[PropertyDeclarationUse] + public Group getGroup_0() { return cGroup_0; } + + //{LTLVariable} + public Action getLTLVariableAction_0_0() { return cLTLVariableAction_0_0; } + + //declaration=[PropertyDeclarationUse] + public Assignment getDeclarationAssignment_0_1() { return cDeclarationAssignment_0_1; } + + //[PropertyDeclarationUse] + public CrossReference getDeclarationPropertyDeclarationUseCrossReference_0_1_0() { return cDeclarationPropertyDeclarationUseCrossReference_0_1_0; } + + //ID + public RuleCall getDeclarationPropertyDeclarationUseIDTerminalRuleCall_0_1_0_1() { return cDeclarationPropertyDeclarationUseIDTerminalRuleCall_0_1_0_1; } + + //ObservableEvent + public RuleCall getObservableEventParserRuleCall_1() { return cObservableEventParserRuleCall_1; } + + //'(' LTLProperty ')' + public Group getGroup_2() { return cGroup_2; } + + //'(' + public Keyword getLeftParenthesisKeyword_2_0() { return cLeftParenthesisKeyword_2_0; } + + //LTLProperty + public RuleCall getLTLPropertyParserRuleCall_2_1() { return cLTLPropertyParserRuleCall_2_1; } + + //')' + public Keyword getRightParenthesisKeyword_2_2() { return cRightParenthesisKeyword_2_2; } + } + public class StateEventElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.StateEvent"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cEnterStateEventParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cLeaveStateEventParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //StateEvent: + // EnterStateEvent + // | LeaveStateEvent; + @Override public ParserRule getRule() { return rule; } + + //EnterStateEvent | LeaveStateEvent + public Alternatives getAlternatives() { return cAlternatives; } + + //EnterStateEvent + public RuleCall getEnterStateEventParserRuleCall_0() { return cEnterStateEventParserRuleCall_0; } + + //LeaveStateEvent + public RuleCall getLeaveStateEventParserRuleCall_1() { return cLeaveStateEventParserRuleCall_1; } + } + public class EnterStateEventElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.EnterStateEvent"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cEnterKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cSubjectAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cSubjectAtomicObservableParserRuleCall_1_0 = (RuleCall)cSubjectAssignment_1.eContents().get(0); + + //EnterStateEvent: + // 'enter' subject=AtomicObservable; + @Override public ParserRule getRule() { return rule; } + + //'enter' subject=AtomicObservable + public Group getGroup() { return cGroup; } + + //'enter' + public Keyword getEnterKeyword_0() { return cEnterKeyword_0; } + + //subject=AtomicObservable + public Assignment getSubjectAssignment_1() { return cSubjectAssignment_1; } + + //AtomicObservable + public RuleCall getSubjectAtomicObservableParserRuleCall_1_0() { return cSubjectAtomicObservableParserRuleCall_1_0; } + } + public class LeaveStateEventElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.LeaveStateEvent"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cLeaveKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cSubjectAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cSubjectAtomicObservableParserRuleCall_1_0 = (RuleCall)cSubjectAssignment_1.eContents().get(0); + + //LeaveStateEvent: + // 'leave' subject=AtomicObservable; + @Override public ParserRule getRule() { return rule; } + + //'leave' subject=AtomicObservable + public Group getGroup() { return cGroup; } + + //'leave' + public Keyword getLeaveKeyword_0() { return cLeaveKeyword_0; } + + //subject=AtomicObservable + public Assignment getSubjectAssignment_1() { return cSubjectAssignment_1; } + + //AtomicObservable + public RuleCall getSubjectAtomicObservableParserRuleCall_1_0() { return cSubjectAtomicObservableParserRuleCall_1_0; } + } + public class ObservableElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Observable"); + private final RuleCall cObservableDisjunctionParserRuleCall = (RuleCall)rule.eContents().get(1); + + //Observable: + // ObservableDisjunction; + @Override public ParserRule getRule() { return rule; } + + //ObservableDisjunction + public RuleCall getObservableDisjunctionParserRuleCall() { return cObservableDisjunctionParserRuleCall; } + } + public class ObservableDisjunctionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ObservableDisjunction"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cObservableImplicationParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cObservableDisjunctionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cOrKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightObservableImplicationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //ObservableDisjunction Observable: + // ObservableImplication ({ObservableDisjunction.left=current} 'or' right=ObservableImplication)* + @Override public ParserRule getRule() { return rule; } + + //ObservableImplication ({ObservableDisjunction.left=current} 'or' right=ObservableImplication)* + public Group getGroup() { return cGroup; } + + //ObservableImplication + public RuleCall getObservableImplicationParserRuleCall_0() { return cObservableImplicationParserRuleCall_0; } + + //({ObservableDisjunction.left=current} 'or' right=ObservableImplication)* + public Group getGroup_1() { return cGroup_1; } + + //{ObservableDisjunction.left=current} + public Action getObservableDisjunctionLeftAction_1_0() { return cObservableDisjunctionLeftAction_1_0; } + + //'or' + public Keyword getOrKeyword_1_1() { return cOrKeyword_1_1; } + + //right=ObservableImplication + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //ObservableImplication + public RuleCall getRightObservableImplicationParserRuleCall_1_2_0() { return cRightObservableImplicationParserRuleCall_1_2_0; } + } + public class ObservableImplicationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ObservableImplication"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cObservableConjunctionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cObservableImplicationLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cEqualsSignGreaterThanSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightObservableImplicationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //ObservableImplication Observable: + // ObservableConjunction ({ObservableImplication.left=current} '=>' right=ObservableImplication)? + @Override public ParserRule getRule() { return rule; } + + //ObservableConjunction ({ObservableImplication.left=current} '=>' right=ObservableImplication)? + public Group getGroup() { return cGroup; } + + //ObservableConjunction + public RuleCall getObservableConjunctionParserRuleCall_0() { return cObservableConjunctionParserRuleCall_0; } + + //({ObservableImplication.left=current} '=>' right=ObservableImplication)? + public Group getGroup_1() { return cGroup_1; } + + //{ObservableImplication.left=current} + public Action getObservableImplicationLeftAction_1_0() { return cObservableImplicationLeftAction_1_0; } + + //'=>' + public Keyword getEqualsSignGreaterThanSignKeyword_1_1() { return cEqualsSignGreaterThanSignKeyword_1_1; } + + //right=ObservableImplication + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //ObservableImplication + public RuleCall getRightObservableImplicationParserRuleCall_1_2_0() { return cRightObservableImplicationParserRuleCall_1_2_0; } + } + public class ObservableConjunctionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ObservableConjunction"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cObservableNegationParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cObservableConjunctionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cAndKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightObservableNegationParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //ObservableConjunction Observable: + // ObservableNegation ({ObservableConjunction.left=current} 'and' right=ObservableNegation)* + @Override public ParserRule getRule() { return rule; } + + //ObservableNegation ({ObservableConjunction.left=current} 'and' right=ObservableNegation)* + public Group getGroup() { return cGroup; } + + //ObservableNegation + public RuleCall getObservableNegationParserRuleCall_0() { return cObservableNegationParserRuleCall_0; } + + //({ObservableConjunction.left=current} 'and' right=ObservableNegation)* + public Group getGroup_1() { return cGroup_1; } + + //{ObservableConjunction.left=current} + public Action getObservableConjunctionLeftAction_1_0() { return cObservableConjunctionLeftAction_1_0; } + + //'and' + public Keyword getAndKeyword_1_1() { return cAndKeyword_1_1; } + + //right=ObservableNegation + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //ObservableNegation + public RuleCall getRightObservableNegationParserRuleCall_1_2_0() { return cRightObservableNegationParserRuleCall_1_2_0; } + } + public class ObservableNegationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ObservableNegation"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cObservableNegationAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Keyword cNotKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); + private final Assignment cChildAssignment_0_2 = (Assignment)cGroup_0.eContents().get(2); + private final RuleCall cChildObservableNegationParserRuleCall_0_2_0 = (RuleCall)cChildAssignment_0_2.eContents().get(0); + private final RuleCall cAtomicObservableParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //ObservableNegation Observable: + // {ObservableNegation} 'not' child=ObservableNegation | AtomicObservable + @Override public ParserRule getRule() { return rule; } + + //{ObservableNegation} 'not' child=ObservableNegation | AtomicObservable + public Alternatives getAlternatives() { return cAlternatives; } + + //{ObservableNegation} 'not' child=ObservableNegation + public Group getGroup_0() { return cGroup_0; } + + //{ObservableNegation} + public Action getObservableNegationAction_0_0() { return cObservableNegationAction_0_0; } + + //'not' + public Keyword getNotKeyword_0_1() { return cNotKeyword_0_1; } + + //child=ObservableNegation + public Assignment getChildAssignment_0_2() { return cChildAssignment_0_2; } + + //ObservableNegation + public RuleCall getChildObservableNegationParserRuleCall_0_2_0() { return cChildObservableNegationParserRuleCall_0_2_0; } + + //AtomicObservable + public RuleCall getAtomicObservableParserRuleCall_1() { return cAtomicObservableParserRuleCall_1; } + } + public class AtomicObservableElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.AtomicObservable"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0); + private final RuleCall cObservableParserRuleCall_0_1 = (RuleCall)cGroup_0.eContents().get(1); + private final Keyword cRightParenthesisKeyword_0_2 = (Keyword)cGroup_0.eContents().get(2); + private final RuleCall cObservableEventParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //AtomicObservable Observable: + // '(' Observable ')' | ObservableEvent + @Override public ParserRule getRule() { return rule; } + + //'(' Observable ')' | ObservableEvent + public Alternatives getAlternatives() { return cAlternatives; } + + //'(' Observable ')' + public Group getGroup_0() { return cGroup_0; } + + //'(' + public Keyword getLeftParenthesisKeyword_0_0() { return cLeftParenthesisKeyword_0_0; } + + //Observable + public RuleCall getObservableParserRuleCall_0_1() { return cObservableParserRuleCall_0_1; } + + //')' + public Keyword getRightParenthesisKeyword_0_2() { return cRightParenthesisKeyword_0_2; } + + //ObservableEvent + public RuleCall getObservableEventParserRuleCall_1() { return cObservableEventParserRuleCall_1; } + } + public class ObservableEventElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ObservableEvent"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cPathEventParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cStateEventParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //ObservableEvent: + // PathEvent | StateEvent; + @Override public ParserRule getRule() { return rule; } + + //PathEvent | StateEvent + public Alternatives getAlternatives() { return cAlternatives; } + + //PathEvent + public RuleCall getPathEventParserRuleCall_0() { return cPathEventParserRuleCall_0; } + + //StateEvent + public RuleCall getStateEventParserRuleCall_1() { return cStateEventParserRuleCall_1; } + } + public class PathEventElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PathEvent"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cPathAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cPathPathParserRuleCall_0_0 = (RuleCall)cPathAssignment_0.eContents().get(0); + private final Assignment cItemAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cItemSubjectParserRuleCall_1_0 = (RuleCall)cItemAssignment_1.eContents().get(0); + + //PathEvent: + // path=Path item=Subject; + @Override public ParserRule getRule() { return rule; } + + //path=Path item=Subject + public Group getGroup() { return cGroup; } + + //path=Path + public Assignment getPathAssignment_0() { return cPathAssignment_0; } + + //Path + public RuleCall getPathPathParserRuleCall_0_0() { return cPathPathParserRuleCall_0_0; } + + //item=Subject + public Assignment getItemAssignment_1() { return cItemAssignment_1; } + + //Subject + public RuleCall getItemSubjectParserRuleCall_1_0() { return cItemSubjectParserRuleCall_1_0; } + } + public class PathElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Path"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cItemsAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cItemsPathItemParserRuleCall_0_0 = (RuleCall)cItemsAssignment_0.eContents().get(0); + private final Keyword cSolidusKeyword_1 = (Keyword)cGroup.eContents().get(1); + + //Path: + // (items+=PathItem '/')+; + @Override public ParserRule getRule() { return rule; } + + //(items+=PathItem '/')+ + public Group getGroup() { return cGroup; } + + //items+=PathItem + public Assignment getItemsAssignment_0() { return cItemsAssignment_0; } + + //PathItem + public RuleCall getItemsPathItemParserRuleCall_0_0() { return cItemsPathItemParserRuleCall_0_0; } + + //'/' + public Keyword getSolidusKeyword_1() { return cSolidusKeyword_1; } + } + public class PathItemElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.PathItem"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cNaturalItemParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cNamedItemParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //PathItem: + // NaturalItem | NamedItem; + @Override public ParserRule getRule() { return rule; } + + //NaturalItem | NamedItem + public Alternatives getAlternatives() { return cAlternatives; } + + //NaturalItem + public RuleCall getNaturalItemParserRuleCall_0() { return cNaturalItemParserRuleCall_0; } + + //NamedItem + public RuleCall getNamedItemParserRuleCall_1() { return cNamedItemParserRuleCall_1; } + } + public class NaturalItemElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.NaturalItem"); + private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cValueINTTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); + + //NaturalItem: + // value=INT; + @Override public ParserRule getRule() { return rule; } + + //value=INT + public Assignment getValueAssignment() { return cValueAssignment; } + + //INT + public RuleCall getValueINTTerminalRuleCall_0() { return cValueINTTerminalRuleCall_0; } + } + public class NamedItemElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.NamedItem"); + private final Assignment cDeclarationAssignment = (Assignment)rule.eContents().get(1); + private final CrossReference cDeclarationPathDeclarationUseCrossReference_0 = (CrossReference)cDeclarationAssignment.eContents().get(0); + private final RuleCall cDeclarationPathDeclarationUseIDTerminalRuleCall_0_1 = (RuleCall)cDeclarationPathDeclarationUseCrossReference_0.eContents().get(1); + + //NamedItem: + // declaration=[PathDeclarationUse]; + @Override public ParserRule getRule() { return rule; } + + //declaration=[PathDeclarationUse] + public Assignment getDeclarationAssignment() { return cDeclarationAssignment; } + + //[PathDeclarationUse] + public CrossReference getDeclarationPathDeclarationUseCrossReference_0() { return cDeclarationPathDeclarationUseCrossReference_0; } + + //ID + public RuleCall getDeclarationPathDeclarationUseIDTerminalRuleCall_0_1() { return cDeclarationPathDeclarationUseIDTerminalRuleCall_0_1; } + } + public class SubjectElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.Subject"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cStateSubjectParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cValueSubjectParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cTagSubjectParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cEventSubjectParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + + //Subject: + // StateSubject | ValueSubject | TagSubject | EventSubject; + @Override public ParserRule getRule() { return rule; } + + //StateSubject | ValueSubject | TagSubject | EventSubject + public Alternatives getAlternatives() { return cAlternatives; } + + //StateSubject + public RuleCall getStateSubjectParserRuleCall_0() { return cStateSubjectParserRuleCall_0; } + + //ValueSubject + public RuleCall getValueSubjectParserRuleCall_1() { return cValueSubjectParserRuleCall_1; } + + //TagSubject + public RuleCall getTagSubjectParserRuleCall_2() { return cTagSubjectParserRuleCall_2; } + + //EventSubject + public RuleCall getEventSubjectParserRuleCall_3() { return cEventSubjectParserRuleCall_3; } + } + public class StateSubjectElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.StateSubject"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cStateKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cStateAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cStateStateDeclarationCrossReference_1_0 = (CrossReference)cStateAssignment_1.eContents().get(0); + private final RuleCall cStateStateDeclarationIDTerminalRuleCall_1_0_1 = (RuleCall)cStateStateDeclarationCrossReference_1_0.eContents().get(1); + + //StateSubject: + // 'state' state=[StateDeclaration]; + @Override public ParserRule getRule() { return rule; } + + //'state' state=[StateDeclaration] + public Group getGroup() { return cGroup; } + + //'state' + public Keyword getStateKeyword_0() { return cStateKeyword_0; } + + //state=[StateDeclaration] + public Assignment getStateAssignment_1() { return cStateAssignment_1; } + + //[StateDeclaration] + public CrossReference getStateStateDeclarationCrossReference_1_0() { return cStateStateDeclarationCrossReference_1_0; } + + //ID + public RuleCall getStateStateDeclarationIDTerminalRuleCall_1_0_1() { return cStateStateDeclarationIDTerminalRuleCall_1_0_1; } + } + public class ValueSubjectElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ValueSubject"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cValueKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cValueAtomicExpressionParserRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0); + + //ValueSubject: + // 'value' value=AtomicExpression; + @Override public ParserRule getRule() { return rule; } + + //'value' value=AtomicExpression + public Group getGroup() { return cGroup; } + + //'value' + public Keyword getValueKeyword_0() { return cValueKeyword_0; } + + //value=AtomicExpression + public Assignment getValueAssignment_1() { return cValueAssignment_1; } + + //AtomicExpression + public RuleCall getValueAtomicExpressionParserRuleCall_1_0() { return cValueAtomicExpressionParserRuleCall_1_0; } + } + public class TagSubjectElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.TagSubject"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cTagKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cTagAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cTagTaggedStatementCrossReference_1_0 = (CrossReference)cTagAssignment_1.eContents().get(0); + private final RuleCall cTagTaggedStatementIDTerminalRuleCall_1_0_1 = (RuleCall)cTagTaggedStatementCrossReference_1_0.eContents().get(1); + + //TagSubject: + // 'tag' tag=[TaggedStatement]; + @Override public ParserRule getRule() { return rule; } + + //'tag' tag=[TaggedStatement] + public Group getGroup() { return cGroup; } + + //'tag' + public Keyword getTagKeyword_0() { return cTagKeyword_0; } + + //tag=[TaggedStatement] + public Assignment getTagAssignment_1() { return cTagAssignment_1; } + + //[TaggedStatement] + public CrossReference getTagTaggedStatementCrossReference_1_0() { return cTagTaggedStatementCrossReference_1_0; } + + //ID + public RuleCall getTagTaggedStatementIDTerminalRuleCall_1_0_1() { return cTagTaggedStatementIDTerminalRuleCall_1_0_1; } + } + public class EventSubjectElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.EventSubject"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cEventKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cEventAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cEventIDTerminalRuleCall_1_0 = (RuleCall)cEventAssignment_1.eContents().get(0); + + //EventSubject: + // 'event' event=ID; + @Override public ParserRule getRule() { return rule; } + + //'event' event=ID + public Group getGroup() { return cGroup; } + + //'event' + public Keyword getEventKeyword_0() { return cEventKeyword_0; } + + //event=ID + public Assignment getEventAssignment_1() { return cEventAssignment_1; } + + //ID + public RuleCall getEventIDTerminalRuleCall_1_0() { return cEventIDTerminalRuleCall_1_0; } + } + + + private final ModelElements pModel; + private final RootDeclarationElements pRootDeclaration; + private final RootElements pRoot; + private final NamedElementElements pNamedElement; + private final TypeDeclarationUseElements pTypeDeclarationUse; + private final ConstantDeclarationUseElements pConstantDeclarationUse; + private final ExpressionDeclarationUseElements pExpressionDeclarationUse; + private final ReferenceDeclarationUseElements pReferenceDeclarationUse; + private final UnionTagDeclarationUseElements pUnionTagDeclarationUse; + private final RecordFieldDeclarationUseElements pRecordFieldDeclarationUse; + private final PatternDeclarationUseElements pPatternDeclarationUse; + private final BoundDeclarationUseElements pBoundDeclarationUse; + private final PathDeclarationUseElements pPathDeclarationUse; + private final PropertyDeclarationUseElements pPropertyDeclarationUse; + private final ImportDeclarationElements pImportDeclaration; + private final DeclarationElements pDeclaration; + private final ParameterizedDeclarationElements pParameterizedDeclaration; + private final FunctionDeclarationElements pFunctionDeclaration; + private final TypeDeclarationElements pTypeDeclaration; + private final ChannelDeclarationElements pChannelDeclaration; + private final ChannelTypeElements pChannelType; + private final TypeElements pType; + private final TupleTypeElements pTupleType; + private final BasicTypeElements pBasicType; + private final RangeTypeElements pRangeType; + private final UnionTypeElements pUnionType; + private final UnionTagsElements pUnionTags; + private final UnionTagDeclarationElements pUnionTagDeclaration; + private final RecordTypeElements pRecordType; + private final RecordFieldsElements pRecordFields; + private final RecordFieldDeclarationElements pRecordFieldDeclaration; + private final QueueTypeElements pQueueType; + private final ArrayTypeElements pArrayType; + private final ReferencedTypeElements pReferencedType; + private final ConstantDeclarationElements pConstantDeclaration; + private final ProcessDeclarationElements pProcessDeclaration; + private final StateDeclarationElements pStateDeclaration; + private final TransitionSourceElements pTransitionSource; + private final TransitionElements pTransition; + private final ComponentDeclarationElements pComponentDeclaration; + private final PortsDeclarationElements pPortsDeclaration; + private final PortDeclarationElements pPortDeclaration; + private final LocalPortsDeclarationElements pLocalPortsDeclaration; + private final ParametersDeclarationElements pParametersDeclaration; + private final ParameterDeclarationElements pParameterDeclaration; + private final VariablesDeclarationElements pVariablesDeclaration; + private final VariableDeclarationElements pVariableDeclaration; + private final PriorityDeclarationElements pPriorityDeclaration; + private final PriorityGroupElements pPriorityGroup; + private final UnlessStatementElements pUnlessStatement; + private final StatementChoiceElements pStatementChoice; + private final StatementSequenceElements pStatementSequence; + private final StatementElements pStatement; + private final BlockStatementElements pBlockStatement; + private final ReturnStatementElements pReturnStatement; + private final NullStatementElements pNullStatement; + private final TaggedStatementElements pTaggedStatement; + private final PatternStatementElements pPatternStatement; + private final PatternElements pPattern; + private final AnyPatternElements pAnyPattern; + private final ConstantPatternElements pConstantPattern; + private final IntegerPatternElements pIntegerPattern; + private final IdentifierPatternElements pIdentifierPattern; + private final ConditionalStatementElements pConditionalStatement; + private final ExtendedConditionalStatementElements pExtendedConditionalStatement; + private final SelectStatementElements pSelectStatement; + private final WhileStatementElements pWhileStatement; + private final ForeachStatementElements pForeachStatement; + private final ToStatementElements pToStatement; + private final CaseStatementElements pCaseStatement; + private final LoopStatementElements pLoopStatement; + private final OnStatementElements pOnStatement; + private final WaitStatementElements pWaitStatement; + private final CompositionElements pComposition; + private final BlockElements pBlock; + private final CompositeBlockElements pCompositeBlock; + private final InstanceDeclarationElements pInstanceDeclaration; + private final PortSetElements pPortSet; + private final ComponentInstanceElements pComponentInstance; + private final ExpressionElements pExpression; + private final QuantifiedExpressionElements pQuantifiedExpression; + private final ConditionalElements pConditional; + private final DisjunctionElements pDisjunction; + private final ImplicationElements pImplication; + private final ConjunctionElements pConjunction; + private final ComparisonElements pComparison; + private final AdditionElements pAddition; + private final SubstractionElements pSubstraction; + private final MultiplicationElements pMultiplication; + private final DivisionElements pDivision; + private final ModuloElements pModulo; + private final UnaryExpressionElements pUnaryExpression; + private final ProjectionElements pProjection; + private final ValueExpressionElements pValueExpression; + private final AtomicExpressionElements pAtomicExpression; + private final ReferenceExpressionElements pReferenceExpression; + private final IdentifierExpressionElements pIdentifierExpression; + private final RecordExpressionElements pRecordExpression; + private final FieldExpressionElements pFieldExpression; + private final ArrayExpressionElements pArrayExpression; + private final QueueExpressionElements pQueueExpression; + private final EnqueueExpressionElements pEnqueueExpression; + private final AppendExpressionElements pAppendExpression; + private final LiteralExpressionElements pLiteralExpression; + private final BooleanLiteralElements pBooleanLiteral; + private final NaturalLiteralElements pNaturalLiteral; + private final LowerBoundElements pLowerBound; + private final UpperBoundElements pUpperBound; + private final NaturalLowerBoundElements pNaturalLowerBound; + private final NaturalUpperBoundElements pNaturalUpperBound; + private final DecimalLowerBoundElements pDecimalLowerBound; + private final DecimalUpperBoundElements pDecimalUpperBound; + private final VariableLowerBoundElements pVariableLowerBound; + private final VariableUpperBoundElements pVariableUpperBound; + private final InfiniteUpperBoundElements pInfiniteUpperBound; + private final RequirementElements pRequirement; + private final PropertyDeclarationElements pPropertyDeclaration; + private final PropertyElements pProperty; + private final QuantifiedPropertyElements pQuantifiedProperty; + private final PropertyDisjunctionElements pPropertyDisjunction; + private final PropertyImplicationElements pPropertyImplication; + private final PropertyConjunctionElements pPropertyConjunction; + private final PropertyNegationElements pPropertyNegation; + private final AtomicPropertyElements pAtomicProperty; + private final PatternPropertyElements pPatternProperty; + private final LTLPatternElements pLTLPattern; + private final DeadlockFreePatternElements pDeadlockFreePattern; + private final InfinitelyOftenPatternElements pInfinitelyOftenPattern; + private final MortalPatternElements pMortalPattern; + private final PresencePatternElements pPresencePattern; + private final AbsencePatternElements pAbsencePattern; + private final AlwaysPatternElements pAlwaysPattern; + private final SequencePatternElements pSequencePattern; + private final LTLPropertyElements pLTLProperty; + private final LTLQuantifiedElements pLTLQuantified; + private final LTLDisjunctionElements pLTLDisjunction; + private final LTLImplicationElements pLTLImplication; + private final LTLConjunctionElements pLTLConjunction; + private final LTLBinaryElements pLTLBinary; + private final LTLUnaryElements pLTLUnary; + private final AtomicLTLElements pAtomicLTL; + private final StateEventElements pStateEvent; + private final EnterStateEventElements pEnterStateEvent; + private final LeaveStateEventElements pLeaveStateEvent; + private final ObservableElements pObservable; + private final ObservableDisjunctionElements pObservableDisjunction; + private final ObservableImplicationElements pObservableImplication; + private final ObservableConjunctionElements pObservableConjunction; + private final ObservableNegationElements pObservableNegation; + private final AtomicObservableElements pAtomicObservable; + private final ObservableEventElements pObservableEvent; + private final PathEventElements pPathEvent; + private final PathElements pPath; + private final PathItemElements pPathItem; + private final NaturalItemElements pNaturalItem; + private final NamedItemElements pNamedItem; + private final SubjectElements pSubject; + private final StateSubjectElements pStateSubject; + private final ValueSubjectElements pValueSubject; + private final TagSubjectElements pTagSubject; + private final EventSubjectElements pEventSubject; + private final TerminalRule tINT; + private final TerminalRule tID; + private final TerminalRule tFLT; + + private final Grammar grammar; + + private final TerminalsGrammarAccess gaTerminals; + + @Inject + public FiacreGrammarAccess(GrammarProvider grammarProvider, + TerminalsGrammarAccess gaTerminals) { + this.grammar = internalFindGrammar(grammarProvider); + this.gaTerminals = gaTerminals; + this.pModel = new ModelElements(); + this.pRootDeclaration = new RootDeclarationElements(); + this.pRoot = new RootElements(); + this.pNamedElement = new NamedElementElements(); + this.pTypeDeclarationUse = new TypeDeclarationUseElements(); + this.pConstantDeclarationUse = new ConstantDeclarationUseElements(); + this.pExpressionDeclarationUse = new ExpressionDeclarationUseElements(); + this.pReferenceDeclarationUse = new ReferenceDeclarationUseElements(); + this.pUnionTagDeclarationUse = new UnionTagDeclarationUseElements(); + this.pRecordFieldDeclarationUse = new RecordFieldDeclarationUseElements(); + this.pPatternDeclarationUse = new PatternDeclarationUseElements(); + this.pBoundDeclarationUse = new BoundDeclarationUseElements(); + this.pPathDeclarationUse = new PathDeclarationUseElements(); + this.pPropertyDeclarationUse = new PropertyDeclarationUseElements(); + this.pImportDeclaration = new ImportDeclarationElements(); + this.pDeclaration = new DeclarationElements(); + this.pParameterizedDeclaration = new ParameterizedDeclarationElements(); + this.pFunctionDeclaration = new FunctionDeclarationElements(); + this.pTypeDeclaration = new TypeDeclarationElements(); + this.pChannelDeclaration = new ChannelDeclarationElements(); + this.pChannelType = new ChannelTypeElements(); + this.pType = new TypeElements(); + this.pTupleType = new TupleTypeElements(); + this.pBasicType = new BasicTypeElements(); + this.pRangeType = new RangeTypeElements(); + this.pUnionType = new UnionTypeElements(); + this.pUnionTags = new UnionTagsElements(); + this.pUnionTagDeclaration = new UnionTagDeclarationElements(); + this.pRecordType = new RecordTypeElements(); + this.pRecordFields = new RecordFieldsElements(); + this.pRecordFieldDeclaration = new RecordFieldDeclarationElements(); + this.pQueueType = new QueueTypeElements(); + this.pArrayType = new ArrayTypeElements(); + this.pReferencedType = new ReferencedTypeElements(); + this.pConstantDeclaration = new ConstantDeclarationElements(); + this.pProcessDeclaration = new ProcessDeclarationElements(); + this.pStateDeclaration = new StateDeclarationElements(); + this.pTransitionSource = new TransitionSourceElements(); + this.pTransition = new TransitionElements(); + this.pComponentDeclaration = new ComponentDeclarationElements(); + this.pPortsDeclaration = new PortsDeclarationElements(); + this.pPortDeclaration = new PortDeclarationElements(); + this.pLocalPortsDeclaration = new LocalPortsDeclarationElements(); + this.pParametersDeclaration = new ParametersDeclarationElements(); + this.pParameterDeclaration = new ParameterDeclarationElements(); + this.pVariablesDeclaration = new VariablesDeclarationElements(); + this.pVariableDeclaration = new VariableDeclarationElements(); + this.pPriorityDeclaration = new PriorityDeclarationElements(); + this.pPriorityGroup = new PriorityGroupElements(); + this.pUnlessStatement = new UnlessStatementElements(); + this.pStatementChoice = new StatementChoiceElements(); + this.pStatementSequence = new StatementSequenceElements(); + this.pStatement = new StatementElements(); + this.pBlockStatement = new BlockStatementElements(); + this.pReturnStatement = new ReturnStatementElements(); + this.pNullStatement = new NullStatementElements(); + this.pTaggedStatement = new TaggedStatementElements(); + this.pPatternStatement = new PatternStatementElements(); + this.pPattern = new PatternElements(); + this.pAnyPattern = new AnyPatternElements(); + this.pConstantPattern = new ConstantPatternElements(); + this.pIntegerPattern = new IntegerPatternElements(); + this.pIdentifierPattern = new IdentifierPatternElements(); + this.pConditionalStatement = new ConditionalStatementElements(); + this.pExtendedConditionalStatement = new ExtendedConditionalStatementElements(); + this.pSelectStatement = new SelectStatementElements(); + this.pWhileStatement = new WhileStatementElements(); + this.pForeachStatement = new ForeachStatementElements(); + this.pToStatement = new ToStatementElements(); + this.pCaseStatement = new CaseStatementElements(); + this.pLoopStatement = new LoopStatementElements(); + this.pOnStatement = new OnStatementElements(); + this.pWaitStatement = new WaitStatementElements(); + this.pComposition = new CompositionElements(); + this.pBlock = new BlockElements(); + this.pCompositeBlock = new CompositeBlockElements(); + this.pInstanceDeclaration = new InstanceDeclarationElements(); + this.pPortSet = new PortSetElements(); + this.pComponentInstance = new ComponentInstanceElements(); + this.pExpression = new ExpressionElements(); + this.pQuantifiedExpression = new QuantifiedExpressionElements(); + this.pConditional = new ConditionalElements(); + this.pDisjunction = new DisjunctionElements(); + this.pImplication = new ImplicationElements(); + this.pConjunction = new ConjunctionElements(); + this.pComparison = new ComparisonElements(); + this.pAddition = new AdditionElements(); + this.pSubstraction = new SubstractionElements(); + this.pMultiplication = new MultiplicationElements(); + this.pDivision = new DivisionElements(); + this.pModulo = new ModuloElements(); + this.pUnaryExpression = new UnaryExpressionElements(); + this.pProjection = new ProjectionElements(); + this.pValueExpression = new ValueExpressionElements(); + this.pAtomicExpression = new AtomicExpressionElements(); + this.pReferenceExpression = new ReferenceExpressionElements(); + this.pIdentifierExpression = new IdentifierExpressionElements(); + this.pRecordExpression = new RecordExpressionElements(); + this.pFieldExpression = new FieldExpressionElements(); + this.pArrayExpression = new ArrayExpressionElements(); + this.pQueueExpression = new QueueExpressionElements(); + this.pEnqueueExpression = new EnqueueExpressionElements(); + this.pAppendExpression = new AppendExpressionElements(); + this.pLiteralExpression = new LiteralExpressionElements(); + this.pBooleanLiteral = new BooleanLiteralElements(); + this.pNaturalLiteral = new NaturalLiteralElements(); + this.pLowerBound = new LowerBoundElements(); + this.pUpperBound = new UpperBoundElements(); + this.pNaturalLowerBound = new NaturalLowerBoundElements(); + this.pNaturalUpperBound = new NaturalUpperBoundElements(); + this.pDecimalLowerBound = new DecimalLowerBoundElements(); + this.pDecimalUpperBound = new DecimalUpperBoundElements(); + this.pVariableLowerBound = new VariableLowerBoundElements(); + this.pVariableUpperBound = new VariableUpperBoundElements(); + this.pInfiniteUpperBound = new InfiniteUpperBoundElements(); + this.pRequirement = new RequirementElements(); + this.pPropertyDeclaration = new PropertyDeclarationElements(); + this.pProperty = new PropertyElements(); + this.pQuantifiedProperty = new QuantifiedPropertyElements(); + this.pPropertyDisjunction = new PropertyDisjunctionElements(); + this.pPropertyImplication = new PropertyImplicationElements(); + this.pPropertyConjunction = new PropertyConjunctionElements(); + this.pPropertyNegation = new PropertyNegationElements(); + this.pAtomicProperty = new AtomicPropertyElements(); + this.pPatternProperty = new PatternPropertyElements(); + this.pLTLPattern = new LTLPatternElements(); + this.pDeadlockFreePattern = new DeadlockFreePatternElements(); + this.pInfinitelyOftenPattern = new InfinitelyOftenPatternElements(); + this.pMortalPattern = new MortalPatternElements(); + this.pPresencePattern = new PresencePatternElements(); + this.pAbsencePattern = new AbsencePatternElements(); + this.pAlwaysPattern = new AlwaysPatternElements(); + this.pSequencePattern = new SequencePatternElements(); + this.pLTLProperty = new LTLPropertyElements(); + this.pLTLQuantified = new LTLQuantifiedElements(); + this.pLTLDisjunction = new LTLDisjunctionElements(); + this.pLTLImplication = new LTLImplicationElements(); + this.pLTLConjunction = new LTLConjunctionElements(); + this.pLTLBinary = new LTLBinaryElements(); + this.pLTLUnary = new LTLUnaryElements(); + this.pAtomicLTL = new AtomicLTLElements(); + this.pStateEvent = new StateEventElements(); + this.pEnterStateEvent = new EnterStateEventElements(); + this.pLeaveStateEvent = new LeaveStateEventElements(); + this.pObservable = new ObservableElements(); + this.pObservableDisjunction = new ObservableDisjunctionElements(); + this.pObservableImplication = new ObservableImplicationElements(); + this.pObservableConjunction = new ObservableConjunctionElements(); + this.pObservableNegation = new ObservableNegationElements(); + this.pAtomicObservable = new AtomicObservableElements(); + this.pObservableEvent = new ObservableEventElements(); + this.pPathEvent = new PathEventElements(); + this.pPath = new PathElements(); + this.pPathItem = new PathItemElements(); + this.pNaturalItem = new NaturalItemElements(); + this.pNamedItem = new NamedItemElements(); + this.pSubject = new SubjectElements(); + this.pStateSubject = new StateSubjectElements(); + this.pValueSubject = new ValueSubjectElements(); + this.pTagSubject = new TagSubjectElements(); + this.pEventSubject = new EventSubjectElements(); + this.tINT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.INT"); + this.tID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.ID"); + this.tFLT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irit.fiacre.xtext.Fiacre.FLT"); + } + + protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { + Grammar grammar = grammarProvider.getGrammar(this); + while (grammar != null) { + if ("fr.irit.fiacre.xtext.Fiacre".equals(grammar.getName())) { + return grammar; + } + List grammars = grammar.getUsedGrammars(); + if (!grammars.isEmpty()) { + grammar = grammars.iterator().next(); + } else { + return null; + } + } + return grammar; + } + + @Override + public Grammar getGrammar() { + return grammar; + } + + + public TerminalsGrammarAccess getTerminalsGrammarAccess() { + return gaTerminals; + } + + + //Model: + // {Model} imports+=ImportDeclaration* (declarations+=Declaration | requirements+=Requirement + // / * added alternative root * / | root+=Root)* + // // ((root=[RootDeclaration])? (declarations+=Declaration | requirements+=Requirement)*) + //; + public ModelElements getModelAccess() { + return pModel; + } + + public ParserRule getModelRule() { + return getModelAccess().getRule(); + } + + //RootDeclaration: + // ComponentDeclaration + // | ProcessDeclaration; + public RootDeclarationElements getRootDeclarationAccess() { + return pRootDeclaration; + } + + public ParserRule getRootDeclarationRule() { + return getRootDeclarationAccess().getRule(); + } + + //Root: + // {Root} declaration=[RootDeclaration] ('>' (observed+=[RootDeclaration] ('|' observed+=[RootDeclaration])*))?; + public RootElements getRootAccess() { + return pRoot; + } + + public ParserRule getRootRule() { + return getRootAccess().getRule(); + } + + //NamedElement: + // Declaration + // //| GenericDeclaration + // | PortDeclaration + // | ParameterDeclaration + // | VariableDeclaration + // | StateDeclaration + // | RecordFieldDeclaration + // | UnionTagDeclaration + // //ajout Faiez + // // | TagDeclaration + //; + public NamedElementElements getNamedElementAccess() { + return pNamedElement; + } + + public ParserRule getNamedElementRule() { + return getNamedElementAccess().getRule(); + } + + //TypeDeclarationUse: + // TypeDeclaration + // //| GenericTypeDeclaration + // | ChannelDeclaration + // //| GenericConstantDeclaration + //; + public TypeDeclarationUseElements getTypeDeclarationUseAccess() { + return pTypeDeclarationUse; + } + + public ParserRule getTypeDeclarationUseRule() { + return getTypeDeclarationUseAccess().getRule(); + } + + //ConstantDeclarationUse: + // ConstantDeclaration + // //| GenericConstantDeclaration + //; + public ConstantDeclarationUseElements getConstantDeclarationUseAccess() { + return pConstantDeclarationUse; + } + + public ParserRule getConstantDeclarationUseRule() { + return getConstantDeclarationUseAccess().getRule(); + } + + //ExpressionDeclarationUse: + // VariableDeclaration + // | ConstantDeclaration + // //| GenericConstantDeclaration + // | ParameterDeclaration + // | PortDeclaration + // | UnionTagDeclaration + // //| GenericDeclaration + // | FunctionDeclaration; + public ExpressionDeclarationUseElements getExpressionDeclarationUseAccess() { + return pExpressionDeclarationUse; + } + + public ParserRule getExpressionDeclarationUseRule() { + return getExpressionDeclarationUseAccess().getRule(); + } + + //ReferenceDeclarationUse: + // VariableDeclaration + // | ParameterDeclaration; + public ReferenceDeclarationUseElements getReferenceDeclarationUseAccess() { + return pReferenceDeclarationUse; + } + + public ParserRule getReferenceDeclarationUseRule() { + return getReferenceDeclarationUseAccess().getRule(); + } + + //UnionTagDeclarationUse: + // UnionTagDeclaration + // //| GenericUnionTagDeclaration + //; + public UnionTagDeclarationUseElements getUnionTagDeclarationUseAccess() { + return pUnionTagDeclarationUse; + } + + public ParserRule getUnionTagDeclarationUseRule() { + return getUnionTagDeclarationUseAccess().getRule(); + } + + //RecordFieldDeclarationUse: + // RecordFieldDeclaration + // //| GenericRecordFieldDeclaration + //; + public RecordFieldDeclarationUseElements getRecordFieldDeclarationUseAccess() { + return pRecordFieldDeclarationUse; + } + + public ParserRule getRecordFieldDeclarationUseRule() { + return getRecordFieldDeclarationUseAccess().getRule(); + } + + //PatternDeclarationUse: + // VariableDeclaration + // | ParameterDeclaration + // | PortDeclaration + // | UnionTagDeclaration + // //| GenericUnionTagDeclaration + //; + public PatternDeclarationUseElements getPatternDeclarationUseAccess() { + return pPatternDeclarationUse; + } + + public ParserRule getPatternDeclarationUseRule() { + return getPatternDeclarationUseAccess().getRule(); + } + + //BoundDeclarationUse: + // VariableDeclaration + // //| GenericConstantDeclaration + // | ConstantDeclaration; + public BoundDeclarationUseElements getBoundDeclarationUseAccess() { + return pBoundDeclarationUse; + } + + public ParserRule getBoundDeclarationUseRule() { + return getBoundDeclarationUseAccess().getRule(); + } + + //PathDeclarationUse: + // ComponentDeclaration + // | InstanceDeclaration + // | ProcessDeclaration; + public PathDeclarationUseElements getPathDeclarationUseAccess() { + return pPathDeclarationUse; + } + + public ParserRule getPathDeclarationUseRule() { + return getPathDeclarationUseAccess().getRule(); + } + + //PropertyDeclarationUse: + // PropertyDeclaration + // | VariableDeclaration; + public PropertyDeclarationUseElements getPropertyDeclarationUseAccess() { + return pPropertyDeclarationUse; + } + + public ParserRule getPropertyDeclarationUseRule() { + return getPropertyDeclarationUseAccess().getRule(); + } + + //ImportDeclaration: + // '#include' importURI=STRING; + public ImportDeclarationElements getImportDeclarationAccess() { + return pImportDeclaration; + } + + public ParserRule getImportDeclarationRule() { + return getImportDeclarationAccess().getRule(); + } + + //Declaration: + // TypeDeclaration + // | ChannelDeclaration + // | ConstantDeclaration + // | ParameterizedDeclaration + // | PropertyDeclaration; + public DeclarationElements getDeclarationAccess() { + return pDeclaration; + } + + public ParserRule getDeclarationRule() { + return getDeclarationAccess().getRule(); + } + + //ParameterizedDeclaration: + // ProcessDeclaration + // | ComponentDeclaration + // //added + // | FunctionDeclaration; + public ParameterizedDeclarationElements getParameterizedDeclarationAccess() { + return pParameterizedDeclaration; + } + + public ParserRule getParameterizedDeclarationRule() { + return getParameterizedDeclarationAccess().getRule(); + } + + //FunctionDeclaration: + // 'function' name=ID ('(' (parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)*)? ')') + // ':' type=Type + // 'is' ('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? + // statement=Statement; + public FunctionDeclarationElements getFunctionDeclarationAccess() { + return pFunctionDeclaration; + } + + public ParserRule getFunctionDeclarationRule() { + return getFunctionDeclarationAccess().getRule(); + } + + //TypeDeclaration: + // 'type' name=ID 'is' value=Type; + public TypeDeclarationElements getTypeDeclarationAccess() { + return pTypeDeclaration; + } + + public ParserRule getTypeDeclarationRule() { + return getTypeDeclarationAccess().getRule(); + } + + //ChannelDeclaration: + // 'channel' name=ID 'is' value=ChannelType; + public ChannelDeclarationElements getChannelDeclarationAccess() { + return pChannelDeclaration; + } + + public ParserRule getChannelDeclarationRule() { + return getChannelDeclarationAccess().getRule(); + } + + //ChannelType: + // {ChannelType} ('array' size=Expression 'of')? ((in?='in' out?='out'? | out?='out')? (type=TupleType | 'none') | 'none' + // | 'sync'); + public ChannelTypeElements getChannelTypeAccess() { + return pChannelType; + } + + public ParserRule getChannelTypeRule() { + return getChannelTypeAccess().getRule(); + } + + //Type: + // BasicType + // | RangeType + // | UnionType + // | RecordType + // | QueueType + // | ArrayType + // | ReferencedType + // // | TupleType + //; + public TypeElements getTypeAccess() { + return pType; + } + + public ParserRule getTypeRule() { + return getTypeAccess().getRule(); + } + + //TupleType Type: + // Type ({TupleType.types+=current} '#' types+=Type)* + public TupleTypeElements getTupleTypeAccess() { + return pTupleType; + } + + public ParserRule getTupleTypeRule() { + return getTupleTypeAccess().getRule(); + } + + //BasicType: + // {NaturalType} 'nat' + // | {IntegerType} 'int' + // | {BooleanType} 'bool'; + public BasicTypeElements getBasicTypeAccess() { + return pBasicType; + } + + public ParserRule getBasicTypeRule() { + return getBasicTypeAccess().getRule(); + } + + //// changed + //RangeType: + // minimum=Expression '..' maximum=Expression; + public RangeTypeElements getRangeTypeAccess() { + return pRangeType; + } + + public ParserRule getRangeTypeRule() { + return getRangeTypeAccess().getRule(); + } + + //UnionType: + // 'union' tags+=UnionTags ('|' tags+=UnionTags)* 'end' 'union'?; + public UnionTypeElements getUnionTypeAccess() { + return pUnionType; + } + + public ParserRule getUnionTypeRule() { + return getUnionTypeAccess().getRule(); + } + + //UnionTags: + // tags+=UnionTagDeclaration (',' tags+=UnionTagDeclaration)* ('of' type=Type)?; + public UnionTagsElements getUnionTagsAccess() { + return pUnionTags; + } + + public ParserRule getUnionTagsRule() { + return getUnionTagsAccess().getRule(); + } + + //UnionTagDeclaration: + // name=ID; + public UnionTagDeclarationElements getUnionTagDeclarationAccess() { + return pUnionTagDeclaration; + } + + public ParserRule getUnionTagDeclarationRule() { + return getUnionTagDeclarationAccess().getRule(); + } + + //RecordType: + // 'record' fields+=RecordFields (',' fields+=RecordFields)* 'end' 'record'?; + public RecordTypeElements getRecordTypeAccess() { + return pRecordType; + } + + public ParserRule getRecordTypeRule() { + return getRecordTypeAccess().getRule(); + } + + //RecordFields: + // fields+=RecordFieldDeclaration (',' fields+=RecordFieldDeclaration)* ':' type=Type; + public RecordFieldsElements getRecordFieldsAccess() { + return pRecordFields; + } + + public ParserRule getRecordFieldsRule() { + return getRecordFieldsAccess().getRule(); + } + + //RecordFieldDeclaration: + // name=ID; + public RecordFieldDeclarationElements getRecordFieldDeclarationAccess() { + return pRecordFieldDeclaration; + } + + public ParserRule getRecordFieldDeclarationRule() { + return getRecordFieldDeclarationAccess().getRule(); + } + + //QueueType: + // 'queue' size=Expression 'of' type=Type; + public QueueTypeElements getQueueTypeAccess() { + return pQueueType; + } + + public ParserRule getQueueTypeRule() { + return getQueueTypeAccess().getRule(); + } + + //ArrayType: + // 'array' size=Expression 'of' type=Type; + public ArrayTypeElements getArrayTypeAccess() { + return pArrayType; + } + + public ParserRule getArrayTypeRule() { + return getArrayTypeAccess().getRule(); + } + + //ReferencedType: + // type=[TypeDeclarationUse]; + public ReferencedTypeElements getReferencedTypeAccess() { + return pReferencedType; + } + + public ParserRule getReferencedTypeRule() { + return getReferencedTypeAccess().getRule(); + } + + /// * ChannelDeclaration: + // 'channel' name=ID 'is' channel=ChannelType + //; * / ConstantDeclaration: + // 'const' name=ID ':' type=Type 'is' value=Expression; + public ConstantDeclarationElements getConstantDeclarationAccess() { + return pConstantDeclaration; + } + + public ParserRule getConstantDeclarationRule() { + return getConstantDeclarationAccess().getRule(); + } + + //ProcessDeclaration: + // 'process' name=ID ('[' ports+=PortsDeclaration (',' ports+=PortsDeclaration)* ']')? ('(' + // parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)* ')')? + // 'is' ('port' localPorts+=PortsDeclaration (',' localPorts+=PortsDeclaration)*)? ('priority' + // priorities+=PriorityDeclaration (',' priorities+=PriorityDeclaration)*)? + // 'states' states+=StateDeclaration (',' states+=StateDeclaration)* ('var' variables+=VariablesDeclaration (',' + // variables+=VariablesDeclaration)*)? ('init' prelude=StatementSequence)? + // transitions+=Transition+; + public ProcessDeclarationElements getProcessDeclarationAccess() { + return pProcessDeclaration; + } + + public ParserRule getProcessDeclarationRule() { + return getProcessDeclarationAccess().getRule(); + } + + ////GenericDeclaration: + //// ('type' GenericTypeDeclaration) + //// | ('const' GenericConstantDeclaration) + //// | (('constr0' | 'constr1') GenericUnionTagDeclaration) + //// | ('field' GenericRecordFieldDeclaration) + ////; + //// + ////GenericTypeDeclaration: + //// name=ID + ////; + //// + ////GenericConstantDeclaration: + //// name=ID + ////; + //// + ////GenericUnionTagDeclaration: + //// name=ID + ////; + //// + ////GenericRecordFieldDeclaration: + //// name=ID + ////; + //StateDeclaration: + // name=ID; + public StateDeclarationElements getStateDeclarationAccess() { + return pStateDeclaration; + } + + public ParserRule getStateDeclarationRule() { + return getStateDeclarationAccess().getRule(); + } + + //TransitionSource: + // 'from' origin=[StateDeclaration]; + public TransitionSourceElements getTransitionSourceAccess() { + return pTransitionSource; + } + + public ParserRule getTransitionSourceRule() { + return getTransitionSourceAccess().getRule(); + } + + //Transition: + // source=TransitionSource action=StatementSequence; + public TransitionElements getTransitionAccess() { + return pTransition; + } + + public ParserRule getTransitionRule() { + return getTransitionAccess().getRule(); + } + + //ComponentDeclaration: + // 'component' name=ID ('[' ports+=PortsDeclaration (',' ports+=PortsDeclaration)* ']')? ('(' + // parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)* ')')? + // 'is' ('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? ('port' + // localPorts+=LocalPortsDeclaration (',' localPorts+=LocalPortsDeclaration)*)? ('priority' + // priorities+=PriorityDeclaration (',' priorities+=PriorityDeclaration)*)? ('init' prelude=StatementSequence)? + // body=Composition; + public ComponentDeclarationElements getComponentDeclarationAccess() { + return pComponentDeclaration; + } + + public ParserRule getComponentDeclarationRule() { + return getComponentDeclarationAccess().getRule(); + } + + //PortsDeclaration: + // ports+=PortDeclaration (',' ports+=PortDeclaration)* ':' type=ChannelType; + public PortsDeclarationElements getPortsDeclarationAccess() { + return pPortsDeclaration; + } + + public ParserRule getPortsDeclarationRule() { + return getPortsDeclarationAccess().getRule(); + } + + //PortDeclaration: + // name=ID; + public PortDeclarationElements getPortDeclarationAccess() { + return pPortDeclaration; + } + + public ParserRule getPortDeclarationRule() { + return getPortDeclarationAccess().getRule(); + } + + //LocalPortsDeclaration: + // ports+=PortDeclaration (',' ports+=PortDeclaration)* ':' type=ChannelType ('in' left=LowerBound ',' + // right=UpperBound)?; + public LocalPortsDeclarationElements getLocalPortsDeclarationAccess() { + return pLocalPortsDeclaration; + } + + public ParserRule getLocalPortsDeclarationRule() { + return getLocalPortsDeclarationAccess().getRule(); + } + + //ParametersDeclaration: + // parameters+=ParameterDeclaration (',' parameters+=ParameterDeclaration)* ':' read?='read'? write?='write'? type=Type; + public ParametersDeclarationElements getParametersDeclarationAccess() { + return pParametersDeclaration; + } + + public ParserRule getParametersDeclarationRule() { + return getParametersDeclarationAccess().getRule(); + } + + //ParameterDeclaration: + // (reference?='&' (array?='[' size=Expression ']')?)? name=ID; + public ParameterDeclarationElements getParameterDeclarationAccess() { + return pParameterDeclaration; + } + + public ParserRule getParameterDeclarationRule() { + return getParameterDeclarationAccess().getRule(); + } + + //VariablesDeclaration: + // variables+=VariableDeclaration (',' variables+=VariableDeclaration)* ':' type=Type (':=' value=Expression)?; + public VariablesDeclarationElements getVariablesDeclarationAccess() { + return pVariablesDeclaration; + } + + public ParserRule getVariablesDeclarationRule() { + return getVariablesDeclarationAccess().getRule(); + } + + //VariableDeclaration: + // name=ID; + public VariableDeclarationElements getVariableDeclarationAccess() { + return pVariableDeclaration; + } + + public ParserRule getVariableDeclarationRule() { + return getVariableDeclarationAccess().getRule(); + } + + //PriorityDeclaration: + // groups+=PriorityGroup ('>' groups+=PriorityGroup)+; + public PriorityDeclarationElements getPriorityDeclarationAccess() { + return pPriorityDeclaration; + } + + public ParserRule getPriorityDeclarationRule() { + return getPriorityDeclarationAccess().getRule(); + } + + //PriorityGroup: + // ports+=[PortDeclaration] ('|' ports+=[PortDeclaration])*; + public PriorityGroupElements getPriorityGroupAccess() { + return pPriorityGroup; + } + + public ParserRule getPriorityGroupRule() { + return getPriorityGroupAccess().getRule(); + } + + //UnlessStatement Statement: + // StatementChoice ({UnlessStatement.followers+=current} 'unless' followers+=StatementChoice)* + public UnlessStatementElements getUnlessStatementAccess() { + return pUnlessStatement; + } + + public ParserRule getUnlessStatementRule() { + return getUnlessStatementAccess().getRule(); + } + + //StatementChoice Statement: + // StatementSequence ({StatementChoice.choices+=current} '[]' choices+=StatementSequence)* + public StatementChoiceElements getStatementChoiceAccess() { + return pStatementChoice; + } + + public ParserRule getStatementChoiceRule() { + return getStatementChoiceAccess().getRule(); + } + + //StatementSequence Statement: + // Statement ({StatementSequence.statements+=current} ';' statements+=Statement)* + public StatementSequenceElements getStatementSequenceAccess() { + return pStatementSequence; + } + + public ParserRule getStatementSequenceRule() { + return getStatementSequenceAccess().getRule(); + } + + //Statement: + // NullStatement + // | TaggedStatement + // | PatternStatement + // | ConditionalStatement + // | SelectStatement + // | WhileStatement + // | ForeachStatement + // | ToStatement + // | CaseStatement + // | LoopStatement + // | OnStatement + // | WaitStatement + // | ReturnStatement + // | BlockStatement; + public StatementElements getStatementAccess() { + return pStatement; + } + + public ParserRule getStatementRule() { + return getStatementAccess().getRule(); + } + + //BlockStatement: + // 'begin' body=StatementSequence 'end'; + public BlockStatementElements getBlockStatementAccess() { + return pBlockStatement; + } + + public ParserRule getBlockStatementRule() { + return getBlockStatementAccess().getRule(); + } + + //ReturnStatement: + // 'return' expression=Expression; + public ReturnStatementElements getReturnStatementAccess() { + return pReturnStatement; + } + + public ParserRule getReturnStatementRule() { + return getReturnStatementAccess().getRule(); + } + + //NullStatement: + // {NullStatement} 'null'; + public NullStatementElements getNullStatementAccess() { + return pNullStatement; + } + + public ParserRule getNullStatementRule() { + return getNullStatementAccess().getRule(); + } + + //TaggedStatement: + // '#' name=ID //tag=TagDeclaration + //; + public TaggedStatementElements getTaggedStatementAccess() { + return pTaggedStatement; + } + + public ParserRule getTaggedStatementRule() { + return getTaggedStatementAccess().getRule(); + } + + ////TagDeclaration: + //// name=ID + ////; + //PatternStatement: + // Pattern (',' {AssignStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' values+=Expression + // (',' values+=Expression)* | ':=' {AssignStatement.patterns+=current} (values+=Expression (',' values+=Expression)*) | + // ',' {AssignAnyStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' 'any' ('where' + // exp=Expression)? | ':=' {AssignAnyStatement.patterns+=current} 'any' ('where' exp=Expression)? | '!' + // {SendStatement.port=current} values+=Expression (',' values+=Expression)* | '?' {ReceiveStatement.port=current} + // patterns+=Pattern (',' patterns+=Pattern)* ('where' exp=Expression)?)?; + public PatternStatementElements getPatternStatementAccess() { + return pPatternStatement; + } + + public ParserRule getPatternStatementRule() { + return getPatternStatementAccess().getRule(); + } + + //Pattern: + // AnyPattern + // | IntegerPattern + // | ConstantPattern + // | '(' Pattern ')' + // | IdentifierPattern; + public PatternElements getPatternAccess() { + return pPattern; + } + + public ParserRule getPatternRule() { + return getPatternAccess().getRule(); + } + + //AnyPattern: + // {AnyPattern} 'any'; + public AnyPatternElements getAnyPatternAccess() { + return pAnyPattern; + } + + public ParserRule getAnyPatternRule() { + return getAnyPatternAccess().getRule(); + } + + //ConstantPattern: + // value=LiteralExpression; + public ConstantPatternElements getConstantPatternAccess() { + return pConstantPattern; + } + + public ParserRule getConstantPatternRule() { + return getConstantPatternAccess().getRule(); + } + + //IntegerPattern: + // ('+' | negative?='-') value=INT; + public IntegerPatternElements getIntegerPatternAccess() { + return pIntegerPattern; + } + + public ParserRule getIntegerPatternRule() { + return getIntegerPatternAccess().getRule(); + } + + //IdentifierPattern: + // {ConstructorPattern} declaration=[PatternDeclarationUse] '(' (parameters+=Pattern (',' parameters+=Pattern)*)? ')' | + // declaration=[PatternDeclarationUse] ('[' {ArrayAccessPattern.source=current} index=Expression ']' | '.' + // {RecordAccessPattern.source=current} field=[RecordFieldDeclaration])*; + public IdentifierPatternElements getIdentifierPatternAccess() { + return pIdentifierPattern; + } + + public ParserRule getIdentifierPatternRule() { + return getIdentifierPatternAccess().getRule(); + } + + //ConditionalStatement: + // 'if' condition=Expression + // 'then' then=StatementSequence elseif+=ExtendedConditionalStatement* ('else' else=StatementSequence)? 'end' 'if'?; + public ConditionalStatementElements getConditionalStatementAccess() { + return pConditionalStatement; + } + + public ParserRule getConditionalStatementRule() { + return getConditionalStatementAccess().getRule(); + } + + //ExtendedConditionalStatement: + // 'elsif' condition=Expression 'then' then=StatementSequence; + public ExtendedConditionalStatementElements getExtendedConditionalStatementAccess() { + return pExtendedConditionalStatement; + } + + public ParserRule getExtendedConditionalStatementRule() { + return getExtendedConditionalStatementAccess().getRule(); + } + + //SelectStatement: + // 'select' + // body=UnlessStatement ('|' index=VariableDeclaration 'in' type=RangeType)? + // 'end' 'select'?; + public SelectStatementElements getSelectStatementAccess() { + return pSelectStatement; + } + + public ParserRule getSelectStatementRule() { + return getSelectStatementAccess().getRule(); + } + + //WhileStatement: + // 'while' condition=Expression 'do' body=StatementSequence 'end' 'while'?; + public WhileStatementElements getWhileStatementAccess() { + return pWhileStatement; + } + + public ParserRule getWhileStatementRule() { + return getWhileStatementAccess().getRule(); + } + + //ForeachStatement: + // 'foreach' variable=VariableDeclaration 'do' body=StatementSequence 'end' 'foreach'?; + public ForeachStatementElements getForeachStatementAccess() { + return pForeachStatement; + } + + public ParserRule getForeachStatementRule() { + return getForeachStatementAccess().getRule(); + } + + //ToStatement: + // 'to' state=[StateDeclaration]; + public ToStatementElements getToStatementAccess() { + return pToStatement; + } + + public ParserRule getToStatementRule() { + return getToStatementAccess().getRule(); + } + + //CaseStatement: + // 'case' value=Expression 'of' + // pattern+=Pattern '->' body+=StatementSequence ('|' pattern+=Pattern '->' body+=StatementSequence)* + // 'end' 'case'?; + public CaseStatementElements getCaseStatementAccess() { + return pCaseStatement; + } + + public ParserRule getCaseStatementRule() { + return getCaseStatementAccess().getRule(); + } + + //LoopStatement: + // {LoopStatement} 'loop'; + public LoopStatementElements getLoopStatementAccess() { + return pLoopStatement; + } + + public ParserRule getLoopStatementRule() { + return getLoopStatementAccess().getRule(); + } + + //OnStatement: + // 'on' condition=Expression; + public OnStatementElements getOnStatementAccess() { + return pOnStatement; + } + + public ParserRule getOnStatementRule() { + return getOnStatementAccess().getRule(); + } + + //WaitStatement: + // 'wait' left=LowerBound ',' right=UpperBound; + public WaitStatementElements getWaitStatementAccess() { + return pWaitStatement; + } + + public ParserRule getWaitStatementRule() { + return getWaitStatementAccess().getRule(); + } + + //Composition: // added ? + // 'par' (global=PortSet 'in')? blocks+=Block ('||' blocks+=Block)* //('|' index=VariableDeclaration 'in' type=RangeType)? + // 'end' 'par'?; + public CompositionElements getCompositionAccess() { + return pComposition; + } + + public ParserRule getCompositionRule() { + return getCompositionAccess().getRule(); + } + + //Block: + // CompositeBlock | InstanceDeclaration; + public BlockElements getBlockAccess() { + return pBlock; + } + + public ParserRule getBlockRule() { + return getBlockAccess().getRule(); + } + + //CompositeBlock: + // (local=PortSet '->' | '->')? composition=Composition; + public CompositeBlockElements getCompositeBlockAccess() { + return pCompositeBlock; + } + + public ParserRule getCompositeBlockRule() { + return getCompositeBlockAccess().getRule(); + } + + //InstanceDeclaration: + // (local=PortSet '->' | '->')? instance=ComponentInstance; + public InstanceDeclarationElements getInstanceDeclarationAccess() { + return pInstanceDeclaration; + } + + public ParserRule getInstanceDeclarationRule() { + return getInstanceDeclarationAccess().getRule(); + } + + //PortSet: + // allPorts?='*' + // | ports+=Expression (',' ports+=Expression)*; + public PortSetElements getPortSetAccess() { + return pPortSet; + } + + public ParserRule getPortSetRule() { + return getPortSetAccess().getRule(); + } + + //ComponentInstance: + // component=[ParameterizedDeclaration] ('[' ports+=Expression (',' ports+=Expression)* ']')? ('(' parameters+=Expression + // (',' parameters+=Expression)* ')')?; + public ComponentInstanceElements getComponentInstanceAccess() { + return pComponentInstance; + } + + public ParserRule getComponentInstanceRule() { + return getComponentInstanceAccess().getRule(); + } + + ////GenericInstance: + //// TypeInstance + //// | ConstantInstance + //// | UnionTagInstance + //// | RecordFieldInstance + ////; + //// + ////TypeInstance: + //// 'type' type=Type + ////; + //// + ////ConstantInstance: + //// 'const' (const=[ConstantDeclarationUse] | value=LiteralExpression) + ////; + //// + ////UnionTagInstance: + //// (constr0?='constr0' | constr1?='constr1') head=[UnionTagDeclarationUse] + ////; + //// + ////RecordFieldInstance: + //// 'field' field=[RecordFieldDeclarationUse] + ////; + //Expression: + // QuantifiedExpression; + public ExpressionElements getExpressionAccess() { + return pExpression; + } + + public ParserRule getExpressionRule() { + return getExpressionAccess().getRule(); + } + + //QuantifiedExpression Expression: + // ({AllExpression} 'all' | {ExistsExpression} 'exists') index=VariableDeclaration ('in' type=RangeType)? '.' + // child=QuantifiedExpression + // | Conditional + public QuantifiedExpressionElements getQuantifiedExpressionAccess() { + return pQuantifiedExpression; + } + + public ParserRule getQuantifiedExpressionRule() { + return getQuantifiedExpressionAccess().getRule(); + } + + //Conditional Expression: + // Disjunction ('?' {Conditional.condition=current} then=Disjunction ':' else=Disjunction)? + public ConditionalElements getConditionalAccess() { + return pConditional; + } + + public ParserRule getConditionalRule() { + return getConditionalAccess().getRule(); + } + + //Disjunction Expression: + // Implication ({Disjunction.left=current} 'or' right=Implication)* + public DisjunctionElements getDisjunctionAccess() { + return pDisjunction; + } + + public ParserRule getDisjunctionRule() { + return getDisjunctionAccess().getRule(); + } + + //Implication Expression: + // Conjunction ({Implication.left=current} '=>' right=Implication)? + public ImplicationElements getImplicationAccess() { + return pImplication; + } + + public ParserRule getImplicationRule() { + return getImplicationAccess().getRule(); + } + + //Conjunction Expression: + // Comparison ({Conjunction.left=current} 'and' right=Comparison)* + public ConjunctionElements getConjunctionAccess() { + return pConjunction; + } + + public ParserRule getConjunctionRule() { + return getConjunctionAccess().getRule(); + } + + //Comparison Expression: + // Addition (({ComparisonEqual.left=current} '=' + // | {ComparisonNotEqual.left=current} '<>' + // | {ComparisonLesser.left=current} '<' + // | {ComparisonLesserEqual.left=current} '<=' + // | {ComparisonGreater.left=current} '>' + // | {ComparisonGreaterEqual.left=current} '>=') right=Addition)? + public ComparisonElements getComparisonAccess() { + return pComparison; + } + + public ParserRule getComparisonRule() { + return getComparisonAccess().getRule(); + } + + //Addition Expression: + // Substraction ({Addition.left=current} '+' right=Substraction)* + public AdditionElements getAdditionAccess() { + return pAddition; + } + + public ParserRule getAdditionRule() { + return getAdditionAccess().getRule(); + } + + //Substraction Expression: + // Multiplication ({Substraction.left=current} '-' right=Multiplication)* + public SubstractionElements getSubstractionAccess() { + return pSubstraction; + } + + public ParserRule getSubstractionRule() { + return getSubstractionAccess().getRule(); + } + + //Multiplication Expression: + // Division ({Multiplication.left=current} '*' right=Division)* + public MultiplicationElements getMultiplicationAccess() { + return pMultiplication; + } + + public ParserRule getMultiplicationRule() { + return getMultiplicationAccess().getRule(); + } + + //Division Expression: + // Modulo ({Division.left=current} '/' right=Modulo)* + public DivisionElements getDivisionAccess() { + return pDivision; + } + + public ParserRule getDivisionRule() { + return getDivisionAccess().getRule(); + } + + //Modulo Expression: + // UnaryExpression ({Modulo.left=current} '%' right=UnaryExpression)* + public ModuloElements getModuloAccess() { + return pModulo; + } + + public ParserRule getModuloRule() { + return getModuloAccess().getRule(); + } + + //UnaryExpression Expression: + // ({UnaryPlusExpression} '+' + // | {UnaryMinusExpression} '-' + // | {UnaryNegationExpression} 'not' + // | {UnaryFirstExpression} 'first' + // | {UnaryLengthExpression} 'length' + // | {UnaryCoerceExpression} '$' + // | {UnaryFullExpression} 'full' + // | {UnaryDeQueueExpression} 'dequeue' + // | {UnaryEmptyExpression} 'empty') child=UnaryExpression | Projection + public UnaryExpressionElements getUnaryExpressionAccess() { + return pUnaryExpression; + } + + public ParserRule getUnaryExpressionRule() { + return getUnaryExpressionAccess().getRule(); + } + + //Projection Expression: + // AtomicExpression ({Projection.channel=current} '^' + // field=AtomicExpression)? + public ProjectionElements getProjectionAccess() { + return pProjection; + } + + public ParserRule getProjectionRule() { + return getProjectionAccess().getRule(); + } + + //// Added to manage the type of current value of a fiacre value during execution + //ValueExpression: + // IdentifierExpression + // | LiteralExpression + // | RecordExpression + // | ArrayExpression + // | QueueExpression; + public ValueExpressionElements getValueExpressionAccess() { + return pValueExpression; + } + + public ParserRule getValueExpressionRule() { + return getValueExpressionAccess().getRule(); + } + + //AtomicExpression Expression: + // IdentifierExpression + // | ReferenceExpression + // | LiteralExpression + // | RecordExpression + // | ArrayExpression + // | QueueExpression + // | EnqueueExpression + // | AppendExpression + // | '(' Expression ')' + public AtomicExpressionElements getAtomicExpressionAccess() { + return pAtomicExpression; + } + + public ParserRule getAtomicExpressionRule() { + return getAtomicExpressionAccess().getRule(); + } + + //ReferenceExpression: + // '&' declaration=[ReferenceDeclarationUse]; + public ReferenceExpressionElements getReferenceExpressionAccess() { + return pReferenceExpression; + } + + public ParserRule getReferenceExpressionRule() { + return getReferenceExpressionAccess().getRule(); + } + + //IdentifierExpression: + // {ConstructionExpression} declaration=[ExpressionDeclarationUse] '(' (parameters+=Expression (',' + // parameters+=Expression)*)? ')' | declaration=[ExpressionDeclarationUse] ('[' {ArrayAccessExpression.child=current} + // indexes+=Expression (',' indexes+=Expression)* ']' | '.' {RecordAccessExpression.child=current} + // field=[RecordFieldDeclaration])*; + public IdentifierExpressionElements getIdentifierExpressionAccess() { + return pIdentifierExpression; + } + + public ParserRule getIdentifierExpressionRule() { + return getIdentifierExpressionAccess().getRule(); + } + + //RecordExpression: + // '{' fields+=FieldExpression (',' fields+=FieldExpression)* '}'; + public RecordExpressionElements getRecordExpressionAccess() { + return pRecordExpression; + } + + public ParserRule getRecordExpressionRule() { + return getRecordExpressionAccess().getRule(); + } + + //FieldExpression: + // field=[RecordFieldDeclarationUse] '=' value=Expression // TODO : Inconsistent + //; + public FieldExpressionElements getFieldExpressionAccess() { + return pFieldExpression; + } + + public ParserRule getFieldExpressionRule() { + return getFieldExpressionAccess().getRule(); + } + + ////ArrayExpression returns Expression : + //// '[' Expression + //// ( + //// {ExplicitArrayExpression.values+=current} (',' values+=Expression)* + //// | + //// ({ImplicitArrayExpression.body+=current} '|' index=VariableDeclaration 'in' type=RangeType) + //// ) + //// ']' + ////; + //ArrayExpression: + // {ArrayExpression} '[' (values+=Expression (',' values+=Expression)*)? ']'; + public ArrayExpressionElements getArrayExpressionAccess() { + return pArrayExpression; + } + + public ParserRule getArrayExpressionRule() { + return getArrayExpressionAccess().getRule(); + } + + //QueueExpression: + // {QueueExpression} '{|' (values+=Expression (',' values+=Expression)*)? '|}'; + public QueueExpressionElements getQueueExpressionAccess() { + return pQueueExpression; + } + + public ParserRule getQueueExpressionRule() { + return getQueueExpressionAccess().getRule(); + } + + //EnqueueExpression: + // 'enqueue' '(' element=Expression ',' queue=Expression ')'; + public EnqueueExpressionElements getEnqueueExpressionAccess() { + return pEnqueueExpression; + } + + public ParserRule getEnqueueExpressionRule() { + return getEnqueueExpressionAccess().getRule(); + } + + //AppendExpression: + // 'append' '(' left=Expression ',' right=Expression ')'; + public AppendExpressionElements getAppendExpressionAccess() { + return pAppendExpression; + } + + public ParserRule getAppendExpressionRule() { + return getAppendExpressionAccess().getRule(); + } + + //LiteralExpression: + // BooleanLiteral + // | NaturalLiteral; + public LiteralExpressionElements getLiteralExpressionAccess() { + return pLiteralExpression; + } + + public ParserRule getLiteralExpressionRule() { + return getLiteralExpressionAccess().getRule(); + } + + //BooleanLiteral: + // {TrueLiteral} 'true' | {FalseLiteral} 'false'; + public BooleanLiteralElements getBooleanLiteralAccess() { + return pBooleanLiteral; + } + + public ParserRule getBooleanLiteralRule() { + return getBooleanLiteralAccess().getRule(); + } + + //NaturalLiteral: + // value=INT; + public NaturalLiteralElements getNaturalLiteralAccess() { + return pNaturalLiteral; + } + + public ParserRule getNaturalLiteralRule() { + return getNaturalLiteralAccess().getRule(); + } + + //LowerBound: + // NaturalLowerBound + // | DecimalLowerBound + // | VariableLowerBound; + public LowerBoundElements getLowerBoundAccess() { + return pLowerBound; + } + + public ParserRule getLowerBoundRule() { + return getLowerBoundAccess().getRule(); + } + + //UpperBound: + // NaturalUpperBound + // | DecimalUpperBound + // | VariableUpperBound + // | InfiniteUpperBound; + public UpperBoundElements getUpperBoundAccess() { + return pUpperBound; + } + + public ParserRule getUpperBoundRule() { + return getUpperBoundAccess().getRule(); + } + + //NaturalLowerBound: + // (left?='[' | right?=']') value=INT; + public NaturalLowerBoundElements getNaturalLowerBoundAccess() { + return pNaturalLowerBound; + } + + public ParserRule getNaturalLowerBoundRule() { + return getNaturalLowerBoundAccess().getRule(); + } + + //NaturalUpperBound: + // value=INT (left?='[' | right?=']'); + public NaturalUpperBoundElements getNaturalUpperBoundAccess() { + return pNaturalUpperBound; + } + + public ParserRule getNaturalUpperBoundRule() { + return getNaturalUpperBoundAccess().getRule(); + } + + //DecimalLowerBound: + // (left?='[' | right?=']') value=FLT; + public DecimalLowerBoundElements getDecimalLowerBoundAccess() { + return pDecimalLowerBound; + } + + public ParserRule getDecimalLowerBoundRule() { + return getDecimalLowerBoundAccess().getRule(); + } + + //DecimalUpperBound: + // value=FLT (left?='[' | right?=']'); + public DecimalUpperBoundElements getDecimalUpperBoundAccess() { + return pDecimalUpperBound; + } + + public ParserRule getDecimalUpperBoundRule() { + return getDecimalUpperBoundAccess().getRule(); + } + + //VariableLowerBound: + // (left?='[' | right?=']') variable=[BoundDeclarationUse]; + public VariableLowerBoundElements getVariableLowerBoundAccess() { + return pVariableLowerBound; + } + + public ParserRule getVariableLowerBoundRule() { + return getVariableLowerBoundAccess().getRule(); + } + + //VariableUpperBound: + // variable=[BoundDeclarationUse] (left?='[' | right?=']'); + public VariableUpperBoundElements getVariableUpperBoundAccess() { + return pVariableUpperBound; + } + + public ParserRule getVariableUpperBoundRule() { + return getVariableUpperBoundAccess().getRule(); + } + + //InfiniteUpperBound: + // {InfiniteUpperBound} '...' '['; + public InfiniteUpperBoundElements getInfiniteUpperBoundAccess() { + return pInfiniteUpperBound; + } + + public ParserRule getInfiniteUpperBoundRule() { + return getInfiniteUpperBoundAccess().getRule(); + } + + //Requirement: + // 'assert' property=[PropertyDeclaration] ('-true' positive=STRING)? ('-false' negative=STRING)?; + public RequirementElements getRequirementAccess() { + return pRequirement; + } + + public ParserRule getRequirementRule() { + return getRequirementAccess().getRule(); + } + + //PropertyDeclaration: + // 'property' name=ID 'is' property=Property; + public PropertyDeclarationElements getPropertyDeclarationAccess() { + return pPropertyDeclaration; + } + + public ParserRule getPropertyDeclarationRule() { + return getPropertyDeclarationAccess().getRule(); + } + + //Property: + // QuantifiedProperty; + public PropertyElements getPropertyAccess() { + return pProperty; + } + + public ParserRule getPropertyRule() { + return getPropertyAccess().getRule(); + } + + //QuantifiedProperty Property: + // ({AllProperty} 'all' | {ExistsProperty} 'exists') variable=VariableDeclaration + // 'in' type=RangeType '.' child=QuantifiedProperty | PropertyDisjunction + public QuantifiedPropertyElements getQuantifiedPropertyAccess() { + return pQuantifiedProperty; + } + + public ParserRule getQuantifiedPropertyRule() { + return getQuantifiedPropertyAccess().getRule(); + } + + //PropertyDisjunction Property: + // PropertyImplication ({PropertyDisjunction.left=current} 'or' right=PropertyImplication)* + public PropertyDisjunctionElements getPropertyDisjunctionAccess() { + return pPropertyDisjunction; + } + + public ParserRule getPropertyDisjunctionRule() { + return getPropertyDisjunctionAccess().getRule(); + } + + //PropertyImplication Property: + // PropertyConjunction ({PropertyImplication.left=current} '=>' right=PropertyImplication)? + public PropertyImplicationElements getPropertyImplicationAccess() { + return pPropertyImplication; + } + + public ParserRule getPropertyImplicationRule() { + return getPropertyImplicationAccess().getRule(); + } + + //PropertyConjunction Property: + // PropertyNegation ({PropertyConjunction.left=current} 'and' right=PropertyNegation)* + public PropertyConjunctionElements getPropertyConjunctionAccess() { + return pPropertyConjunction; + } + + public ParserRule getPropertyConjunctionRule() { + return getPropertyConjunctionAccess().getRule(); + } + + //PropertyNegation Property: + // {PropertyNegation} 'not' child=PropertyNegation | AtomicProperty + public PropertyNegationElements getPropertyNegationAccess() { + return pPropertyNegation; + } + + public ParserRule getPropertyNegationRule() { + return getPropertyNegationAccess().getRule(); + } + + //AtomicProperty Property: + // PatternProperty | '(' Property ')' + public AtomicPropertyElements getAtomicPropertyAccess() { + return pAtomicProperty; + } + + public ParserRule getAtomicPropertyRule() { + return getAtomicPropertyAccess().getRule(); + } + + //PatternProperty: + // LTLPattern | DeadlockFreePattern | InfinitelyOftenPattern | MortalPattern | PresencePattern | AbsencePattern | + // AlwaysPattern | SequencePattern; + public PatternPropertyElements getPatternPropertyAccess() { + return pPatternProperty; + } + + public ParserRule getPatternPropertyRule() { + return getPatternPropertyAccess().getRule(); + } + + //LTLPattern: + // 'ltl' property=LTLUnary; + public LTLPatternElements getLTLPatternAccess() { + return pLTLPattern; + } + + public ParserRule getLTLPatternRule() { + return getLTLPatternAccess().getRule(); + } + + //DeadlockFreePattern: + // {DeadlockFreePattern} 'deadlockfree'; + public DeadlockFreePatternElements getDeadlockFreePatternAccess() { + return pDeadlockFreePattern; + } + + public ParserRule getDeadlockFreePatternRule() { + return getDeadlockFreePatternAccess().getRule(); + } + + //InfinitelyOftenPattern: + // 'infinitelyoften' subject=AtomicObservable; + public InfinitelyOftenPatternElements getInfinitelyOftenPatternAccess() { + return pInfinitelyOftenPattern; + } + + public ParserRule getInfinitelyOftenPatternRule() { + return getInfinitelyOftenPatternAccess().getRule(); + } + + //MortalPattern: + // 'mortal' subject=AtomicObservable; + public MortalPatternElements getMortalPatternAccess() { + return pMortalPattern; + } + + public ParserRule getMortalPatternRule() { + return getMortalPatternAccess().getRule(); + } + + //PresencePattern: + // 'present' subject=AtomicObservable ('lasting' lasting=INT | ('after' after=AtomicObservable) ('within' + // lower=LowerBound ',' upper=UpperBound | 'until' until=AtomicObservable)? + // | ('before' before=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound)? + // | 'between' min=AtomicObservable 'and' max=AtomicObservable)?; + public PresencePatternElements getPresencePatternAccess() { + return pPresencePattern; + } + + public ParserRule getPresencePatternRule() { + return getPresencePatternAccess().getRule(); + } + + //AbsencePattern: + // 'absent' subject=AtomicObservable (('after' after=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound | + // 'until' until=AtomicObservable)? + // | ('before' before=AtomicObservable) ('for' lower=LowerBound ',' upper=UpperBound)? + // | 'between' min=AtomicObservable 'and' max=AtomicObservable)?; + public AbsencePatternElements getAbsencePatternAccess() { + return pAbsencePattern; + } + + public ParserRule getAbsencePatternRule() { + return getAbsencePatternAccess().getRule(); + } + + //AlwaysPattern: + // 'always' subject=AtomicObservable ('before' before=AtomicObservable | 'after' after=AtomicObservable ('until' + // until=AtomicObservable)? | 'between' min=AtomicObservable 'and' max=AtomicObservable)?; + public AlwaysPatternElements getAlwaysPatternAccess() { + return pAlwaysPattern; + } + + public ParserRule getAlwaysPatternRule() { + return getAlwaysPatternAccess().getRule(); + } + + //SequencePattern: + // AtomicObservable ('leadsto' {LeadsToPattern.subject=current} follower=AtomicObservable ('before' + // before=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound)? | 'within' lower=LowerBound ',' + // upper=UpperBound | 'after' after=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound | 'until' + // until=AtomicObservable)? + // | 'between' min=AtomicObservable 'and' max=AtomicObservable)? + // | 'precedes' {PrecedesPattern.subject=current} follower=AtomicObservable ('before' before=AtomicObservable | 'after' + // after=AtomicObservable ('until' until=AtomicObservable)? | 'between' min=AtomicObservable 'and' + // max=AtomicObservable)?); + public SequencePatternElements getSequencePatternAccess() { + return pSequencePattern; + } + + public ParserRule getSequencePatternRule() { + return getSequencePatternAccess().getRule(); + } + + //LTLProperty: + // LTLQuantified; + public LTLPropertyElements getLTLPropertyAccess() { + return pLTLProperty; + } + + public ParserRule getLTLPropertyRule() { + return getLTLPropertyAccess().getRule(); + } + + //LTLQuantified LTLProperty: + // ({LTLAll} 'all' | {LTLExists} 'exists') index=VariableDeclaration + // 'in' type=RangeType '.' child=LTLQuantified | LTLDisjunction + public LTLQuantifiedElements getLTLQuantifiedAccess() { + return pLTLQuantified; + } + + public ParserRule getLTLQuantifiedRule() { + return getLTLQuantifiedAccess().getRule(); + } + + //LTLDisjunction LTLProperty: + // LTLImplication ({LTLDisjunction.left=current} 'or' right=LTLImplication)* + public LTLDisjunctionElements getLTLDisjunctionAccess() { + return pLTLDisjunction; + } + + public ParserRule getLTLDisjunctionRule() { + return getLTLDisjunctionAccess().getRule(); + } + + //LTLImplication LTLProperty: + // LTLConjunction ({LTLImplication.left=current} '=>' right=LTLImplication)? + public LTLImplicationElements getLTLImplicationAccess() { + return pLTLImplication; + } + + public ParserRule getLTLImplicationRule() { + return getLTLImplicationAccess().getRule(); + } + + //LTLConjunction LTLProperty: + // LTLBinary ({LTLConjunction.left=current} 'and' right=LTLBinary)* + public LTLConjunctionElements getLTLConjunctionAccess() { + return pLTLConjunction; + } + + public ParserRule getLTLConjunctionRule() { + return getLTLConjunctionAccess().getRule(); + } + + //LTLBinary LTLProperty: + // LTLUnary ({LTLUntil.left=current} 'until' right=LTLUnary | {LTLRelease.left=current} 'release' right=LTLUnary)? + public LTLBinaryElements getLTLBinaryAccess() { + return pLTLBinary; + } + + public ParserRule getLTLBinaryRule() { + return getLTLBinaryAccess().getRule(); + } + + //LTLUnary LTLProperty: + // ({LTLUnaryNegation} 'not' | {LTLUnaryNext} 'next' | {LTLUnaryAlways} '[]' | {LTLUnaryEventually} '<>') + // operand=LTLUnary | AtomicLTL + public LTLUnaryElements getLTLUnaryAccess() { + return pLTLUnary; + } + + public ParserRule getLTLUnaryRule() { + return getLTLUnaryAccess().getRule(); + } + + //AtomicLTL LTLProperty: + // {LTLVariable} declaration=[PropertyDeclarationUse] | ObservableEvent + // | '(' LTLProperty ')' + public AtomicLTLElements getAtomicLTLAccess() { + return pAtomicLTL; + } + + public ParserRule getAtomicLTLRule() { + return getAtomicLTLAccess().getRule(); + } + + //StateEvent: + // EnterStateEvent + // | LeaveStateEvent; + public StateEventElements getStateEventAccess() { + return pStateEvent; + } + + public ParserRule getStateEventRule() { + return getStateEventAccess().getRule(); + } + + //EnterStateEvent: + // 'enter' subject=AtomicObservable; + public EnterStateEventElements getEnterStateEventAccess() { + return pEnterStateEvent; + } + + public ParserRule getEnterStateEventRule() { + return getEnterStateEventAccess().getRule(); + } + + //LeaveStateEvent: + // 'leave' subject=AtomicObservable; + public LeaveStateEventElements getLeaveStateEventAccess() { + return pLeaveStateEvent; + } + + public ParserRule getLeaveStateEventRule() { + return getLeaveStateEventAccess().getRule(); + } + + //Observable: + // ObservableDisjunction; + public ObservableElements getObservableAccess() { + return pObservable; + } + + public ParserRule getObservableRule() { + return getObservableAccess().getRule(); + } + + //ObservableDisjunction Observable: + // ObservableImplication ({ObservableDisjunction.left=current} 'or' right=ObservableImplication)* + public ObservableDisjunctionElements getObservableDisjunctionAccess() { + return pObservableDisjunction; + } + + public ParserRule getObservableDisjunctionRule() { + return getObservableDisjunctionAccess().getRule(); + } + + //ObservableImplication Observable: + // ObservableConjunction ({ObservableImplication.left=current} '=>' right=ObservableImplication)? + public ObservableImplicationElements getObservableImplicationAccess() { + return pObservableImplication; + } + + public ParserRule getObservableImplicationRule() { + return getObservableImplicationAccess().getRule(); + } + + //ObservableConjunction Observable: + // ObservableNegation ({ObservableConjunction.left=current} 'and' right=ObservableNegation)* + public ObservableConjunctionElements getObservableConjunctionAccess() { + return pObservableConjunction; + } + + public ParserRule getObservableConjunctionRule() { + return getObservableConjunctionAccess().getRule(); + } + + //ObservableNegation Observable: + // {ObservableNegation} 'not' child=ObservableNegation | AtomicObservable + public ObservableNegationElements getObservableNegationAccess() { + return pObservableNegation; + } + + public ParserRule getObservableNegationRule() { + return getObservableNegationAccess().getRule(); + } + + //AtomicObservable Observable: + // '(' Observable ')' | ObservableEvent + public AtomicObservableElements getAtomicObservableAccess() { + return pAtomicObservable; + } + + public ParserRule getAtomicObservableRule() { + return getAtomicObservableAccess().getRule(); + } + + //ObservableEvent: + // PathEvent | StateEvent; + public ObservableEventElements getObservableEventAccess() { + return pObservableEvent; + } + + public ParserRule getObservableEventRule() { + return getObservableEventAccess().getRule(); + } + + //PathEvent: + // path=Path item=Subject; + public PathEventElements getPathEventAccess() { + return pPathEvent; + } + + public ParserRule getPathEventRule() { + return getPathEventAccess().getRule(); + } + + //Path: + // (items+=PathItem '/')+; + public PathElements getPathAccess() { + return pPath; + } + + public ParserRule getPathRule() { + return getPathAccess().getRule(); + } + + //PathItem: + // NaturalItem | NamedItem; + public PathItemElements getPathItemAccess() { + return pPathItem; + } + + public ParserRule getPathItemRule() { + return getPathItemAccess().getRule(); + } + + //NaturalItem: + // value=INT; + public NaturalItemElements getNaturalItemAccess() { + return pNaturalItem; + } + + public ParserRule getNaturalItemRule() { + return getNaturalItemAccess().getRule(); + } + + //NamedItem: + // declaration=[PathDeclarationUse]; + public NamedItemElements getNamedItemAccess() { + return pNamedItem; + } + + public ParserRule getNamedItemRule() { + return getNamedItemAccess().getRule(); + } + + //Subject: + // StateSubject | ValueSubject | TagSubject | EventSubject; + public SubjectElements getSubjectAccess() { + return pSubject; + } + + public ParserRule getSubjectRule() { + return getSubjectAccess().getRule(); + } + + //StateSubject: + // 'state' state=[StateDeclaration]; + public StateSubjectElements getStateSubjectAccess() { + return pStateSubject; + } + + public ParserRule getStateSubjectRule() { + return getStateSubjectAccess().getRule(); + } + + //ValueSubject: + // 'value' value=AtomicExpression; + public ValueSubjectElements getValueSubjectAccess() { + return pValueSubject; + } + + public ParserRule getValueSubjectRule() { + return getValueSubjectAccess().getRule(); + } + + //TagSubject: + // 'tag' tag=[TaggedStatement]; + public TagSubjectElements getTagSubjectAccess() { + return pTagSubject; + } + + public ParserRule getTagSubjectRule() { + return getTagSubjectAccess().getRule(); + } + + //EventSubject: + // 'event' event=ID; + public EventSubjectElements getEventSubjectAccess() { + return pEventSubject; + } + + public ParserRule getEventSubjectRule() { + return getEventSubjectAccess().getRule(); + } + + //terminal INT returns ecore::EInt: + // '0'..'9'+; + public TerminalRule getINTRule() { + return tINT; + } + + //terminal ID: + // ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '0'..'9' | '_')*; + public TerminalRule getIDRule() { + return tID; + } + + //terminal FLT returns ecore::EFloat: + // INT '.' INT; + public TerminalRule getFLTRule() { + return tFLT; + } + + //terminal STRING: + // '"' ('\\' . | !('\\' | '"'))* '"' | + // "'" ('\\' . | !('\\' | "'"))* "'"; + public TerminalRule getSTRINGRule() { + return gaTerminals.getSTRINGRule(); + } + + //terminal ML_COMMENT: + // '/ *'->'* /'; + public TerminalRule getML_COMMENTRule() { + return gaTerminals.getML_COMMENTRule(); + } + + //terminal SL_COMMENT: + // '//' !('\n' | '\r')* ('\r'? '\n')?; + public TerminalRule getSL_COMMENTRule() { + return gaTerminals.getSL_COMMENTRule(); + } + + //terminal WS: + // ' ' | '\t' | '\r' | '\n'+; + public TerminalRule getWSRule() { + return gaTerminals.getWSRule(); + } + + //terminal ANY_OTHER: + // .; + public TerminalRule getANY_OTHERRule() { + return gaTerminals.getANY_OTHERRule(); + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/validation/AbstractFiacreValidator.java b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/validation/AbstractFiacreValidator.java new file mode 100644 index 0000000..8cafc18 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src-gen/fr/irit/fiacre/xtext/validation/AbstractFiacreValidator.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.validation; + +import java.util.ArrayList; +import java.util.List; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.validation.AbstractDeclarativeValidator; + +public abstract class AbstractFiacreValidator extends AbstractDeclarativeValidator { + + @Override + protected List getEPackages() { + List result = new ArrayList(); + result.add(fr.irit.fiacre.xtext.fiacre.FiacrePackage.eINSTANCE); + return result; + } + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/Fiacre.xtext b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/Fiacre.xtext new file mode 100644 index 0000000..c8f6d23 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/Fiacre.xtext @@ -0,0 +1,1019 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Marc Pantel - initial API and implementation and/or initial documentation + * Faiez Zalila + *******************************************************************************/ +grammar fr.irit.fiacre.xtext.Fiacre with org.eclipse.xtext.common.Terminals + +import "http://www.eclipse.org/emf/2002/Ecore" as ecore + +generate fiacre "http://www.irit.fr/fiacre/xtext/Fiacre" + +Model: + {Model} imports+=ImportDeclaration* + (declarations+=Declaration | requirements+=Requirement /* added alternative root */ | root+=Root )* +// ((root=[RootDeclaration])? (declarations+=Declaration | requirements+=Requirement)*) +; + +RootDeclaration: + ComponentDeclaration + | ProcessDeclaration +; + +Root: + {Root} declaration=[RootDeclaration] ('>'(observed+=[RootDeclaration] ('|' observed+=[RootDeclaration])* ))? +; +NamedElement: + Declaration + //| GenericDeclaration + | PortDeclaration + | ParameterDeclaration + | VariableDeclaration + | StateDeclaration + | RecordFieldDeclaration + | UnionTagDeclaration + //ajout Faiez +// | TagDeclaration +; + +TypeDeclarationUse: + TypeDeclaration + //| GenericTypeDeclaration + | ChannelDeclaration + //| GenericConstantDeclaration +; + +ConstantDeclarationUse: + ConstantDeclaration + //| GenericConstantDeclaration +; + +ExpressionDeclarationUse: + VariableDeclaration + | ConstantDeclaration + //| GenericConstantDeclaration + | ParameterDeclaration + | PortDeclaration + | UnionTagDeclaration + //| GenericDeclaration + | FunctionDeclaration +; + +ReferenceDeclarationUse: + VariableDeclaration + | ParameterDeclaration +; + +UnionTagDeclarationUse: + UnionTagDeclaration + //| GenericUnionTagDeclaration +; + +RecordFieldDeclarationUse: + RecordFieldDeclaration + //| GenericRecordFieldDeclaration +; + +PatternDeclarationUse: + VariableDeclaration + | ParameterDeclaration + | PortDeclaration + | UnionTagDeclaration + //| GenericUnionTagDeclaration +; + +BoundDeclarationUse: + VariableDeclaration + //| GenericConstantDeclaration + | ConstantDeclaration +; + +PathDeclarationUse: + ComponentDeclaration + | InstanceDeclaration + | ProcessDeclaration +; + +PropertyDeclarationUse: + PropertyDeclaration + |VariableDeclaration +; + +ImportDeclaration: + '#include' importURI=STRING +; + +Declaration: + TypeDeclaration + | ChannelDeclaration + | ConstantDeclaration + | ParameterizedDeclaration + | PropertyDeclaration +; + +ParameterizedDeclaration: + ProcessDeclaration + | ComponentDeclaration + //added + | FunctionDeclaration +; + +FunctionDeclaration: + 'function' name=ID + ('(' (parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)*)? ')') + ':' type=Type + 'is' + ('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? + (statement=Statement) +; + + +TypeDeclaration: + 'type' name=ID 'is' value=Type +; + +ChannelDeclaration: + 'channel' name=ID 'is' value=ChannelType +; + +ChannelType: + // added ? after the second 'out' + {ChannelType} ('array' size=Expression 'of')? ((((in?='in' (out?='out')?) | out?='out')? (type=TupleType | 'none')) | 'none' | 'sync') +; + +Type: + BasicType + | RangeType + | UnionType + | RecordType + | QueueType + | ArrayType + | ReferencedType +// | TupleType +; + +TupleType returns Type: + Type ({TupleType.types+=current} '#' types+=Type)* +; + +BasicType: + {NaturalType} 'nat' + | {IntegerType} 'int' + | {BooleanType} 'bool' +; +// changed +RangeType: + minimum=Expression '..' maximum=Expression +; + +UnionType: + 'union' tags+=UnionTags ('|' tags+=UnionTags)* 'end' ('union')? +; + +UnionTags: + tags+=UnionTagDeclaration (',' tags+=UnionTagDeclaration)* ('of' type=Type)? +; + +UnionTagDeclaration: + name=ID +; + +RecordType: + 'record' fields+=RecordFields (',' fields+=RecordFields)* 'end' ('record')? +; + +RecordFields: + fields+=RecordFieldDeclaration (',' fields+=RecordFieldDeclaration)* ':' type=Type +; + +RecordFieldDeclaration: + name=ID +; + +QueueType: + 'queue' size=Expression 'of' type=Type +; + +ArrayType: + 'array' size=Expression 'of' type=Type +; + + +ReferencedType: + type=[TypeDeclarationUse] +; + +/* ChannelDeclaration: + 'channel' name=ID 'is' channel=ChannelType +; */ + +ConstantDeclaration: + 'const' name=ID ':' type=Type 'is' value=Expression +; + +ProcessDeclaration: + 'process' name=ID + //('<|' generics+=GenericDeclaration (',' generics+=GenericDeclaration)* '|>')? + ('[' ports+=PortsDeclaration (',' ports+=PortsDeclaration)* ']')? + ('(' parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)* ')')? + 'is' + ('port' localPorts+=PortsDeclaration (',' localPorts+=PortsDeclaration)*)? + ('priority' priorities+=PriorityDeclaration (',' priorities+=PriorityDeclaration)*)? + 'states' states+=StateDeclaration (',' states+=StateDeclaration)* + ('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? + ('init' prelude=StatementSequence)? + (transitions+=Transition)+ +; + +//GenericDeclaration: +// ('type' GenericTypeDeclaration) +// | ('const' GenericConstantDeclaration) +// | (('constr0' | 'constr1') GenericUnionTagDeclaration) +// | ('field' GenericRecordFieldDeclaration) +//; +// +//GenericTypeDeclaration: +// name=ID +//; +// +//GenericConstantDeclaration: +// name=ID +//; +// +//GenericUnionTagDeclaration: +// name=ID +//; +// +//GenericRecordFieldDeclaration: +// name=ID +//; + +StateDeclaration: + name=ID +; +TransitionSource: + 'from' origin=[StateDeclaration] +; +Transition: + source=TransitionSource action=StatementSequence +; + +ComponentDeclaration: + 'component' name=ID + ('[' ports+=PortsDeclaration (',' ports+=PortsDeclaration)* ']')? + ('(' parameters+=ParametersDeclaration (',' parameters+=ParametersDeclaration)*')')? + 'is' + ('var' variables+=VariablesDeclaration (',' variables+=VariablesDeclaration)*)? + ('port' localPorts+=LocalPortsDeclaration (',' localPorts+=LocalPortsDeclaration)*)? + ('priority' priorities+=PriorityDeclaration (',' priorities+=PriorityDeclaration)*)? + ('init' prelude=StatementSequence)? + body=Composition +; + +PortsDeclaration: + ports+=PortDeclaration (',' ports+=PortDeclaration)* ':' type=ChannelType +; + +PortDeclaration: + name=ID +; + +LocalPortsDeclaration: + ports+=PortDeclaration (',' ports+=PortDeclaration)* ':' type=ChannelType ('in' left=LowerBound ',' right=UpperBound)? +; + +ParametersDeclaration: + parameters+=ParameterDeclaration (',' parameters+=ParameterDeclaration)* ':' (read?='read')? (write?='write')? type=Type +; + +ParameterDeclaration: + ((reference?='&') (array?='[' size=Expression ']')?)? name=ID +; + +VariablesDeclaration: + variables+=VariableDeclaration (',' variables+=VariableDeclaration)* ':' type=Type (':=' value=Expression)? +; + +VariableDeclaration: + name=ID +; + +PriorityDeclaration: + groups+=PriorityGroup ('>' groups+=PriorityGroup)+ +; + +PriorityGroup: + ports+=[PortDeclaration] ('|' ports+=[PortDeclaration])* +; + +UnlessStatement returns Statement: + StatementChoice ({UnlessStatement.followers+=current} 'unless' followers+=StatementChoice)* +; + +StatementChoice returns Statement: + StatementSequence ({StatementChoice.choices+=current} '[]' choices+=StatementSequence)* +; + +StatementSequence returns Statement: + Statement ({StatementSequence.statements+=current} ';' statements+=Statement)* +; + +Statement: + NullStatement + | TaggedStatement + | PatternStatement + | ConditionalStatement + | SelectStatement + | WhileStatement + | ForeachStatement + | ToStatement + | CaseStatement + | LoopStatement + | OnStatement + | WaitStatement + | ReturnStatement + | BlockStatement +; + +BlockStatement: + 'begin' body=StatementSequence 'end' +; + +ReturnStatement: + 'return' expression=Expression +; + +NullStatement: + {NullStatement} 'null' +; + +TaggedStatement: + '#' name=ID //tag=TagDeclaration +; + +//TagDeclaration: +// name=ID +//; + +PatternStatement: + ( + Pattern + ((',' {AssignStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' values+=Expression (',' values+=Expression)*) + | + (':=' {AssignStatement.patterns+=current} ((values+=Expression (',' values+=Expression)*))) + | + (',' {AssignAnyStatement.patterns+=current} patterns+=Pattern (',' patterns+=Pattern)* ':=' ('any') ('where' exp=Expression)? ) + | + (':=' {AssignAnyStatement.patterns+=current} ('any') ('where' exp=Expression)?) + | + ('!' {SendStatement.port=current} values+=Expression (',' values+=Expression)*) + | + ('?' {ReceiveStatement.port=current} patterns+=Pattern (',' patterns+=Pattern)* ('where' exp=Expression)?) + )? + ) +; + +Pattern: + AnyPattern + | IntegerPattern + | ConstantPattern + | '(' Pattern ')' + | IdentifierPattern +; + +AnyPattern: + {AnyPattern} 'any' +; + +ConstantPattern: + value=LiteralExpression +; + +IntegerPattern: + ('+' | negative?='-') value=INT +; + +IdentifierPattern: +// TODO : Provide a common type for declaration in ConstructorPattern and IdentifierPattern +//( parameters+=Expression (',' parameters+=Expression)* )? + ( + ({ConstructorPattern} declaration=[PatternDeclarationUse] '(' ( parameters+=Pattern (',' parameters+=Pattern)* )? ')' ) + | + ( + declaration=[PatternDeclarationUse] + ( + ('[' {ArrayAccessPattern.source=current} index=Expression ']') + | + ('.' {RecordAccessPattern.source=current} field=[RecordFieldDeclaration]) + )* + ) + ) +; + +ConditionalStatement: + 'if' condition=Expression + 'then' then=StatementSequence (elseif+=ExtendedConditionalStatement)* + ('else' else=StatementSequence)? 'end' ('if')? +; + +ExtendedConditionalStatement: + 'elsif' condition=Expression 'then' then=StatementSequence +; + +SelectStatement: + 'select' + body=UnlessStatement + ('|' index=VariableDeclaration 'in' type=RangeType)? + 'end' ('select')? +; + +WhileStatement: + 'while' condition=Expression 'do' body=StatementSequence 'end' ('while')? +; + +ForeachStatement: + 'foreach' variable=VariableDeclaration 'do' body=StatementSequence 'end' ('foreach')? +; + +ToStatement: + 'to' state=[StateDeclaration] +; + +CaseStatement: + 'case' value=Expression 'of' + pattern+=Pattern '->' body+=StatementSequence ('|' pattern+=Pattern '->' body+=StatementSequence)* + 'end' ('case')? +; + +LoopStatement: + {LoopStatement} 'loop' +; + +OnStatement: + 'on' condition=Expression +; + +WaitStatement: + 'wait' left=LowerBound ',' right=UpperBound +; + +Composition: + // added ? + 'par' ( global=PortSet 'in')? + blocks+=Block ('||' blocks+=Block)* + //('|' index=VariableDeclaration 'in' type=RangeType)? + 'end' ('par')? + ; + +Block: + CompositeBlock | InstanceDeclaration +; + +CompositeBlock: + (local = PortSet ( '->' ) | ( '->' ) )? composition=Composition +; + +InstanceDeclaration: + (local = PortSet ( '->' ) | ( '->' ) )? instance=ComponentInstance +; + +PortSet: + ( + allPorts?='*' + | + ports+=Expression (',' ports+=Expression)* + ) +; + +ComponentInstance: + component=[ParameterizedDeclaration] + //('<|' generics+=GenericInstance (',' generics+=GenericInstance)* '|>')? + ('[' ports+=Expression (',' ports+=Expression)* ']')? + ('(' parameters+=Expression (',' parameters+=Expression)* ')')? +; + +//GenericInstance: +// TypeInstance +// | ConstantInstance +// | UnionTagInstance +// | RecordFieldInstance +//; +// +//TypeInstance: +// 'type' type=Type +//; +// +//ConstantInstance: +// 'const' (const=[ConstantDeclarationUse] | value=LiteralExpression) +//; +// +//UnionTagInstance: +// (constr0?='constr0' | constr1?='constr1') head=[UnionTagDeclarationUse] +//; +// +//RecordFieldInstance: +// 'field' field=[RecordFieldDeclarationUse] +//; + +Expression: + QuantifiedExpression +; + +QuantifiedExpression returns Expression : + (({AllExpression} 'all'|{ExistsExpression} 'exists') + index=VariableDeclaration ('in' type=RangeType)? '.' child=QuantifiedExpression + ) | + Conditional +; + +Conditional returns Expression : + Disjunction ('?' {Conditional.condition=current} then=Disjunction ':' else=Disjunction)? +; + +Disjunction returns Expression : + Implication ({Disjunction.left=current} 'or' right=Implication)* +; + +Implication returns Expression : + Conjunction ({Implication.left=current} '=>' right=Implication)? +; + +Conjunction returns Expression : + Comparison ({Conjunction.left = current} 'and' right=Comparison)* +; + +Comparison returns Expression : + Addition (({ComparisonEqual.left=current} '=' + | {ComparisonNotEqual.left=current} '<>' + | {ComparisonLesser.left=current} '<' + | {ComparisonLesserEqual.left=current} '<=' + | {ComparisonGreater.left=current} '>' + | {ComparisonGreaterEqual.left=current} '>=' + ) + right=Addition + )? +; + +Addition returns Expression : + Substraction ({Addition.left=current} '+' right=Substraction)* +; + +Substraction returns Expression : + Multiplication ({Substraction.left=current} '-' right=Multiplication)* +; + +Multiplication returns Expression: + Division ({Multiplication.left=current} '*' right=Division)* +; + +Division returns Expression: + Modulo ({Division.left=current} '/' right=Modulo)* +; + +Modulo returns Expression: + UnaryExpression ({Modulo.left=current} '%' right=UnaryExpression)* +; + +UnaryExpression returns Expression : + ((({UnaryPlusExpression} '+' + | {UnaryMinusExpression} '-' + | {UnaryNegationExpression} 'not' + | {UnaryFirstExpression} 'first' + | {UnaryLengthExpression} 'length' + | {UnaryCoerceExpression} '$' + | {UnaryFullExpression} 'full' + | {UnaryDeQueueExpression} 'dequeue' + | {UnaryEmptyExpression} 'empty' + ) child=UnaryExpression ) + | + Projection) +; + +Projection returns Expression: + AtomicExpression ({Projection.channel=current} '^' + field=AtomicExpression )? + ; + +// Added to manage the type of current value of a fiacre value during execution +ValueExpression: + IdentifierExpression + | LiteralExpression + | RecordExpression + | ArrayExpression + | QueueExpression +; + +AtomicExpression returns Expression: + IdentifierExpression + | ReferenceExpression + | LiteralExpression + | RecordExpression + | ArrayExpression + | QueueExpression + | EnqueueExpression + | AppendExpression + | '(' Expression ')' +; + +ReferenceExpression: + '&' declaration=[ReferenceDeclarationUse] +; + +IdentifierExpression: + // changed order between the first alternative and the second one + + ( + // + ({ConstructionExpression} declaration=[ExpressionDeclarationUse] '(' ( parameters+=Expression (',' parameters+=Expression)* )? ')') + | + ( + ( + declaration=[ExpressionDeclarationUse] + ( + ('[' {ArrayAccessExpression.child=current} indexes+=Expression (',' indexes+=Expression)*']') + | + ('.' {RecordAccessExpression.child=current} field=[RecordFieldDeclaration]) + )* + ) + ) + ) +; + +RecordExpression: + '{' fields+=FieldExpression (',' fields+=FieldExpression)* '}' +; + +FieldExpression: + //FZ je l'ai repris + field=[RecordFieldDeclarationUse] '=' value=Expression // TODO : Inconsistent +; + +//ArrayExpression returns Expression : +// '[' Expression +// ( +// {ExplicitArrayExpression.values+=current} (',' values+=Expression)* +// | +// ({ImplicitArrayExpression.body+=current} '|' index=VariableDeclaration 'in' type=RangeType) +// ) +// ']' +//; + +ArrayExpression: + {ArrayExpression} '[' (values+=Expression (',' values+=Expression)*)? ']' +; +QueueExpression : + {QueueExpression} '{|' (values+=Expression (',' values+=Expression)*)? '|}' +; + +EnqueueExpression : + 'enqueue' '(' element=Expression ',' queue=Expression ')' +; + +AppendExpression : + 'append' '(' left=Expression ',' right=Expression ')' +; + +LiteralExpression: + BooleanLiteral + | NaturalLiteral +; + +BooleanLiteral: + ({TrueLiteral} 'true'|{FalseLiteral} 'false') +; + +NaturalLiteral: + value=INT +; + +LowerBound: + NaturalLowerBound + | DecimalLowerBound + | VariableLowerBound +; + +UpperBound: + NaturalUpperBound + | DecimalUpperBound + | VariableUpperBound + | InfiniteUpperBound +; + +NaturalLowerBound: + (left?='[' | right?=']') value=INT +; + +NaturalUpperBound: + value=INT (left?='[' | right?=']') +; + +DecimalLowerBound: + (left?='[' | right?=']') value=FLT +; + +DecimalUpperBound: + value=FLT (left?='[' | right?=']') +; + +VariableLowerBound: + (left?='[' | right?=']') variable=[BoundDeclarationUse] +; + +VariableUpperBound: + variable=[BoundDeclarationUse] (left?='[' | right?=']') +; + +InfiniteUpperBound: + {InfiniteUpperBound} '...' '[' +; + +Requirement: + 'assert' property=[PropertyDeclaration] ('-true' positive=STRING)? ('-false' negative=STRING)? +; + +PropertyDeclaration: + 'property' name=ID 'is' property=Property +; + +Property: + QuantifiedProperty +; + +QuantifiedProperty returns Property : + (({AllProperty} 'all'|{ExistsProperty} 'exists') variable=VariableDeclaration + 'in' type=RangeType '.' child=QuantifiedProperty) + | PropertyDisjunction +; + +PropertyDisjunction returns Property : + PropertyImplication ({PropertyDisjunction.left=current} 'or' right=PropertyImplication)* +; + +PropertyImplication returns Property : + PropertyConjunction ({PropertyImplication.left=current} '=>' right=PropertyImplication)? +; + +PropertyConjunction returns Property : + PropertyNegation ({PropertyConjunction.left = current} 'and' right=PropertyNegation)* +; + +PropertyNegation returns Property : + ({PropertyNegation} 'not' child=PropertyNegation) | + AtomicProperty +; + +AtomicProperty returns Property : + ( PatternProperty ) + | + ('(' Property ')') +; + +PatternProperty : + LTLPattern | + DeadlockFreePattern | + InfinitelyOftenPattern | + MortalPattern | + PresencePattern | + AbsencePattern | + AlwaysPattern | + SequencePattern +; + +LTLPattern: + 'ltl' property=LTLUnary +; + +DeadlockFreePattern: + {DeadlockFreePattern} 'deadlockfree' +; + +InfinitelyOftenPattern: + 'infinitelyoften' subject=AtomicObservable +; + +MortalPattern: + 'mortal' subject=AtomicObservable +; + +PresencePattern: + 'present' subject=AtomicObservable + ( + ('lasting' lasting=INT) + | + ( + ('after' after=AtomicObservable) + ( + ('within' lower=LowerBound ',' upper=UpperBound) + | + ('until' until=AtomicObservable) + )? + ) + | + ( + ('before' before=AtomicObservable) ('within' lower=LowerBound ',' upper=UpperBound)? + ) + | + ('between' min=AtomicObservable 'and' max=AtomicObservable) + )? +; + +AbsencePattern: + 'absent' subject=AtomicObservable + ( + ( + ('after' after=AtomicObservable) + ( + ('within' lower=LowerBound ',' upper=UpperBound) + | + ('until' until=AtomicObservable) + )? + ) + | + ( + ('before' before=AtomicObservable) + ('for' lower=LowerBound ',' upper=UpperBound)? + ) + | + ('between' min=AtomicObservable 'and' max=AtomicObservable) + )? +; + +AlwaysPattern: + 'always' subject=AtomicObservable + ( + ('before' before=AtomicObservable) + | + ('after' after=AtomicObservable ('until' until=AtomicObservable)?) + | + ('between' min=AtomicObservable 'and' max=AtomicObservable) + )? +; + +SequencePattern: + AtomicObservable + ( + ('leadsto' {LeadsToPattern.subject=current} follower=AtomicObservable + ( + ('before' before=AtomicObservable ('within' lower=LowerBound ',' upper=UpperBound)?) + | + ('within' lower=LowerBound ',' upper=UpperBound) + | + ('after' after=AtomicObservable + ( + ('within' lower=LowerBound ',' upper=UpperBound) + | + ('until' until=AtomicObservable) + )? + ) + | + ('between' min=AtomicObservable 'and' max=AtomicObservable) + )? + ) + | + ('precedes' {PrecedesPattern.subject=current} follower=AtomicObservable + ( + ('before' before=AtomicObservable) + | + ('after' after=AtomicObservable ('until' until=AtomicObservable)?) + | + ('between' min=AtomicObservable 'and' max=AtomicObservable) + )? + ) + ) +; + +LTLProperty : + LTLQuantified +; + +LTLQuantified returns LTLProperty : + (({LTLAll} 'all'|{LTLExists} 'exists') index=VariableDeclaration + 'in' type=RangeType '.' child=LTLQuantified) + | + LTLDisjunction +; + +LTLDisjunction returns LTLProperty : + LTLImplication ({LTLDisjunction.left=current} 'or' right=LTLImplication)* +; + +LTLImplication returns LTLProperty : + LTLConjunction ({LTLImplication.left=current} '=>' right=LTLImplication)? +; + +LTLConjunction returns LTLProperty : + LTLBinary ({LTLConjunction.left = current} 'and' right=LTLBinary)* +; + +LTLBinary returns LTLProperty: + LTLUnary ( + ({LTLUntil.left = current} 'until' right=LTLUnary) + | + ({LTLRelease.left = current} 'release' right=LTLUnary) + )? +; + +LTLUnary returns LTLProperty : + (({LTLUnaryNegation} 'not' | {LTLUnaryNext} 'next' | {LTLUnaryAlways} '[]' | {LTLUnaryEventually} '<>') operand=LTLUnary) | AtomicLTL +; + +AtomicLTL returns LTLProperty : + {LTLVariable} declaration=[PropertyDeclarationUse] + | ObservableEvent + | '(' LTLProperty ')' +; + +StateEvent: + EnterStateEvent + | + LeaveStateEvent +; + +EnterStateEvent: + 'enter' subject=AtomicObservable +; + +LeaveStateEvent: + 'leave' subject=AtomicObservable +; + +Observable : + ObservableDisjunction +; + +ObservableDisjunction returns Observable : + ObservableImplication ({ObservableDisjunction.left=current} 'or' right=ObservableImplication)* +; + +ObservableImplication returns Observable : + ObservableConjunction ({ObservableImplication.left=current} '=>' right=ObservableImplication)? +; + +ObservableConjunction returns Observable : + ObservableNegation ({ObservableConjunction.left = current} 'and' right=ObservableNegation)* +; + +ObservableNegation returns Observable : + ({ObservableNegation} 'not' child=ObservableNegation) | AtomicObservable +; + +AtomicObservable returns Observable : + '(' Observable ')' | + ObservableEvent +; + +ObservableEvent : + PathEvent | StateEvent +; + +PathEvent : + path=Path item=Subject +; + +Path: + (items+=PathItem '/')+ +; + +PathItem: + NaturalItem | NamedItem +; + +NaturalItem: + value=INT +; + +NamedItem: + declaration=[PathDeclarationUse] +; + +Subject: + StateSubject | ValueSubject | TagSubject | EventSubject +; + +StateSubject: + 'state' state=[StateDeclaration] +; + +ValueSubject: + 'value' value=AtomicExpression +; + +TagSubject: + 'tag' tag=[TaggedStatement] +; + +EventSubject: + 'event' event=ID +; + +terminal INT returns ecore::EInt : ('0' .. '9')+; + +terminal ID returns ecore::EString : (('a' .. 'z') | ('A' .. 'Z') | '_') (('a' .. 'z') | ('A' .. 'Z') | ('0' .. '9') | '_')* ; + +terminal FLT returns ecore::EFloat : INT '.' INT; \ No newline at end of file diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/FiacreRuntimeModule.xtend b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/FiacreRuntimeModule.xtend new file mode 100644 index 0000000..0cd2478 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/FiacreRuntimeModule.xtend @@ -0,0 +1,21 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ + /* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext + + +/** + * Use this class to register components to be used at runtime / without the Equinox extension registry. + */ +class FiacreRuntimeModule extends AbstractFiacreRuntimeModule { +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/FiacreStandaloneSetup.xtend b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/FiacreStandaloneSetup.xtend new file mode 100644 index 0000000..892dc7d --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/FiacreStandaloneSetup.xtend @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext + + +/** + * Initialization support for running Xtext languages without Equinox extension registry. + */ +class FiacreStandaloneSetup extends FiacreStandaloneSetupGenerated { + + def static void doSetup() { + new FiacreStandaloneSetup().createInjectorAndDoEMFRegistration() + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/GenerateFiacre.mwe2 b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/GenerateFiacre.mwe2 new file mode 100644 index 0000000..58c55d4 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/GenerateFiacre.mwe2 @@ -0,0 +1,62 @@ +module fr.irit.fiacre.xtext.GenerateFiacre + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* + +var rootPath = ".." + +Workflow { + + component = XtextGenerator { + configuration = { + project = StandardProjectConfig { + baseName = "fr.irit.fiacre.xtext" + rootPath = rootPath + eclipsePlugin = { + enabled = true + } + createEclipseMetaData = true + } + code = { + encoding = "UTF-8" + fileHeader = "/*\n * generated by Xtext \${version}\n */" + } + + } + language = StandardLanguage { + name = "fr.irit.fiacre.xtext.Fiacre" + fileExtensions = "fcr" + + grammarAccess = grammarAccess.GrammarAccessFragment2 auto-inject{} + emfGenerator = ecore.EMFGeneratorFragment2 auto-inject{} + serializer = { + generateStub = false + } + + validator = validation.ValidatorFragment2 { + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + } + scopeProvider = scoping.ImportNamespacesScopingFragment2 auto-inject{} + qualifiedNamesProvider = exporting.QualifiedNamesFragment2 auto-inject{} + builder = builder.BuilderIntegrationFragment2 auto-inject{} + generator = generator.GeneratorFragment2 auto-inject{} + formatter =formatting.Formatter2Fragment2 auto-inject{} + labelProvider=ui.labeling.LabelProviderFragment2 auto-inject{} + outline=ui.outline.OutlineTreeProviderFragment2 auto-inject{} + quickOutline = ui.outline.QuickOutlineFragment2 auto-inject{} + quickFixProvider = ui.quickfix.QuickfixProviderFragment2 auto-inject{} + contentAssist =ui.contentAssist.ContentAssistFragment2 auto-inject{} + parserGenerator = parser.antlr.XtextAntlrGeneratorFragment2 { + options={ + backtrack=true + classSplitting=true + fieldsPerClass="500" + } + } + junitSupport =auto-inject {} + renameRefactoring = auto-inject{} + resourceFactoryFragment = auto-inject{} + compareEditor = auto-inject{} + } + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/generator/FiacreGenerator.xtend b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/generator/FiacreGenerator.xtend new file mode 100644 index 0000000..6ad959f --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/generator/FiacreGenerator.xtend @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ + /* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext + +/** + * Generates code from your model files on save. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation + */ +class FiacreGenerator extends AbstractGenerator { + + override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) { +// fsa.generateFile('greetings.txt', 'People to greet: ' + +// resource.allContents +// .filter(typeof(Greeting)) +// .map[name] +// .join(', ')) + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/scoping/FiacreScopeProvider.xtend b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/scoping/FiacreScopeProvider.xtend new file mode 100644 index 0000000..cbd7c63 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/scoping/FiacreScopeProvider.xtend @@ -0,0 +1,726 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ + /* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.scoping + +import fr.irit.fiacre.xtext.fiacre.ArrayExpression +import fr.irit.fiacre.xtext.fiacre.AssignStatement +import fr.irit.fiacre.xtext.fiacre.CaseStatement +import fr.irit.fiacre.xtext.fiacre.ComponentDeclaration +import fr.irit.fiacre.xtext.fiacre.ComponentInstance +import fr.irit.fiacre.xtext.fiacre.ConstantDeclaration +import fr.irit.fiacre.xtext.fiacre.Declaration +import fr.irit.fiacre.xtext.fiacre.FunctionDeclaration +import fr.irit.fiacre.xtext.fiacre.IdentifierExpression +import fr.irit.fiacre.xtext.fiacre.IdentifierPattern +import fr.irit.fiacre.xtext.fiacre.Model +import fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration +import fr.irit.fiacre.xtext.fiacre.PortSet +import fr.irit.fiacre.xtext.fiacre.ProcessDeclaration +import fr.irit.fiacre.xtext.fiacre.PropertyDeclaration +import fr.irit.fiacre.xtext.fiacre.ReceiveStatement +import fr.irit.fiacre.xtext.fiacre.RecordType +import fr.irit.fiacre.xtext.fiacre.SelectStatement +import fr.irit.fiacre.xtext.fiacre.SendStatement +import fr.irit.fiacre.xtext.fiacre.StateSubject +import fr.irit.fiacre.xtext.fiacre.StatementSequence +import fr.irit.fiacre.xtext.fiacre.TagSubject +import fr.irit.fiacre.xtext.fiacre.TaggedStatement +import fr.irit.fiacre.xtext.fiacre.Type +import fr.irit.fiacre.xtext.fiacre.TypeDeclaration +import fr.irit.fiacre.xtext.fiacre.UnionType +import java.util.ArrayList +import java.util.Collection +import java.util.List +import org.eclipse.emf.common.util.TreeIterator +import org.eclipse.emf.ecore.EObject +import org.eclipse.emf.ecore.EReference +import org.eclipse.xtext.scoping.IScope +import org.eclipse.xtext.scoping.Scopes +import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider + +/** + * This class contains custom scoping description. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping + * on how and when to use it. + * + */ +class FiacreScopeProvider extends AbstractDeclarativeScopeProvider { + def IScope scope_StateDeclaration(ProcessDeclaration process, EReference ref) { + //println("scope_StateDeclaration") + buildStateDeclaration(process) + } +/* + * l'entete de la méthode + * scope_EClass_Ereference() + * EClass c'est la classe ou la super-classe + * (comme IdentifierExpression et ConstructionExpression + */ +// def IScope scope_ExpressionDeclarationUse(Model process, EReference ref) { +// println("scope_ExpressionDeclarationUse") +// buildExpressionDeclarationUse(process) +// } + +// def IScope scope_ExpressionDeclarationUse(ComponentDeclaration component, EReference ref) { +// println("scope_ExpressionDeclarationUse") +// buildExpressionDeclarationUse(component) +// } +// def IScope scope_ReferencedType_type(ProcessDeclaration process, EReference ref) { +// println("scope_ExpressionDeclarationUse") +// buildExpressionDeclarationUseReferencedType(process) +// } + def IScope scope_TypeDeclarationUse(ProcessDeclaration process, EReference ref) { + //println("scope_TypeDeclarationUse") + buildTypeDeclarationUse(process) + } + + def IScope scope_RecordAccessPattern_field(ProcessDeclaration process, EReference ref) { + //println("scope_RecordFieldDeclarationUse") + buildRecordFieldDeclarationUse(process) + } + + def IScope scope_RecordAccessExpression_field(ProcessDeclaration process, EReference ref) { + //println("scope_RecordFieldDeclarationUse") + buildRecordFieldDeclarationUse(process) + } + + def IScope scope_RecordAccessExpression_field(FunctionDeclaration process, EReference ref) { + //println("scope_RecordFieldDeclarationUse") + buildRecordFieldDeclarationUse(process) + } + def IScope scope_RecordAccessExpression_field(PropertyDeclaration process, EReference ref) { + //println("scope_RecordFieldDeclarationUse") + buildRecordFieldDeclarationUse(process) + } + + def IScope scope_FieldExpression_field(ProcessDeclaration process, EReference ref) { + //println("scope_RecordFieldDeclarationUse") + buildRecordFieldDeclarationUse(process) + } + + def IScope scope_FieldExpression_field(FunctionDeclaration process, EReference ref) { + //println("scope_RecordFieldDeclarationUse") + buildRecordFieldDeclarationUse(process) + } + + def IScope scope_FieldExpression_field(ComponentDeclaration component, EReference ref) { + //println("scope_RecordFieldDeclarationUse") + buildRecordFieldDeclarationUse(component) + } + +// def IScope scope_ConstructionExpression_declaration(ComponentDeclaration component, EReference ref) { +// println("scope_RecordFieldDeclarationUse") +// build_ConstructionExpression_declaration(component) +// } +// def IScope build_ConstructionExpression_declaration(ComponentDeclaration declaration) { +// val Collection tags = new ArrayList() +// val Model model = eContainer(declaration, Model) as Model +// println("model " + model) +// for (d : model.declarations) { +// if (d instanceof TypeDeclaration) { +// val Type t = (d as TypeDeclaration).value +// if (t instanceof UnionType) { +// for (ut : (t as UnionType).tags) { +// tags.addAll(ut.tags) +// } +// } +// } +// } +// return Scopes.scopeFor(tags) +// } +// def IScope scope_ConstructionExpression_declaration(ConstructionExpression id, EReference ref) { +// buildExpressionDeclarationUseInProcessDeclaration(id) +// } + def IScope scope_IdentifierExpression_declaration(IdentifierExpression id, EReference ref) { + if (id.eContainer instanceof ComponentInstance) { + //println("first if") + if (((id.eContainer as ComponentInstance)).ports.contains(id)) { + //println("second if") + buildPortDeclarations(id) + } else { + if (((id.eContainer as ComponentInstance)).parameters.contains(id)) { + //println("second if") + buildParametersDeclarations(id) + } + } + } else { + if (id.eContainer instanceof ArrayExpression) { + if (((id.eContainer as ArrayExpression).eContainer as ComponentInstance).ports.contains( + id.eContainer)) { + buildPortDeclarations(id) + } + } else { + if (id.eContainer instanceof PortSet) { + buildPortDeclarations(id) + } else { + buildExpressionDeclarationUseInProcessDeclaration(id) + } + + } + } + } + + def IScope buildExpressionDeclarationUseInProcessDeclaration(IdentifierExpression expression) { + val Collection tags = new ArrayList() + //println("econtainer" + eContainer(expression, Declaration)) + switch eContainer(expression, Declaration) { + ProcessDeclaration: { + val ProcessDeclaration process = eContainer(expression, ProcessDeclaration) as ProcessDeclaration + for (pards : process.parameters) { + tags.addAll(pards.parameters) + } + for (vards : process.variables) { + tags.addAll(vards.variables) + } + val Model model = eContainer(expression, Model) as Model + for (dec : model.declarations) { + if (dec instanceof ConstantDeclaration) { + tags.add(dec) + } + if (dec instanceof FunctionDeclaration) { + tags.add(dec) + } + if (dec instanceof TypeDeclaration) { + val Type t = (dec as TypeDeclaration).value + if (t instanceof UnionType) { + for (ts : (t as UnionType).tags) { + tags.addAll(ts.tags) + } + } + } + } + } + ComponentDeclaration: { + val Model model = eContainer(expression, Model) as Model + val ComponentDeclaration component = eContainer(expression, ComponentDeclaration) as ComponentDeclaration + for (pards : component.parameters) { + tags.addAll(pards.parameters) + } + for (vards : component.variables) { + tags.addAll(vards.variables) + } + for (dec : model.declarations) { + if (dec instanceof ConstantDeclaration) { + tags.add(dec) + } + if (dec instanceof FunctionDeclaration) { + tags.add(dec) + } + if (dec instanceof TypeDeclaration) { + val Type t = (dec as TypeDeclaration).value + if (t instanceof UnionType) { + for (ts : (t as UnionType).tags) { + tags.addAll(ts.tags) + } + } + } + } + + } + TypeDeclaration: { + val Model model = eContainer(expression, Model) as Model + for (dec : model.declarations) { + if (dec instanceof ConstantDeclaration) { + tags.add(dec) + } + if (dec instanceof TypeDeclaration) { + val Type t = (dec as TypeDeclaration).value + if (t instanceof UnionType) { + for (ts : (t as UnionType).tags) { + tags.addAll(ts.tags) + } + } + } + } + } + // TODO à modifier en suivant le path + PropertyDeclaration :{ + val Model model = eContainer(expression, Model) as Model + for (dec : model.declarations) { + if (dec instanceof ConstantDeclaration) { + tags.add(dec) + } + if (dec instanceof FunctionDeclaration) { + tags.add(dec) + } + if (dec instanceof TypeDeclaration) { + val Type t = (dec as TypeDeclaration).value + if (t instanceof UnionType) { + for (ts : (t as UnionType).tags) { + tags.addAll(ts.tags) + } + } + } + } + for (process : model.declarations.filter(ProcessDeclaration)){ + for (vards: process.variables){ + tags.addAll(vards.variables) + } + for (vards: process.parameters){ + tags.addAll(vards.parameters) + } + } + } + FunctionDeclaration:{ + val Model model = eContainer(expression, Model) as Model + val FunctionDeclaration function = eContainer(expression, FunctionDeclaration) as FunctionDeclaration + for (dec : model.declarations) { + if (dec instanceof ConstantDeclaration) { + tags.add(dec) + } + if (dec instanceof FunctionDeclaration) { + tags.add(dec) + } + if (dec instanceof TypeDeclaration) { + val Type t = (dec as TypeDeclaration).value + if (t instanceof UnionType) { + for (ts : (t as UnionType).tags) { + tags.addAll(ts.tags) + } + } + } + } + for (parameters : function.parameters) { + tags.addAll(parameters.parameters) + //println("read"+parameters.read) + //println("write"+parameters.write) + } + for (params : function.variables){ + tags.addAll(params.variables) + } + } + } + return Scopes.scopeFor(tags) + } + + def IScope buildParametersDeclarations(IdentifierExpression expression) { + val Collection tags = new ArrayList() + val Model model = eContainer(expression, Model) as Model + val ComponentDeclaration component = eContainer(expression, ComponentDeclaration) as ComponentDeclaration + for (pards : component.parameters) { + tags.addAll(pards.parameters) + } + for (vards : component.variables) { + tags.addAll(vards.variables) + } + for (d : model.declarations) { + if (d instanceof TypeDeclaration) { + val Type t = (d as TypeDeclaration).value + if (t instanceof UnionType) { + for (ut : (t as UnionType).tags) { + tags.addAll(ut.tags) + } + } + } + if (d instanceof ConstantDeclaration) { + tags.add(d) + } + if (d instanceof FunctionDeclaration) { + tags.add(d) + } + } + + return Scopes.scopeFor(tags) + } + + def IScope scope_IdentifierPattern_declaration(IdentifierPattern id, EReference ref) { + switch id.eContainer { + AssignStatement: { + //println("assign") + if ((id.eContainer as AssignStatement).patterns.contains(id)) { + //println("assign2") + buildIdentifierPatternParametersAndVariables(id) + } + + } + SendStatement: { + if ((id.eContainer as SendStatement).port == id) { + buildIdentifierPatternPorts(id) + } + } + ReceiveStatement: { + if ((id.eContainer as ReceiveStatement).port == id) { + buildIdentifierPatternPorts(id) + } else { + if ((id.eContainer as ReceiveStatement).patterns.contains(id)) { + buildIdentifierPatternParametersAndVariables(id) + } + } + } + StatementSequence: { + buildIdentifierPatternPorts(id) + } + CaseStatement: { + //println("case statement") + buildIdentifierPatternForCaseStatement(id) + } + } + } + + def IScope buildIdentifierPatternForCaseStatement(IdentifierPattern pattern) { + val Collection tags = new ArrayList() + val Model model = eContainer(pattern, Model) as Model + for (d : model.declarations) { + if (d instanceof TypeDeclaration) { + val Type t = (d as TypeDeclaration).value + if (t instanceof UnionType) { + for (ut : (t as UnionType).tags) { + tags.addAll(ut.tags) + } + } + } + } + switch eContainer(pattern, Declaration){ + ProcessDeclaration:{ + val ProcessDeclaration process = eContainer(pattern, ProcessDeclaration) as ProcessDeclaration + for (pds : process.ports) { + tags.addAll(pds.ports) + } + } + FunctionDeclaration:{ + val FunctionDeclaration function = eContainer(pattern, FunctionDeclaration) as FunctionDeclaration + for (parameters : function.parameters) { + tags.addAll(parameters.parameters) + //println("read"+parameters.read) + //println("write"+parameters.write) + } + for (vars : function.variables) { + tags.addAll(vars.variables) + } + } + } + //println("tags"+tags) + return Scopes.scopeFor(tags) + } + + def buildIdentifierPatternPorts(IdentifierPattern pattern) { + val Collection tags = new ArrayList() + val ProcessDeclaration process_decl = eContainer(pattern, ProcessDeclaration) as ProcessDeclaration + for (port_d : process_decl.ports) { + //println("Scope PortDeclaration ProcessDeclaration") + tags.addAll(port_d.ports) + } + for (port_d : process_decl.localPorts) { + //println("Scope LocalPortDeclaration ProcessDeclaration") + tags.addAll(port_d.ports) + } + return Scopes.scopeFor(tags) + } + + def IScope buildIdentifierPatternParametersAndVariables(IdentifierPattern id) { + val Collection tags = new ArrayList() + val ProcessDeclaration process_decl = eContainer(id, ProcessDeclaration) as ProcessDeclaration + for (psd : process_decl.parameters) { + for (pard : psd.parameters) { + tags.add(pard) + } + } + for (vsd : process_decl.variables) { + for (vard : vsd.variables) { + tags.add(vard) + } + } + val Model model = process_decl.eContainer as Model + for (d : model.declarations) { + if (d instanceof TypeDeclaration) { + val Type t = (d as TypeDeclaration).value + if (t instanceof UnionType) { + for (ut : (t as UnionType).tags) { + tags.addAll(ut.tags) + } + } + } + } + return Scopes.scopeFor(tags) + } + + def IScope buildPortDeclarations(IdentifierExpression id) { + val Collection tags = new ArrayList() + val ParameterizedDeclaration pard = eContainer(id, ParameterizedDeclaration) as ParameterizedDeclaration + //println(pard) + if (pard instanceof ComponentDeclaration) { + for (eports : (pard as ComponentDeclaration).localPorts) { + for (port : eports.ports) { + tags.add(port) + } + } + for (eports : (pard as ComponentDeclaration).ports) { + for (port : eports.ports) { + tags.add(port) + } + } + } else { + for (eports : (pard as ProcessDeclaration).ports) { + for (port : eports.ports) { + tags.add(port) + } + } + } + return Scopes.scopeFor(tags) + } + + def static EObject eContainer(EObject root, Class type) { + var EObject current = root + while (current != null) { + if (type.isInstance(current)) { + return current + } else { + current = current.eContainer + } + } + return null + } + + def IScope buildRecordFieldDeclarationUse(Declaration process) { + val Collection tags = new ArrayList() +// for (dec : process.generics) { +// tags.add(dec) +// } + + val Model model = process.eContainer as Model +// for (d : model.getDeclarations()) { +// if (d instanceof TypeDeclaration) { +// val Type t = (d as TypeDeclaration).value +// if (t instanceof RecordType) { +// val RecordType u = t as RecordType +// for (ts : u.fields) { +// for (s : ts.fields) { +// //println(s.getName() + " record ") +// } +// tags.addAll(ts.getFields()) +// } +// } +// } +// } + for (rt : model.eAllContents.toList.filter(RecordType)) + { + for (ts : rt.fields) { + for (s : ts.fields) { + //println(s.getName() + " record ") + } + tags.addAll(ts.getFields()) + } + } + return Scopes.scopeFor(tags) + } + + def IScope buildRecordFieldDeclarationUse(ComponentDeclaration component) { + val Collection tags = new ArrayList() +// for (dec : component.generics) { +// tags.add(dec) +// } + + val Model model = component.eContainer as Model + for (d : model.getDeclarations()) { + if (d instanceof TypeDeclaration) { + val Type t = (d as TypeDeclaration).value + if (t instanceof RecordType) { + val RecordType u = t as RecordType + for (ts : u.fields) { + for (s : ts.fields) { + //println(s.getName() + " record ") + } + tags.addAll(ts.getFields()) + } + } + } + } + return Scopes.scopeFor(tags) + } + + def IScope buildPatternDeclarationUse(ProcessDeclaration pdec) { + val Collection tags = new ArrayList() + + for (vd : pdec.variables) { + //println("Scope VariableDeclaration ProcessDeclaration") + tags.addAll(vd.variables) + } + for (port_d : pdec.ports) { + //println("Scope PortDeclaration ProcessDeclaration") + tags.addAll(port_d.ports) + } + for (port_d : pdec.localPorts) { + //println("Scope LocalPortDeclaration ProcessDeclaration") + tags.addAll(port_d.ports) + } +// for (VariablesDeclaration vd : pdec.getVariables()) { +// System.out +// .println("Scope VariableDeclaration in ProcessDeclaration"); +// for (VariableDeclaration s : vd.getVariables()) { +// System.out.print(s.getName() + " "); +// } +// tags.addAll(vd.getVariables()); +// } + for (vd : pdec.parameters) { + //println("Scope ParameterDeclaration in ProcessDeclaration") + tags.addAll(vd.parameters) + } + + val Model model = pdec.eContainer as Model + for (d : model.declarations) { + if (d instanceof TypeDeclaration) { + val Type t = (d as TypeDeclaration).value + if (t instanceof UnionType) { + for (ut : (t as UnionType).tags) { + tags.addAll(ut.tags) + } + } + } + } + return Scopes.scopeFor(tags) + } + + def static List eAllSelectStatement(EObject source) { + val TreeIterator contentIterator = source.eAllContents() + val List result = new ArrayList() + + while (contentIterator.hasNext) { + val EObject next = contentIterator.next + if (next instanceof SelectStatement) { + result.add(next) + } + } + return result + } + + def IScope buildStateDeclaration(ProcessDeclaration process) { + return Scopes.scopeFor(process.getStates()) + } + + def IScope buildExpressionDeclarationUse(Model model) { + val Collection tags = new ArrayList() +// val Model model = d.eContainer as Model + for (dec : model.declarations) { + if (dec instanceof ConstantDeclaration) { + tags.add(dec) + } + if (dec instanceof TypeDeclaration) { + val Type t = (dec as TypeDeclaration).value + if (t instanceof UnionType) { + for (ts : (t as UnionType).tags) { + tags.addAll(ts.tags) + } + } + } +// for (gd : d.generics) { +// tags.add(gd) +// } + } + +// val ProcessDeclaration pdec = d as ProcessDeclaration +// for (vd : pdec.parameters) { +// println("Scope ParameterDeclaration in ProcessDeclaration") +// tags.addAll(vd.parameters) +// } +// for (vd : pdec.variables) { +// tags.addAll(vd.variables) +// } +// +// val List e = eAllSelectStatement(pdec) +// for (EObject ss : e) { +// if ((ss as SelectStatement).index != null) { +// tags.add((ss as SelectStatement).index) +// } +// } + return Scopes.scopeFor(tags) + } + + def IScope buildExpressionDeclarationUse(ComponentDeclaration d) { + val Collection tags = new ArrayList() + val Model model = d.eContainer as Model + for (dec : model.declarations) { + if (dec instanceof ConstantDeclaration) { + tags.add(dec) + } + if (dec instanceof TypeDeclaration) { + val Type t = (dec as TypeDeclaration).value + if (t instanceof UnionType) { + for (ts : (t as UnionType).tags) { + tags.addAll(ts.tags) + } + } + } +// for (gd : d.generics) { +// tags.add(gd) +// } + } + + val ProcessDeclaration pdec = d as ProcessDeclaration + for (vd : pdec.parameters) { + //println("Scope ParameterDeclaration in ProcessDeclaration") + tags.addAll(vd.parameters) + } + for (vd : pdec.variables) { + tags.addAll(vd.variables) + } + + val List e = eAllSelectStatement(pdec) + for (EObject ss : e) { + if ((ss as SelectStatement).index != null) { + tags.add((ss as SelectStatement).index) + } + } + return Scopes.scopeFor(tags) + } + + def IScope buildExpressionDeclarationUseReferencedType(ProcessDeclaration d) { + val Collection tags = new ArrayList() + val Model model = d.eContainer as Model + for (dec : model.declarations) { + if (dec instanceof TypeDeclaration) { + val Type t = (dec as TypeDeclaration).value + if (t instanceof UnionType) { + for (ts : (t as UnionType).tags) { + tags.addAll(ts.tags) + } + } + } + } + + return Scopes.scopeFor(tags) + } + + def IScope buildTypeDeclarationUse(ProcessDeclaration p) { + val Collection tags = new ArrayList() + val Model model = p.eContainer as Model + for (dec : model.declarations) { + if (dec instanceof TypeDeclaration) { + tags.add(dec) + } + } + + return Scopes.scopeFor(tags) + } + + def IScope scope_StateSubject_state(StateSubject ss, EReference ref) { + //println("scope_StateDeclaration") + buildStateSubject_state(ss) + } + + def IScope buildStateSubject_state(StateSubject subject) { + val Collection tags = new ArrayList() + //println("statesubject " + subject.eContainer) + val model = eContainer(subject, Model) as Model + for (process : model.declarations.filter(ProcessDeclaration)) { + tags.addAll(process.states) + } + return Scopes.scopeFor(tags) + } + def IScope scope_TagSubject_tag(TagSubject tags, EReference ref) { + val model = eContainer(tags, Model) as Model + return Scopes.scopeFor(model.eAllContents.toList.filter(TaggedStatement)) + } + + +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/validation/FiacreValidator.xtend b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/validation/FiacreValidator.xtend new file mode 100644 index 0000000..760f93c --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/src/fr/irit/fiacre/xtext/validation/FiacreValidator.xtend @@ -0,0 +1,177 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/* + * generated by Xtext 2.10.0 + */ +package fr.irit.fiacre.xtext.validation + +import fr.irit.fiacre.xtext.fiacre.AssignAnyStatement +import fr.irit.fiacre.xtext.fiacre.BlockStatement +import fr.irit.fiacre.xtext.fiacre.FiacrePackage +import fr.irit.fiacre.xtext.fiacre.FunctionDeclaration +import fr.irit.fiacre.xtext.fiacre.LoopStatement +import fr.irit.fiacre.xtext.fiacre.OnStatement +import fr.irit.fiacre.xtext.fiacre.ParametersDeclaration +import fr.irit.fiacre.xtext.fiacre.ReturnStatement +import fr.irit.fiacre.xtext.fiacre.SelectStatement +import fr.irit.fiacre.xtext.fiacre.TaggedStatement +import fr.irit.fiacre.xtext.fiacre.WaitStatement +import org.eclipse.emf.ecore.EObject +import org.eclipse.xtext.validation.Check + +/** + * This class contains custom validation rules. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation + */ +class FiacreValidator extends AbstractFiacreValidator { + + public static val INVALID_NAME = 'invalidName' +// + @Check + def checkNotReadAttributeInParametersDeclarationOfFunctionDeclaration(ParametersDeclaration parameters) { + if (parameters.read) { + //println("read econtainer"+ eContainer(parameters, Declaration)) + //println(eContainer(parameters, FunctionDeclaration)) + if(eContainer(parameters, FunctionDeclaration) != null){ + error('Not allowed in this scope', + FiacrePackage.eINSTANCE.parametersDeclaration_Read) + + } + } + } + + @Check + def checkNotWriteAttributeInParametersDeclarationOfFunctionDeclaration(ParametersDeclaration parameters) { + if (parameters.write) { + //println("read econtainer"+ eContainer(parameters, Declaration)) + //println(eContainer(parameters, FunctionDeclaration)) + if(eContainer(parameters, FunctionDeclaration) != null){ + error('Not allowed in this scope', + FiacrePackage.eINSTANCE.parametersDeclaration_Write) + + } + } + } + + @Check + def checkFunctionBodyStatement(FunctionDeclaration function) { + if (!(function.statement instanceof BlockStatement || function.statement instanceof ReturnStatement)){ + error('a function statement must be either a return statement or a block statement', + FiacrePackage.eINSTANCE.functionDeclaration_Statement) + } + + // not allowed statements in function + /* + * TaggedStatement + * AssignAnyStatement + * SelectStatement + * ToStatement + * LoopStatement + * IdentifierPattern + * SendStatement + * ReceiveStatement + * WaitStatement + * OnStatement + */ + + } + // TaggedStatement + @Check + def checkNoTaggedStatementInFunctionDeclaration(TaggedStatement taggedStatement) { + if(eContainer(taggedStatement, FunctionDeclaration) != null){ + //println(taggedStatement) + messageAcceptor.acceptError("A tag is not allowed in a function",taggedStatement,null,INSIGNIFICANT_INDEX, null) + } + } + + //AssignAnyStatement + @Check + def checkNoAssignAnyStatementInFunctionDeclaration(AssignAnyStatement assignAnyStatement) { + //println("messageAcceptor " + messageAcceptor); + if(eContainer(assignAnyStatement, FunctionDeclaration) != null){ + messageAcceptor.acceptError("Assigning any value not allowed in a function ",assignAnyStatement,null,INSIGNIFICANT_INDEX, null) + } + } + + //SelectStatement + @Check + def checkNoSelectStatementInFunctionDeclaration(SelectStatement selectStatement) { + + if(eContainer(selectStatement, FunctionDeclaration) != null){ + messageAcceptor.acceptError("Non-deterministic choices are not allowed in a function",selectStatement,null,INSIGNIFICANT_INDEX, null) + } + } + //ToStatement + /* + * It is checked automatically using the scopeProvider mechanism. + * A To statement requires referring to a state declared in the concerned declaration, + * but in a function, states can't be declared. So, user can't write To statements + * Idem to: + * IdentifierPattern + * SendStatement + * ReceiveStatement + */ + + //LoopStatement + @Check + def checkNoLoopStatementInFunctionDeclaration(LoopStatement loopStatement) { + + if(eContainer(loopStatement, FunctionDeclaration) != null){ + messageAcceptor.acceptError("Loop statement is not allowed in a function",loopStatement,null,INSIGNIFICANT_INDEX, null) + } + } + + //WaitStatement + @Check + def checkNoWaitStatementInFunctionDeclaration(WaitStatement waitStatement) { + + if(eContainer(waitStatement, FunctionDeclaration) != null){ + messageAcceptor.acceptError("Wait statement is not allowed in a function",waitStatement,null,INSIGNIFICANT_INDEX, null) + } + } + + //OnStatement + @Check + def checkNoOnStatementInFunctionDeclaration(OnStatement onStatement) { + + if(eContainer(onStatement, FunctionDeclaration) != null){ + messageAcceptor.acceptError("Guards are not allowed in a function",onStatement,null,INSIGNIFICANT_INDEX, null) + } + } + + //ReturnStatement + @Check + def checkNoReturnStatementOutsideFunctionDeclaration(ReturnStatement returnStatement) { + if(eContainer(returnStatement, FunctionDeclaration) == null){ + messageAcceptor.acceptError("A return statement is only allowed in a function",returnStatement,null,INSIGNIFICANT_INDEX, null) + } + } + + //BlockStatement + @Check + def checkNoBlockStatementInFunctionDeclaration(BlockStatement blockStatement) { + if(eContainer(blockStatement, FunctionDeclaration) == null){ + messageAcceptor.acceptError("A block statement (begin ... end) is only allowed in a function",blockStatement,null,INSIGNIFICANT_INDEX, null) + } + } + def static EObject eContainer(EObject root, Class type) { + var EObject current = root + while (current != null) { + if (type.isInstance(current)) { + return current + } else { + current = current.eContainer + } + } + return null + } +} diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/.gitignore new file mode 100644 index 0000000..15f134b --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/.gitignore @@ -0,0 +1,6 @@ +/.FiacreRuntimeModule.java._trace +/.FiacreRuntimeModule.xtendbin +/.FiacreStandaloneSetup.java._trace +/.FiacreStandaloneSetup.xtendbin +/FiacreRuntimeModule.java +/FiacreStandaloneSetup.java diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/generator/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/generator/.gitignore new file mode 100644 index 0000000..46f9c41 --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/generator/.gitignore @@ -0,0 +1,3 @@ +/.FiacreGenerator.java._trace +/.FiacreGenerator.xtendbin +/FiacreGenerator.java diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/scoping/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/scoping/.gitignore new file mode 100644 index 0000000..cbabefb --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/scoping/.gitignore @@ -0,0 +1,3 @@ +/.FiacreScopeProvider.java._trace +/.FiacreScopeProvider.xtendbin +/FiacreScopeProvider.java diff --git a/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/validation/.gitignore b/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/validation/.gitignore new file mode 100644 index 0000000..62cd99a --- /dev/null +++ b/eclipse/plugins/fr.irit.fiacre.xtext/xtend-gen/fr/irit/fiacre/xtext/validation/.gitignore @@ -0,0 +1,3 @@ +/.FiacreValidator.java._trace +/.FiacreValidator.xtendbin +/FiacreValidator.java diff --git a/eclipse/plugins/fr.irit.xtext.xmi/.classpath b/eclipse/plugins/fr.irit.xtext.xmi/.classpath new file mode 100644 index 0000000..16d067f --- /dev/null +++ b/eclipse/plugins/fr.irit.xtext.xmi/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/fr.irit.xtext.xmi/.gitignore b/eclipse/plugins/fr.irit.xtext.xmi/.gitignore new file mode 100644 index 0000000..44d4232 --- /dev/null +++ b/eclipse/plugins/fr.irit.xtext.xmi/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +/bin/ diff --git a/eclipse/plugins/fr.irit.xtext.xmi/.project b/eclipse/plugins/fr.irit.xtext.xmi/.project new file mode 100644 index 0000000..6f6c4e7 --- /dev/null +++ b/eclipse/plugins/fr.irit.xtext.xmi/.project @@ -0,0 +1,28 @@ + + + fr.irit.xtext.xmi + + + + + + 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/eclipse/plugins/fr.irit.xtext.xmi/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/fr.irit.xtext.xmi/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..f42de36 --- /dev/null +++ b/eclipse/plugins/fr.irit.xtext.xmi/.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.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/eclipse/plugins/fr.irit.xtext.xmi/META-INF/MANIFEST.MF b/eclipse/plugins/fr.irit.xtext.xmi/META-INF/MANIFEST.MF new file mode 100644 index 0000000..76d3137 --- /dev/null +++ b/eclipse/plugins/fr.irit.xtext.xmi/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: XText to Xmi serializer +Bundle-SymbolicName: fr.irit.xtext.xmi;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: fr.irit.xtext.xmi.Activator +Bundle-Vendor: IRIT +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.xtext +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-ActivationPolicy: lazy diff --git a/eclipse/plugins/fr.irit.xtext.xmi/build.properties b/eclipse/plugins/fr.irit.xtext.xmi/build.properties new file mode 100644 index 0000000..355626b --- /dev/null +++ b/eclipse/plugins/fr.irit.xtext.xmi/build.properties @@ -0,0 +1,15 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +source.. = src/ +output.. = bin/ +bin.includes = plugin.xml,\ + META-INF/,\ + . diff --git a/eclipse/plugins/fr.irit.xtext.xmi/plugin.xml b/eclipse/plugins/fr.irit.xtext.xmi/plugin.xml new file mode 100644 index 0000000..58575df --- /dev/null +++ b/eclipse/plugins/fr.irit.xtext.xmi/plugin.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/fr.irit.xtext.xmi/src/fr/irit/xtext/xmi/Activator.java b/eclipse/plugins/fr.irit.xtext.xmi/src/fr/irit/xtext/xmi/Activator.java new file mode 100644 index 0000000..b72ff56 --- /dev/null +++ b/eclipse/plugins/fr.irit.xtext.xmi/src/fr/irit/xtext/xmi/Activator.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +package fr.irit.xtext.xmi; + +import org.eclipse.jface.resource.ImageDescriptor; +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 = "org.geneauto.xtext.toXmi"; //$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; + } + + /** + * Returns an image descriptor for the image file at the given + * plug-in relative path + * + * @param path the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return imageDescriptorFromPlugin(PLUGIN_ID, path); + } +} diff --git a/eclipse/plugins/fr.irit.xtext.xmi/src/fr/irit/xtext/xmi/popup/actions/XTextToXmiAction.java b/eclipse/plugins/fr.irit.xtext.xmi/src/fr/irit/xtext/xmi/popup/actions/XTextToXmiAction.java new file mode 100644 index 0000000..ba7f7af --- /dev/null +++ b/eclipse/plugins/fr.irit.xtext.xmi/src/fr/irit/xtext/xmi/popup/actions/XTextToXmiAction.java @@ -0,0 +1,111 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +package fr.irit.xtext.xmi.popup.actions; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.mapping.ModelStatus; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IActionDelegate; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.resource.XtextResourceSet; + +public class XTextToXmiAction implements IObjectActionDelegate { + + private Shell shell; + private ISelection selection; + + /** + * Constructor for Action1. + */ + public XTextToXmiAction() { + super(); + } + + /** + * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + shell = targetPart.getSite().getShell(); + } + + /** + * @see IActionDelegate#run(IAction) + */ + public void run(IAction action) { + IFile file = getFile(); + URI xtextURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true); + + XtextResourceSet resourceSet = new XtextResourceSet(); + + //Resource xtextResource = resourceSet.getResource(xtextURI , true); + Resource xtextResource = resourceSet.createResource(xtextURI); + System.out.println(xtextURI.toString()); + if (xtextResource != null){ + Map options = new HashMap(); + options.put(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE); + try { + xtextResource.load(options); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + Resource xmiResource = new XMIResourceFactoryImpl().createResource(xtextURI.trimFileExtension().appendFileExtension("xmi")); + xmiResource.getContents().add(xtextResource.getContents().get(0)); + EcoreUtil.resolveAll(resourceSet); + try { + xmiResource.save(null); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } +// System.out.println("resource"+ xmiResource.getContents().get(0)); +// Model model = (Model) xmiResource.getContents().get(0); +// System.out.println("model"+ model); +// System.out.println("model" + model.getGreetings().get(0)); + }else{ + ModelStatus sts = new ModelStatus(IStatus.ERROR, "org.geneauto.xtext.toXmi", "http://www.topcased.org/fiacre/xtext/Fiacre", "Impossible to load the selected file for xmi conversion.\n" + + "Maybe this file is not an XText instance ? Status"); + ErrorDialog.openError(shell, "Error", "Impossible to load the selected file for xmi conversion.\n" + + "Maybe this file is not an XText instance ?", sts); + } + + + } + + /** + * @see IActionDelegate#selectionChanged(IAction, ISelection) + */ + public void selectionChanged(IAction action, ISelection selection) { + this.selection = selection; + } + + private IFile getFile() { + return (IFile) + ((IStructuredSelection)selection) + .getFirstElement(); + } + +} diff --git a/eclipse/plugins/fr.laas.libtts/.classpath b/eclipse/plugins/fr.laas.libtts/.classpath new file mode 100644 index 0000000..03469d4 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/.classpath @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/eclipse/plugins/fr.laas.libtts/.gitignore b/eclipse/plugins/fr.laas.libtts/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/eclipse/plugins/fr.laas.libtts/.project b/eclipse/plugins/fr.laas.libtts/.project new file mode 100644 index 0000000..3b1aad8 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/.project @@ -0,0 +1,28 @@ + + + fr.laas.libtts + + + + + + 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/eclipse/plugins/fr.laas.libtts/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/fr.laas.libtts/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3a21537 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +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.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.source=1.8 diff --git a/eclipse/plugins/fr.laas.libtts/META-INF/MANIFEST.MF b/eclipse/plugins/fr.laas.libtts/META-INF/MANIFEST.MF new file mode 100644 index 0000000..c1e53cf --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/META-INF/MANIFEST.MF @@ -0,0 +1,28 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Libtts +Bundle-SymbolicName: fr.laas.libtts;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-ClassPath: lib/httpclient-4.2.5.jar, + lib/httpcore-4.2.4.jar, + lib/libthrift-0.9.2-javadoc.jar, + lib/libthrift-0.9.2.jar, + lib/json-simple-1.1.jar, + . +Require-Bundle: org.slf4j.api, + org.apache.commons.lang3, + org.eclipse.ui.workbench, + org.eclipse.core.commands, + org.eclipse.jface, + com.google.inject, + javax.inject, + org.eclipse.swt, + org.eclipse.equinox.registry, + org.eclipse.osgi, + org.eclipse.ui;bundle-version="3.107.0", + org.eclipse.core.runtime;bundle-version="3.11.1" +Export-Package: fr.laas.libtts, + tts +Bundle-ActivationPolicy: lazy +Bundle-Activator: fr.laas.libtts.Activator diff --git a/eclipse/plugins/fr.laas.libtts/build.properties b/eclipse/plugins/fr.laas.libtts/build.properties new file mode 100644 index 0000000..c2e731e --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/build.properties @@ -0,0 +1,19 @@ +############################################################################### +# Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the LGPL 3.0 +# which accompanies this distribution, and is available at +# https://www.gnu.org/licenses/lgpl-3.0-standalone.html +# +# Contributors: +# Faiez Zalila - initial API and implementation and/or initial documentation +############################################################################### +bin.includes = META-INF/,\ + lib/httpclient-4.2.5.jar,\ + lib/httpcore-4.2.4.jar,\ + lib/libthrift-0.9.2-javadoc.jar,\ + lib/libthrift-0.9.2.jar,\ + .,\ + lib/json-simple-1.1.jar,\ + plugin.xml +source.. = src/ diff --git a/eclipse/plugins/fr.laas.libtts/lib/httpclient-4.2.5.jar b/eclipse/plugins/fr.laas.libtts/lib/httpclient-4.2.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..84fece4bcf77ecb299e8f31f92b9cf435f5d07e1 GIT binary patch literal 433368 zcmbTdbChgfvMpS;ZQHhO+qUgfwr$(CZQDL&^HiOxce*d$?fZ5Adb}^k*qQr}m>Fxw znz>f28IcOoz#vcne|t40B?ccaD<~%^CaSDLCo2}Cs4G9nfZ}Vv_&x8wRD*4x> zS#qiH-BTh1x)40(JtsbQ?u#N;Q}FBpTC2M1kVpzs)R5G&8Tg^eZ|QNX^#E$X;!41i z?D8-$(T>;%_CV2Uz>w)8_0isjRry z%#%sV`WCxF)nL2b#zPY&=rHq`23vuxSW~c(Iu{)SaaIhS#{6p7siGT9?j~q%*$&GZ zXz^yu!kb7VfU@Su1heuf2F>kyFBsU#oLgCJlb?wT`o5+L2{GkI{ja#_YX&VAf)%X^ z=O(Hjcv`d?p#@Q;QTE-ns# zVU7AvtSxOFZ2kg*^RFPr_V(76e>F6$e~q-W`wNc*e~EK(Ha52X3-rJAYUt`>@fWy% z{hT(IrgkoWfkgi&oGex*}K>q+y7rGK>U4u?ZO*uKZgYX=pp}KdzXx)u&A7}D4mOk%Z`?|^A;PL-&|e4 zg_-#krkG^c^-Zgenw`^lgd>xffU7jMc)3pdjb> zS$8;+VRS#V9-3DvpZSuDY_I3RtZ$`N%cThWpZ3uASyy6~afe%N_I=)N3w{{C@b|ho zap0UKx29uudMrJtUr$l#y8Cp$dl92nVm#d2IyHCcZ`H8xzwBu7*xEug_WX4Ac6hpn z#z1>qo3^*>()juJk&*6ZbhgX2+`Rx!wm(zW%ueN5knQNR#G0ktjQo?}CR^pkYmrLM zsq{##j7QE?2&*q@Dn^m;(e+SzwJq5-dT{SM;^kD@ODcz7DA+1Z2>1MbtVehBJ_%%C z@madfCmU3E94gZq%p+4u`L%ks;0JNIOhL;*pr0L3oN!)7FTUsf^kz#?hxFip*mg7_ zp}TN^W7Q|+em)NL^KQmC%#CHCl-Uy_QTxOq8smn*5#|kwt)q~t+Ir~tA)VB zQtIwo-kqpIGT657)^ijZhtvBK9I?(N6OM5*PUBimVG+McM+$~H?XDldYw=b@B zFXJTB_WPoB2TPsB{-7T=5TP76f6Gl9{6Pe*u`nrjgTe*>>T2Ba8i{&XukPY=$9GLF z>1LM^G-?4vsgA`$_}bocqo`D4U2j%r6H!>#`{N_cdUMv_bNxe@x!#u~RRTZpQGRmsJAXjxZ;tZff z1s5}f7(3P*I6s$CJU9%!ST>L{6@%aL-X!Bu2k4RU-z~c_sb6q*mMUQQ?pr^EDYC2R zx`_FK-J@Yo#BF7vf6%-(0@nx!3aGfi?IjcDpGh9^uL?o2!ADS+fRjPdcmkQ?*o1q=e>C5{FQV^~sxx}e7* zBKyn!j9Zz6@;_F*5VOmQ|Hh<44KKy;FL^2;A*KUy0cP%>Lflj30C*oM@*JBLSBFk8g2on_3JDa=m}oIx zWvH4WnVjw~xPtAqwL2ziQ7>N$}>lA+cD)w|c9$@GoI z7zod>Haj5eZbxYKLqX#ExG1{CoE1Nn1K5ag_=`{nrc`e9s?j(V1yxF~8F$;DqBVmk zbIIxT)vrfraxG6y9ed*HVWL!kAuVA29Ru{%Cqoa<3>5xX9E_w^Sc5fs_m+X1B@7aJ2%E8@931zYIC9LhV229cDMVxH{lKN=nw zwIg(>*}W15#z~-w&ET;jWH zn)48U*%*ljI8m0l;~Me@6a5N@@n%FqtTv;rZ$t5{oi+bS=`&b&)F2Gzm+){5CgNiw z&xY!)U{*zt>(4|b@&ugxkTE2H-1|^ zS~Wz#COZ-kFCSn|$1<1KVT9;z+X)N55o5wh6E1zS^B|hrygoCyZ!$#ZH~4NxplKyO z!$AHC29PKaC@#CmTH((ovt8g$xWShPMZ_s+C`EkR3oK7O6u=dL&xap?iqW|1jELYo ziZ9ji24vYVvi*EeU6Z}`^*b!M968m|>nEzz*cAi2pLT8>^+b>pHQ0_#L07JFTCy9O z+5&m=3lz9k`nhlFH&~knOO*PEfM5OzB5Lwea_GUpj$xNowB>Uo_LbRthyJw?Ep~LN ztiSkQgy7<#jJdc>=egAcZ%Do}1ZLT9)GG``?QCP5>n035q8Fpb^WK;}^diOZw#&hJ ztcu)pK>CdY--jXP6z)m=i!%Eox%aHdIZd5r8F8rJibzYLjM5`zi5V42=c9kgK*oqo zGU`77RUKaVQ%3GWHxTI(*r4*j44~IQFV@RfV?gz0MYT+l3p;Oiri=yKlu>|ilmoYA z>@Psm#OVY!BeG!w9#h1|FZ6%QR*x^WW=Ov=OQ;pAg~KEYRjEey=wyL;5!K!TcKN}$ zzDVgkN{WX!<6cBvIQ9YBtvHB))MWn}y+Qaf3rAJKm+gkcuZRijZP&!>>5x>;@}juj z_oy&t1R?m5&mE0?gQwfdE2INsnH*8`5gT2gG3)Y^X=|er5UCoXo74KBf*T-44nEBm zhg}9x(IB+sLgVd>4grliq`P8#93tw9h$?gYbx0>&6vIFW$C^hPmX-9vf`ND+l*zU${L*%#;Ezc7^nlAVIbF0*D`& z75PJsVk(t%Sz7~I<%q}tpkIFs3PLHns=iP?xEZpA{7b zS6NP6RzbdAzP$dGID8dIGRq!YM#F?{W@=n*F0LMNeiU04gj4FZ<@4*auh}fuEFn{~ zzaFBrR<+&t_?en{ztF>5_}SFDopPvoN6|aXG+4!%I2pK%Y6M*{9V|ooQ*4^fLjX!G znsx!siwo+rXb$0Gd^w4VIh=ey2CTt~oOX{o=LPSJZr>gtB*32|cqCd}Jv83gU@~V1 zqTt|n2-Z@XLkyvIc9y7EkTSg~zGLYvf1n&+==%vmv)~Z|Wrb|Z#hl{D7BS5koKGNW zjt*4FUb6>p%%*=zfP1ooz-{EZ%YN~T4Ig$R<=c#U5HzVj?el9#`$DW1d3STo2>E`V zL7K5lVEM(%I4q6p?z#~v1_8a&V`8a+s8jl!Z<B{n4A#;kI?QHQ@0a z8g|3>^zdBNj1zM7ho$HD<<3ygTeC(Tdez6twb*veqxE~&t5L%*;ZNs|PQcEhcd$3e zvLd=15#(BxjdT`Mgc(WG{t9B24ihS?@GH*YK*rm&SA09@`d=5%PS1WlI=`JhKCUl% z5&HIO_kKfZ(fR55Y3zOr5|!p7 zwPgzG>@zR1wDDW;+MRZ~`fUuC7bNMp08ZQ1SupiTs-_3{RE8}9p9&a*3RWaO5n@c{|t4z+O%aZK|#>!lj08& zYToHV_%j47cr*k1Eau2+%KcPh#JFZu`)Ellt(sFT8uLBkrkj~rXNDY1oqjh0yyk8_ z=D>dkQyJGKX%3EGSdq<_-cc$%+dyQ*x*}`Ai8WD{*DYdO0kQi|7NHxoe}CqB0Gk>- zAjmNsl=qB4wlt_;$>|k7zUY`}9p94Pkzf<5Ku&|@`X8^eg?MRCT#&a|FUHE>9 zNw1l-5hgf)SR-N`{u+ZQh7^<3H{v=+BPI08L@_noHy>PQKF_?zM9zK8u~8P^QmG7e z3sDDPuBD5fEwP1+0P2WUlR4+n%CejKJjP(a>~ykG^9nKsoT|LjH68xB4k3ukz<` z__vdxZ)^|LA5}BtRcQAhmTO%j=RytY&`zI#WsMBMS=h<=?pl_%*6wG&yI*L&S&)M< z95FAj=TkP@rOiqqCS`Y#E{yQn>+b`Xt67GX@p{tRr~N{r!IZ|eNLtT@a5E-0!SLe8 zX@lQajiVsv;MP6`MgCYQb$5MS>lt1@iA*U=RQ0P%+Q)sn;Cuo8@7Vt)Qy7U5^-}y1 za)tiL2K4{rQ2clG?myKgAya1;Swk0N3uOmWV>)9SLucn2bx#kJ6I?%X?`aceovH|$ zFq-^!NeF9&LK2Ap04x|m$U*^I?hP5XpsXENH?#q*7ON;FYi;YQ{1#O0A~ahb36bM@ zv_Lg23v1h&p4+WewQp+QzKo3>9PDsDKF^04_s<(|{rA1c55VQa9RRw49>DFeYbH9{ zk&$)6)DK`CJcO>gaSsN75l$b~(KR3nXE^wYb8}zO}Cvu3p944AULd>uc>Av?{l-9d=^S`SQ;wkg@%O@*{E7FOAT7F0 zPt9hUof*>-9Ja!bVzx`Ii`wEbI^H)v=o|Rb zu8LBS3rR$@jLK`KE=>zyvjubviJ>hDgO~|KlQnfZ)B{`TR%@iu)@+Gh(ydjp>}wXb zkh>sR%8axPYRs^XZuC8BWrE78c{)hE#x={;8fDZWadLa z78EEl6dvrIYSp};W{ljw7Be#nepL|-DdenMV7T2XSvT`n$q?I-U{m4Zo6r&?+OjdF z=5JS!KhZ%hi4k;1*Lf)kc(E?=NDFxkRS+V3CB`cy1tSGv|IltN5+1&-HY{(Yh{?(9 zSZ8UWmA2vFK5jH4Q$;C~o-=7~$Lo>N7`ACX2q!cZ8Ah4F@3ZAf?A$L_vtOu@k&(WX zmaQ3bLUH1NK+3WElEs<$6)d?ymg?|Q&SQvNGC<*aPPQ|RG5z2MDYb|yEM%~8nx5PG zMqr>7&x(Y7OY{NhU%zH^8}`B67Lpa z^VOf;6d8LikwJ2?z0}W4B&=K{QJc-TUl}2)-E=jdWXwr*6m~RT>#lhnBU5$blucb= zpk0kTkolAPRf zOv1E52DZ7h(M(3)Zhhs40%9I+}eLH4_2CNz+ zt6gPq1gGD@f?5n(%0vZYEyG64xu~M-`qUWeu_Hseo2d*f@NMS@CTs}^Bz{zel}F$8 z$~B=t6CT1Nb9beYc}M8cy1vev4A0Tg`ju~}X9t$TBYJja2_LT6mybyE1P=Qd} z4%txihJI%Ju$Ae+YFk!|_3AgGq!>P_Y>nx}h!azqIk?DwH-dEQDLCmb=yy_3v@t=6 zDdJK3>@946JtI%0S_^ZlsN;EtKqi3-QoTGJH>cZJ9E=HmjAXBr7|pBX#2$5A4jk ziQN$Jsl`=8&Y6+CVXQJ+s5^x1s7NTr-V?LT3U$-Y)E4v{-^^QiQX;N*X$zth4Co7uWQdM5)4t!Kq?}F;1-Kih?_)_jk9Qs}l#bcXD zwFC{)j1fqvCxMvZ$=5grVYyp;RcL8tZjt+bMc#eXw6)*lpAmq&;Db&-Ap0vg}Mu{ZkL|^)H zFzr=>4NW=BA`~A(tL>rd;Dv97vmTXkDOA$KQ3Y?lHbtm;We!P|3)Je4KYOq-r(S}d zu!<&TZ#r|Or}7L^CF$N8tha1aM*6`ZzAf(E&aHlB1s%FGybt1gSn@tvm@`nroPU%a zAvYZuAZ23`u0O;hHQyvTsu#((9S)Z+K|Iwr(+;RzkGgh5xE(&`fSfx#;{n$;FV=QQ zVKsT(FLWiD zOf=91ett|RRT#hKnM@|TP1B((9r1arc{$iKG4HUC0nt%>Ob09t0_U!2r7tAAH{g1F zS5w=2v6#c)a$37*H1n#bMV>G-_2{l?eQjQ zi#OEwcm7DriS&ZBPopz#na%B+Xio{lKF6nrMYVX;Vnt&av3SN#UOMg6Wh0-uoVXY6 zC$8zD-vDv(*6gkx(Of)oxNeGJmZgMD*WK>VA?kda=(XP(mN? zW+x?f2u@(=I>)FHu87D}*bg@YLXcaCs9o@q9O0tRz438WSN?NN4986^nT^P%H!p=Z z$l_%@;q%Mat4x{^$-^FN|=n#(Z%3 zfb@--eZzl_QL)bHozKi`dS=PJR+ruLv2PWvrF^3{xWr$|Zcz;nZuRMc+7%xlsqI@C z@TA9o)`4F;LALKo6#0BZImi|6PGg=M&v!b0pwUDs7bA;-KR#c6-vg4WPNb>8wU6AV zJ;MzAsG;~mcW8^!KRWadoC+)KWdvABvPaQxUh~FygWFCE_y+#Rq>~9QgwPNS0D${X zJ%#t*B%MlP!c3fOtP1u{E`lyDPL@WlE~XNOb|yBaPXC#Ls%g6;tD=07$!585Z4;fW zf(ZpAF3wAw5YeJbmmplvphSU!mY&DM$(RW-QKBnSu?r&Jc1{j<(dl{2r=bmlUIbO2 z@ZaILr+y3mo|TaR?rG5Bo6g?i^Zv27`*G#$_x&-}1+aQxjM;K_Zy1M9KY5q0{`nHQ zCw;g^ZjApj<$+oE=FlG(#AJf=AoyIMKWg*zmVj{WAFVkra$65C$q!~ajqcRB{zGJx z3a6%D2*a<~B)#58;-jGlND!w=08Eq6@FV`wSVAmj-E%t(nJ+t8p;eUK)jKOV(LuKk z#J-9(Uow5EHcQK#Zl%ujrTjOTIncG55UbZpG~MXCWF2q0IjN0Z8`DI2rW$gPmdkwW zk|J*kTOs5WSEcoWhqm?6X$*E}P4te@7G@8>xpkMSbN@Wk%yO0*v*vYyC?xdYwfHh2 zt5vxf)8>#R^M+0vKbhd-dqk?xRFsKMxvd&m$tJfvNpo|JHd#wrSw*`#s}o!hBp0bi zV{0&#JE{4ln4f8!s|xe8GTfk2K@bfukiX7+?u_-V!u2r0Z;aUMxRvW7eAt;{^I@bB zQDo*VS3|K)@?^+PB(@OpH=5g8ycs)JubHGbf5e9lrx+x)>GHyayQytSNLFU;yYD;!CMKu2lqr&CHeC`o zi_BtM1Vh8cVdv7CvgUNoVslr#Ftnv+8`eCm7UZkSkP{1MNIm5%8@g|Hnk(I3a9Kf#S$6;&SX@AZMaURd!I69>{4ZI-~W0Z4A@ZIBST^Ftim|v>7IJ zB^e{3XzlC5l+PyNdN9w{gv{m`)qu>o0HF5JeWLfpfz%%2LJW0NGwtH4zZ_Htx;SQ* zSXB=(xCT0;P`bljecuEI!rmkX&}>rXS!@SKT4;O|5SqPQryL#%!Y$T@zMx<^nY7f7 zjU`A-lqqU)rxYb6RM5cR4XMrHf+a>+o4GFOFsnIXX;{7+Sftar@iJ<^h_wPyZLXWQ z$tpE?C2{k*D^*Fx2i+F=F1JOiTbjUDY{F6&BF#MIrev>!sVNNo+U*((`Cb<|9hFU= zl7l@(H_SG*l>DE#Ni&2YQ<8SL8z@gBI%QNY;W)H!JPTqUcs7BjzgxEM1Z1 z8UeDZ1Me@>C~Tcff7B z5x9X?i5Bc|?-l91pTlQYSfV_=F>u?%I0ZS4HQL=&1X+(hgd{|N&&2>*4@K*()k%&S z2E7sh)#_+Ws;g#GF+@MVCY!~`9eqr`J&lEvay>-Qb6Bq?PkI;Wi^Y;^Z%nq+n8VYI zzZGjmU5}F8rl)Z;X3n%|$avJ74Ohpv7T*m}Z?8+Xm7P#~=;>O(u72{1nIwH42&F%G zwd)CR3OmqWVTaz;g~I;^=inL_KO|HUI`OW@m*#*Iq&9deT zc2{LSN0GW1z{Koa2iFE|(oot|aQ;c(K%1XK`^4~Ks%1V7(bQE= zIwYWQImdU|Lj_5Yt8y_@9j!Z%DvVihwOx`A*158uj2p}R!({TOd{WYOXvjzN+_@^S zGFtn{oA1fdV&i96n7ZVxbK_^whaZuY53r2BQ^~!G!!&vZX!HzG=;<|6%#Zm~4J$Lk z$7%^2cmLh_00Hnf!DP6YV6fy*|5_j@007Is*}H@coh^-(O^sch{&CAnQPGx17R2CP zqT5k|qL5MqtRT>!s8>)(E-Xc&Cs9SVmN=d`XKF3-wsbR(=zV8@1MPh~i~^B;S{TMR z{dCiYiqx@L%&|A?bw2e;%gF2N^#Nvx%c3l1C_S=5I-(qASO~EmCuQ6Sp*&Vj7trtfxN1`%YCdArS>&lJ6`2_HQ}(QwW_4^4ee;W zT!Go$H`B#%Ex`(H#!fZtyuqf7_TEl26HN~w$8$7aLefhpC>r3+!$@@stEbfvEngX@ zO4Wa)wbR(Hz(hTfEK`F?Au}nM2Ex-4F2paQ?QNzml|_m_LVJL6LW-Y(p#zjjQ1kR{G@) z(b=%9Wn5-~t|Lg^193nPhlZBayThWLpRlmb*aG|#5sl$>hTV&quP!tM<2510p5p*! zZdt4y?0k%f)J-zT5tH!=@A5twmeDk%tH7XY41@j}E+9!jB>IXd9g8T_=Mw6^d z6le475?)j_3>buOfK7}V-QqVAnD*da+br#;=greD4PwQ5$ZUPg@{>79TY)ux{s@07 zt0@K1K3W6)l1~WB?kK_y-n^>CB~^TFfrL8XP`eBaW3-5jrW9R#evjfl`#+{^DTtD} zEPp6p`KP^;+woA5744ScD*&%!a@tgT1FOXy4`u3kg^Dq=uY%1>g zz7D8=Biy^U*;24@FlF?-=6c_7zPkJU-1dGP4_K zH8erZRw^(MDsfVZmaFo>RaTUV`jSDh5BDRB++fQVl^fygrp$aay4I%J9R)?b6+k!A zV^M~JQbbW5Hl#>bR!Gdx!Q%EN%*w#%i^t82Com;xF2mh=blu8ZsL5Oaa==R9TzY_2 zAKa}zN=@`qrB9AA*?6szY*K1T1Rd)z!J1fV={7|xwRUzsT`>+AG2Dd9YCVsW;E4Co zI@-mAblRlELRvMK-AXT4eF*gyo72udpXLJH$z0G?9-m5T)Mw*`1pj`O(_DI#zpOGV?Rcf46?>t~N zmo|UjPJVN^N)trTm8QbF*PLiM))*aFe+sms;W(m-q`9~4;1rw>yGFs59n#$${DvhV zZdKaSEKti)OUULOTw}e0I{GWK5JM09I9!0O7fN%PG~A|tq91E8H@rM;TLRS2(r+B7tQmddh4J%=5ORV<#GU20G$GUl)C*fz z5-vP^V^#f3SBd&?I`@@|o^$QJ?ADPL8b&q9iqtiFw70ZdW9{xuHJzC$4DJh2BV#!9 zBS;*0KAlq%gJ5%a>T^-dIPxs~!-0ivwfeq#T9oE#kQ%RNj)XOb3^m29{+V=_wR#Y4 zt1|Y_hzZD+hyo&YYOq;iTNK}8u=B|qm{-R`i$m%Z!L%M=Tb@(55XCuXC}jc0dSBJ~ z=;a$D3yc>+S1Y}s628CriCp+K`m(M&4X&f&6NISY2n8#=Em^%5z(I%)RJ+N3W8}y3 zmC#$PN$vEAHXoxA;e3oX*0k+Juqmv6;z)QF)Te+_br=3?-V~$?}kH!9uY@RZZ`46VaO>x zwN8P2$vV5KyEAn$xUW2-eh#*Id0{0n@#8Z5L`-PUsQKrV3J2PaLLc$oIy&@su$>Zp z*>SoL_Ju(7`v!~j3mbEo`+RS>N3HV|Q0o`p_x>6lm%_2M7}J%t$^J$r4$DoWKf1fGhH66-E&(AsfVG0+3)l1|*bF^19t=gF(T@8&PZ^8Sp=-X3P!>LXyMR6y*7G@W!}SW*d!{}HRAGB zEv>4}8Z~H_3qV#z(F9r}t7_U+E1OijS38>@tt)h=|3mmDQV3_;^8DV%n2lpI7xj<6!{gCpxs4vJbHZ#3goxa2;;ZJ`P3ZINBLA0#;Buu%Lw0>INBvg0qer!`d~1vRF87cg*{bxX3Z`;WIZzByNA0M*s}NEQsf6ewVhIRTeXg=* zXSLgIsB|;_9sAsZ&Aw`H0R=6yv*}ULuv8w28Szr-u-S@q%?cEtMr`Ybb>3`At_0M3 zqBba1hd@CyQK;9c*{_{u!wM>A)r@4OtlmA+%#KCNIC~Z|QI5D}v!04$PS$e{7iCw4 zmE`7~vS2B~JzW{=(%Cc_={{OnIB_hRs@bwAr^J}chofdu4%4)tyWmNyd$N)8L7&uRl)N6r&~HBGo8Z)M(iaeE3(p( z_4*4=!2IextFc*NW}zU#n9xPoCeWi;23NtdD~4N*E%pvIF0a>}XxEhrQ?Ymo+>*N%f^qTEOv_zhSh$yhoLDXB5C>P)##a}fhANz2xxBD%OyCRGJ!@~*4$j?Kg~)YwYp$C8%* z3G7ZJOKLkd5;rZ%D2X*Pq>1K)0-KF;jc7qfRb{50h9NT>!=jmLNP<`v{tCbZav;Fr z^`VgV@RSf}HwcyN`baEF>dss*>u3?{>1JS~#B`aL7P6yIp8Ur#R=pDovuVll_J*oN zQgfnG>lodZ>(l%SdQ-6+X0Be-^#vR)mdxlWr%C(K_EOi{i};$3s-?!0dyKu-T~*xv z$bMuZ)1Lrsv$=P#R6{+REayv$DR`R`)r3~8!$xLZh*d3HT_*iOpfTA_o|uu?JA{cu z%SNF{x(ygdh~$tcU1cQ4tLq6;k>l{;lV6`BC!!M&^D6G&#QottB# zOuomG8XKk~*+(qS%7bi06EDFnTQ;yAu|jqYkU4k=OCkY8P{8fVVniH_y3-Kh`4mdS z6M&4!>P>es(Pk~mVoPRKUBCS)(8?gDGsfBJ3FJnu0TGRa{kHJx@WF>%}{jW8RP z-~=>z%sy_U_?u4nNDj$AN5O}27}@>l80FEN(W(?0X@MoIT-+c;BPdR04nQ)^x|w%y z5lq{2!b<5LbH*#+Kt(#r$B}01FC=F&6#(+mMvc@2R3a+?8TDmUMNk9Kp*6fmg_b#i zhhD`{(7=X?8q#NH4_zJ0X}C2eWbgEtN`=8E2Z9$jFaaAxXinIfFS3!VMj|!O?a;0g zM2^@lFE6QuYHA8vtk*(2-_f<2O1bdru^YOOWn0|hi(pQT1;JWxy`wToeE>$0ux2qtf%~z~OF?IFof)mH|vegt-y_tYKNv zY*?l|lM13p%FetKg8U}N!2$2n9C3ZfD2Tljj+mW$4Pee2rM%<5%J2q)bjwmSv{Y|8 z2t$*zAIM}9x3I}oh+~pZzZ1AL4+t#)7kM0#%d5M4^Ij!1-bKDeB3?(B#?^0X+JkT+ z&RA024bCaP?+LN%J3k3Wl-9$vvj$JP2;Bny#iV;Fjt35C&QO7$#K|#%dHiY&1>VV= zz8PnUgTfIs=qD4G%nM;pZ^nT<;D@5<#RLwXEx^4&C**(Kac2Y!3|oYdr4VhFe858^ z3{q7evRJbo`-u7FrW1+Vo{koBLuNn>%E8;Ad0@kuvvGmBjQIJS5}`MZqowR@Qv_1D za*yiJ!qf}WS&xi&PB?aKgI6{=l?T?Qi?bkqK2i~<3KK2lq_P{f1d>VhtjU|+1OE7n zk$f?(WBY>V_Y+<+!k*ICnW>GJ!fq6lr4psW^)t=PGtDz-&x(`+XSd3qTl6>RWo`!k za+Ei8Rck?6_!mPzxY)s;x|vgk2lMmpDf(C5AMZeWc;%oS-VP&zDyq~camE8PI!_R2 zPlkl(iXROWhj5;^P)r5pPezh0Kk(HUV0LqlnPx*zMV?HVI{mUSA+2~l)afg$R`RJn zSQn$r$2Ywpra09oo?rK?9a`FG&T7sEB7X-l+?o&xs(DRJO~}L^AIUs8uocwgk8%y} zOqq7qKy3$AIRL01DN5-NiaWyK4_&@-?Dmu2 zk<}t|w&&g^V-MSGpA|px$rQ9Hzx_a8vdzcZd8*8Zl|Fk{Qko%prZb+C&lA--ahmPv zZ~oz5^?v??k#F3BrFMI!rLOcki^B1_Ju!EIm=%m-e3$htz8J|He^fkt(58TCmHNB| zlb-2tXV?fj*L-^|(P!%pr>HL#r7QMSPiuDI8O|%u&>oA*=^NbvLZ_`-xdjAa6;Dysuq67AMZOHaGZ4xWbA;{7a&N?fg3QOI}`%Hc$LW zs=$ufLhNGcJw-40U+X=S!mWC{aSp+#hJS=Gel}4muZ9lz8BUAZ4#a$|>`3DoZ2*i9crEli&%F?$5N- zC4H?q607p?W8a=^55f!W;l)*a#W@mhm*@?u&cL))?F}#2ifmYWQfzbW8ez|DZOG5B z55VKS`y*T^vQJ>_@{kXA-jvK<@b>%uG53!wW;c)hBR-=4QDV6MP3|ve`sc5Vh7P78 zPKIWG&;7*=ja}@WJpZF=mZPHhM}kE7YNhR2R1*{cMQri+u(gy&5iCYR6t+;B4<}^g zp&ipgt8-7gL<{PJ@+Guj;k)0DW17{2hHM6VHZ^m5*|P7=%IW!={0Pnv(m_IJ$P>^- zDYKso$Q**v2hIv?eF~ur?(8`P*!$^9!)!?i`LcN;R zN}I@Is10ZGNtGvy8=EKIYe#ByIkuX4TBSSR$}w+?dvH^6vdv`1oo4HCSK6=!Qnjsv zUJv9mN9#4DXWI4z^y3kRQr(B5%XLIIYh7)c4KEM8Tdhrv!Vfj{af3~!YFg=xg&&dJ zr#2Zv2WhQObK}H&+o@f2ZihNV$ zVac{ir;0T>l{rrg-V2inOYsR<-m~>5N)|4SjWem-FEazG7;ukqhIz>!SW6zm^WMEp zmeU5Q1$Xj~`J%jL>0fz-Ttx>bt8^2_4D>h&OG_Eh^l5~;s8rFQEumVrt?(+XPI{oa z_SJO!k#~kEm@p@_V1Q+br5ziwvu@)HDjB$;>|Fsci%;8_bW2-t@nzDa-XUseo?^Y! z?hr4O+c(76@JUN&*usR)tIuV|Woa{6gKaCx=hqnI9lj0(arVTE!6!yrN;8Rs2n!Os!Z`)*b|Ud>_5c z1OI#sfhdj`gaNe@dk7X95#-X$a&bl`CUH`e`bBoZRzNgd*2g5Aaq1om*a!HJEdTIl zM}_@U9^Qrl0ATw!EdN`1n2~`~#NO7>((ZrNg}0QE)iJ(v{uK8Spi2V_HP*^mAP5W5 z5UbJdg;)XuMH^JRCg}dAGm>@fx4anLzV=GuUr3kH&$?`eF|1~6hRwQ^ev9INZ1U$X z-P)uECjxLSO&n)8{q#xOd;Q(}c>Q%hH`fPnHlPkD!azencc=n@myH&W;7A65F9*&L zsK}R%>R1bCjDhaR=daGV;1AtSVW2cz0)Qo*Sa*Nm3YZ4G?r(^w{^p}Pj7?1+-Zjo_dAD0O=rGT*j z^CCP)w(|YaNvSMHVNm8zKU?@T?U9BkkNIqb}QGgClhv z<~d;OihiOoM4fHG=geg1HHeaFG@-+%m(+}ArlkT0k)&0mO~Ty->HsZ~_Ok~|T?y+D zAT?DfDm%(E7jP7F^;|mWWuTd<%odetsNoh?FNM((<9PjL#V3;BHtacNEwsK`t5U`{ zZLM^2hvU+0*)lR#UD&FYj{Bnzvkhhwtn^f+qp=#bg$iF#sG(M4*5eCRnA1B4+MJnf zl=`*+Lf3+1usTKbWoKsU^MKFhY-OnGX+l9su3s>C)Y zIc^ayY!|h5(hGX?Q@3_w%Pd%7gtS^hbIe*@RXrPXYS&+?)@(HCX`)(^8OnSiv2G`d zlu?XGW(Ph_bmUl3Ce3QDRBSt50}=_ePK{cDH4ZuvlGj}rexBct^6cTZ|7blT4ZEXMWCieRP^hUK+$cW#}sMfu00ZZ z^)a~4j7O!JS@p2G&Mfg~qRsYhK4+N9NzG8r{2oLaFmZ&t4grZ*rF7d8NA?^09 zmlxpAEovOd!!C(`^EDn4JU1`o3hdLb z2uaBc{;UXhCC-Vv!)Y&$G37VS7P$_^zklH1`OgNOzBc zO@=;?V?}9XT$L6&Pli?Kvmhmmm?e!Sq#bFIH8#7+rJWYZ=DM^Cy*TX9m2%1!)d+H5o<0-7dU-#F+Rq#&asny`5ol7s8Jgj+A|IrAXMXgdTli zZ8wIT>euCE3q-eUCswget~pMwNlva&POe#p-NFgmu7^ANLdvzj8%EYGPDaJtmttc4 zO4fOXfnMFR(*aDwdNBij{I3m0zVx|f=}#J!_9u<{cN@$`Hb6EFcOo8bHWIVKI^jE;Gz%j@sHW;~v?s8zfhX870S)`IH{*+7b$8 z1Ju9C$>DUq$!KyvUCXQE2bdq7hM)wsq`!m`BT9csHA9&eLmYCZ zFNZosnWi3RaG}j;rF4c7RNXR!sNn<;EGV(1IwMJ&x<2@qmH|!dtO$SuUW5QqrTga!8CcO%k>$&8_ zs3SULC?kAAZD*_t%$O8AtSqhr<*cpB9Z@W3x5?RMF>kDB{2RA=Osp~F6igibBYTc) z%Ve_epGIrL5Wy}-WY0x?MwxH>HC?55v+sDg{(QYHW%RDG+TYL1+@yrR8{+kDWy-H{ z%Tenp3BH9`ADiy%4Fd!d5H8>bPP_+keOT2f+Ow#?C29(`MV! zm9}l$c2=cr+qRuqY1_7K+qP}nsLalP@7>+!-#t$6GsbuEUVax5F=MVZ*AsxwEN3Tt zjs1r!i_Y{x>kmaSDi1xta?|^6B&dw^7i_`U)Y&lXQ*~;|I%C;D>TEx=Pt?qOpq*a!>F?#C!l} zp7P?t%LHu=27gZ{5Z97yV@1Z{EeuxXv)t|n!0m+E^eB{VHSA#A{9C6X;&?pY@f+7O z_q|pAQ>Q`9#M;K*=&u&T-}i{TmIUDU9;r`DQ%g(q;t_(!T%40Vt!mm_#!xAu=} zWg6$i{8R3Z2>Ax^r{v_S?I8wkah%8HisyJDbKKLjs|$#I&>9trys$Pk5NS^tbKUHM zzQA0Z%3~;oT!j;Qw5>H6`n759PXEHm$d;;2pbU9^2&F#?T+uZuTx?y12y}~;FB(dx z#cT9^=}pt^Gp2orn|xG*#|qGGU!s{n)55QqvOg{3x|9{Ld&m3lihSS8p7Fhry696&9tZl$rHhyl)D4(B^q<(^xzWj~tN@-OuGU zRlUSn$NAn3slE0|jV!jN-MTW4f>?s5ZRJ7RkLpZDRBz;Os94$sI;&jO63~wy?_fWEu>H?2)5=En z4rVrgzfC79Svg=TA$!vTppF*Ntq`xNw-+|WElc@Ht-~9LQB%-}S;)&ZEVlL}YPMf6 zj`yAD*nM0bdjnXQOo*6#Ty5KNyQm?q#S{dMdU1G6Ib_}2U;laE{`m=96LP)pif0Cs zJz&ce1)s#S5w`1$jX*tY2S#N+GEjp#T&#*UXwp(nP_D-l#UwghlY2D1kKWJII2Ngo z^vrT#;0iz7;^$G4+XJta*z~Z3E-bGg6m%1$fC6m-HHW%h>8{oyB%sjK+AR`Z4|4cj%pF6p4W7LY8hIWGjvY7(sowvC>$@W|G zL0!^;?WvpwxNA00wt~9Hki8GAtkpNFQrokrF4cu&jSRh9g~+ z3Ocs|5ifAbOwvH$C^dJsGvzr_s(?;*R&OFZC$wocQjm|VZ@P5l4tX9z@cG!OPpw|o z$TAO)hzf5J9OaeN*{Tza)KF_)Dua5jVTDHGDHG28vV>2NLk-%jqXwxR)Wt>GMs4=a zp$s>lcK>m`mSo9Vsu-jr=-&|GOegE_p*Ubaj)d9d#NB6rqoW(lX`0E-`*T%SWf;k` zG`D1*%2P^+v+xw1blWoPF{z=f&xl=SRLN`pxnBQ-d>0F6n^IinR<)lAXPd&DifqY6 zgc+hW?*paK;ME9SHwIdM9nOS)P!UF^sT2$K>vqfe~Q+rF@lq~@Z%LTD8joxwx&)43Vf-+d!z=~2(t6qzUAm8PpTm^)U1ao?a@Cd{7>9G6jfcWzTAYx0{^NE$L50UO! z#q0~fEE@R}`J*xrwjmz>-3r!KFq+n5{C{~OcRNXX8S~nfEPu#{(|FyCs{?j z!TY=KHVsxd5dHSuoZr5i>pvV7f2%Hu8tEAt+5gv=PouJyCGvMD+nQ^0HB(xm5+{d0 z_xD&5>ariQ)wsR}q@p>6tUBZ;{br^$n6pXJ>Z*DVp6rLu?xe0H@xY8qBt#?YXGiMG zh5zj=x({9i952Se^;8nzrcg-e>cLf~%M{Ns*Y@jF=Ih(F%uleHux93pAzYL{dfcVC z&_H?@i#3S;luu@|wIcoA*d+t-ux02~1BekLyD=LWN_MKBcyhN1LE_vrR@t%r^_Wq8 z3H>RWq>98W)WL;%*c7cixqV4`PlD{&3U->mHfP)G&vn0IdX~JGB?c!dQd4U5k-D-Y zS5qxHlWaHln^3T7J~aC#)Va7FHny!&#m2FiJ2MWQzymm~hM)EU4`++?01Aht)Bz>l ztcEd1Oopg!MzAFuikr5jQcm^e>kr+%6>iBcGJY8;yHl~FjtGYL9C&fzoTt)v(oQqU zI3EuWW3-P@8XVdikA;Jb%RHFrc@rgSA94C&RyJBfvz zAcd?*&!w%MwpL_dP6TU0j^$EOH2n^3I4#fz^PF~;ubYZz1nyj~v|k~HzmhCCUM$D4 zz1QwrGm{`x*;KxP6YB<~dOF70o>KLiD#)xC^G@Dx>B5*%En7P3+gH^gjej=k4Zlp{=8oKDp^(X5FYt+cch%-k1~O^gM8q9NXoPL>TH$QXLk{ zKs4pH2O}BDkUn?CRp8X_NeDx8>Ih)soZ2(OsovSh{6!nqhFV?bDm8rWDlnYxs-`>c z)Ar=ZtPkUHFMRkEg;S5nn^?c1W4lwtk2$MvHs*2v*=~kozVhIaX=uAzhgD{C>0+He zdXR?>Vu&-RDW&%LYX;A0wn!cav8dNJS1cjJYYcL)W?69?#*q*{5|?7PeITo+3NaP+ zdP58_E*)MEW~{4v??9K;!fn%9yG~Y6y;MU?yU#xOfqb@$bc>Ru^+S~w{O7@HYD9-d zlJNVRxIE&hNqmR5-_0HSZbf(bK!K4Qnjz1!3z9WwlZUCP?5}1ABBUmpLsLSI=%*1z zA=Di`7@fuP*I9g7I+EekK8|XbsAq@9)Gxm;6f9$W-n{~7INJmrlwVkp&3k-P4}J(s zV6>`2%(H&5g5Y;xhUwk>i`Zkr7UL#4p0oB|N(3rcX&T1xm?{38oc^}$bM_#yF0~ys zo7!^K3n~-*RQ)3ljoC-C9Bp=}Z9j%7_ms~P)fAyTgGlO2DEgCIOh6m)7>(V2KN5Hk z{>U6?gIQdOQsUDW+>~;dF+z^bxE2zUpR01af4prACx%$JS z^}96L%}{Rl!wG$eF+vvwww5`c_>2D3JB*k&a`*-s$|FIDMQsN7EoJ~$wLwx38Yu%O zIFfmr6CxYz09S3+@pFBKSzQX0erp?kQu)0;MZXTRGT9*FP&Tq* z24Kn1^#s0j?&3FcN+HY!!&?x|K|b^ZI&e+uz1~yia%Uc#AxgH&P8dp|W!b|?YbN2> zA+~Z|G$!v*S+t*Z!a@)rdb(L1RgMSSDCGq&z{kJM4KdruoBsJWB%R;)S(g7GQ2)qY ze+QqezWH^3s|zQ}Ygl~S_D|APLyI)`P*UY{BMpnl$QEThU?P6#Fy93*B9QHj&4|&H z3(J*En74XQO3IV`ooK{qOMc1%)r~+7lc|hru4SF>Zf~%fU=5U(66fm6k$r0B&cHBz@=ZwjvT;mW2`;QP^qp-l| zCmWr=c(Uzv?0D|LNMqd>no5&QyrDJ7m}EOBRMfPG5itY~SBGUKBO;v6_CPnm?2-cZ zS{sC_@DzHqB>HM@Dd&ZS^NNcZ6Bpv5mTGr75c;R&wLNbyp7Y3=n!+zBm2Jby*vHC? z6VUAz#e`EMTScRC8On#lU&x|MI)1rwDvZfnwzsGa!Zu-id|`w2=lc+F@|h#zPI;^{ zEHvUX=>up(vJGE4Jkm-NGGqXJQRZ)Pdlzhp`4`L2IYbKwAV^;rJ`veon*0@KIfmg|; zBTKmxQY)i%wWiQa)w;};J3<6C=StPl6@uIOiTH<%*@%=ui8WA2+T0l&Na9@IHe{FFNFXC* zp#_Kn^fc79nWSHUVvsbOrWAUo{8;zf&soCb5tm}TXV>ZPSMEz+84lGS6Xi0Rz%^nQ zKd8A;dg!y}Zoi!qL{D__;z9P=OGS_bz=^B+@G-L|@9&(m&(t6jz!H^B5ta|PA5gaq zLESUAfj>}p!#O`0L%RFwIlGX1boOnSKPrRhz-st$T&2Cb5qnf_JEG7Qc3yuZ?T3f$ zE-%zpmv4n*YD4B=(1G2$xGJ-3%NBH%?q9Qf2>h^mNm_e~E_;?Kd!8$}k!=2{(f$4bZ zLoWVRT+)p>V8kaYSmt;;tGuTo)o5=1ttu^2j#}nGEfRojz@x$uISXQ)v`~O^_)ty| za_nja%BbgaC8LNe+GS}*We^s18N;`Av{a62rQ?*0N$1S1yuS&|=8PIiEtu7)N>;6l zFE*ro>E;;8Z(NFzl63j9Gwa^&4Fr^roE^wVQ)P8Htx3TqBPxfs3VyPgn}E=Golb}b zb65|FR7TBeT6gs0V#zoU%%6H#mG9qlT}`exS!19#?`ioJ#u|8$O~f0E%t=N%LLV?X zn-`py=vxs_WUyEt*(;L@<%N%3AT1OrC`TKSRz&=Yf-D=JluU}ljz}2Uu|B6veI7V- z<^^MV3duY(w{tsmaIVXro;n&SHC`~NzYtGoCA-8%`^K}Ng;|hPGEgo%UO);y+i!|f zeEN14?=QJdNmCgtz^)KcFeOjRF5YHWl&x2LmsyY*wG!FWxam|U%6xsvRtc82xegKT zZKPH}kvK@&dX27nJ4|3Q$Ge@!m{B#4LwvfQdi${$z}dwp0my?^t(ByT6QhK2R?*JV z2FvrBJhp&gR}|Q%GJRY*bqm{28X2|48?%-VSY;I60XTSO)`t(5T{!s-)}wl0$QsjD zioPi<1R%>$8j*KX`RVQ}0l7A(HtuhVrQfymSu3Ztwj~eWdHOH5r4LWoC8{5dRATQ6 zryX*3WB?rv2W?LnmK6RpD}0&Vo2RuT2U&@0bvvJUalAUCFzLQ5l{XiOVvt^a5HxCc6~`xt1eeLC1!=fp3TeS&KyOcR2o+N0mnfMJegQaxFoHfO6|aS z9-qn{JAL$IPmonFqt0_mUAyiA6OVkaWb~LPo~qUc@hBJUIWxuS>YNH9T(Pm!z+JJu zP@-pS-X=*KonTL;OwW_-OfZ&#U`CPL2MBcPNosvruQbCvL3xC=VB8zl|Ef5JTkozw zc3Ckwvz91c=uo86qAsDDK6n`Q>3H=dN4h)ko5Rux10CS8M66&~Qc0m%$+mQ5{~|M+ z8>LWAU}+SFIpeN*rwB3xXK(7Ypu~rpr)W-^Hy-(-%Q)qBf=cBah6$LcUn+Iks@zufl;Aa z%~+sWyvLu^Zn5~sAVGSe7Fg9*=W1iqIepP`K{d$g-+zFNVUpRoueUapY2^?DE(8EdzkV`5r&SkpCMUm?pnUNS40isQe)(>a`J~9P<<)e$& zg=J~1Nd);v$q95!3rR|)+pX@b6F)~N&L`cNQZI4D3YnCfOSK)0FtC--u5Rt9grb|1 z*JT+GjY6w9Ea6}?b$gAi^CY(-B@+TBGrTHF%RoKYEVnp>?H``s z?33s$2Hdl@zWwH_;Z;m&ly&)oxZKsB*hX$j7$(DKSCFQp@OiJpTmk9Ag?ek5&Je<3 z?7;JdJa=rhfQ7^emanO8`g6|my!fS=r>E=dbDR?j-X!D7J3;#7D~aqqq~YFQ4h4=f zYB=Xd#O&GuL-&gNN2{PNURz3>^YWZRQ0#DYNwi1XBNxde#YcAzPbW>!J^DW;R(a2N zQ7ALNCw*7F&mE^)+i{etnM~-Pag`Isa&*FGOROiHDH-TG+Q)?lExcTsx{H81)U^<@ znWrBFa<~_cyIf7dm||1V{>(?^c}2u>pqf^ZgO$`6nN&!wOwEqNXu!RA19rHyy|u9w zDo$a_t+6tKB}6i3Iolkv*eP+^TeqD&@sEe{ZBD_e+8sx;(-;L@clO~8sZ)A_H$v;P zP(us+VZuK{ome_Dh4Q=rP%nQW#gDGl2t=~{#$7b$fHv=GU!yk@gfe)egeHjWA-sqI zpO{5fW&BdI7-0kPu>@QMS!f7qpg6%^;Pmf7_QOV>%CUxg#HO|dg;7u);S2G{z^Een znUl_V(MxzCg!Gh)^FAAj+teAQDMf1|L%S$puo2q`W+NPw0IYVG?<*xfAcQ2qu?5eOcJqhJ~(L?^B5<l zCA}2zCz2(dtFeYP6daGT?X00j0c(kl0DTF{)JxP&&y5;cNjQ^VgSsNvf^23B101Ym zBnXf*V`>PHH4x}i21LKB36K?!dIu(KEwTVLqc2I7T@<6q8S~=}N#h*z9Czr=wx-tF z!Nh9?d|76Xw0GFf0bqS0XFix~YDtUN=k>LQ0YdnKxG7#po9=oUfv?eBnFX|vw;0+{P08unh3K{^h2SI}@b zX9}5)NO~_kbdEiM-2_o{c7Z*k2ZoYl`eUtoY+pYspyz485_Y?{wAzoTM>$qy5~eF5 zxf-k&+pYVzG+$C|pz7m4De(n9j)hG;&rBE~m@& zry$hyvMV3r&dn51FqkANi41}*ci24}N`r|u`0a&4lB^RJWNqRzw9-D?^CXw{!BF-H z0Xl`JkSN1=j*8BT)B+J*A0$=h&E4C<707i0{SI6{V1mw_?X>Vy(&-85q5Jqp zCEWSV`-K^IJA}{gXoMiDlzfyAr667<=6Q+_g3l3#d5U3OCFyIqtVe_kH1fpr7BsO& z^~2jGz^I2;mlx+MeH=5M;6}Nngx<TeL4B{37v@Ud?a?~Tqn|D8`2eDy4dsN(qRYarD|P_F7a`0ndGh>UGJ#2 z&XIvTM5@#AhOuUBiH#AYaaF6I(iU$RZ3x4pUHUM9%h9uAaI#F1zJJ83hwe(xPuGU3 z>qHZMK)qR}CYnt)iOa&+LWfWBo)66KY0cLolJv18?mmC=w z0&~$Vggk{U(2lkXFLekQyMjqxc=bMkK)2veF z7q*B`kWUyV&*#BpUOgw_htbqexhNAK_&nwUI9|i+PLJu=spm|Gr>%~U_vLMXjXpB5 zjzA-nW~33aTwS5TOyDb0gnn_v=bEy-n4UFsUVgbjFO+kLiD*4+5)?c#S!w;gd$$~Y z0ii&GE>fveR1CsYETh{WeS{q#OKRr(EZ5NI(on~q}61msPV-nBGcTRd-bBq#I7UROxC>k4<7=5(#18p15 z;Fr=z(9+y@!oaNmd7A<@hGC=$}`6m7m-&KTN7&lyawoKwK`>AKuX)D!BjKTvoQS-tP86|E^`$%!k#UFRv|~y z{xan|K&r_I6QNkBk;>#Pb4dYT5?PHjQG7x_9|q8;F$v zx-@9ZyIdvxs1HpN*f?2V7EbiCqo^~;9lqAY$XtD)<${>Z@DlB$k_#t7~5mC-80V13-;K9r&sh390{X02i#zU9q z9c{?Rzb-opo4~!}q+0*|^aWwz8y@!pg*cdq!nDfsFBe1f)6MpiqrZuEhtaAOJ5<8+C$QTAyUB;&-&6_+0SC9MG08I7x?f@1?(%ts+~H;A zQte9w#)7CKZ4oxTHqZY<)Hk>EL_n}r42x_J}hjDv6a$rr0&B}BCGN#(?Ud>Skn+1X?qx5JsMB$^%h zsquLI62#WznCf2CPq(f9;m%`Orgr)%k?yEC9piwq@q!1&_|3TF#%hqPM{g`CH=1ynqW2B8A#(b{==2l9Odzm|i z`=IxZ%2fs(qG_PX>6z&Si3=gg%|<17oxS&6Jo7iKbREf1F*{WZo{D`6*_Gk|mQxJ@ z=ryx)Ir|sj6um*_pOjfO?PJ@n(o=}_o`}8Z?i1b@F}Ac*VW!QJ*+|=5el)w%U2RbB zf1|5b%Eod9e+MrdzMoN|{|_?q&n59!eet_=ZS>ESexu5{1C|QPS0#ysk=dURgLFzK zOg4hjk1$hmYjZMyVKJ-5y7;A1egSb^xu` zLCD4_&O1Q;WI-~XyWKlLM=mZ#t96RYslKj9XBVBvk6gza4%VM{*~`~}uISZZGoiG-ho|I$nR|k@a2I#=2 z*(Zr}REsZ|jh0=%_fWU~t*WxDwc8j5jGHznz zDP7~EO|27iD}DL8F7AKPL!b*64O@`^ESej9HtjTJK!vv8rX z){rK%Zlc6RvRi8#=*PIql$5m)={vO&!C5RkR~8!)v7Tg2TsmRG8H@;fB^n%{t6zV5 zWX_2-XFi2{92bTOVWsVdoH*04`$)l*4;kO6wm8NBecX>m6%lP}&R;KG+!$fJ0`%-h zXLEikDmlFhm}x#=N&)ds$sAFNVZ|?X+*n^`9jl~Ic#vRDJeNj7P}e!gCt|g=B&-QQ z@U!0&Q&C*gfuF9jopG_jN}7JYY&dw1)3X)fR90I_=Oq$DlEvIOWJ(#bJh?R}ObOE2A$= ziXt*7@}f0jP}o0fV9m*a+GOmi*r946-7kmi3aX}h0qrW?(P$BV$I`=SpmyRT76bRv z7;-`OL|aDIL>q_kj9$L5!jCFDHJcwZg+P-mEh27c=fc_BayDEDgne6OD0DJSt?0zR z=%CJh&bq3Cf9vYYbr$S}yQ%XV27VOa`vcBq^r1RL1M;(128DXh1k#(f#m85N@?ejz>ru1UihA5tsn_O4 z1EX6(wkOPQxker2qRC387kG-Q<#+hR+muO4K>s=eob;ikMC3XaKO*c!j{9l~yTL~5 z0%8^CWm?mfT~?^x;Y2CZyrs*oDOs?R7A;+dE&5vDtf`Vw-&#m&y%vS`Ugx?qv5M|Q zD!jKm(jY-EXgV_OJpkW$<*v8_|FeM7Q@O)f>m&X`ta^6iqqHftx{1p!$tK>F=W(w* zKuLriPloj~vR1b3!Ms6#?a7PisaegbVh64zld<+(1wk=1Y#^0eS&%wGocyiW3QHvx z#IuK?mp+^l)CP~tt;lv$WR%7Ee5?Bk))*PYeJLrT#+{q7xp4Tpbn<4Rridc*RK^C{ z7I$=zr1nQk%jrXT;TrF`DBTpKTv6ttiKxS2)&1OPq}hFwf-~B{_~0vfH>;3KC)^#w z2E^?&n3$tw70*Z5jmn;l)iPv(5hBY84I_YvZA$qbW6UGZ6xzGK96KD`*KaQ^kcEM^ zbV3lS2aoOn>gCoZBkx zb-E5PvW%6C-Q%>d&1YMu zrpEUN%VmZh<1YA2d1eI<9K>B)Kmni~JFoTkCVxlZUa#y;729la10~yyAo)re_GvZT zVs)NUU%4sOj@BQT++QVpmYZa??ZMyL1afg|1I^MUMia^H7_DsA4W^RNIM|rDC98{a z$-?e4NJdkYd4Y0!!+x9ci)vX9nBEU41o00N^m%-QY=n;qeQ143pF+wY$BHW`o!lPf zl*4bCJycqK2)sVVtU)}tC)BL|?ULi`1o+#|QFLu1#pqr3Gm65H@{eJV)z6TZjvK0oK#s zIJAD7KZrxkw7(}b!+r^0!;Ex6;={SUh?hT7(^UPLZ&&oI&rSulXSPI|!rs*+%m8Wo z;@;IX=G9&SF3kl#)rFWd{pSxs9_E}+)g2X&cI!0y#}~-oz2V2D>>}8=s3XDt_(Am_ zL|stN(Maj9x5)mf=aI_q4oJ%=pG)o)4VFFNmhc3ME%1h`!rYi-wPNZ9<2m}i1`r{l z8ZI<6cYY0s?Ns79R%@iE{@iH~mq|r1QWD#T3bc>PTc} zBCa;upEIsA?lT>xH@m-{r>}ulqSqlo>B;ip`Q`Y~9_W`%24&^p`#r&fQl>+9JJ81< zgJk7&^Cc{G?jY`_KkF#h~dZLw>>S*3mnY1keTDkmNoX`98+^ z@o6U9Cc<}N_AT?fs`rk&3bovn`Bm>@>Aw`Acaa2@>$^$~oilF5+!h5~K}^n)l`9K5 zL@AF8ZN}vkNhvfBji*_iHwD1V8?auBClepE7lhlOqKz!;A@o=Z)j&q~AQ;z&$?bgn~W?VN$|d9;|tk<%P=MAp8AsW9@K4xNvTm> ztg;B@=<%Rqe<9AV)-YF{$L6Gpi0m|0N+4Gtu&x-3Fvl8|#lpxg%ELy8zizQjX@(3& zPV_vT-XpLkK*Z#%s9#(<9Svq(w>C1>cyYGl&b?!jq_QD(pIR z_x;5;3~x__5moU6{by{AQDh#1>9XPn@^#5e>W{T|xr(+k8eD6&%(Z?e0Y^q(&$L7L zIb^=!4D$(|Ck7Mk=+GQ}O7AEaCCyw66?v*|E(bO^I(v{fKV-|=*XY8tq%Re) zQI{M>Q(dNEr`z{%o!%P=w4D|>`s;g%c0vO#-!d+5m#}1txw3Sw7v=~c-j}TREu8AD zEUxP+*V`O)`^Yh*vo`UmI*tz)wvy4yerBO6^i>bPF*-X?Ov;GNbW*DDt1n{N;;1jHkrh))#IoqQQ z^QSq_)bz!WtV>!8zWRmhOiGw56o6K<=p~C&xo14|+8>`FQ0_-FhHRd1QH}J+yV~GwSbSRjBzDcCVV5Rws9<%FJ z{8!s;H{3Nr-1pNjuk9eFb zZ_?Z#p`hi9hauM=^$~ z)WDh%28J?*$i&a!laSg)1iZEIMo<`@@CA_%bASTJO6}RW4ulsY37)FQ`k8SL7Yn;N zx*Z~f((0|BRcvX?;WAlgLOfO!d;3k>7P{{k~@d2a|XCY9Clz!@P;nr&@0xI^*Z`u;s_|V z>jDRu5KpJCifg4aU^tq@+TfYcY?b_L{P_9RGdzT>ZQ0?B3@(%loOb;>A4X2TQ*s}c zv?#jwIewQ6{fz*WXX-cJ%c2M&um80DVgIpafSTvlc+wEZ=}`aDL{%M{#uwb*^)z5Y z1&8fhPbJ}g{P_7F^z>gToPUn{{x{{5e`#!0#jyI;fN-xY684fbP+t?ZE#Lwxe1w~7 zB{V>A@O+Fjjg|ydxmGP4kW~6ZtcgUr$U3pJHnEumXS^6`svvHh*`~D5iR4$Hw9iF% z>}hMe#i(fAi6bZGW~awB$F`f-@z$T=Wt~rq9_tT=D1?mA-HHGQy8v6>AT@~SL4@8{ z_O9^ZL0i5)q{|oFE;?;R2#3AYZ~{CLvZ)Z?a6N74Kv?8l2;Xr17Gl2WeBgW_(lG|j zB;CPUp_N(^?hRjUc0^4GDE_ywfO5ntu@}A!PY?M%IFb)hOKy^&Vv-NlJ{jT<#lC4` zZlc{)^sMmRS9ERNkgH|rNsf`3qz$(u0&cS-4gnKorWc52=HW__MUG5mL^Y=3GZQ5V zr0ZV&6$*3Ke%GZ2NVCR@qcCnQ#|(RQs>DafDP}q|Zm+kMgOQUh9+8Q-G7O|B12c!J z{$fR}-C2gmql__;RfFj`D>+*U`=bo=`H_Ng^E;5G)^kV1y9o11%=i`?JI-Q~ zhnHa-S;msq$!IEbFtm5%w;UOTvvf$XFoI}2y|a$7t$bx-|2U*6Fl!x)!e2IVp%)IM z;4=0DeI)`x*L8Q8?|vbpkx=m(v?)j7%>$3VX&{=aBLCjqny=b5CCOqyW!50Fmqrgd zE#bpyW>ZxzUq6*BJ>c}4-e<(^!(~)0HxpiV<69)F@YC1}QaA+dC*3wHEYMZ}7f;;} z+dXUh?HWtaDP1sM#%rTalJ(rUyz?ky(IoXD7eYp>A}W46TKxT{=kSdKMt6@BM)yE9 zdP4ufUSZN5-RL(ce8d%{n=}Y|`~}8)yrwm)K3Gd?+CgH-!c_~}W<+)15k1MUBNWZ3 zBe2=1gGkZCzr?F(0SvFdozWV6^4YK>`W)JThRQo_-S8(FqOCHMQ#H1QJmarHWU2fY z@h~ZneS>m6$ad${;|90LV~i`E>9{JnT~7~2UU)v@s09-7Q0IV6HHj&)q~c)Q^Uz) zH|?Dj$l2tP4q?Um&Kpldj9`XQ`Z?sTwc9Xudt?C`yS{@i-hMCd9~9U4=J?W@&YrONh#HnJ=e%*@%Y>=sekdN^li2(XmK zjjUzQEv2Mc^MFkNeGAi0n`4r(9ay-=GOG-NoYPgROUSz~%G$J!>vV*sjY2dB5zm1T?>^U}W8rU{s@HKN5NC4zJu z_1j6kB``GH+^|7FmgD41OY#`o5a3wITG zWLJ6k2{KeVDgxBDV9TZMwTP43xE|IK&pZ(CuSG|^R<{wRO|+CP;jeslVcIz`XpUizEq)6hUC-wm=lQ-JOL~unfc&oTW|3sSg)NR4W{)m!Xhd&;eUkfsEuqxtL>8 zl5go0)5o0_EDFtLu;Bz!{;JX!Wqb?hufVMHrn0?~`Ugh(1ws*yH9)is_P&rlkz;Sf zc9#^$H_TQ0YHtH>QS5&JKSPsmY&s@5Z#fleMnG!^rgm_gajzMoo>#G6X7Xo|V|Q69 z@cnIw_~Sfoa0q1-;SCejnYn&f+gv^ioG#Tczk1+r}C1uBUh>xDS}Tb(_+( zX(LrjG}qcT2E;Z+pGhE{hQ1WGB0PvyN`RKg{Ei+yAxo%}p)ksp8{;ib@bYE0mJ|Jc z$n~BK(qs_oE9ZK{3MK;vlN~&Cgh6sI4fHSOuSH7~hFePF6$b`;^10yd?2?#w_EnlouJ9gI=K>8zv^`B&~>#S)h$Y{4I5X#-SjKDeH>#MOLRAv zejQY-J|tdlyi@=dVg66Y@1Uh0DztIAi4rv^t6|hMiBQ)7F8i%87 zBD8trd)E!NS}!lP(l=@X8oQvL*z8C)x$go&3v%UwA%mAa7RdwTqw1+T#N}(7lu7eX zH1@(y98JqILkjflZQN!WHqA9_M_fv+A&ZD}x|>?u8G9rEj?HdCm=KOc%c$+yZ+8sX zYq6wV)pzdUbCf!t<=-vJ5N-t*y?#xzf2m&%(tDY_owf@&P#p8F0Du&qAOX4I zjNHNgVKOZq?af_4UFpX^fUb<~c|pFOD`Nw)MfGnOw#7wL-`Nh4oZEB*HbTn937C{f zXK(NqrTqg;)|`vl3_ls`g0-vf4pl2`gXi&S=2w4-V$%FF+r8FCRHXAEHPfTaf9PL5B(XB8iCHkv_h& zQe*d)5aLTrYyA*QX5f@z5`M}6Y{8%wfdb$V1v4R-YvITknxJPF6fU$8zGNEmx0n83 z2TTB+{66_1HRyRSIY2qUzh7A0#iG0LavJ!ga(xP8;DBy_=Go4~ql^s>cr3JU{lND6 zH)evZEZ1|^_aHdpH#0%_Kb#1E!_NMHa}kCAn}ol5Fq-s}e7|}9Fb;WOfcIj;^L~=!nCo83=g;R8P!FK8 z;sJf>jyEctBC)LO4Ly{W5GDwUkR(OQRWGzL$^->HI-^CA!I)D}fp!H$LDPm;?~Doy z&Mjljd7sDRIjYc|Qgd%5=JSLt4w%AS&jSW)dDSwrYd9NhfE~WkIQ?ak5wqrVCPjqQ zwAVG1&3L1R=2F0MdX+-b9MickGF?l(4Mg=ojJ4e~*#t@_6bAYqiR!GPA7-+CuXJEHTbD8*K9q_3LJ*eZAEO*4h5+16Mn>#&Bd zEQQ$acA1pi^P08Pvj@tn7NAYGQ_yRP6MVekjI{p~_UxHjAcmcsr_ zojSP2a}{03|5QK75LQ#Sj31H_SFVZaC!%JI(6ZBmOtM!UG6;(Nx?~Jm?B+{2?|N`0 z>Uz8C2YMUyTK1VT6bUm60k3 z!K*|yGh{9*j_QHUzr=cg`2zZN%@e5hFi*WK#*fQpX4n!4Fa{35OC)Be>-|RN-c3}S zEQ3qn#En!r=kYp$kg$L7Hi2fi{F9(FEe-b-lEqhmA7hXhvIW&a8iA@tFk_t9Ca@(- z7ri{8QP^#o{GP(mvga4aT!UZ-XQY3Nl!+)`1#QM=@22Q2_my7Ajfj~II#GdBLLSAM zgn}b=nMyxQPc0 z9b4K}8sMLl4}m$eF9ZHR$Jjk+h-WYtl2cb#ZMt8rou9lv-|ldFkdNY8f^LCvi|Bnt zKqrv(M=(dsvf1bjbs0mgksC1BWSMm_Tqoe^II{9l(esR*;|ZFmU4R8-25$%4^P6b= zTs+qcC3S?>HZ~7@^Oq|PB`-Ohf>Ohv%TS+NJE*?E9OOE0qDP34=T<`Blmch-XypZnvM^%V3p^XEsD#w(KuAE z%x%bcWp&9FZkNfj7RH#g|C_X1z&5+*?oM% z{f4hqW5?dlr&9et@HMr+;A>Z&$h-ZNOz7gY|AenC{ulUK=s)0VRsS2l=KnAF8uY)z z*V4b?Yu5i4z9!Dropc?Zf&UNq8dNblbw5JV|AhDd1I9sXnfos=4zyOD4nKdM zd=-XZVjwtd_$@Ovvijz=ZHp4@A4+e+f1m~R_w^XJ*U$)?pk5tsE;pG@a(KMle81k_ zLHa=NtIdND#V7+1qbxC`egT>QQ4=MA9`+Fx3&BBSDkS&(zAHEZ)ept+aw7*9Q-`#iTB^Mrn=RVWONi1Ja z-#$>(PAl6hj?tK6aAsDlF~TGM+IGowq1KPzJ5%{nQG2GD88oMd%R$WmyW{AebgKrN z{x`Fg3VP=nFToxBV8o(>o5%h@th9U$olzU6yu@^@EVoR<(sM^7e*`-h5#a z0;n_vP_Gm#%d%R?P&!k~GmE(SCC0A?0<=Mqab#QAZ&#naKJepuK}S$`ei$iVnnGfR|Aq#K$ay@P`3F|XD2l}$%jCJCnS)AJHGgK`LJ35iF@3WcfOPTU*gA}U*uPhnE&dv>J3oLnE02F0wr zpF4a!VOs<#PKYmsK7!ly7O*c#ZXY2`J_Yg^|4H1vD8x;egV_O(e*onWHJ&LKy}l92h2beYHwl&9r4uBIXT*KbE-L z4{=+-wj)}F7Zk|haawVG-rMt@>HFpF3seVaCu~S_H0bb82R4N|QWup3mBAdIIGub4 z3W$LU`VbveHQzuHAavp)vx855iKQgyt!`@Q4DJ~&CMD>!t06IH%WvYA7@)$`39Iy{ zDug>=Ql-zD-7;KmQIS@+Nh>=FkGb7gu+rMNQ(lGQ-bvFU=>{=4Di1UCaKD+1F;Qa? zG^uwWx(-H%+`6B!DRQnnK1LVB94$!xd5MS+aY7pI?NPM(IIepiaX~PZL$Y2Wzxu0|I5#d+b+{CWh~a%AY3i(_;pV z*JN%sa+5iRq{iBwbf*0r`II3U){)xLwKr#&6X34)j%I*ygfb!9>93>8Y17m389b#o zK>A``92{<^lDg|!h+!lOeqbRNf+`*@3#|9wFTOe>5GdX6|1P8a`O)?*v?PPkKwbOq25058bkh-up9LBUJ`(AkP5^8BJcm4dn zI3Gfv@*KuT6w{v=Q;zb;upp>sk=bLF5x1zd9nOr(P&n6kxANycp5_$*YlbSdz&hIp zQa7vtTk_vc#VgJ>WRTku1~)dzk(HBDM|}^$wYs6#C5rh~qLN*^zSF1%;RK6^29f?$ zAwQKR*U&3)tcoWH`1V^SzdE|*e)Z}uglmQC#2YkF6^J7?juQ+Dzl6bZkd5;~>ug2D zz>e*&d5JM6!+xfOU;?&@t|ze6Q1;%^MZU^UH!rs2my7YyIo831O~C3|2A4wemONsq zO7C_OyoIt?;S1&vwG`#XoL74P%CjZzJ?kD)orT-{6>lMySt+@Jh!}+xyeCUH4alWxJ5(f2~K=`+(RnIi0=`E)!eUi=;5 zyZ9uTDDj5`qxQ%T4RijWA_+(LYltX#jI@uRMrH@v4*vCr4bjEuky>{= z(U{j+1KY#hO?24A&7}su+{0V!{VeO+h0`pGH39SPY@%Co-emv&Zqrv#bLf4Cui1C_ z^8fF`SJ>j45A10CpJI2bLH+yndVxuWekS}5-u?o?3UY~%;0)ed)~%SUUEPeUrn|~l zT<^Q_)1Y}ZzNEWLSDIkJG6ufuY{%u4%Y{LO@<&g(ziunuFhO%yqgn1 zJvdb2T$zqH2~Za4Fs!{;3i%6IvB{87TOoQM$+8}eexD#e#eIJ z5t(oej-V_EP34*TO%I=~%d*AAfwkZbpIn>GUq6LyhpTUhxf9jo4f6Jo+WK!smD2S0YWnrkA~Mp>rtOKKmW2 zRo1}nK(=TSZB4(l#P2(HIs1QuYuohwCaeLh*)xlszr4`?_;=v%(`Tj1=l6Rm1N!3! z?|%s1|GC>p%cQR@KoIDJLteDQ(I#j7T+wk-?O z((~B`^i1)6_*=bGc!upYr1B&Lp?%xqi>dCDobH$F7d^dRpjH0gB0nR4UURmc5Jroj zQ&6|t*In-R1VO;Abwm}d8H=l}z+*CMRnTBS!(oQ21?ftif^0)WQLrS<4hq#2^W+9% zB9Em3!M>#`5I?Gp9jGJRcjY^;9Qa&A48TO4c{QxS^XQekDY|cLhOvnP9EPu5ldc^a zD+gNUlB2O4G(;A_VIWY9%R9E&k8j%1@5?SM=I=5pjGjfr%n{!LaY`~9upOA@jK7{8 zFWyfb`RBWNwrgY8Sff)ET3H37Ud_8oP-$kEms!tD(mtq$E|%+W;rj7M`hxgjwq+Gn z|Mogo{c0@-Uq|O!ST;VEbH&$Et2l}rgIAF@_8I`KxXMcyW!46SNF^~$Jadl^Yl?%cHc8E!n} zIAsW8t;fvzj(KfQK5*YWc;|l0`W`nsc0F+VG=E6)u|J46W4{OsP)`Ry2!FcYVbbBD z+{J;?>0J#B>UygV5g{30KI|(X#!94(cE(1!3kJrz<)Yjr1&4Hb$qy|ep&cNc@DT4~ z(&Z%Ap@eq3*C5RvgrU=klaDGO(nY*x1zWMNoV>lH1*hINppU-onm|!Gv;ph&K_S*E z69%h^c*pzo5*zTyN~#CZIR)t5?N<`YI;4}mO;~Jqk?va|-Sx~gyAMXrOGfQQp&xvH zl%RXi^~`kIg}ZM=HYS^oAa2LiIT3Eh+r!94z5;@OdM7UWOh(#8veWJB06h@4J~=;% z7Pvh#KRt0#0*-OqR?3G!RX*MYIWufUzW<;1iQu+ zWDO^cI5(37%7j%q#l@&qHLEHlQ=w^8Z6i6Oth6V~V&y0V;TRM&g-~Z10UB9lBF>Nj zD}-s$a>_2oZD#zGfMby|O(}tPy|<1Y25y8y{go=KdHgb+)-TOe_?6@$Dm#p zHwV`^`g?nNIZjwSevf@JtzyO~pRj_IWq1k`)aCdu%+ttOI~Lo6IPOw(li@m3(aZ#Y zeXk_PTndr?Ff3ObzVf>ZB*FnQm$FPU*?LUD@VOL-2Qd@klvQnC%Wf3+&yK9u7{fuc zZ3ELTx&%6s^ffuwgq3PoBIyd!()Da{9i*~u?(9rjEaxLjVk2NA0UPz|qj=~Rxhv>4@Zf@H(ym#tIHNEGJ7z$wZSaR^X8r5;9wpNWNNeJ2k)l{AToxdJ*{)9_iLb zHfRpZop{A0A5lfQm@`f0O(d}{H2K8oMXGfKE zqt=Kbimen2EerNiY{CUCx(e#1MGWlj%tKI_x4+urWm-g_3Lri>~6hjWFn@yNDW|Vi(K8a#MF>Yz>#OV58F)OcMJg ztrJkyp%}?*1zxt^rJ}Udy-^|e+c?S+h zGnWGkPkqOkga*K5H3AQE)ij#>k+taJ$CF4#;X~-UFIKl4T{GkRHB^j18CUFEe}_U+ zcF+Y}n_M2{sV~eCL+UJYvBMnM@m_Rvz9EX@oLYLQbP&g~zAfH^xx5M7@yT9czsj<{ z03M8mybT=MQ9V1FH|{mV(%g`RR4eXMjQ~kA+h8=Q=LKsaR`uhx_2ARv>qfBaretg{ z?hpu>D5T&aG2wY&-y7-9@Ia3aLua2o=(!`lo1vj~@DSy0u<*Mo zIDMGh<^k?plwr0|yn$R2+q%HFh4PU5Uu{4jC{cJnjrw)a!&nXaeSu(uie_2Y$-)Wt zxd5DE6PVP_MPbAHWq&9PfFrSv7HoBR@#5=0yD92N3BupSJT&rO4&_SV9Wz_ zpM`?8)W%*61ZfUC(=}I)kDezOnwDws#gs5-^4t5nKglTtd(dRn4)DY(f1Kaz26rjy zD*56)2==gArSosw_e!zfY#mgtMgwG6@3ZJIx_x=QuPEDLe zmL0 z^cT=uWY0y4*VM=l&*J?96;7wr^?}_iVjymXP@D7Ox zF@d3iUGrK<^$a&Caz6qS@+2{b0vxcMMMke$h23)4ktd*73M5vdb0?YZpqD(gL}AqY z4y?Pn|7m9n~uh;q#sYuq^FMrCss_CZ53z$jEQI2gvgN%3>-d73pu zS3>n@9o{>%GvdR>O(}H2E>)%|s;U%1x!ZgtaPGjFUj>&HhmWW#y-u zL&Ei3zA&O)VuT9jWe_sCj~7$eV2OGnAYpOvj21%;_9SPxCncxsor^JHNN@NBWcowa z6i{#gVcB}_QO}x``tS;CMxOdIuab;pQ$uOM^&I?{*9D-|U4;{S!*Mua0XZ6*%t(vJ z*oLoPIP?2OxWN3W3gT0zYLc9gG%J`WRQ}M@El1p;jWhFo-Wq4c}VN6>>wZUH!vRJXQu_cM_kI2JU*A$mdlY* zR%Fm-6y%}|n30r0aWSvcxeQ*L@L&5`5OLE+D9$~Pr2^6uO7EzzZ0DxTXSA;ZyCs)S z%$a=<(}b`d(u!1iAO=uo7NwgZLlH*$xx9fF;oQvr_MP%7YK6qpF4&zU=$KZ+L2jh_=9cRYn?xd|E}#%>TtQ0%v|=nt`u~{j0^(8GBdF#?J7x2nwCx#&Aa^ zTXGvwkY4mitANwJTC3DlGFxiFBKpwlhIc>`zj|HezKR*_J`7DM@i1s;uH7;Z?9fecSbinKw@z)){| z@B@fij2e8vkV{GmtEj)R%v6+^_c(`g<~RXIFWGFaBNJ5*X&7x0W7ls;KbFeQq=Z87vC3Pj-Fh?3%l$1TvPoy$5@4Ff* zGEIc0H=dbvluFwxPg2{}Jo~Bx^EoU4C5&#`_qpO(cd%KiEOsNg#f@Cvsg>ZZ5$6>r zr>YDz_5e#)*tn&_e}~*-E`04x&1YhMb~ZtBT6El8hKK}B1)wp2H{XiR5dx?fdq=&9V%-6#4Bfn zT^(jI%nO6ixuB^kbLxz^Zjr`{%^-va;oa{=GmDOIJFjVj)1Pycff6BJO_`PM8A!4F zTK1UjT#-Z8620F)1$?qI8EQ=Vf`GkWX;WFq^9_xJpz@IC60->Fj@X-LjS=#75?22&v+^ zZ=M0L)07d&k~eAqf%Z!l{Wu*O_9X&cS}U}99#6asri#4Yq^27|UviN<^5H(MO&(82 z?vJu{dLTzO=RGf4F=zP9Ey)?UsZONysrD{m?T#s31d1d&2eSw)DiX$V%*REyB6Qf5 zvq7SH@zm%;IL)ns`1w_4=O52pGFW+WC_6;@QBf+6-~}v1Lk#>xgCA`YXoP)E%nR_Z z`mZdS@bh)3R^0xNmWOmrG0OAGBIfw{Xm}aEf8;xIa_5BymOLLINyz0jqcXq?YL$@z%F6ycksKJ6$VR zmk+U(f9#wO%NArG;`C>g4lsr75x9^@ ziO?bJL@FO5p*}!1s`q1kS>^R0YTe_Av#>S-{4h;O_pLIz#d#qVfMnmgZn(`5$FzAsDSwO3j{Oc!Us| zVjcc6Z=>OV*tO{Y)2=0H`0Dy!b}fOT2gvZGe@G6pZ3qN2{pnt2W_X;g*BaeU{%O}D z{c8o_iorm9fFU9|sE(sh#A2+>%JMi$Un7Z(MY@473WEv@r-W6)VvMPYX1$Uk1&c`3 zK8>Jr_Y5ZF)$ckiTHHhy_~JdApDobo?6RDVrZ9%_ z(N0y{B2{>sr(u${{#bh@QTr~gXOGk8v%&gUsyISf@YrQjEYLunfYEnXV)i~u`uEHu zZ|eSlFdUuBKMe00;~jCGex1G4Y*ZNmMZ(I}-mCe@tgPb%|2bD5U>qEyfe?rC8;*PH z_2?|Pz1k)SH>0=BDw$jiV)J#*$S8>0(-dc685I4xB!O8`iF2E8_|gdW)5{S^)TM=F zZ)T3#@^o(K$BX80@xAhh*}dii?!bmzl~|yD!GQCP%sylVcSyZPx{shuA)R0*MBzFe zFPb7}i_Ho2ftt)l(HfYxa8_8V{NY>}$|ywlZW-#gD6%BYk;_>s*P0{AoK3J0oEv6a zG&`TkE5tPD)>KtGI+Ir}7{y;5&(tIm7ws$bIjFAoi1Hq;nX^9w6)z$PG-zJTE(CWh zKE-{eLkuK^(Z{GbMi9w{q9zoeL@a24mzR4;cAAa1k9cQ%#_JtLHY9*#b^qJa|1%G& zrdt!0Px!lxfPr(D-Ks>3`tk31IxA6LrQLU)zWTq-(}k=pzUj#S1)gC1mn^L^`JJbu z@X$mvH*g=DOd@0rrIq6C0tt!p4{;NN6o6s`chkd|$6|E~WGGBGX`_663b5XS7{`Mt zhqO_aOV%6q>)oPPk=xF~4#XdV6)V16ZM4eedR<>-yyX6QgYTozo-{-`5sMShfJcA4 zt$d!o*ek%JO>fH@M&*&qC`&8LP}g5Yh19!WZnyrV{I8DI=jxXTDMFw^PSS8eU4{Pgl}CVAY-5$fWoFLk+OUg{{S zlw0QUn?A<9u7dH>DUYGq$WFO(-$tgmq~eZ~EheFelsru*S_VvRfX1!Qy)hau2Wv*% z)8B(-OOT#=D87BLOxr{SQfeKhjiCde7|}lYsM&};;8Kg*&e7YWJ|mtr7}b}Gp-{3- z#gAc#55i#4a$Jk($Zfg7FDTaPT9kub6vUY67IOT}RnhOfNeR`B{S81<}XBxRJ ztrsvm)>k5hmRsCstucdz0d`XA%VA!aQHOy6YHJuL_G$VLo8QF%Gxj?fGYr%BgM&H1 zE3gz609Z0M>m6>~OaU41Plc68qzoo&2ksZ8a3dL=>1lWjArOoaeH}hm9kMcm=M2Iq0ZO%{_yRnAWbr|!e(hl2jm6XgY?c_7$tVAE068q5Ar@pc z2OB6Kp0Fc$%A$UlK8wmGIoCzfpFZHa3vIJypTRhydhUSduDSJFy>wc_e3KJqON48|7b*m zw47~I=e)*@)@%lP*SN@Iq$BvQdh5=KM5kXKL0y0jT5fniIDG-1l%?v||h=q7IIW>8> zN9|w=3~G60i>{@$v0k9MY1t8Go#0;{SiP^Pb#<+3)4aaEZi(L6`k3{hYbt0eU7+{I zyS+8@p6fKrlQ{arr2_>wX}xcnNy@IKI$VC-q@C=ot2V#*hFn6&w}% z-C&px6zM&^h*o3{F0=qc>c4#5sz0AiCT~L*LF;IDEzue2RAmI7XewYSibUdepD zGd=H*XN%HLnK)g5o%<6vXk9a&UbR~YGTI?*%I(9uSjs;|`?Ip2V0PuNRE>Y5k9zWV zZ)BSe@Tre;DgPAj?@0f}N4wV}B?5Z_jzHj8rEE}+pSH@RysWS%7jzhi{fdxRVUR$T zRXHRdC=MG3R$^UlTCuCNu~=7M)Lh(Npxm{J8VN+zj6J?trs_Zr&w=)1_6*5aTbeK^ zOgXKI26#24rG$-CfRfhMTGVcc8m?bxW^RC%*jjAXT+LAmY7(o@r-Wg~|59iN))c&% zM}p!(3x|=85PkI2fjMOWawzvVibiBWvI2vaVyx5C?2zbF#fCdIwl74S&-5D1_N>ym zfSr%&WH?_D%xp^Qx3XGHIb{`>v&di)Z6jm8RJZ`FqfVw)+g{9n85_DnRn{k(IUvm` zCX85OX|u5M(l8L23s*?W(0L+@mKDs0k%{*dZaBJ+Y)Fu1lo_L|GZWAl*WfJ-9+sI+ zZa`KSI`Is=XS;NMdddxiP5fxW><>#hjgGJ6`Kzb45;d*ToMNruW=;^KB)A*sd}X#E zHw6iuJ;;ra#ug(i85@R{Ql3blLgpr7WI$uEfTRo~DLTq1WRLon-b43&?~#eAsn(2L zDzz8pv?Yes%)8`{$apyO=meqwoA?J!IaP)U3XC*1L2 zY;v^hZXKPe4tAMT6#0$nVM{}XYP;+rBhcv!0Z7lC@OGupX`2N?pQk~>`zZ|DB1+Vn za63bxjKv4)LXtCz_@2dIRA5K;bYKjA#y#p2Sfmx!mva(4GkH0y%uzI`6oPDY%`7+t z=_F^(v>K{Q!b?qA1?q|!6lcF#{=}&SX4}kfr|IqJ+XIfH%i^Wd<@8mp?1&A5p8#V& ziEQQZR)h)XgH2J<>@rX_@7oGEGR$vc;#F)kQ+1C7VSSc}+k|V<_63tnAsb^L_#;6DJ*PQ z(umvB;Hp_9wp5aql`f6A^imHTIJHPjBq{naPbKT*8EP+UCNd9K-kdWSYFCe(R5MA0 zGKfmIaoB5PD0wU)K%WWFC?mr>HxwL72{q433(BcqJjmm@bGpbCv7s1pD1jZPgb*(?ZpVmrtbz}>(tRX|OFjzw z!|Ju*-K7Qa8gV>Q+J;~iio()qH-}Ro*V9N$JL|Nj2yUo9#JtFkBRqhUjkd2iE=l0G-$t(2{lW za&AB#b8&Gw%Hi)@Tv|FjEA-2Gf1j{#W5j#8-0sdi?{K*;bkbY5Ajp=S;Xn5efuv5? zkCd?+R8K0wmlih>JLw@5=0g(YQ>V$^aN&DV24mn6PcIp@L^{+nYiO#b8^86Bh03PL zV`I?PG@;|*S-e5uB_I2x$7t;9O%eF0$~I}sB-h)Z1~ZHu7;i3Jn=EUZG}0T|l!M2E zl&5Eu4!O`$C8_Enx+zlz>Nxh}Le2luRBH5Zd0o3PcZS;skvIb(kdK-aI?o~r+~x$k zNqoe2?lL{YlbADp;G%71d?3`ey02US79slF*R0_Ay@tvHl5|EqQ#FqvK`nD}Jd2S0 zX)sx!JZR~}fiKC_+I#(|b8XV>-q=Ic&&NEKFWlnzMx;9>E(q`Fi!!HB5>w?INJBh1 zy$l?nFm9}a0;MTY{RqeuZ8SN`+9dBR^1cuWC$j@mk>q5#fIlAWbN#_Ob!aKun7&ys ze|qdI6SGu3&yE?`3H(lK{zQ5?R&pn_EfChAH1?7L_v?bVA$DLHzVwCulKEkV7drG? zg%!BM7%Bqdv_FCE7l|BqjOPlbXc|k5{3K|zU{Ikgfy?(tTRbYThh#EWAVy~jrLP?H zqO%T4lfe!hi=cj7a6?^#)E4j221Sidi!q(*7p3kSF5{G0d4^)UmQ<`7g{<4avVzkZ?7U-sh*t!wE$Rgd@hBL>W zGKmS~*8Ly$$<78a+p(1rnp_+YK!P-x_Ip)`>cQ|*Joxz>F29(KzHPZts4H2|w!b$C zj*N5ZW|{m^H9lTXtA4&r2xR#ToanOnJ3VV^o!qCiMrCPc3%W6o&a=q|A|HtZ~-Ie1VrhG0ZO#XWjYiit!^F8B&&}kfl~I7Uk@>BAibeiG-+`Pkz-7q7D6N^ z!8*FUs;gO+Rav$MxENd@t+*z@9dwP>46^)SS&~X(y3-DeyImmOv?c|{Q?}hHwD{%M z#rY7$*3mBDw2)WP&FEU=8E#vB;v`iRZDm-Nt@*oMAk|jW8QeDn40qQiv6v{ ze-_mi^F&$a+tt;Rd0uuvi7^84Qj|`F0hKN2Sx`0R`boLoXeSoKQhm+$HHAQXIYz~> zb%{45GR^CD@FT#zVbVcnj?_y)!@7)4C zn$`)M2`;~TkS$Cq#z+Z`6@5+7-iDvor6u!4TpFjwq8*> zt^hP-t|KR|c%WY&FkhzeHvh75JnqJLL3fiAlSEIvtPLZx>FQ7Qe1=)uf=1;yTUqe( zCFljbbTK5`fnp2gE?T+R70OOb!U&n-!m+*WDRM4j{RkW|S0?7B{!_0=9FZ1aE(5(8 zb99ab`lRVj5G;=*y@t{*@!_Kqx2XLv9R+LWTOddrZn&+517W^D7@^xmx3Bh?Mw zR9CAO+M22}>8HN%Cr1=hbah*S0}WkZAgAOHci~yjLdli$Pe%j^cl3_-&`P(EC3^~< zNce@E5A2e+px*9^p6v@uNlm`xkBVcMYRS|b8)O$SvlwtSua8DU4bLVCeG<)y6Is-e zkHw?jGe279E*S;DlT!J@s=eyVK8ag8oMH~{sTUN~O#$^&-P1*l?Aw_m@tGs}>CRK} zjvLg%vx*~pp&IUZlefU##dM00dIfRa(l;YikE&ggw!N$cP1n*LJxpisvY5Nn97dsU z$wj%YDT7DMj4CNt*G0CWn;t$xM(N4k)Hg+1ToFn*IKywIqO$JAjbY%SLNk~E$YzofI&?uDauw%g~Uw%6}lQv7(O4FJIiH{uhO zi6TK5K6yWZ*@_}tm2Nt)(Vm|!vaM-3!0NFcR0dvg5MpCPP8*TtvfXpV?pa`Rlirlk zXA@n&ZN9!aJML*&C3PgdCxr%|66?{SgoU+VawWp0rMfUK3nk*@Es3V1mF#1%d+K??f3#A+ zW#}5wW?SzU$F&}Ke_5rC6l{eXSEC#RE?c@iSBuOBHw5Skoa2>H)25(14EEca;mDGR z@$%ScxA;)}t43yIDVuPw3=*$R&cV`Bd6Y%;pp+jpxS)^^+zFh&jMa4Vp=33~dB_nn zW)&{j+mVskWRR^FE5)+2Ame6Turq$VB%@~K#(DbZh=svgqfW(lrf-Zj|izS4UvY3_^&EsxdNKnTcEIKt>!y?+u9uZ8?>yq&N z01ol^hxC+|`;XB9U~S}_5G1^eTN=h`|2pxrc;r<3dV!KW=HIU zfk-sf4SUYz;UBtbmWi#ghjb$-L0t3!oqvsEBy+!f_&e=C4F=s}nYkPLyfm*Yz-tjwyuE}Q% zGXMv=L9Tc$J&%_j;XR?YTh`Uj0$`A^J?{OkpEq~4l?_-FSw9BiO-(F`qIK7qkD1+0 zRdCN%!nV(K1TIN5nXQ?FWr9Z#)iHEH))Yc7^9C`2a}HMx_0rEO@d+m9%W1|n*%EX} z=9*>3ezL~lZt{;L$g5ZZ$}|&en8T;c%)@!*{sxNM9iy%nxa+Fb3~)~Sk{a`9uc??_ z4M4CXH@NHxWgS@xtz@0Y*C=aLVYzZgpkvqFn@hp@9hj*8E&d?=QZ_CE8`8mDeR1DZ5gCqePoccicNFLJ`fqxNX=!D3*EbVM73n`u zuKrWD{Xbi||LWwbX}Mv4_k&`ny@*YWM;i`SB_u@rg;NZhu=0pwjOt8A6$o*VNq&Y0 zFs6*&gIb9Gj>-ydIzu&=3P{niAn$g7qM1uT*&wD!{T=E|vuwGu(fTL&xtdOA%gmG+ zD|#fPhB|kW_vG@+=Yw^k^l$q!qCef#YtiH{J-cJ7XZPcdT9SY$*QiUO9pB-k-Th~z!E(=gCjJr@@CNM37_0mxV zVY2B_MUDCS-6bdp*AT+Ad4;Wb1p`&GrQ=6wXf5T6ZqKJ0AdfQH1fYK1)I?n@m7pno z5?xV%_QC*}ATa5Xoj=K0gDFYjldGKHXs=6Ak)TkyaL}0{C#LDrEGa4>_Q41tv~H# z0d8FyM?E>mP*4`ZFj2>J=W+XUCZU#bJ#Z>JzwF+*nww57R^owV(MvPHn>PN$!VV^A zBtfu7>ZHk%fkvfhAR$YaF-lUCLQT>FM!{2iAz84b2;nA*V$YUtVx$Q(d3z{NPg~I0 zVA)Ye+$|;3+ueQ%vE!b2Ej2@#kkERk_F}2xm6A?A?n^9#ICgMeEp$3u{ zk`s2GYRu7;iiW1RRJ0=>!jW5Sz!e<-nxX`)WO2P^{m8>YzEG5h%h2RPJ3B?>?4(1p zDy0J$M|{V#t)mfo(#YtuL8jaPHM; zS(ukSoyNYyvnJB57vjxcgFhAFAO9DTD*a^7gq2i6%2&$4xxXrZvqrE6k6nO;9MT&b zo!DvjL9|irWr71PmVVblvB=@ZhV$fqqnkg3-9>i*hH--iz zNdRrB{?R;i8)=xf8YdB%m@4u@Zh(`T-(+4g-cx(`NFWdT(f#CT(NG(v)V$S7J)Ip_YBb*af(py2Vs(4Qw$w6FntuJ3oK{8$XSQ^y&WsfTXq z7j%m|TP@zPJU7i|l$K6-^)Jd}$I{Kx4?oT@{;`6;uEUT01%forQn!?g*d5b1uD*d4 zh)HHagA%Nd-ybR{hI+ZHZanfEAMYC-SooWPCM-#+o#1OJZ`iu|b0DL5eL- zABuhrJGyBN`}?bAWP?*QR0{)is_lCOV!IC~mZfgFax8IJ%p zOoAin>!O_KkOTjW_!yU|Mqzcw=R1-jh&A&4{-n?@VymqZ+G96CV&jfPZmHoh1^md4 zBJuzcyhRGMxp7D6J`-Fz`{mikMp%$KgQ~|#mL0~;PcaqnTxy%gmEI9}O3A7AOSd3U zpP3DEqzuI$-r_TCIai+Hb6lk9d($aa$+ha(o50nB;LkAne$XF@#iOU!ozv-^mAh9V z*0`^j(Jg*fPuwqfy$s`H5jz393& z1_?*KprurSZ+0Cx1$j{K{D5}X^}x%!Vx+o zo=`B$7HGvAW&K3EZP(B;`-d-91#`!%+m$b2D%;M4BTlv$0y#e_o{88Ki$A z_hBwRYh*PJzGB?|TQUIKAE<)-z1Ii&zo?o1nGF0F9`V0VaiwV4ee1fTe=n*Uu^ajA z+e7%*Izl)P_nV64k)Wd!f0VSNBybWx4y@*^W?l|ok_0SBe!;5fA(fvK(RDozBZ^SQ z=J^)(D1TR74h2J?ag>v0W~Q@QlQ&a1A2)t~KVkaBUMWIgYbaj@hsB|x4pE~jFr)~= zy`c}e^_)~I?ls3BPgw@Pr?uA{Qs8nXnP$mjInbCc zv8QU%HgQwps+d-YV9*;opGP)K+xW0z0Awkv(39y?HOHpjD|MBFgbUB&a)QTCXk$Cj zOhNR~IwQnIBlt-kTWmO)2?`R6W%Rj8wY`jO(__!xJXcsMgFl0KzOaOnVvsGR*dIhi z!+oajyw}yB#uWi*50lM*X->fg7!N>g)Ag8y%VV!-5B&Klz73f4KLEop&k=i=&a|S| z8+RH}50|uVRd1YXbya=nVixLy5bQ$Dn-#MC%pS?{(Y9zbV&cY}LLrS7~9K5p-8PiJjdy@gr|eKkV$Eh{;v1cOdCr%6Xo~U0o(y zG+nK8MV(JNTFtmLjjmyP@$EaO2Cb?cJNKtC3Byy=ho)b=kKgMRL(!AEFlOeh^XD>P zJoHOi2aT0$=8U;2SH>BVYm#Smr0&*;CM#~NQ;v;Yo$02D)>P~Fc;1cqZ_m)xOUPKT z63i@~p?F9vV>AZHH(7rvIo-;FcJ1Q4j3?FyaS^(Rl9BM+rs0P|8ta9E;NP_%Oe{)82ih(FVnf!8D~7GE=Jwi__6&uvYng zf1p5=!Hw%UzFzNocQ}EB=Dd_H!gVzQ4E<6!`}SNuH%TIkiL6d96HMw?=lkXfIK2I= zabJeE&DeQ+18N?_!8?XM-QJ1AeHqwA3Ig1OHttgXuDVW>ZQHhOr(@f;ZQFJ_=-|!F z+?lC+tKK_Rr_LwX&wuZ|_HV5L<{Ip9_wdtcYyx+ z!hsvW49^<4ejVh$ehOAV=@I@UqcOKW>2S2OGHohqKfbdcgZxsq{9>uv4V)|52|tiifTwy+b>ENk}2SL$Kbij z!^G7vJ&DB1Xj^tjA19`(P7pAqO=u+Pn)V>J(KRH!y;AU7V{gMSDP*)fW^Z4*RUYz)*UCOj_b3 zb&)22ZUse~wqW0b`P)Fp-7WVZFX8vui`EGGukOV=0QgE>Zr^ge>|W9@LKYee3I>*~ zq-q#jMiv*BDMpfz&Q85mb~0^7c}iLc-w=9^M#C6)HrL};`XxteW<)gOUOV&22WU*4 zV;6a&2z|BbQH8a!)tnX*5fi~6|EURsRciaQ7zg$n2wy(|-Q$?ahq(7Br|VleE^d@? z|1DkFw|auDpUJ+Gyb%tue+fy49Y7e^j5(h08Alf*aTv2aE8K#5PC@hbj~R83F+)3o zC!J0uTXM68(isZtWv%7micY|=A_l8qiYNM0HZiN!8(prQW}o~p%2zMQ#*pBz_P>Tv zIAx_hQFqW>3#kt0+C|P4)fsUz%Uknk!m~PPfW?D*uG)1*iG^WsxrpwgSJJi0lpvS1 zF&XUOaKSugD+I9IqDWz5{E<>hrM$7Ufbqs*tPzou<$ke}nRJrwji2i43^uU!^z*zZ-z9dD<&qDW~veMM8|3bV8xTJd+#9Zm?iM-`gscv-kz>}BR=zh&*t zt5{)Y;k4NeCL)?k#m)Kdl;J8E94$OQ?7rJfLrPR6mN+Ck)&5I%o^=ogBiM00eoTC75}krIqx*CK_|(* zeS+p~mV0E1-YgUmPW1Y#o~deA2yb1*_r=VicDwp-%kL7CW*&AWc0Vi&%N}^tHa^-M zr69}5QpTB;bTH@RKrEMLv209M00OKX>$O`O%_g^yZC75sVTH@Z5(iw@lhVa>L7TIZ zysfA%Fi@2-x#+ONLIJjr-GrvYI+902QY_yfFw^zvrnzFOMK%J+v$5Ks`5RbH@Ed9G zB1GO3H;*>a7=WxpwakGPe!Cb(W*d z@~AY&5&ww`iA5c*!>lf{0JX_#_FxUk+y>PZaa=LhJZKB3B3Q_f>K^Q3ZJey>OVb^~ zbF@YMyN=YD_IK$Xk5)OYg5$QGb?p(!^kM^VlVxLYR&2*<7s_}=cAXU`*W49{o#HvO zH3}Zk5iIsNqmQWW72AP0t!cCs80y3(WCp1WTQ^TP`x_3;{07+?_V5ApwJkvOUaL=e z9tnk#>;;Pv(9k4$?`l-_f^+kUTBVGGC7Bso!EsMqT{6`SXp3Wu6&-(Vbf-~}DV{or zpU+^E6^@8!lTD}xqP;^#imqu!wFLWRLW~f)uO}~&yF~*AP;~AVuRTceDQ-mV{d~l} zR39jFU(gsjTj9Boy_#ECHfSc@CRlqZS7r1uVs-=1F!vTN<^0nh63$)M2|%yrA43Tj z7oVgR3D=Ghvawt5=`;6@URX%-nlwjukL0w@EiX00-zQFxHuA-O0sm+BwNim_3fDJ| zSoDn}vi=_v^*@iTB5ro(4#tlEG*6S2EdL`zh36aEwfIRJLBXqnP9XH%^!2`aX><2Teu&(6mGh*sm4RN>j6YP+VUtaQg4 zou9XqeIrualUYOKl{bHG#YY%aDyD49X`x&cG&<5yj85hm@3A+!5r1lFP!cLad`iX>ue{rdVG=#>Q@+P^czX6FVVeY#GGI?xo9yh;^6CBfsD45TEmMN6A5X1EBu zmP1x7dDpZF0)@qySIWE1bXJ!jl&#Ny;(Rc%|u|3BxyP_ zW=*qzAKL|YCv-jjEW$1mORi+A|7(}B?Bn4XgW>M?dHHko)YZvbU_<7Yi{DGjq@ck7~AZr&B7! zxy-sm8JygQjZ?KhJnMW!uaM;Hw`i&CkK5=@S2(#`TMe;^hL1ZVl(_FPxAX*(SqjcE z#HWQ%bW7=i?AOR6<`HRmY1|@HNDrJS4EXlbqS-LJOj7fHZmg>{2^N7tRaJyqq?h{j z2ZxNKc;P5*Auv2#qpr9w|I%7B+>c=1_Wd<#e&-?lUnahPZYlg<#IQ*D#&JU!!TY2& zrGUcRDgzA5EV~(H!@dd)C}|y*LuS2IS|Lp6*Xv@=Rb&;BB%b<0SgonbN2kzq(6BP>YJ%!u_#uQ6qIh03^Up*j8vMN z<>~!vd$b{u8}zS?D?BR<&QOOK#S@}i`_(59AzkdI585k-D%$kO3Cc6p8#3A_v^v%h zU3=}cT^1XB7=rX~#k&vg)esbpmcj^Q*eQF}j8deE;4pjn+QWI_4HEAf} zwj0Vecy=RkJ_s-!umw|grco!4zb(aqFZ{kLQcRwO%Z zR6Q_}?A~*RdN2|NV#U9a(+ORS)S3{-h9DCZPegNSpj|;Y*s$`eeE8C_&I9tTGxE=| znnfUrTBMG?#8gX-Hyq3N^9W_#?cYHf62kP&XBxB$C?%Hb=GaO}p;C-HwCWR!=YYt%q2RlLyiPgW?>7$prXnO z7d?SdWvS`QEX@Kx8@8|O?dnNx*82-TOI|Lqb*bNa8@YkH*|WBcC!)m^4hVsA|MuEh z0`(3)LfAG1DHk+kx(V#mKQuC&uWum?6dk(d2k{;kldta?zg^P@*pTwruN4}lo_-{z!4><6y{Pi>2^`=Qn@!4_;4yOdGP!HGqE;V( zsfT2~aPYsU*Bkp-9I=|r*zGako$o&13nUR|JnzX&QMB@!joTHW%G{(2>(+#%-*#_HEido7wlyHic^KAhN^ z=ov)bmqm`-f zKN)-jqT)EKgk4HHV>SgkhFH^)Ziy$QX04o$QmPuykg4ls(1>Mp;!1$&47=Z#q$K(M3rofWnGttrv`9~-l{sg13J@&As1DkVupWC4UvGFjxn@KVG+ zawsxHHBPtM03~q==t>CXknyR3TFivGsp(}C!7<$06T;YRy zX5ew=Czq3_vdNx{IK{?;u1E2N%BtU+hj?sUgO=vj8;n*QX*A1X71X$_RbTV>AUnq6 ztf9A1d}OKEb2s$?9-BAvwOwNj8v!jry4ka0@s@qfClk$16-RI2K7&==DKW~aJkmyG zGJd9MnP}-=NjsCp)x zOY_ueQilK9Nf^%m3HQ{WS9|xIAK4yjT=^pGdOkSIg8$V6EiWtm-haz$EjExtpIj2l zwIS!dgH}^SNx|2dVHuLBzo)&kR8Q@)NxYV*^dz~WoB_UIQYtlg1l-V6@#r%`o&&~* zvV@ZWD7qsFMXh9_(Y^FX7*dbXkBmA%W2Ya^m>+N1WNZ;^6ztvYXWGPQZZ5_VTa`D) zoO^n#J7ep5oF9zt10Fn^(eEZnql{i=$);IPpHu1f_a-F_k!&mmI-+7~JQf5uvQKvr zJxPb?MDjPhn=u?MAs$`*;STC9F+k9Aic-RJhg(N)xN7?IkB?bwtti#5g`TV)+6sg{ zPh1%(1sI}D0(Yn;31$epQ$#ewpcqCDILy#2Z$CpUX#EbJkqwJ00P0|e^bGHaRfP+C z=4*(uX~gV@iT2>Y=ndlSzZ@TbOqRy7BL4Uh|Gh;2O(>L&4ZWPLt(Ccr>3=_g+SnKy z{zuNDw7!kL>Hjbz>h5|moEAOIkmpUtUT zvC;d=r?WWD#qwN>k3dc*VH5g|VXS9s5i{LKCo z()c=Rev89;Vb@~q<`6y{iqo2bDR(L)+X8$SN#>g?;CuZI{%iO=yR2C z@fPj%{@baC4#AcqU5h1lZA^qtgP(7)6@xVuus7SPWLUz&I_r>*LKi)uUHQOrRz2(1 zKAe2dBV^dJsEjqU=#~=6X5WO;P?T0sSCVyd&mDbYXstsqBzUGylBPpW?;_7kPknOK z**`{IRBeAxg>H=|&t5k()`YdvRtgH_&=ptX;t-g)(mFa5Eu(Xhzu}fW%norHEz>2SfZJcB zdytK_L#E-SeZUs|o%9yxuZ?w+;t`9It>7d+M?0iL`A57?H?3Pc0*}%o+pBjBJlkt@ z%#{IE%-}<6yIHNXhmZjU0uBSVZ*^CXCc~^3;LEYTGmCa%Yf=u-vzk3+c^e2fdM8oL z&Nd-P#{tr3S=W=XJjG(iek2vDQwu61i=^V_Kw%Vj-E9Dk-b#anqGdB01Rhh%DkFT> zppCCZl!gjNlnODN(??Vv5FIyWCI~KFea@=n>hxQU$qXt zr(r-CXzroOVc}E=29JGr-Ma_jv1whWM^I0X06)>Pq@I8SL7tWYRVt|TV@npLmInd$ zF>^8?z4hn9RXS3`%1U6Eq89N{H6`JV6&Df*o*962Kq5$w3J?4Oc56?-kbbe;PFvi| zd1SqRBoB0Z>=01QFx+_hYfx&$r({w}23A9t11l`(2CSiac`uidgbcv(DpSna*NOz#dKpNv$uuiEY-Hi-Y^p?u0ENU+9kB?i2Ix42o z{?S*x&Ttm&Sg)HAMG7207!+5kN8(o&U8W-O5M72{gT5G4%4(6pl{y|(T5r${`_R`5 zy+2%+6kpp0u@L{2N=tqentfb89;h&;grlMv=UHQ|I*_Ku!wZswBN5t%8w|lNrGcJV zJNy`i2*7aBhFL~2x@e!HYWX$!f}K%{TBpwtC&6E;&bH(NKWIoUtP+KeIbg7xRnZKG z-Iug$6aWLEa(se7);QxtHpN?9Uv1~hqL*>x4T{Qu`t&*N47xK_ui9-$gFkK*leuqa z#bFq4SJ~GyQOzb370Z!+rA7ozTr8tpSzi#s81x_r*K#jlnGv9&%fI1%`<_O?DQ7^C z3^OG2!^ngINfP5zZm^g=thUjFshk2nu$t?Nya83|;#Q8sran!8dSq`N592z8p!EI+ z-y71O?gXr!`76C2?Zz-OKx1qL^l=fRm0O~n3*0|UNFAP4(;tiucBc#9pwV9B4)HfMl;W#@bDni_gMixG+X64aA!|HcZ6OV17B zUX@zxw5L{lfCH29=xcwj-HR?JLdoy>Vq@yL{UUf^=_z~?DgFmI1F zA3ChouJ1+6-j;bje`Es5D>-E>*1Sj7#2QVliTH&l(mR&erEiKW_iB)+dQyNBZ-AhG z6bDmUDF>F1vv9`xmLa2CV#}nAE617fOwo9(eAf(#{z{k~JBJSPqf}%{htmWElbHy> zpCAgzMS27cVz8}*zbb4rO;c+Y=a_&GS~^5oK05FcJkjUvV{sL8eYUBA{3UQA!&~;S z>}Z z2j>r5_rPYw?(t&WWS}6aBQKWFz~dMUDfaHN2BpV9+%AU%$h2wrd#-e>XVK_A!dwi( zns_|LtU$_dM7P_`YL+@)?j-a@zxXIoVmod5D5eWjZ_boWIeO`c2N5FDqqFtr(P2p0 zQt@4GYlJI9RqnQ7Wf*6i>y2Qyx zP^*$k3~hLE*LKx-q0)#;fLuyoDqdU$uiY0S!5F7sgT-2hv9a0&;^> zD`>n&Yb#*Gw%viGGq&9sucmZN22Kz*EgKGXTttp-LT5@o|7s4o>l>L1&@H4tdo(up z7SX7gZE^BQ?xy|ugnj?2{Q3@FoVjBKFeuMTQzc-|lrZRPv|>sZS&tvqtwnH$I_|ZL zaq-p6?5SunRvl@kd(rk!^xo7Q`@@egg0X3y@w#uA?P?-XYCz9XUZ;DZOg^7+6#QF> zxwq(tMWWcMGpjnqfkWTsP5r?<{{X$2kgE7+B0X1VwMUZm7=v z#S^LEhnbZG#s+9p8|i7&uj=CO!e1&oY36Sp0FeV77LMtqr+B14>Nbt$s60* zh0LBb(`#t2w+aN~?`V@)N36dC@xW_o+|+-eu$`lXc^av|8u!mLykZAHKeZt+#ihQl zmr8h~k^_)tKpNFBu83X8MUv51MGos?@OjGC(?y|Y+QQ{e5X%O^FQvh)krHJX zPmL@FTNIpRf`9xPRRuhz#xO_C(Y}jW_lQ70(?ER^-^k{@W)#mTILY_%h{(6{?3^8Q zf~hfLH8H>$NBrC8RWF{BvkD2p`STK>`|0_!hBl0EBQEXL2!~wQt^^LL{^r>-3h07?DS#W}@5X_M} zL*jgsx(`~d3^PyJ=J)_>6Jc{Q3poqVc&*a$%5E9 z?l%s$9Zn4~-w4=0knPFS8&WGN@p-V0eAPy)CS$cR+~Z+Gr##>mi4Q#rno(xHWD=XX z{Xi~X#_jQY7|!#}hYmX+*IrFwbr;HpNj9ReCiDxmB88Q(%bCBb5-Gi+uEY2@6X3+ms*rj}#(Hj0G_8y1 znxcDm050vL=BrGAL%iZ$qE>oQ@1I{tEXF&tPckKViij7N4<9*n$x2EZ$0+@-U1A@Y zoKX}rLW}3A8#_k2Op|`qltVbsYu&Ob`+|UHmGxBF35MUHJ}O_XshVSUg?RsE&63~g zU1dkK>;WyeCARPZ|MgBc{o7ZNhO~L^qXCy0)z5|> zNGEpcZd??JNv)-XWxCXEHFO%O5>?%sfE6-*pl(yp%wZjdEN4ki9thYN#kk3<~`IJjh});-ZBCF|O+O~vC_{|HZJL3UFhy;^#e1g~UYKS>?ODg%>BJ10FjBmq-NN$h|+ZA*wlm> z8hxIHj)bHe=h8!jl#5)nHxp2}+L7Fu)m_b*BN`vPpJI666dQVJT}Llsnuq*4{Dn08 zq+J&TuGmNdOAG%U)%==Rw3e8(maSw!CUa(IIxoC&oke*4VbDuvRD?zqNvi}Ufq~-O z?y3SR(3mBGFY%#nCUKjAyFdfMiUwz#$-eMRv~1wZa2Dqi`k7>UQYAoL`YOwv7$q}K z>VdYMQ13lk(-j>k>j%-@r)Dr8_n;T^D|7^^;4pW?-5+?1F4llnX~8 z=tbB^YuaJ@*sQJea>Lpn#cO>3kC< zPiF|yO7Lp5R3|t0?Eu}uz_>zNziinxXzr)3M^ILBNosgmxn~FH zpJl_S3~(KkZ`ttr`xSxz|1TSU3o_zHR>nfM|ENV*zvyr^&$mn z+Xa3E?@W5~YRLsTUJbK_*+vquy+;XZ1SkS5P!2hVoz)5xYExWJmowP#o!<0s=b;=( zSiqn^es3(03453h6|c4Xhl$JaROZ^p{nLW!kBe5VfZ%eS6l)au2K%4XuOmBTvBApF zmM}%aa6{1q2tR=@7^KYqE`I`s4JPGQlO)JiFwUc8N;)Q&VFxPL@Cr~VSUQ*Di&=*NyIZ182Z84;9)RZ)6yOF4^}N>U=W z2=U@sIyPVrapB?H`x0~tBt&s@;-tTgZ$JsokrBKLi=M-&8jU;=*TaTXM&L0@-Q3B6 zu`i@u@Sm@(YOn}Bv1`Y3U;j1Wu5Qtw4Y`Q^LR>8TY5GS~EbAg;!3UwJj^0L+Co$Mi zyxJ@tPNEi9>TIY_1R54xx)qI%QR~B18OE47Ag%)U#>Y2x-^>oyJ1ep$3s#6R{Cb>W zF*ME6$;owF_q>;BYldiR1%|4fM-X+3@T1|8GYxD2QczYd7hTPfkLW@LzR#klWJb=u z;^B22{P2a4iC(Y6aTM9Z62sI?n?apEet>$Pk6_1=W)D{74$gSp-aJ%|F_N=4S5YY& z(tGM{^VT7!K4^aFe(m=OI z^3lW#?VOSHf&0%Z?#$SyDCHY^)W!L?&CuT~PT1H)-`UFPUnM|UJ7WiZC)!9aCNE8*d2^w15J{p)IbDOcGJ7rDGKMEf*y(t5hsmRJhb>XmxDBe%yH4k|j<`0bbr;+#FjRuYIRqXWE{R%Rb<* zffyvE9`qpTl7HKNw|#oGz(m@o2TW|W_5-6gkA5aYb)N`e(j{kCY_6UUFF{q` zpFMU*;6V8v^{}oV_I)mu;{NEhZ|2K>@)GcU+&|=I;l<6vi$}vxEYp>lwgm7%;oa$> z;VIt|v*S4)*t6%@9f*VSxg3x?Y?N%SQloz@M!LVGzo*s9dfqy|_XnEZR$6^1H0LB% zofu!J>U8>{qrPkONkZwM*$GG4{PZnByn!?8(x?@K2Z=UY3?l`~I)fW&2hJ9C?cf&) zaFq8B-o}+7ImiUfa5VNv7}J3oHu!0&o@+U3G43f;HweX}FU)ps?{6L)j1F6!2RN(S zQ{!;&dOW-Sz<>?Y2rW2+tV{fiPqsssW^-wQj0tv)$9)XO)5&Xw%w+)Q3`6{!8F@96Cg)X zO^)<>;dvlB4}pcK7#ETFR&3<2tf3W2Hpx0MReT28GMK^;fDJMXYqK)+lSlkQ;!zqX z5schwmD~pEysH`51dVM)r;Q0`DS8p%r$_?~Vw&74|2%m0w?z+O7bog>V8>heptAPvAHSOTF);Je{<~olSP!d4!l`ukp16bf5|XNDPj4ZL2>j zp8tRtBF9;>o~+Vtn0#Sylz{>67*9k~3byQgfE2&F!T6=z7*3X(#+=y`mi_wq7#L^X zE_;+sIlHi{%UPe27a+s>6@&TkU=mbJ_|1Hq;(f8qdilV^thHm@^Wc~Ah7Afw0WWJn)w=;2Tq>b*JC*i zUVJ&PPo}$HoO;UQC{=#ycNH^cA^DS=!AoJlit;<8?QALcmkZ-Bj~GYtBO-u3v1Tkc zJZfjz{>*C0E-k9<0WRoGxf}dV#S8SGvQ`B2@3@%H;{BVK&;Z}^7j#~^JKJ}$+&aBK z;`=8{?wH+Q^EvzE{#ti@pkJzWx>&6C99^=2U}C~_epF0DgRRfPJ=HtH83dmoDv2;P zjvz%;I{ET_>X&jVlsy%Z^jnCR2)t+@S`q1Z_g`K-bx`#5{)U{=?vRb9Bo=~yCX%3E z+f2wh932FmR5+00_rfn4vm_ND%`1j;pW+g6CqC8`-S=;M*9B0`cv{Ct-;9vwHO^~P zgCo4TFR&_MJsP9i`3%J0kc&%wvq`xWQIGNkQIqo}P!EKgh%A&Cbrz`%0;tF$gp~G> zoy*fm$SMpXtfWyxsrqXo2JGT{8Nt0j4nOR^9Zt*DCsuWSXsYsth2K*Low74LKaP=m#_^&Y>t=^X?HywIanu$MS4GVXtgK2EqBek$&jul`?p@ z!8BM~A{OiZs(0IoTb62QlazltG49}wi+-J9OkhHJPJB0gevD#Qt?;T;GMaja;=n}N zqocuHFebINHXiTHLT&Oxb)uuFQ=H22LW|lzkLetcK4m%7D0BP8cD zaaOW0K5V(DHhaM_<_#OX$2~~sNi(h-&*vTxbg5YIgn_6;k+O?kv=k$zz@qIR{b5!_ zTTAZSE*d7v2B*g_FBo?NYj(hJD3^dyKC09uzAH6>xWt|?W7oS=Ko&YQ64x{aZCvoV za+^X;&#CZ+}Lo>*-v2P~CfX$m+j=`ZIkz zj`TTgbs1=8B~@_vlf$Kd?U7_0d{;wTdmY@^)o?+k6&qZxxg9^l7IcwHB4Hqz55JPRaGGZ0yieA+|QnUh^?uj*>ZTO+T7=C=6oBVERu7nS5 zQVwe#Pa&6M^fRx}#PR0ntV;OH_18W~_$c-2r&I}hOl3~IXjctUbO;O9-#H~9D*9*T z7pfz)DY{1GI!$NjaxZ1h4pxWRGsmL2d6Jc9Lo!fG1Uo%3P35X~$S;cWSJcuBgK{ z9Msi*ly;;FM|;|s5m>1TY|MFUm@Dbi;i<3#G^^rA($;8&mIIGXf3DXX zyv^XhcI+;DI^4myZotn6z?Xxe0BG>H7qwG##)Rz!kh%ALa{AIfZ)gw>z@=IMK^g(9pL5K`oM?bMT2* za8`Vp)(!W9LSDv67TFX2suSEZy_bi{JKTf^d6n2aLmax9NXksV*+A+HsbNWS3a;S^ zbp3`!6Ou&yK2d~PVRf`oO~7)xpDZP8VaUnj)XLxj%~@&!R%*eqbW^-bcmIq2K#N*> z5X~ZvveR{t#U2fiSaHSjI(W-sFCOrU*VkFWCMYOI!XG6g0x(KFjLWNIiIt-+fY z*bUdRsW37DnWp4j(I1tjI3n=E|F}2>{C14x+t-3TuQvKyq-t8@gtgSX+*!v~HA}6IB<9Yh1^TxuF^_;w$&36Q-lLAzEV zdi}g6;N(HI`Z)nZ2kfa335I(2@N-xHXv*e%Xyw*<+H_H8@>No5%yu`k`Le|?_Fpi3 zHQ-gc#BU70`rl*t|9j*II62uV*gAigEL!P*-#Gtq)X!G2R>W3D@u4GGtA(X6_A8Xj zG>`<&t88jomWxaZ;2(&DECSWsAZ-gO%G`2tR20B9eLplceS!bbFik3*9A)P^h;`t0 zWsi1BnB5KCyxjiooS&X>oZjyFdOeW+p(-ag7n%vh3%j2ZfhN_sr|ng&#}u|f1(e1S zOt~q~7@bbQoBGw@kgmuW+d-9}CRa-VnyTcaFF3^1Ef=RS7u~3(g0iVtTfWOHB*xe< z^uRsjC@Rm<0aGBpF=p-|P~vSZ85WRIM=SX-*!YM&e*oj38Dbo!38QgI5;0H#(@n`W zf%z*jWC&gI752LF6r1cSDA7ffUDbIc?j~9K_bO8ajH;zvlvm$l?)9y7mr;cJy7U@p zU#j$0eJgPn2|Z3ufn9@^9l2~+HON40la1tudI!buMNZ*M15%Bvnw^!tsntSqMm=qx z>)?ysM^)=av+-_U&0V3_Zj^vk`-!tAiFp zmigtcz zMUtXK+1(bY(vQ$*D zkxvP&2nq-GY01bHYaLI6cZUX*&0Emd=@kdzh^7b5 z9~A(FMD-j`)C$}n21De;hUEArxeezg3UUnYY>-`Otdh zRw78c?eVda1rhb}=j)D*@pd9hLWdv^06*1;1bM!b!Q2}NtB+k+35@ThcEZo~q{X{? z2AMb&f6>`>GA2ff)9gZeCUyT6jdC3ytJC;^f^YXb-`fw4J0FI(m?B3mD2r%4NYs#7 zfY=dh1|S<(EHp1-bjO-wfDY;vh<}Ug)BkJ}!j?Dh&J|)8UN5FzdTasD2!q`1g(a{# zb%-ZwpH79`*MdPzgRft80Nif;25Aq8pCIaIXL~?Z?O)8^w~+Sq9rD2Z@5MA5X=7_!2X|o`M+IX?TPv6Uo^i>_)~er@ zP9L&xD+p+VStzwLi;4vF&F1DstU(~ba4=zaMt%y0DTj^zN( zl0TX=cVg}yrVoNJ@y+;5%+J%=p1)7Jt#rCRzo#31UQ#col*J2;|HVruI^yPRoa8PD zSu#V>o(awZ<26~B#c2L9Nltn#uzUkS36ZmP~*Bnea;w9 zNSK3^5LDP_%=~Iq0|uxZT_*Qn&5r)YPKUKbRSX$4ya)2l zO3)a~gn()f)$D{rfhlwt_U+E>@<=*zz6yWYYljWzWEB7O664`!Z~3a@V&y1Gv0r^G zd04X641>qqnx%d*C=*Q%@-LR1rwL^0w=~x_c02M8LYUAl*;IjRGREu>RK<$bt-=x# z5iKO+IbV;>mAnYbGu}jA5m-mfQ*pRoGjc*!9XhOXfEaF~P?=!AEbj?Ru&Ekw(@`hL z43CQr#b{R-AyNtngHJI@C7@6!(f)GP2im&bQZE=+eNScgTF$j=&$Bmz(8|M%`K~P0rN}) z>qt|utaybYNpju+wwGiRE6~jBZ8ls?J{)v2oIh^JLsfs}#7)t2pi!yDlE;E z1|tk!NVlpN4UGkM0rRu|`o_GpRqXFkP#aJs!i@9;2q=q?nx^OZtO@0U&%bKF&zAic zcRp;R7@wSqL|bcGG*`wBV=NTJln?#v6n32KXP3M#-3~!!%Z`s?*y)!ZH}=R65RC&> zsRR=^=Au^+l?xyprig;Q2G|PB=dB5;EOoXL_QqfS+^uRp;KOUg%EY=hg>iy(5x+{u zVz=_^{&m!IOZ`)r!T#nMRw_=k6@2T3DF15#W5FYwg*p!=s`$BgUMQ@S{}I#R3^;3b zU1)~ctS9(}ZXrWBY8j`B42&TdadQxL{?r*BLoDLY?|9MTy$|wxyds|DSL_e)Fk4d3 z=Qy`?YYA@&i7zx1=p>JO4;>k5dMXB z$v;F--w8k1MFk0jDH~h*_5Pm5?$X21#G`DCh==IL$)5njAYCYq9Xi4opQdt4Oa1|! zp8bP!b9rC|0^)P|V?YyjW7ewBrzdnSbxoIx!V2j<)M>k)rn!zEA5{iFQV2>VGGHl} z!Oz(XN1;`89m722>{D&_wyEdDgn zRHOWUb3qqwqfp*(P)DTS+?OOqR7fH)=-+VSYL;y7aQ<#AZeT%-=1nt`l6sdPW|j;N zk(9>5cbUFSXWn_8wtil@q1XL6sb2@*)moLxMVU7GT;OK_#VM7Z#>Qx9kV4or)3td4 z5K&-=N_l?aZ6QALXhwdKAt|~|?!v;SXMQYi$3DJhqDcl;Z*WiKa@Jo-wph0*z}&gJ znj*N>>QTAZYS$!+woAf(!QMP!C1f3sxac@%9I)y3OpB3%=7JehkSmH~GG0NS$rlwF zwbr=b#r-TN^ zV6@-q2j*_Pg@9gE+A_@`#17rF?=j)4xtwDhcua@<6>hH-_S!HN3&R?EHGqPLnyi1h zdXrHTlq9bhZjsq1*doseGcIIv6@grf;;gM5nmf4R5 z#>lJ%pkT=~R0dqT|M)X%pPXbnahyM8StsD9k6xS#^|mQPkR%EHNC{ZAUfQE7qhLjd z7EyL{Lj=Aa2_Lcf?h>O;1j%jmsF&?Pqefbixt6Uwbpg0|f_c9_mZjG*vB!3{-XCVs z^sqoci`=6Pis79**1_GGZu7t(yFWJLxU^J))O_qN8r|?_Y091V`@aNcHzDaUI(!Fa zrxX78A@FZ^Q71=3Lu+~^GY4aRBSn1^ta(YdmR(T_vq35X!NXV zYO1QzzUp2bYNq2k=^n`(V*n0Bvc zc;3O8BW@m};RBoad)cuayM4%;UQ6LMZ4CJE_lM%-IS%@SIrjS(P~Cg|240Dowv;c; z$UA#`u5GV)>|*10G~G43oY%g&yY4#ggahxR;piyuX)C_@yCt1YL7C`nuj$Bqu6rn# zinmD5J-f%LP(DK+HEpl3i61I`6PsT#nLCaT;B3SAZLi4ezQ@P(GVe>_J)C#0{@>)J zT<=Bf5IA;|J}pBbJD5Q{fX0GlKDAHIsdf$@+X^jBf3_uTy9z!eO4uuw-}^WxPuL)h zO|&4IOxc8JLW9Kmb^*RP{4q50YBngGa=rGXS?Dl)O_eF7PRr! zg%)qWtw}8b0}2zUM8>>uJFm4G)U)v?Pt_k2+H%Z zB33eF!ZF6UsF831LtBb`TViTJRaR$D%L+XKTfD=vRhF<`9|{IgYG)Ob^bNmy;C1*r z?frszr!w3_?=jz{0s}`@GOv-9>&j1%Jx}(KuK^&Xvt!k#Gsfe>Oc>< zKr3Zp3)KzB&~X{5ne$M|x*a89RjowH^{PbLQhugAhm4l^^AFKQZ0Ttx;K;1=i?6oT zx>4jpR?=#r8Sq!o3RrUxHnbVQkRtc3ihyW}_+%YhI;o}SR_n#8Z4=T5!^u$XrRBMT z3}Bj$q+6cPmK;#P&++OI%GJ9PQL<(e6K=S|hwc}{u~~4Ab*XP`VN05k*tErSQkPxn zjqZnuictaTEr@Iuz#EOy%H~&Gn&LgZLm;~eP3SSyp`SoE#3J_Rfqrf=q*Q9PDeQKJ zdzLt2;-en6T{Prx4Gu3MOAZ6Sg&=gax*`ptdi?^*xi(7jw(=Z>kXLIIE-;dwSZBrT z%jq@;jybKy*+`L=Q)=KdJzcFdU~cBPgGc=u^o!tqE4*<)%GveN&Yl4iig}@o`qk%~ z{qj3v<+eS7&Pv&yY+3;^G|vFLxgu=un=d<6wg+o>|0VUb#bV2fs@ia?uNcVQ>aMt( z^iGlTb=*;|6!AmgX@}8mGeH?BH=!l4_Ml3Ciot2VRTc%Z(%q60kjq0`#@-vZ4HykG z3-6WdV*lWX3q`n)HB&kV>jJ)08=N?z$&Nj1EvG;uEw>9(_^E5zw?Tm|OCMd)Pl=+O z1UW>hRZf8pC8E^gE(^+hL`rtB0tHzT0p(BXeyTPMvySPsYfxN@l9qh{l@C!nq9e1N zWz?C~*L4?uoA5-_F6hBTsqBTbV&_PEwB)4rNU|?n$BPLC{;HSKtT22;YtAt+(YA&i zBQoY@Bu;y-9IQEcTpY0}IbE(SPkdbZ0>Ue?r2{{#oekiq=U65 zinld*zZInkk`ddd4NBEOo#+Kg!ewR^v}O*nkJ2$(iF_>W5iK8Nb$$Dn%VS-$qq*@( z3hPZwH2}L*CC1)eUVphk1+eg;bTPwA(crQtnOP7*Qk20gO^i-SOP~E7QHz;^6!#nd zgM3MbpK>>6E#>6@k@gNgqITPs_b%JEja{~F+qP}nwr!icY-^Wo+f`qk`}VzG`gC&A zNhj+cc(P_@)_mp|zkxcb$%=N@^*866LY2*?=RLo@FwUT8zGC7M7$4qSbK(y0Y^Qrf zg+waXxDNymLyV+%j84WdCR8?K`^Ay2kp;&liFMX<72&{KWic9$pm!+HBVY%39CWY4rhJR@ zk=~daVw!dk$eZ2h=2%RkL~o65HGs)%H2F6vwR(F_m7Bn2$rumo0mC5ig9M=o?VM(w z3n790qLI?2X!1R?$TXZXZDV z*d;rYWgw97Vr5SUB{FwV0zKQ)LKpb4!g<2>R-i*xC=OEvy}9`z7hlXYS&jgq1?nDV zLH;;+#5F=vOka9*$v`+jcu9s6DyHFsCi*dAbl{tWZuW|z1H8mG`uOn9_%H(<5=8i+ zAjHCYg0e=!ExBJ_Q4R4HkkCjLD2)tQxGcrvWepw?x?>;Pco&W`-z_w}>h`dBMFA=4Drc#WX z$^b*jLXo!yrkweijw`Xu5r}?U@@zxwY(wg7L*UE{7p5(F`h%rvLUk#6H^`gCt2{`|_{Ar< zS~0kIp^fxmvfisAQ)t()0u!v5*VT9_AcTH$VwfjEzm^iKQv$amj)>>MpuZ3-IoOwS zN@siys#0MV5Gg{cfSl0!J@AS^{Pe+M#!8 z7hy0l>SW^CvlzWwor%8Gy1*5j;XTsOk@)_3GWmhe@SaZU0Ar~g`v>M^9$E<4!j`d9 zdmfO|(ueTRuBH!AC5LOG?V}zUnPu{#WHvt!exKetjduUN5Y!DAu(|?pqBH{2Xoq1e zl?DW^X$xVKU}Yk=ItrwGg@oJ#dDxu;gD!6D4{2l4xN~xR)qFl$q)|neFe&p z?n7i78H`dQwW)6M!a|I`{fz~~TCM37gT$TnB1Nlxoh%ZU(RTNPR>cG$9ipri`pB(S zMfwne{6P#4h;~v(^B?0>nJ8n3*pGJ23%p~@bn(|x!=F$Jyp^-W;I@p3cey;=rb@R#4C-$plnvt5$bNoO zzikO`cM4at=~AcGu<_Nfh}}K_c*Pk!;kw-rc%_NR#@0f#GCRaiCMV7QCdwWK8Ocr+ zN!>5J=wj;Vms(`%P#`^HH$WAPn_IKY4`;Ema@$sa zrp9k!Z%tv)s!!|(vISpdk-9oUo}(7oRlGA{G8Ns_Aa7Z(>jBU-6;xIH zJGX7EZ6~tZZaY-6G`R${x{QOrHQ4G z@Q*FG^Jl2}4=(+m^~XO0&3|z-{x#eS+c-J6|D&rLQrUDwQbzvX^kOoSrbtpSN5JGG zfGM5`1y56;&KEP3kjz9a^Rr@UJx!Ui*|74v+j}_*v<=uFJ&BU-I*DR4z{s8xHT@_Y zbiB5ihi_5FMPEOPlOdSv66l<;XK)avRt;_k$$!reux!H}h(_lz2s?#c(b6%{W9L|^ zB)KlySe7beGHnkToBb&r7}H=Dq7dV@LTFb-_jQU&4dsQ@wvK}iW#v{H$*By`)(vXw z_AAU5X63_}qcs^)waxnT8vW!YDB|>d?wNzs=JgB<3u3320*(Q+_5qq~-HLmT8R%(7 zp$3<5MyErVNZl&chz$xe;Y8w1cg>Ya_bK|pRWy+elEPuT7m#m}Vha!Ajf@)A#YT;( z*;4Cu>{cyPk^%UJO6W7mkTG}^`uKfk#0P^x;8!)^kvh-)9So1$Si9o2u)C9x(fE}0 z@;wIm>8OO}mn!)drq&-@HHA%@Raa^XL-0}|g`iWbeH=phX{0G;+(I^-;ZHI# zBZHnpYY8`5m3UUWB^yc%J=@~48*%ofR z#X37-%44^s-44+f+Y%dy#Cwscyj|=@>h&cd2nz$h6-*zPMDZOMY=gg@F6{alT~+CZ zGVMA9Py4RUI**jwzWH)#GUKA8>T@ayM%?NL;*~ZT{gYGZO~4WOnYD(ZfS(4d;W+ds z5J`4IC(vYn>eKizBq6$jKOwRP%Yom5QsVzG*w91wYB^)T*1(}tEo+G`Y@%LXmZwNf zcEB=cQctF!o=Qv|qJ&iYfCvMS!7L!pyw<=-N=ehR$Ir-4#+a7U=47H2ny|(dG!=9| zr08oL$8YQX*caxq7B@&Nk|X#-3d*t7M{wV$)+K!hiB3?3^R&f?Rejz+uVr2@feSq@ z3hr$^r2@v zu;?{p3xG=VcC;V#f_~%zI#GntjAHZFYmBnM&wviCaJGmb^@Tk6mq$s-h+Hy z{o?fBAom0l?g%tM4k_-?Q2pT#al4+7I8^Ij>y?m;kj)(epbv@ti%K_$XIF`5Pm$n< zL%sKrX+Hs1Veab5e7-fU&`wWIBClRSv@wm35t974+>@S&WX@3-ypm67iX=ciasO)_7{1&S3y4zK7ww^2zVMaL4*0wi?v@knqreXJ5r z;`)V82PGXAUFQX5V!`}cTLM#o`mT3^;BfEy2$o}-G~x*GFc4(@V!4)`IwP*0G?vAd zVC<&I?bAuG|bp`_|X`azO)R!2*(9ZcP1m=J@Qoa6a7eU!b?{`{2YV zJ(M5c9M=6#CTtJ}@&V?O$p~ZX!aeSUgj$Sj4=6lx&L?~zz5_~L0AL1EnLu^pGi%M! zaala;W8bWzI%o)2SvnMoeKrZg%Nu|OoEleG3>TA+y&}{(B6%(`;aA(g;pz8~A$+${ zPhID=YpYyT7sSzqixcUlB|o3-`Nzq;v|#@oWu$nkg;M#GpuB+kAK`HS)0Y2hA^k6C zg1L#g;lJAR|57}wMtUNvqI^p?j9IZH@}WwIW3C;_k491_Nl*bm0>?G&V&H}pxctRo z0qW$OxS)=$5UzfzTx?YVX>NuSrm^m00g#aNZqY!geDR^;;rWE~@;bYolp@WXN&!B6 zZ*zR!a`ZWNy>j2kRQ>wg0Qm)Vn+l$?69#=9wv+9q3ZoP2Y3$YteJyXV3rx91#T!%M zh93YPGaCCmcH@J=BNqv`C)oT#$3xh8bt8|#qY?>rYmdQ`zn6$0HBb*8v#;22cM8tT zOQZldHax)K)q)zkBaadreCtNT6FO7LmcIvuFgYAg*F(Pj6Au&wO-7U!Og7*qL6?L2 zsECj?oT|))G~B2UEixNUX6#5F#i*Z!5+FNaCo|-DhofMxGjtD0xu7D!U$xSpXwO|r z1{&qoKWj1MSGdAVi%HW^*qdBQMrBku3v?g)?m3Y!z zpC7ks{a5pG)4WE=vpOhet7g6A;|Wc0+E3gta@hD><75H@!ZFsBuiv#fzA-xJ3SAsz zom9$kFCWdfpJD(*CL?7z+*A+eaT$$7-&m4rfzIlv)fmd1U@|y+k|x3#D(@8gDQRQW zRWrCs5bn`wO`?qoQl-_6U*?>t+5TCFXxAy4gh@uEJ_8!grf;cICGCL8Tgl=$8+WA6 zd8EO3o2_UE({{UQj~i`->2VR_1b_KT- zB56XuyYzgE0}m!rB&g-HB-TxZW}o!FCi*5EaKT=lBCU?93UMj`H?I|I0y8Z80Pj!m zTkh>2ru9)ZFhE{HZjVc{ZzCeE&0cD%yx`DK zoOHAy&0lzEE8LU^;BEwAQU~9&1H2&6m_NjPzR-E)Zxvy91FQ8U(koPEH;}f`8LieE z48xm}O%Dvh^IViav<80PNP@6NWx308SQkAw;Aj%V08Luj>tM zq@dhOlDC8|A8dsk5+BgR^!C>pzeI;@@3}hs=~boUlymefD>c(hpUd$5V+`Xv$b#aV z5ZG3ww~Ssvb*V%kSVq`#zd;m5Uv0o1VKVaLDsLk$;foIYlaQ80HK*AEi{64zsOFNE z!?V1T0Ij7gQI zwdUUKIVWvi0($Nt^hew1aLet`byI`8&t}p^SvpV0{U_1`BXFMMYv1nnCENO9oxekK zLMRu&E5P0LRm0LP-@88+ru~5|xoav7#l%ONl#JDf+;(dUghty*n4+zwxb(5PcGdjQ z_3!l zb6dzgWYwYVmUG`VZqUKnz8AyF72ofb<@=QZt=a=u<8=&jYiq$Ww#ae*ptUtH`K4v9 zu(OtXx%YM~Tp^g__%FsXoFEp4YRf`_PxF;Y&=^Pg0ed8WG($v|#8FhH0yx&aXf;2d zj`~EQt3eToA+G(TE$B8zdl`GvJsl9|!(6$meexu{f*7-Ea>;fa)g)4|L8S$p0xR8 zknI4m=yAFv$=C3x7kJ5H7zdMWTvOGSG+i*uxAQ!Zm)vN&!X~0%2V!#g%NbMb0SSjm z1ME%vO*7!h$5{;GJx77?s6#&LAuJ~SY2=*nP|>aU5L2IV*_F;|Xz)iU+gp>Tv=lUB zi&18{_Yn@IGxi=~mqOuPXKNSPt#n)qc@=DXB3W#mc&0AF6Qp^@TqT#uewiUTl3TEM z0&#=tUUgQ|+NKXO`O2-=|6gWm|(~Pvj=JqCu?og z@+X7u6E~SpObafZ^)F4QC`C_Spq?>RO9*K-){Y+%?BrN}D51dnmjy*SlzH9ohRfV4e#H?xaO=u&C=t4A)5J zJw}!LSi>)OCs3_DBCP@_w&x-)9VlI^b2Qa!%q92&U=ZE<$F?ZVA4b*Vb_BRHSWpL$ z00wTSDEV${smS(jW(qT&;fQ_pPcXo%QFwZ9wjN$_v5LtHePtq>5L&w_t{Tm)v^;`Je;8%6nMzYZKqdmRR?gT7#$R!uJy*r| z3BavYyzW(QHWuWk)fHtuQHnRGpd^t+swwJv3}Lbri7>%Xd zyK0Ga)j>8)I-Ws?n>d@>_%p7ep?M%13iICae!{qpUk6uzE~k=E=V6>Uoz|Y8mKnBO z=GKeL6jBoJtcAB&fVWs)wnA=HRG+QCnx9;9C%HeiX1)=om0iKU{|%m}mbO4+{M*KzTk&F2Y zD})~*$sBURZ5w(Zl~jxv8>piFBI~wEGGnyr*rvJP!?ew9s>Es>x_cDI5te!u24Tpk zh1UWp;jItMI0;7^MsQzw_W2}x$O>wb5_4g*{2WvmSsBElkqk5Byo2QT(i{3MDzXq~ zBzPj>D&nwO?3MMC^D*&83l;_j?XF?H5J1q*TuwZYle$z zw8VQnP0X0ig(wEdM$Isa+JG*^4^zgc22Bb8k;h+-lOW0vH#wLN5oxJef8}gV6`@j{ zq0tnkV!_zOyle2%= zuAY}h!7Dm0`RSPSflb4E*l(2ca3pz+eu_iYyiGhUC%sRJmp!$#sx?5x)ipmsW^zwiGj+7oMVh&CC*Hqrbh$@32szc5y(whR+zL^L!%U?pfc@d;(0BU^6g2cb_+#2$+{{U zTnkY9wjLTx<^lWJ72B9(i10X3jVUua+;E0u_H@>v{b~jZEtNU!{whePsW&%rL>+zE zKSqM!Dj9Ri@hxp*N{g(4%X&D_u{>Ue(;RRBS2FD7jF&<%2m0JJ zkuT6nda`p{G|GybS2Y-LD{E~jG?Al%&r}6)B>Qhqp4>+QbgzcX%uA}+$NL@!SsJB{ zDo?mss+t{IKn3m5O`H`Mp;`3Gg~6tuh{>R)m^mpSwQ%B_6_{0UtcKo?7ULgCm|XP< z)7Wu|QiMTKgcFxqG9L4zmt~sSaP!r=J0ikU1+m}Foy&%_kYI<>Ngt#8fc^35mKRZN z!>nKehd4?;Qg&LF;@#@lha|KhyhGMC6hIk|L;vill{^N6fp6vmH9H(>kh%&N^&uOF z_M1p+PJl9YaJ1!P5V_wJ=-sdBF%i!^<#BEy2RMboRLFP3Be$D*_ESuM;n^6y;-|z# zdtgqrp>UQUPh$%_sNL&MSVmH^X_a?s#7J498$kc$cG%XhVltlx+BX9HstBzeoGNZ9 zv=kjM8}~ts=^^%ZQmgTaYc`2!U4#0KJB@g1qpMe4S26OsyAh^Cu~7{Uf5rXO8v_8M z?`XM}`PI$fy_r6smPSEjfx{`N6JkzGEImiFFcb{5iw$l84iOMqnAz8wY+)J%+Z8Ca z5K5Y$!e50_!Q-U{IazHRGl*SE@KSW{0RIr#O6iETU?zDaS5)ONlwkd6Vksb`c#>v< zLvAXGwd-?_NL7L#c!FX{{F@(r0jtIDC7FQ8X!9m6&77T#3jm5Urfj^9gzt8i8{jyr zQqD(IWNKl3QjMz|-u{Asv!O-U5k8QL#VUYF@Q;B*zVdRvL8qFQE!FRAyy=LY5HThj zLi;RFJvLplDJ0jRj)#Ou;5B?bkBi>F`+8&>H-p$(j^=+J2iMNdr_iTsFG}>P1dc-X z=yt-Y%j?N-Rs%u6WwA5+p7b-_GG*$zVB8j>27%9tLQs8Q-!?8{&9A$FIoqBbfNA!r6n<%bMe+v(xBcHJ8FllOEsiH=qWLZx5D z5BU3fJeY@tDKye-w+ywLsO@2^#V|puD+9Olxdg6Sk&@8V$5H=Gz-KOE=J7a%p;Wi@$VdWYxu%W z%w5UIe>jBMsaep%d;}enlbn_efi-gy3Hu{0PM9{-ciG?*Yy6-4>Znydwl2kWd&6BXnXVvH{{7f zDdx?&aa9f_f?zu441=g~oZ%ECQ1>8}>!YEswhj)VIQAmm zT)=oW!Ve=_pm>jO2fj@9Y<8d)^8>T@YL^xIt6J?=I?#8dm-U1_0Ca1Q7yU!@3F86m zt+3B_ffJNlXj4iQnhXX#z`-NmiLxurE=O5l%S_mj4wccc;hvZNuqbB%_p7n*`lb`~ zJNTQD*q5;^u_KMN7@$rCks&nT1NLETNSBXR5zryi;AZ=k8#reR?6#mq&N1*JRF?k5 z`-{)#3m~ZqZg6N5D6@~lZ^1oM9rxxY6!aS@0%)o?PB-ZQ*~Rx<%?f4msOW(L?+n=41IEiWl`* zJRMs*P*cng_FhxFlpQ03Xmb|5K0n~eKOz7kv7mK@zh8JkyZL@&evn+VB9FmQ8Iz|v zU{MO_AY0b7Akv0TLtW?1DNLZrG$xIiy75cOL_ZoFDgTnN%9r`0?j1oQGic z6~ZI~ZQO%T(<{|rLZneM?x&QER(XiiOBiEN${sRG*VK7WHcgj1StPkL$8QbLV?3*h zWe_LI8$4$?p7`T*-TYG4E1N4wn~Nl26jQ|UTtXL&2BB0U#l|I_8cvf+i=)lW8sGG{Fz+wIgO9 z+e2VnbW0PJmP6t`(-V|Vum-LJVqRT?*W=NlLyd#xot;OG+>n1|PlW&qA!}55l+pvgK0in)8bEo|cQRZosj5s} zD^hKxGl)+taZhKjZJ$LR>4e{ib^-K@tq~belz3%&v9&7tt)rMVHR+)D`Zrf0)IufI z*ycR!?v`ucQlB0CiJJL#^;-{bG;qOHe;1WP3 zns8kL7+W}VzV^RcSxA-_ZDNO}P>qgTI!JhwLo*^C(kIKLuKNegIes-TadU_xF>DA9-n33i+Ve91p zaW@BGSj$~j)x6gIs+^M9q-Mhk*?Auc*FkpvRbRPbm0b6zwhB@RJt*b#qQnep=`P(2v zn`~g&pU|Q2E8VBof74UfPLtzya(;nvVZ!ccY1g>AObIoJ^i57-ZaH<9f)KqDrqs)`z?AOTopuZW|V&DGT>)zbd%jEw3g z2`@#sQ&M{Pb?5{ynYqqS6dA#3rX(*8c8DT|CmFw0+9jI+RRSj=4(_#te#fx}cY zn!C!s@5$1TB(nQV9o8G=aB4MP>X;W%+sCI{YQPZ-TZ+RJJ6#I$Agv*QHtWz4r!prj zH#^kiPn%ELk<{;$uF_whM4>58Nsyo~!iS-ep6)Mw z*DY?(__%}O!9GA(mx@&Vg{;KjPNLRsbnEK@0hia?27LrIXnhJXYFwj3#*GDBJ7h1Hm&h+j#0l8aPAH z{p$2Qajd#?kNvr(@*%(#?((aR!g*-cM+Z&%a>^>#gk_jes=^xhGbCrkvsG*4??p_j z^zORg!dZl5hna`1&TlrU9m%`9Imw3xpX)-^6Xi)c2YUm@ZurH3EIxa(sWRGC(XRv> zN+aNicxHHZs@k%q%m{5eUm?65j#!g5OWdl>OO!uH%3ba_*IR?@tbXs?^Tco7^Xd2b z6|8he^9>|LkbZBjJL&xU{O_o49fvh@DQD(#rg_?Zgut$f5Hed}qq-Z?#gJSji%C4< zUl5$TnQ`y4n4ho#DeWi3mi^SL{bdfWcVpLEnjXJX#zKg2!Inq*ct%K2)PN7+yF*K# z`ELncPjl@yV$DFkq2FfAc)VfHX38?Y_QMpY64urAv7|g~i6|oyDw{hc#WPwvs!5?4|_dD1bu+M&;6ycx4at)512H5*W=0 zJrniN#lcoXMmog9kJk_*ov#1RGZ&yRN;^`1-n@!K3~wuEU!~Kk}7xs5G{Gg0m$uW}QlBUK$ErzE0-N(~O{{ zp1igo5fvy)@-C$y5UsG&9Akf!i>G!T6Ma>BqS_y+%736(*ZA>%?z-sArb1rnU9Betef7eD0@RMvp+w-!|WK{SpPZAC4Vvkv9kE*q%*I$8o5>;>5y%2LJuwJ=h?qIiu z(C((Z5Vl8B?O1)G5Ow-u?~^~MbwSi!?=rn`zLRT12RUDndSs06qAdWoi%RaREl67{ zS3iK5!K^{H^Sv*j8D8|)gueOo81aWFz~i*R6B}O?anu^{KS#jRz7y~(Qb@fJx!1|& z8od-e@Ca1xPq#)!l^L95KbR7=Dgt=&eFp@|$}!%&ZstqhoD`K}cP7C5b=Bkrrvg+B znQ6fySW-+m>|D~2OrrzdCV^-9))%oXr{%y#rl}~e3gqU;JBMWL&#VBo;%>~NJngQu zDD2eTxwQ|}+yZ0B77!(EhY7(crrc==1wogG684aDy6R$nixUueL#|R5>XfRw-JCt_ zjrCJeeyLjV_u{0NgVPWWMV#%lUWLH2)pCs}&SowJZdG-6>IX~gRH0+?M3ad_DJ7qo zLN#W>FNI&{OBF@CcVTs2{9@@eBjF8luQgcKSsRR1h{7v%e1+%;dY()EAl{teEv5Cz z`0AgT1^b}(?(f}${$hTAVa=MDY0TB__o#Is=nX;9JuG~6j&4-+FY+W<@;#AM>wyBR zU5db0A4 zj&;!$%|#)?ZeB{dT4<5|>yomdqe)F=eaY$*ZZA=dt{4$FFTUSO!a1=F&X{rbFtmXRtRs3?PZtxvHO)`yb75?;@gPdpd@QY+XCR4AQe)caqkC+A) z0aly_e6L`{Hpq~!{n~f*9RkSb2Y^DH@2u2U+%h2x@GH{VWbT~GSC-A;_bg7tsZH?- z!C^^m1+<5T@f_p0Xf0(`p@@CY_&&W^X@ysG6p`K-_8Z`sbgGO~37I^dHc_DSOay&I zsfE$bMk-uh%g`oYEU^wJwn^IV;+#4x4!d$==yVNLJQ_Z3Xz#7IlMI|$ge2#w)&#BY zrjzCAy_}G;g5sFmf>}z2xTF%j5qYtOGkLYD@nR8d;lh$t zMB!%$M}IuTrI?8TCn9D(&ISK%v79w->S7pc{3}sxgTfpYae&Hm=yWZ~4ujjrqJN{1 zz>hwUyw^toPA9+E_JWw5tGJ8JmhbT*WN@MkMwxNDzNlTbZctDq31 z0^!xj#SN%kleFoBqmlGX&x`uK~bX6fFYr6&@LC!FSHn-ORyp(33?*N<0_7xZHvH_t2!uVPgxG+vy5afg z$cp8{n@fMiBPK(_)Ov}|uBvE6Xs9LJBPJnXF_E~H^i|H{S|4_tg2El`bUFNp=I?+D zX8Cj;pfhQ-s_C4QGwtjrb4KBGAdKs*K-1EhmuMdYje6Z8v9(fSS@_|4SM)B@1&*_$ zbFAc5p>W+W2&cJ@Z;y{YZ%<5pWW~C;TXb{cdI3|UPFCHC8WzAp#XG|XNd~lWHrRNl z6aJy`f;8I>xUcK^vci_bqEk_ipoF&M>Y0b19@;NEAR1*>|J$i1nN0z#rDp_K8=z6! z(g`I_?Mff9&c$q}#11fmC!G$c%Rr0PeT_WM@@X4RDe@pC@lE9MkqzR5?PU=5(}-b+ z*NL=>U$M64$pwz>E&u?tQ8pa{$SHwyRQx)Gu=U?V{_>4}6?I}L62|7*9{Y{)h6!iD z7Pv)TOVUV-f_#&>8P&KYg^NT^QEQS=i-k(%xPiyK5@eMliC9@OhRtB)fGy0klUEGbu_B5@>|zoj=2bVyu-5*un(g)!8jut8~^3{EX}Oce;H zsG1wNtUa(lirwUGa8G4a4ctq37k-q0r|KTm&tlUqQ|PP_agZYc!qXtV(auFCOGV_W zIFgWLbKPA5cfF~IM%~=}%au#Mklez*4F-PCPjoad_NIske$K>ca!azGv9n#)`gb4u zccZ~u>6R#;p>POygI;vYRG-0cNPec!%Gu5@ow>42Zx@Iz;hl&-vTzrFN%hKK&qkVk zmu*SwSmp?mnIXBG5iy$~8C!Ib*uApMN4__&ZY_fZK;>UpB!N5++#-QCnH)_tqs2<= zrJ(JqyIszIJ!c0YpcYy7mMkuNYnv-P+VpxR$Sk5hmcCq*BFCn=TUYE!T6cFgZ`oe* zrXqIZ1rc2`jJjiJ*Jw&!N5Vgeed6?d;T~4No!~zbIDN@ds(cr;pAm7$cuSF$$&y#_ z6kDG$V%zBcx$Z5BT=IGON_FDi;Ito|D&B97*<`zrS>Qn3-ZnmGL!)F9bIMvQ6;7_b zuHZm=Q!2b9PWMa}<3{-rAi07~wbn4Wa1ai>wr@gC%LvMfp?hewuQR0lJ)3{}>`eu#&8#uS95tgA z3W+cCfIykcb$TZdI0_Ztx6Thg>7bZM7AMjkVwz4CPSgUOa*EDdt-;Q?9xoQIiEo-@ zj!5Z*G;6kGs&(_IPBf1_hxh1b4$g6wE=JQ@I8k14 z@)%GS^98(q)+Tw#uS5rtEN6MSwJUyQ6RK)k3ELPOf6NgUxe86P$qn}v zTI73zetIbAHZIqbKy5E0;;v7kvJeDm9Qswz$4G5KE5s}2pg(pa_<8;Bsjtt-U7yN7 zxS7Hq+>GG=n}PJdP1MaQmWtTI$lO!3lMK+Z1Zn8{QEIdkhGGSCeE9t##Bn72e+S|5 z>RnsXak8@2kK-A5g?)onAb`u~DSOopuV))1Dw`yFHMekCpzcJ*;nrK9pDx#rb9x+2 zd_LYYZ2`1`7Q$?z#&$EXhn2g+!b!D8I3Y}318B51oR_4xY=0=NXvk**$;xn|Vib43WjF=!9Dwi(=lGfDK5 z`s)n-9!40Z<(y;c>tz@l=Jc0t&iZO>G7is@FTCg=Lxw!$0N?7gTXd$_XL3O?B(yLG zk#L@1>7(=B&3cWYb+wJA3NP0OW0{zn$8>HW_DDHRxm?->>_&E%<`OTAS@PP{f5M?B zsMm@CHy>H4ZbXlR>>j)K5y*;8Gq&IRy|;YmI+K#HL+j0&XsN!ahl2Uz&pa+9{dJ8$ zQ7GkQ6eelnW|gzk1<+q`>$@M&KqH<+VmghrT~u-GKD%hpC|DnT_(wy~A?v zq`q2!iF&-A8Cl*PvS!l6fQUexS1}0lpJG@HMKIPs;od`!K)ypo7l|P@i~ws))F$vK2Pw$QR)mNN;0*VDPQz)G0#?x)Oj?cIg?KC8JY}zeEn6nRSs2>QE923Mjk~tV)vVLqu0^Ul;h6 zgY&$v!0sa?jN%F$m0ds=;^GUnH9cZ__;)^SU3#1!ZW*9RE;TkwX&k*{zI{^~^*m)< zS`nCdk%)LHR<^Y6yJFyB+;|>;;FekvG47sPV9U`BSTGW213q{(!=+dO)v(z^=r@2) zIe6+9?4{}muIl3}#yX1b{`=0$&y5VEDCV~w8k|U7!zAq~C*8Ore0}Iq3>S4apX;l= zz%_UlL8g4SvK|@{fP356sPZw#t2ix$LJz1DudNlC02+z27)lCA;PFDdow|WIxA8SX zG>A83r~50{P3};hF$h+Q87;?uM0_~AB@cs+Lwp4AU^csLg|EbsuH)4%69fX>C6X?X z-}gwX440?Z%D4J^gj`xts_&37?H%J_ELn(z=%Xt;Z6mdKG)yFs+yZ5=&ebjER}nqp zu>WObvf(p+!5&!Z%{0@{2wk4*3PEi*hN;G}X1dlEe8=Qqxd9{~;p-N}I*~G9Y7eg= zX@9nIz%lKqBH$8b2Iv*&vo#yJ9$dj|3*5QMQrSc<5{?G83e_SG} z`sPkQ0a^dJ-~U#>4ST_&0&%FSaxlr)luA zWTralH+I^%fc(zt<1A(LDBh>z;NT!<)j5f>9^z23wHwAeblZ~7D6&>E;_&93ah!I{ zaon29_5J*y@ggRn$hCZSr(HJzKhYqEc6s(oe4ccX2n`-5mWNp-g)dEdx@M4U{RsFpayLbWBvK1 zYQTBFBwrRO>`y#r#;$!Tfjp$Cg^EtLrbBy5p{Dr6TFpo}j3)kiV~DZaF*<6Z?C>Q8 z`s1{sK%q+vW0MRzYVHG+`qi|#dLmRzOHKNHhGm%dE8PVRhA`+OZ{TL06bzNFxXiR; zZGSRB`h~Z`5Q%^cSV1oF?7}E65gZ92batkHtHpL%_&lA{Vgz@IyH{DN1;SK(vN#}p zlXWjyfUxe0d%RJ&ZdawF=nXCCP|uWiXg&djQw#=b^423x1Y&Npx9V|f6yGt80u1D{ z5&bYu>bb@&tfz_B1S6!^7CEL;aFg+Bj!H~JCut_7iP*4ymI<3ucb7p1S8cjE>ouC# z38Z4kRm7S^-)|2{chv^1dang+WFH2GC;i?iTs_Ut#O+{ z*2yfhPbBjpC&JsOPA8)`vWm}cod_nMH^8j8?Pe~$=x=D57E(Y-XOT!Q&()A{MO?@7rJ z+A7em6{5VYa)(SvY=q2%L6_nHRg5|8&`7uiKJGvqQDf)OmchT!>smgVneQ~Tl0sig z#*2-TqU*Y{>97O4WbWgOi+x0$GTl?%xmsE>u_d-&efou_E{Q9&n68YDuEbJ&QV zsFO-s866m z$R=4nL^TR=;!gSz0y0G6tP*1w9`S$y$@l{S$$3ZuoNu$bur>44SD1>t1-I`Kabk9D z@N7wvpvIw>=zsKZ?2I^HOtkAF3Z4JVyWFfh|B1?YLsv&gb5?lM=g>sm89C7vWonF3 zGl97kTA)10o$ZQ95u&0A2B}t^YYBORStGfE3g=`9pJu*T6N^8EEDG7}88Jg6eBkcC zf)Bwf5Wc|8kMyApaqUO<$1N~tP=mI*c#lbo-lx4nsPuH>O_Rik&Wj#~D?h`Nzr)){ z=HbW8Re-og+GC{LK2{q<+j&8B_X2^^P0R&zgWHZv1$+6my^QSAuJG3wdjvwk7#qzl z;f*o~E%2&vhW9hK|FmIt1)R+30#yR|5@m`wha!?6;!3~FMU^lv8MJKZ6{r}>D_J24p{`*;$t@yvRcbX|RR4PgzDvK6*@FOBSAbXNP_2Tk` zqwh}W>ja&QnX44LqOS%4^tXL@JF$ct>f@0wzql^4Ighs-dylTR6SsYTHQkoPP~wi1 z?TX{T-7@tzg3l05(o4PN(`HFDoWy85Ltiv2P z{v|liEYdDR86kks;PCh`#llR-E$1VNZLOiYhJpHE|y413;tcoonR;4u5bW{4rv%2N|P!?hMV-YOLPwg zCIOTz$kJ20Z(dO;>eo6yZPqB{7J;{B_Dq@gVHUJxDy}?hm9R0-C>xR})-WedPMR~l zsHaxpNG`A?Q$Mj;H`z%g5$OY{`Ggak*oMXj#PVBkI9{==K!O^vt9_!8!Wn&uJ(hm9 ziJd97e)crHeuXo%OVs$Y?~AVF*G2kF8eUUpo9Gjydce0gS6-up?>Z6FxKvYDF`3N2 zabFhZ*I`J1f{gW%epGG$7gh292O9sQZ2NCJ&bunMD$X}FH8iy#eo&Bt*k2}dEqo(s z#cEU`2m%N(0Vt*nv!DE1P}215)#*U^%4N~>#-3`-?KKO{1&eb3B$3RDrJVisefGI+ zE?m5kUV+bz&IyJ(u7FSdW1s8p?dNC5-sh{@ulxSUUr+mJ_7{CgA6c=6m}r#tR9n^i z{%qrPBxKifw_9wK4vEjFZgepf8wa2EK0I>4KVBRT+=@Q~_KSN1$}iwNm?I-M_7sm0 z?A}5Oxk-e%75$~R>6Bimxrw;}?oCh#5tf;01* zHD!{C{BhFi=~WHKMS#57(?zfuJ;^srTs{zSFphk#-cKX)(wPO((%G{m*)9TW1j07(Ax2v`Sp!XN*HDJ!`1}c zycQfqTrlq|cFnvqSx}6>1!xYnQw%{ig%leegF@75IcbgBX+*K%7!CWenAM?RoPk5l zbLqGxr|%={_2%!2-_MK7Oef*E7;(hlj7rSfWY`qO3S>n+)bn~yn?@@HPF`3N*$4oW zm0@CuBdf@Pawa6`8AaO}q%@pROD*+`7h@4^p6TAEm!knw*b-gR1F)VV2zhQR6x0v$ zK(!5WqXrLusRzdSn477O*yC)^-KK?T$Zp_4@{+ri^|_8A-Xk7Stv*mQT@#fzt$QHg(z+ z_8O$3E11=Y?WcR34@?M+f$OQ3L_RK0!qHmm?=iLYUccMf%oTkjz8dhV;{WDVG7hL( zMaWT!mnJ5Knn7teNUK?w`;^W`7?R3s3z!GEugwW>&PqfKBo8hwA9>m4Gzu3B;Gc&z zD)KcR)AS=yXa;QH=V~OLGTsn7Vz^@NEZuSe%It~(*6_tYZ|H}|q<<0CFaTbzPVh3j zDxm%qMCsTTK^Atuk70U2~i#&53?|rrt8=#8le%@$KrM<+q!Jm{Zk2T{4 zB#cC;e{qjr7CG)fj<+;*3B8EV<3}!x;lAJUVgilpZkx zY)D(mCjX4nn!RK9MUokKZ&;9k{0Us5?j{KmmdIH@7A1r~U>j*5TKiVDHjOcZetRv9Vne&zN` ztBYsA@w#FO^G&0iE8VOn|5(3e7ddtn4(}LC-N#+Xs_e&mWYZ&4jA}jbTRNN>daS#M zu`?UJu``&1)dz4}HFal<4TH`s05OBxWqUF$LSFvk&xSLwy2b{kc(%wXrM{Jlobw&{ zxJh0@C9WD<1nU@i{4iy?N#c6TjR(W{E0<8yH80fm*lQQ$z1G9c4+kY+{1ygNt>@M;6@_0EO@( zF{F7Xh&nJ%VTu?71YnFC#8+xKHJOBS__+JXaN<1qMXk_c3GBG*g}FsBbWk$#5(M2;hRj0Wf__)=)#*#+TJmrX$s<2oESz3kMVQOrr3trqZYu@ z`0I8fm8GQUs*UoeHyz=YfZrJkAKVztQ7v;urqHSN|AY}k(d50NmR%;|Z8}fp9ff^= zF`-E0Q!z(mzgw62>x1~aK5q{wF3*)b7b~~ z#qjOHe+wh{g_E|&BRArN-N>Ub;I#T8kw@-QYi&Z?hwE|=D%~#+Hg-tSY!S?R7YB=Xzi0#Q&3Mcft0JlBH^M2>A#lPW-;znVgzl&v6zxNdxzUOC6Nc( z*zd9o5;tGKU&6=}k|BMp)G%wKi)^P~gWHPL zHeRoz>5mpoOu82tc~Ba^IgFvJj!=AEPJpy@o#KUr3>uN0et?wurjXi?V+IcP7#UCP zyA(@kpye#3!tpa1jT1S=K*G5>hx5*f@k61Fgvo^$6=;SmO0Vkaz=A>0=~is+gcvgF z_~!G3H+<8ChChWM01SSu%3~&v$4VkMmr^)i1;rq5GHJH@&577PB9a;$BDVQp3*mr0 zy`LF!pZaL~+X1rTds!wpsYl`q_H1ho4@cw4K&A;L?C>BNv)I|PPLM|%>B+%VY9FXH zm9R@F44GD`$H4`q@(T(N=kVwG-}JTrqx>OnWcTB%<@n!yZBVR?1Rx#k zkdEc0d6ha6FirMGgdFG7VGg)BU)j0`xb%kF?+ zx#VeCoI<|jx|?#ow0!lWrgrJ(*?0rV>_v}RLfj*@Ol^X0iow$AAN2GTQ+xPQr*?v4 zY){B_&5cFS3l(UeMLRka0Tp5hVG8;gfRKT|p(Geg?)-Rp|GmTbk6t%ou1X{7Su6>p+SDgwN^z(X2k z_iC~y?nxCO6;OngReD+H=;^=#P>tg54TeC?zW;W#pL=CS$A5mj)6b~M{=Ycd|FTu% z)3>qzpM#wxzw^WMg8gdldb+Ut7#2s8d*Gv-Q-amT)h*cbV}wsi9BjF)GfQdoNV!!0 zM*fCGh#UNa<8>2*KWU8t4o1V2GC4Ut^*qIr@al5=4&%Gxik=txPK0>Vn^pu0Q-`@P z7dir&uoGA>-V(ho9F72@Eh7~XAxUU8wy|ui>C^x%BVW~aNhFqnqw~j-AuvA;odRs4 zn-4@p1)M-7+qE z`UuE_Yl9C+%B&w`I8@a{v!yEFcuBt#$Gwk-RctOl9F@J0m)>+uMoI?i2plQsXe=c` zEh#W6OPw!*SIA2hB%MR|a`3mjfHq(m0N6#s=cD3X1*(SK0?`d*e6Imf=`J4Cx{)KS zk44m_qKbECn-v}lRFfmrIzC!vDz6_7`1J3Vc*TQQhuJ-LqLs2^YOL4V9 zD7Zsv1p@HO#**h)d?FdT&mvttX3=my<)U|rWjT5!skjYij9q%JHJ>sQKHferIeY<- z*Jq(6U<}+z|LSo(fU`v{ss^Jgh4LDu7g@wNlS^>v^zwuz@B)0u!V7 z+b-2lG%Lg_iZv4a&&_ZOk9Zsp0{u*tN7@00vQ}=5Xa(qo+NT4&3)N zm5E83Wm<#^dNZDjPqIWZrsMid%TA;fVj+K}Rhi1D={|g{0X+}}1`^lMAiQ3i4@N_$ z^dm3xS3QSduClbXcRNEVk#`}^Mwwar%OCXV>T;g?6k{l&vnuvg+~_NtS7*#VrG0y6 zzCkSu)VFk2EZY0+f_F$0vd(ek(;}}UCwTV^%;cqBPAYenTe>?#pBO-C zq4wgsoO{XO<1|3(rP2@i1juFXQ%VVXM2`Gh?p{N?{Vs+5k<+L6^^4;_=I;NN`!)Q3 z^nZ;E9L;R3#jI@qA<|OyLv&P9$@=;l+qknIi2or6#RCLY0;!8@7A&9ER|LR{o ziqq^5NO_)bsclrU3|UsTnu|;JZ;p;aLK5bKKrAy-NL^l5F2R~hn@f{3*&I%j8&T6_ z-(h?1e%IcP2h#BF$#j_UI`Q23{%E=9c^;YY`52G*bvzEvv%D`w^R*mu{UYZ(!R@&c za*dP+;Zu^{qcX))di;L1Wux}J`1gqQFwZAEb^6xv`c zd`;w?LEidkj8UWc@QY#PnS_^o@tc19IO`+hHVJ|v&m2jDqRv$Uco3Z$R59sxS$Wxm zM3Q31j(B-gK}EPxy5#dXWR2!!Qkr%e(ajTZzn?Y(dFmE&*b_7G8{n44WHHsPtB-;U zA*QuDI(Yiti#&Jw)~zn#ruCE#>5b6alqoLu-gLyXP3jv;@Zf;k4B(hW%{A+4*)KQ<%?{~Z zb@bD`)`AUxJqM$Fn*_AWdS=;mY?eGPxQzDEIBRsLr~@s)9~#n_F; zM)QaC+a)rhl@-mfbS^IA%==Jed3x{ANB5HzbU@r{xW4#Y6Im>?$gXK;oZALzaxIfyl@r;6WEdl6P*gC6)Cp@(3@t>l%r zr#{=dl?>Rj&KL*`2U&4fR>qwat0uzmcJV8Xo*7VEA zvN82?>E=~s8BZ)Z5sg!InPxu!xSHixs;mgi#Orbd00Y{ z+5+~pJ>rsAFq%O8gDKS5Q@M$pu=5l=6+$xkNQ#V{N@=c6^T^G%#T18@d!Kj}RwG%O z>g#;eOoOVjJK5o*G_L0Lo`m*`8(Ih5jHGVo{!Cd5`#ma{m}rokoZh7B-(M^W)~S|~ zJywL<0}%5EmZF*`QwX~h*~`Ogd|5zruu6+;CWa<>8%HsbAc8(KJKZ_8y69Q0S14sP z&%3o%nt0dk&kCtu`KXLt>Q+jv9Z>ZC8~iFWHdt?+r4;+2f;j$X zX_U8#Bf(+4-*T2nJjGYKea?w;&SQZQ6|h-fMV_Q0g@U~4D=RO@B-s4qrVvb?7Sso@j-hKL7(SD{PcVPPWalJnk_w+d5U z1xwn}o*=0pYgtkJf-&*=#bnu{wS>ybnYog<%6T~rh9%dwl`bGN`U^wnNbhCqKyOy- z1ceg_J}ZrBXa2aTt=1PlJyX>}bxLLxhCB_Fwi%-#^FD}v`C3^z=o{2UKNrZA($to@ zE6%pX?q};xFW`#;Y{+AHNthS46t~O#{ME>eIn`vX zL-ox8Gd1pl1J)@$;^He}Ly>44Yn zUpE(uzZ0w{2HeIgI#VV;=8w8DItz@1#9D|%>l^KtEEQ{@-kY?Dm7tY~%U&6kROqR0 zVx=FR|FRbp5Kmm$^lX!Z53ef%$Vwtm5}$7;SO<;l@KJOoyk)Z+q7C9xW1GPQ^Perm zR2aKaIV8<(uP-mJuXQ>ujT>dX(o1B+Q2R5vJ;ahAQDJr$3NW?TBKtep7APVi|MFNy zzDOy(%GIMZ%(ON>nGe6sF0|S-cYDDf>kFTSB#|hnM5OYJOc3)|Gx# z?Ex($f+ffKcBBqvrHX+0*J^qnd0M$QSbbBOWK+!x+#s=dy*CMCuf!f{8OWkL>L?fm zFT7CjuK;U^=(c3s)g+$0A9>%!P}T*KP#SU=i2cOe8v?2ma)E+uk-FLz&|f~d-w|L5 z@zs-Y)`?VFe&lDC{!mZZ6A3^=C3MCEVv$@4A;uVf{Dr3js^e+-WG<$|Y>aXuOVz3aBKaZYID~zmi+6 zkz0gZX~wog#8#ukH*3Tyz*v&8Gkcw-bdF|KRv$Q6?dw#S*WHBtBWI8eVf=6kabe;f z01*%M!0-Ba_+XK*n#VaTSICS^Wn}$d&SmuScSZN&AftH1D@R7VPz-M77^70yC6PPk zU%CViWbnHw5Wd0iFG#);26g>{tsYkbOow>Vfk4rg9f~G| zSt^*SEvDR3BO8BGh4l55Q!$1Xm%fbif~RoI6|8BjzEU>JDhMUa!C2L+Xx6P`sw1hQ zzU7Vyz$+^k<=*m$AhO{@V~>iRX06e(J_YOnD!wZ|#c~JMu(Rsqe*1LI-6M*%2Iipa z{a$1>@&eQ&z+wjzl;&X460K*Zi3b(rHa7va0oKHb;49X` zhY@mrOMG?OVq--LX3`IAqnL|ZOnj*@w@1wMaAnzKf@i!aLh z7R0-yeuwY=lvVG5uotUzpJa|Nwdmi*YI9Bk^ddYQ`2EA0fjtDX*J3Y!;Jcah`)77z zrBLf3_Qk?w%~au-$@#N48Xy+@W$wcwkkT-MU0oaB<{df4_A(6b%SvYGKT%@aBpE2S zys<;9j)|H#UdA>ThxPTOgAF9;+9DZCZaJPDIFRPxK9Z6+4k^8ILwmHH$KTolz+WvK z@p|<9-aE?`=gH}r49n_!6|R0%V_-^8@0k;|UEuF8a}=2xdX=uaZ9#`1Ixi-=%GEo) z{mAXSjy{g?IiB%cU!Op}wpM3d!67(tGf0M-V=W^vnfEpM&DvTvivW*-tl0zWFx#_G zSW-L~3u3(5t|#fvUdfmDTO49q?)eMex+MK;P8lDAuc$7!_;h>|`-l!`#fftjiSG=n zdzI+Z>==O^3gKDAk&q>rlt&pWQ%-4*%qi@W^s( z>w2#ajAiDFPfbqmIkBlaxO;UHwPF}G^N3*9lRZ=F3*8+g=9?oDY?3P{ZT9R_7^RJ2 zDV+>xS9CezE$+Z58&=*H)hCpV8iVEqXuOmjJJPg3R$*w#K`=F{46^+x3#*Xllv{Eo zkqh{fb<-&Yx)=}C+mKkqAkvGFDhz>_#W4WpqeCnEx#~eWiU486NU#%{R%y;}5-Uga z+*+FDATH%*EXs@uK0g|=OC?5xMO6Ja^Q;^NHHv*(h94=#r00cyYpYXX6loj-doDFg z_BT)ZBG^s&hz~;5FT_5T=FGFgdo0SZ`Ta;q$D?tAl^^212S|SW!3uDsmEzwP2-uVk z*c{t!i|AXJ+C9~~NrlYT2AM$yk%{eVi0VVozX_b9`4k=9YL&@fC9vZZf4oSzbQN}H z9To+iEWjlCS+JuT_&TkNSw;S~N(T5$giLM59A*t@Xr{|pxO7oT4>nnVqEoNTzyC5duH&* z)&;uM1L7J5bq|Gmpe6VVCp;TsS_|{@LZIeCNRr$C{itBl6{n!?Y46~U6~vH-VLQQ9 z8+tb%Q!=6udBae|b(=WKWsGi{DCyyV}9Q1nk3!C>&$6>U%{TzoNZhSBZPN0 zc0+l!16IhlYH(>t=*L>)H77QPQfaDXU_T~kNSG}lNxu$HV zAwu3cg?q>4>*W8Xp>x*}F6!jJ?HTL5Ay>GvkZh?rFn&c&o@l|ETKQXk;>4|FpZTHO z*#BDiLbc_M;bZVVh|&8E_^+$U+2Bm?`yX{OTBu*Y2>;^(M8(YB=pXnOWi6KDcL|zSUb@cFMMj|L&W!$FKdHlXr@}cB-<+Q>DN8GePLjbB$-&_Cyi@g9Hm~fq& ze3)t>4Y(BU_GF(yAG|A$1Y)xc;l-sThn{IJj~uV7t^}U1w^x;49kv^Om#CF|5ZX<9 zOn)d*9d}8CFIb5|YBuOBM?(K%qZm6fN#o+X8#qUD+<u`8~*wC`t2j-4pGRb*biO{LfIoRhf`Or#1^OpFL-F;HF%c^EH8%&Z9s)zYYi3>c1lV*{8vUY@ZYI2u;F3_ zB};LC#Q5F6IniWhT1Ax1hlHz$Qig1NbzN2@s8mS{Xj=Wk*Wrm4e;azulgiPqm~9GK z5aBE26K&(PK_q{^g-(vX)oMw4&E$DDPHK2jG#$-NlqIKMPc3T2p1$D7R0dh0mc;16 zNL4fe;sN$ZL>KOnT4_LXD;v`@xKm8Sm(HRz_93mQjf)fuGrV^@Q`?Yxhr*|-;vkaAm% zpfW4dgwIi8)p|DQ;hGaYJPniC8jMzV)Q-SXtHUn=$DAliYR5L05OxwDUW`&M;RX^V z?jC;^8Di#|A1*RM1n>Wa2jJx5k$F=PFhqOSu^2!eQF|e&we_{)aZ%66-A@SXT9pkwYC8Z4N%Rmdy)!R7+G5c%XLqCL z#(t6dv53@82;~nkMYX3!AYfgF=;pZhnD4{D18VjU>yFeLjZG#8+gdA>sO#V59}cRYu+jjk z$Gh#{uE`vnI(>b|`z@IEm&OaeQHn<5UXBUeTsc0PW}K2{Mw9}(>6 zrWB|9)br-_lU}VuIj@7ssLL4xNpnXTa`h{)e%Sp5a)a;XLF=cTIm~xB8xn!|1j64M zK=6V{b3onS8l!UaDz%us63opdnz-YABFr(X=l$puwBmOlM~(h zzKx}M#y~+1j%Cj8ps|1x6Yh*b*`D+aVr@|&YfF&yXhZ9_RYO>F5$3v>dYUO+zEq`e zvjv)ZtP|Z_eJz?@ddkrgXjH*vl+?W`IUt8n1^g3ZGrnH$+axXUs&R7HNNi(T&^4nd zQ^QA=q>bG^g@T%BCw>y+C7S$LeE3&S>5W2M3H|gvNoV?a1$|7FQK;m?bnGbbm!oGz zA)*v8zLXn&#JvuhqukdKAI+RL@n0l=Z7=;<+_(GOPdC|=nYRe9#rmV^IyOcWKFr~L zChh2RqCTylU22eP&1AWv-Rz=18@iWE5@_th2|XtNn8Rzafq3-Wsr6>kKMJKWW;}Va zIdI4K@U6iBntV02vaXuF3E(=}#E&FVVfvUkrZa-O2sI zuj=UyfW15aS~Nfj8H!qdipCT4{|Q|CPXOhAT{!=LAsLh{ek>Wv3Ag4Us8p@P zaT~?Nc?Thc8d-oYrQlv*v7Q ze>}H6r?29J3(XW#rDdkGy>?E#rth`meZJrCZGOGi!49BmM;agu8?1(gv8IfXN)N*I zC313;$!NzddCWyVcZ*t1cfD6LO1@(Ku3w{vokq^yx1=hFh|vrUXc zr&oKa<$8?Pn=F`1FC9NTWS$?-4|`H)EK@E>K2Nh&SD9a}V%=l=y$uALwTb{uJ1V=n zOMj{fuxxo-J54cBI;b)&scl`UDP&fY`Pud)%>kzeLn`2m&CL9LDr8SM5<8DADqAC4 zVm@@RMRh)b6xr2{(tC(BT+NVkpl$;bJn>2g@K|xC@(aD9D4RT!V1X5NajueEfAP(3 zaFTL*jN}bCV{N~bE>jDTc_$yzmg;`w=B+sw$I%aDKeF=@PWc0HF6y#5-myqs2dM&HuGTUFpam36ez2|b)mV8n z>YQ|{pFo*2JeO%b!Axqyey4FVd9)SjH1!91Q-QMNsBH8kVlut3%|NZ* z=%S478i@Jrb#DK43r1mM@g^rAoqDNsGNOG-K1-L)qGh0+LysB2P`1KIr9V*)yQ&J% zvv|xUrzsmd_Pc=MEl_qGa08LCa3mcWiFJ6Oosv|>@jt2xU%>6lJ2 z8V=jdnUm=%b^TekPs4eAnVW~jG^UO|5;x=YeVX`s_y?S7#_&1=c(|EwRib)*DNU}H z2`1||`xB}>+5KR@eTxO@n?UUloWd5N0=UH+AmQ0H4 zi8Oa;#rP34T9#4zU6Ogmi2mYW2`KF`is99Rzr-Aa%ivE<2;lGak$9Uy)Q1$yBpA1c zG?Qd&-5qgHy>|ZlWZ<_sCmyNkK5_n$E3u8G+^Qy+HfJw_XdVYIJJO~%hE0z(X&fbP zvZmk%bN)X1zP$$Tz$3kF$S(EX9TB}HL@xm)unq{`A6eW0fiZ#)%M?B6AOtKukTXyc zg)LxGiA@bNkk09kF1~3S`LUKx*qGO8p`wktn4Y4b77xTfoB)@N?4s_Ee0hPlttn=H zBrh{`sIqfr1O<(vwp-whpNVBTa2UZ|m{Tkf^f}Q7cqA$@x=v1tM*fGKpD4o&R z;V7JrDz?!(N{*}I=;sq)og*EcGQBXR10hO|to|kdScFMSPP-|+;OvBD0t#$VF{lp) zXE$I@FOA{Q^k5a|vnrMlAu@UTYeY76m*5w10P4XCEwB=we#(AC_#10jy(WR5nM|L+ z=ypkm-G--LLaj9tARTSI@3;g$c*$2lpAWcX z_grjdBWZx9Ru$(Xfg6)rc4PuS(!gGe3P01s`}T*P4xZh9aY|*xvIK#0X6hyzkm0wa zl)SOLeM<)l?QfB`i966OO}S<>zG{T4+>Y3R3Sf`h(v}GC&g{tT`uuA(Xhjj!=l+4V zz5hVl`2OPvq3}Z{v;2Qss1p7U9O)nPh2n%Y0v#fkG_e#zRxuv1xPTiXKq1&ABVrvH zu96&F5x~k1m5;kS~YkZ7?Wun70-=+LmFf^2?vENss`gIj25a zCDh>7iVtuY_k zOzd*~_fDeXxBhk}G(1m&6!GdoVw1FxAydwZD=~;g%T63OgH&doQjcU@&%Qi|(89Zf za*ne7Mt=%YooGYA{!kw$kaD#81OFL;iXQ+P*!Riw&0EarQiLe*^_cV9IvCESXzHkM zcTo(!>xKS{E$QAw1b}S@zLo9qclJ4~pFzC?=w6s?Ex#Mq8(bgFpYPT<3UCi0^Y`U5Pf zdOoZ0y=vV9Sf%Q^aHJRC2LT_Qp{e8oNNtH|t%+#E2`hi9fMGsvgaM;QagJ#VS&J}Q z!UPh}0J$~6Es_8v&hABJ0_1yA!yu5y?}#qJ;I4i`53gMJYK>1p5kI~7;mw^h$mg?8 zysVbO`)J2)oN|PLF=!WX5wm762A(!M)t-OTFgBFyZ5RCs&f1@Lh5J7S=l_kk{P*kq zf0+FK6M@sDsAU7shsZS`uWU=Pv0hq*V}*o-yq<(&F!;ciKUZ8;yxa{l0hCPH(aN#W zqZ{cXj4(U+$H$jv+|>jR>UVkIprteSHQV#1hsp8EH4e{jMY$>bfcJ8@-1HE(zof^u zFhp3%(e=^b0#A`1LA0Sox}?}ZdK1T7SB*hi$@L~2e%Bl3D~}pa6zXis$xU#S@tS?g zFzg?Z8`vZnEK$+6glL9_8&TjfsM(Tn?OWL_hThWzD`g(lH%3{_Egt=+8Q9Z+!DH^C`^n5>%|M|l;;1w)PCX}=+d zE#~2txv+)&m9wc!yJd?AQ9I!R?^HcQg$U6a^WmE};SG)gEsECCP~FX?!Et-q2}zHF{Vo|O$5K^MnZNgf@t&ze1w=X>mBgFBk+-Y!^Dnw@ zuxLU{u|xQq1B#=u06S`-C=bH@DD6S02WVqQ+WnwP8JbMF(I&_E85E6;jpGkG0b)=b zrfcD$$%Y|T(%z@1So0e4P(W)wQA|*>a4hE{3Ko=FfuNP$UsD&SRSojYum-0WxsHmf(?LWa`|D7wFls4os zL}0lJARs36Eip4$!wfKWVBuY(5>}z{R|SJ{DFJ`;A;nCX6D&7zRH#R39y0O7*@!A( z+Yc1-D~->*mMXT3)XPzp5%Rp~nYf#{x68QXoW7py^n8KP#&7|;Apk@W6W=U>QtO6= zgm7~1>#Ys4b~DTM8URudOID)44ELssWe5SDcYY7@j`b?|MF^F3s$abL~w&i0FW=t$h?2$$ul*RUh?lIh(&KXB;kxrrK2d&+I6dHULSZF%it=7k^{MS z9!l60z+t=Et+9cc8s#IlN!OkXa(}lVE1b>NI6&_N?uRtxhM7cpqfIFz0wd-OMbyxO zt=gag?UlOjuto85IYl>jx^kG4PTR@pvN}eO$Jqn;$+0|P9#x4B6@BL+WIMwzs7(_Q zEIPXzHlA))bb^udERa}2s~O;~p0QW|ZZl9**XO{xOdk38tMPRWSI*AN*8{e20 zTRGkDqG64>R67nU6^LFu*}{vsd|l@|CAu7!AxBux?%UB1G@`HFR?N#qrOMwZxZF?t zaY9;f@)AlOa#3vZi)bEXaU(GwtZq4D*q~{2cx4`;uBAo2w{bKRN3PZl2$6!gJ^+MB zxy=iTxv2{h)2y!zvVpSHSmjgGb?05Qv{Bhz)@?&b^{6;hOXW+hgjuFXo9LoeZ7&hs zJ?8C%ZQVG4f4o4S>^+?pSohT6D;26gc3o1KsFzP%6ym2ZWs{Wp*hJf4W7lsBPiK+P zrElO~xa|Mj?1^y6bQkHo-ua{xx;_Q!8Y6Sp5A!FKqGfoLJX~bBRj>dhzanAOF6zNK z^+`RpSW^i7TtgtNmMoTzoji_?8`l=cA;{{o#5DM;A}=0`5qrxR^?bVL?fZN~gr<}G z$XPvih7QRbEMtc?3m*Wh-tL!S=vSnXDl9L77B8=^A8STMCmEm|RznqwC!DU{)9329 z$3s_d2kyZ0{zu-SO)Y)?0V+%PA!P+u>hcV4Du%Jva$*Xt7SmXx_t-Y0QOe)^06P8z zC*k}x`J4nOF)!N4fktntdvFyZlf!|bQ0lNTqO5q|0>z*;V&>rsm79c&FYF88Sv|PM z!ngM?+3>TB?UxH`rv99&ovW2jofuqeoT^_R(H>?+UVYxC2?Xpstt@1YU66NjlnD*k5 zMM?1)$w^j9F8Z~ntVRL zz5scFlOQ2C8RCY8k)P|#cKL!csQ`fig#d{_CgieL?u2>;kZ4z>kQ^Z zqc@mTz-cPu$TDTi<@%@v+-2P9E9p7OCe<`JjYXFh!*o@x#bq!bX4dgp_pMTtl{3co zuIOM2pF$$aYAHM*Eud%+{YJE))K8%Ox(dY57x7BlI#&=98&M1hW;|VZ&2lug-o?p& z%s^AIC%}MU%1$!S41mjV#A^`rx`;I{kV{CQkC8|c*ku!dq4>F|H~sPM_c!6XtFO^W z87z^0S3;(A{Vs0mi>;G+vLgTDsww<^@#-WCW? zr~C7hBn+40av??&yZw{KbK+h^wE-j^G{fz6@PoX{t#s2mANiQ=RRQrO3h3KSLr9D1 zDh{D&dGKzb#DZZ6CK-o(k0C3aG>cxC>J=Wkvpu9sS%OPvf+eTqUrFS3YH7jLF#wrF za*3_?msv@noH)um13Kn7Wae?v@uNai`}T4EH8gQmoQEoYRzRP)|0h`U|4-xpj}oQ^ z=Bl{j^aYbHRX_p;0fvgqu)2y&K!_#)gbdOk3gSmt3$$u4c{%bI4=U1la1sNVTB{l3nS^Sf3xU(a#(mX`fCkeeHO7-!#HV1SsW&m_I;q8lz z=mQ~(3vDnbSZ|Nai>)}O@|5|!cB6}Cj+rGeIX zFM;pF4b{PpIM5{Ns*OH#s15fEKhokx5Y(saz|D)ZCZ=cps0VtlLHwPiNO9k0;>P7A zbNY)ra^?U+uhW;N+?gccB?Pv+5ThG&kSDkfQ3q^q2)0{&{B-5v^Bm7pU}Wa>AOp`+ zVkF_M6?T|sZ$s~cL0g`q`@qL!yBoG!W4vZZ;dKXQPe*Zn0`J2Dv?lPzhVKJ6)CXpt z2gvArzHBjF+hf*=9-x9M$)5f^-kJH_5V%NV{?yQ7dt^Hien4Si$5ivkD<%W7+*UE})H^zur(p<79Ise5DFgoW5D-mwEsKE6ED zzM(qHzGY)9b3jYY9@Dlxvs-X^R6~)nY{%&j8FiBR!zg+OO&&3igbEAHk8zmPLhSIZ zON|6^W?}^~haF2CwWVy+<)QbxZgU6ENpsQOQtc%2*2k3DI#Q_7?s&9aXEw2sX?Be=s;)XYSp*u^>c?JP z`~$64)QA^sI_m@OWPNsNosnVMOXktUettj$0`9KWuJ+or!!}=`B#X4(3(d9|?+ol^uJ*T6a96~Z8VtBj*4NDi^3d`U-(F3E+7||1&DhjR% z|Dq#;d(e$yX3|u%6bWBNVUcC+>kivemDZJdXg;KGHc=j(q99Ct20>p)S!<FZv6djko=*GqfUa1H8_$!`9OFPQMI$~3msv2yqIosCE^gT9(Q&CY4Gz(h>ls4J?o3w*xqQ|uZ{j0 z+nk_3i`8DEVAk2H>JbeS(?nZgwDDxj!%$n{EJEC+V-~1Vh6U=ea#f=s*iH#8c6GnZ zw`b6_0Kw;ezweT|e39GpeZ&NP4_QcF%z16DYvQj}9HFUQx6Z{~;kHv`g`wL%P zq2cI{A(GV%l6d#MuYQ?k2|1{dq;Df-@eUp9XRC3sCE81n z7s}IGVLBReTaOj0kpL3I2DgC}hzXfSLy7N*>x zctUQFgkgu|ovxUTOqeiN7{+2qRiIyp51j-bx0E;@)r9!e{nJ#syD3LK6=@_Rta1<= zv@@XRyaXO62i#{z%Xe(1CQJh&(Win&;fZ{YK-nr<-;-m@_Ji8}vu(>(FM&#(?YJ4X zSD^8`-H6^~XULEVGqmUQQ=0~J{#bA!7|0S`#B@>w;MFOmXKl-P1WeA74bX70+NF=E z$)J_e^Wa=h>T>lwH`_wW;5~%JdfCa~z^GYkz8;y9^jSTf6CDD?2W`$Kzo}qeMQ2;4 zGn%-bYI<5z$3lEy#iII8XDrACpE8op`G~_os*IbjHeGo4tbw#7j{U+mNi#*00az2# zmC~m$aO3FUjVPI>%hmKYHg4Q+`F7up_d8bD2ql&Ot zk?Trr!WvknV@f#IdzV+{8xywI;WwcS$-T!=QoCRi1s3LOQsEc9{L01TnbHu|mlC0* zB-!pt6he^xzO|1z{)V2(6Kj{&t3hz}wUg#m50GpJjIox9?{kW$NmYsPpAPU(u%O2# zIojuXs8+Iw2n^3A45yH#x#jKc<*jyW2NMaFivEYE)EH<-{#rCWMY9M9Tz{+8X&V`U9kFU^}oMPBR4`i~w9peF&ggVM|bXjK~!j!mgl3bqlrbqB`7x;i-^$ z^vY3X0;SxH4sh5(ct=%S=Vx6T zdu|(8rd^pS)fO$N;tD@&YCjXtmpbLGiY-PSr0wv+_L#M*VQXb)$k+h6?Og4K&r27a zE|@Ju7J#;#tGXPgs@>4>qZ3U;V!xj{vfXTGzQd+@r&8ePvva8unyYIsdJpiKw$9$X z--WZF3;goAU=`0HuZ2pDfkCRfMPWQ{BI|J@DyR%k${wD~Zbt}>G`4LV^(zAYlYES& zT9p#gc}rzj#8F-<@~8*(Qkh-8MnZcs8A?GRDbFROf<2(*+Ai8wF2_8*|HgqTEi=VT zUc)gVZD1`^8J*_wXeuOwY-FXzH%D(g&@t(bcE86(Jlqrg>~49)`5fHpoEMvWFX<0W zAWra6LaSqodhh6szVeXS+oS{$Y=_10{HC{Q3*Mvvdw$9}@i>0(7JyRTMNI}#%%znm>s zTyYB#EVDlze(?pmK{lM?gfaOE)eLf9qcOZx;j^tIJ>c;KzmMTze83ekMvqQ;kHR&M zxhK>nb?#mdyy5kOQ|lWTh0`%DmSN2d5V%wV!7YZ~Gl*IEM7RB=O0BGdhQMlVcI``xE+rhFzLZ(Wh2(25r)CzFB5fK6mYsO+0fGJ#2U>W}7_&Itivzdq zsd0@JWlUkfS7{D^datgdP!eLA`hFn0qPX0N|BJDAiq5QEx3y#2wr!(g+pfH^ZB@m# zZQHi3ij#_MJ3H&2YqkB)+1md0J{hfz)A1ZU_vm-;SFgBtu&ONKc3ukTPSBJ)jz}i( zL}RZDW#oxu-%vI|G^Ec99BqwmkUZW{N@P!Qj7-et4p(3g2{)EyXVE4lPN1?A|Dg#U zNc~gAX;n;Msqk4dSb=*)@+D1j728u$P}M$C6$xY91K^#74gT3>Jly3D!f3>NwMT2h zUeKzo?Xq}PAGSBKyR38>`!xQ6ca?&e?vUV|`oLkGG=SGKCc-mr=&{)8rS*yJPfiAu z6R1d0R2m1vQ-wlX1aoGLvsQ@HA_MQHFtXV>@Hi%Wp48TAkk3VSccWBRL=g2HxDiTe z!Yn|~xr43cZ)QTRA4_5S$l|S#tTKV6AIH;46H#hc5O^T2-I&UGm0{dW7xz-1I74BP zY*H_jtnwy)LNbM4*p|WOP)#9u$1&fT!G<_Kb(_kDS$>HAh^J_5}LXivWh3m+yJSS#m9X>@XnwEC%8;Vlj*zOmOsj!rKH=DK9}WojGR4Hq_Ed) zSV;(cO*1c~-p^Q}$j~w$U=@xKdg1~94t5nHr$XZCHd9a)^H-*=U5B>elVsPH$z*lm zoR#U7Pu&0}Euu{3gReN{`?hN>Klv0P?88IET1UeQp!mxv?yukdCL0{YB`!Q!i&AMK z--!BTTDwMW&C@iaE)*EyH2!x3cM^YFmo01CxYn9pJV0hqW%HgL-)Y zg|AMZT?Lojj(5WS9)c9w?Jf_&%_-?rEH5nos055YSN4-|0>uyB7{K2;o&XMfGgwF> z8`ZP*v#5s%K3q%>j$|fU(o~U-@)dB7SQSv-p_pg@GK4C&;&hJR-SVBZvS87uce0z>rru4IUH{xf2H{~tXh}Yd+j6-LZ zU&E+T*-b+XAFq4=%jo9&+kdos5;*_d`}_`m3w&$0{~R7vbhLB#P%*Lo&J5Z){(q=3 zMQcM_TNB6sSuA8JEB$x!d#mXoP+JrhAjWMGF&+ltGmDj=Ei94;zkJ=l@YrqKb54BHpJY?w-LQSy?T2m$;C|B2lDjyh4l zuLyOSKGQxww^H{CjI$7T+iyzYoe|}W2`M@rRV?VHYOzuW(pwR3g#5nh(2#mN!=Zj3 zTy#~NeTN}&cqDO%5)W4#4=rYmEHQ!(El#0 zc-(JL@O~?Pdf$rQKi6)m7@3>cm?)c=SvWa6di;mX_b+Un%IlCeSa`m&;7vfY@QAWc zIWsd3+zQkQ2Npqyi8*9Thq0Sy0A^=gr zDJ%H=t%jj)x)OW*1-O@+B33$mec2QM3p8Cxt-t@b*3)ShsY zoWQ2Tk>_w1Tpr>A$%4Rd;t^1$W5c|CJf{sDyVm zqHgnbX;mtN3bD`8`$x9sj>%05h96Nr7pO%i)F3dD@$qnF`&18738On0wr-MF@0=%1 z5t5u?KO-b7M742+aQcKtOzm5i@{`U^`->5ZN8W!%V z8rZ%w#_`Yz8R#fPzsaD4S){OF7S+vVNWq{?f5R!}Ry~>?#_Og|2DZ6@ls2hXnQu0g z{=5LFwJU;;&!bHMIA!$KP7zZCZ3Q>7B|h>#?aQv(o(`v{=%Aq#y1AXMUbdcezR@;z z)$dPjut3!V8A5a;JJ`BDQsIm;H|W&SXn*gLKNNgecpU-35NZnjH6vQ8P$6aR0gjzZM2!gh>=j z2otSIR}5)P?48dxwxp_zE}t``=d(^PFnrADWhmH{f%4%5S6?50|3=tQ-s`0|FuG{m_EOoZfVZUU}RCQy$wkCF(&6J z%xQ<*T5+&;-X%Vu-2(f(Oku=US}&ns?sF0+MBns>qpp||TWxRsPa;DPFXG2xtu2&p zj!0ol)^VIj`)+{Mv3U6^})7IBrUG$JX zfKQf~acdF;1Vh;+%??Lz@<={4-DfI%*ADkq`G^|P{=B8xWn-ys~56JXs9N5drwq-a> zlmwx+m$>7r5~LkjL>8vfG4lmWd_rrIJ7LjXNpsX&_zJkP>#`@U%;TZvSw`gqZt_r3 zKcOtK3FQbEC|sS%WjFb#YKb_p;>`dV2fVNYpA@rP50^mt<3($wWz1>MhaduNYn8Sl zGPN{MMeGBawM?0Rh2LB>NN^NzJOQIh_2=+~=Zqj1%lSNM0!A*t1+3n8B^!O(rlwW9 z7m-6)(#38FB6Sk@Dg)3{aBeDGcCA`zE1hYSn*t1=Ym)Pex(AL=aa~1;W{MHTD(N3I zC?{d|Ick-6c-f#BafX8fX)XIS#6NlDLto2WU*HKeASjLMe0+=Q>SIjX&Bb__Uxbou z?@e9Sq?e@J=&Gxnc+dNjY;`sOR}mFqdG>)Zs3H|Q{4uYPPe|#W z0;>Q^N6v*%v;>Y~k00npC?oNFcx`AbSYl&+{0UmRpFhdcjc=l)Df-%Lb5(1r#i1VNDcZjF&aMoW!la22WFpQItAu-G<@F=l!LDW<6vIzFxTE4-CHUkm0Y_s@I3#s?z6G zhhGgWO0E&Cn}%}r=C1bB)%HV+y?7gD7{pz! z5Aj+AT(G|j_+7IvJj6O`ARN?KdgtE)_8TTxSNm5ehT z_sF&(gx(aG((T1Ibdf*wd3(Qw*0YNi0 z=T^_*m@Qnsm56+4Ab{Wipy7eKl_jy7QswPNaG-UZhbxwR%QF&{KC3m!<$rqzby-Qx z3wZ!&W+XI$x)NbW@IbP{8`Pg5%htKq%DbCLP8;dm-P1bsp{Vh&w%H(0;=Eg+%#pf_ zCYgPN8J{ljKH^s0$8rZV;To?LFgILU^|a+MBksq8SzdJfv~h{T+b)@b7WqaMhDSuV zL={LA89Bf|{0gx+BIOf_iN9b*To9!S58E(dhF&efe=iOA`!l3%#czZBRwmz)QHehQ z6wj!Wka7;y`AVu^Pz*Es5s8B<5S>6+9}-~)e?x_BN71hIgU)gdcbIu0BtZ)yt8lC& zwaqMbeIZ-8)Imfe0Dnbl1A5t8_ioxD)iVoCO@|<8ZB#VG)C0f%&M6vbCfdpc64yC+0@0U9y zuPE;=<@cAP6sSQtgGtlx7$FUY3obk>>0$iigEi}z(F`%Fr zk>lBVrhCbg{Wo<;?_!5xr^K|*Y0!S9h1;-dDp0LHp>r#PowretbbChX6E^;99(7Hd zvr#R3*7TTbQufMPq`ILe|DFBCSET!I{DB*I=H@^|UTs5Wez93j%EYJFxM1u@jPV!h z>X&XTKQlP*NDFm@k*}@8d(clm@|(ZK)X_c*iOxp0QeRm>UqttUCBNn6j9gTz|9p}3 z_CSB+SmZ`oRN7A0X*0F=hvZVFL##QkyZIi2x6J|zr=WNav&~vWgK^v&Ud9d0GM53i zToZp#iZW_pz}&m&4wLBH;iuFd(`{|7XG1RmwvdnxHuQwnr1i?K3YCCNs!zIa5td^lc6R}H5APaOr*(iMAmXu<|M*S`hgvH^2nc+)WUR=tYT2!NKahj%sdQwHFoJYy&|P>E^Jvt zfM}}`r2Xw?c};0-;EWlJivQB-%9l{B=$oD#!Blf5o)2g_M%VXs#RM za1ehs;Rp0kA{PCOHyK~2#LvT(^dT+Ni1TERnVaGhwqlal=!e<}k3Du)xYr#uycU=! z<=|X=|-K(B>r?_{E&}rlx_MR79;!S`_y=cMSIZbbTc$AQJ_s%f# zoI(Ej`VYdLiP3FNA0!Y^@;9vKpMQ#^jK3|W->!#$@p&W-ZNJ|g|9jJ{@!^JcfbL82 z#+YC}A$?`J$da0T41FeO}ELib3 zV&TIMiZ1hXCMhF97lRtv?+e|fE;JhLRdwJCr-~N4Zk$YpTVOFhSW%CQ$OoPo+$LfS zz!egbH#PQBcReIYO?eT86C7$_eutwpahD&uW47*xrO{7(AxC!S_E%vZbkH86Med{t z*N@mfLVgz>VpQv_CgL%a$4zKgW4eWD+_7G=f2HToNg4TNQi47xVMCcU>*UE|L>B*e z-<~o+?=_|Av6_ps#7SLvk|J0oS*e@5(Cp>BF=_MkqTu41fz_(r=f14V zNLi@%uRON@+$0Vp%z{cVYo3DEh6P?zLOXjIZ!upA$M>$WP-5K{9qa<)UR7Gi?``TG zw=5JAodP!6$api*{f6rI6U?zW_xN(HvP^-$8f&{rF$7HXWds$ebI}hQ7;RfXv~ip6 zl~fU2KO*mNBmck;>+Ui_{1|GeHeZNJvIh)FQjou=1QW{kI`j2+;!Q~OVCxcOOfJKj z{tw+U#aUPcxS29IZOUl=0ENEOaI_-y{KA20z9S(&eS@qxn=Oumvq_G%8ZJCnc=1IH zS5gY(ms5a@Oh@lChg!*;w=H$jZBym@--a(&M(+S8?geILHDoyB3oX;7Rz3UpVF48) z+tRXIfxf8>Q1NNz_;y;4Iq%w7^lHkfPN}O$06>uXdF7D+KbNo8D$;4@yRT5e}UvR@j?~qsAD%?#bH^2#$lh< zyJ{B^XL<)0-EZ-lUSRQ>GE<|rT3p-WxdG3n-NDh~8Ft$0837iC=PixWe~?u-cwX%Q z^#&>x7Q|OCDn-6;cxO;^!yfOZq>x$5@LGkArnP03$8QgUu zYLGs@?57QP#Bg!+T`Z&1ntj)jM9ms6&HVEEzK-)#)Z4ZI|5$miG)i&4(n;o1OU>-O z!=0%%u#I;%H7otcAI91EfH%2`c-uj74rMu8c$Z2qQ{UcHnnK71@SjT=hUjz zMq7UTe4QrCEn#QGH7&KS8(jCO*dy6VXk=dI2b?z;zC6o$O67tYQOf6e+izQ!A5czH z@_jdu8!yZty1;JE`hoMSZK3TlP`W>A?_h*O7)iW=PdyauLrQ2y9WX~OGy@>(fPGfR z@TW9>6Xu6B`0H=o{P7F(EX{n<6E>D8z2gOoDAibD-mUNUr?MHuX%efngrNsKkSw9q zH6!q;w&)5C>=Y|@a=Rl(iB-aGD`HEb_I&+DjxKn|_^Y5n*hiFw%!cT0_9ks^{6OSD zvvo>*UJRji(Wn24yt^^eg){?M+9%-?PYFD|Nf1q9TQQ)B)*3Ht12^cumK$Qag82~OA`@U2 z`*bS>{zaiz)Kn70r!N4O;SpN*P=-6ENhlBP#Fpc@;jW6n4ZwL7QGQW;s42>vCp@B< zwW8u6zV&(Dp&~M_*lA$pr7Bjk9RJRtJu-cL^iyfQZIX+KLLs*!wA)3gUAdh}AViJC zrzvqycfUES-0grpa1=i?B~`&Qz50%!scPiB zM4Fn+UOnng)P%9w(?hF;S*CXN#MJL9a?`_R22@mQgzrbZOBfc)aHS0~wFvq! zhX&4BF7uT-Ib)uQ{vryaWmt+z{{*&o-vGJ(t0wWU<&#xh<6}AJ9UIS2gy`!G)~Kgz zxGhRvLd8?k@vOZ4k$0#!um~=h7=b%3Y`}XDjYGcjZRm(p=&ca}rQx(iOc;^Xv{VeV zM+-wrDwOiNVN6)j^V<{R4O!?&=hHD%T5`|G3u7f;pGSqp*{P-$PZ;lb&N~7D^zs+v zzYC@P4?l~%zxDU1Z?Tl?AFYup9!}0CHlik`hA!65qP9-TCQf$NuKzO@Bq@!_g9st{ zz>iYxR<{DaTMilvZU9Ua)pLR7B&S0vtc|l=&IxJ52Q~MFH`|cUO2g@W<{JnE#iw26 zo=F-Dj5P`~K*`Km!XTv7#!RO_C;M6hpo90@=f`cC29KP~;KFQF;^2J5iVh4bl#)Ng zsJv9M>2NgM&H6Qn{TL~%<-p-8#P&4W%wbw6Jf_wtG@^<}^a|J+HzCwHT=#>_JzOOq zM_8D)lI~&QqW=!Vy}SVQbfGVy^$y6-X!Yp#r`Or(=>>CZwaR9_f3%BEfpIwBiwwlB zbvc+U&=i0|CJf3HA9Oe>1i3c&rD?%%7R3eb{iKPa^TbyF^g|W-Dk&;()N40(I(*AE zAHr07+?!SLDVu8ADghNlFvR-2kYFmT5aqKwdsJj2Ges_WGC9s2iB>8$qH;yqOT<2i z4uY(GE8P@h#zsGi%}=#O%*{Z8ddf{H7QVr$(_EPlByoL`>%lTeYr?D2uyMlugYH{R=V9V; z0X7m=FesM@6ivUX1ZtB9?O-KKR6NYw44p(B+tj#%yR8{8(rx$$Rl5U819XV?QXJ51>#^M{88bvL6GoHnw#9aYaql3DLQh)LVNURT6ZRB)*xFvmD)+2 z12no7zRc}DL)vN(Mrgqx0lc$85w5ZD5_e6hUACFO^1HlzIX`dQJRZ8p2o7J~q~3oW zNyNJ++VBq(`j&1-`j3Dw=BqIf*11UB(Mb>qT5v~rOf7}Wc>0dro%2oHeYaJmbUA3B zip|uPLn1&GhX2_t9szafa&E)s$+oBay8sS>n`2z2q(4bmoQ1u#Pg-4a6PG=zL?J$Ne#JQYKvPbDTH!T=> zTd7wAuvk}sNR*^>yIRy#zyl16^28E#p8kYK*+K*UL_>HowM!_cg5UxB>^z>$Y7)
    s+NCp{1dlC-+pl{W{UuF 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
  • FUq$BAmQTSWjdvHIMce$9);@6D`ac6r3l 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�_#*y^jKqIuV1smpQ%StAu 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

    grHNYrS%3Ix#(lTad8 zd^}P1k9$1A3>^DZ5s!T!5Yc{%hSvxwg&2OyA5C%!=6L0$Xf>x^B0eELl4UmEw~Ka= zlXcQ~F(eMRBDyk(I7fKv%cLmkZ22?|$|8UR$)ewPnyH>7$3wO=_28}}`i@)VPfg9+ouC}_H zA%_fyio(Nrh_q3Kn5{Rd5cVAPBi$56{RnGtLO@7MDl|`a z-opP$|M0Kp^*0hP=IIEcoc;<6v9fpjn-fe{)6u{KfwqWJX}VDB;+1qM4kJHC5BU@0Rhc7RoNIgn zUN?TO9cTUgc)PXuWagVJid##Q7HPsC!DI<5O*N<}zl*RbyNkIkyGz$eCvi=BOK(r1 z*e8s7y(^D@J>sNsMN9o8*q0FO1HTVfVh7}bkM}joByK;rZ~?F&EF4wp+r)P0yyS?{ zoB~WvmRqheoWIhF4+X6mQL^FxC_lB^;@nveLbj{E>3*wHH_cdUXBPf|J>XHi!LZLefB{pk)xNcOmNJyt z-h9H|g=yv5AD2{NXIE|UnXiHFT`J{MqYtl*PYPMk70VqW3TGm)wf1}RCyGkTQtN7 z7AbtxGr>?-KY8oU-fFdRZie}uL3lRNaE?UF@8T3QzMEb0rpY-$U-;+GS|>jP{%{Uq zAYIiPV~EQ`v*Oge0E;*uAHrg{aAW2o%b7`|LSOf<9|pzh{sMV3WI#yWy!dsNelb}k zP{uH-mSmv7D7pB%{4Iy>8Ofm02RN;1vbr)0m`{?mXX^P7v@pBB4tQztP;ID zip9ydK1UwuMA88yNrL_Up%V|qo{>S0G|Cc+1&el0JfU1oL>TL9b#ZwnjHm+@O2Z$Km@#-hDW5 z*eX1f%zx3RrY}4E!_1=@c>T09!e-Wrx$^ADXMeNX(JGx%>DP+FQT~*(xkWo@AHT2T z_r!0H=KNz~o?${C>G7E{kO$&Sp4c-L%VYm5(pB<4DAlV6Nuc+=!AEciDQq4L1F6Du zH1d-_>BN9OZ?J^g+iGO7=VVCk=x?VWUt!btawLU4Dnfri?&}TQoAOYt>RZN+JV0eP zhjn+hM6`kiT^_Xh;$6m*C`Zhbf4#@LGIx@#Dcsa7CsOhC zk7h#z$gt-`Jf2+6xh7?+62?+YDjG`2S*@d7A%q+6dTNvf4#bp8o~IM{qgqQZ%aEoI zLWpJ)1CfJCBG6T|%T$?@Q+CBbPbu2?k<#Q%PW?U0f~2SVbJ*$2?%_=uQxgL!i?9Ri zLgSbqeZ9$SlZ=i?WlgYpxJGnUox5NDChbj1T4?m6c+%pc3S??jJQaM}oQD~FIsOZM zzpYM%jl0-GkxG|EJR4b(c{SZ9a4OVrMz*u*jf z1R?Sv&kP&)pJ;u}hE>9ol(K>^s$S>B4?-SYF&fZrS%v03hv? z;K~nK;r5@zotXL1MjenT-DUxfZ}BjCmTq|7auoH7-l~>=gf}wTQ-pCB?IGb7tP)r0 z&ms$zB6#P+Rz*k{N3cpX9XcQc4Cbo7X$?erN(~vXzF`EY+svih z=+8TnPtV`L>Z{#m09I}R0FK)fz>lG}>m38$eq3&y`0_nHgzMd(xcou)terDP(nawh zS<0$%f(sAu;y`iw&f)|el4M@oNRqP$V?fpwNm{uNVh+3Y~&LecW-> zN_Vseo3;>wHFY zeK9t?R}bSYwT5M4y6m3*HfFuH+WKmnh_=Cbjx)w`H2yqk8PBRFwQRT|ww){#Ui9ln zQT$wZN;~UcCrUabATDritl==y^=#oI2vu^_p?N8C?n?5{iw$r6;*0Y-o9n z4&q?@XHJQl5Z`;VI4m5Uq#fDQNATb>?RMG2o21qZAsZYmrW@?>0HYn-Ybef5E+#%Q z6m>Cm_pD)h9%gS;DsZFwV(5B^ISS>C7dB+eb7cEB?^jg^ALB(Se(EfzO4ce!6eyj_ z-+4FFJTu?7SG2HUV@&ymnzxoW{~~j{=SySRX{Gnl!9_76Ptc?L3Sp=b8NSnzzH_9S z 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 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.laas.libtts/lib/json-simple-1.1.jar b/eclipse/plugins/fr.laas.libtts/lib/json-simple-1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..f395f41471a796876278a6c5667ded4632546893 GIT binary patch literal 16046 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℘F$H%fw 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 z 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

    n7CLX7U>`cyk&_pwKYUR7+m&k32bcuTv)M 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

    xVPum?B2`w%==1P;<^qrDLZA} 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

    Ht~W3}L!ver!0u5u&F*_@DD;gU_# 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 X>Lj4)1%VWTf9```vS9~E$szv-k;qx~ literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.laas.libtts/lib/libthrift-0.9.2.jar b/eclipse/plugins/fr.laas.libtts/lib/libthrift-0.9.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..a06e276d39a6620fd3310858e24d43b00bf0a083 GIT binary patch literal 227705 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¬!oMa>S}~Ten}8 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%0DO`*=<$B*U)84zbqh$7PTh0-V#1pbX2 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 literal 0 HcmV?d00001 diff --git a/eclipse/plugins/fr.laas.libtts/plugin.xml b/eclipse/plugins/fr.laas.libtts/plugin.xml new file mode 100644 index 0000000..9e76995 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/plugin.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/Activator.java b/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/Activator.java new file mode 100644 index 0000000..addaa94 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/Activator.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +package fr.laas.libtts; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + + +public class Activator extends AbstractUIPlugin { + + + // The plug-in ID + public static final String PLUGIN_ID = "fr.laas.libtts"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + public static String FRAC_PATH = ""; + public static String LIBTTS_PATH = ""; + /** + * 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; + FRAC_PATH = getPreferenceStore().getString("frac_dir")+"/"; + LIBTTS_PATH = getPreferenceStore().getString("server_bin"); + + } + + /* + * (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; + } + + /** + * Returns an image descriptor for the image file at the given + * plug-in relative path + * + * @param path the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return imageDescriptorFromPlugin(PLUGIN_ID, path); + } +} diff --git a/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/FiacreSimulatorPreferencePage.java b/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/FiacreSimulatorPreferencePage.java new file mode 100644 index 0000000..960525a --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/FiacreSimulatorPreferencePage.java @@ -0,0 +1,34 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +package fr.laas.libtts; + +import org.eclipse.jface.preference.DirectoryFieldEditor; +import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.FileFieldEditor; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPreferencePage; + +public class FiacreSimulatorPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage{ + + @Override + protected void createFieldEditors() { + // TODO Auto-generated method stub + addField(new DirectoryFieldEditor("frac_dir", "Frac directory", getFieldEditorParent())); + addField(new FileFieldEditor("server_bin", "TTS simulator", getFieldEditorParent())); + } + + @Override + public void init(IWorkbench workbench) { + // TODO Auto-generated method stub + setPreferenceStore(Activator.getDefault().getPreferenceStore()); + } + +} diff --git a/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/LibTTS.java b/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/LibTTS.java new file mode 100644 index 0000000..b5ef7ed --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/LibTTS.java @@ -0,0 +1,220 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + * Jorge Enrique Gutierrez Zuluaga + *******************************************************************************/ +package fr.laas.libtts; + +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +import org.apache.thrift.TException; +import org.apache.thrift.protocol.TBinaryProtocol; +import org.apache.thrift.protocol.TProtocol; +import org.apache.thrift.transport.TSocket; +import org.apache.thrift.transport.TTransport; +import org.apache.thrift.transport.TTransportException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.MultiStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.ui.PlatformUI; + +import tts.Error; +import tts.InvalidPath; +import tts.Net; +import tts.TTS.Client; + +public class LibTTS { + private Client client; + private TTransport transport; + private Net tts_model; + private TTSSimulator TTSSimulator; + private Process tts_server_process; + + public LibTTS(String _tts_model_path) { + + // call the server automatically + Runtime tts_server_run = Runtime.getRuntime(); + try { + tts_server_process = tts_server_run + .exec(Tools.LibTTS+" --port=9090"); + // tts_server_process.waitFor(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + // Launch le LibTTS client + client = launchClient(); + initialize_tts_model(_tts_model_path); + } + + private void initialize_tts_model(String _tts_model_path) { + Net pn; + try { + pn = client.load_local(_tts_model_path); + if (pn.isTimed()) + System.out.print("Timed "); + System.out.println("TTS successfully loaded"); + setTTS_model(pn); + TTSSimulator = new TTSSimulator(tts_model, client); + } catch (Error e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InvalidPath e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (TException e) { + showException("TException", e); + quit(); + //e.printStackTrace(); + } + + } + + public static void showException(String message, final Exception ex) { + + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + ex.printStackTrace(pw); + // ex.printStackTrace(); + + final String trace = sw.toString(); // stack trace as a string + + // Temp holder of child statuses + List childStatuses = new ArrayList(); + + String error = null; + // Split output by OS-independend new-line + for (String line : trace.split(System.getProperty("line.separator"))) { + if (error == null) + error = line; + else + childStatuses.add(new Status(IStatus.ERROR, "fr.laas.libtts", line)); + } + + MultiStatus multiStatus = new MultiStatus("fr.laas.libtts", IStatus.ERROR, + childStatuses.toArray(new Status[] {}), // convert to array of + // statuses + error, ex); + + ErrorDialog.openError(null, "Unexpected Error", message, multiStatus); + } + + public TTSSimulator getTTSSimulator() { + return TTSSimulator; + } + + public void setTTSSimulator(TTSSimulator simulateTTS) { + this.TTSSimulator = simulateTTS; + } + + private Client launchClient() { + + transport = new TSocket("localhost", 9090); + try { + // System.out.println("ttransport " + transport); + transport.open(); + } catch (TTransportException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + TProtocol protocol = new TBinaryProtocol(transport); + Client _client = new Client(protocol); + // System.out.println("3"); + return _client; + } + + public void simulate() { + + TTSSimulator.simulate(); + } + + public Net getTTS_model() { + return tts_model; + } + + public Client getClient() { + return client; + } + + public void setClient(Client client) { + this.client = client; + } + + public void setTTS_model(Net tts_model) { + this.tts_model = tts_model; + } + + public void quit() { + try { + client.shutdown(); + } catch (TException e) { + // TODO Auto-generated catch block + // e.printStackTrace(); + } + transport.close(); + tts_server_process.destroyForcibly(); + // callCommand("kill -9 "+getPidOfProcess(tts_server_process)); + // IWorkbenchWindow window = + // HandlerUtil.getActiveWorkbenchWindowChecked(event); +// if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) { +// MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), +// "Fiacre simulator", "Simulator closed"); +// } + } + + private static void callCommand(String line_cmd) { + Runtime cmd_run = Runtime.getRuntime(); + Process cmd_process; + try { + cmd_process = cmd_run.exec(line_cmd); + + try { + cmd_process.waitFor(); + } catch (InterruptedException e) { + + // TODO Auto-generated catch block + e.printStackTrace(); + } + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + + public static long getPidOfProcess(Process p) { + long pid = -1; + + try { + if (p.getClass().getName().equals("java.lang.UNIXProcess")) { + Field f = p.getClass().getDeclaredField("pid"); + f.setAccessible(true); + pid = f.getLong(p); + f.setAccessible(false); + } + } catch (Exception e) { + pid = -1; + } + return pid; + } + +} diff --git a/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/TTSSimulator.java b/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/TTSSimulator.java new file mode 100644 index 0000000..8ca8720 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/TTSSimulator.java @@ -0,0 +1,376 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +package fr.laas.libtts; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Stack; + +import org.apache.commons.lang3.math.Fraction; +import org.apache.thrift.TException; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +import tts.Clock; +import tts.Error; +import tts.Interval; +import tts.InvalidDelay; +import tts.Net; +import tts.NotFireable; +import tts.Place; +import tts.StateNotFound; +import tts.TTS.Client; +import tts.TTSState; +import tts.Transition; +import tts.TransitionNotFound; + +public class TTSSimulator { + private Net pn; + private Client client; + private HashMap allTransitions; + private HashMap allPlaces; + private TTSState state; + private Stack previous_states; + + public Stack getPrevious_states() { + return previous_states; + } + + public void setPrevious_states(Stack previous_states) { + this.previous_states = previous_states; + } + + public TTSSimulator(Net apn, Client aclient) { + pn = apn; + client = aclient; + HashMap atransitions = new HashMap(); + for (Transition transition : pn.getTransitions()) { + atransitions.put(transition.getUid(), transition); + } + HashMap aplaces = new HashMap(); + for (Place place : pn.getPlaces()) { + aplaces.put(place.getUid(), place); + } + allPlaces = aplaces; + allTransitions = atransitions; + previous_states = new Stack(); + try { + state = client.initial_state(); + } catch (Error e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (TException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public Net getPn() { + return pn; + } + + public void setPn(Net pn) { + this.pn = pn; + } + + public Client getClient() { + return client; + } + + public void setClient(Client client) { + this.client = client; + } + + public HashMap getAllTransitions() { + return allTransitions; + } + + public void setAllTransitions(HashMap transitions) { + this.allTransitions = transitions; + } + + public HashMap getAllPlaces() { + return allPlaces; + } + + public void setAllPlaces(HashMap places) { + this.allPlaces = places; + } + + public TTSState getState() { + return state; + } + + public void setState(TTSState state) { + this.state = state; + } + + public void simulate() { + try { + printCurrent(); + boolean quit = false; + while (!quit) { + BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in)); + String s; + try { + s = bufferRead.readLine(); + String[] line = s.split(" "); + switch (line.length) { + case 1: + switch (line[0]) { + case "q": + quit = quit(); + break; + case "h": + help(); + break; + case "p": + printCurrent(); + break; + default: + System.out.println("Unknown command"); + } + break; + case 2: + switch (line[0]) { + case "f": + fireTransition(Long.parseLong(line[1])); + break; + case "d": + delay(line[1]); + break; + default: + System.out.println("Unknown command"); + } + break; + default: + System.out.println("Invalid usage"); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } catch (TException x) { + x.printStackTrace(); + } + } + + public boolean quit() { + System.out.println("Quit! Bye."); + return true; + } + + public void help() { + System.out.println("LibTTS commands: "); + System.out.println("h \t //this mode "); + System.out.println("f n \t //fire the transition n (n is the transition uid)"); + System.out.println("d n \t //let delay n elapse (n int or float)"); + System.out.println("p \t //Print the current state"); + System.out.println("q \t //Quit LibTTS"); + } + + public void printCurrent() { + System.out.println("Printing the current state"); + printStatesAndValues(); + printTransitions(); + } + + public void fireTransition(long parseLong) + throws Error, StateNotFound, TransitionNotFound, NotFireable, TException { + TTSState previous_state = state; + state = client.fire(state.uid, parseLong); + //System.out.println("do firing: " + allTransitions.get(parseLong).name); + previous_states.add(previous_state); + //System.out.println("previous "+ previous_states); + //printCurrent(); + } + + public void delay(String d) throws Error, StateNotFound, InvalidDelay, TException { +// try { + TTSState previous_state = state; + Fraction frac = Fraction.getFraction(d); + Clock delay = new Clock(); + delay.numerator = String.valueOf(frac.getNumerator()); + delay.denominator = String.valueOf(frac.getDenominator()); + +// try { + state = client.advance_time(state.uid, delay); + System.out.println("do delay: "); + //printCurrent(); +// } catch (Error e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (StateNotFound e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (InvalidDelay e) { +// // TODO Auto-generated catch block +// System.out.println("not possible date:" + d); +// } catch (TException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// +// +// } catch (NumberFormatException nfe) { +// System.out.println("Unknown Number Format:" + d); +// } + previous_states.add(previous_state); + //System.out.println("previous "+ previous_states); + } + public void undo(){ + state = previous_states.pop(); + } + public void printStatesAndValues() { + + System.out.print("Places:"); + for (Long id : state.getMarkings()) { + System.out.print(allPlaces.get(id).getName() + " "); + } + System.out.println(""); + //System.out.println("Values:" + state.getValues()); + // The following printing of values is just to debug the current values of variables + System.out.println("Values:"); + JSONParser parser = new JSONParser(); + try { + JSONObject json_values = (JSONObject) parser.parse(state.getValues()); + ArrayList list = new ArrayList(json_values.keySet()); + Collections.sort(list); + for (Object key: list) { + System.out.print("\t"+key+":"); + System.out.println(json_values.get(key)); + } + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public ArrayList getCurrentPlaces(){ + ArrayList places = new ArrayList(); + for (Long id : state.getMarkings()) { + places.add(allPlaces.get(id).getName()); + } + return places; + } + public HashMap getFireableTransitions(){ + HashMap transitions = new HashMap(); + try { + for (Long transition_id : client.enabled(state.getUid())) { + if (client.fireable(state.getUid()).contains(transition_id)) { + transitions.put(allTransitions.get(transition_id).getName(), getInterval(allTransitions.get(transition_id).getInterval(),state.getClocks().get(transition_id))); + } + } + } catch (Error e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (StateNotFound e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (TException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return transitions; + } + + public HashMap getEnabledTransitions(){ + HashMap transitions = new HashMap(); + try { + for (Long transition_id : client.enabled(state.getUid())) { + if (!(client.fireable(state.getUid()).contains(transition_id))) { + transitions.put(allTransitions.get(transition_id).getName(), getInterval(allTransitions.get(transition_id).getInterval(),state.getClocks().get(transition_id))); + } + } + } catch (Error e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (StateNotFound e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (TException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return transitions; + } + public void printTransitions() { + System.out.println("Enabled (Fireable) transitions in the state " + state.getUid()); + try { + for (Long transition_id : client.enabled(state.getUid())) { + String res_transition = ""; + if (client.fireable(state.getUid()).contains(transition_id)) { + res_transition = "+ "; + } else { + res_transition = "- "; + } + res_transition += transition_id + " " + allTransitions.get(transition_id).getName(); + res_transition += " "; + res_transition += getInterval(allTransitions.get(transition_id).getInterval(), + state.getClocks().get(transition_id)); + res_transition += " "; + System.out.println(res_transition); + } + } catch (TException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private String getInterval(Interval interval, Clock clock) { + String res_interval = ""; + + if (interval == null) { + res_interval = " [0, w["; + } else { + Fraction low = Fraction.getFraction(interval.low.numerator + "/" + interval.low.denominator); + Fraction dynamic_clock = Fraction.getFraction(clock.getNumerator() + "/" + clock.getDenominator()); + if (interval.open_low) { + if ((low.subtract(dynamic_clock)).floatValue() < 0) { + res_interval += " ["; + } else { + res_interval += " ]"; + } + } else { + res_interval += " ["; + } + + if ((low.subtract(dynamic_clock)).floatValue() < 0) { + res_interval += "0"; + } else { + res_interval += (low.subtract(dynamic_clock)).floatValue(); + } + res_interval += ", "; + if (interval.high == null) { + res_interval += "w"; + } else { + Fraction high = Fraction.getFraction(interval.high.numerator + "/" + interval.high.denominator); + if ((high.subtract(dynamic_clock)).floatValue() < 0) { + res_interval += "0"; + } else { + res_interval += (high.subtract(dynamic_clock)).floatValue(); + } + } + if (interval.open_high) { + res_interval += "[ "; + } else { + res_interval += "] "; + } + } + return res_interval; + } +} diff --git a/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/Tools.java b/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/Tools.java new file mode 100644 index 0000000..8bd7a4b --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/fr/laas/libtts/Tools.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +package fr.laas.libtts; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; +import java.util.Map.Entry; + + + +public class Tools { + + public static String FRAC_PATH; + public static String LibTTS; + + public static void getProperties() throws IOException{ + Tools.FRAC_PATH = Activator.FRAC_PATH ; + Tools.LibTTS = Activator.LIBTTS_PATH ; + + } + +} diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/Clock.java b/eclipse/plugins/fr.laas.libtts/src/tts/Clock.java new file mode 100644 index 0000000..bd8d2bc --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/Clock.java @@ -0,0 +1,491 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class Clock implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Clock"); + + private static final org.apache.thrift.protocol.TField NUMERATOR_FIELD_DESC = new org.apache.thrift.protocol.TField("numerator", org.apache.thrift.protocol.TType.STRING, (short)1); + private static final org.apache.thrift.protocol.TField DENOMINATOR_FIELD_DESC = new org.apache.thrift.protocol.TField("denominator", org.apache.thrift.protocol.TType.STRING, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new ClockStandardSchemeFactory()); + schemes.put(TupleScheme.class, new ClockTupleSchemeFactory()); + } + + public String numerator; // required + public String denominator; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + NUMERATOR((short)1, "numerator"), + DENOMINATOR((short)2, "denominator"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // NUMERATOR + return NUMERATOR; + case 2: // DENOMINATOR + return DENOMINATOR; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.NUMERATOR, new org.apache.thrift.meta_data.FieldMetaData("numerator", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + tmpMap.put(_Fields.DENOMINATOR, new org.apache.thrift.meta_data.FieldMetaData("denominator", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Clock.class, metaDataMap); + } + + public Clock() { + } + + public Clock( + String numerator, + String denominator) + { + this(); + this.numerator = numerator; + this.denominator = denominator; + } + + /** + * Performs a deep copy on other. + */ + public Clock(Clock other) { + if (other.isSetNumerator()) { + this.numerator = other.numerator; + } + if (other.isSetDenominator()) { + this.denominator = other.denominator; + } + } + + public Clock deepCopy() { + return new Clock(this); + } + + @Override + public void clear() { + this.numerator = null; + this.denominator = null; + } + + public String getNumerator() { + return this.numerator; + } + + public Clock setNumerator(String numerator) { + this.numerator = numerator; + return this; + } + + public void unsetNumerator() { + this.numerator = null; + } + + /** Returns true if field numerator is set (has been assigned a value) and false otherwise */ + public boolean isSetNumerator() { + return this.numerator != null; + } + + public void setNumeratorIsSet(boolean value) { + if (!value) { + this.numerator = null; + } + } + + public String getDenominator() { + return this.denominator; + } + + public Clock setDenominator(String denominator) { + this.denominator = denominator; + return this; + } + + public void unsetDenominator() { + this.denominator = null; + } + + /** Returns true if field denominator is set (has been assigned a value) and false otherwise */ + public boolean isSetDenominator() { + return this.denominator != null; + } + + public void setDenominatorIsSet(boolean value) { + if (!value) { + this.denominator = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case NUMERATOR: + if (value == null) { + unsetNumerator(); + } else { + setNumerator((String)value); + } + break; + + case DENOMINATOR: + if (value == null) { + unsetDenominator(); + } else { + setDenominator((String)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case NUMERATOR: + return getNumerator(); + + case DENOMINATOR: + return getDenominator(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case NUMERATOR: + return isSetNumerator(); + case DENOMINATOR: + return isSetDenominator(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof Clock) + return this.equals((Clock)that); + return false; + } + + public boolean equals(Clock that) { + if (that == null) + return false; + + boolean this_present_numerator = true && this.isSetNumerator(); + boolean that_present_numerator = true && that.isSetNumerator(); + if (this_present_numerator || that_present_numerator) { + if (!(this_present_numerator && that_present_numerator)) + return false; + if (!this.numerator.equals(that.numerator)) + return false; + } + + boolean this_present_denominator = true && this.isSetDenominator(); + boolean that_present_denominator = true && that.isSetDenominator(); + if (this_present_denominator || that_present_denominator) { + if (!(this_present_denominator && that_present_denominator)) + return false; + if (!this.denominator.equals(that.denominator)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_numerator = true && (isSetNumerator()); + list.add(present_numerator); + if (present_numerator) + list.add(numerator); + + boolean present_denominator = true && (isSetDenominator()); + list.add(present_denominator); + if (present_denominator) + list.add(denominator); + + return list.hashCode(); + } + + @Override + public int compareTo(Clock other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetNumerator()).compareTo(other.isSetNumerator()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetNumerator()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.numerator, other.numerator); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetDenominator()).compareTo(other.isSetDenominator()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetDenominator()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.denominator, other.denominator); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("Clock("); + boolean first = true; + + sb.append("numerator:"); + if (this.numerator == null) { + sb.append("null"); + } else { + sb.append(this.numerator); + } + first = false; + if (!first) sb.append(", "); + sb.append("denominator:"); + if (this.denominator == null) { + sb.append("null"); + } else { + sb.append(this.denominator); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + if (numerator == null) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'numerator' was not present! Struct: " + toString()); + } + if (denominator == null) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'denominator' was not present! Struct: " + toString()); + } + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class ClockStandardSchemeFactory implements SchemeFactory { + public ClockStandardScheme getScheme() { + return new ClockStandardScheme(); + } + } + + private static class ClockStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, Clock struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // NUMERATOR + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.numerator = iprot.readString(); + struct.setNumeratorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // DENOMINATOR + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.denominator = iprot.readString(); + struct.setDenominatorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, Clock struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.numerator != null) { + oprot.writeFieldBegin(NUMERATOR_FIELD_DESC); + oprot.writeString(struct.numerator); + oprot.writeFieldEnd(); + } + if (struct.denominator != null) { + oprot.writeFieldBegin(DENOMINATOR_FIELD_DESC); + oprot.writeString(struct.denominator); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class ClockTupleSchemeFactory implements SchemeFactory { + public ClockTupleScheme getScheme() { + return new ClockTupleScheme(); + } + } + + private static class ClockTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, Clock struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + oprot.writeString(struct.numerator); + oprot.writeString(struct.denominator); + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, Clock struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + struct.numerator = iprot.readString(); + struct.setNumeratorIsSet(true); + struct.denominator = iprot.readString(); + struct.setDenominatorIsSet(true); + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/Error.java b/eclipse/plugins/fr.laas.libtts/src/tts/Error.java new file mode 100644 index 0000000..87036c9 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/Error.java @@ -0,0 +1,399 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.TException; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class Error extends TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Error"); + + private static final org.apache.thrift.protocol.TField REASON_FIELD_DESC = new org.apache.thrift.protocol.TField("reason", org.apache.thrift.protocol.TType.STRING, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new ErrorStandardSchemeFactory()); + schemes.put(TupleScheme.class, new ErrorTupleSchemeFactory()); + } + + public String reason; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + REASON((short)1, "reason"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // REASON + return REASON; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.REASON, new org.apache.thrift.meta_data.FieldMetaData("reason", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Error.class, metaDataMap); + } + + public Error() { + } + + public Error( + String reason) + { + this(); + this.reason = reason; + } + + /** + * Performs a deep copy on other. + */ + public Error(Error other) { + if (other.isSetReason()) { + this.reason = other.reason; + } + } + + public Error deepCopy() { + return new Error(this); + } + + @Override + public void clear() { + this.reason = null; + } + + public String getReason() { + return this.reason; + } + + public Error setReason(String reason) { + this.reason = reason; + return this; + } + + public void unsetReason() { + this.reason = null; + } + + /** Returns true if field reason is set (has been assigned a value) and false otherwise */ + public boolean isSetReason() { + return this.reason != null; + } + + public void setReasonIsSet(boolean value) { + if (!value) { + this.reason = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case REASON: + if (value == null) { + unsetReason(); + } else { + setReason((String)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case REASON: + return getReason(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case REASON: + return isSetReason(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof Error) + return this.equals((Error)that); + return false; + } + + public boolean equals(Error that) { + if (that == null) + return false; + + boolean this_present_reason = true && this.isSetReason(); + boolean that_present_reason = true && that.isSetReason(); + if (this_present_reason || that_present_reason) { + if (!(this_present_reason && that_present_reason)) + return false; + if (!this.reason.equals(that.reason)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_reason = true && (isSetReason()); + list.add(present_reason); + if (present_reason) + list.add(reason); + + return list.hashCode(); + } + + @Override + public int compareTo(Error other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetReason()).compareTo(other.isSetReason()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetReason()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reason, other.reason); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("Error("); + boolean first = true; + + sb.append("reason:"); + if (this.reason == null) { + sb.append("null"); + } else { + sb.append(this.reason); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class ErrorStandardSchemeFactory implements SchemeFactory { + public ErrorStandardScheme getScheme() { + return new ErrorStandardScheme(); + } + } + + private static class ErrorStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, Error struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // REASON + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.reason = iprot.readString(); + struct.setReasonIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, Error struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.reason != null) { + oprot.writeFieldBegin(REASON_FIELD_DESC); + oprot.writeString(struct.reason); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class ErrorTupleSchemeFactory implements SchemeFactory { + public ErrorTupleScheme getScheme() { + return new ErrorTupleScheme(); + } + } + + private static class ErrorTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, Error struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetReason()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetReason()) { + oprot.writeString(struct.reason); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, Error struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.reason = iprot.readString(); + struct.setReasonIsSet(true); + } + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/Interval.java b/eclipse/plugins/fr.laas.libtts/src/tts/Interval.java new file mode 100644 index 0000000..004c1d8 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/Interval.java @@ -0,0 +1,709 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class Interval implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Interval"); + + private static final org.apache.thrift.protocol.TField OPEN_LOW_FIELD_DESC = new org.apache.thrift.protocol.TField("open_low", org.apache.thrift.protocol.TType.BOOL, (short)1); + private static final org.apache.thrift.protocol.TField LOW_FIELD_DESC = new org.apache.thrift.protocol.TField("low", org.apache.thrift.protocol.TType.STRUCT, (short)2); + private static final org.apache.thrift.protocol.TField OPEN_HIGH_FIELD_DESC = new org.apache.thrift.protocol.TField("open_high", org.apache.thrift.protocol.TType.BOOL, (short)3); + private static final org.apache.thrift.protocol.TField HIGH_FIELD_DESC = new org.apache.thrift.protocol.TField("high", org.apache.thrift.protocol.TType.STRUCT, (short)4); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new IntervalStandardSchemeFactory()); + schemes.put(TupleScheme.class, new IntervalTupleSchemeFactory()); + } + + public boolean open_low; // required + public Clock low; // required + public boolean open_high; // required + public Clock high; // optional + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + OPEN_LOW((short)1, "open_low"), + LOW((short)2, "low"), + OPEN_HIGH((short)3, "open_high"), + HIGH((short)4, "high"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // OPEN_LOW + return OPEN_LOW; + case 2: // LOW + return LOW; + case 3: // OPEN_HIGH + return OPEN_HIGH; + case 4: // HIGH + return HIGH; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __OPEN_LOW_ISSET_ID = 0; + private static final int __OPEN_HIGH_ISSET_ID = 1; + private byte __isset_bitfield = 0; + private static final _Fields optionals[] = {_Fields.HIGH}; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.OPEN_LOW, new org.apache.thrift.meta_data.FieldMetaData("open_low", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); + tmpMap.put(_Fields.LOW, new org.apache.thrift.meta_data.FieldMetaData("low", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Clock.class))); + tmpMap.put(_Fields.OPEN_HIGH, new org.apache.thrift.meta_data.FieldMetaData("open_high", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); + tmpMap.put(_Fields.HIGH, new org.apache.thrift.meta_data.FieldMetaData("high", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Clock.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Interval.class, metaDataMap); + } + + public Interval() { + } + + public Interval( + boolean open_low, + Clock low, + boolean open_high) + { + this(); + this.open_low = open_low; + setOpen_lowIsSet(true); + this.low = low; + this.open_high = open_high; + setOpen_highIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public Interval(Interval other) { + __isset_bitfield = other.__isset_bitfield; + this.open_low = other.open_low; + if (other.isSetLow()) { + this.low = new Clock(other.low); + } + this.open_high = other.open_high; + if (other.isSetHigh()) { + this.high = new Clock(other.high); + } + } + + public Interval deepCopy() { + return new Interval(this); + } + + @Override + public void clear() { + setOpen_lowIsSet(false); + this.open_low = false; + this.low = null; + setOpen_highIsSet(false); + this.open_high = false; + this.high = null; + } + + public boolean isOpen_low() { + return this.open_low; + } + + public Interval setOpen_low(boolean open_low) { + this.open_low = open_low; + setOpen_lowIsSet(true); + return this; + } + + public void unsetOpen_low() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __OPEN_LOW_ISSET_ID); + } + + /** Returns true if field open_low is set (has been assigned a value) and false otherwise */ + public boolean isSetOpen_low() { + return EncodingUtils.testBit(__isset_bitfield, __OPEN_LOW_ISSET_ID); + } + + public void setOpen_lowIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __OPEN_LOW_ISSET_ID, value); + } + + public Clock getLow() { + return this.low; + } + + public Interval setLow(Clock low) { + this.low = low; + return this; + } + + public void unsetLow() { + this.low = null; + } + + /** Returns true if field low is set (has been assigned a value) and false otherwise */ + public boolean isSetLow() { + return this.low != null; + } + + public void setLowIsSet(boolean value) { + if (!value) { + this.low = null; + } + } + + public boolean isOpen_high() { + return this.open_high; + } + + public Interval setOpen_high(boolean open_high) { + this.open_high = open_high; + setOpen_highIsSet(true); + return this; + } + + public void unsetOpen_high() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __OPEN_HIGH_ISSET_ID); + } + + /** Returns true if field open_high is set (has been assigned a value) and false otherwise */ + public boolean isSetOpen_high() { + return EncodingUtils.testBit(__isset_bitfield, __OPEN_HIGH_ISSET_ID); + } + + public void setOpen_highIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __OPEN_HIGH_ISSET_ID, value); + } + + public Clock getHigh() { + return this.high; + } + + public Interval setHigh(Clock high) { + this.high = high; + return this; + } + + public void unsetHigh() { + this.high = null; + } + + /** Returns true if field high is set (has been assigned a value) and false otherwise */ + public boolean isSetHigh() { + return this.high != null; + } + + public void setHighIsSet(boolean value) { + if (!value) { + this.high = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case OPEN_LOW: + if (value == null) { + unsetOpen_low(); + } else { + setOpen_low((Boolean)value); + } + break; + + case LOW: + if (value == null) { + unsetLow(); + } else { + setLow((Clock)value); + } + break; + + case OPEN_HIGH: + if (value == null) { + unsetOpen_high(); + } else { + setOpen_high((Boolean)value); + } + break; + + case HIGH: + if (value == null) { + unsetHigh(); + } else { + setHigh((Clock)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case OPEN_LOW: + return Boolean.valueOf(isOpen_low()); + + case LOW: + return getLow(); + + case OPEN_HIGH: + return Boolean.valueOf(isOpen_high()); + + case HIGH: + return getHigh(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case OPEN_LOW: + return isSetOpen_low(); + case LOW: + return isSetLow(); + case OPEN_HIGH: + return isSetOpen_high(); + case HIGH: + return isSetHigh(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof Interval) + return this.equals((Interval)that); + return false; + } + + public boolean equals(Interval that) { + if (that == null) + return false; + + boolean this_present_open_low = true; + boolean that_present_open_low = true; + if (this_present_open_low || that_present_open_low) { + if (!(this_present_open_low && that_present_open_low)) + return false; + if (this.open_low != that.open_low) + return false; + } + + boolean this_present_low = true && this.isSetLow(); + boolean that_present_low = true && that.isSetLow(); + if (this_present_low || that_present_low) { + if (!(this_present_low && that_present_low)) + return false; + if (!this.low.equals(that.low)) + return false; + } + + boolean this_present_open_high = true; + boolean that_present_open_high = true; + if (this_present_open_high || that_present_open_high) { + if (!(this_present_open_high && that_present_open_high)) + return false; + if (this.open_high != that.open_high) + return false; + } + + boolean this_present_high = true && this.isSetHigh(); + boolean that_present_high = true && that.isSetHigh(); + if (this_present_high || that_present_high) { + if (!(this_present_high && that_present_high)) + return false; + if (!this.high.equals(that.high)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_open_low = true; + list.add(present_open_low); + if (present_open_low) + list.add(open_low); + + boolean present_low = true && (isSetLow()); + list.add(present_low); + if (present_low) + list.add(low); + + boolean present_open_high = true; + list.add(present_open_high); + if (present_open_high) + list.add(open_high); + + boolean present_high = true && (isSetHigh()); + list.add(present_high); + if (present_high) + list.add(high); + + return list.hashCode(); + } + + @Override + public int compareTo(Interval other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetOpen_low()).compareTo(other.isSetOpen_low()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetOpen_low()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.open_low, other.open_low); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetLow()).compareTo(other.isSetLow()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetLow()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.low, other.low); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetOpen_high()).compareTo(other.isSetOpen_high()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetOpen_high()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.open_high, other.open_high); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetHigh()).compareTo(other.isSetHigh()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetHigh()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.high, other.high); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("Interval("); + boolean first = true; + + sb.append("open_low:"); + sb.append(this.open_low); + first = false; + if (!first) sb.append(", "); + sb.append("low:"); + if (this.low == null) { + sb.append("null"); + } else { + sb.append(this.low); + } + first = false; + if (!first) sb.append(", "); + sb.append("open_high:"); + sb.append(this.open_high); + first = false; + if (isSetHigh()) { + if (!first) sb.append(", "); + sb.append("high:"); + if (this.high == null) { + sb.append("null"); + } else { + sb.append(this.high); + } + first = false; + } + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // alas, we cannot check 'open_low' because it's a primitive and you chose the non-beans generator. + if (low == null) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'low' was not present! Struct: " + toString()); + } + // alas, we cannot check 'open_high' because it's a primitive and you chose the non-beans generator. + // check for sub-struct validity + if (low != null) { + low.validate(); + } + if (high != null) { + high.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class IntervalStandardSchemeFactory implements SchemeFactory { + public IntervalStandardScheme getScheme() { + return new IntervalStandardScheme(); + } + } + + private static class IntervalStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, Interval struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // OPEN_LOW + if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) { + struct.open_low = iprot.readBool(); + struct.setOpen_lowIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // LOW + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.low = new Clock(); + struct.low.read(iprot); + struct.setLowIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // OPEN_HIGH + if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) { + struct.open_high = iprot.readBool(); + struct.setOpen_highIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 4: // HIGH + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.high = new Clock(); + struct.high.read(iprot); + struct.setHighIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + if (!struct.isSetOpen_low()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'open_low' was not found in serialized data! Struct: " + toString()); + } + if (!struct.isSetOpen_high()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'open_high' was not found in serialized data! Struct: " + toString()); + } + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, Interval struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(OPEN_LOW_FIELD_DESC); + oprot.writeBool(struct.open_low); + oprot.writeFieldEnd(); + if (struct.low != null) { + oprot.writeFieldBegin(LOW_FIELD_DESC); + struct.low.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldBegin(OPEN_HIGH_FIELD_DESC); + oprot.writeBool(struct.open_high); + oprot.writeFieldEnd(); + if (struct.high != null) { + if (struct.isSetHigh()) { + oprot.writeFieldBegin(HIGH_FIELD_DESC); + struct.high.write(oprot); + oprot.writeFieldEnd(); + } + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class IntervalTupleSchemeFactory implements SchemeFactory { + public IntervalTupleScheme getScheme() { + return new IntervalTupleScheme(); + } + } + + private static class IntervalTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, Interval struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + oprot.writeBool(struct.open_low); + struct.low.write(oprot); + oprot.writeBool(struct.open_high); + BitSet optionals = new BitSet(); + if (struct.isSetHigh()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetHigh()) { + struct.high.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, Interval struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + struct.open_low = iprot.readBool(); + struct.setOpen_lowIsSet(true); + struct.low = new Clock(); + struct.low.read(iprot); + struct.setLowIsSet(true); + struct.open_high = iprot.readBool(); + struct.setOpen_highIsSet(true); + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.high = new Clock(); + struct.high.read(iprot); + struct.setHighIsSet(true); + } + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/InvalidDelay.java b/eclipse/plugins/fr.laas.libtts/src/tts/InvalidDelay.java new file mode 100644 index 0000000..fc5776f --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/InvalidDelay.java @@ -0,0 +1,404 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.TException; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class InvalidDelay extends TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidDelay"); + + private static final org.apache.thrift.protocol.TField CLOCK_FIELD_DESC = new org.apache.thrift.protocol.TField("clock", org.apache.thrift.protocol.TType.STRUCT, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new InvalidDelayStandardSchemeFactory()); + schemes.put(TupleScheme.class, new InvalidDelayTupleSchemeFactory()); + } + + public Clock clock; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + CLOCK((short)1, "clock"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // CLOCK + return CLOCK; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.CLOCK, new org.apache.thrift.meta_data.FieldMetaData("clock", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Clock.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InvalidDelay.class, metaDataMap); + } + + public InvalidDelay() { + } + + public InvalidDelay( + Clock clock) + { + this(); + this.clock = clock; + } + + /** + * Performs a deep copy on other. + */ + public InvalidDelay(InvalidDelay other) { + if (other.isSetClock()) { + this.clock = new Clock(other.clock); + } + } + + public InvalidDelay deepCopy() { + return new InvalidDelay(this); + } + + @Override + public void clear() { + this.clock = null; + } + + public Clock getClock() { + return this.clock; + } + + public InvalidDelay setClock(Clock clock) { + this.clock = clock; + return this; + } + + public void unsetClock() { + this.clock = null; + } + + /** Returns true if field clock is set (has been assigned a value) and false otherwise */ + public boolean isSetClock() { + return this.clock != null; + } + + public void setClockIsSet(boolean value) { + if (!value) { + this.clock = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case CLOCK: + if (value == null) { + unsetClock(); + } else { + setClock((Clock)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case CLOCK: + return getClock(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case CLOCK: + return isSetClock(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof InvalidDelay) + return this.equals((InvalidDelay)that); + return false; + } + + public boolean equals(InvalidDelay that) { + if (that == null) + return false; + + boolean this_present_clock = true && this.isSetClock(); + boolean that_present_clock = true && that.isSetClock(); + if (this_present_clock || that_present_clock) { + if (!(this_present_clock && that_present_clock)) + return false; + if (!this.clock.equals(that.clock)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_clock = true && (isSetClock()); + list.add(present_clock); + if (present_clock) + list.add(clock); + + return list.hashCode(); + } + + @Override + public int compareTo(InvalidDelay other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetClock()).compareTo(other.isSetClock()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetClock()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.clock, other.clock); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("InvalidDelay("); + boolean first = true; + + sb.append("clock:"); + if (this.clock == null) { + sb.append("null"); + } else { + sb.append(this.clock); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (clock != null) { + clock.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class InvalidDelayStandardSchemeFactory implements SchemeFactory { + public InvalidDelayStandardScheme getScheme() { + return new InvalidDelayStandardScheme(); + } + } + + private static class InvalidDelayStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, InvalidDelay struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // CLOCK + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.clock = new Clock(); + struct.clock.read(iprot); + struct.setClockIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, InvalidDelay struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.clock != null) { + oprot.writeFieldBegin(CLOCK_FIELD_DESC); + struct.clock.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class InvalidDelayTupleSchemeFactory implements SchemeFactory { + public InvalidDelayTupleScheme getScheme() { + return new InvalidDelayTupleScheme(); + } + } + + private static class InvalidDelayTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, InvalidDelay struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetClock()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetClock()) { + struct.clock.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, InvalidDelay struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.clock = new Clock(); + struct.clock.read(iprot); + struct.setClockIsSet(true); + } + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/InvalidPath.java b/eclipse/plugins/fr.laas.libtts/src/tts/InvalidPath.java new file mode 100644 index 0000000..ad4c648 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/InvalidPath.java @@ -0,0 +1,399 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.TException; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class InvalidPath extends TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidPath"); + + private static final org.apache.thrift.protocol.TField PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("path", org.apache.thrift.protocol.TType.STRING, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new InvalidPathStandardSchemeFactory()); + schemes.put(TupleScheme.class, new InvalidPathTupleSchemeFactory()); + } + + public String path; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + PATH((short)1, "path"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // PATH + return PATH; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.PATH, new org.apache.thrift.meta_data.FieldMetaData("path", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InvalidPath.class, metaDataMap); + } + + public InvalidPath() { + } + + public InvalidPath( + String path) + { + this(); + this.path = path; + } + + /** + * Performs a deep copy on other. + */ + public InvalidPath(InvalidPath other) { + if (other.isSetPath()) { + this.path = other.path; + } + } + + public InvalidPath deepCopy() { + return new InvalidPath(this); + } + + @Override + public void clear() { + this.path = null; + } + + public String getPath() { + return this.path; + } + + public InvalidPath setPath(String path) { + this.path = path; + return this; + } + + public void unsetPath() { + this.path = null; + } + + /** Returns true if field path is set (has been assigned a value) and false otherwise */ + public boolean isSetPath() { + return this.path != null; + } + + public void setPathIsSet(boolean value) { + if (!value) { + this.path = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case PATH: + if (value == null) { + unsetPath(); + } else { + setPath((String)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case PATH: + return getPath(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case PATH: + return isSetPath(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof InvalidPath) + return this.equals((InvalidPath)that); + return false; + } + + public boolean equals(InvalidPath that) { + if (that == null) + return false; + + boolean this_present_path = true && this.isSetPath(); + boolean that_present_path = true && that.isSetPath(); + if (this_present_path || that_present_path) { + if (!(this_present_path && that_present_path)) + return false; + if (!this.path.equals(that.path)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_path = true && (isSetPath()); + list.add(present_path); + if (present_path) + list.add(path); + + return list.hashCode(); + } + + @Override + public int compareTo(InvalidPath other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetPath()).compareTo(other.isSetPath()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetPath()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.path, other.path); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("InvalidPath("); + boolean first = true; + + sb.append("path:"); + if (this.path == null) { + sb.append("null"); + } else { + sb.append(this.path); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class InvalidPathStandardSchemeFactory implements SchemeFactory { + public InvalidPathStandardScheme getScheme() { + return new InvalidPathStandardScheme(); + } + } + + private static class InvalidPathStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, InvalidPath struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // PATH + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.path = iprot.readString(); + struct.setPathIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, InvalidPath struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.path != null) { + oprot.writeFieldBegin(PATH_FIELD_DESC); + oprot.writeString(struct.path); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class InvalidPathTupleSchemeFactory implements SchemeFactory { + public InvalidPathTupleScheme getScheme() { + return new InvalidPathTupleScheme(); + } + } + + private static class InvalidPathTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, InvalidPath struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetPath()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetPath()) { + oprot.writeString(struct.path); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, InvalidPath struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.path = iprot.readString(); + struct.setPathIsSet(true); + } + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/Net.java b/eclipse/plugins/fr.laas.libtts/src/tts/Net.java new file mode 100644 index 0000000..90f9601 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/Net.java @@ -0,0 +1,715 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class Net implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Net"); + + private static final org.apache.thrift.protocol.TField PLACES_FIELD_DESC = new org.apache.thrift.protocol.TField("places", org.apache.thrift.protocol.TType.LIST, (short)1); + private static final org.apache.thrift.protocol.TField TRANSITIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("transitions", org.apache.thrift.protocol.TType.LIST, (short)2); + private static final org.apache.thrift.protocol.TField TIMED_FIELD_DESC = new org.apache.thrift.protocol.TField("timed", org.apache.thrift.protocol.TType.BOOL, (short)3); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new NetStandardSchemeFactory()); + schemes.put(TupleScheme.class, new NetTupleSchemeFactory()); + } + + public List places; // required + public List transitions; // required + public boolean timed; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + PLACES((short)1, "places"), + TRANSITIONS((short)2, "transitions"), + TIMED((short)3, "timed"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // PLACES + return PLACES; + case 2: // TRANSITIONS + return TRANSITIONS; + case 3: // TIMED + return TIMED; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __TIMED_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.PLACES, new org.apache.thrift.meta_data.FieldMetaData("places", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Place.class)))); + tmpMap.put(_Fields.TRANSITIONS, new org.apache.thrift.meta_data.FieldMetaData("transitions", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Transition.class)))); + tmpMap.put(_Fields.TIMED, new org.apache.thrift.meta_data.FieldMetaData("timed", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Net.class, metaDataMap); + } + + public Net() { + } + + public Net( + List places, + List transitions, + boolean timed) + { + this(); + this.places = places; + this.transitions = transitions; + this.timed = timed; + setTimedIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public Net(Net other) { + __isset_bitfield = other.__isset_bitfield; + if (other.isSetPlaces()) { + List __this__places = new ArrayList(other.places.size()); + for (Place other_element : other.places) { + __this__places.add(new Place(other_element)); + } + this.places = __this__places; + } + if (other.isSetTransitions()) { + List __this__transitions = new ArrayList(other.transitions.size()); + for (Transition other_element : other.transitions) { + __this__transitions.add(new Transition(other_element)); + } + this.transitions = __this__transitions; + } + this.timed = other.timed; + } + + public Net deepCopy() { + return new Net(this); + } + + @Override + public void clear() { + this.places = null; + this.transitions = null; + setTimedIsSet(false); + this.timed = false; + } + + public int getPlacesSize() { + return (this.places == null) ? 0 : this.places.size(); + } + + public java.util.Iterator getPlacesIterator() { + return (this.places == null) ? null : this.places.iterator(); + } + + public void addToPlaces(Place elem) { + if (this.places == null) { + this.places = new ArrayList(); + } + this.places.add(elem); + } + + public List getPlaces() { + return this.places; + } + + public Net setPlaces(List places) { + this.places = places; + return this; + } + + public void unsetPlaces() { + this.places = null; + } + + /** Returns true if field places is set (has been assigned a value) and false otherwise */ + public boolean isSetPlaces() { + return this.places != null; + } + + public void setPlacesIsSet(boolean value) { + if (!value) { + this.places = null; + } + } + + public int getTransitionsSize() { + return (this.transitions == null) ? 0 : this.transitions.size(); + } + + public java.util.Iterator getTransitionsIterator() { + return (this.transitions == null) ? null : this.transitions.iterator(); + } + + public void addToTransitions(Transition elem) { + if (this.transitions == null) { + this.transitions = new ArrayList(); + } + this.transitions.add(elem); + } + + public List getTransitions() { + return this.transitions; + } + + public Net setTransitions(List transitions) { + this.transitions = transitions; + return this; + } + + public void unsetTransitions() { + this.transitions = null; + } + + /** Returns true if field transitions is set (has been assigned a value) and false otherwise */ + public boolean isSetTransitions() { + return this.transitions != null; + } + + public void setTransitionsIsSet(boolean value) { + if (!value) { + this.transitions = null; + } + } + + public boolean isTimed() { + return this.timed; + } + + public Net setTimed(boolean timed) { + this.timed = timed; + setTimedIsSet(true); + return this; + } + + public void unsetTimed() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TIMED_ISSET_ID); + } + + /** Returns true if field timed is set (has been assigned a value) and false otherwise */ + public boolean isSetTimed() { + return EncodingUtils.testBit(__isset_bitfield, __TIMED_ISSET_ID); + } + + public void setTimedIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TIMED_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case PLACES: + if (value == null) { + unsetPlaces(); + } else { + setPlaces((List)value); + } + break; + + case TRANSITIONS: + if (value == null) { + unsetTransitions(); + } else { + setTransitions((List)value); + } + break; + + case TIMED: + if (value == null) { + unsetTimed(); + } else { + setTimed((Boolean)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case PLACES: + return getPlaces(); + + case TRANSITIONS: + return getTransitions(); + + case TIMED: + return Boolean.valueOf(isTimed()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case PLACES: + return isSetPlaces(); + case TRANSITIONS: + return isSetTransitions(); + case TIMED: + return isSetTimed(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof Net) + return this.equals((Net)that); + return false; + } + + public boolean equals(Net that) { + if (that == null) + return false; + + boolean this_present_places = true && this.isSetPlaces(); + boolean that_present_places = true && that.isSetPlaces(); + if (this_present_places || that_present_places) { + if (!(this_present_places && that_present_places)) + return false; + if (!this.places.equals(that.places)) + return false; + } + + boolean this_present_transitions = true && this.isSetTransitions(); + boolean that_present_transitions = true && that.isSetTransitions(); + if (this_present_transitions || that_present_transitions) { + if (!(this_present_transitions && that_present_transitions)) + return false; + if (!this.transitions.equals(that.transitions)) + return false; + } + + boolean this_present_timed = true; + boolean that_present_timed = true; + if (this_present_timed || that_present_timed) { + if (!(this_present_timed && that_present_timed)) + return false; + if (this.timed != that.timed) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_places = true && (isSetPlaces()); + list.add(present_places); + if (present_places) + list.add(places); + + boolean present_transitions = true && (isSetTransitions()); + list.add(present_transitions); + if (present_transitions) + list.add(transitions); + + boolean present_timed = true; + list.add(present_timed); + if (present_timed) + list.add(timed); + + return list.hashCode(); + } + + @Override + public int compareTo(Net other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetPlaces()).compareTo(other.isSetPlaces()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetPlaces()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.places, other.places); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetTransitions()).compareTo(other.isSetTransitions()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTransitions()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transitions, other.transitions); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetTimed()).compareTo(other.isSetTimed()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTimed()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.timed, other.timed); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("Net("); + boolean first = true; + + sb.append("places:"); + if (this.places == null) { + sb.append("null"); + } else { + sb.append(this.places); + } + first = false; + if (!first) sb.append(", "); + sb.append("transitions:"); + if (this.transitions == null) { + sb.append("null"); + } else { + sb.append(this.transitions); + } + first = false; + if (!first) sb.append(", "); + sb.append("timed:"); + sb.append(this.timed); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class NetStandardSchemeFactory implements SchemeFactory { + public NetStandardScheme getScheme() { + return new NetStandardScheme(); + } + } + + private static class NetStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, Net struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // PLACES + if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { + { + org.apache.thrift.protocol.TList _list18 = iprot.readListBegin(); + struct.places = new ArrayList(_list18.size); + Place _elem19; + for (int _i20 = 0; _i20 < _list18.size; ++_i20) + { + _elem19 = new Place(); + _elem19.read(iprot); + struct.places.add(_elem19); + } + iprot.readListEnd(); + } + struct.setPlacesIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // TRANSITIONS + if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { + { + org.apache.thrift.protocol.TList _list21 = iprot.readListBegin(); + struct.transitions = new ArrayList(_list21.size); + Transition _elem22; + for (int _i23 = 0; _i23 < _list21.size; ++_i23) + { + _elem22 = new Transition(); + _elem22.read(iprot); + struct.transitions.add(_elem22); + } + iprot.readListEnd(); + } + struct.setTransitionsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // TIMED + if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) { + struct.timed = iprot.readBool(); + struct.setTimedIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, Net struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.places != null) { + oprot.writeFieldBegin(PLACES_FIELD_DESC); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.places.size())); + for (Place _iter24 : struct.places) + { + _iter24.write(oprot); + } + oprot.writeListEnd(); + } + oprot.writeFieldEnd(); + } + if (struct.transitions != null) { + oprot.writeFieldBegin(TRANSITIONS_FIELD_DESC); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.transitions.size())); + for (Transition _iter25 : struct.transitions) + { + _iter25.write(oprot); + } + oprot.writeListEnd(); + } + oprot.writeFieldEnd(); + } + oprot.writeFieldBegin(TIMED_FIELD_DESC); + oprot.writeBool(struct.timed); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class NetTupleSchemeFactory implements SchemeFactory { + public NetTupleScheme getScheme() { + return new NetTupleScheme(); + } + } + + private static class NetTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, Net struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetPlaces()) { + optionals.set(0); + } + if (struct.isSetTransitions()) { + optionals.set(1); + } + if (struct.isSetTimed()) { + optionals.set(2); + } + oprot.writeBitSet(optionals, 3); + if (struct.isSetPlaces()) { + { + oprot.writeI32(struct.places.size()); + for (Place _iter26 : struct.places) + { + _iter26.write(oprot); + } + } + } + if (struct.isSetTransitions()) { + { + oprot.writeI32(struct.transitions.size()); + for (Transition _iter27 : struct.transitions) + { + _iter27.write(oprot); + } + } + } + if (struct.isSetTimed()) { + oprot.writeBool(struct.timed); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, Net struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(3); + if (incoming.get(0)) { + { + org.apache.thrift.protocol.TList _list28 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.places = new ArrayList(_list28.size); + Place _elem29; + for (int _i30 = 0; _i30 < _list28.size; ++_i30) + { + _elem29 = new Place(); + _elem29.read(iprot); + struct.places.add(_elem29); + } + } + struct.setPlacesIsSet(true); + } + if (incoming.get(1)) { + { + org.apache.thrift.protocol.TList _list31 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.transitions = new ArrayList(_list31.size); + Transition _elem32; + for (int _i33 = 0; _i33 < _list31.size; ++_i33) + { + _elem32 = new Transition(); + _elem32.read(iprot); + struct.transitions.add(_elem32); + } + } + struct.setTransitionsIsSet(true); + } + if (incoming.get(2)) { + struct.timed = iprot.readBool(); + struct.setTimedIsSet(true); + } + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/NotFireable.java b/eclipse/plugins/fr.laas.libtts/src/tts/NotFireable.java new file mode 100644 index 0000000..89a7fd1 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/NotFireable.java @@ -0,0 +1,398 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class NotFireable extends TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NotFireable"); + + private static final org.apache.thrift.protocol.TField UID_FIELD_DESC = new org.apache.thrift.protocol.TField("uid", org.apache.thrift.protocol.TType.I64, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new NotFireableStandardSchemeFactory()); + schemes.put(TupleScheme.class, new NotFireableTupleSchemeFactory()); + } + + public long uid; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + UID((short)1, "uid"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // UID + return UID; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __UID_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.UID, new org.apache.thrift.meta_data.FieldMetaData("uid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "transition_id"))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(NotFireable.class, metaDataMap); + } + + public NotFireable() { + } + + public NotFireable( + long uid) + { + this(); + this.uid = uid; + setUidIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public NotFireable(NotFireable other) { + __isset_bitfield = other.__isset_bitfield; + this.uid = other.uid; + } + + public NotFireable deepCopy() { + return new NotFireable(this); + } + + @Override + public void clear() { + setUidIsSet(false); + this.uid = 0; + } + + public long getUid() { + return this.uid; + } + + public NotFireable setUid(long uid) { + this.uid = uid; + setUidIsSet(true); + return this; + } + + public void unsetUid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UID_ISSET_ID); + } + + /** Returns true if field uid is set (has been assigned a value) and false otherwise */ + public boolean isSetUid() { + return EncodingUtils.testBit(__isset_bitfield, __UID_ISSET_ID); + } + + public void setUidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UID_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case UID: + if (value == null) { + unsetUid(); + } else { + setUid((Long)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case UID: + return Long.valueOf(getUid()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case UID: + return isSetUid(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof NotFireable) + return this.equals((NotFireable)that); + return false; + } + + public boolean equals(NotFireable that) { + if (that == null) + return false; + + boolean this_present_uid = true; + boolean that_present_uid = true; + if (this_present_uid || that_present_uid) { + if (!(this_present_uid && that_present_uid)) + return false; + if (this.uid != that.uid) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_uid = true; + list.add(present_uid); + if (present_uid) + list.add(uid); + + return list.hashCode(); + } + + @Override + public int compareTo(NotFireable other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetUid()).compareTo(other.isSetUid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetUid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uid, other.uid); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("NotFireable("); + boolean first = true; + + sb.append("uid:"); + sb.append(this.uid); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class NotFireableStandardSchemeFactory implements SchemeFactory { + public NotFireableStandardScheme getScheme() { + return new NotFireableStandardScheme(); + } + } + + private static class NotFireableStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, NotFireable struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // UID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, NotFireable struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(UID_FIELD_DESC); + oprot.writeI64(struct.uid); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class NotFireableTupleSchemeFactory implements SchemeFactory { + public NotFireableTupleScheme getScheme() { + return new NotFireableTupleScheme(); + } + } + + private static class NotFireableTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, NotFireable struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetUid()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetUid()) { + oprot.writeI64(struct.uid); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, NotFireable struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + } + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/Place.java b/eclipse/plugins/fr.laas.libtts/src/tts/Place.java new file mode 100644 index 0000000..faedd3b --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/Place.java @@ -0,0 +1,587 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class Place implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Place"); + + private static final org.apache.thrift.protocol.TField UID_FIELD_DESC = new org.apache.thrift.protocol.TField("uid", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2); + private static final org.apache.thrift.protocol.TField INITIAL_MARKING_FIELD_DESC = new org.apache.thrift.protocol.TField("initial_marking", org.apache.thrift.protocol.TType.I16, (short)3); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new PlaceStandardSchemeFactory()); + schemes.put(TupleScheme.class, new PlaceTupleSchemeFactory()); + } + + public long uid; // required + public String name; // required + public short initial_marking; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + UID((short)1, "uid"), + NAME((short)2, "name"), + INITIAL_MARKING((short)3, "initial_marking"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // UID + return UID; + case 2: // NAME + return NAME; + case 3: // INITIAL_MARKING + return INITIAL_MARKING; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __UID_ISSET_ID = 0; + private static final int __INITIAL_MARKING_ISSET_ID = 1; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.UID, new org.apache.thrift.meta_data.FieldMetaData("uid", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "place_id"))); + tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + tmpMap.put(_Fields.INITIAL_MARKING, new org.apache.thrift.meta_data.FieldMetaData("initial_marking", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Place.class, metaDataMap); + } + + public Place() { + } + + public Place( + long uid, + String name, + short initial_marking) + { + this(); + this.uid = uid; + setUidIsSet(true); + this.name = name; + this.initial_marking = initial_marking; + setInitial_markingIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public Place(Place other) { + __isset_bitfield = other.__isset_bitfield; + this.uid = other.uid; + if (other.isSetName()) { + this.name = other.name; + } + this.initial_marking = other.initial_marking; + } + + public Place deepCopy() { + return new Place(this); + } + + @Override + public void clear() { + setUidIsSet(false); + this.uid = 0; + this.name = null; + setInitial_markingIsSet(false); + this.initial_marking = 0; + } + + public long getUid() { + return this.uid; + } + + public Place setUid(long uid) { + this.uid = uid; + setUidIsSet(true); + return this; + } + + public void unsetUid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UID_ISSET_ID); + } + + /** Returns true if field uid is set (has been assigned a value) and false otherwise */ + public boolean isSetUid() { + return EncodingUtils.testBit(__isset_bitfield, __UID_ISSET_ID); + } + + public void setUidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UID_ISSET_ID, value); + } + + public String getName() { + return this.name; + } + + public Place setName(String name) { + this.name = name; + return this; + } + + public void unsetName() { + this.name = null; + } + + /** Returns true if field name is set (has been assigned a value) and false otherwise */ + public boolean isSetName() { + return this.name != null; + } + + public void setNameIsSet(boolean value) { + if (!value) { + this.name = null; + } + } + + public short getInitial_marking() { + return this.initial_marking; + } + + public Place setInitial_marking(short initial_marking) { + this.initial_marking = initial_marking; + setInitial_markingIsSet(true); + return this; + } + + public void unsetInitial_marking() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __INITIAL_MARKING_ISSET_ID); + } + + /** Returns true if field initial_marking is set (has been assigned a value) and false otherwise */ + public boolean isSetInitial_marking() { + return EncodingUtils.testBit(__isset_bitfield, __INITIAL_MARKING_ISSET_ID); + } + + public void setInitial_markingIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __INITIAL_MARKING_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case UID: + if (value == null) { + unsetUid(); + } else { + setUid((Long)value); + } + break; + + case NAME: + if (value == null) { + unsetName(); + } else { + setName((String)value); + } + break; + + case INITIAL_MARKING: + if (value == null) { + unsetInitial_marking(); + } else { + setInitial_marking((Short)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case UID: + return Long.valueOf(getUid()); + + case NAME: + return getName(); + + case INITIAL_MARKING: + return Short.valueOf(getInitial_marking()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case UID: + return isSetUid(); + case NAME: + return isSetName(); + case INITIAL_MARKING: + return isSetInitial_marking(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof Place) + return this.equals((Place)that); + return false; + } + + public boolean equals(Place that) { + if (that == null) + return false; + + boolean this_present_uid = true; + boolean that_present_uid = true; + if (this_present_uid || that_present_uid) { + if (!(this_present_uid && that_present_uid)) + return false; + if (this.uid != that.uid) + return false; + } + + boolean this_present_name = true && this.isSetName(); + boolean that_present_name = true && that.isSetName(); + if (this_present_name || that_present_name) { + if (!(this_present_name && that_present_name)) + return false; + if (!this.name.equals(that.name)) + return false; + } + + boolean this_present_initial_marking = true; + boolean that_present_initial_marking = true; + if (this_present_initial_marking || that_present_initial_marking) { + if (!(this_present_initial_marking && that_present_initial_marking)) + return false; + if (this.initial_marking != that.initial_marking) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_uid = true; + list.add(present_uid); + if (present_uid) + list.add(uid); + + boolean present_name = true && (isSetName()); + list.add(present_name); + if (present_name) + list.add(name); + + boolean present_initial_marking = true; + list.add(present_initial_marking); + if (present_initial_marking) + list.add(initial_marking); + + return list.hashCode(); + } + + @Override + public int compareTo(Place other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetUid()).compareTo(other.isSetUid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetUid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uid, other.uid); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetName()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetInitial_marking()).compareTo(other.isSetInitial_marking()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetInitial_marking()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.initial_marking, other.initial_marking); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("Place("); + boolean first = true; + + sb.append("uid:"); + sb.append(this.uid); + first = false; + if (!first) sb.append(", "); + sb.append("name:"); + if (this.name == null) { + sb.append("null"); + } else { + sb.append(this.name); + } + first = false; + if (!first) sb.append(", "); + sb.append("initial_marking:"); + sb.append(this.initial_marking); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // alas, we cannot check 'uid' because it's a primitive and you chose the non-beans generator. + if (name == null) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! Struct: " + toString()); + } + // alas, we cannot check 'initial_marking' because it's a primitive and you chose the non-beans generator. + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class PlaceStandardSchemeFactory implements SchemeFactory { + public PlaceStandardScheme getScheme() { + return new PlaceStandardScheme(); + } + } + + private static class PlaceStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, Place struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // UID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // NAME + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.name = iprot.readString(); + struct.setNameIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // INITIAL_MARKING + if (schemeField.type == org.apache.thrift.protocol.TType.I16) { + struct.initial_marking = iprot.readI16(); + struct.setInitial_markingIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + if (!struct.isSetUid()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'uid' was not found in serialized data! Struct: " + toString()); + } + if (!struct.isSetInitial_marking()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'initial_marking' was not found in serialized data! Struct: " + toString()); + } + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, Place struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(UID_FIELD_DESC); + oprot.writeI64(struct.uid); + oprot.writeFieldEnd(); + if (struct.name != null) { + oprot.writeFieldBegin(NAME_FIELD_DESC); + oprot.writeString(struct.name); + oprot.writeFieldEnd(); + } + oprot.writeFieldBegin(INITIAL_MARKING_FIELD_DESC); + oprot.writeI16(struct.initial_marking); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class PlaceTupleSchemeFactory implements SchemeFactory { + public PlaceTupleScheme getScheme() { + return new PlaceTupleScheme(); + } + } + + private static class PlaceTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, Place struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + oprot.writeI64(struct.uid); + oprot.writeString(struct.name); + oprot.writeI16(struct.initial_marking); + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, Place struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + struct.name = iprot.readString(); + struct.setNameIsSet(true); + struct.initial_marking = iprot.readI16(); + struct.setInitial_markingIsSet(true); + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/StateNotFound.java b/eclipse/plugins/fr.laas.libtts/src/tts/StateNotFound.java new file mode 100644 index 0000000..1009597 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/StateNotFound.java @@ -0,0 +1,398 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class StateNotFound extends TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StateNotFound"); + + private static final org.apache.thrift.protocol.TField UID_FIELD_DESC = new org.apache.thrift.protocol.TField("uid", org.apache.thrift.protocol.TType.I64, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new StateNotFoundStandardSchemeFactory()); + schemes.put(TupleScheme.class, new StateNotFoundTupleSchemeFactory()); + } + + public long uid; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + UID((short)1, "uid"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // UID + return UID; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __UID_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.UID, new org.apache.thrift.meta_data.FieldMetaData("uid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id"))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(StateNotFound.class, metaDataMap); + } + + public StateNotFound() { + } + + public StateNotFound( + long uid) + { + this(); + this.uid = uid; + setUidIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public StateNotFound(StateNotFound other) { + __isset_bitfield = other.__isset_bitfield; + this.uid = other.uid; + } + + public StateNotFound deepCopy() { + return new StateNotFound(this); + } + + @Override + public void clear() { + setUidIsSet(false); + this.uid = 0; + } + + public long getUid() { + return this.uid; + } + + public StateNotFound setUid(long uid) { + this.uid = uid; + setUidIsSet(true); + return this; + } + + public void unsetUid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UID_ISSET_ID); + } + + /** Returns true if field uid is set (has been assigned a value) and false otherwise */ + public boolean isSetUid() { + return EncodingUtils.testBit(__isset_bitfield, __UID_ISSET_ID); + } + + public void setUidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UID_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case UID: + if (value == null) { + unsetUid(); + } else { + setUid((Long)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case UID: + return Long.valueOf(getUid()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case UID: + return isSetUid(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof StateNotFound) + return this.equals((StateNotFound)that); + return false; + } + + public boolean equals(StateNotFound that) { + if (that == null) + return false; + + boolean this_present_uid = true; + boolean that_present_uid = true; + if (this_present_uid || that_present_uid) { + if (!(this_present_uid && that_present_uid)) + return false; + if (this.uid != that.uid) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_uid = true; + list.add(present_uid); + if (present_uid) + list.add(uid); + + return list.hashCode(); + } + + @Override + public int compareTo(StateNotFound other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetUid()).compareTo(other.isSetUid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetUid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uid, other.uid); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("StateNotFound("); + boolean first = true; + + sb.append("uid:"); + sb.append(this.uid); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class StateNotFoundStandardSchemeFactory implements SchemeFactory { + public StateNotFoundStandardScheme getScheme() { + return new StateNotFoundStandardScheme(); + } + } + + private static class StateNotFoundStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, StateNotFound struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // UID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, StateNotFound struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(UID_FIELD_DESC); + oprot.writeI64(struct.uid); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class StateNotFoundTupleSchemeFactory implements SchemeFactory { + public StateNotFoundTupleScheme getScheme() { + return new StateNotFoundTupleScheme(); + } + } + + private static class StateNotFoundTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, StateNotFound struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetUid()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetUid()) { + oprot.writeI64(struct.uid); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, StateNotFound struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + } + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/TTS.java b/eclipse/plugins/fr.laas.libtts/src/tts/TTS.java new file mode 100644 index 0000000..5bd70dc --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/TTS.java @@ -0,0 +1,12867 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +import org.apache.thrift.async.AsyncMethodCallback; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class TTS { + + public interface Iface { + + public Net load_local(String path) throws Error, InvalidPath, org.apache.thrift.TException; + + public TTSState initial_state() throws Error, org.apache.thrift.TException; + + public boolean is_enabled(long sid, long tid) throws Error, StateNotFound, TransitionNotFound, org.apache.thrift.TException; + + public List enabled(long sid) throws Error, StateNotFound, org.apache.thrift.TException; + + public boolean is_fireable(long sid, long tid) throws Error, StateNotFound, TransitionNotFound, org.apache.thrift.TException; + + public List fireable(long sid) throws Error, StateNotFound, org.apache.thrift.TException; + + public TTSState fire(long sid, long tid) throws Error, StateNotFound, TransitionNotFound, NotFireable, org.apache.thrift.TException; + + public boolean can_advance_time(long sid, Clock delay) throws Error, StateNotFound, org.apache.thrift.TException; + + public TTSState advance_time(long sid, Clock delay) throws Error, StateNotFound, InvalidDelay, org.apache.thrift.TException; + + public void discard(List sids) throws org.apache.thrift.TException; + + public void discard_all_except(List sids) throws org.apache.thrift.TException; + + public void shutdown() throws org.apache.thrift.TException; + + } + + public interface AsyncIface { + + public void load_local(String path, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void initial_state(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void is_enabled(long sid, long tid, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void enabled(long sid, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void is_fireable(long sid, long tid, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void fireable(long sid, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void fire(long sid, long tid, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void can_advance_time(long sid, Clock delay, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void advance_time(long sid, Clock delay, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void discard(List sids, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void discard_all_except(List sids, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void shutdown(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + } + + public static class Client extends org.apache.thrift.TServiceClient implements Iface { + public static class Factory implements org.apache.thrift.TServiceClientFactory { + public Factory() {} + public Client getClient(org.apache.thrift.protocol.TProtocol prot) { + return new Client(prot); + } + public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) { + return new Client(iprot, oprot); + } + } + + public Client(org.apache.thrift.protocol.TProtocol prot) + { + super(prot, prot); + } + + public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) { + super(iprot, oprot); + } + + public Net load_local(String path) throws Error, InvalidPath, org.apache.thrift.TException + { + send_load_local(path); + return recv_load_local(); + } + + public void send_load_local(String path) throws org.apache.thrift.TException + { + load_local_args args = new load_local_args(); + args.setPath(path); + sendBase("load_local", args); + } + + public Net recv_load_local() throws Error, InvalidPath, org.apache.thrift.TException + { + load_local_result result = new load_local_result(); + receiveBase(result, "load_local"); + if (result.isSetSuccess()) { + return result.success; + } + if (result.error != null) { + throw result.error; + } + if (result.path_error != null) { + throw result.path_error; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "load_local failed: unknown result"); + } + + public TTSState initial_state() throws Error, org.apache.thrift.TException + { + send_initial_state(); + return recv_initial_state(); + } + + public void send_initial_state() throws org.apache.thrift.TException + { + initial_state_args args = new initial_state_args(); + sendBase("initial_state", args); + } + + public TTSState recv_initial_state() throws Error, org.apache.thrift.TException + { + initial_state_result result = new initial_state_result(); + receiveBase(result, "initial_state"); + if (result.isSetSuccess()) { + return result.success; + } + if (result.error != null) { + throw result.error; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "initial_state failed: unknown result"); + } + + public boolean is_enabled(long sid, long tid) throws Error, StateNotFound, TransitionNotFound, org.apache.thrift.TException + { + send_is_enabled(sid, tid); + return recv_is_enabled(); + } + + public void send_is_enabled(long sid, long tid) throws org.apache.thrift.TException + { + is_enabled_args args = new is_enabled_args(); + args.setSid(sid); + args.setTid(tid); + sendBase("is_enabled", args); + } + + public boolean recv_is_enabled() throws Error, StateNotFound, TransitionNotFound, org.apache.thrift.TException + { + is_enabled_result result = new is_enabled_result(); + receiveBase(result, "is_enabled"); + if (result.isSetSuccess()) { + return result.success; + } + if (result.error != null) { + throw result.error; + } + if (result.state_error != null) { + throw result.state_error; + } + if (result.transition_error != null) { + throw result.transition_error; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "is_enabled failed: unknown result"); + } + + public List enabled(long sid) throws Error, StateNotFound, org.apache.thrift.TException + { + send_enabled(sid); + return recv_enabled(); + } + + public void send_enabled(long sid) throws org.apache.thrift.TException + { + enabled_args args = new enabled_args(); + args.setSid(sid); + sendBase("enabled", args); + } + + public List recv_enabled() throws Error, StateNotFound, org.apache.thrift.TException + { + enabled_result result = new enabled_result(); + receiveBase(result, "enabled"); + if (result.isSetSuccess()) { + return result.success; + } + if (result.error != null) { + throw result.error; + } + if (result.state_error != null) { + throw result.state_error; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "enabled failed: unknown result"); + } + + public boolean is_fireable(long sid, long tid) throws Error, StateNotFound, TransitionNotFound, org.apache.thrift.TException + { + send_is_fireable(sid, tid); + return recv_is_fireable(); + } + + public void send_is_fireable(long sid, long tid) throws org.apache.thrift.TException + { + is_fireable_args args = new is_fireable_args(); + args.setSid(sid); + args.setTid(tid); + sendBase("is_fireable", args); + } + + public boolean recv_is_fireable() throws Error, StateNotFound, TransitionNotFound, org.apache.thrift.TException + { + is_fireable_result result = new is_fireable_result(); + receiveBase(result, "is_fireable"); + if (result.isSetSuccess()) { + return result.success; + } + if (result.error != null) { + throw result.error; + } + if (result.state_error != null) { + throw result.state_error; + } + if (result.transition_error != null) { + throw result.transition_error; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "is_fireable failed: unknown result"); + } + + public List fireable(long sid) throws Error, StateNotFound, org.apache.thrift.TException + { + send_fireable(sid); + return recv_fireable(); + } + + public void send_fireable(long sid) throws org.apache.thrift.TException + { + fireable_args args = new fireable_args(); + args.setSid(sid); + sendBase("fireable", args); + } + + public List recv_fireable() throws Error, StateNotFound, org.apache.thrift.TException + { + fireable_result result = new fireable_result(); + receiveBase(result, "fireable"); + if (result.isSetSuccess()) { + return result.success; + } + if (result.error != null) { + throw result.error; + } + if (result.s_error != null) { + throw result.s_error; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "fireable failed: unknown result"); + } + + public TTSState fire(long sid, long tid) throws Error, StateNotFound, TransitionNotFound, NotFireable, org.apache.thrift.TException + { + send_fire(sid, tid); + return recv_fire(); + } + + public void send_fire(long sid, long tid) throws org.apache.thrift.TException + { + fire_args args = new fire_args(); + args.setSid(sid); + args.setTid(tid); + sendBase("fire", args); + } + + public TTSState recv_fire() throws Error, StateNotFound, TransitionNotFound, NotFireable, org.apache.thrift.TException + { + fire_result result = new fire_result(); + receiveBase(result, "fire"); + if (result.isSetSuccess()) { + return result.success; + } + if (result.error != null) { + throw result.error; + } + if (result.state_error != null) { + throw result.state_error; + } + if (result.transition_error != null) { + throw result.transition_error; + } + if (result.fireable_error != null) { + throw result.fireable_error; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "fire failed: unknown result"); + } + + public boolean can_advance_time(long sid, Clock delay) throws Error, StateNotFound, org.apache.thrift.TException + { + send_can_advance_time(sid, delay); + return recv_can_advance_time(); + } + + public void send_can_advance_time(long sid, Clock delay) throws org.apache.thrift.TException + { + can_advance_time_args args = new can_advance_time_args(); + args.setSid(sid); + args.setDelay(delay); + sendBase("can_advance_time", args); + } + + public boolean recv_can_advance_time() throws Error, StateNotFound, org.apache.thrift.TException + { + can_advance_time_result result = new can_advance_time_result(); + receiveBase(result, "can_advance_time"); + if (result.isSetSuccess()) { + return result.success; + } + if (result.error != null) { + throw result.error; + } + if (result.state_error != null) { + throw result.state_error; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "can_advance_time failed: unknown result"); + } + + public TTSState advance_time(long sid, Clock delay) throws Error, StateNotFound, InvalidDelay, org.apache.thrift.TException + { + send_advance_time(sid, delay); + return recv_advance_time(); + } + + public void send_advance_time(long sid, Clock delay) throws org.apache.thrift.TException + { + advance_time_args args = new advance_time_args(); + args.setSid(sid); + args.setDelay(delay); + sendBase("advance_time", args); + } + + public TTSState recv_advance_time() throws Error, StateNotFound, InvalidDelay, org.apache.thrift.TException + { + advance_time_result result = new advance_time_result(); + receiveBase(result, "advance_time"); + if (result.isSetSuccess()) { + return result.success; + } + if (result.error != null) { + throw result.error; + } + if (result.state_error != null) { + throw result.state_error; + } + if (result.delay_error != null) { + throw result.delay_error; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "advance_time failed: unknown result"); + } + + public void discard(List sids) throws org.apache.thrift.TException + { + send_discard(sids); + recv_discard(); + } + + public void send_discard(List sids) throws org.apache.thrift.TException + { + discard_args args = new discard_args(); + args.setSids(sids); + sendBase("discard", args); + } + + public void recv_discard() throws org.apache.thrift.TException + { + discard_result result = new discard_result(); + receiveBase(result, "discard"); + return; + } + + public void discard_all_except(List sids) throws org.apache.thrift.TException + { + send_discard_all_except(sids); + recv_discard_all_except(); + } + + public void send_discard_all_except(List sids) throws org.apache.thrift.TException + { + discard_all_except_args args = new discard_all_except_args(); + args.setSids(sids); + sendBase("discard_all_except", args); + } + + public void recv_discard_all_except() throws org.apache.thrift.TException + { + discard_all_except_result result = new discard_all_except_result(); + receiveBase(result, "discard_all_except"); + return; + } + + public void shutdown() throws org.apache.thrift.TException + { + send_shutdown(); + } + + public void send_shutdown() throws org.apache.thrift.TException + { + shutdown_args args = new shutdown_args(); + sendBase("shutdown", args); + } + + } + public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface { + public static class Factory implements org.apache.thrift.async.TAsyncClientFactory { + private org.apache.thrift.async.TAsyncClientManager clientManager; + private org.apache.thrift.protocol.TProtocolFactory protocolFactory; + public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) { + this.clientManager = clientManager; + this.protocolFactory = protocolFactory; + } + public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) { + return new AsyncClient(protocolFactory, clientManager, transport); + } + } + + public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) { + super(protocolFactory, clientManager, transport); + } + + public void load_local(String path, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + load_local_call method_call = new load_local_call(path, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class load_local_call extends org.apache.thrift.async.TAsyncMethodCall { + private String path; + public load_local_call(String path, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.path = path; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("load_local", org.apache.thrift.protocol.TMessageType.CALL, 0)); + load_local_args args = new load_local_args(); + args.setPath(path); + args.write(prot); + prot.writeMessageEnd(); + } + + public Net getResult() throws Error, InvalidPath, org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_load_local(); + } + } + + public void initial_state(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + initial_state_call method_call = new initial_state_call(resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class initial_state_call extends org.apache.thrift.async.TAsyncMethodCall { + public initial_state_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("initial_state", org.apache.thrift.protocol.TMessageType.CALL, 0)); + initial_state_args args = new initial_state_args(); + args.write(prot); + prot.writeMessageEnd(); + } + + public TTSState getResult() throws Error, org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_initial_state(); + } + } + + public void is_enabled(long sid, long tid, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + is_enabled_call method_call = new is_enabled_call(sid, tid, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class is_enabled_call extends org.apache.thrift.async.TAsyncMethodCall { + private long sid; + private long tid; + public is_enabled_call(long sid, long tid, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.sid = sid; + this.tid = tid; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("is_enabled", org.apache.thrift.protocol.TMessageType.CALL, 0)); + is_enabled_args args = new is_enabled_args(); + args.setSid(sid); + args.setTid(tid); + args.write(prot); + prot.writeMessageEnd(); + } + + public boolean getResult() throws Error, StateNotFound, TransitionNotFound, org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_is_enabled(); + } + } + + public void enabled(long sid, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + enabled_call method_call = new enabled_call(sid, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class enabled_call extends org.apache.thrift.async.TAsyncMethodCall { + private long sid; + public enabled_call(long sid, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.sid = sid; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("enabled", org.apache.thrift.protocol.TMessageType.CALL, 0)); + enabled_args args = new enabled_args(); + args.setSid(sid); + args.write(prot); + prot.writeMessageEnd(); + } + + public List getResult() throws Error, StateNotFound, org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_enabled(); + } + } + + public void is_fireable(long sid, long tid, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + is_fireable_call method_call = new is_fireable_call(sid, tid, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class is_fireable_call extends org.apache.thrift.async.TAsyncMethodCall { + private long sid; + private long tid; + public is_fireable_call(long sid, long tid, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.sid = sid; + this.tid = tid; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("is_fireable", org.apache.thrift.protocol.TMessageType.CALL, 0)); + is_fireable_args args = new is_fireable_args(); + args.setSid(sid); + args.setTid(tid); + args.write(prot); + prot.writeMessageEnd(); + } + + public boolean getResult() throws Error, StateNotFound, TransitionNotFound, org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_is_fireable(); + } + } + + public void fireable(long sid, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + fireable_call method_call = new fireable_call(sid, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class fireable_call extends org.apache.thrift.async.TAsyncMethodCall { + private long sid; + public fireable_call(long sid, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.sid = sid; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("fireable", org.apache.thrift.protocol.TMessageType.CALL, 0)); + fireable_args args = new fireable_args(); + args.setSid(sid); + args.write(prot); + prot.writeMessageEnd(); + } + + public List getResult() throws Error, StateNotFound, org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_fireable(); + } + } + + public void fire(long sid, long tid, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + fire_call method_call = new fire_call(sid, tid, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class fire_call extends org.apache.thrift.async.TAsyncMethodCall { + private long sid; + private long tid; + public fire_call(long sid, long tid, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.sid = sid; + this.tid = tid; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("fire", org.apache.thrift.protocol.TMessageType.CALL, 0)); + fire_args args = new fire_args(); + args.setSid(sid); + args.setTid(tid); + args.write(prot); + prot.writeMessageEnd(); + } + + public TTSState getResult() throws Error, StateNotFound, TransitionNotFound, NotFireable, org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_fire(); + } + } + + public void can_advance_time(long sid, Clock delay, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + can_advance_time_call method_call = new can_advance_time_call(sid, delay, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class can_advance_time_call extends org.apache.thrift.async.TAsyncMethodCall { + private long sid; + private Clock delay; + public can_advance_time_call(long sid, Clock delay, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.sid = sid; + this.delay = delay; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("can_advance_time", org.apache.thrift.protocol.TMessageType.CALL, 0)); + can_advance_time_args args = new can_advance_time_args(); + args.setSid(sid); + args.setDelay(delay); + args.write(prot); + prot.writeMessageEnd(); + } + + public boolean getResult() throws Error, StateNotFound, org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_can_advance_time(); + } + } + + public void advance_time(long sid, Clock delay, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + advance_time_call method_call = new advance_time_call(sid, delay, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class advance_time_call extends org.apache.thrift.async.TAsyncMethodCall { + private long sid; + private Clock delay; + public advance_time_call(long sid, Clock delay, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.sid = sid; + this.delay = delay; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("advance_time", org.apache.thrift.protocol.TMessageType.CALL, 0)); + advance_time_args args = new advance_time_args(); + args.setSid(sid); + args.setDelay(delay); + args.write(prot); + prot.writeMessageEnd(); + } + + public TTSState getResult() throws Error, StateNotFound, InvalidDelay, org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_advance_time(); + } + } + + public void discard(List sids, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + discard_call method_call = new discard_call(sids, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class discard_call extends org.apache.thrift.async.TAsyncMethodCall { + private List sids; + public discard_call(List sids, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.sids = sids; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("discard", org.apache.thrift.protocol.TMessageType.CALL, 0)); + discard_args args = new discard_args(); + args.setSids(sids); + args.write(prot); + prot.writeMessageEnd(); + } + + public void getResult() throws org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + (new Client(prot)).recv_discard(); + } + } + + public void discard_all_except(List sids, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + discard_all_except_call method_call = new discard_all_except_call(sids, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class discard_all_except_call extends org.apache.thrift.async.TAsyncMethodCall { + private List sids; + public discard_all_except_call(List sids, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.sids = sids; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("discard_all_except", org.apache.thrift.protocol.TMessageType.CALL, 0)); + discard_all_except_args args = new discard_all_except_args(); + args.setSids(sids); + args.write(prot); + prot.writeMessageEnd(); + } + + public void getResult() throws org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + (new Client(prot)).recv_discard_all_except(); + } + } + + public void shutdown(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + shutdown_call method_call = new shutdown_call(resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class shutdown_call extends org.apache.thrift.async.TAsyncMethodCall { + public shutdown_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, true); + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("shutdown", org.apache.thrift.protocol.TMessageType.ONEWAY, 0)); + shutdown_args args = new shutdown_args(); + args.write(prot); + prot.writeMessageEnd(); + } + + public void getResult() throws org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + } + } + + } + + public static class Processor extends org.apache.thrift.TBaseProcessor implements org.apache.thrift.TProcessor { + private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName()); + public Processor(I iface) { + super(iface, getProcessMap(new HashMap>())); + } + + protected Processor(I iface, Map> processMap) { + super(iface, getProcessMap(processMap)); + } + + private static Map> getProcessMap(Map> processMap) { + processMap.put("load_local", new load_local()); + processMap.put("initial_state", new initial_state()); + processMap.put("is_enabled", new is_enabled()); + processMap.put("enabled", new enabled()); + processMap.put("is_fireable", new is_fireable()); + processMap.put("fireable", new fireable()); + processMap.put("fire", new fire()); + processMap.put("can_advance_time", new can_advance_time()); + processMap.put("advance_time", new advance_time()); + processMap.put("discard", new discard()); + processMap.put("discard_all_except", new discard_all_except()); + processMap.put("shutdown", new shutdown()); + return processMap; + } + + public static class load_local extends org.apache.thrift.ProcessFunction { + public load_local() { + super("load_local"); + } + + public load_local_args getEmptyArgsInstance() { + return new load_local_args(); + } + + protected boolean isOneway() { + return false; + } + + public load_local_result getResult(I iface, load_local_args args) throws org.apache.thrift.TException { + load_local_result result = new load_local_result(); + try { + result.success = iface.load_local(args.path); + } catch (Error error) { + result.error = error; + } catch (InvalidPath path_error) { + result.path_error = path_error; + } + return result; + } + } + + public static class initial_state extends org.apache.thrift.ProcessFunction { + public initial_state() { + super("initial_state"); + } + + public initial_state_args getEmptyArgsInstance() { + return new initial_state_args(); + } + + protected boolean isOneway() { + return false; + } + + public initial_state_result getResult(I iface, initial_state_args args) throws org.apache.thrift.TException { + initial_state_result result = new initial_state_result(); + try { + result.success = iface.initial_state(); + } catch (Error error) { + result.error = error; + } + return result; + } + } + + public static class is_enabled extends org.apache.thrift.ProcessFunction { + public is_enabled() { + super("is_enabled"); + } + + public is_enabled_args getEmptyArgsInstance() { + return new is_enabled_args(); + } + + protected boolean isOneway() { + return false; + } + + public is_enabled_result getResult(I iface, is_enabled_args args) throws org.apache.thrift.TException { + is_enabled_result result = new is_enabled_result(); + try { + result.success = iface.is_enabled(args.sid, args.tid); + result.setSuccessIsSet(true); + } catch (Error error) { + result.error = error; + } catch (StateNotFound state_error) { + result.state_error = state_error; + } catch (TransitionNotFound transition_error) { + result.transition_error = transition_error; + } + return result; + } + } + + public static class enabled extends org.apache.thrift.ProcessFunction { + public enabled() { + super("enabled"); + } + + public enabled_args getEmptyArgsInstance() { + return new enabled_args(); + } + + protected boolean isOneway() { + return false; + } + + public enabled_result getResult(I iface, enabled_args args) throws org.apache.thrift.TException { + enabled_result result = new enabled_result(); + try { + result.success = iface.enabled(args.sid); + } catch (Error error) { + result.error = error; + } catch (StateNotFound state_error) { + result.state_error = state_error; + } + return result; + } + } + + public static class is_fireable extends org.apache.thrift.ProcessFunction { + public is_fireable() { + super("is_fireable"); + } + + public is_fireable_args getEmptyArgsInstance() { + return new is_fireable_args(); + } + + protected boolean isOneway() { + return false; + } + + public is_fireable_result getResult(I iface, is_fireable_args args) throws org.apache.thrift.TException { + is_fireable_result result = new is_fireable_result(); + try { + result.success = iface.is_fireable(args.sid, args.tid); + result.setSuccessIsSet(true); + } catch (Error error) { + result.error = error; + } catch (StateNotFound state_error) { + result.state_error = state_error; + } catch (TransitionNotFound transition_error) { + result.transition_error = transition_error; + } + return result; + } + } + + public static class fireable extends org.apache.thrift.ProcessFunction { + public fireable() { + super("fireable"); + } + + public fireable_args getEmptyArgsInstance() { + return new fireable_args(); + } + + protected boolean isOneway() { + return false; + } + + public fireable_result getResult(I iface, fireable_args args) throws org.apache.thrift.TException { + fireable_result result = new fireable_result(); + try { + result.success = iface.fireable(args.sid); + } catch (Error error) { + result.error = error; + } catch (StateNotFound s_error) { + result.s_error = s_error; + } + return result; + } + } + + public static class fire extends org.apache.thrift.ProcessFunction { + public fire() { + super("fire"); + } + + public fire_args getEmptyArgsInstance() { + return new fire_args(); + } + + protected boolean isOneway() { + return false; + } + + public fire_result getResult(I iface, fire_args args) throws org.apache.thrift.TException { + fire_result result = new fire_result(); + try { + result.success = iface.fire(args.sid, args.tid); + } catch (Error error) { + result.error = error; + } catch (StateNotFound state_error) { + result.state_error = state_error; + } catch (TransitionNotFound transition_error) { + result.transition_error = transition_error; + } catch (NotFireable fireable_error) { + result.fireable_error = fireable_error; + } + return result; + } + } + + public static class can_advance_time extends org.apache.thrift.ProcessFunction { + public can_advance_time() { + super("can_advance_time"); + } + + public can_advance_time_args getEmptyArgsInstance() { + return new can_advance_time_args(); + } + + protected boolean isOneway() { + return false; + } + + public can_advance_time_result getResult(I iface, can_advance_time_args args) throws org.apache.thrift.TException { + can_advance_time_result result = new can_advance_time_result(); + try { + result.success = iface.can_advance_time(args.sid, args.delay); + result.setSuccessIsSet(true); + } catch (Error error) { + result.error = error; + } catch (StateNotFound state_error) { + result.state_error = state_error; + } + return result; + } + } + + public static class advance_time extends org.apache.thrift.ProcessFunction { + public advance_time() { + super("advance_time"); + } + + public advance_time_args getEmptyArgsInstance() { + return new advance_time_args(); + } + + protected boolean isOneway() { + return false; + } + + public advance_time_result getResult(I iface, advance_time_args args) throws org.apache.thrift.TException { + advance_time_result result = new advance_time_result(); + try { + result.success = iface.advance_time(args.sid, args.delay); + } catch (Error error) { + result.error = error; + } catch (StateNotFound state_error) { + result.state_error = state_error; + } catch (InvalidDelay delay_error) { + result.delay_error = delay_error; + } + return result; + } + } + + public static class discard extends org.apache.thrift.ProcessFunction { + public discard() { + super("discard"); + } + + public discard_args getEmptyArgsInstance() { + return new discard_args(); + } + + protected boolean isOneway() { + return false; + } + + public discard_result getResult(I iface, discard_args args) throws org.apache.thrift.TException { + discard_result result = new discard_result(); + iface.discard(args.sids); + return result; + } + } + + public static class discard_all_except extends org.apache.thrift.ProcessFunction { + public discard_all_except() { + super("discard_all_except"); + } + + public discard_all_except_args getEmptyArgsInstance() { + return new discard_all_except_args(); + } + + protected boolean isOneway() { + return false; + } + + public discard_all_except_result getResult(I iface, discard_all_except_args args) throws org.apache.thrift.TException { + discard_all_except_result result = new discard_all_except_result(); + iface.discard_all_except(args.sids); + return result; + } + } + + public static class shutdown extends org.apache.thrift.ProcessFunction { + public shutdown() { + super("shutdown"); + } + + public shutdown_args getEmptyArgsInstance() { + return new shutdown_args(); + } + + protected boolean isOneway() { + return true; + } + + public org.apache.thrift.TBase getResult(I iface, shutdown_args args) throws org.apache.thrift.TException { + iface.shutdown(); + return null; + } + } + + } + + public static class AsyncProcessor extends org.apache.thrift.TBaseAsyncProcessor { + private static final Logger LOGGER = LoggerFactory.getLogger(AsyncProcessor.class.getName()); + public AsyncProcessor(I iface) { + super(iface, getProcessMap(new HashMap>())); + } + + protected AsyncProcessor(I iface, Map> processMap) { + super(iface, getProcessMap(processMap)); + } + + private static Map> getProcessMap(Map> processMap) { + processMap.put("load_local", new load_local()); + processMap.put("initial_state", new initial_state()); + processMap.put("is_enabled", new is_enabled()); + processMap.put("enabled", new enabled()); + processMap.put("is_fireable", new is_fireable()); + processMap.put("fireable", new fireable()); + processMap.put("fire", new fire()); + processMap.put("can_advance_time", new can_advance_time()); + processMap.put("advance_time", new advance_time()); + processMap.put("discard", new discard()); + processMap.put("discard_all_except", new discard_all_except()); + processMap.put("shutdown", new shutdown()); + return processMap; + } + + public static class load_local extends org.apache.thrift.AsyncProcessFunction { + public load_local() { + super("load_local"); + } + + public load_local_args getEmptyArgsInstance() { + return new load_local_args(); + } + + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback() { + public void onComplete(Net o) { + load_local_result result = new load_local_result(); + result.success = o; + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + load_local_result result = new load_local_result(); + if (e instanceof Error) { + result.error = (Error) e; + result.setErrorIsSet(true); + msg = result; + } + else if (e instanceof InvalidPath) { + result.path_error = (InvalidPath) e; + result.setPath_errorIsSet(true); + msg = result; + } + else + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, load_local_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + iface.load_local(args.path,resultHandler); + } + } + + public static class initial_state extends org.apache.thrift.AsyncProcessFunction { + public initial_state() { + super("initial_state"); + } + + public initial_state_args getEmptyArgsInstance() { + return new initial_state_args(); + } + + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback() { + public void onComplete(TTSState o) { + initial_state_result result = new initial_state_result(); + result.success = o; + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + initial_state_result result = new initial_state_result(); + if (e instanceof Error) { + result.error = (Error) e; + result.setErrorIsSet(true); + msg = result; + } + else + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, initial_state_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + iface.initial_state(resultHandler); + } + } + + public static class is_enabled extends org.apache.thrift.AsyncProcessFunction { + public is_enabled() { + super("is_enabled"); + } + + public is_enabled_args getEmptyArgsInstance() { + return new is_enabled_args(); + } + + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback() { + public void onComplete(Boolean o) { + is_enabled_result result = new is_enabled_result(); + result.success = o; + result.setSuccessIsSet(true); + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + is_enabled_result result = new is_enabled_result(); + if (e instanceof Error) { + result.error = (Error) e; + result.setErrorIsSet(true); + msg = result; + } + else if (e instanceof StateNotFound) { + result.state_error = (StateNotFound) e; + result.setState_errorIsSet(true); + msg = result; + } + else if (e instanceof TransitionNotFound) { + result.transition_error = (TransitionNotFound) e; + result.setTransition_errorIsSet(true); + msg = result; + } + else + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, is_enabled_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + iface.is_enabled(args.sid, args.tid,resultHandler); + } + } + + public static class enabled extends org.apache.thrift.AsyncProcessFunction> { + public enabled() { + super("enabled"); + } + + public enabled_args getEmptyArgsInstance() { + return new enabled_args(); + } + + public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback>() { + public void onComplete(List o) { + enabled_result result = new enabled_result(); + result.success = o; + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + enabled_result result = new enabled_result(); + if (e instanceof Error) { + result.error = (Error) e; + result.setErrorIsSet(true); + msg = result; + } + else if (e instanceof StateNotFound) { + result.state_error = (StateNotFound) e; + result.setState_errorIsSet(true); + msg = result; + } + else + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, enabled_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException { + iface.enabled(args.sid,resultHandler); + } + } + + public static class is_fireable extends org.apache.thrift.AsyncProcessFunction { + public is_fireable() { + super("is_fireable"); + } + + public is_fireable_args getEmptyArgsInstance() { + return new is_fireable_args(); + } + + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback() { + public void onComplete(Boolean o) { + is_fireable_result result = new is_fireable_result(); + result.success = o; + result.setSuccessIsSet(true); + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + is_fireable_result result = new is_fireable_result(); + if (e instanceof Error) { + result.error = (Error) e; + result.setErrorIsSet(true); + msg = result; + } + else if (e instanceof StateNotFound) { + result.state_error = (StateNotFound) e; + result.setState_errorIsSet(true); + msg = result; + } + else if (e instanceof TransitionNotFound) { + result.transition_error = (TransitionNotFound) e; + result.setTransition_errorIsSet(true); + msg = result; + } + else + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, is_fireable_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + iface.is_fireable(args.sid, args.tid,resultHandler); + } + } + + public static class fireable extends org.apache.thrift.AsyncProcessFunction> { + public fireable() { + super("fireable"); + } + + public fireable_args getEmptyArgsInstance() { + return new fireable_args(); + } + + public AsyncMethodCallback> getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback>() { + public void onComplete(List o) { + fireable_result result = new fireable_result(); + result.success = o; + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + fireable_result result = new fireable_result(); + if (e instanceof Error) { + result.error = (Error) e; + result.setErrorIsSet(true); + msg = result; + } + else if (e instanceof StateNotFound) { + result.s_error = (StateNotFound) e; + result.setS_errorIsSet(true); + msg = result; + } + else + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, fireable_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws TException { + iface.fireable(args.sid,resultHandler); + } + } + + public static class fire extends org.apache.thrift.AsyncProcessFunction { + public fire() { + super("fire"); + } + + public fire_args getEmptyArgsInstance() { + return new fire_args(); + } + + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback() { + public void onComplete(TTSState o) { + fire_result result = new fire_result(); + result.success = o; + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + fire_result result = new fire_result(); + if (e instanceof Error) { + result.error = (Error) e; + result.setErrorIsSet(true); + msg = result; + } + else if (e instanceof StateNotFound) { + result.state_error = (StateNotFound) e; + result.setState_errorIsSet(true); + msg = result; + } + else if (e instanceof TransitionNotFound) { + result.transition_error = (TransitionNotFound) e; + result.setTransition_errorIsSet(true); + msg = result; + } + else if (e instanceof NotFireable) { + result.fireable_error = (NotFireable) e; + result.setFireable_errorIsSet(true); + msg = result; + } + else + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, fire_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + iface.fire(args.sid, args.tid,resultHandler); + } + } + + public static class can_advance_time extends org.apache.thrift.AsyncProcessFunction { + public can_advance_time() { + super("can_advance_time"); + } + + public can_advance_time_args getEmptyArgsInstance() { + return new can_advance_time_args(); + } + + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback() { + public void onComplete(Boolean o) { + can_advance_time_result result = new can_advance_time_result(); + result.success = o; + result.setSuccessIsSet(true); + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + can_advance_time_result result = new can_advance_time_result(); + if (e instanceof Error) { + result.error = (Error) e; + result.setErrorIsSet(true); + msg = result; + } + else if (e instanceof StateNotFound) { + result.state_error = (StateNotFound) e; + result.setState_errorIsSet(true); + msg = result; + } + else + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, can_advance_time_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + iface.can_advance_time(args.sid, args.delay,resultHandler); + } + } + + public static class advance_time extends org.apache.thrift.AsyncProcessFunction { + public advance_time() { + super("advance_time"); + } + + public advance_time_args getEmptyArgsInstance() { + return new advance_time_args(); + } + + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback() { + public void onComplete(TTSState o) { + advance_time_result result = new advance_time_result(); + result.success = o; + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + advance_time_result result = new advance_time_result(); + if (e instanceof Error) { + result.error = (Error) e; + result.setErrorIsSet(true); + msg = result; + } + else if (e instanceof StateNotFound) { + result.state_error = (StateNotFound) e; + result.setState_errorIsSet(true); + msg = result; + } + else if (e instanceof InvalidDelay) { + result.delay_error = (InvalidDelay) e; + result.setDelay_errorIsSet(true); + msg = result; + } + else + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, advance_time_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + iface.advance_time(args.sid, args.delay,resultHandler); + } + } + + public static class discard extends org.apache.thrift.AsyncProcessFunction { + public discard() { + super("discard"); + } + + public discard_args getEmptyArgsInstance() { + return new discard_args(); + } + + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback() { + public void onComplete(Void o) { + discard_result result = new discard_result(); + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + discard_result result = new discard_result(); + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, discard_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + iface.discard(args.sids,resultHandler); + } + } + + public static class discard_all_except extends org.apache.thrift.AsyncProcessFunction { + public discard_all_except() { + super("discard_all_except"); + } + + public discard_all_except_args getEmptyArgsInstance() { + return new discard_all_except_args(); + } + + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback() { + public void onComplete(Void o) { + discard_all_except_result result = new discard_all_except_result(); + try { + fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); + return; + } catch (Exception e) { + LOGGER.error("Exception writing to internal frame buffer", e); + } + fb.close(); + } + public void onError(Exception e) { + byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; + org.apache.thrift.TBase msg; + discard_all_except_result result = new discard_all_except_result(); + { + msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; + msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); + } + try { + fcall.sendResponse(fb,msg,msgType,seqid); + return; + } catch (Exception ex) { + LOGGER.error("Exception writing to internal frame buffer", ex); + } + fb.close(); + } + }; + } + + protected boolean isOneway() { + return false; + } + + public void start(I iface, discard_all_except_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + iface.discard_all_except(args.sids,resultHandler); + } + } + + public static class shutdown extends org.apache.thrift.AsyncProcessFunction { + public shutdown() { + super("shutdown"); + } + + public shutdown_args getEmptyArgsInstance() { + return new shutdown_args(); + } + + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + final org.apache.thrift.AsyncProcessFunction fcall = this; + return new AsyncMethodCallback() { + public void onComplete(Void o) { + } + public void onError(Exception e) { + } + }; + } + + protected boolean isOneway() { + return true; + } + + public void start(I iface, shutdown_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + iface.shutdown(resultHandler); + } + } + + } + + public static class load_local_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("load_local_args"); + + private static final org.apache.thrift.protocol.TField PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("path", org.apache.thrift.protocol.TType.STRING, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new load_local_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new load_local_argsTupleSchemeFactory()); + } + + public String path; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + PATH((short)1, "path"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // PATH + return PATH; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.PATH, new org.apache.thrift.meta_data.FieldMetaData("path", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(load_local_args.class, metaDataMap); + } + + public load_local_args() { + } + + public load_local_args( + String path) + { + this(); + this.path = path; + } + + /** + * Performs a deep copy on other. + */ + public load_local_args(load_local_args other) { + if (other.isSetPath()) { + this.path = other.path; + } + } + + public load_local_args deepCopy() { + return new load_local_args(this); + } + + @Override + public void clear() { + this.path = null; + } + + public String getPath() { + return this.path; + } + + public load_local_args setPath(String path) { + this.path = path; + return this; + } + + public void unsetPath() { + this.path = null; + } + + /** Returns true if field path is set (has been assigned a value) and false otherwise */ + public boolean isSetPath() { + return this.path != null; + } + + public void setPathIsSet(boolean value) { + if (!value) { + this.path = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case PATH: + if (value == null) { + unsetPath(); + } else { + setPath((String)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case PATH: + return getPath(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case PATH: + return isSetPath(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof load_local_args) + return this.equals((load_local_args)that); + return false; + } + + public boolean equals(load_local_args that) { + if (that == null) + return false; + + boolean this_present_path = true && this.isSetPath(); + boolean that_present_path = true && that.isSetPath(); + if (this_present_path || that_present_path) { + if (!(this_present_path && that_present_path)) + return false; + if (!this.path.equals(that.path)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_path = true && (isSetPath()); + list.add(present_path); + if (present_path) + list.add(path); + + return list.hashCode(); + } + + @Override + public int compareTo(load_local_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetPath()).compareTo(other.isSetPath()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetPath()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.path, other.path); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("load_local_args("); + boolean first = true; + + sb.append("path:"); + if (this.path == null) { + sb.append("null"); + } else { + sb.append(this.path); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class load_local_argsStandardSchemeFactory implements SchemeFactory { + public load_local_argsStandardScheme getScheme() { + return new load_local_argsStandardScheme(); + } + } + + private static class load_local_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, load_local_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // PATH + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.path = iprot.readString(); + struct.setPathIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, load_local_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.path != null) { + oprot.writeFieldBegin(PATH_FIELD_DESC); + oprot.writeString(struct.path); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class load_local_argsTupleSchemeFactory implements SchemeFactory { + public load_local_argsTupleScheme getScheme() { + return new load_local_argsTupleScheme(); + } + } + + private static class load_local_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, load_local_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetPath()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetPath()) { + oprot.writeString(struct.path); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, load_local_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.path = iprot.readString(); + struct.setPathIsSet(true); + } + } + } + + } + + public static class load_local_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("load_local_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); + private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRUCT, (short)1); + private static final org.apache.thrift.protocol.TField PATH_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("path_error", org.apache.thrift.protocol.TType.STRUCT, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new load_local_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new load_local_resultTupleSchemeFactory()); + } + + public Net success; // required + public Error error; // required + public InvalidPath path_error; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SUCCESS((short)0, "success"), + ERROR((short)1, "error"), + PATH_ERROR((short)2, "path_error"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 0: // SUCCESS + return SUCCESS; + case 1: // ERROR + return ERROR; + case 2: // PATH_ERROR + return PATH_ERROR; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Net.class))); + tmpMap.put(_Fields.ERROR, new org.apache.thrift.meta_data.FieldMetaData("error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.PATH_ERROR, new org.apache.thrift.meta_data.FieldMetaData("path_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(load_local_result.class, metaDataMap); + } + + public load_local_result() { + } + + public load_local_result( + Net success, + Error error, + InvalidPath path_error) + { + this(); + this.success = success; + this.error = error; + this.path_error = path_error; + } + + /** + * Performs a deep copy on other. + */ + public load_local_result(load_local_result other) { + if (other.isSetSuccess()) { + this.success = new Net(other.success); + } + if (other.isSetError()) { + this.error = new Error(other.error); + } + if (other.isSetPath_error()) { + this.path_error = new InvalidPath(other.path_error); + } + } + + public load_local_result deepCopy() { + return new load_local_result(this); + } + + @Override + public void clear() { + this.success = null; + this.error = null; + this.path_error = null; + } + + public Net getSuccess() { + return this.success; + } + + public load_local_result setSuccess(Net success) { + this.success = success; + return this; + } + + public void unsetSuccess() { + this.success = null; + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return this.success != null; + } + + public void setSuccessIsSet(boolean value) { + if (!value) { + this.success = null; + } + } + + public Error getError() { + return this.error; + } + + public load_local_result setError(Error error) { + this.error = error; + return this; + } + + public void unsetError() { + this.error = null; + } + + /** Returns true if field error is set (has been assigned a value) and false otherwise */ + public boolean isSetError() { + return this.error != null; + } + + public void setErrorIsSet(boolean value) { + if (!value) { + this.error = null; + } + } + + public InvalidPath getPath_error() { + return this.path_error; + } + + public load_local_result setPath_error(InvalidPath path_error) { + this.path_error = path_error; + return this; + } + + public void unsetPath_error() { + this.path_error = null; + } + + /** Returns true if field path_error is set (has been assigned a value) and false otherwise */ + public boolean isSetPath_error() { + return this.path_error != null; + } + + public void setPath_errorIsSet(boolean value) { + if (!value) { + this.path_error = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((Net)value); + } + break; + + case ERROR: + if (value == null) { + unsetError(); + } else { + setError((Error)value); + } + break; + + case PATH_ERROR: + if (value == null) { + unsetPath_error(); + } else { + setPath_error((InvalidPath)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return getSuccess(); + + case ERROR: + return getError(); + + case PATH_ERROR: + return getPath_error(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SUCCESS: + return isSetSuccess(); + case ERROR: + return isSetError(); + case PATH_ERROR: + return isSetPath_error(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof load_local_result) + return this.equals((load_local_result)that); + return false; + } + + public boolean equals(load_local_result that) { + if (that == null) + return false; + + boolean this_present_success = true && this.isSetSuccess(); + boolean that_present_success = true && that.isSetSuccess(); + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (!this.success.equals(that.success)) + return false; + } + + boolean this_present_error = true && this.isSetError(); + boolean that_present_error = true && that.isSetError(); + if (this_present_error || that_present_error) { + if (!(this_present_error && that_present_error)) + return false; + if (!this.error.equals(that.error)) + return false; + } + + boolean this_present_path_error = true && this.isSetPath_error(); + boolean that_present_path_error = true && that.isSetPath_error(); + if (this_present_path_error || that_present_path_error) { + if (!(this_present_path_error && that_present_path_error)) + return false; + if (!this.path_error.equals(that.path_error)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_success = true && (isSetSuccess()); + list.add(present_success); + if (present_success) + list.add(success); + + boolean present_error = true && (isSetError()); + list.add(present_error); + if (present_error) + list.add(error); + + boolean present_path_error = true && (isSetPath_error()); + list.add(present_path_error); + if (present_path_error) + list.add(path_error); + + return list.hashCode(); + } + + @Override + public int compareTo(load_local_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetError()).compareTo(other.isSetError()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetError()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error, other.error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetPath_error()).compareTo(other.isSetPath_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetPath_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.path_error, other.path_error); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("load_local_result("); + boolean first = true; + + sb.append("success:"); + if (this.success == null) { + sb.append("null"); + } else { + sb.append(this.success); + } + first = false; + if (!first) sb.append(", "); + sb.append("error:"); + if (this.error == null) { + sb.append("null"); + } else { + sb.append(this.error); + } + first = false; + if (!first) sb.append(", "); + sb.append("path_error:"); + if (this.path_error == null) { + sb.append("null"); + } else { + sb.append(this.path_error); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (success != null) { + success.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class load_local_resultStandardSchemeFactory implements SchemeFactory { + public load_local_resultStandardScheme getScheme() { + return new load_local_resultStandardScheme(); + } + } + + private static class load_local_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, load_local_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.success = new Net(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 1: // ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // PATH_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.path_error = new InvalidPath(); + struct.path_error.read(iprot); + struct.setPath_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, load_local_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.success != null) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + struct.success.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.error != null) { + oprot.writeFieldBegin(ERROR_FIELD_DESC); + struct.error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.path_error != null) { + oprot.writeFieldBegin(PATH_ERROR_FIELD_DESC); + struct.path_error.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class load_local_resultTupleSchemeFactory implements SchemeFactory { + public load_local_resultTupleScheme getScheme() { + return new load_local_resultTupleScheme(); + } + } + + private static class load_local_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, load_local_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + if (struct.isSetError()) { + optionals.set(1); + } + if (struct.isSetPath_error()) { + optionals.set(2); + } + oprot.writeBitSet(optionals, 3); + if (struct.isSetSuccess()) { + struct.success.write(oprot); + } + if (struct.isSetError()) { + struct.error.write(oprot); + } + if (struct.isSetPath_error()) { + struct.path_error.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, load_local_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(3); + if (incoming.get(0)) { + struct.success = new Net(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } + if (incoming.get(1)) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } + if (incoming.get(2)) { + struct.path_error = new InvalidPath(); + struct.path_error.read(iprot); + struct.setPath_errorIsSet(true); + } + } + } + + } + + public static class initial_state_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("initial_state_args"); + + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new initial_state_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new initial_state_argsTupleSchemeFactory()); + } + + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { +; + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(initial_state_args.class, metaDataMap); + } + + public initial_state_args() { + } + + /** + * Performs a deep copy on other. + */ + public initial_state_args(initial_state_args other) { + } + + public initial_state_args deepCopy() { + return new initial_state_args(this); + } + + @Override + public void clear() { + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof initial_state_args) + return this.equals((initial_state_args)that); + return false; + } + + public boolean equals(initial_state_args that) { + if (that == null) + return false; + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + return list.hashCode(); + } + + @Override + public int compareTo(initial_state_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("initial_state_args("); + boolean first = true; + + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class initial_state_argsStandardSchemeFactory implements SchemeFactory { + public initial_state_argsStandardScheme getScheme() { + return new initial_state_argsStandardScheme(); + } + } + + private static class initial_state_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, initial_state_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, initial_state_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class initial_state_argsTupleSchemeFactory implements SchemeFactory { + public initial_state_argsTupleScheme getScheme() { + return new initial_state_argsTupleScheme(); + } + } + + private static class initial_state_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, initial_state_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, initial_state_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + } + } + + } + + public static class initial_state_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("initial_state_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); + private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRUCT, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new initial_state_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new initial_state_resultTupleSchemeFactory()); + } + + public TTSState success; // required + public Error error; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SUCCESS((short)0, "success"), + ERROR((short)1, "error"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 0: // SUCCESS + return SUCCESS; + case 1: // ERROR + return ERROR; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TTSState.class))); + tmpMap.put(_Fields.ERROR, new org.apache.thrift.meta_data.FieldMetaData("error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(initial_state_result.class, metaDataMap); + } + + public initial_state_result() { + } + + public initial_state_result( + TTSState success, + Error error) + { + this(); + this.success = success; + this.error = error; + } + + /** + * Performs a deep copy on other. + */ + public initial_state_result(initial_state_result other) { + if (other.isSetSuccess()) { + this.success = new TTSState(other.success); + } + if (other.isSetError()) { + this.error = new Error(other.error); + } + } + + public initial_state_result deepCopy() { + return new initial_state_result(this); + } + + @Override + public void clear() { + this.success = null; + this.error = null; + } + + public TTSState getSuccess() { + return this.success; + } + + public initial_state_result setSuccess(TTSState success) { + this.success = success; + return this; + } + + public void unsetSuccess() { + this.success = null; + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return this.success != null; + } + + public void setSuccessIsSet(boolean value) { + if (!value) { + this.success = null; + } + } + + public Error getError() { + return this.error; + } + + public initial_state_result setError(Error error) { + this.error = error; + return this; + } + + public void unsetError() { + this.error = null; + } + + /** Returns true if field error is set (has been assigned a value) and false otherwise */ + public boolean isSetError() { + return this.error != null; + } + + public void setErrorIsSet(boolean value) { + if (!value) { + this.error = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((TTSState)value); + } + break; + + case ERROR: + if (value == null) { + unsetError(); + } else { + setError((Error)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return getSuccess(); + + case ERROR: + return getError(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SUCCESS: + return isSetSuccess(); + case ERROR: + return isSetError(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof initial_state_result) + return this.equals((initial_state_result)that); + return false; + } + + public boolean equals(initial_state_result that) { + if (that == null) + return false; + + boolean this_present_success = true && this.isSetSuccess(); + boolean that_present_success = true && that.isSetSuccess(); + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (!this.success.equals(that.success)) + return false; + } + + boolean this_present_error = true && this.isSetError(); + boolean that_present_error = true && that.isSetError(); + if (this_present_error || that_present_error) { + if (!(this_present_error && that_present_error)) + return false; + if (!this.error.equals(that.error)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_success = true && (isSetSuccess()); + list.add(present_success); + if (present_success) + list.add(success); + + boolean present_error = true && (isSetError()); + list.add(present_error); + if (present_error) + list.add(error); + + return list.hashCode(); + } + + @Override + public int compareTo(initial_state_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetError()).compareTo(other.isSetError()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetError()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error, other.error); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("initial_state_result("); + boolean first = true; + + sb.append("success:"); + if (this.success == null) { + sb.append("null"); + } else { + sb.append(this.success); + } + first = false; + if (!first) sb.append(", "); + sb.append("error:"); + if (this.error == null) { + sb.append("null"); + } else { + sb.append(this.error); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (success != null) { + success.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class initial_state_resultStandardSchemeFactory implements SchemeFactory { + public initial_state_resultStandardScheme getScheme() { + return new initial_state_resultStandardScheme(); + } + } + + private static class initial_state_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, initial_state_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.success = new TTSState(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 1: // ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, initial_state_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.success != null) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + struct.success.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.error != null) { + oprot.writeFieldBegin(ERROR_FIELD_DESC); + struct.error.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class initial_state_resultTupleSchemeFactory implements SchemeFactory { + public initial_state_resultTupleScheme getScheme() { + return new initial_state_resultTupleScheme(); + } + } + + private static class initial_state_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, initial_state_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + if (struct.isSetError()) { + optionals.set(1); + } + oprot.writeBitSet(optionals, 2); + if (struct.isSetSuccess()) { + struct.success.write(oprot); + } + if (struct.isSetError()) { + struct.error.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, initial_state_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(2); + if (incoming.get(0)) { + struct.success = new TTSState(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } + if (incoming.get(1)) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } + } + } + + } + + public static class is_enabled_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("is_enabled_args"); + + private static final org.apache.thrift.protocol.TField SID_FIELD_DESC = new org.apache.thrift.protocol.TField("sid", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField TID_FIELD_DESC = new org.apache.thrift.protocol.TField("tid", org.apache.thrift.protocol.TType.I64, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new is_enabled_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new is_enabled_argsTupleSchemeFactory()); + } + + public long sid; // required + public long tid; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SID((short)1, "sid"), + TID((short)2, "tid"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // SID + return SID; + case 2: // TID + return TID; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __SID_ISSET_ID = 0; + private static final int __TID_ISSET_ID = 1; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SID, new org.apache.thrift.meta_data.FieldMetaData("sid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id"))); + tmpMap.put(_Fields.TID, new org.apache.thrift.meta_data.FieldMetaData("tid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "transition_id"))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(is_enabled_args.class, metaDataMap); + } + + public is_enabled_args() { + } + + public is_enabled_args( + long sid, + long tid) + { + this(); + this.sid = sid; + setSidIsSet(true); + this.tid = tid; + setTidIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public is_enabled_args(is_enabled_args other) { + __isset_bitfield = other.__isset_bitfield; + this.sid = other.sid; + this.tid = other.tid; + } + + public is_enabled_args deepCopy() { + return new is_enabled_args(this); + } + + @Override + public void clear() { + setSidIsSet(false); + this.sid = 0; + setTidIsSet(false); + this.tid = 0; + } + + public long getSid() { + return this.sid; + } + + public is_enabled_args setSid(long sid) { + this.sid = sid; + setSidIsSet(true); + return this; + } + + public void unsetSid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SID_ISSET_ID); + } + + /** Returns true if field sid is set (has been assigned a value) and false otherwise */ + public boolean isSetSid() { + return EncodingUtils.testBit(__isset_bitfield, __SID_ISSET_ID); + } + + public void setSidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SID_ISSET_ID, value); + } + + public long getTid() { + return this.tid; + } + + public is_enabled_args setTid(long tid) { + this.tid = tid; + setTidIsSet(true); + return this; + } + + public void unsetTid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TID_ISSET_ID); + } + + /** Returns true if field tid is set (has been assigned a value) and false otherwise */ + public boolean isSetTid() { + return EncodingUtils.testBit(__isset_bitfield, __TID_ISSET_ID); + } + + public void setTidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TID_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SID: + if (value == null) { + unsetSid(); + } else { + setSid((Long)value); + } + break; + + case TID: + if (value == null) { + unsetTid(); + } else { + setTid((Long)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SID: + return Long.valueOf(getSid()); + + case TID: + return Long.valueOf(getTid()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SID: + return isSetSid(); + case TID: + return isSetTid(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof is_enabled_args) + return this.equals((is_enabled_args)that); + return false; + } + + public boolean equals(is_enabled_args that) { + if (that == null) + return false; + + boolean this_present_sid = true; + boolean that_present_sid = true; + if (this_present_sid || that_present_sid) { + if (!(this_present_sid && that_present_sid)) + return false; + if (this.sid != that.sid) + return false; + } + + boolean this_present_tid = true; + boolean that_present_tid = true; + if (this_present_tid || that_present_tid) { + if (!(this_present_tid && that_present_tid)) + return false; + if (this.tid != that.tid) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_sid = true; + list.add(present_sid); + if (present_sid) + list.add(sid); + + boolean present_tid = true; + list.add(present_tid); + if (present_tid) + list.add(tid); + + return list.hashCode(); + } + + @Override + public int compareTo(is_enabled_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSid()).compareTo(other.isSetSid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sid, other.sid); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetTid()).compareTo(other.isSetTid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tid, other.tid); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("is_enabled_args("); + boolean first = true; + + sb.append("sid:"); + sb.append(this.sid); + first = false; + if (!first) sb.append(", "); + sb.append("tid:"); + sb.append(this.tid); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class is_enabled_argsStandardSchemeFactory implements SchemeFactory { + public is_enabled_argsStandardScheme getScheme() { + return new is_enabled_argsStandardScheme(); + } + } + + private static class is_enabled_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, is_enabled_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // SID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // TID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.tid = iprot.readI64(); + struct.setTidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, is_enabled_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(SID_FIELD_DESC); + oprot.writeI64(struct.sid); + oprot.writeFieldEnd(); + oprot.writeFieldBegin(TID_FIELD_DESC); + oprot.writeI64(struct.tid); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class is_enabled_argsTupleSchemeFactory implements SchemeFactory { + public is_enabled_argsTupleScheme getScheme() { + return new is_enabled_argsTupleScheme(); + } + } + + private static class is_enabled_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, is_enabled_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSid()) { + optionals.set(0); + } + if (struct.isSetTid()) { + optionals.set(1); + } + oprot.writeBitSet(optionals, 2); + if (struct.isSetSid()) { + oprot.writeI64(struct.sid); + } + if (struct.isSetTid()) { + oprot.writeI64(struct.tid); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, is_enabled_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(2); + if (incoming.get(0)) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } + if (incoming.get(1)) { + struct.tid = iprot.readI64(); + struct.setTidIsSet(true); + } + } + } + + } + + public static class is_enabled_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("is_enabled_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0); + private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRUCT, (short)1); + private static final org.apache.thrift.protocol.TField STATE_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("state_error", org.apache.thrift.protocol.TType.STRUCT, (short)2); + private static final org.apache.thrift.protocol.TField TRANSITION_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("transition_error", org.apache.thrift.protocol.TType.STRUCT, (short)3); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new is_enabled_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new is_enabled_resultTupleSchemeFactory()); + } + + public boolean success; // required + public Error error; // required + public StateNotFound state_error; // required + public TransitionNotFound transition_error; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SUCCESS((short)0, "success"), + ERROR((short)1, "error"), + STATE_ERROR((short)2, "state_error"), + TRANSITION_ERROR((short)3, "transition_error"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 0: // SUCCESS + return SUCCESS; + case 1: // ERROR + return ERROR; + case 2: // STATE_ERROR + return STATE_ERROR; + case 3: // TRANSITION_ERROR + return TRANSITION_ERROR; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __SUCCESS_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); + tmpMap.put(_Fields.ERROR, new org.apache.thrift.meta_data.FieldMetaData("error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.STATE_ERROR, new org.apache.thrift.meta_data.FieldMetaData("state_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.TRANSITION_ERROR, new org.apache.thrift.meta_data.FieldMetaData("transition_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(is_enabled_result.class, metaDataMap); + } + + public is_enabled_result() { + } + + public is_enabled_result( + boolean success, + Error error, + StateNotFound state_error, + TransitionNotFound transition_error) + { + this(); + this.success = success; + setSuccessIsSet(true); + this.error = error; + this.state_error = state_error; + this.transition_error = transition_error; + } + + /** + * Performs a deep copy on other. + */ + public is_enabled_result(is_enabled_result other) { + __isset_bitfield = other.__isset_bitfield; + this.success = other.success; + if (other.isSetError()) { + this.error = new Error(other.error); + } + if (other.isSetState_error()) { + this.state_error = new StateNotFound(other.state_error); + } + if (other.isSetTransition_error()) { + this.transition_error = new TransitionNotFound(other.transition_error); + } + } + + public is_enabled_result deepCopy() { + return new is_enabled_result(this); + } + + @Override + public void clear() { + setSuccessIsSet(false); + this.success = false; + this.error = null; + this.state_error = null; + this.transition_error = null; + } + + public boolean isSuccess() { + return this.success; + } + + public is_enabled_result setSuccess(boolean success) { + this.success = success; + setSuccessIsSet(true); + return this; + } + + public void unsetSuccess() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID); + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID); + } + + public void setSuccessIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value); + } + + public Error getError() { + return this.error; + } + + public is_enabled_result setError(Error error) { + this.error = error; + return this; + } + + public void unsetError() { + this.error = null; + } + + /** Returns true if field error is set (has been assigned a value) and false otherwise */ + public boolean isSetError() { + return this.error != null; + } + + public void setErrorIsSet(boolean value) { + if (!value) { + this.error = null; + } + } + + public StateNotFound getState_error() { + return this.state_error; + } + + public is_enabled_result setState_error(StateNotFound state_error) { + this.state_error = state_error; + return this; + } + + public void unsetState_error() { + this.state_error = null; + } + + /** Returns true if field state_error is set (has been assigned a value) and false otherwise */ + public boolean isSetState_error() { + return this.state_error != null; + } + + public void setState_errorIsSet(boolean value) { + if (!value) { + this.state_error = null; + } + } + + public TransitionNotFound getTransition_error() { + return this.transition_error; + } + + public is_enabled_result setTransition_error(TransitionNotFound transition_error) { + this.transition_error = transition_error; + return this; + } + + public void unsetTransition_error() { + this.transition_error = null; + } + + /** Returns true if field transition_error is set (has been assigned a value) and false otherwise */ + public boolean isSetTransition_error() { + return this.transition_error != null; + } + + public void setTransition_errorIsSet(boolean value) { + if (!value) { + this.transition_error = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((Boolean)value); + } + break; + + case ERROR: + if (value == null) { + unsetError(); + } else { + setError((Error)value); + } + break; + + case STATE_ERROR: + if (value == null) { + unsetState_error(); + } else { + setState_error((StateNotFound)value); + } + break; + + case TRANSITION_ERROR: + if (value == null) { + unsetTransition_error(); + } else { + setTransition_error((TransitionNotFound)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return Boolean.valueOf(isSuccess()); + + case ERROR: + return getError(); + + case STATE_ERROR: + return getState_error(); + + case TRANSITION_ERROR: + return getTransition_error(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SUCCESS: + return isSetSuccess(); + case ERROR: + return isSetError(); + case STATE_ERROR: + return isSetState_error(); + case TRANSITION_ERROR: + return isSetTransition_error(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof is_enabled_result) + return this.equals((is_enabled_result)that); + return false; + } + + public boolean equals(is_enabled_result that) { + if (that == null) + return false; + + boolean this_present_success = true; + boolean that_present_success = true; + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (this.success != that.success) + return false; + } + + boolean this_present_error = true && this.isSetError(); + boolean that_present_error = true && that.isSetError(); + if (this_present_error || that_present_error) { + if (!(this_present_error && that_present_error)) + return false; + if (!this.error.equals(that.error)) + return false; + } + + boolean this_present_state_error = true && this.isSetState_error(); + boolean that_present_state_error = true && that.isSetState_error(); + if (this_present_state_error || that_present_state_error) { + if (!(this_present_state_error && that_present_state_error)) + return false; + if (!this.state_error.equals(that.state_error)) + return false; + } + + boolean this_present_transition_error = true && this.isSetTransition_error(); + boolean that_present_transition_error = true && that.isSetTransition_error(); + if (this_present_transition_error || that_present_transition_error) { + if (!(this_present_transition_error && that_present_transition_error)) + return false; + if (!this.transition_error.equals(that.transition_error)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_success = true; + list.add(present_success); + if (present_success) + list.add(success); + + boolean present_error = true && (isSetError()); + list.add(present_error); + if (present_error) + list.add(error); + + boolean present_state_error = true && (isSetState_error()); + list.add(present_state_error); + if (present_state_error) + list.add(state_error); + + boolean present_transition_error = true && (isSetTransition_error()); + list.add(present_transition_error); + if (present_transition_error) + list.add(transition_error); + + return list.hashCode(); + } + + @Override + public int compareTo(is_enabled_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetError()).compareTo(other.isSetError()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetError()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error, other.error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetState_error()).compareTo(other.isSetState_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetState_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state_error, other.state_error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetTransition_error()).compareTo(other.isSetTransition_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTransition_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transition_error, other.transition_error); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("is_enabled_result("); + boolean first = true; + + sb.append("success:"); + sb.append(this.success); + first = false; + if (!first) sb.append(", "); + sb.append("error:"); + if (this.error == null) { + sb.append("null"); + } else { + sb.append(this.error); + } + first = false; + if (!first) sb.append(", "); + sb.append("state_error:"); + if (this.state_error == null) { + sb.append("null"); + } else { + sb.append(this.state_error); + } + first = false; + if (!first) sb.append(", "); + sb.append("transition_error:"); + if (this.transition_error == null) { + sb.append("null"); + } else { + sb.append(this.transition_error); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class is_enabled_resultStandardSchemeFactory implements SchemeFactory { + public is_enabled_resultStandardScheme getScheme() { + return new is_enabled_resultStandardScheme(); + } + } + + private static class is_enabled_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, is_enabled_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) { + struct.success = iprot.readBool(); + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 1: // ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // STATE_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // TRANSITION_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.transition_error = new TransitionNotFound(); + struct.transition_error.read(iprot); + struct.setTransition_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, is_enabled_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.isSetSuccess()) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + oprot.writeBool(struct.success); + oprot.writeFieldEnd(); + } + if (struct.error != null) { + oprot.writeFieldBegin(ERROR_FIELD_DESC); + struct.error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.state_error != null) { + oprot.writeFieldBegin(STATE_ERROR_FIELD_DESC); + struct.state_error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.transition_error != null) { + oprot.writeFieldBegin(TRANSITION_ERROR_FIELD_DESC); + struct.transition_error.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class is_enabled_resultTupleSchemeFactory implements SchemeFactory { + public is_enabled_resultTupleScheme getScheme() { + return new is_enabled_resultTupleScheme(); + } + } + + private static class is_enabled_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, is_enabled_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + if (struct.isSetError()) { + optionals.set(1); + } + if (struct.isSetState_error()) { + optionals.set(2); + } + if (struct.isSetTransition_error()) { + optionals.set(3); + } + oprot.writeBitSet(optionals, 4); + if (struct.isSetSuccess()) { + oprot.writeBool(struct.success); + } + if (struct.isSetError()) { + struct.error.write(oprot); + } + if (struct.isSetState_error()) { + struct.state_error.write(oprot); + } + if (struct.isSetTransition_error()) { + struct.transition_error.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, is_enabled_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(4); + if (incoming.get(0)) { + struct.success = iprot.readBool(); + struct.setSuccessIsSet(true); + } + if (incoming.get(1)) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } + if (incoming.get(2)) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } + if (incoming.get(3)) { + struct.transition_error = new TransitionNotFound(); + struct.transition_error.read(iprot); + struct.setTransition_errorIsSet(true); + } + } + } + + } + + public static class enabled_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("enabled_args"); + + private static final org.apache.thrift.protocol.TField SID_FIELD_DESC = new org.apache.thrift.protocol.TField("sid", org.apache.thrift.protocol.TType.I64, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new enabled_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new enabled_argsTupleSchemeFactory()); + } + + public long sid; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SID((short)1, "sid"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // SID + return SID; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __SID_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SID, new org.apache.thrift.meta_data.FieldMetaData("sid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id"))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(enabled_args.class, metaDataMap); + } + + public enabled_args() { + } + + public enabled_args( + long sid) + { + this(); + this.sid = sid; + setSidIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public enabled_args(enabled_args other) { + __isset_bitfield = other.__isset_bitfield; + this.sid = other.sid; + } + + public enabled_args deepCopy() { + return new enabled_args(this); + } + + @Override + public void clear() { + setSidIsSet(false); + this.sid = 0; + } + + public long getSid() { + return this.sid; + } + + public enabled_args setSid(long sid) { + this.sid = sid; + setSidIsSet(true); + return this; + } + + public void unsetSid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SID_ISSET_ID); + } + + /** Returns true if field sid is set (has been assigned a value) and false otherwise */ + public boolean isSetSid() { + return EncodingUtils.testBit(__isset_bitfield, __SID_ISSET_ID); + } + + public void setSidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SID_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SID: + if (value == null) { + unsetSid(); + } else { + setSid((Long)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SID: + return Long.valueOf(getSid()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SID: + return isSetSid(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof enabled_args) + return this.equals((enabled_args)that); + return false; + } + + public boolean equals(enabled_args that) { + if (that == null) + return false; + + boolean this_present_sid = true; + boolean that_present_sid = true; + if (this_present_sid || that_present_sid) { + if (!(this_present_sid && that_present_sid)) + return false; + if (this.sid != that.sid) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_sid = true; + list.add(present_sid); + if (present_sid) + list.add(sid); + + return list.hashCode(); + } + + @Override + public int compareTo(enabled_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSid()).compareTo(other.isSetSid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sid, other.sid); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("enabled_args("); + boolean first = true; + + sb.append("sid:"); + sb.append(this.sid); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class enabled_argsStandardSchemeFactory implements SchemeFactory { + public enabled_argsStandardScheme getScheme() { + return new enabled_argsStandardScheme(); + } + } + + private static class enabled_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, enabled_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // SID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, enabled_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(SID_FIELD_DESC); + oprot.writeI64(struct.sid); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class enabled_argsTupleSchemeFactory implements SchemeFactory { + public enabled_argsTupleScheme getScheme() { + return new enabled_argsTupleScheme(); + } + } + + private static class enabled_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, enabled_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSid()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetSid()) { + oprot.writeI64(struct.sid); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, enabled_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } + } + } + + } + + public static class enabled_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("enabled_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0); + private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRUCT, (short)1); + private static final org.apache.thrift.protocol.TField STATE_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("state_error", org.apache.thrift.protocol.TType.STRUCT, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new enabled_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new enabled_resultTupleSchemeFactory()); + } + + public List success; // required + public Error error; // required + public StateNotFound state_error; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SUCCESS((short)0, "success"), + ERROR((short)1, "error"), + STATE_ERROR((short)2, "state_error"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 0: // SUCCESS + return SUCCESS; + case 1: // ERROR + return ERROR; + case 2: // STATE_ERROR + return STATE_ERROR; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "transition_id")))); + tmpMap.put(_Fields.ERROR, new org.apache.thrift.meta_data.FieldMetaData("error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.STATE_ERROR, new org.apache.thrift.meta_data.FieldMetaData("state_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(enabled_result.class, metaDataMap); + } + + public enabled_result() { + } + + public enabled_result( + List success, + Error error, + StateNotFound state_error) + { + this(); + this.success = success; + this.error = error; + this.state_error = state_error; + } + + /** + * Performs a deep copy on other. + */ + public enabled_result(enabled_result other) { + if (other.isSetSuccess()) { + List __this__success = new ArrayList(other.success.size()); + for (Long other_element : other.success) { + __this__success.add(other_element); + } + this.success = __this__success; + } + if (other.isSetError()) { + this.error = new Error(other.error); + } + if (other.isSetState_error()) { + this.state_error = new StateNotFound(other.state_error); + } + } + + public enabled_result deepCopy() { + return new enabled_result(this); + } + + @Override + public void clear() { + this.success = null; + this.error = null; + this.state_error = null; + } + + public int getSuccessSize() { + return (this.success == null) ? 0 : this.success.size(); + } + + public java.util.Iterator getSuccessIterator() { + return (this.success == null) ? null : this.success.iterator(); + } + + public void addToSuccess(long elem) { + if (this.success == null) { + this.success = new ArrayList(); + } + this.success.add(elem); + } + + public List getSuccess() { + return this.success; + } + + public enabled_result setSuccess(List success) { + this.success = success; + return this; + } + + public void unsetSuccess() { + this.success = null; + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return this.success != null; + } + + public void setSuccessIsSet(boolean value) { + if (!value) { + this.success = null; + } + } + + public Error getError() { + return this.error; + } + + public enabled_result setError(Error error) { + this.error = error; + return this; + } + + public void unsetError() { + this.error = null; + } + + /** Returns true if field error is set (has been assigned a value) and false otherwise */ + public boolean isSetError() { + return this.error != null; + } + + public void setErrorIsSet(boolean value) { + if (!value) { + this.error = null; + } + } + + public StateNotFound getState_error() { + return this.state_error; + } + + public enabled_result setState_error(StateNotFound state_error) { + this.state_error = state_error; + return this; + } + + public void unsetState_error() { + this.state_error = null; + } + + /** Returns true if field state_error is set (has been assigned a value) and false otherwise */ + public boolean isSetState_error() { + return this.state_error != null; + } + + public void setState_errorIsSet(boolean value) { + if (!value) { + this.state_error = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((List)value); + } + break; + + case ERROR: + if (value == null) { + unsetError(); + } else { + setError((Error)value); + } + break; + + case STATE_ERROR: + if (value == null) { + unsetState_error(); + } else { + setState_error((StateNotFound)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return getSuccess(); + + case ERROR: + return getError(); + + case STATE_ERROR: + return getState_error(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SUCCESS: + return isSetSuccess(); + case ERROR: + return isSetError(); + case STATE_ERROR: + return isSetState_error(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof enabled_result) + return this.equals((enabled_result)that); + return false; + } + + public boolean equals(enabled_result that) { + if (that == null) + return false; + + boolean this_present_success = true && this.isSetSuccess(); + boolean that_present_success = true && that.isSetSuccess(); + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (!this.success.equals(that.success)) + return false; + } + + boolean this_present_error = true && this.isSetError(); + boolean that_present_error = true && that.isSetError(); + if (this_present_error || that_present_error) { + if (!(this_present_error && that_present_error)) + return false; + if (!this.error.equals(that.error)) + return false; + } + + boolean this_present_state_error = true && this.isSetState_error(); + boolean that_present_state_error = true && that.isSetState_error(); + if (this_present_state_error || that_present_state_error) { + if (!(this_present_state_error && that_present_state_error)) + return false; + if (!this.state_error.equals(that.state_error)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_success = true && (isSetSuccess()); + list.add(present_success); + if (present_success) + list.add(success); + + boolean present_error = true && (isSetError()); + list.add(present_error); + if (present_error) + list.add(error); + + boolean present_state_error = true && (isSetState_error()); + list.add(present_state_error); + if (present_state_error) + list.add(state_error); + + return list.hashCode(); + } + + @Override + public int compareTo(enabled_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetError()).compareTo(other.isSetError()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetError()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error, other.error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetState_error()).compareTo(other.isSetState_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetState_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state_error, other.state_error); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("enabled_result("); + boolean first = true; + + sb.append("success:"); + if (this.success == null) { + sb.append("null"); + } else { + sb.append(this.success); + } + first = false; + if (!first) sb.append(", "); + sb.append("error:"); + if (this.error == null) { + sb.append("null"); + } else { + sb.append(this.error); + } + first = false; + if (!first) sb.append(", "); + sb.append("state_error:"); + if (this.state_error == null) { + sb.append("null"); + } else { + sb.append(this.state_error); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class enabled_resultStandardSchemeFactory implements SchemeFactory { + public enabled_resultStandardScheme getScheme() { + return new enabled_resultStandardScheme(); + } + } + + private static class enabled_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, enabled_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { + { + org.apache.thrift.protocol.TList _list34 = iprot.readListBegin(); + struct.success = new ArrayList(_list34.size); + long _elem35; + for (int _i36 = 0; _i36 < _list34.size; ++_i36) + { + _elem35 = iprot.readI64(); + struct.success.add(_elem35); + } + iprot.readListEnd(); + } + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 1: // ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // STATE_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, enabled_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.success != null) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, struct.success.size())); + for (long _iter37 : struct.success) + { + oprot.writeI64(_iter37); + } + oprot.writeListEnd(); + } + oprot.writeFieldEnd(); + } + if (struct.error != null) { + oprot.writeFieldBegin(ERROR_FIELD_DESC); + struct.error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.state_error != null) { + oprot.writeFieldBegin(STATE_ERROR_FIELD_DESC); + struct.state_error.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class enabled_resultTupleSchemeFactory implements SchemeFactory { + public enabled_resultTupleScheme getScheme() { + return new enabled_resultTupleScheme(); + } + } + + private static class enabled_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, enabled_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + if (struct.isSetError()) { + optionals.set(1); + } + if (struct.isSetState_error()) { + optionals.set(2); + } + oprot.writeBitSet(optionals, 3); + if (struct.isSetSuccess()) { + { + oprot.writeI32(struct.success.size()); + for (long _iter38 : struct.success) + { + oprot.writeI64(_iter38); + } + } + } + if (struct.isSetError()) { + struct.error.write(oprot); + } + if (struct.isSetState_error()) { + struct.state_error.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, enabled_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(3); + if (incoming.get(0)) { + { + org.apache.thrift.protocol.TList _list39 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32()); + struct.success = new ArrayList(_list39.size); + long _elem40; + for (int _i41 = 0; _i41 < _list39.size; ++_i41) + { + _elem40 = iprot.readI64(); + struct.success.add(_elem40); + } + } + struct.setSuccessIsSet(true); + } + if (incoming.get(1)) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } + if (incoming.get(2)) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } + } + } + + } + + public static class is_fireable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("is_fireable_args"); + + private static final org.apache.thrift.protocol.TField SID_FIELD_DESC = new org.apache.thrift.protocol.TField("sid", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField TID_FIELD_DESC = new org.apache.thrift.protocol.TField("tid", org.apache.thrift.protocol.TType.I64, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new is_fireable_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new is_fireable_argsTupleSchemeFactory()); + } + + public long sid; // required + public long tid; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SID((short)1, "sid"), + TID((short)2, "tid"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // SID + return SID; + case 2: // TID + return TID; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __SID_ISSET_ID = 0; + private static final int __TID_ISSET_ID = 1; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SID, new org.apache.thrift.meta_data.FieldMetaData("sid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id"))); + tmpMap.put(_Fields.TID, new org.apache.thrift.meta_data.FieldMetaData("tid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "transition_id"))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(is_fireable_args.class, metaDataMap); + } + + public is_fireable_args() { + } + + public is_fireable_args( + long sid, + long tid) + { + this(); + this.sid = sid; + setSidIsSet(true); + this.tid = tid; + setTidIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public is_fireable_args(is_fireable_args other) { + __isset_bitfield = other.__isset_bitfield; + this.sid = other.sid; + this.tid = other.tid; + } + + public is_fireable_args deepCopy() { + return new is_fireable_args(this); + } + + @Override + public void clear() { + setSidIsSet(false); + this.sid = 0; + setTidIsSet(false); + this.tid = 0; + } + + public long getSid() { + return this.sid; + } + + public is_fireable_args setSid(long sid) { + this.sid = sid; + setSidIsSet(true); + return this; + } + + public void unsetSid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SID_ISSET_ID); + } + + /** Returns true if field sid is set (has been assigned a value) and false otherwise */ + public boolean isSetSid() { + return EncodingUtils.testBit(__isset_bitfield, __SID_ISSET_ID); + } + + public void setSidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SID_ISSET_ID, value); + } + + public long getTid() { + return this.tid; + } + + public is_fireable_args setTid(long tid) { + this.tid = tid; + setTidIsSet(true); + return this; + } + + public void unsetTid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TID_ISSET_ID); + } + + /** Returns true if field tid is set (has been assigned a value) and false otherwise */ + public boolean isSetTid() { + return EncodingUtils.testBit(__isset_bitfield, __TID_ISSET_ID); + } + + public void setTidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TID_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SID: + if (value == null) { + unsetSid(); + } else { + setSid((Long)value); + } + break; + + case TID: + if (value == null) { + unsetTid(); + } else { + setTid((Long)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SID: + return Long.valueOf(getSid()); + + case TID: + return Long.valueOf(getTid()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SID: + return isSetSid(); + case TID: + return isSetTid(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof is_fireable_args) + return this.equals((is_fireable_args)that); + return false; + } + + public boolean equals(is_fireable_args that) { + if (that == null) + return false; + + boolean this_present_sid = true; + boolean that_present_sid = true; + if (this_present_sid || that_present_sid) { + if (!(this_present_sid && that_present_sid)) + return false; + if (this.sid != that.sid) + return false; + } + + boolean this_present_tid = true; + boolean that_present_tid = true; + if (this_present_tid || that_present_tid) { + if (!(this_present_tid && that_present_tid)) + return false; + if (this.tid != that.tid) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_sid = true; + list.add(present_sid); + if (present_sid) + list.add(sid); + + boolean present_tid = true; + list.add(present_tid); + if (present_tid) + list.add(tid); + + return list.hashCode(); + } + + @Override + public int compareTo(is_fireable_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSid()).compareTo(other.isSetSid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sid, other.sid); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetTid()).compareTo(other.isSetTid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tid, other.tid); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("is_fireable_args("); + boolean first = true; + + sb.append("sid:"); + sb.append(this.sid); + first = false; + if (!first) sb.append(", "); + sb.append("tid:"); + sb.append(this.tid); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class is_fireable_argsStandardSchemeFactory implements SchemeFactory { + public is_fireable_argsStandardScheme getScheme() { + return new is_fireable_argsStandardScheme(); + } + } + + private static class is_fireable_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, is_fireable_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // SID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // TID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.tid = iprot.readI64(); + struct.setTidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, is_fireable_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(SID_FIELD_DESC); + oprot.writeI64(struct.sid); + oprot.writeFieldEnd(); + oprot.writeFieldBegin(TID_FIELD_DESC); + oprot.writeI64(struct.tid); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class is_fireable_argsTupleSchemeFactory implements SchemeFactory { + public is_fireable_argsTupleScheme getScheme() { + return new is_fireable_argsTupleScheme(); + } + } + + private static class is_fireable_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, is_fireable_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSid()) { + optionals.set(0); + } + if (struct.isSetTid()) { + optionals.set(1); + } + oprot.writeBitSet(optionals, 2); + if (struct.isSetSid()) { + oprot.writeI64(struct.sid); + } + if (struct.isSetTid()) { + oprot.writeI64(struct.tid); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, is_fireable_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(2); + if (incoming.get(0)) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } + if (incoming.get(1)) { + struct.tid = iprot.readI64(); + struct.setTidIsSet(true); + } + } + } + + } + + public static class is_fireable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("is_fireable_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0); + private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRUCT, (short)1); + private static final org.apache.thrift.protocol.TField STATE_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("state_error", org.apache.thrift.protocol.TType.STRUCT, (short)2); + private static final org.apache.thrift.protocol.TField TRANSITION_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("transition_error", org.apache.thrift.protocol.TType.STRUCT, (short)3); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new is_fireable_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new is_fireable_resultTupleSchemeFactory()); + } + + public boolean success; // required + public Error error; // required + public StateNotFound state_error; // required + public TransitionNotFound transition_error; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SUCCESS((short)0, "success"), + ERROR((short)1, "error"), + STATE_ERROR((short)2, "state_error"), + TRANSITION_ERROR((short)3, "transition_error"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 0: // SUCCESS + return SUCCESS; + case 1: // ERROR + return ERROR; + case 2: // STATE_ERROR + return STATE_ERROR; + case 3: // TRANSITION_ERROR + return TRANSITION_ERROR; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __SUCCESS_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); + tmpMap.put(_Fields.ERROR, new org.apache.thrift.meta_data.FieldMetaData("error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.STATE_ERROR, new org.apache.thrift.meta_data.FieldMetaData("state_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.TRANSITION_ERROR, new org.apache.thrift.meta_data.FieldMetaData("transition_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(is_fireable_result.class, metaDataMap); + } + + public is_fireable_result() { + } + + public is_fireable_result( + boolean success, + Error error, + StateNotFound state_error, + TransitionNotFound transition_error) + { + this(); + this.success = success; + setSuccessIsSet(true); + this.error = error; + this.state_error = state_error; + this.transition_error = transition_error; + } + + /** + * Performs a deep copy on other. + */ + public is_fireable_result(is_fireable_result other) { + __isset_bitfield = other.__isset_bitfield; + this.success = other.success; + if (other.isSetError()) { + this.error = new Error(other.error); + } + if (other.isSetState_error()) { + this.state_error = new StateNotFound(other.state_error); + } + if (other.isSetTransition_error()) { + this.transition_error = new TransitionNotFound(other.transition_error); + } + } + + public is_fireable_result deepCopy() { + return new is_fireable_result(this); + } + + @Override + public void clear() { + setSuccessIsSet(false); + this.success = false; + this.error = null; + this.state_error = null; + this.transition_error = null; + } + + public boolean isSuccess() { + return this.success; + } + + public is_fireable_result setSuccess(boolean success) { + this.success = success; + setSuccessIsSet(true); + return this; + } + + public void unsetSuccess() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID); + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID); + } + + public void setSuccessIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value); + } + + public Error getError() { + return this.error; + } + + public is_fireable_result setError(Error error) { + this.error = error; + return this; + } + + public void unsetError() { + this.error = null; + } + + /** Returns true if field error is set (has been assigned a value) and false otherwise */ + public boolean isSetError() { + return this.error != null; + } + + public void setErrorIsSet(boolean value) { + if (!value) { + this.error = null; + } + } + + public StateNotFound getState_error() { + return this.state_error; + } + + public is_fireable_result setState_error(StateNotFound state_error) { + this.state_error = state_error; + return this; + } + + public void unsetState_error() { + this.state_error = null; + } + + /** Returns true if field state_error is set (has been assigned a value) and false otherwise */ + public boolean isSetState_error() { + return this.state_error != null; + } + + public void setState_errorIsSet(boolean value) { + if (!value) { + this.state_error = null; + } + } + + public TransitionNotFound getTransition_error() { + return this.transition_error; + } + + public is_fireable_result setTransition_error(TransitionNotFound transition_error) { + this.transition_error = transition_error; + return this; + } + + public void unsetTransition_error() { + this.transition_error = null; + } + + /** Returns true if field transition_error is set (has been assigned a value) and false otherwise */ + public boolean isSetTransition_error() { + return this.transition_error != null; + } + + public void setTransition_errorIsSet(boolean value) { + if (!value) { + this.transition_error = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((Boolean)value); + } + break; + + case ERROR: + if (value == null) { + unsetError(); + } else { + setError((Error)value); + } + break; + + case STATE_ERROR: + if (value == null) { + unsetState_error(); + } else { + setState_error((StateNotFound)value); + } + break; + + case TRANSITION_ERROR: + if (value == null) { + unsetTransition_error(); + } else { + setTransition_error((TransitionNotFound)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return Boolean.valueOf(isSuccess()); + + case ERROR: + return getError(); + + case STATE_ERROR: + return getState_error(); + + case TRANSITION_ERROR: + return getTransition_error(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SUCCESS: + return isSetSuccess(); + case ERROR: + return isSetError(); + case STATE_ERROR: + return isSetState_error(); + case TRANSITION_ERROR: + return isSetTransition_error(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof is_fireable_result) + return this.equals((is_fireable_result)that); + return false; + } + + public boolean equals(is_fireable_result that) { + if (that == null) + return false; + + boolean this_present_success = true; + boolean that_present_success = true; + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (this.success != that.success) + return false; + } + + boolean this_present_error = true && this.isSetError(); + boolean that_present_error = true && that.isSetError(); + if (this_present_error || that_present_error) { + if (!(this_present_error && that_present_error)) + return false; + if (!this.error.equals(that.error)) + return false; + } + + boolean this_present_state_error = true && this.isSetState_error(); + boolean that_present_state_error = true && that.isSetState_error(); + if (this_present_state_error || that_present_state_error) { + if (!(this_present_state_error && that_present_state_error)) + return false; + if (!this.state_error.equals(that.state_error)) + return false; + } + + boolean this_present_transition_error = true && this.isSetTransition_error(); + boolean that_present_transition_error = true && that.isSetTransition_error(); + if (this_present_transition_error || that_present_transition_error) { + if (!(this_present_transition_error && that_present_transition_error)) + return false; + if (!this.transition_error.equals(that.transition_error)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_success = true; + list.add(present_success); + if (present_success) + list.add(success); + + boolean present_error = true && (isSetError()); + list.add(present_error); + if (present_error) + list.add(error); + + boolean present_state_error = true && (isSetState_error()); + list.add(present_state_error); + if (present_state_error) + list.add(state_error); + + boolean present_transition_error = true && (isSetTransition_error()); + list.add(present_transition_error); + if (present_transition_error) + list.add(transition_error); + + return list.hashCode(); + } + + @Override + public int compareTo(is_fireable_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetError()).compareTo(other.isSetError()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetError()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error, other.error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetState_error()).compareTo(other.isSetState_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetState_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state_error, other.state_error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetTransition_error()).compareTo(other.isSetTransition_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTransition_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transition_error, other.transition_error); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("is_fireable_result("); + boolean first = true; + + sb.append("success:"); + sb.append(this.success); + first = false; + if (!first) sb.append(", "); + sb.append("error:"); + if (this.error == null) { + sb.append("null"); + } else { + sb.append(this.error); + } + first = false; + if (!first) sb.append(", "); + sb.append("state_error:"); + if (this.state_error == null) { + sb.append("null"); + } else { + sb.append(this.state_error); + } + first = false; + if (!first) sb.append(", "); + sb.append("transition_error:"); + if (this.transition_error == null) { + sb.append("null"); + } else { + sb.append(this.transition_error); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class is_fireable_resultStandardSchemeFactory implements SchemeFactory { + public is_fireable_resultStandardScheme getScheme() { + return new is_fireable_resultStandardScheme(); + } + } + + private static class is_fireable_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, is_fireable_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) { + struct.success = iprot.readBool(); + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 1: // ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // STATE_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // TRANSITION_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.transition_error = new TransitionNotFound(); + struct.transition_error.read(iprot); + struct.setTransition_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, is_fireable_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.isSetSuccess()) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + oprot.writeBool(struct.success); + oprot.writeFieldEnd(); + } + if (struct.error != null) { + oprot.writeFieldBegin(ERROR_FIELD_DESC); + struct.error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.state_error != null) { + oprot.writeFieldBegin(STATE_ERROR_FIELD_DESC); + struct.state_error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.transition_error != null) { + oprot.writeFieldBegin(TRANSITION_ERROR_FIELD_DESC); + struct.transition_error.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class is_fireable_resultTupleSchemeFactory implements SchemeFactory { + public is_fireable_resultTupleScheme getScheme() { + return new is_fireable_resultTupleScheme(); + } + } + + private static class is_fireable_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, is_fireable_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + if (struct.isSetError()) { + optionals.set(1); + } + if (struct.isSetState_error()) { + optionals.set(2); + } + if (struct.isSetTransition_error()) { + optionals.set(3); + } + oprot.writeBitSet(optionals, 4); + if (struct.isSetSuccess()) { + oprot.writeBool(struct.success); + } + if (struct.isSetError()) { + struct.error.write(oprot); + } + if (struct.isSetState_error()) { + struct.state_error.write(oprot); + } + if (struct.isSetTransition_error()) { + struct.transition_error.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, is_fireable_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(4); + if (incoming.get(0)) { + struct.success = iprot.readBool(); + struct.setSuccessIsSet(true); + } + if (incoming.get(1)) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } + if (incoming.get(2)) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } + if (incoming.get(3)) { + struct.transition_error = new TransitionNotFound(); + struct.transition_error.read(iprot); + struct.setTransition_errorIsSet(true); + } + } + } + + } + + public static class fireable_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("fireable_args"); + + private static final org.apache.thrift.protocol.TField SID_FIELD_DESC = new org.apache.thrift.protocol.TField("sid", org.apache.thrift.protocol.TType.I64, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new fireable_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new fireable_argsTupleSchemeFactory()); + } + + public long sid; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SID((short)1, "sid"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // SID + return SID; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __SID_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SID, new org.apache.thrift.meta_data.FieldMetaData("sid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id"))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(fireable_args.class, metaDataMap); + } + + public fireable_args() { + } + + public fireable_args( + long sid) + { + this(); + this.sid = sid; + setSidIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public fireable_args(fireable_args other) { + __isset_bitfield = other.__isset_bitfield; + this.sid = other.sid; + } + + public fireable_args deepCopy() { + return new fireable_args(this); + } + + @Override + public void clear() { + setSidIsSet(false); + this.sid = 0; + } + + public long getSid() { + return this.sid; + } + + public fireable_args setSid(long sid) { + this.sid = sid; + setSidIsSet(true); + return this; + } + + public void unsetSid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SID_ISSET_ID); + } + + /** Returns true if field sid is set (has been assigned a value) and false otherwise */ + public boolean isSetSid() { + return EncodingUtils.testBit(__isset_bitfield, __SID_ISSET_ID); + } + + public void setSidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SID_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SID: + if (value == null) { + unsetSid(); + } else { + setSid((Long)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SID: + return Long.valueOf(getSid()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SID: + return isSetSid(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof fireable_args) + return this.equals((fireable_args)that); + return false; + } + + public boolean equals(fireable_args that) { + if (that == null) + return false; + + boolean this_present_sid = true; + boolean that_present_sid = true; + if (this_present_sid || that_present_sid) { + if (!(this_present_sid && that_present_sid)) + return false; + if (this.sid != that.sid) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_sid = true; + list.add(present_sid); + if (present_sid) + list.add(sid); + + return list.hashCode(); + } + + @Override + public int compareTo(fireable_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSid()).compareTo(other.isSetSid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sid, other.sid); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("fireable_args("); + boolean first = true; + + sb.append("sid:"); + sb.append(this.sid); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class fireable_argsStandardSchemeFactory implements SchemeFactory { + public fireable_argsStandardScheme getScheme() { + return new fireable_argsStandardScheme(); + } + } + + private static class fireable_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, fireable_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // SID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, fireable_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(SID_FIELD_DESC); + oprot.writeI64(struct.sid); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class fireable_argsTupleSchemeFactory implements SchemeFactory { + public fireable_argsTupleScheme getScheme() { + return new fireable_argsTupleScheme(); + } + } + + private static class fireable_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, fireable_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSid()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetSid()) { + oprot.writeI64(struct.sid); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, fireable_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } + } + } + + } + + public static class fireable_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("fireable_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0); + private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRUCT, (short)1); + private static final org.apache.thrift.protocol.TField S_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("s_error", org.apache.thrift.protocol.TType.STRUCT, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new fireable_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new fireable_resultTupleSchemeFactory()); + } + + public List success; // required + public Error error; // required + public StateNotFound s_error; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SUCCESS((short)0, "success"), + ERROR((short)1, "error"), + S_ERROR((short)2, "s_error"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 0: // SUCCESS + return SUCCESS; + case 1: // ERROR + return ERROR; + case 2: // S_ERROR + return S_ERROR; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "transition_id")))); + tmpMap.put(_Fields.ERROR, new org.apache.thrift.meta_data.FieldMetaData("error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.S_ERROR, new org.apache.thrift.meta_data.FieldMetaData("s_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(fireable_result.class, metaDataMap); + } + + public fireable_result() { + } + + public fireable_result( + List success, + Error error, + StateNotFound s_error) + { + this(); + this.success = success; + this.error = error; + this.s_error = s_error; + } + + /** + * Performs a deep copy on other. + */ + public fireable_result(fireable_result other) { + if (other.isSetSuccess()) { + List __this__success = new ArrayList(other.success.size()); + for (Long other_element : other.success) { + __this__success.add(other_element); + } + this.success = __this__success; + } + if (other.isSetError()) { + this.error = new Error(other.error); + } + if (other.isSetS_error()) { + this.s_error = new StateNotFound(other.s_error); + } + } + + public fireable_result deepCopy() { + return new fireable_result(this); + } + + @Override + public void clear() { + this.success = null; + this.error = null; + this.s_error = null; + } + + public int getSuccessSize() { + return (this.success == null) ? 0 : this.success.size(); + } + + public java.util.Iterator getSuccessIterator() { + return (this.success == null) ? null : this.success.iterator(); + } + + public void addToSuccess(long elem) { + if (this.success == null) { + this.success = new ArrayList(); + } + this.success.add(elem); + } + + public List getSuccess() { + return this.success; + } + + public fireable_result setSuccess(List success) { + this.success = success; + return this; + } + + public void unsetSuccess() { + this.success = null; + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return this.success != null; + } + + public void setSuccessIsSet(boolean value) { + if (!value) { + this.success = null; + } + } + + public Error getError() { + return this.error; + } + + public fireable_result setError(Error error) { + this.error = error; + return this; + } + + public void unsetError() { + this.error = null; + } + + /** Returns true if field error is set (has been assigned a value) and false otherwise */ + public boolean isSetError() { + return this.error != null; + } + + public void setErrorIsSet(boolean value) { + if (!value) { + this.error = null; + } + } + + public StateNotFound getS_error() { + return this.s_error; + } + + public fireable_result setS_error(StateNotFound s_error) { + this.s_error = s_error; + return this; + } + + public void unsetS_error() { + this.s_error = null; + } + + /** Returns true if field s_error is set (has been assigned a value) and false otherwise */ + public boolean isSetS_error() { + return this.s_error != null; + } + + public void setS_errorIsSet(boolean value) { + if (!value) { + this.s_error = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((List)value); + } + break; + + case ERROR: + if (value == null) { + unsetError(); + } else { + setError((Error)value); + } + break; + + case S_ERROR: + if (value == null) { + unsetS_error(); + } else { + setS_error((StateNotFound)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return getSuccess(); + + case ERROR: + return getError(); + + case S_ERROR: + return getS_error(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SUCCESS: + return isSetSuccess(); + case ERROR: + return isSetError(); + case S_ERROR: + return isSetS_error(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof fireable_result) + return this.equals((fireable_result)that); + return false; + } + + public boolean equals(fireable_result that) { + if (that == null) + return false; + + boolean this_present_success = true && this.isSetSuccess(); + boolean that_present_success = true && that.isSetSuccess(); + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (!this.success.equals(that.success)) + return false; + } + + boolean this_present_error = true && this.isSetError(); + boolean that_present_error = true && that.isSetError(); + if (this_present_error || that_present_error) { + if (!(this_present_error && that_present_error)) + return false; + if (!this.error.equals(that.error)) + return false; + } + + boolean this_present_s_error = true && this.isSetS_error(); + boolean that_present_s_error = true && that.isSetS_error(); + if (this_present_s_error || that_present_s_error) { + if (!(this_present_s_error && that_present_s_error)) + return false; + if (!this.s_error.equals(that.s_error)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_success = true && (isSetSuccess()); + list.add(present_success); + if (present_success) + list.add(success); + + boolean present_error = true && (isSetError()); + list.add(present_error); + if (present_error) + list.add(error); + + boolean present_s_error = true && (isSetS_error()); + list.add(present_s_error); + if (present_s_error) + list.add(s_error); + + return list.hashCode(); + } + + @Override + public int compareTo(fireable_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetError()).compareTo(other.isSetError()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetError()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error, other.error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetS_error()).compareTo(other.isSetS_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetS_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.s_error, other.s_error); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("fireable_result("); + boolean first = true; + + sb.append("success:"); + if (this.success == null) { + sb.append("null"); + } else { + sb.append(this.success); + } + first = false; + if (!first) sb.append(", "); + sb.append("error:"); + if (this.error == null) { + sb.append("null"); + } else { + sb.append(this.error); + } + first = false; + if (!first) sb.append(", "); + sb.append("s_error:"); + if (this.s_error == null) { + sb.append("null"); + } else { + sb.append(this.s_error); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class fireable_resultStandardSchemeFactory implements SchemeFactory { + public fireable_resultStandardScheme getScheme() { + return new fireable_resultStandardScheme(); + } + } + + private static class fireable_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, fireable_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { + { + org.apache.thrift.protocol.TList _list42 = iprot.readListBegin(); + struct.success = new ArrayList(_list42.size); + long _elem43; + for (int _i44 = 0; _i44 < _list42.size; ++_i44) + { + _elem43 = iprot.readI64(); + struct.success.add(_elem43); + } + iprot.readListEnd(); + } + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 1: // ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // S_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.s_error = new StateNotFound(); + struct.s_error.read(iprot); + struct.setS_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, fireable_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.success != null) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, struct.success.size())); + for (long _iter45 : struct.success) + { + oprot.writeI64(_iter45); + } + oprot.writeListEnd(); + } + oprot.writeFieldEnd(); + } + if (struct.error != null) { + oprot.writeFieldBegin(ERROR_FIELD_DESC); + struct.error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.s_error != null) { + oprot.writeFieldBegin(S_ERROR_FIELD_DESC); + struct.s_error.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class fireable_resultTupleSchemeFactory implements SchemeFactory { + public fireable_resultTupleScheme getScheme() { + return new fireable_resultTupleScheme(); + } + } + + private static class fireable_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, fireable_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + if (struct.isSetError()) { + optionals.set(1); + } + if (struct.isSetS_error()) { + optionals.set(2); + } + oprot.writeBitSet(optionals, 3); + if (struct.isSetSuccess()) { + { + oprot.writeI32(struct.success.size()); + for (long _iter46 : struct.success) + { + oprot.writeI64(_iter46); + } + } + } + if (struct.isSetError()) { + struct.error.write(oprot); + } + if (struct.isSetS_error()) { + struct.s_error.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, fireable_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(3); + if (incoming.get(0)) { + { + org.apache.thrift.protocol.TList _list47 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32()); + struct.success = new ArrayList(_list47.size); + long _elem48; + for (int _i49 = 0; _i49 < _list47.size; ++_i49) + { + _elem48 = iprot.readI64(); + struct.success.add(_elem48); + } + } + struct.setSuccessIsSet(true); + } + if (incoming.get(1)) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } + if (incoming.get(2)) { + struct.s_error = new StateNotFound(); + struct.s_error.read(iprot); + struct.setS_errorIsSet(true); + } + } + } + + } + + public static class fire_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("fire_args"); + + private static final org.apache.thrift.protocol.TField SID_FIELD_DESC = new org.apache.thrift.protocol.TField("sid", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField TID_FIELD_DESC = new org.apache.thrift.protocol.TField("tid", org.apache.thrift.protocol.TType.I64, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new fire_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new fire_argsTupleSchemeFactory()); + } + + public long sid; // required + public long tid; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SID((short)1, "sid"), + TID((short)2, "tid"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // SID + return SID; + case 2: // TID + return TID; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __SID_ISSET_ID = 0; + private static final int __TID_ISSET_ID = 1; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SID, new org.apache.thrift.meta_data.FieldMetaData("sid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id"))); + tmpMap.put(_Fields.TID, new org.apache.thrift.meta_data.FieldMetaData("tid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "transition_id"))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(fire_args.class, metaDataMap); + } + + public fire_args() { + } + + public fire_args( + long sid, + long tid) + { + this(); + this.sid = sid; + setSidIsSet(true); + this.tid = tid; + setTidIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public fire_args(fire_args other) { + __isset_bitfield = other.__isset_bitfield; + this.sid = other.sid; + this.tid = other.tid; + } + + public fire_args deepCopy() { + return new fire_args(this); + } + + @Override + public void clear() { + setSidIsSet(false); + this.sid = 0; + setTidIsSet(false); + this.tid = 0; + } + + public long getSid() { + return this.sid; + } + + public fire_args setSid(long sid) { + this.sid = sid; + setSidIsSet(true); + return this; + } + + public void unsetSid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SID_ISSET_ID); + } + + /** Returns true if field sid is set (has been assigned a value) and false otherwise */ + public boolean isSetSid() { + return EncodingUtils.testBit(__isset_bitfield, __SID_ISSET_ID); + } + + public void setSidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SID_ISSET_ID, value); + } + + public long getTid() { + return this.tid; + } + + public fire_args setTid(long tid) { + this.tid = tid; + setTidIsSet(true); + return this; + } + + public void unsetTid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TID_ISSET_ID); + } + + /** Returns true if field tid is set (has been assigned a value) and false otherwise */ + public boolean isSetTid() { + return EncodingUtils.testBit(__isset_bitfield, __TID_ISSET_ID); + } + + public void setTidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TID_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SID: + if (value == null) { + unsetSid(); + } else { + setSid((Long)value); + } + break; + + case TID: + if (value == null) { + unsetTid(); + } else { + setTid((Long)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SID: + return Long.valueOf(getSid()); + + case TID: + return Long.valueOf(getTid()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SID: + return isSetSid(); + case TID: + return isSetTid(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof fire_args) + return this.equals((fire_args)that); + return false; + } + + public boolean equals(fire_args that) { + if (that == null) + return false; + + boolean this_present_sid = true; + boolean that_present_sid = true; + if (this_present_sid || that_present_sid) { + if (!(this_present_sid && that_present_sid)) + return false; + if (this.sid != that.sid) + return false; + } + + boolean this_present_tid = true; + boolean that_present_tid = true; + if (this_present_tid || that_present_tid) { + if (!(this_present_tid && that_present_tid)) + return false; + if (this.tid != that.tid) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_sid = true; + list.add(present_sid); + if (present_sid) + list.add(sid); + + boolean present_tid = true; + list.add(present_tid); + if (present_tid) + list.add(tid); + + return list.hashCode(); + } + + @Override + public int compareTo(fire_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSid()).compareTo(other.isSetSid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sid, other.sid); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetTid()).compareTo(other.isSetTid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tid, other.tid); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("fire_args("); + boolean first = true; + + sb.append("sid:"); + sb.append(this.sid); + first = false; + if (!first) sb.append(", "); + sb.append("tid:"); + sb.append(this.tid); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class fire_argsStandardSchemeFactory implements SchemeFactory { + public fire_argsStandardScheme getScheme() { + return new fire_argsStandardScheme(); + } + } + + private static class fire_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, fire_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // SID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // TID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.tid = iprot.readI64(); + struct.setTidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, fire_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(SID_FIELD_DESC); + oprot.writeI64(struct.sid); + oprot.writeFieldEnd(); + oprot.writeFieldBegin(TID_FIELD_DESC); + oprot.writeI64(struct.tid); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class fire_argsTupleSchemeFactory implements SchemeFactory { + public fire_argsTupleScheme getScheme() { + return new fire_argsTupleScheme(); + } + } + + private static class fire_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, fire_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSid()) { + optionals.set(0); + } + if (struct.isSetTid()) { + optionals.set(1); + } + oprot.writeBitSet(optionals, 2); + if (struct.isSetSid()) { + oprot.writeI64(struct.sid); + } + if (struct.isSetTid()) { + oprot.writeI64(struct.tid); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, fire_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(2); + if (incoming.get(0)) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } + if (incoming.get(1)) { + struct.tid = iprot.readI64(); + struct.setTidIsSet(true); + } + } + } + + } + + public static class fire_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("fire_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); + private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRUCT, (short)1); + private static final org.apache.thrift.protocol.TField STATE_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("state_error", org.apache.thrift.protocol.TType.STRUCT, (short)2); + private static final org.apache.thrift.protocol.TField TRANSITION_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("transition_error", org.apache.thrift.protocol.TType.STRUCT, (short)3); + private static final org.apache.thrift.protocol.TField FIREABLE_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("fireable_error", org.apache.thrift.protocol.TType.STRUCT, (short)4); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new fire_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new fire_resultTupleSchemeFactory()); + } + + public TTSState success; // required + public Error error; // required + public StateNotFound state_error; // required + public TransitionNotFound transition_error; // required + public NotFireable fireable_error; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SUCCESS((short)0, "success"), + ERROR((short)1, "error"), + STATE_ERROR((short)2, "state_error"), + TRANSITION_ERROR((short)3, "transition_error"), + FIREABLE_ERROR((short)4, "fireable_error"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 0: // SUCCESS + return SUCCESS; + case 1: // ERROR + return ERROR; + case 2: // STATE_ERROR + return STATE_ERROR; + case 3: // TRANSITION_ERROR + return TRANSITION_ERROR; + case 4: // FIREABLE_ERROR + return FIREABLE_ERROR; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TTSState.class))); + tmpMap.put(_Fields.ERROR, new org.apache.thrift.meta_data.FieldMetaData("error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.STATE_ERROR, new org.apache.thrift.meta_data.FieldMetaData("state_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.TRANSITION_ERROR, new org.apache.thrift.meta_data.FieldMetaData("transition_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.FIREABLE_ERROR, new org.apache.thrift.meta_data.FieldMetaData("fireable_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(fire_result.class, metaDataMap); + } + + public fire_result() { + } + + public fire_result( + TTSState success, + Error error, + StateNotFound state_error, + TransitionNotFound transition_error, + NotFireable fireable_error) + { + this(); + this.success = success; + this.error = error; + this.state_error = state_error; + this.transition_error = transition_error; + this.fireable_error = fireable_error; + } + + /** + * Performs a deep copy on other. + */ + public fire_result(fire_result other) { + if (other.isSetSuccess()) { + this.success = new TTSState(other.success); + } + if (other.isSetError()) { + this.error = new Error(other.error); + } + if (other.isSetState_error()) { + this.state_error = new StateNotFound(other.state_error); + } + if (other.isSetTransition_error()) { + this.transition_error = new TransitionNotFound(other.transition_error); + } + if (other.isSetFireable_error()) { + this.fireable_error = new NotFireable(other.fireable_error); + } + } + + public fire_result deepCopy() { + return new fire_result(this); + } + + @Override + public void clear() { + this.success = null; + this.error = null; + this.state_error = null; + this.transition_error = null; + this.fireable_error = null; + } + + public TTSState getSuccess() { + return this.success; + } + + public fire_result setSuccess(TTSState success) { + this.success = success; + return this; + } + + public void unsetSuccess() { + this.success = null; + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return this.success != null; + } + + public void setSuccessIsSet(boolean value) { + if (!value) { + this.success = null; + } + } + + public Error getError() { + return this.error; + } + + public fire_result setError(Error error) { + this.error = error; + return this; + } + + public void unsetError() { + this.error = null; + } + + /** Returns true if field error is set (has been assigned a value) and false otherwise */ + public boolean isSetError() { + return this.error != null; + } + + public void setErrorIsSet(boolean value) { + if (!value) { + this.error = null; + } + } + + public StateNotFound getState_error() { + return this.state_error; + } + + public fire_result setState_error(StateNotFound state_error) { + this.state_error = state_error; + return this; + } + + public void unsetState_error() { + this.state_error = null; + } + + /** Returns true if field state_error is set (has been assigned a value) and false otherwise */ + public boolean isSetState_error() { + return this.state_error != null; + } + + public void setState_errorIsSet(boolean value) { + if (!value) { + this.state_error = null; + } + } + + public TransitionNotFound getTransition_error() { + return this.transition_error; + } + + public fire_result setTransition_error(TransitionNotFound transition_error) { + this.transition_error = transition_error; + return this; + } + + public void unsetTransition_error() { + this.transition_error = null; + } + + /** Returns true if field transition_error is set (has been assigned a value) and false otherwise */ + public boolean isSetTransition_error() { + return this.transition_error != null; + } + + public void setTransition_errorIsSet(boolean value) { + if (!value) { + this.transition_error = null; + } + } + + public NotFireable getFireable_error() { + return this.fireable_error; + } + + public fire_result setFireable_error(NotFireable fireable_error) { + this.fireable_error = fireable_error; + return this; + } + + public void unsetFireable_error() { + this.fireable_error = null; + } + + /** Returns true if field fireable_error is set (has been assigned a value) and false otherwise */ + public boolean isSetFireable_error() { + return this.fireable_error != null; + } + + public void setFireable_errorIsSet(boolean value) { + if (!value) { + this.fireable_error = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((TTSState)value); + } + break; + + case ERROR: + if (value == null) { + unsetError(); + } else { + setError((Error)value); + } + break; + + case STATE_ERROR: + if (value == null) { + unsetState_error(); + } else { + setState_error((StateNotFound)value); + } + break; + + case TRANSITION_ERROR: + if (value == null) { + unsetTransition_error(); + } else { + setTransition_error((TransitionNotFound)value); + } + break; + + case FIREABLE_ERROR: + if (value == null) { + unsetFireable_error(); + } else { + setFireable_error((NotFireable)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return getSuccess(); + + case ERROR: + return getError(); + + case STATE_ERROR: + return getState_error(); + + case TRANSITION_ERROR: + return getTransition_error(); + + case FIREABLE_ERROR: + return getFireable_error(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SUCCESS: + return isSetSuccess(); + case ERROR: + return isSetError(); + case STATE_ERROR: + return isSetState_error(); + case TRANSITION_ERROR: + return isSetTransition_error(); + case FIREABLE_ERROR: + return isSetFireable_error(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof fire_result) + return this.equals((fire_result)that); + return false; + } + + public boolean equals(fire_result that) { + if (that == null) + return false; + + boolean this_present_success = true && this.isSetSuccess(); + boolean that_present_success = true && that.isSetSuccess(); + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (!this.success.equals(that.success)) + return false; + } + + boolean this_present_error = true && this.isSetError(); + boolean that_present_error = true && that.isSetError(); + if (this_present_error || that_present_error) { + if (!(this_present_error && that_present_error)) + return false; + if (!this.error.equals(that.error)) + return false; + } + + boolean this_present_state_error = true && this.isSetState_error(); + boolean that_present_state_error = true && that.isSetState_error(); + if (this_present_state_error || that_present_state_error) { + if (!(this_present_state_error && that_present_state_error)) + return false; + if (!this.state_error.equals(that.state_error)) + return false; + } + + boolean this_present_transition_error = true && this.isSetTransition_error(); + boolean that_present_transition_error = true && that.isSetTransition_error(); + if (this_present_transition_error || that_present_transition_error) { + if (!(this_present_transition_error && that_present_transition_error)) + return false; + if (!this.transition_error.equals(that.transition_error)) + return false; + } + + boolean this_present_fireable_error = true && this.isSetFireable_error(); + boolean that_present_fireable_error = true && that.isSetFireable_error(); + if (this_present_fireable_error || that_present_fireable_error) { + if (!(this_present_fireable_error && that_present_fireable_error)) + return false; + if (!this.fireable_error.equals(that.fireable_error)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_success = true && (isSetSuccess()); + list.add(present_success); + if (present_success) + list.add(success); + + boolean present_error = true && (isSetError()); + list.add(present_error); + if (present_error) + list.add(error); + + boolean present_state_error = true && (isSetState_error()); + list.add(present_state_error); + if (present_state_error) + list.add(state_error); + + boolean present_transition_error = true && (isSetTransition_error()); + list.add(present_transition_error); + if (present_transition_error) + list.add(transition_error); + + boolean present_fireable_error = true && (isSetFireable_error()); + list.add(present_fireable_error); + if (present_fireable_error) + list.add(fireable_error); + + return list.hashCode(); + } + + @Override + public int compareTo(fire_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetError()).compareTo(other.isSetError()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetError()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error, other.error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetState_error()).compareTo(other.isSetState_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetState_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state_error, other.state_error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetTransition_error()).compareTo(other.isSetTransition_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTransition_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transition_error, other.transition_error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetFireable_error()).compareTo(other.isSetFireable_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetFireable_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fireable_error, other.fireable_error); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("fire_result("); + boolean first = true; + + sb.append("success:"); + if (this.success == null) { + sb.append("null"); + } else { + sb.append(this.success); + } + first = false; + if (!first) sb.append(", "); + sb.append("error:"); + if (this.error == null) { + sb.append("null"); + } else { + sb.append(this.error); + } + first = false; + if (!first) sb.append(", "); + sb.append("state_error:"); + if (this.state_error == null) { + sb.append("null"); + } else { + sb.append(this.state_error); + } + first = false; + if (!first) sb.append(", "); + sb.append("transition_error:"); + if (this.transition_error == null) { + sb.append("null"); + } else { + sb.append(this.transition_error); + } + first = false; + if (!first) sb.append(", "); + sb.append("fireable_error:"); + if (this.fireable_error == null) { + sb.append("null"); + } else { + sb.append(this.fireable_error); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (success != null) { + success.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class fire_resultStandardSchemeFactory implements SchemeFactory { + public fire_resultStandardScheme getScheme() { + return new fire_resultStandardScheme(); + } + } + + private static class fire_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, fire_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.success = new TTSState(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 1: // ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // STATE_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // TRANSITION_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.transition_error = new TransitionNotFound(); + struct.transition_error.read(iprot); + struct.setTransition_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 4: // FIREABLE_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.fireable_error = new NotFireable(); + struct.fireable_error.read(iprot); + struct.setFireable_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, fire_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.success != null) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + struct.success.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.error != null) { + oprot.writeFieldBegin(ERROR_FIELD_DESC); + struct.error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.state_error != null) { + oprot.writeFieldBegin(STATE_ERROR_FIELD_DESC); + struct.state_error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.transition_error != null) { + oprot.writeFieldBegin(TRANSITION_ERROR_FIELD_DESC); + struct.transition_error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.fireable_error != null) { + oprot.writeFieldBegin(FIREABLE_ERROR_FIELD_DESC); + struct.fireable_error.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class fire_resultTupleSchemeFactory implements SchemeFactory { + public fire_resultTupleScheme getScheme() { + return new fire_resultTupleScheme(); + } + } + + private static class fire_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, fire_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + if (struct.isSetError()) { + optionals.set(1); + } + if (struct.isSetState_error()) { + optionals.set(2); + } + if (struct.isSetTransition_error()) { + optionals.set(3); + } + if (struct.isSetFireable_error()) { + optionals.set(4); + } + oprot.writeBitSet(optionals, 5); + if (struct.isSetSuccess()) { + struct.success.write(oprot); + } + if (struct.isSetError()) { + struct.error.write(oprot); + } + if (struct.isSetState_error()) { + struct.state_error.write(oprot); + } + if (struct.isSetTransition_error()) { + struct.transition_error.write(oprot); + } + if (struct.isSetFireable_error()) { + struct.fireable_error.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, fire_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(5); + if (incoming.get(0)) { + struct.success = new TTSState(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } + if (incoming.get(1)) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } + if (incoming.get(2)) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } + if (incoming.get(3)) { + struct.transition_error = new TransitionNotFound(); + struct.transition_error.read(iprot); + struct.setTransition_errorIsSet(true); + } + if (incoming.get(4)) { + struct.fireable_error = new NotFireable(); + struct.fireable_error.read(iprot); + struct.setFireable_errorIsSet(true); + } + } + } + + } + + public static class can_advance_time_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("can_advance_time_args"); + + private static final org.apache.thrift.protocol.TField SID_FIELD_DESC = new org.apache.thrift.protocol.TField("sid", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField DELAY_FIELD_DESC = new org.apache.thrift.protocol.TField("delay", org.apache.thrift.protocol.TType.STRUCT, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new can_advance_time_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new can_advance_time_argsTupleSchemeFactory()); + } + + public long sid; // required + public Clock delay; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SID((short)1, "sid"), + DELAY((short)2, "delay"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // SID + return SID; + case 2: // DELAY + return DELAY; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __SID_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SID, new org.apache.thrift.meta_data.FieldMetaData("sid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id"))); + tmpMap.put(_Fields.DELAY, new org.apache.thrift.meta_data.FieldMetaData("delay", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Clock.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(can_advance_time_args.class, metaDataMap); + } + + public can_advance_time_args() { + } + + public can_advance_time_args( + long sid, + Clock delay) + { + this(); + this.sid = sid; + setSidIsSet(true); + this.delay = delay; + } + + /** + * Performs a deep copy on other. + */ + public can_advance_time_args(can_advance_time_args other) { + __isset_bitfield = other.__isset_bitfield; + this.sid = other.sid; + if (other.isSetDelay()) { + this.delay = new Clock(other.delay); + } + } + + public can_advance_time_args deepCopy() { + return new can_advance_time_args(this); + } + + @Override + public void clear() { + setSidIsSet(false); + this.sid = 0; + this.delay = null; + } + + public long getSid() { + return this.sid; + } + + public can_advance_time_args setSid(long sid) { + this.sid = sid; + setSidIsSet(true); + return this; + } + + public void unsetSid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SID_ISSET_ID); + } + + /** Returns true if field sid is set (has been assigned a value) and false otherwise */ + public boolean isSetSid() { + return EncodingUtils.testBit(__isset_bitfield, __SID_ISSET_ID); + } + + public void setSidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SID_ISSET_ID, value); + } + + public Clock getDelay() { + return this.delay; + } + + public can_advance_time_args setDelay(Clock delay) { + this.delay = delay; + return this; + } + + public void unsetDelay() { + this.delay = null; + } + + /** Returns true if field delay is set (has been assigned a value) and false otherwise */ + public boolean isSetDelay() { + return this.delay != null; + } + + public void setDelayIsSet(boolean value) { + if (!value) { + this.delay = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SID: + if (value == null) { + unsetSid(); + } else { + setSid((Long)value); + } + break; + + case DELAY: + if (value == null) { + unsetDelay(); + } else { + setDelay((Clock)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SID: + return Long.valueOf(getSid()); + + case DELAY: + return getDelay(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SID: + return isSetSid(); + case DELAY: + return isSetDelay(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof can_advance_time_args) + return this.equals((can_advance_time_args)that); + return false; + } + + public boolean equals(can_advance_time_args that) { + if (that == null) + return false; + + boolean this_present_sid = true; + boolean that_present_sid = true; + if (this_present_sid || that_present_sid) { + if (!(this_present_sid && that_present_sid)) + return false; + if (this.sid != that.sid) + return false; + } + + boolean this_present_delay = true && this.isSetDelay(); + boolean that_present_delay = true && that.isSetDelay(); + if (this_present_delay || that_present_delay) { + if (!(this_present_delay && that_present_delay)) + return false; + if (!this.delay.equals(that.delay)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_sid = true; + list.add(present_sid); + if (present_sid) + list.add(sid); + + boolean present_delay = true && (isSetDelay()); + list.add(present_delay); + if (present_delay) + list.add(delay); + + return list.hashCode(); + } + + @Override + public int compareTo(can_advance_time_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSid()).compareTo(other.isSetSid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sid, other.sid); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetDelay()).compareTo(other.isSetDelay()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetDelay()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.delay, other.delay); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("can_advance_time_args("); + boolean first = true; + + sb.append("sid:"); + sb.append(this.sid); + first = false; + if (!first) sb.append(", "); + sb.append("delay:"); + if (this.delay == null) { + sb.append("null"); + } else { + sb.append(this.delay); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (delay != null) { + delay.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class can_advance_time_argsStandardSchemeFactory implements SchemeFactory { + public can_advance_time_argsStandardScheme getScheme() { + return new can_advance_time_argsStandardScheme(); + } + } + + private static class can_advance_time_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, can_advance_time_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // SID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // DELAY + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.delay = new Clock(); + struct.delay.read(iprot); + struct.setDelayIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, can_advance_time_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(SID_FIELD_DESC); + oprot.writeI64(struct.sid); + oprot.writeFieldEnd(); + if (struct.delay != null) { + oprot.writeFieldBegin(DELAY_FIELD_DESC); + struct.delay.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class can_advance_time_argsTupleSchemeFactory implements SchemeFactory { + public can_advance_time_argsTupleScheme getScheme() { + return new can_advance_time_argsTupleScheme(); + } + } + + private static class can_advance_time_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, can_advance_time_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSid()) { + optionals.set(0); + } + if (struct.isSetDelay()) { + optionals.set(1); + } + oprot.writeBitSet(optionals, 2); + if (struct.isSetSid()) { + oprot.writeI64(struct.sid); + } + if (struct.isSetDelay()) { + struct.delay.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, can_advance_time_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(2); + if (incoming.get(0)) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } + if (incoming.get(1)) { + struct.delay = new Clock(); + struct.delay.read(iprot); + struct.setDelayIsSet(true); + } + } + } + + } + + public static class can_advance_time_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("can_advance_time_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0); + private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRUCT, (short)1); + private static final org.apache.thrift.protocol.TField STATE_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("state_error", org.apache.thrift.protocol.TType.STRUCT, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new can_advance_time_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new can_advance_time_resultTupleSchemeFactory()); + } + + public boolean success; // required + public Error error; // required + public StateNotFound state_error; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SUCCESS((short)0, "success"), + ERROR((short)1, "error"), + STATE_ERROR((short)2, "state_error"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 0: // SUCCESS + return SUCCESS; + case 1: // ERROR + return ERROR; + case 2: // STATE_ERROR + return STATE_ERROR; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __SUCCESS_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); + tmpMap.put(_Fields.ERROR, new org.apache.thrift.meta_data.FieldMetaData("error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.STATE_ERROR, new org.apache.thrift.meta_data.FieldMetaData("state_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(can_advance_time_result.class, metaDataMap); + } + + public can_advance_time_result() { + } + + public can_advance_time_result( + boolean success, + Error error, + StateNotFound state_error) + { + this(); + this.success = success; + setSuccessIsSet(true); + this.error = error; + this.state_error = state_error; + } + + /** + * Performs a deep copy on other. + */ + public can_advance_time_result(can_advance_time_result other) { + __isset_bitfield = other.__isset_bitfield; + this.success = other.success; + if (other.isSetError()) { + this.error = new Error(other.error); + } + if (other.isSetState_error()) { + this.state_error = new StateNotFound(other.state_error); + } + } + + public can_advance_time_result deepCopy() { + return new can_advance_time_result(this); + } + + @Override + public void clear() { + setSuccessIsSet(false); + this.success = false; + this.error = null; + this.state_error = null; + } + + public boolean isSuccess() { + return this.success; + } + + public can_advance_time_result setSuccess(boolean success) { + this.success = success; + setSuccessIsSet(true); + return this; + } + + public void unsetSuccess() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID); + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID); + } + + public void setSuccessIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value); + } + + public Error getError() { + return this.error; + } + + public can_advance_time_result setError(Error error) { + this.error = error; + return this; + } + + public void unsetError() { + this.error = null; + } + + /** Returns true if field error is set (has been assigned a value) and false otherwise */ + public boolean isSetError() { + return this.error != null; + } + + public void setErrorIsSet(boolean value) { + if (!value) { + this.error = null; + } + } + + public StateNotFound getState_error() { + return this.state_error; + } + + public can_advance_time_result setState_error(StateNotFound state_error) { + this.state_error = state_error; + return this; + } + + public void unsetState_error() { + this.state_error = null; + } + + /** Returns true if field state_error is set (has been assigned a value) and false otherwise */ + public boolean isSetState_error() { + return this.state_error != null; + } + + public void setState_errorIsSet(boolean value) { + if (!value) { + this.state_error = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((Boolean)value); + } + break; + + case ERROR: + if (value == null) { + unsetError(); + } else { + setError((Error)value); + } + break; + + case STATE_ERROR: + if (value == null) { + unsetState_error(); + } else { + setState_error((StateNotFound)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return Boolean.valueOf(isSuccess()); + + case ERROR: + return getError(); + + case STATE_ERROR: + return getState_error(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SUCCESS: + return isSetSuccess(); + case ERROR: + return isSetError(); + case STATE_ERROR: + return isSetState_error(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof can_advance_time_result) + return this.equals((can_advance_time_result)that); + return false; + } + + public boolean equals(can_advance_time_result that) { + if (that == null) + return false; + + boolean this_present_success = true; + boolean that_present_success = true; + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (this.success != that.success) + return false; + } + + boolean this_present_error = true && this.isSetError(); + boolean that_present_error = true && that.isSetError(); + if (this_present_error || that_present_error) { + if (!(this_present_error && that_present_error)) + return false; + if (!this.error.equals(that.error)) + return false; + } + + boolean this_present_state_error = true && this.isSetState_error(); + boolean that_present_state_error = true && that.isSetState_error(); + if (this_present_state_error || that_present_state_error) { + if (!(this_present_state_error && that_present_state_error)) + return false; + if (!this.state_error.equals(that.state_error)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_success = true; + list.add(present_success); + if (present_success) + list.add(success); + + boolean present_error = true && (isSetError()); + list.add(present_error); + if (present_error) + list.add(error); + + boolean present_state_error = true && (isSetState_error()); + list.add(present_state_error); + if (present_state_error) + list.add(state_error); + + return list.hashCode(); + } + + @Override + public int compareTo(can_advance_time_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetError()).compareTo(other.isSetError()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetError()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error, other.error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetState_error()).compareTo(other.isSetState_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetState_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state_error, other.state_error); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("can_advance_time_result("); + boolean first = true; + + sb.append("success:"); + sb.append(this.success); + first = false; + if (!first) sb.append(", "); + sb.append("error:"); + if (this.error == null) { + sb.append("null"); + } else { + sb.append(this.error); + } + first = false; + if (!first) sb.append(", "); + sb.append("state_error:"); + if (this.state_error == null) { + sb.append("null"); + } else { + sb.append(this.state_error); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class can_advance_time_resultStandardSchemeFactory implements SchemeFactory { + public can_advance_time_resultStandardScheme getScheme() { + return new can_advance_time_resultStandardScheme(); + } + } + + private static class can_advance_time_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, can_advance_time_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) { + struct.success = iprot.readBool(); + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 1: // ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // STATE_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, can_advance_time_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.isSetSuccess()) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + oprot.writeBool(struct.success); + oprot.writeFieldEnd(); + } + if (struct.error != null) { + oprot.writeFieldBegin(ERROR_FIELD_DESC); + struct.error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.state_error != null) { + oprot.writeFieldBegin(STATE_ERROR_FIELD_DESC); + struct.state_error.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class can_advance_time_resultTupleSchemeFactory implements SchemeFactory { + public can_advance_time_resultTupleScheme getScheme() { + return new can_advance_time_resultTupleScheme(); + } + } + + private static class can_advance_time_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, can_advance_time_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + if (struct.isSetError()) { + optionals.set(1); + } + if (struct.isSetState_error()) { + optionals.set(2); + } + oprot.writeBitSet(optionals, 3); + if (struct.isSetSuccess()) { + oprot.writeBool(struct.success); + } + if (struct.isSetError()) { + struct.error.write(oprot); + } + if (struct.isSetState_error()) { + struct.state_error.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, can_advance_time_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(3); + if (incoming.get(0)) { + struct.success = iprot.readBool(); + struct.setSuccessIsSet(true); + } + if (incoming.get(1)) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } + if (incoming.get(2)) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } + } + } + + } + + public static class advance_time_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("advance_time_args"); + + private static final org.apache.thrift.protocol.TField SID_FIELD_DESC = new org.apache.thrift.protocol.TField("sid", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField DELAY_FIELD_DESC = new org.apache.thrift.protocol.TField("delay", org.apache.thrift.protocol.TType.STRUCT, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new advance_time_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new advance_time_argsTupleSchemeFactory()); + } + + public long sid; // required + public Clock delay; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SID((short)1, "sid"), + DELAY((short)2, "delay"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // SID + return SID; + case 2: // DELAY + return DELAY; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __SID_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SID, new org.apache.thrift.meta_data.FieldMetaData("sid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id"))); + tmpMap.put(_Fields.DELAY, new org.apache.thrift.meta_data.FieldMetaData("delay", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Clock.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(advance_time_args.class, metaDataMap); + } + + public advance_time_args() { + } + + public advance_time_args( + long sid, + Clock delay) + { + this(); + this.sid = sid; + setSidIsSet(true); + this.delay = delay; + } + + /** + * Performs a deep copy on other. + */ + public advance_time_args(advance_time_args other) { + __isset_bitfield = other.__isset_bitfield; + this.sid = other.sid; + if (other.isSetDelay()) { + this.delay = new Clock(other.delay); + } + } + + public advance_time_args deepCopy() { + return new advance_time_args(this); + } + + @Override + public void clear() { + setSidIsSet(false); + this.sid = 0; + this.delay = null; + } + + public long getSid() { + return this.sid; + } + + public advance_time_args setSid(long sid) { + this.sid = sid; + setSidIsSet(true); + return this; + } + + public void unsetSid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SID_ISSET_ID); + } + + /** Returns true if field sid is set (has been assigned a value) and false otherwise */ + public boolean isSetSid() { + return EncodingUtils.testBit(__isset_bitfield, __SID_ISSET_ID); + } + + public void setSidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SID_ISSET_ID, value); + } + + public Clock getDelay() { + return this.delay; + } + + public advance_time_args setDelay(Clock delay) { + this.delay = delay; + return this; + } + + public void unsetDelay() { + this.delay = null; + } + + /** Returns true if field delay is set (has been assigned a value) and false otherwise */ + public boolean isSetDelay() { + return this.delay != null; + } + + public void setDelayIsSet(boolean value) { + if (!value) { + this.delay = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SID: + if (value == null) { + unsetSid(); + } else { + setSid((Long)value); + } + break; + + case DELAY: + if (value == null) { + unsetDelay(); + } else { + setDelay((Clock)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SID: + return Long.valueOf(getSid()); + + case DELAY: + return getDelay(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SID: + return isSetSid(); + case DELAY: + return isSetDelay(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof advance_time_args) + return this.equals((advance_time_args)that); + return false; + } + + public boolean equals(advance_time_args that) { + if (that == null) + return false; + + boolean this_present_sid = true; + boolean that_present_sid = true; + if (this_present_sid || that_present_sid) { + if (!(this_present_sid && that_present_sid)) + return false; + if (this.sid != that.sid) + return false; + } + + boolean this_present_delay = true && this.isSetDelay(); + boolean that_present_delay = true && that.isSetDelay(); + if (this_present_delay || that_present_delay) { + if (!(this_present_delay && that_present_delay)) + return false; + if (!this.delay.equals(that.delay)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_sid = true; + list.add(present_sid); + if (present_sid) + list.add(sid); + + boolean present_delay = true && (isSetDelay()); + list.add(present_delay); + if (present_delay) + list.add(delay); + + return list.hashCode(); + } + + @Override + public int compareTo(advance_time_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSid()).compareTo(other.isSetSid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sid, other.sid); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetDelay()).compareTo(other.isSetDelay()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetDelay()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.delay, other.delay); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("advance_time_args("); + boolean first = true; + + sb.append("sid:"); + sb.append(this.sid); + first = false; + if (!first) sb.append(", "); + sb.append("delay:"); + if (this.delay == null) { + sb.append("null"); + } else { + sb.append(this.delay); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (delay != null) { + delay.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class advance_time_argsStandardSchemeFactory implements SchemeFactory { + public advance_time_argsStandardScheme getScheme() { + return new advance_time_argsStandardScheme(); + } + } + + private static class advance_time_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, advance_time_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // SID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // DELAY + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.delay = new Clock(); + struct.delay.read(iprot); + struct.setDelayIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, advance_time_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(SID_FIELD_DESC); + oprot.writeI64(struct.sid); + oprot.writeFieldEnd(); + if (struct.delay != null) { + oprot.writeFieldBegin(DELAY_FIELD_DESC); + struct.delay.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class advance_time_argsTupleSchemeFactory implements SchemeFactory { + public advance_time_argsTupleScheme getScheme() { + return new advance_time_argsTupleScheme(); + } + } + + private static class advance_time_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, advance_time_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSid()) { + optionals.set(0); + } + if (struct.isSetDelay()) { + optionals.set(1); + } + oprot.writeBitSet(optionals, 2); + if (struct.isSetSid()) { + oprot.writeI64(struct.sid); + } + if (struct.isSetDelay()) { + struct.delay.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, advance_time_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(2); + if (incoming.get(0)) { + struct.sid = iprot.readI64(); + struct.setSidIsSet(true); + } + if (incoming.get(1)) { + struct.delay = new Clock(); + struct.delay.read(iprot); + struct.setDelayIsSet(true); + } + } + } + + } + + public static class advance_time_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("advance_time_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); + private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRUCT, (short)1); + private static final org.apache.thrift.protocol.TField STATE_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("state_error", org.apache.thrift.protocol.TType.STRUCT, (short)2); + private static final org.apache.thrift.protocol.TField DELAY_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("delay_error", org.apache.thrift.protocol.TType.STRUCT, (short)3); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new advance_time_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new advance_time_resultTupleSchemeFactory()); + } + + public TTSState success; // required + public Error error; // required + public StateNotFound state_error; // required + public InvalidDelay delay_error; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SUCCESS((short)0, "success"), + ERROR((short)1, "error"), + STATE_ERROR((short)2, "state_error"), + DELAY_ERROR((short)3, "delay_error"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 0: // SUCCESS + return SUCCESS; + case 1: // ERROR + return ERROR; + case 2: // STATE_ERROR + return STATE_ERROR; + case 3: // DELAY_ERROR + return DELAY_ERROR; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TTSState.class))); + tmpMap.put(_Fields.ERROR, new org.apache.thrift.meta_data.FieldMetaData("error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.STATE_ERROR, new org.apache.thrift.meta_data.FieldMetaData("state_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + tmpMap.put(_Fields.DELAY_ERROR, new org.apache.thrift.meta_data.FieldMetaData("delay_error", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(advance_time_result.class, metaDataMap); + } + + public advance_time_result() { + } + + public advance_time_result( + TTSState success, + Error error, + StateNotFound state_error, + InvalidDelay delay_error) + { + this(); + this.success = success; + this.error = error; + this.state_error = state_error; + this.delay_error = delay_error; + } + + /** + * Performs a deep copy on other. + */ + public advance_time_result(advance_time_result other) { + if (other.isSetSuccess()) { + this.success = new TTSState(other.success); + } + if (other.isSetError()) { + this.error = new Error(other.error); + } + if (other.isSetState_error()) { + this.state_error = new StateNotFound(other.state_error); + } + if (other.isSetDelay_error()) { + this.delay_error = new InvalidDelay(other.delay_error); + } + } + + public advance_time_result deepCopy() { + return new advance_time_result(this); + } + + @Override + public void clear() { + this.success = null; + this.error = null; + this.state_error = null; + this.delay_error = null; + } + + public TTSState getSuccess() { + return this.success; + } + + public advance_time_result setSuccess(TTSState success) { + this.success = success; + return this; + } + + public void unsetSuccess() { + this.success = null; + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return this.success != null; + } + + public void setSuccessIsSet(boolean value) { + if (!value) { + this.success = null; + } + } + + public Error getError() { + return this.error; + } + + public advance_time_result setError(Error error) { + this.error = error; + return this; + } + + public void unsetError() { + this.error = null; + } + + /** Returns true if field error is set (has been assigned a value) and false otherwise */ + public boolean isSetError() { + return this.error != null; + } + + public void setErrorIsSet(boolean value) { + if (!value) { + this.error = null; + } + } + + public StateNotFound getState_error() { + return this.state_error; + } + + public advance_time_result setState_error(StateNotFound state_error) { + this.state_error = state_error; + return this; + } + + public void unsetState_error() { + this.state_error = null; + } + + /** Returns true if field state_error is set (has been assigned a value) and false otherwise */ + public boolean isSetState_error() { + return this.state_error != null; + } + + public void setState_errorIsSet(boolean value) { + if (!value) { + this.state_error = null; + } + } + + public InvalidDelay getDelay_error() { + return this.delay_error; + } + + public advance_time_result setDelay_error(InvalidDelay delay_error) { + this.delay_error = delay_error; + return this; + } + + public void unsetDelay_error() { + this.delay_error = null; + } + + /** Returns true if field delay_error is set (has been assigned a value) and false otherwise */ + public boolean isSetDelay_error() { + return this.delay_error != null; + } + + public void setDelay_errorIsSet(boolean value) { + if (!value) { + this.delay_error = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((TTSState)value); + } + break; + + case ERROR: + if (value == null) { + unsetError(); + } else { + setError((Error)value); + } + break; + + case STATE_ERROR: + if (value == null) { + unsetState_error(); + } else { + setState_error((StateNotFound)value); + } + break; + + case DELAY_ERROR: + if (value == null) { + unsetDelay_error(); + } else { + setDelay_error((InvalidDelay)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return getSuccess(); + + case ERROR: + return getError(); + + case STATE_ERROR: + return getState_error(); + + case DELAY_ERROR: + return getDelay_error(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SUCCESS: + return isSetSuccess(); + case ERROR: + return isSetError(); + case STATE_ERROR: + return isSetState_error(); + case DELAY_ERROR: + return isSetDelay_error(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof advance_time_result) + return this.equals((advance_time_result)that); + return false; + } + + public boolean equals(advance_time_result that) { + if (that == null) + return false; + + boolean this_present_success = true && this.isSetSuccess(); + boolean that_present_success = true && that.isSetSuccess(); + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (!this.success.equals(that.success)) + return false; + } + + boolean this_present_error = true && this.isSetError(); + boolean that_present_error = true && that.isSetError(); + if (this_present_error || that_present_error) { + if (!(this_present_error && that_present_error)) + return false; + if (!this.error.equals(that.error)) + return false; + } + + boolean this_present_state_error = true && this.isSetState_error(); + boolean that_present_state_error = true && that.isSetState_error(); + if (this_present_state_error || that_present_state_error) { + if (!(this_present_state_error && that_present_state_error)) + return false; + if (!this.state_error.equals(that.state_error)) + return false; + } + + boolean this_present_delay_error = true && this.isSetDelay_error(); + boolean that_present_delay_error = true && that.isSetDelay_error(); + if (this_present_delay_error || that_present_delay_error) { + if (!(this_present_delay_error && that_present_delay_error)) + return false; + if (!this.delay_error.equals(that.delay_error)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_success = true && (isSetSuccess()); + list.add(present_success); + if (present_success) + list.add(success); + + boolean present_error = true && (isSetError()); + list.add(present_error); + if (present_error) + list.add(error); + + boolean present_state_error = true && (isSetState_error()); + list.add(present_state_error); + if (present_state_error) + list.add(state_error); + + boolean present_delay_error = true && (isSetDelay_error()); + list.add(present_delay_error); + if (present_delay_error) + list.add(delay_error); + + return list.hashCode(); + } + + @Override + public int compareTo(advance_time_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetError()).compareTo(other.isSetError()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetError()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error, other.error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetState_error()).compareTo(other.isSetState_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetState_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state_error, other.state_error); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetDelay_error()).compareTo(other.isSetDelay_error()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetDelay_error()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.delay_error, other.delay_error); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("advance_time_result("); + boolean first = true; + + sb.append("success:"); + if (this.success == null) { + sb.append("null"); + } else { + sb.append(this.success); + } + first = false; + if (!first) sb.append(", "); + sb.append("error:"); + if (this.error == null) { + sb.append("null"); + } else { + sb.append(this.error); + } + first = false; + if (!first) sb.append(", "); + sb.append("state_error:"); + if (this.state_error == null) { + sb.append("null"); + } else { + sb.append(this.state_error); + } + first = false; + if (!first) sb.append(", "); + sb.append("delay_error:"); + if (this.delay_error == null) { + sb.append("null"); + } else { + sb.append(this.delay_error); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (success != null) { + success.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class advance_time_resultStandardSchemeFactory implements SchemeFactory { + public advance_time_resultStandardScheme getScheme() { + return new advance_time_resultStandardScheme(); + } + } + + private static class advance_time_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, advance_time_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.success = new TTSState(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 1: // ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // STATE_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // DELAY_ERROR + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.delay_error = new InvalidDelay(); + struct.delay_error.read(iprot); + struct.setDelay_errorIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, advance_time_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.success != null) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + struct.success.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.error != null) { + oprot.writeFieldBegin(ERROR_FIELD_DESC); + struct.error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.state_error != null) { + oprot.writeFieldBegin(STATE_ERROR_FIELD_DESC); + struct.state_error.write(oprot); + oprot.writeFieldEnd(); + } + if (struct.delay_error != null) { + oprot.writeFieldBegin(DELAY_ERROR_FIELD_DESC); + struct.delay_error.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class advance_time_resultTupleSchemeFactory implements SchemeFactory { + public advance_time_resultTupleScheme getScheme() { + return new advance_time_resultTupleScheme(); + } + } + + private static class advance_time_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, advance_time_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + if (struct.isSetError()) { + optionals.set(1); + } + if (struct.isSetState_error()) { + optionals.set(2); + } + if (struct.isSetDelay_error()) { + optionals.set(3); + } + oprot.writeBitSet(optionals, 4); + if (struct.isSetSuccess()) { + struct.success.write(oprot); + } + if (struct.isSetError()) { + struct.error.write(oprot); + } + if (struct.isSetState_error()) { + struct.state_error.write(oprot); + } + if (struct.isSetDelay_error()) { + struct.delay_error.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, advance_time_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(4); + if (incoming.get(0)) { + struct.success = new TTSState(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } + if (incoming.get(1)) { + struct.error = new Error(); + struct.error.read(iprot); + struct.setErrorIsSet(true); + } + if (incoming.get(2)) { + struct.state_error = new StateNotFound(); + struct.state_error.read(iprot); + struct.setState_errorIsSet(true); + } + if (incoming.get(3)) { + struct.delay_error = new InvalidDelay(); + struct.delay_error.read(iprot); + struct.setDelay_errorIsSet(true); + } + } + } + + } + + public static class discard_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("discard_args"); + + private static final org.apache.thrift.protocol.TField SIDS_FIELD_DESC = new org.apache.thrift.protocol.TField("sids", org.apache.thrift.protocol.TType.LIST, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new discard_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new discard_argsTupleSchemeFactory()); + } + + public List sids; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SIDS((short)1, "sids"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // SIDS + return SIDS; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SIDS, new org.apache.thrift.meta_data.FieldMetaData("sids", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id")))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(discard_args.class, metaDataMap); + } + + public discard_args() { + } + + public discard_args( + List sids) + { + this(); + this.sids = sids; + } + + /** + * Performs a deep copy on other. + */ + public discard_args(discard_args other) { + if (other.isSetSids()) { + List __this__sids = new ArrayList(other.sids.size()); + for (Long other_element : other.sids) { + __this__sids.add(other_element); + } + this.sids = __this__sids; + } + } + + public discard_args deepCopy() { + return new discard_args(this); + } + + @Override + public void clear() { + this.sids = null; + } + + public int getSidsSize() { + return (this.sids == null) ? 0 : this.sids.size(); + } + + public java.util.Iterator getSidsIterator() { + return (this.sids == null) ? null : this.sids.iterator(); + } + + public void addToSids(long elem) { + if (this.sids == null) { + this.sids = new ArrayList(); + } + this.sids.add(elem); + } + + public List getSids() { + return this.sids; + } + + public discard_args setSids(List sids) { + this.sids = sids; + return this; + } + + public void unsetSids() { + this.sids = null; + } + + /** Returns true if field sids is set (has been assigned a value) and false otherwise */ + public boolean isSetSids() { + return this.sids != null; + } + + public void setSidsIsSet(boolean value) { + if (!value) { + this.sids = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SIDS: + if (value == null) { + unsetSids(); + } else { + setSids((List)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SIDS: + return getSids(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SIDS: + return isSetSids(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof discard_args) + return this.equals((discard_args)that); + return false; + } + + public boolean equals(discard_args that) { + if (that == null) + return false; + + boolean this_present_sids = true && this.isSetSids(); + boolean that_present_sids = true && that.isSetSids(); + if (this_present_sids || that_present_sids) { + if (!(this_present_sids && that_present_sids)) + return false; + if (!this.sids.equals(that.sids)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_sids = true && (isSetSids()); + list.add(present_sids); + if (present_sids) + list.add(sids); + + return list.hashCode(); + } + + @Override + public int compareTo(discard_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSids()).compareTo(other.isSetSids()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSids()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sids, other.sids); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("discard_args("); + boolean first = true; + + sb.append("sids:"); + if (this.sids == null) { + sb.append("null"); + } else { + sb.append(this.sids); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class discard_argsStandardSchemeFactory implements SchemeFactory { + public discard_argsStandardScheme getScheme() { + return new discard_argsStandardScheme(); + } + } + + private static class discard_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, discard_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // SIDS + if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { + { + org.apache.thrift.protocol.TList _list50 = iprot.readListBegin(); + struct.sids = new ArrayList(_list50.size); + long _elem51; + for (int _i52 = 0; _i52 < _list50.size; ++_i52) + { + _elem51 = iprot.readI64(); + struct.sids.add(_elem51); + } + iprot.readListEnd(); + } + struct.setSidsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, discard_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.sids != null) { + oprot.writeFieldBegin(SIDS_FIELD_DESC); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, struct.sids.size())); + for (long _iter53 : struct.sids) + { + oprot.writeI64(_iter53); + } + oprot.writeListEnd(); + } + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class discard_argsTupleSchemeFactory implements SchemeFactory { + public discard_argsTupleScheme getScheme() { + return new discard_argsTupleScheme(); + } + } + + private static class discard_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, discard_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSids()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetSids()) { + { + oprot.writeI32(struct.sids.size()); + for (long _iter54 : struct.sids) + { + oprot.writeI64(_iter54); + } + } + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, discard_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + { + org.apache.thrift.protocol.TList _list55 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32()); + struct.sids = new ArrayList(_list55.size); + long _elem56; + for (int _i57 = 0; _i57 < _list55.size; ++_i57) + { + _elem56 = iprot.readI64(); + struct.sids.add(_elem56); + } + } + struct.setSidsIsSet(true); + } + } + } + + } + + public static class discard_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("discard_result"); + + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new discard_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new discard_resultTupleSchemeFactory()); + } + + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { +; + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(discard_result.class, metaDataMap); + } + + public discard_result() { + } + + /** + * Performs a deep copy on other. + */ + public discard_result(discard_result other) { + } + + public discard_result deepCopy() { + return new discard_result(this); + } + + @Override + public void clear() { + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof discard_result) + return this.equals((discard_result)that); + return false; + } + + public boolean equals(discard_result that) { + if (that == null) + return false; + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + return list.hashCode(); + } + + @Override + public int compareTo(discard_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("discard_result("); + boolean first = true; + + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class discard_resultStandardSchemeFactory implements SchemeFactory { + public discard_resultStandardScheme getScheme() { + return new discard_resultStandardScheme(); + } + } + + private static class discard_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, discard_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, discard_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class discard_resultTupleSchemeFactory implements SchemeFactory { + public discard_resultTupleScheme getScheme() { + return new discard_resultTupleScheme(); + } + } + + private static class discard_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, discard_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, discard_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + } + } + + } + + public static class discard_all_except_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("discard_all_except_args"); + + private static final org.apache.thrift.protocol.TField SIDS_FIELD_DESC = new org.apache.thrift.protocol.TField("sids", org.apache.thrift.protocol.TType.LIST, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new discard_all_except_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new discard_all_except_argsTupleSchemeFactory()); + } + + public List sids; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + SIDS((short)1, "sids"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // SIDS + return SIDS; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.SIDS, new org.apache.thrift.meta_data.FieldMetaData("sids", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id")))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(discard_all_except_args.class, metaDataMap); + } + + public discard_all_except_args() { + } + + public discard_all_except_args( + List sids) + { + this(); + this.sids = sids; + } + + /** + * Performs a deep copy on other. + */ + public discard_all_except_args(discard_all_except_args other) { + if (other.isSetSids()) { + List __this__sids = new ArrayList(other.sids.size()); + for (Long other_element : other.sids) { + __this__sids.add(other_element); + } + this.sids = __this__sids; + } + } + + public discard_all_except_args deepCopy() { + return new discard_all_except_args(this); + } + + @Override + public void clear() { + this.sids = null; + } + + public int getSidsSize() { + return (this.sids == null) ? 0 : this.sids.size(); + } + + public java.util.Iterator getSidsIterator() { + return (this.sids == null) ? null : this.sids.iterator(); + } + + public void addToSids(long elem) { + if (this.sids == null) { + this.sids = new ArrayList(); + } + this.sids.add(elem); + } + + public List getSids() { + return this.sids; + } + + public discard_all_except_args setSids(List sids) { + this.sids = sids; + return this; + } + + public void unsetSids() { + this.sids = null; + } + + /** Returns true if field sids is set (has been assigned a value) and false otherwise */ + public boolean isSetSids() { + return this.sids != null; + } + + public void setSidsIsSet(boolean value) { + if (!value) { + this.sids = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SIDS: + if (value == null) { + unsetSids(); + } else { + setSids((List)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SIDS: + return getSids(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case SIDS: + return isSetSids(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof discard_all_except_args) + return this.equals((discard_all_except_args)that); + return false; + } + + public boolean equals(discard_all_except_args that) { + if (that == null) + return false; + + boolean this_present_sids = true && this.isSetSids(); + boolean that_present_sids = true && that.isSetSids(); + if (this_present_sids || that_present_sids) { + if (!(this_present_sids && that_present_sids)) + return false; + if (!this.sids.equals(that.sids)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_sids = true && (isSetSids()); + list.add(present_sids); + if (present_sids) + list.add(sids); + + return list.hashCode(); + } + + @Override + public int compareTo(discard_all_except_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetSids()).compareTo(other.isSetSids()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSids()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sids, other.sids); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("discard_all_except_args("); + boolean first = true; + + sb.append("sids:"); + if (this.sids == null) { + sb.append("null"); + } else { + sb.append(this.sids); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class discard_all_except_argsStandardSchemeFactory implements SchemeFactory { + public discard_all_except_argsStandardScheme getScheme() { + return new discard_all_except_argsStandardScheme(); + } + } + + private static class discard_all_except_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, discard_all_except_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // SIDS + if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { + { + org.apache.thrift.protocol.TList _list58 = iprot.readListBegin(); + struct.sids = new ArrayList(_list58.size); + long _elem59; + for (int _i60 = 0; _i60 < _list58.size; ++_i60) + { + _elem59 = iprot.readI64(); + struct.sids.add(_elem59); + } + iprot.readListEnd(); + } + struct.setSidsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, discard_all_except_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.sids != null) { + oprot.writeFieldBegin(SIDS_FIELD_DESC); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, struct.sids.size())); + for (long _iter61 : struct.sids) + { + oprot.writeI64(_iter61); + } + oprot.writeListEnd(); + } + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class discard_all_except_argsTupleSchemeFactory implements SchemeFactory { + public discard_all_except_argsTupleScheme getScheme() { + return new discard_all_except_argsTupleScheme(); + } + } + + private static class discard_all_except_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, discard_all_except_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSids()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetSids()) { + { + oprot.writeI32(struct.sids.size()); + for (long _iter62 : struct.sids) + { + oprot.writeI64(_iter62); + } + } + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, discard_all_except_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + { + org.apache.thrift.protocol.TList _list63 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32()); + struct.sids = new ArrayList(_list63.size); + long _elem64; + for (int _i65 = 0; _i65 < _list63.size; ++_i65) + { + _elem64 = iprot.readI64(); + struct.sids.add(_elem64); + } + } + struct.setSidsIsSet(true); + } + } + } + + } + + public static class discard_all_except_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("discard_all_except_result"); + + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new discard_all_except_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new discard_all_except_resultTupleSchemeFactory()); + } + + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { +; + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(discard_all_except_result.class, metaDataMap); + } + + public discard_all_except_result() { + } + + /** + * Performs a deep copy on other. + */ + public discard_all_except_result(discard_all_except_result other) { + } + + public discard_all_except_result deepCopy() { + return new discard_all_except_result(this); + } + + @Override + public void clear() { + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof discard_all_except_result) + return this.equals((discard_all_except_result)that); + return false; + } + + public boolean equals(discard_all_except_result that) { + if (that == null) + return false; + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + return list.hashCode(); + } + + @Override + public int compareTo(discard_all_except_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("discard_all_except_result("); + boolean first = true; + + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class discard_all_except_resultStandardSchemeFactory implements SchemeFactory { + public discard_all_except_resultStandardScheme getScheme() { + return new discard_all_except_resultStandardScheme(); + } + } + + private static class discard_all_except_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, discard_all_except_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, discard_all_except_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class discard_all_except_resultTupleSchemeFactory implements SchemeFactory { + public discard_all_except_resultTupleScheme getScheme() { + return new discard_all_except_resultTupleScheme(); + } + } + + private static class discard_all_except_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, discard_all_except_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, discard_all_except_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + } + } + + } + + public static class shutdown_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("shutdown_args"); + + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new shutdown_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new shutdown_argsTupleSchemeFactory()); + } + + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { +; + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(shutdown_args.class, metaDataMap); + } + + public shutdown_args() { + } + + /** + * Performs a deep copy on other. + */ + public shutdown_args(shutdown_args other) { + } + + public shutdown_args deepCopy() { + return new shutdown_args(this); + } + + @Override + public void clear() { + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof shutdown_args) + return this.equals((shutdown_args)that); + return false; + } + + public boolean equals(shutdown_args that) { + if (that == null) + return false; + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + return list.hashCode(); + } + + @Override + public int compareTo(shutdown_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("shutdown_args("); + boolean first = true; + + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class shutdown_argsStandardSchemeFactory implements SchemeFactory { + public shutdown_argsStandardScheme getScheme() { + return new shutdown_argsStandardScheme(); + } + } + + private static class shutdown_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, shutdown_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, shutdown_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class shutdown_argsTupleSchemeFactory implements SchemeFactory { + public shutdown_argsTupleScheme getScheme() { + return new shutdown_argsTupleScheme(); + } + } + + private static class shutdown_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, shutdown_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, shutdown_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + } + } + + } + +} diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/TTSState.java b/eclipse/plugins/fr.laas.libtts/src/tts/TTSState.java new file mode 100644 index 0000000..fc5f91a --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/TTSState.java @@ -0,0 +1,829 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class TTSState implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TTSState"); + + private static final org.apache.thrift.protocol.TField UID_FIELD_DESC = new org.apache.thrift.protocol.TField("uid", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField MARKINGS_FIELD_DESC = new org.apache.thrift.protocol.TField("markings", org.apache.thrift.protocol.TType.LIST, (short)2); + private static final org.apache.thrift.protocol.TField CLOCKS_FIELD_DESC = new org.apache.thrift.protocol.TField("clocks", org.apache.thrift.protocol.TType.MAP, (short)3); + private static final org.apache.thrift.protocol.TField VALUES_FIELD_DESC = new org.apache.thrift.protocol.TField("values", org.apache.thrift.protocol.TType.STRING, (short)4); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new TTSStateStandardSchemeFactory()); + schemes.put(TupleScheme.class, new TTSStateTupleSchemeFactory()); + } + + public long uid; // required + public List markings; // required + public Map clocks; // required + public String values; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + UID((short)1, "uid"), + MARKINGS((short)2, "markings"), + CLOCKS((short)3, "clocks"), + VALUES((short)4, "values"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // UID + return UID; + case 2: // MARKINGS + return MARKINGS; + case 3: // CLOCKS + return CLOCKS; + case 4: // VALUES + return VALUES; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __UID_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.UID, new org.apache.thrift.meta_data.FieldMetaData("uid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "state_id"))); + tmpMap.put(_Fields.MARKINGS, new org.apache.thrift.meta_data.FieldMetaData("markings", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "place_id")))); + tmpMap.put(_Fields.CLOCKS, new org.apache.thrift.meta_data.FieldMetaData("clocks", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "transition_id"), + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Clock.class)))); + tmpMap.put(_Fields.VALUES, new org.apache.thrift.meta_data.FieldMetaData("values", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , "json"))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TTSState.class, metaDataMap); + } + + public TTSState() { + } + + public TTSState( + long uid, + List markings, + Map clocks, + String values) + { + this(); + this.uid = uid; + setUidIsSet(true); + this.markings = markings; + this.clocks = clocks; + this.values = values; + } + + /** + * Performs a deep copy on other. + */ + public TTSState(TTSState other) { + __isset_bitfield = other.__isset_bitfield; + this.uid = other.uid; + if (other.isSetMarkings()) { + List __this__markings = new ArrayList(other.markings.size()); + for (Long other_element : other.markings) { + __this__markings.add(other_element); + } + this.markings = __this__markings; + } + if (other.isSetClocks()) { + Map __this__clocks = new HashMap(other.clocks.size()); + for (Map.Entry other_element : other.clocks.entrySet()) { + + Long other_element_key = other_element.getKey(); + Clock other_element_value = other_element.getValue(); + + Long __this__clocks_copy_key = other_element_key; + + Clock __this__clocks_copy_value = new Clock(other_element_value); + + __this__clocks.put(__this__clocks_copy_key, __this__clocks_copy_value); + } + this.clocks = __this__clocks; + } + if (other.isSetValues()) { + this.values = other.values; + } + } + + public TTSState deepCopy() { + return new TTSState(this); + } + + @Override + public void clear() { + setUidIsSet(false); + this.uid = 0; + this.markings = null; + this.clocks = null; + this.values = null; + } + + public long getUid() { + return this.uid; + } + + public TTSState setUid(long uid) { + this.uid = uid; + setUidIsSet(true); + return this; + } + + public void unsetUid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UID_ISSET_ID); + } + + /** Returns true if field uid is set (has been assigned a value) and false otherwise */ + public boolean isSetUid() { + return EncodingUtils.testBit(__isset_bitfield, __UID_ISSET_ID); + } + + public void setUidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UID_ISSET_ID, value); + } + + public int getMarkingsSize() { + return (this.markings == null) ? 0 : this.markings.size(); + } + + public java.util.Iterator getMarkingsIterator() { + return (this.markings == null) ? null : this.markings.iterator(); + } + + public void addToMarkings(long elem) { + if (this.markings == null) { + this.markings = new ArrayList(); + } + this.markings.add(elem); + } + + public List getMarkings() { + return this.markings; + } + + public TTSState setMarkings(List markings) { + this.markings = markings; + return this; + } + + public void unsetMarkings() { + this.markings = null; + } + + /** Returns true if field markings is set (has been assigned a value) and false otherwise */ + public boolean isSetMarkings() { + return this.markings != null; + } + + public void setMarkingsIsSet(boolean value) { + if (!value) { + this.markings = null; + } + } + + public int getClocksSize() { + return (this.clocks == null) ? 0 : this.clocks.size(); + } + + public void putToClocks(long key, Clock val) { + if (this.clocks == null) { + this.clocks = new HashMap(); + } + this.clocks.put(key, val); + } + + public Map getClocks() { + return this.clocks; + } + + public TTSState setClocks(Map clocks) { + this.clocks = clocks; + return this; + } + + public void unsetClocks() { + this.clocks = null; + } + + /** Returns true if field clocks is set (has been assigned a value) and false otherwise */ + public boolean isSetClocks() { + return this.clocks != null; + } + + public void setClocksIsSet(boolean value) { + if (!value) { + this.clocks = null; + } + } + + public String getValues() { + return this.values; + } + + public TTSState setValues(String values) { + this.values = values; + return this; + } + + public void unsetValues() { + this.values = null; + } + + /** Returns true if field values is set (has been assigned a value) and false otherwise */ + public boolean isSetValues() { + return this.values != null; + } + + public void setValuesIsSet(boolean value) { + if (!value) { + this.values = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case UID: + if (value == null) { + unsetUid(); + } else { + setUid((Long)value); + } + break; + + case MARKINGS: + if (value == null) { + unsetMarkings(); + } else { + setMarkings((List)value); + } + break; + + case CLOCKS: + if (value == null) { + unsetClocks(); + } else { + setClocks((Map)value); + } + break; + + case VALUES: + if (value == null) { + unsetValues(); + } else { + setValues((String)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case UID: + return Long.valueOf(getUid()); + + case MARKINGS: + return getMarkings(); + + case CLOCKS: + return getClocks(); + + case VALUES: + return getValues(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case UID: + return isSetUid(); + case MARKINGS: + return isSetMarkings(); + case CLOCKS: + return isSetClocks(); + case VALUES: + return isSetValues(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof TTSState) + return this.equals((TTSState)that); + return false; + } + + public boolean equals(TTSState that) { + if (that == null) + return false; + + boolean this_present_uid = true; + boolean that_present_uid = true; + if (this_present_uid || that_present_uid) { + if (!(this_present_uid && that_present_uid)) + return false; + if (this.uid != that.uid) + return false; + } + + boolean this_present_markings = true && this.isSetMarkings(); + boolean that_present_markings = true && that.isSetMarkings(); + if (this_present_markings || that_present_markings) { + if (!(this_present_markings && that_present_markings)) + return false; + if (!this.markings.equals(that.markings)) + return false; + } + + boolean this_present_clocks = true && this.isSetClocks(); + boolean that_present_clocks = true && that.isSetClocks(); + if (this_present_clocks || that_present_clocks) { + if (!(this_present_clocks && that_present_clocks)) + return false; + if (!this.clocks.equals(that.clocks)) + return false; + } + + boolean this_present_values = true && this.isSetValues(); + boolean that_present_values = true && that.isSetValues(); + if (this_present_values || that_present_values) { + if (!(this_present_values && that_present_values)) + return false; + if (!this.values.equals(that.values)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_uid = true; + list.add(present_uid); + if (present_uid) + list.add(uid); + + boolean present_markings = true && (isSetMarkings()); + list.add(present_markings); + if (present_markings) + list.add(markings); + + boolean present_clocks = true && (isSetClocks()); + list.add(present_clocks); + if (present_clocks) + list.add(clocks); + + boolean present_values = true && (isSetValues()); + list.add(present_values); + if (present_values) + list.add(values); + + return list.hashCode(); + } + + @Override + public int compareTo(TTSState other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetUid()).compareTo(other.isSetUid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetUid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uid, other.uid); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetMarkings()).compareTo(other.isSetMarkings()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetMarkings()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.markings, other.markings); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetClocks()).compareTo(other.isSetClocks()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetClocks()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.clocks, other.clocks); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetValues()).compareTo(other.isSetValues()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetValues()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.values, other.values); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("TTSState("); + boolean first = true; + + sb.append("uid:"); + sb.append(this.uid); + first = false; + if (!first) sb.append(", "); + sb.append("markings:"); + if (this.markings == null) { + sb.append("null"); + } else { + sb.append(this.markings); + } + first = false; + if (!first) sb.append(", "); + sb.append("clocks:"); + if (this.clocks == null) { + sb.append("null"); + } else { + sb.append(this.clocks); + } + first = false; + if (!first) sb.append(", "); + sb.append("values:"); + if (this.values == null) { + sb.append("null"); + } else { + sb.append(this.values); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class TTSStateStandardSchemeFactory implements SchemeFactory { + public TTSStateStandardScheme getScheme() { + return new TTSStateStandardScheme(); + } + } + + private static class TTSStateStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, TTSState struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // UID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // MARKINGS + if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { + { + org.apache.thrift.protocol.TList _list0 = iprot.readListBegin(); + struct.markings = new ArrayList(_list0.size); + long _elem1; + for (int _i2 = 0; _i2 < _list0.size; ++_i2) + { + _elem1 = iprot.readI64(); + struct.markings.add(_elem1); + } + iprot.readListEnd(); + } + struct.setMarkingsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // CLOCKS + if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { + { + org.apache.thrift.protocol.TMap _map3 = iprot.readMapBegin(); + struct.clocks = new HashMap(2*_map3.size); + long _key4; + Clock _val5; + for (int _i6 = 0; _i6 < _map3.size; ++_i6) + { + _key4 = iprot.readI64(); + _val5 = new Clock(); + _val5.read(iprot); + struct.clocks.put(_key4, _val5); + } + iprot.readMapEnd(); + } + struct.setClocksIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 4: // VALUES + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.values = iprot.readString(); + struct.setValuesIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, TTSState struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(UID_FIELD_DESC); + oprot.writeI64(struct.uid); + oprot.writeFieldEnd(); + if (struct.markings != null) { + oprot.writeFieldBegin(MARKINGS_FIELD_DESC); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, struct.markings.size())); + for (long _iter7 : struct.markings) + { + oprot.writeI64(_iter7); + } + oprot.writeListEnd(); + } + oprot.writeFieldEnd(); + } + if (struct.clocks != null) { + oprot.writeFieldBegin(CLOCKS_FIELD_DESC); + { + oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I64, org.apache.thrift.protocol.TType.STRUCT, struct.clocks.size())); + for (Map.Entry _iter8 : struct.clocks.entrySet()) + { + oprot.writeI64(_iter8.getKey()); + _iter8.getValue().write(oprot); + } + oprot.writeMapEnd(); + } + oprot.writeFieldEnd(); + } + if (struct.values != null) { + oprot.writeFieldBegin(VALUES_FIELD_DESC); + oprot.writeString(struct.values); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class TTSStateTupleSchemeFactory implements SchemeFactory { + public TTSStateTupleScheme getScheme() { + return new TTSStateTupleScheme(); + } + } + + private static class TTSStateTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, TTSState struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetUid()) { + optionals.set(0); + } + if (struct.isSetMarkings()) { + optionals.set(1); + } + if (struct.isSetClocks()) { + optionals.set(2); + } + if (struct.isSetValues()) { + optionals.set(3); + } + oprot.writeBitSet(optionals, 4); + if (struct.isSetUid()) { + oprot.writeI64(struct.uid); + } + if (struct.isSetMarkings()) { + { + oprot.writeI32(struct.markings.size()); + for (long _iter9 : struct.markings) + { + oprot.writeI64(_iter9); + } + } + } + if (struct.isSetClocks()) { + { + oprot.writeI32(struct.clocks.size()); + for (Map.Entry _iter10 : struct.clocks.entrySet()) + { + oprot.writeI64(_iter10.getKey()); + _iter10.getValue().write(oprot); + } + } + } + if (struct.isSetValues()) { + oprot.writeString(struct.values); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, TTSState struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(4); + if (incoming.get(0)) { + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + } + if (incoming.get(1)) { + { + org.apache.thrift.protocol.TList _list11 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32()); + struct.markings = new ArrayList(_list11.size); + long _elem12; + for (int _i13 = 0; _i13 < _list11.size; ++_i13) + { + _elem12 = iprot.readI64(); + struct.markings.add(_elem12); + } + } + struct.setMarkingsIsSet(true); + } + if (incoming.get(2)) { + { + org.apache.thrift.protocol.TMap _map14 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I64, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.clocks = new HashMap(2*_map14.size); + long _key15; + Clock _val16; + for (int _i17 = 0; _i17 < _map14.size; ++_i17) + { + _key15 = iprot.readI64(); + _val16 = new Clock(); + _val16.read(iprot); + struct.clocks.put(_key15, _val16); + } + } + struct.setClocksIsSet(true); + } + if (incoming.get(3)) { + struct.values = iprot.readString(); + struct.setValuesIsSet(true); + } + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/Transition.java b/eclipse/plugins/fr.laas.libtts/src/tts/Transition.java new file mode 100644 index 0000000..4c2af10 --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/Transition.java @@ -0,0 +1,608 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class Transition implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Transition"); + + private static final org.apache.thrift.protocol.TField UID_FIELD_DESC = new org.apache.thrift.protocol.TField("uid", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2); + private static final org.apache.thrift.protocol.TField INTERVAL_FIELD_DESC = new org.apache.thrift.protocol.TField("interval", org.apache.thrift.protocol.TType.STRUCT, (short)3); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new TransitionStandardSchemeFactory()); + schemes.put(TupleScheme.class, new TransitionTupleSchemeFactory()); + } + + public long uid; // required + public String name; // required + public Interval interval; // optional + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + UID((short)1, "uid"), + NAME((short)2, "name"), + INTERVAL((short)3, "interval"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // UID + return UID; + case 2: // NAME + return NAME; + case 3: // INTERVAL + return INTERVAL; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __UID_ISSET_ID = 0; + private byte __isset_bitfield = 0; + private static final _Fields optionals[] = {_Fields.INTERVAL}; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.UID, new org.apache.thrift.meta_data.FieldMetaData("uid", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "transition_id"))); + tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + tmpMap.put(_Fields.INTERVAL, new org.apache.thrift.meta_data.FieldMetaData("interval", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Interval.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Transition.class, metaDataMap); + } + + public Transition() { + } + + public Transition( + long uid, + String name) + { + this(); + this.uid = uid; + setUidIsSet(true); + this.name = name; + } + + /** + * Performs a deep copy on other. + */ + public Transition(Transition other) { + __isset_bitfield = other.__isset_bitfield; + this.uid = other.uid; + if (other.isSetName()) { + this.name = other.name; + } + if (other.isSetInterval()) { + this.interval = new Interval(other.interval); + } + } + + public Transition deepCopy() { + return new Transition(this); + } + + @Override + public void clear() { + setUidIsSet(false); + this.uid = 0; + this.name = null; + this.interval = null; + } + + public long getUid() { + return this.uid; + } + + public Transition setUid(long uid) { + this.uid = uid; + setUidIsSet(true); + return this; + } + + public void unsetUid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UID_ISSET_ID); + } + + /** Returns true if field uid is set (has been assigned a value) and false otherwise */ + public boolean isSetUid() { + return EncodingUtils.testBit(__isset_bitfield, __UID_ISSET_ID); + } + + public void setUidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UID_ISSET_ID, value); + } + + public String getName() { + return this.name; + } + + public Transition setName(String name) { + this.name = name; + return this; + } + + public void unsetName() { + this.name = null; + } + + /** Returns true if field name is set (has been assigned a value) and false otherwise */ + public boolean isSetName() { + return this.name != null; + } + + public void setNameIsSet(boolean value) { + if (!value) { + this.name = null; + } + } + + public Interval getInterval() { + return this.interval; + } + + public Transition setInterval(Interval interval) { + this.interval = interval; + return this; + } + + public void unsetInterval() { + this.interval = null; + } + + /** Returns true if field interval is set (has been assigned a value) and false otherwise */ + public boolean isSetInterval() { + return this.interval != null; + } + + public void setIntervalIsSet(boolean value) { + if (!value) { + this.interval = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case UID: + if (value == null) { + unsetUid(); + } else { + setUid((Long)value); + } + break; + + case NAME: + if (value == null) { + unsetName(); + } else { + setName((String)value); + } + break; + + case INTERVAL: + if (value == null) { + unsetInterval(); + } else { + setInterval((Interval)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case UID: + return Long.valueOf(getUid()); + + case NAME: + return getName(); + + case INTERVAL: + return getInterval(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case UID: + return isSetUid(); + case NAME: + return isSetName(); + case INTERVAL: + return isSetInterval(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof Transition) + return this.equals((Transition)that); + return false; + } + + public boolean equals(Transition that) { + if (that == null) + return false; + + boolean this_present_uid = true; + boolean that_present_uid = true; + if (this_present_uid || that_present_uid) { + if (!(this_present_uid && that_present_uid)) + return false; + if (this.uid != that.uid) + return false; + } + + boolean this_present_name = true && this.isSetName(); + boolean that_present_name = true && that.isSetName(); + if (this_present_name || that_present_name) { + if (!(this_present_name && that_present_name)) + return false; + if (!this.name.equals(that.name)) + return false; + } + + boolean this_present_interval = true && this.isSetInterval(); + boolean that_present_interval = true && that.isSetInterval(); + if (this_present_interval || that_present_interval) { + if (!(this_present_interval && that_present_interval)) + return false; + if (!this.interval.equals(that.interval)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_uid = true; + list.add(present_uid); + if (present_uid) + list.add(uid); + + boolean present_name = true && (isSetName()); + list.add(present_name); + if (present_name) + list.add(name); + + boolean present_interval = true && (isSetInterval()); + list.add(present_interval); + if (present_interval) + list.add(interval); + + return list.hashCode(); + } + + @Override + public int compareTo(Transition other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetUid()).compareTo(other.isSetUid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetUid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uid, other.uid); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetName()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetInterval()).compareTo(other.isSetInterval()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetInterval()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.interval, other.interval); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("Transition("); + boolean first = true; + + sb.append("uid:"); + sb.append(this.uid); + first = false; + if (!first) sb.append(", "); + sb.append("name:"); + if (this.name == null) { + sb.append("null"); + } else { + sb.append(this.name); + } + first = false; + if (isSetInterval()) { + if (!first) sb.append(", "); + sb.append("interval:"); + if (this.interval == null) { + sb.append("null"); + } else { + sb.append(this.interval); + } + first = false; + } + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // alas, we cannot check 'uid' because it's a primitive and you chose the non-beans generator. + if (name == null) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! Struct: " + toString()); + } + // check for sub-struct validity + if (interval != null) { + interval.validate(); + } + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class TransitionStandardSchemeFactory implements SchemeFactory { + public TransitionStandardScheme getScheme() { + return new TransitionStandardScheme(); + } + } + + private static class TransitionStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, Transition struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // UID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // NAME + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.name = iprot.readString(); + struct.setNameIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // INTERVAL + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.interval = new Interval(); + struct.interval.read(iprot); + struct.setIntervalIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + if (!struct.isSetUid()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'uid' was not found in serialized data! Struct: " + toString()); + } + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, Transition struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(UID_FIELD_DESC); + oprot.writeI64(struct.uid); + oprot.writeFieldEnd(); + if (struct.name != null) { + oprot.writeFieldBegin(NAME_FIELD_DESC); + oprot.writeString(struct.name); + oprot.writeFieldEnd(); + } + if (struct.interval != null) { + if (struct.isSetInterval()) { + oprot.writeFieldBegin(INTERVAL_FIELD_DESC); + struct.interval.write(oprot); + oprot.writeFieldEnd(); + } + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class TransitionTupleSchemeFactory implements SchemeFactory { + public TransitionTupleScheme getScheme() { + return new TransitionTupleScheme(); + } + } + + private static class TransitionTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, Transition struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + oprot.writeI64(struct.uid); + oprot.writeString(struct.name); + BitSet optionals = new BitSet(); + if (struct.isSetInterval()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetInterval()) { + struct.interval.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, Transition struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + struct.name = iprot.readString(); + struct.setNameIsSet(true); + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.interval = new Interval(); + struct.interval.read(iprot); + struct.setIntervalIsSet(true); + } + } + } + +} + diff --git a/eclipse/plugins/fr.laas.libtts/src/tts/TransitionNotFound.java b/eclipse/plugins/fr.laas.libtts/src/tts/TransitionNotFound.java new file mode 100644 index 0000000..4de235b --- /dev/null +++ b/eclipse/plugins/fr.laas.libtts/src/tts/TransitionNotFound.java @@ -0,0 +1,398 @@ +/******************************************************************************* + * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the LGPL 3.0 + * which accompanies this distribution, and is available at + * https://www.gnu.org/licenses/lgpl-3.0-standalone.html + * + * Contributors: + * Faiez Zalila - initial API and implementation and/or initial documentation + *******************************************************************************/ +/** + * Autogenerated by Thrift Compiler (0.9.2) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package tts; + +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; +import org.apache.thrift.scheme.TupleScheme; + +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2016-2-8") +public class TransitionNotFound extends TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TransitionNotFound"); + + private static final org.apache.thrift.protocol.TField UID_FIELD_DESC = new org.apache.thrift.protocol.TField("uid", org.apache.thrift.protocol.TType.I64, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new TransitionNotFoundStandardSchemeFactory()); + schemes.put(TupleScheme.class, new TransitionNotFoundTupleSchemeFactory()); + } + + public long uid; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + UID((short)1, "uid"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // UID + return UID; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __UID_ISSET_ID = 0; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.UID, new org.apache.thrift.meta_data.FieldMetaData("uid", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64 , "transition_id"))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TransitionNotFound.class, metaDataMap); + } + + public TransitionNotFound() { + } + + public TransitionNotFound( + long uid) + { + this(); + this.uid = uid; + setUidIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public TransitionNotFound(TransitionNotFound other) { + __isset_bitfield = other.__isset_bitfield; + this.uid = other.uid; + } + + public TransitionNotFound deepCopy() { + return new TransitionNotFound(this); + } + + @Override + public void clear() { + setUidIsSet(false); + this.uid = 0; + } + + public long getUid() { + return this.uid; + } + + public TransitionNotFound setUid(long uid) { + this.uid = uid; + setUidIsSet(true); + return this; + } + + public void unsetUid() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UID_ISSET_ID); + } + + /** Returns true if field uid is set (has been assigned a value) and false otherwise */ + public boolean isSetUid() { + return EncodingUtils.testBit(__isset_bitfield, __UID_ISSET_ID); + } + + public void setUidIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UID_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case UID: + if (value == null) { + unsetUid(); + } else { + setUid((Long)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case UID: + return Long.valueOf(getUid()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case UID: + return isSetUid(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof TransitionNotFound) + return this.equals((TransitionNotFound)that); + return false; + } + + public boolean equals(TransitionNotFound that) { + if (that == null) + return false; + + boolean this_present_uid = true; + boolean that_present_uid = true; + if (this_present_uid || that_present_uid) { + if (!(this_present_uid && that_present_uid)) + return false; + if (this.uid != that.uid) + return false; + } + + return true; + } + + @Override + public int hashCode() { + List list = new ArrayList(); + + boolean present_uid = true; + list.add(present_uid); + if (present_uid) + list.add(uid); + + return list.hashCode(); + } + + @Override + public int compareTo(TransitionNotFound other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetUid()).compareTo(other.isSetUid()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetUid()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uid, other.uid); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("TransitionNotFound("); + boolean first = true; + + sb.append("uid:"); + sb.append(this.uid); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class TransitionNotFoundStandardSchemeFactory implements SchemeFactory { + public TransitionNotFoundStandardScheme getScheme() { + return new TransitionNotFoundStandardScheme(); + } + } + + private static class TransitionNotFoundStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, TransitionNotFound struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // UID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, TransitionNotFound struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(UID_FIELD_DESC); + oprot.writeI64(struct.uid); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class TransitionNotFoundTupleSchemeFactory implements SchemeFactory { + public TransitionNotFoundTupleScheme getScheme() { + return new TransitionNotFoundTupleScheme(); + } + } + + private static class TransitionNotFoundTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, TransitionNotFound struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetUid()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetUid()) { + oprot.writeI64(struct.uid); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, TransitionNotFound struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.uid = iprot.readI64(); + struct.setUidIsSet(true); + } + } + } + +} +

    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

  • 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